What is a blockchain Technology? – in its core, a blockchain is a database. It is a system for storing and retrieving data. However a blockchain is different from your typical databases.
The main differentiating factor for a blockchain from typical databases is – distribution. A blockchain is a distributed database, distributed across the many nodes that participate in the network. This means, there are multiple copies of the same database, distributed across the thousands, or millions of nodes that participate in the network.
There is a great article that demonstrates: What is a blockchain – I will link it here, it will give you more insights.
The Block in Blockchain
A blockchain is – a chain of blocks. The data in the blockchain, is organised in a series of blocks that are added in chronological order. The chain starts with one block – the following is generally included in most “proof-of-work” types blockchains:
- Index – indicating where the block fits in the series of blocks
- Timestamp – the exact date and time, to the second when the block is created
- The data – this can be anything, transaction data, a smart contract, whatever we want to store in our blockchain
- A nonce – this is a randomly created number, used to calculate the hash
- Previous hash – the hash signature of the previous block
- Block hash – the hash signature of the current block
Transaction Control – Signatures
The second element to the blockchain is the method the blockchain uses to verify transactional data. This allows it to completely eliminate the middle man in transaction verification.
Currently, if you want to transfer money from your account to a second account: The bank would be required to verify the following:
- That you have the money you are trying to transfer
- That you are the authorised person to make the transfer
- That your transaction is not tampered with from the time you create it, to when it arrives at the bank
A blockchain system completely eliminates the middle man, but it needs to verify the above information. This is where the computing comes in by the nodes that participate in the network. They still need a digital system to do the computing, and they use advanced Eliptic Curve Cryptography – a public, private key system.
Blockchain Transaction Verification
When a transaction is sent through the blockchain, it must be verified by the nodes running the blockchain before added to the block. Each user in the chain has a digital identity, containing:
(1) A public key – everyone knows
(2) A private key – kept secret
The owner of the transaction, creates the transaction. In the bundle, he/she also signs the transaction and includes the transaction signature. The signature is created using the public and private keys of the creator.
When the transaction bundle reaches the “blockchain” – the nodes must verify its contents. They do that by checking the data signature, the nodes compute their own signature based on the known public key of the sender and the data itself. If the data is exactly the same, the check will be a success.
If the public key checked against is wrong, the signatures will not match. And if the data is altered in any way, even an extra comma where there was none – the signatures will not match.
This is how the blockchain knows:
(1) The data has not been altered
(2) The data comes from the authorised account holder
Then all that is left is to confirm the account does have the money it is transferring, and this is not a duplicate transaction. The records are then adjusted accordingly as the transaction is added to the chain.
So now we know, someone is doing the computing in the network. The nodes that do all the computing are the mining nodes – you have probably heard of cryptocurrency mining. They do the computing required for the network, in exchange for freshly minted coins as a reward. The code for the work required is already written in to the blockchain. All a node does is connect, and start working, the blockchain rewards it accordingly.
Proof of Work
This is the oldest computing technique used by Bitcoin and early cryptocurrencies. The nodes are given complex computing to complete before they can add a new block, this is above the transaction computing required.
The purpose for this additional work, which might seem like a waste of energy or time – is to make the process of adding a new block harder and time consuming. This is done to prevent blocks being added every second and new coins being minted too quickly and depleting the supply too soon.
An element of work is added to make this hard for people who enter mining as well, so it costs you something to gain these new coins being created. Because computing power equals electricity, data etc.
The complex task involved the nonce – that random number added to every block. The computer is required to calculate that number, to get the hash signature of the block
More Blockchain Knowledge
There is a lot of detailed and complex ideas around blockchain technology. Skolo online will be releasing new courses on blockchain technology in the coming weeks – you can find them below: