Przejdź do treści
Słownikpodstawybezpieczenstwobitcoinethereum

Dowód Merkle’a

Dowód Merkle’a, po angielsku Merkle proof, to krótki dowód pokazujący, że konkretny element znajduje się w zbiorze reprezentowanym przez root hash drzewa Merkle’a.

Czym jest dowód Merkle’a

Dowód Merkle’a pozwala sprawdzić przynależność jednego elementu do większego zbioru bez przesyłania całego zbioru.

Zamiast pokazywać wszystkie transakcje z bloku, wystarczy pokazać wybraną transakcję oraz zestaw sąsiednich hashy potrzebnych do odtworzenia drogi do root hasha.

Jeśli po ponownym hashowaniu wynik zgadza się ze znanym root hashem, weryfikator wie, że dany element należy do zbioru zapisanego przez ten root.

Z czego składa się dowód

Element
Transakcja, liść drzewa albo inny fragment danych, którego obecność jest sprawdzana.
Sibling hashes
Hashe sąsiednich elementów potrzebne do odtworzenia ścieżki w drzewie.
Root hash
Końcowy hash reprezentujący cały zbiór danych.
Weryfikacja
Ponowne hashowanie elementu i ścieżki aż do otrzymania root hasha.
Wynik
Dowód potwierdza przynależność elementu do konkretnego root hasha.

Gdzie używa się dowodów Merkle’a

Bitcoin używa drzew Merkle’a do zapisywania zestawu transakcji w nagłówku bloku. Dowód Merkle’a może pokazać, że dana transakcja należy do konkretnego bloku.

Podobny mechanizm pojawia się w light clientach, bridge’ach i systemach, które muszą sprawdzać wybrane dane bez pobierania całego łańcucha.

Dowody Merkle’a są też częste w systemach ZK, airdropach i listach uprawnionych adresów, gdzie trzeba sprawdzić przynależność do dużego zbioru.

Najczęstsze błędne założenia

  • Dowód Merkle’a potwierdza przynależność do konkretnego root hasha, a nie prawdziwość całego łańcucha.
  • Dowód jest ważny tylko względem root hasha, dla którego został przygotowany.
  • Jeśli root hash pochodzi z niezaufanego źródła, sam dowód nie rozwiązuje problemu zaufania.
  • Dowód Merkle’a nie ujawnia automatycznie całego zbioru danych.
  • Błędny albo nieaktualny root hash może prowadzić do błędnej interpretacji poprawnego technicznie dowodu.

Dowód Merkle’a sprawdza przynależność

Taki dowód odpowiada na konkretne pytanie: czy ten element znajduje się w zbiorze reprezentowanym przez dany root hash. Nie zastępuje pełnej weryfikacji źródła root hasha.

Najczęstsze pytania

Nie. Pokazuje tylko element i minimalny zestaw hashy potrzebny do sprawdzenia jego przynależności do root hasha.

Tak. Bitcoin używa drzewa Merkle’a do reprezentowania transakcji w bloku, a dowody Merkle’a mogą potwierdzać obecność transakcji w konkretnym bloku.

Nie. Jest ważny względem konkretnego root hasha. Jeśli zmieni się root, dowód trzeba sprawdzić ponownie albo przygotować od nowa.