Wady istniejących łańcuchów bloków: Ethereum

Czwarty post w serii dotyczącej uzasadnienia Themelio

(Eric (Yuhao Dong)) (31 sierpnia 2020 r.)

Rozproszony komputer z endogenicznym zaufaniem

Kiedy Ethereum po raz pierwszy wydano w 2015 r., miał być blockchainem radykalnie różnym od Bitcoina. Zamiast wdrażać pojedynczą aplikację, Ethereum ma być odpowiednikiem systemu operacyjnego dla aplikacji, które są endogennie godne zaufania, lub „dApps” (aplikacje zdecentralizowane). Ta funkcjonalność jest obsługiwana przez kompletny język Turinga (EVM) dla programów osadzonych w łańcuchu bloków lub „inteligentnych kontraktów”, które mogą uzyskiwać dostęp i przechowywać dowolny stan w łańcuchu bloków. Ethereum jest w rzeczywistości „komputerem świata”, z którego każdy może korzystać bez zaufania.

W kolejnych latach opracowano szeroką gamę aplikacji Ethereum, w tym nowe kryptowaluty, takie jak Dai , zdecentralizowane platformy bukmacherskie, takie jak Augur , a nawet wirtualne przedmioty kolekcjonerskie, takie jak cryptokitties. Co najciekawsze, wyłonił się ekosystem zdecentralizowanego finansowania w łańcuchu (DeFi), z coraz bardziej płynnymi rynkami kapitałowymi dostępnymi dla każdego, kto ma połączenie sieciowe. Bezpieczeństwo wszystkich tych aplikacji zależy od endogenicznego zaufania, jakie zapewnia Ethereum.

Niestety, zaufanie to jest w pewnym sensie niewłaściwe. Endogeniczne zaufanie Ethereum boryka się z podobnymi, być może gorszymi problemami w porównaniu z Bitcoinem.

Złożoność niszczy zaufanie

W białej księdze , twórca Vitalik Buterin wyartykułował wizję Ethereum jako „prostej” platformy bez „funkcji” opartej na prostym języku inteligentnych kontraktów (EVM), który „może zaimplementować każdy przeciętny programista”. Jednak dzisiaj Ethereum jest niezwykle złożonym systemem z referencyjną implementacją prawie miliona linii kodu. Taka złożoność wymaga ciągłej konserwacji i częstych zmian. Jednak wszelkie aktualizacje protokołów łamiące konsensus (lub „twarde rozwidlenia”) w łańcuchach bloków oznaczają zastąpienie zaufania endogenicznego zaufaniem do zewnętrznego twórcy protokołu. Od sierpnia 2020 r. W poniższej tabeli wymieniono wszystkie przypadki „twardego rozwidlenia” protokołu Ethereum.

Jak wykazano powyżej, model złożonego systemu operacyjnego dApp w Ethereum wymaga częstego obchodzenia endogenicznego zaufania.

Co bardziej niepokojące, deweloperom i społeczności Ethereum po prostu brakuje silnego wiara w znaczenie endogenicznego zaufania. W rzeczywistości Vlad Zamfir, główny programista Ethereum, jest autorem (dobrze znanego posta na blogu) sprzeciwiającego się „prawu Szabo”, które mówi, że blockchainy nie powinny być aktualizowane, chyba że z krytycznych, niekontrowersyjnych powodów. W tym samym poście Zamfir twierdzi również, że zewnętrzna interwencja w łańcuch bloków jest uzasadnioną formą „prawa kryptograficznego”.

Nie jest zaskakujące, że połączenie złożoności protokołu i obojętności społecznej wobec zaufania endogenicznego doprowadziło do rażących naruszeń endogeniczne zaufanie, które znacząco zakłóciło ekosystem. Najbardziej znanym tego przykładem jest „bailout DAO” z 2016 r.

Studium przypadku: ratunek DAO

17 czerwca 2016 r. Luka w zabezpieczeniach inteligentnych kontraktów zasilających Złośliwie wykorzystano DAO, jedną z najpopularniejszych wówczas aplikacji Ethereum. Atakujący ukradł bezprecedensową ilość ponad 3,6 miliona ETH – prawie 5\% wszystkich istniejących ETH – z kontraktu.

Społeczność Ethereum wybuchła gorącą debatą na temat tego, co zrobić z atakiem. Ostatecznie głosowanie nad monetą w łańcuchu odbyło się z krótkim wyprzedzeniem 15 lipca 2016 r. 87\% zagłosowało za twardym widelcem, aby odwrócić atak i zwrócić inwestorom w The DAO, chociaż tylko 5,5\% wszystkich zaległych ETH okazało się głos. Cztery dni później wydano nową wersję Ethereum, która wykonała hard fork.

Ten wysoce kontrowersyjny fork DAO całkowicie podważył niezmienność, kluczową właściwość związaną z bezpieczeństwem łańcucha bloków. Część społeczności Ethereum nadal rozpoznawała oryginalną historię transakcji Ethereum, tworząc oddzielny łańcuch bloków znany jako Ethereum Classic. Podobnie jak w przypadku rozwidlenia Bitcoin w 2017 r. Na Bitcoin i Bitcoin Cash, użytkownicy musieli zdecydować poza pasmem, któremu rozwidleniu zaufać, podczas gdy twórcy aplikacji musieli poradzić sobie z gruntem pod ich aplikacjami, nagle rozdzielając się na dwie części.