Passa al contenuto principale

2.1.3. Esempio

2.1.3. Esempio

L'albero Merkle binario con 7 foglie:

              hash
/ \
/ \
/ \
/ \
/ \
k l
/ \ / \
/ \ / \
/ \ / \
g h i j
/ \ / \ / \ |
a b c d e f d6
| | | | | |
d0 d1 d2 d3 d4 d5

Il percorso di audit per d0 è [b, h, l].

Il percorso di audit per d3 è [c, g, l].

Il percorso di audit per d4 è [f, j, k].

Il percorso di audit per d6 è [i, k].

Lo stesso albero, costruito incrementalmente in quattro passaggi:

      hash0          hash1=k
/ \ / \
/ \ / \
/ \ / \
g c g h
/ \ | / \ / \
a b d2 a b c d
| | | | | |
d0 d1 d0 d1 d2 d3

hash2 hash
/ \ / \
/ \ / \
/ \ / \
/ \ / \
/ \ / \
k i k l
/ \ / \ / \ / \
/ \ e f / \ / \
/ \ | | / \ / \
g h d4 d5 g h i j
/ \ / \ / \ / \ / \ |
a b c d a b c d e f d6
| | | | | | | | | |
d0 d1 d2 d3 d0 d1 d2 d3 d4 d5

La prova di coerenza tra hash0 e hash è PROOF(3, D[7]) = [c, d, g, l]. c, g sono usati per verificare hash0, e d, l sono inoltre usati per mostrare che hash è coerente con hash0.

La prova di coerenza tra hash1 e hash è PROOF(4, D[7]) = [l]. hash può essere verificato usando hash1=k e l.

La prova di coerenza tra hash2 e hash è PROOF(6, D[7]) = [i, j, k]. k, i sono usati per verificare hash2, e j è inoltre usato per mostrare che hash è coerente con hash2.