Demystifying Blockchains

Do repost and rate:

In this post we want to give insight into the basics of Blockchain technology. After reading this post you will hopefully be able to understand how Blockchains came to life and how they are working. 

The World of Blockchains

There are too many projects to keep track of all, a ton of abbreviations like DEX, DAO, DeFi, NFT, and on top of that nebulous terms such as Hard Fork, Soft Fork, Cross-Chain Sharding, to name just a few.

What they all have in common: they are referring to technology linked to lockchains. And there are some basic principles which you’ll find are part of every Blockchain. With those basics well sorted you’ll be able to understand the workings of other projects as well, even if they are built around somewhat more advanced concepts.

So, without further ado, let’s get into how Blockchains work.

Disclaimer: This is not financial advice! This post is solely here to educate about Blockchain technology from a neutral perspective.

Ideas behind the first Blockchain

It all started with the well-known paper written by a certain Satoshi Nakamoto: Bitcoin: A Peer-to-Peer Electronic Cash System. The paper was published in 2008, and yes that’s the same year The Dark KnightBenjamin Button were in theaters. Until today, no one actually knows who is behind the paper but at the same time, Bitcoin is still a thing (guess you’ve heard of it...).

The basic idea here is: get rid of an intermediary and have a currency owned by the people, such that they can exchange it freely between them (hence the title). Now this has not been a very new idea (even in 2008), but the implementation is what made it special.

The problem of taking away the middleman is that you lose control over some parts of the system. And until then no one figured out how to solve all of those problems. For example, instead of the bank storing all account information, everyone has to store everyone's account information. If all participants agree upon the account balances, the network has reached consensus

So how do you reach consensus in a network like Bitcoin, where anyone can send transactions? Let’s start with establishing a consensus on transactions and build it up to a consensus on the network. (got it?)

Transactions

What if I told you each Bitcoin is not a real coin? 

The Bitcoin Blockchain is rather a LEDGER with all the transaction history, to avoid problems like Replay Attacks you have to give a specific number to each transaction. 

What this really means is: If you send someone Bitcoin, you effectively send the whole history of the ‘coin’. This ensures that whoever sends a transaction, actually owns what they want to send.

Public Announcements

Another important concept of Bitcoin is, you guessed it, public announcements. Telling everyone that you want a certain transaction to take place solves another problem: double spending. You could (without public announcements) tell one part of the network that you want to send 1 coin to Bob and the other part that you want to send 1 coin to Alice (assuming you only own 1 coin). Both transactions are valid, but the network would not be able to decide which one to execute first, since the second one would be invalid (you don’t have the cash for that...). And that would lead to a problem with finding consensus among all participants.

But! Since you publicly announced first the transaction to Alice, that one will be executed first, Bob will receive nothing as the transaction will be rejected.

Now we get to the heart of it: the Blocks of the Blockchain. One of the peers in the network will be able to collect pending transactions, bundle them to a big bunch (Block), and add them to the public record: the Blockchain.

Seems pretty straight forward, but (again, sorry) there is a twist.

First off, if you would select the participants one after each other or randomly, someone could create a thousand copies of themselves (rather their connections to the network) and decide which transactions are to be added. This is usually referred to as a Sybil Attack. The way the Bitcoin protocol solves this is known as Proof of Work. Sounds like a fancy new idea? Sorry to disappoint you but it was actually invented in the 80s. Back then the idea was the following: Let someone do some work before sending an email to prevent spam. So sending an email to your friend would require 10 seconds of work. But sending 100k mails would be incredibly costly in time (and usually computing power), so you just wouldn’t want to do it.

The same goes for Bitcoin now: solve a ‘puzzle’ first, so you can't spam the network with new blocks.

Puzzling?

Well if you are puzzled just now, read on. In reality, what all miners (the nodes trying to add new blocks) are computing is not that much of a puzzle. It’s rather nonsense. They take the header of the most recent block (which contains a timestamp and some hashes that can be used to verify that everything in the block is correct), add some number called , compute a hash (crazy function that gives you a unique output to a random input) and try to match it to a target value.

Deep breath, here’s a graphic to shed some more light onto this dark place of an explanation:

The target value is what determines how difficult it is to find the right . For large values it's easy to find a smaller one (there are at least more possibilities). But since there is not really a smart way to solve this ‘puzzle’ you have to go all brute force on it. 

The target value gets adapted according to the number of miners and their hashing power (how many hashes per second they are able to try), to keep the network balanced. Balanced means that the average time between two blocks stays the same. For Bitcoin that’s somewhere around 10 minutes. 

