Co to jest drzewo Merkle? Przewodnik dla początkujących po komponencie Blockchain

Merkle Tree

Drzewa Merkle są podstawowym składnikiem łańcuchów bloków, które stanowią podstawę ich funkcjonalności. Pozwalają na sprawną i bezpieczną weryfikację dużych struktur danych, aw przypadku blockchainów, potencjalnie nieograniczonych zbiorów danych.

Implementacja drzew Merkle w łańcuchach bloków ma wiele skutków. Umożliwia im skalowanie, zapewniając jednocześnie architekturę opartą na skrótach, aby zachować integralność danych i trywialny sposób weryfikacji integralności danych.

Kryptograficzne funkcje skrótu są podstawową technologią, która umożliwia działanie drzew Merkle, więc najpierw ważne jest, aby zrozumieć, czym są kryptograficzne funkcje skrótu.

Kryptograficzne funkcje skrótu

Mówiąc najprościej, funkcja skrótu to dowolna funkcja używana do mapowania danych o dowolnym rozmiarze (danych wejściowych) na dane wyjściowe o stałym rozmiarze. Do danych wejściowych stosowany jest algorytm mieszający, a wynikowe dane wyjściowe o stałej długości są określane jako skrót.

Wiele algorytmów haszujących jest powszechnie dostępnych i można je wybrać w zależności od potrzeb.

Wynikowy skrót z dowolnych danych wejściowych ma nie tylko stałą długość, ale jest również całkowicie unikalny dla danych wejściowych, a sama funkcja jest deterministyczna. Oznacza to, że bez względu na to, ile razy uruchomisz funkcję na tym samym wejściu, dane wyjściowe będą zawsze takie same.

Na przykład, jeśli jako dane wejściowe masz poniższe zestawy danych, wynikowe dane wyjściowe są unikalne dla każdego wejścia. Zwróć uwagę, że w drugim i trzecim przykładzie, chociaż różnica danych wejściowych to tylko jedno słowo, wynikowe wyniki są zupełnie inne.

Jest to bardzo ważne, ponieważ umożliwia „pobieranie odcisków palców” danych.

#Crypto ExchangeBenefits

1

Binance
Best exchange


VISIT SITE
  • ? The worlds biggest bitcoin exchange and altcoin crypto exchange in the world by volume.
  • Binance provides a crypto wallet for its traders, where they can store their electronic funds.

2

Coinbase
Ideal for newbies


Visit SITE
  • Coinbase is the largest U.S.-based cryptocurrency exchange, trading more than 30 cryptocurrencies.
  • Very high liquidity
  • Extremely simple user interface

3

eToro
Crypto + Trading

VISIT SITE
  • Multi-Asset Platform. Stocks, crypto, indices
  • eToro is the world’s leading social trading platform, with thousands of options for traders and investors.

Kryptograficzna funkcja skrótu, Image from Wikipedia

Ponieważ długość wyjściowa (w tym przykładzie suma skrótu) jest zawsze taka sama, jak określona przez zastosowany algorytm mieszający, ogromne ilości danych można zidentyfikować wyłącznie na podstawie ich wynikowego skrótu.

W przypadku systemów zawierających ogromne ilości danych korzyści wynikające z możliwości przechowywania i identyfikowania danych o stałej długości mogą przynieść ogromne oszczędności pamięci masowej i pomóc zwiększyć wydajność.

W łańcuchach bloków algorytmy haszujące służą do określania stanu łańcucha bloków.

#CRYPTO BROKERSBenefits

1

eToro
Best Crypto Broker

VISIT SITE
  • Multi-Asset Platform. Stocks, crypto, indices
  • eToro is the world’s leading social trading platform, with thousands of options for traders and investors.

2

Binance
Cryptocurrency Trading


VISIT SITE
  • ? Your new Favorite App for Cryptocurrency Trading. Buy, sell and trade cryptocurrency on the go
  • Binance provides a crypto wallet for its traders, where they can store their electronic funds.

#BITCOIN CASINOBenefits

1

Bitstarz
Best Crypto Casino

VISIT SITE
  • 2 BTC + 180 free spins First deposit bonus is 152% up to 2 BTC
  • Accepts both fiat currencies and cryptocurrencies

2

Bitcoincasino.io
Fast money transfers


VISIT SITE
  • Six supported cryptocurrencies.
  • 100% up to 0.1 BTC for the first
  • 50% up to 0.1 BTC for the second

