Czy wielokrotne implementacje Bitcoina są niebezpieczne? Inteligencja danych PlatoBlockchain. Wyszukiwanie pionowe. AI.

Czy niebezpieczne jest posiadanie wielu wdrożeń Bitcoina?

To jest opinia redakcyjna autorstwa Bill Scoresby, właściciel małej firmy opartej na bitcoinie i autor kilku przewodników na temat samodzielnej opieki nad bitcoinami.

Błędy, które ostatnio spowodowały brak synchronizacji wielu węzłów LND z łańcuchem bloków Bitcoin, to: prawdopodobnie spowodowane alternatywną implementacją.

Być może zastanawiasz się: „Kto na świecie używa czegokolwiek innego niż Bitcoin Core?” Być może nie wiedziałeś, że istnieją inne implementacje Bitcoina. Być może nie jesteś pewien, co w ogóle oznacza inna implementacja.

Bitcoin Core zaczynał jako oprogramowanie, które Satoshi Nakamoto napisany w C++ i wydany światu. Został zaktualizowany o nowe wersje prowadzące do dnia dzisiejszego. Alternatywną implementacją jest oprogramowanie, które robi to samo co Bitcoin Core – egzekwuje te same zasady konsensusu – ale jest napisane inaczej, najczęściej w innym języku kodowania.

W jaki sposób alternatywna implementacja uszkodziła węzły w sieci Lightning?

Jedna z głównych wersji węzła Lightning Network (LND) opiera się na alternatywnej implementacji Bitcoina zwanej btcd. Kiedy programista utworzył bardzo dużą transakcję multisig, btcd nie uznał jej za prawidłową, ponieważ zawierała zbyt dużo danych świadków. Inne implementacje Bitcoina – przede wszystkim Bitcoin Core – nie miały takiego limitu danych świadków transakcji Taproot i dlatego zaakceptowały transakcję i zawierający ją blok jako ważne.

W rezultacie górnicy dodawali nowe bloki do łańcucha, ponieważ nie używali btcd i zgodnie z ich zasadami nic nie było nie tak, ale węzły LND Lightning nie mogły rozpoznać żadnego z tych nowych bloków, ponieważ zostały zbudowane na bloku zawierającym tę jedną transakcję, którą uznali za nieważną.

Kiedy błąd pojawił się ponownie 1 listopada, dotyczyło to nie tylko węzłów LND. Niektóre instancje Electrs (implementacja serwera zaplecza dla portfela Electrum) również nie osiągnęły konsensusu z resztą łańcucha. Chociaż węzły LND zostały wytrącone z konsensusu z powodu podobnego problemu w btcd, to była to implementacja Bitcoina napisana w Rust spowodował, że węzły elektryczne pozostały w tyle, w tym kilka bardzo widocznych serwerów prowadzony przez mempool.space.

Istnieje ograniczenie rozmiaru danych świadków aby zapobiec atakom DoSi jest również częścią Bitcoin Core (chociaż Core ma większy limit dla transakcji Taproot). Wygląda na to, że pozostałe dwie implementacje, które nie były zsynchronizowane, miały taki kod utrzymał mniejszy limit.

Bardzo małe różnice we wdrożeniach mogą prowadzić do braku konsensusu.

Posiadanie wielu implementacji Bitcoina jest niebezpieczne

Satoshi nie podobał mi się pomysł wielokrotnych implementacji Bitcoina. „Nie sądzę, że druga, kompatybilna implementacja Bitcoina będzie kiedykolwiek dobrym pomysłem.” Jako powód podał: „Projekt w tak dużej mierze zależy od tego, czy wszystkie węzły uzyskują dokładnie identyczne wyniki w trybie lockstep, że druga implementacja stanowiłaby zagrożenie dla sieci”.

Groźba? O co tyle szumu?

