Skip to content

Merkle tree explained implementation, With SHA256 hashing ,root signaning and proof of inclusion.

Notifications You must be signed in to change notification settings

Etelis/Merkle_Tree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

Merkle Tree implemntation and explenation.

Introduction

In cryptography and computer science, a hash tree or Merkle tree is a tree in which every "leaf" (node) is labelled with the cryptographic hash of a data block, and every node that is not a leaf (called a branch, inner node, or inode) is labelled with the cryptographic hash of the labels of its child nodes. A hash tree allows efficient and secure verification of the contents of a large data structure. A hash tree is a generalization of a hash list and a hash chain.

Merkle Tree Source: Wikipedia

Above you could see a simulator designed to demostrate how merkle trees actually looks.

Usage in bitcoin's block chain.

In bitcoin's blockchain, a block of transactions is run through an algorithm to generate a hash, which is a string of numbers and letters that can be used to verify that a given set of data is the same as the original set of transactions, but not to obtain the original set of transactions. Bitcoin's software does not run the entire block of transaction data—representing 10 minutes' worth of transactions on average—through the hash function at one time, however. Rather, each transaction is hashed, then each pair of transactions is concatenated and hashed together, and so on until there is one hash for the entire block. (If there is an odd number of transactions, one transaction is doubled and its hash is concatenated with itself.)

Merkle Proof Source: Investopedia

Implementation

The implementation is rather simple, the merkle tree wont be saved as a structur but will only save data-leaves making it efficient in storage constructing the tree for each operation.

The code allows the user to create a tree and append new leaves to it, a user could also generate proof of inclusion for every leaf in the tree. For a given proof of inclusion the stracture will be able to verify the authenticity of it

Writing your own tests is not required but highly recommended.

About

Merkle tree explained implementation, With SHA256 hashing ,root signaning and proof of inclusion.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages