Transactions, Merkle Trees and Blocks

12 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$99.99
List Price:  $139.99
You save:  $40
€93.47
List Price:  €130.87
You save:  €37.39
£79.12
List Price:  £110.77
You save:  £31.65
CA$136.80
List Price:  CA$191.52
You save:  CA$54.72
A$153.03
List Price:  A$214.24
You save:  A$61.21
S$136.24
List Price:  S$190.75
You save:  S$54.50
HK$782.75
List Price:  HK$1,095.89
You save:  HK$313.13
CHF 90.39
List Price:  CHF 126.55
You save:  CHF 36.16
NOK kr1,103.76
List Price:  NOK kr1,545.32
You save:  NOK kr441.55
DKK kr697.01
List Price:  DKK kr975.84
You save:  DKK kr278.83
NZ$168.36
List Price:  NZ$235.71
You save:  NZ$67.35
د.إ367.25
List Price:  د.إ514.16
You save:  د.إ146.91
৳11,001.09
List Price:  ৳15,401.97
You save:  ৳4,400.87
₹8,339.41
List Price:  ₹11,675.50
You save:  ₹3,336.09
RM476.70
List Price:  RM667.40
You save:  RM190.70
₦132,134.22
List Price:  ₦184,993.20
You save:  ₦52,858.97
₨27,905.82
List Price:  ₨39,069.27
You save:  ₨11,163.44
฿3,697.97
List Price:  ฿5,177.30
You save:  ฿1,479.33
₺3,250.47
List Price:  ₺4,550.79
You save:  ₺1,300.31
B$511.57
List Price:  B$716.23
You save:  B$204.65
R1,877.82
List Price:  R2,629.02
You save:  R751.20
Лв182.79
List Price:  Лв255.92
You save:  Лв73.12
₩137,795.03
List Price:  ₩192,918.56
You save:  ₩55,123.52
₪381.78
List Price:  ₪534.51
You save:  ₪152.73
₱5,764.02
List Price:  ₱8,069.86
You save:  ₱2,305.84
¥15,807.91
List Price:  ¥22,131.71
You save:  ¥6,323.80
MX$1,715.83
List Price:  MX$2,402.24
You save:  MX$686.40
QR365.49
List Price:  QR511.70
You save:  QR146.21
P1,379.76
List Price:  P1,931.72
You save:  P551.96
KSh13,280.92
List Price:  KSh18,593.82
You save:  KSh5,312.90
E£4,785.67
List Price:  E£6,700.13
You save:  E£1,914.46
ብር5,752.60
List Price:  ብር8,053.87
You save:  ብር2,301.27
Kz83,397.65
List Price:  Kz116,760.05
You save:  Kz33,362.40
CLP$95,187.41
List Price:  CLP$133,266.18
You save:  CLP$38,078.77
CN¥724.48
List Price:  CN¥1,014.31
You save:  CN¥289.82
RD$5,876.15
List Price:  RD$8,226.85
You save:  RD$2,350.69
DA13,419.92
List Price:  DA18,788.43
You save:  DA5,368.50
FJ$226.22
List Price:  FJ$316.72
You save:  FJ$90.50
Q779.62
List Price:  Q1,091.50
You save:  Q311.88
GY$20,970.66
List Price:  GY$29,359.76
You save:  GY$8,389.10
ISK kr14,012.52
List Price:  ISK kr19,618.09
You save:  ISK kr5,605.56
DH1,012.51
List Price:  DH1,417.55
You save:  DH405.04
L1,776.81
List Price:  L2,487.61
You save:  L710.79
ден5,750.48
List Price:  ден8,050.91
You save:  ден2,300.42
MOP$808.27
List Price:  MOP$1,131.61
You save:  MOP$323.34
N$1,891.23
List Price:  N$2,647.80
You save:  N$756.57
C$3,688.83
List Price:  C$5,164.51
You save:  C$1,475.68
रु13,363.42
List Price:  रु18,709.33
You save:  रु5,345.90
S/376.55
List Price:  S/527.19
You save:  S/150.63
K386.91
List Price:  K541.69
You save:  K154.78
SAR375
List Price:  SAR525.02
You save:  SAR150.01
ZK2,656.27
List Price:  ZK3,718.89
You save:  ZK1,062.61
L465.65
List Price:  L651.93
You save:  L186.28
Kč2,349.23
List Price:  Kč3,289.02
You save:  Kč939.78
Ft36,664.08
List Price:  Ft51,331.18
You save:  Ft14,667.09
SEK kr1,088.81
List Price:  SEK kr1,524.39
You save:  SEK kr435.57
ARS$87,581.58
List Price:  ARS$122,617.72
You save:  ARS$35,036.13
Bs695.16
List Price:  Bs973.25
You save:  Bs278.09
COP$396,484.19
List Price:  COP$555,093.74
You save:  COP$158,609.54
₡50,931.67
List Price:  ₡71,306.37
You save:  ₡20,374.70
L2,475.19
List Price:  L3,465.37
You save:  L990.17
₲746,363.69
List Price:  ₲1,044,939.03
You save:  ₲298,575.33
$U3,863.50
List Price:  $U5,409.05
You save:  $U1,545.55
zł402.98
List Price:  zł564.19
You save:  zł161.21
Already have an account? Log In