Small extra bit of info: that's why people use nice GPUs for mining instead of gaming, because they can try a lot of hashes in parallel. 

Why so honest?

You might ask yourself, if I find the right nonce and can add a new block, why should I be honest. Good question, that's the last element of why Bitcoin works, the magic word is: incentives.

By rewarding miners for new blocks with coins (the first transaction in a block creates a new coin that goes directly into the miners wallet), it is made sure that they behave. Since it would hurt themselves if the network failed, they are happy to keep it running and collect rewards.

Privacy!?

One common misconception is that the Bitcoin blockchain is anonymous. It is correct that your transactions do not have a name tag with your name on them, but they are publicly recorded. Feel free to head over to a block explorer and check out all transactions that ever happened on the Bitcoin blockchain.

The privacy concept is somewhat linked to the fact that your address does not reveal your name. But if someone gets to link different transactions to the same actor, they might be able to deduct whose address it is. That’s why authorities are actually able to track you on the Bitcoin network. (For real privacy head over to Monero / ZCash etc or stay tuned for a future blockpost on privacy :eyes:).

Cool, what about Smart Contracts?

This is where we kind of leave Bitcoin behind us. It was designed as a decentralised payment system. There were (and are) teams that try to add some more power to the Bitcoin protocol by making it able to execute small programs for example. 

In the early Bitcoin days, a now well-known guy called Vitalik Buterin proposed the Mastercoin team (one of those teams), to enhance the protocol to allow any financial contract to be run on it.

Since there was a huge debate around it and they decided to not go for the idea, he went for his own Blockchain, now known as Ethereum. The whitepaper for Ethereum was published in 2013 and launched in 2015.

To make sure it's clear: the main difference to Bitcoin is that Ethereum can execute any program. It kind of acts like a computer that's distributed over the network. 

Sounds insane? Well, it is!

What? And how?

Right, a computer that's everywhere, how is that supposed to work? First things first: every computer has a , that’s basically referring to what’s currently stored in the memory and registers of the computer. In Ethereum, the state is stored on the Blockchain. Executing a program changes this state. Programs in this context are usually referred to as Smart Contracts. The code being executed is transparent, meaning a program deployed to the network can be read by anyone. 

While in theory that means that we can verify that everything is correct, one often needs quite a lot of experience in working with the programming language in which those programs are written, to understand what's going on. So be careful, even transparent programs may contain nuts. Couldn't help it there but they can actually have bad, insecure or fraudulent code.

One important concept introduced on the Ethereum Blockchain is . Every operation the ‘computer’ executes costs a small amount of ETH. This makes sure that you don't run an infinite program to block everyone else from using the resources. You have to send gas with a transaction that executes a function. A transaction can be a smart contract call, which triggers some program to run. If all your gas has been used but the program has not yet finished running, the state of the machine (Blockchain) will be reverted to before your call (you won't get back the gas though...).

There is however one exception, if you only read data from the chain (call a function which reads data) as an external participant, you don’t have to pay fees.

Storage operations are the most expensive. Meaning if you want to leave some data on the Blockchain, you’ll have to pay for every Bit you use. Which makes sense because all participants (nodes) will have to copy that data…

What can I use those Smart Contracts for?

Now the question is what can one get from all this fancy computing stuff? The answer is: Decentralised Exchanges (DEX) or  your own tokens for example (this is of course a non-exhaustive list, the possibilities are basically infinite).

Ethereum 2.0

For now, Ethereum is using Proof of Work, just like Bitcoin (principle is the same, actual mining algorithm slightly different). But in the foreseeable future, Ethereum wants to change to Proof-of-Stake. At the same time Proof of Work is becoming increasingly unpopular for consuming a lot of energy for, as you saw above, not really useful computing.

And this is where we will leave you for now. We hope that's teasing enough to stay tuned. We will explore Proof of Stake in a future post where we examine a Blockchain that's based on Proof of Stake:

Have a look at the resources we used to write this post if you want to dive deeper:

  • Bitcoin Whitepaper
  • Bitcoin Core on Github
  • Ethereum Whitepaper
  • Ethereum Yellowpaper
  • Ethereum Github
  • Proposal to the Mastercoin team

If you have any questions, feel free to leave a comment!

Head to www.gaupalabs.com for more information about our project and don’t forget to follow us on Social Media: https://lnk.bio/GaupaLabs

Stay safe, online and offline, and we’ll catch you later!

------------------------------------------

Gaupa Labs

Our Website: gaupalabs.com

This blog is a variant of our Gaupa Blog on our website, adapted for Publish0x

Regulation and Society adoption

Ждем новостей

Нет новых страниц

Следующая новость