Merkle proof: Difference between revisions

From Computer Science Wiki
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
[[file:computation.png|right|frame|Programming<ref>http://www.flaticon.com/</ref>]]
[[file:computation.png|right|frame|Programming<ref>http://www.flaticon.com/</ref>]]


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 non-leaf node is labelled with the hash of the labels of its child nodes. Hash trees allow efficient and secure verification of the contents of large data structures. Hash trees are a generalization of hash lists and hash chains.<ref>https://en.wikipedia.org/wiki/Merkle_tree</ref>
Merkle proofs are used to decide upon the following factors:
# If the data belongs in the merkle tree
# To concisely prove the validity of data being part of a dataset without storing the whole data set
# To ensure the validity of a certain data set being inclusive in a larger data set without revealing either the complete data set or its subset.
 
Merkle trees make extensive use of one way hashing.
Merkle proofs are established by hashing a hash’s corresponding hash together and climbing up the tree until you obtain the root hash which is or can be publicly known.
Given that one way hashes are intended to be collision free and deterministic algorithms, no two plaintext hashes can/should be the same.<ref>https://medium.com/crypto-0-nite/merkle-proofs-explained-6dd429623dc5</ref>


[[File:Merkle tree.jpg|400px]]


== Video ==
== Video ==
This is a good description. Please stop watching this at 2:41 when he get's into implementation details.
<br />
<html>
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/s0fruNfgW30" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="560" height="315" src="https://www.youtube.com/embed/2kPFSoknlUU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</html>
</html>


== References ==
== References ==

Latest revision as of 19:07, 8 March 2020

Programming[1]

Merkle proofs are used to decide upon the following factors:

  1. If the data belongs in the merkle tree
  2. To concisely prove the validity of data being part of a dataset without storing the whole data set
  3. To ensure the validity of a certain data set being inclusive in a larger data set without revealing either the complete data set or its subset.

Merkle trees make extensive use of one way hashing. Merkle proofs are established by hashing a hash’s corresponding hash together and climbing up the tree until you obtain the root hash which is or can be publicly known. Given that one way hashes are intended to be collision free and deterministic algorithms, no two plaintext hashes can/should be the same.[2]


Video

This is a good description. Please stop watching this at 2:41 when he get's into implementation details.

References