Transcript

Another central concept of blockchain is the transactions. transactions are the records of data stored in the blockchain. All the transactions are present in chronological order. When the transactions are submitted over the blockchain, they are stored in a memory pool. The memory pool is a synchronized container of data present with all the nodes. All the transactions in the memory pool are unconfirmed transactions means the transactions are not part of the blockchain yet.

The function of miners is taking these transactions from the memory pool, verify and validate them and finally put these unconfirmed transactions into the blog. They are mining. After the block has been mined and added to the chain, the transactions are also confirmed over the blockchain. The transactions are stored in the form of a Merkle tree inside the block. Merkle tree Make sure that by looking at one single route, the verifiers can verify all the transactions in a block. We will talk more about Merkle trees soon.

Transactions over blockchain can also contain metadata information, which can be used to store data over the blockchain. Once a transaction occurs over the blockchain, it goes to a memory pool. Miners state these transactions from the memory pool validate them by checking the information such as does the sender have the balance to send the coins? alternatively, does the receiver have a valid account on blockchain or not? Similarly, many more validations are done by the miners for a transaction. Once the transaction has been validated, miners put the transaction inside a block come into the block in a blockchain.

In simple terms, we can say that a block is a container of information that stores the data Over the blockchain a typical block mostly contains transactions, timestamp, a block identifier, nonce value, and a previous block hash. A block could include additional information depending upon the platform you're using for your defined use case. Each block has the hash of the previous block. And the chain of these blocks using the hash value of previous blocks forms the complete blockchain. The blocks are stored in your hard drive as per the defined schema of the blockchain. different platforms have different schemas.

For example, hyper ledger uses key value schema for blocks. There is also a time associated with the block, which makes sure that the blockchain is always under control as per the time. For example, in Bitcoin, a block is created every 10 minutes. All the transactions happening over the network within 10 minutes can be put inside the block. To be added to the chain. After the container of data is found by the miners, the miners try to guess the nonce value or a random number, which will be added with block data to generate a specific hash result.

We have already discussed the same in the session how blockchain works. For example, in the case of Bitcoin, the nonce value should be guessed, which makes sure that the resulting hash of the block has some leading zeros. The auction algorithm calculates the number of leading zeros and also forms the difficulty of the chain. When the miner is able to guess the nonce value, then the block has been mined and added to the chain. This process is also known as mining and the miner receives a reward for doing this work, which is 12.5 BTC for Bitcoin. If the resultant hash by a miner is higher than the target hash, then the other miner is given a chance to guess the value Have nouns and confirm the block blocks are time bound in Bitcoin.

If the blockchain algorithm sees that the block time is less than 10 minutes, this means miners are able to guess nouns in less than 10 minutes, then blockchain algorithm increases the difficulty to make sure that the minor takes more time to guess the nonce value and the block is being mined in 10 minutes. Similarly, if the block time is coming to be more than 10 minutes, then the difficulty is lowered to meet the 10 minutes parameter. Before moving further, let's understand the structure of a block. A block contains plenty of information. A typical structure of a block has following three components, block header, block identifiers, and Merkle trees. A block header includes the metadata information about a block, like a timestamp, protocol information, nouns difficulty and the previous block hash which is used to form the chain.

Every block has a hash value associated with it and this hash value also act as a block identifier. If the block data changes, this hash value will also be different. Lastly, a block contains a Merkle tree. Merkle tree is a hash binary tree, which is used to store and verify the transactions in a block. This is an example of a Bitcoin block which you can see on the screen, there is much information inside the block. As you can see, the first field is the magic number.