Łańcuchy bloków to połączone listy, które zawierają dane i wskaźnik skrótu wskazujący na poprzedni blok, tworząc łańcuch połączonych bloków, stąd nazwa „łańcuch bloków”.

Każdy blok jest połączony ze sobą za pomocą wskaźnika krzyżyka, który jest skrótem danych wewnątrz poprzedniego bloku wraz z adresem poprzedniego bloku. Łącząc bloki danych w tym formacie, każdy wynikowy skrót poprzedniego bloku reprezentuje cały stan łańcucha bloków, ponieważ wszystkie zaszyfrowane dane z poprzednich bloków są mieszane w jeden skrót.

Jest to reprezentowane (w przypadku algorytmu SHA-256) przez wyjście (hash), takie jak ten.

b09a57d476ea01c7f91756adff1d560e579057ac99a28d3f30e259b30ecc9dc7

Hash powyżej to odcisk palca całego stanu łańcucha bloków przed nim. Stan łańcucha bloków przed nowym blokiem (jako zaszyfrowane dane) to dane wejściowe, a wynikowy skrót to dane wyjściowe.

Chociaż możliwe jest użycie skrótów kryptograficznych bez drzew Merkle, jest to wyjątkowo nieefektywne i nieskalowalne. Używanie skrótów do przechowywania danych w bloku w formacie serii jest czasochłonne i kłopotliwe.

Jak zobaczysz, drzewa Merkle pozwalają na trywialne rozwiązanie integralności danych, a także mapowanie tych danych przez całe drzewo przy użyciu dowodów Merkle.

Drzewa Merkle i Dowody Merkle

Nazwane na cześć Ralpha Merkle, który opatentował tę koncepcję w 1979 roku, drzewa Merkle są zasadniczo drzewami struktury danych, w których każdy węzeł nie będący liściem jest hashem odpowiednich węzłów potomnych.

Węzły liści to najniższy poziom węzłów w drzewie. Na początku może się to wydawać trudne do zrozumienia, ale jeśli spojrzysz na powszechnie używany rysunek poniżej, znacznie łatwiej będzie go zrozumieć.

Hash Tree

Przykład binarnego drzewa hash, Image from Wikipedia

Co ważne, zwróć uwagę, że węzły niebędące liśćmi lub „gałęzie” (reprezentowane przez Hash 0-0 i Hash 0-1) po lewej stronie są hashami ich odpowiednich dzieci L1 i L2. Ponadto zwróć uwagę, że gałąź Hash 0 jest hashem połączonych elementów podrzędnych, oddziałów Hash 0-0 i Hash 0-1.

Powyższy przykład jest najpowszechniejszą i najprostszą formą drzewa Merkle, znaną jako binarne drzewo Merkle. Jak widać, istnieje górny hash, który jest hashem całego drzewa, zwany hashem głównym. Zasadniczo drzewa Merkle to struktura danych, która może przyjąć „n” liczby skrótów i przedstawić ją za pomocą jednego skrótu.

Struktura drzewa pozwala na sprawne odwzorowanie dowolnie dużych ilości danych oraz umożliwia łatwą identyfikację miejsc, w których zachodzą zmiany tych danych. Ta koncepcja umożliwia dowody Merkle, dzięki którym ktoś może sprawdzić, czy haszowanie danych jest spójne w całym drzewie i we właściwej pozycji, bez konieczności przeglądania całego zestawu skrótów.

Zamiast tego mogą zweryfikować, czy fragment danych jest zgodny z głównym hashem, sprawdzając tylko niewielki podzbiór skrótów, a nie cały zestaw danych.

Dopóki główny skrót jest publicznie znany i zaufany, każdy, kto chce wyszukać klucz-wartość w bazie danych, może użyć dowodu Merkle w celu zweryfikowania pozycji i integralności fragmentu danych w bazie danych, która ma konkretny root.

Gdy główny skrót jest dostępny, drzewo skrótów można pobrać z dowolnego niezaufanego źródła, a jedną gałąź drzewa można pobrać na raz z natychmiastową weryfikacją integralności danych, nawet jeśli całe drzewo nie jest jeszcze dostępne.

Jedną z najważniejszych zalet struktury drzewa Merkle jest możliwość uwierzytelniania dowolnie dużych zestawów danych za pomocą podobnego mechanizmu haszowania, który jest używany do weryfikacji znacznie mniejszych ilości danych.

Drzewo jest przydatne w przypadku dystrybucji dużych zestawów danych na mniejsze części, które można zarządzać, gdzie bariera dla weryfikacji integralności jest znacznie zmniejszona pomimo ogólnie większego rozmiaru danych.