Prawdopodobnie słyszałeś, że łańcuch z największą liczbą dowodów pracy jest prawdziwym łańcuchem. Kiedy dwóch różnych górników znajdzie blok w tym samym czasie, łańcuch pęka i inni górnicy zaczynają budować na tym bloku, o którym usłyszą jako pierwsi.

Gdy tylko po jednej stronie podziału zostanie dodany nowy blok, większość węzłów i górników akceptuje to jako nowy prawdziwy łańcuch i porzuca drugą stronę podziału. Bloki te nazywane są blokami przestarzałymi, chociaż niektórzy nazywają je blokami osieroconymi.

Ponieważ średni czas pomiędzy blokami w Bitcoinie wynosi 10 minut, jest prawdopodobne, że cała sieć dowie się o tym nowym bloku, zanim zostanie dodany do przegrywającej strony podziału, a łańcuch, który wykona najwięcej pracy, wygrywa.

„Węzły będą podążać za prawidłowym łańcuchem z największą ilością pracy… Słowo klucz tutaj jest prawidłowe. Jeśli węzeł otrzyma blok, który uzna za nieprawidłowy, nie ma znaczenia, ile pracy zostanie wykonane nad tym blokiem, węzeł nie zaakceptuje tego łańcucha. — Andrzej Chow

Kluczowym słowem jest „ważne”. Zagrożenie pojawia się, gdy górnik znajdzie blok, który według niektórych innych górników i węzłów jest nieprawidłowy. Górnicy, którzy uznają to za słuszne, będą próbować budować nowe bloki na tym łańcuchu. Górnicy, którzy uważają, że jest to nieprawidłowe, będą próbowali budować na ostatnim prawidłowym bloku, o którym wiedzą. Wynik: dwa łańcuchy i nie wiadomo, który jest prawdziwy.

Jak do cholery mogłoby do tego dojść?

Cóż, jak widzieliśmy w przypadku niedawnego błędu z węzłami LND, jeśli w jednej implementacji Bitcoina występuje błąd, którego nie ma w innych implementacjach, może to prowadzić do braku konsensusu co do tego, czy blok jest ważny, czy nie.

Bitcoin nie ma mechanizmu naprawiającego ten problem. Społeczność spoza protokołu musi zdecydować, co stanie się dalej. Brzmi to bardzo nieprzyjemnie.

Do tego stopnia, że ​​powiedział to twórca Bitcoina, Peter Todd inne implementacje muszą odpowiadać błędom Bitcoin Core.

Proszę bardzo: wielokrotne wdrożenia są niebezpieczne!

Jakie są inne implementacje Bitcoina i dlaczego istnieją?

Po pierwsze, większość osób korzysta z Bitcoin Core.

Luke Dashjr widzi około 43,000 XNUMX węzłów, Z czego 98% korzysta z Bitcoin Core a coś o nazwie Coin Dance widzi blisko 15,000 XNUMX węzłów, Z czego 96% korzysta z Bitcoin Core. W tej chwili wygląda na to, że bardzo niewiele osób korzysta z alternatywnych implementacji.

Niemniej jednak istnieją aktywne projekty, które próbują zbudować i utrzymać inne bazy kodów implementujące protokół Bitcoin. Zawierają:

Jameson Lopp ma świetna strona z bardziej wyczerpującą listą i linkami do wszystkich innych implementacji.

Nad wszystkimi tymi projektami pracują niezwykle utalentowani programiści, a każdy z nich istnieje od ponad kilku lat. Po co wkładać tyle wysiłku w coś, co wydaje się takim problemem?

Bitcoin nie wymaga pozwolenia. Każdy może pobrać łańcuch; każdy może wchodzić w interakcję z siecią; i nikt nie może powstrzymać Cię od kodowania lub uruchamiania alternatywnej implementacji.