This is the number which defines the network configuration. For example, in Bitcoin, the main network magic number is always has the value as shown on the screen. The next thing is the block size, which defines the number of bytes present in a block. The third entry is the block header which consists of six different items including previous block hash and nonce value. After that, we have transaction counter, which is a positive integer specifying how many transactions are present inside a block. And finally we have the list of the transaction, which has an equal number of transaction as per the transaction counter.

The blocks in a blockchain may have different information than the Bitcoin, you can add additional information to make it more secure. Now let's see the three essential components of block block header block identifier and Merkle tree. The block header contains the metadata about the block. A typical block header consists of previous block hash, which is used to connect to the blocks. The second information stored is the mining competition for the network, which includes the timestamp, the nouns and the difficulty. The mining competition is the value which will be used for miner solving the block.

And the last one is the Merkle tree root, which is the data structure to summarize all the transactions inside the block. Merkel roots act in such a way that even if one of the transaction changes, the root of the tree will be different. Thus making sure that verifiers can identify the changes in the blog by looking only at the Merkel root. Block identifiers in the core, or the hash taken for the block data, like private keys, which are used to sign the transaction and also provide a source of an identity for the person making the transaction. A block is similarly identified by its cryptographic hash. We already discussed block hash while defining blocks.

Bitcoin blockchain uses a Sha 256 hashing algorithm. To create the block identifier you can employ a different hash function For your blockchain, every block contains the previous block hash with transactions header and metadata. This forms the block data and is provided as an input to the hashing algorithm with nouns value to construct its hash. Another way of identifying a block is the block height. This is the position of the block inside the blockchain. For example, if we say that the block is in 7312 position, this means that there has been already 7311 blocks before the current block.

Block identifiers are necessary to make sure that we have a unique identity available for each block such that the block identifier can identify even a small change inside a block. I mentioned earlier that a block has three primary data structures, a block header, a block identifier and Merkle tree Merkle tree is an essential concept concerning the blockchain. Merkle tree follows a bottom up approach where the finality of the tree is a root node, which summarizes all the transactions for the block by producing a single digital signature for the entire set of the transactions. Users can verify the transactions just by looking at the Merkel route. If a single detail inside any of the transaction changes for a block, then the Merkel route for that particular block will also change. Merkel tree is a binary tree with transaction acting as the leaves of the tree.

Transactions in the Merkel tree are taken in a group of two and hash together. This process continues to the point where we are left with only one single hash, which is also known as Merkel root hash. Let's see through a diagram how the complete Merkle tree functions you can see in the image On the screen that we have transactions A, B, C, and D, these transactions act like a leaf nodes for the Merkle tree. As we have already mentioned, a Merkle tree follows a bottom up approach. So we start from the transaction leaves, we take the hash of the transaction a and the hash of the transaction B. Similarly, we take the hash of the transaction cmd.

Now we take a group of two transactions and accumulate these hashes together and take the hash of the result. In our example, we collect the hash of the transaction A and B, and then take the hash of the result to form a hash of the transaction AB. Similarly, on the other side, we create the hash of the transaction CD. Now again, we follow the same process by accumulating the hash of transaction A, B, and C, D, and take the hash of the result to form one single hash value. This hash value isn't Known as the Merkel root hash, which is stored inside the block. A verifier doesn't need to go through all the transactions to verify the block, it can directly check the Merkel root hash to verify all the transactions.

If even a single transaction is altered inside the block, then the Merkel root hash for the block will be different Merkle tree is an even tree. That means all the transactions are to be even in number to form the Merkel root hash. If we have an odd number of transactions inside the block, then the last transaction inside the tree is duplicated to create an even tree. This is another view for the Merkle tree. You can see in the diagram that we have transaction five, we take the hash of the transaction five and combine with the hash of the transaction six. The resultant hash is the hash of the transaction Five, six, then we follow the same process as the last diagram, where we keep on continuously hashing the transactions in a group of two, until we have one single Merkel root tree hash.

These were some of the critical concepts of the blockchain. And these concepts make up the characteristics of the blockchain. Apart from these concepts, we have some additional concepts of the blockchain. Now, let's go and see some of the additional concepts related to the blockchain

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.