Skrót główny może być używany jako odcisk palca dla całego zestawu danych, w tym całej bazy danych lub reprezentujący cały stan łańcucha bloków. W kolejnych sekcjach omówimy, w jaki sposób Bitcoin i inne systemy implementują drzewa Merkle.

Drzewa Merkle w Bitcoinie

Kryptograficzną funkcją skrótu używaną przez Bitcoin jest algorytm SHA-256. To oznacza „Secure Hashing Algorithm”, którego dane wyjściowe mają stałą długość 256 bitów. Podstawową funkcją drzew Merkle w Bitcoinie jest przechowywanie i ostatecznie przycinanie transakcji w każdym bloku.

Jak wspomniano wcześniej, bloki w łańcuchu bloków są połączone za pomocą skrótów poprzedniego bloku. W Bitcoin każdy blok zawiera wszystkie transakcje w tym bloku, a także nagłówek bloku, który składa się z:

  • Numer wersji bloku
  • Poprzedni Block Hash
  • Znak czasu
  • Docelowy poziom trudności wydobycia
  • Chwilowo
  • Merkle Root Hash

Poniższy obraz pochodzi z Bitcoin biały papier i ilustruje, jak drzewo Merkle pasuje do każdego bloku.

Merkle Tree

Transakcje są włączane do bloków przez górników i haszowane jako część drzewa Merkle, prowadzące do katalogu głównego Merkle, który jest przechowywany w nagłówku bloku. Ten projekt ma wiele wyraźnych zalet.

Przede wszystkim, jak przedstawiono w białej księdze, umożliwia to istnienie węzłów Simple Payment Verification (SPV), zwanych również „lekkimi klientami”. Węzły te nie muszą pobierać całego łańcucha bloków Bitcoin, tylko nagłówki bloków z najdłuższego łańcucha.

Węzły SPV mogą to osiągnąć, wysyłając zapytania do swoich węzłów równorzędnych, dopóki nie będą przekonani, że przechowywane nagłówki bloków, na których pracują, są częścią najdłuższego łańcucha. Węzeł SPV jest następnie w stanie określić status transakcji, używając dowodu Merkle do mapowania transakcji do określonego drzewa Merkle z hashem głównym tego drzewa Merkle w nagłówku bloku, który jest częścią najdłuższego łańcucha.

Dodatkowo implementacja drzew Merkle w Bitcoinie pozwala na przycinanie łańcucha bloków w celu zaoszczędzenia miejsca. Wynika to z tego, że w nagłówku bloku jest przechowywany tylko główny hash, dlatego stare bloki można przycinać, usuwając niepotrzebne gałęzie drzewa Merkle, zachowując tylko te potrzebne do dowodu Merkle.

Wdrażanie drzew Merkle w innych łańcuchach bloków i systemach

Chociaż Bitcoin był pierwszym blockchainem, który zaimplementował drzewa Merkle, wiele innych łańcuchów bloków implementuje podobne struktury drzewa Merkle lub nawet bardziej złożone wersje.

Co więcej, implementacja drzewa Merkle nie ogranicza się tylko do łańcuchów bloków i jest stosowana w wielu innych systemach.

Ethereum, będący drugą najbardziej rozpoznawalną kryptowalutą, jest również świetnym przykładem innej implementacji drzewa Merkle. Ponieważ Ethereum jest kompletną platformą do tworzenia znacznie bardziej złożonych aplikacji, wykorzystuje bardziej złożoną wersję drzewa Merkle o nazwie Merkle Patricia Tree, która jest w rzeczywistości 3 oddzielnymi drzewami Merkle używanymi do trzech rodzajów obiektów. Możesz dowiedzieć się więcej o tych drzewach tutaj.

Wreszcie drzewa Merkle są ważnym składnikiem rozproszonych systemów kontroli wersji, takich jak Git i IPFS. Ich zdolność do łatwego zapewniania i weryfikowania integralności danych udostępnianych między komputerami w formacie P2P czyni je nieocenionymi dla tych systemów.

Wniosek

Drzewa Merkle są integralnym składnikiem łańcuchów bloków i skutecznie pozwalają im działać z udowodnioną niezmiennością i integralnością transakcji.

Zrozumienie roli, jaką odgrywają w sieciach rozproszonych i leżącej u ich podstaw technologii kryptograficznych funkcji skrótu, ma kluczowe znaczenie dla zrozumienia podstawowych pojęć kryptowalut w miarę ich dalszego rozwoju w większe i bardziej złożone systemy.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map