Jednak wyraźnie niektórzy ludzie są odpowiedzialni wprowadzania zmian w repozytorium Bitcoin i proces ich wyboru wydaje się nieformalny. Chociaż istnieje Proces propozycji ulepszeń Bitcoina (BIP). jeśli chodzi o sugerowanie zmian w Bitcoin Core, jest to również dość nieformalne.

Nic z tego nie jest bezpośrednim problemem. Jak podkreśla Marty Bent, szorstki konsensus może być siłą. Jeśli proces zmiany Bitcoina jest trudny i niejasny, oznacza to, że zmiany zostaną dokładniej sprawdzone.

Następnym krokiem w kierunku przybliżonego konsensusu jest posiadanie więcej niż jednej popularnej implementacji.

Brak wielu implementacji może być bardziej niebezpieczny

Nie ma wątpliwości, że bycie jedną z osób, które uzyskały dostęp do Bitcoin Core, jest już bardzo trudnym zadaniem. W świecie, w którym Bitcoin odgrywa kluczową rolę jako instrument monetarny, zadanie to stanie się znacznie trudniejsze. Mała grupa programistów może stać się bardzo wartościowym celem. Przynajmniej ich uwaga zostanie zwrócona w celu lobbowania za różnymi włączeniami lub wykluczeniami w następnej wersji oprogramowania.

Pomyśl o branży lobbingowej, która obecnie istnieje w polityce. Dlaczego coś takiego nie miałoby się rozwinąć wokół ludzi, którzy mają dostęp do jedynej implementacji protokołu Bitcoin?

Podobnie jak obecnie politycy, będą postrzegani jako osoby mające dostęp do władzy. W związku z tym ludzie będą ich atakować, z tą różnicą, że ci programiści nie będą mieli siły państwa, aby ich bronić. Jakie to będzie życie? Kto dobrowolnie by to wybrał?

Ostatecznie globalny system finansowy spoczywa na barkach małej grupy osób, które mają dostęp do jednego repozytorium GitHub, dość duży ciężar. Może nie różni się tak bardzo od globalnego systemu finansowego, od którego staramy się uciec, w którym monetarna przyszłość ludzi zależy od decyzji kilku bankierów centralnych.

Wiele wdrożeń na ratunek!

Obecność i powszechne stosowanie wielu implementacji w sieci Bitcoin może złagodzić tę presję, znacznie utrudniając złośliwemu aktorowi zmianę protokołu Bitcoin.

Jeśli uczestnicy sieci Bitcoin są bardziej równomiernie rozmieszczeni w różnych implementacjach, jest więcej miejsca na wypłynięcie dobrych pomysłów. Proponowanie zmian w Bitcoinie lub ich odrzucanie jest o wiele bardziej zdecentralizowane, jeśli nie odbywa się to wszystko w jednym obozie.

Oczywiście używanie różnych implementacji Bitcoina zwiększa ryzyko podziału łańcucha. Katastrofalny podział łańcucha – w wyniku którego znaczna część węzłów i górników przypadkowo oddzieliła się od siebie – nie byłby dobry dla Bitcoina, a już na pewno nie dla jego ceny. Nie zagroziłoby to jednak bezprawnemu charakterowi Bitcoina.

Scentralizowane środowisko programistyczne, w którym wszyscy opierają się wyłącznie na Bitcoin Core, może zagrozić brakowi uprawnień. Rozmowa na ten temat musi zająć się ryzykiem związanym z tak dużym poleganiem na Bitcoin Core, a nie skupiać się wyłącznie na problemach, które mogą być spowodowane alternatywną implementacją.

Jest świetny, starszy artykuł na temat tej debaty przez Aarona van Wirduma. Możesz także przeczytać nowszą, wątek informacyjny o nim.

To jest post gościnny autorstwa Billa Scoresby'ego. Wyrażone opinie są wyłącznie ich własnymi opiniami i niekoniecznie odzwierciedlają opinie BTC Inc lub Bitcoin Magazine.

Znak czasu:

Więcej z Magazyn Bitcoin