Wpis z mikrobloga

Krypto ciekawostek ciąg dalszy: Co to jest Merkle Tree, jak jest używany w Bitcoinie I dlaczego w ETH pozwala na przyspieszoną synchronizację.

W dużym skrócie Merkle Tree to inaczej drzewo hashy, w którym po jednej stronie jest hash główny, tzw. Merkle Tree Root, a lot przeciwnej stronie są tzw. liście - które są efektywnie hashami komórek bazy danych. Dokładną strukturę pokazuje załączona ilustracja. (Zwracam uwagę, że merkle root jest tutaj na górze, a końcowe komórki danych są na dole)

Po co używa się tego typu rozwiązania? Ogólna odpowiedź brzmi: w celu weryfikacji spójności danych. W przypadku kiedy część danych jest uszkodzona i nie pasuje do nadrzędnych hashy, merkle tree pozwala na wykrycie które komórki danych są uszkodzone i selektywną wymianę/naprawę, bez potrzeby ponownego pobierania wszystkich danych.

Co to ma do Bitcoina i Ethereum?

W Bitcoinie używa się tego rozwiązania do weryfikacji spójności bloku. Jeśli blok jest uszkodzony, klient jest w stanie zdiagnozować, które elementy są wadliwe i pobrać je z innego źródła. Deweloperzy poszli nawet o krok dalej: zamiast przesyłać cały blok, obecnie przesyła się Merkle Tree którego 'liśćmi' są hashe transakcji. W rezultacie peer zamiast pobierać cały blok, pobiera jedynie drzewo hashy i uzupełnia brakujące dane przy użyciu transkacji znajdujących się w mempoolu (plus ewentualnie odpytuje peera o brakujące elementy). Dzięki temu spada ilość danych które trzeba przesłać, wymagania co do łącza są mniejsze, a propagacja bloków jest szybsza.

A jaką rolę to rozwiązanie spełnia w Ethereum? Twórcy ETH użyli możliwości Merkle Tree do absolutnego maksimum. W tej kryptowalucie drzewo hashy obejmuje nie tylko sam blok, ale też całą bazę danych

W rezultacie mając nagłówek bloku, zawierający hash główny (Merkle root) który jest potwierdzony dowodem pracy, klient jest w stanie zweryfikować zarówno poprawność całego drzewa, jak i wszystkich komórek bazy danych

Rezultatem tego rozwiązania jest to, że niezbędne staje się użycie napędów SSD ze względu na bardzo dużą liczbę odczytów związanych z weryfikacją każdej gałęzi drzewa. W zamian klient otrzymuje gwarancję, że dane pobrane z potencjalnie niezaufanego źródła są poprawne. Dzięki temu Ethereum nie musi wykonywać replaya wszystkich transakcji w celu zbudowania aktualnego UTXO (w ETH nazywają to State Database). Zwyczajnie pobiera te dane od dowolnego peera i weryfikuje czy wszystkie hashe się zgadzają aż do samego korzenia (Merkle tree root)

Dlatego też wszelkie oskarżenia jakoby ETH nie weryfikowało swojej bazy danych i jakoby wszystkie klienty były lekkie, wynikają tylko i wyłącznie z bezkresnej ignorancji osób szerzących te brednie

Będzie jeszcze część 2, bo ETH ma w zanadrzu kilka innych tricków związanych z tym rozwiązaniem. Ale o tym kiedy indziej.

#bitcoin #ethereum
#kryptowaluty
Pobierz A.....o - Krypto ciekawostek ciąg dalszy: Co to jest Merkle Tree, jak jest używany w ...
źródło: comment_1593770893DdUmEMAujh7q2JnQIfHEwc.jpg
  • 41
@Amebcio: No właśnie co to #!$%@? ma do rzeczy? Przeciez to ty mieszasz dwie zupełnie niepowiązane rzeczy ze sobą.

Właśnie dotarło do ciebie co odhebales. Teraz standardowo będziesz byle głupoty pieprzył niezwiązane z tematem ( ͡° ͜ʖ ͡°)

Co ma drzewo merkle do weryfikacji tx przez node? ( ͡°( ͡° ͜ʖ( ͡° ͜ʖ ͡°)ʖ ͡°)
@Amebcio: No jak to? O to chodziło w twoim wpisie ( ͡° ͜ʖ ͡°)

A w ogóle to się składa z masy takich kwiatków:

pobiera jedynie drzewo hashy i uzupełnia brakujące dane przy użyciu transkacji znajdujących się w mempoolu (plus ewentualnie odpytuje peera o brakujące elementy).


Nic takiego się nigdy nie dzieje. Cały proces od początku do końca wymyślony. W ogóle nie tak działa SPV. I to
@Amebcio: bez kotu, co to #!$%@? jest??? ( ͡°( ͡° ͜ʖ( ͡° ͜ʖ ͡°)ʖ ͡°) ͡°)

pobiera jedynie drzewo hashy i uzupełnia brakujące dane przy użyciu transkacji znajdujących się w mempoolu (plus ewentualnie odpytuje peera o brakujące elementy).
@Amebcio: ten cytat to złoto ( ͡º ͜ʖ͡º)

Ty nie wiesz nadal po co jest drzewo merkle

Dzieciątko, posłuchaj. Jak masz lekki portfel i dostaniesz tx to Nie wiesz czy nie zostałeś oszukany, nie możesz sprawdzić czy faktycznie została ona dodana do jakiegoś bloku.

Mając sam nagłówek oraz mając tx po korzeniu merkle można udowodnić że ta tx naprawdę jest w tym bloku mimo że się
@Amebcio: Ty sobie coś wbiłes do łba że drzewo merkle potrzebne do funkcjonowania sieci. To jest tylko i wyłącznie dla lekkich portfeli do weryfikacji czy tx która otrzymałeś naprawdę jest w bloku, którego lekki portfel nie ma.

Mało tego dziś już niewiele portfeli jest SPV. Ma to dziury prywatności i większość portfeli tego nie używa.

A ty sobie wymyśliłeś #!$%@? wie co z tym drzewem, tłumaczysz ludziom jakieś swoje wymysły i
@cyberpunkbtc: Powiedz mi której części zdania z bitcoinwiki nie rozumiesz?

Currently the main use of hash trees is to make sure that data blocks received from other peers in a peer-to-peer network are received undamaged and unaltered.


Ty się nie kłucisz ze mną nawet. Ja swoje zrobiłem, zajrzałem do źródeł i ci podałem cytat z linkiem. Jak uważasz że info w Wiki jest błędne, to znajdź i zacytuj bardziej wiarygodne źródło