Przejdź do głównej treści

Ethereum w 30 minut – Vitalik Buterin

Vitalik Buterin o ewolucji Ethereum jako zdecentralizowanego komputera światowego, omawiający dowód stawki (PoS), skalowanie warstwy 2, abstrakcję kont i plany na przyszłość.

Date published: 12 listopada 2024

Vitalik Buterin, założyciel Ethereum, otwiera Devcon SEA kompleksowym przeglądem ewolucji Ethereum jako zdecentralizowanego komputera światowego. Vitalik omawia dowód stawki (PoS), skalowanie warstwy 2 (L2), różnorodność klientów oraz aplikacje, które definiują, w jakim kierunku zmierza ekosystem Ethereum.

Poniższy zapis to przystępna kopia oryginalnej transkrypcji wideo (opens in a new tab) opublikowanej przez Fundację Ethereum. Została ona lekko zredagowana w celu poprawy czytelności.

Wprowadzenie (0:02)

Świetnie, a więc Ethereum w 30 minut. To prezentacja, którą wygłaszałem na właściwie każdym Devconie od momentu uruchomienia. Ciekawe jest to, że w miarę jak zmienia się ekosystem Ethereum, jak zmienia się protokół Ethereum i jak zmieniają się czasy, treść tej prezentacji również ulega sporym zmianom. Jeśli wrócicie do jej odpowiednika z 2015 roku, usłyszycie wiele o blokach wujków (uncle blocks). Oczywiście bloki wujków to cecha dowodu pracy (PoW). Teraz mamy dowód stawki (PoS), więc nie mamy już bloków wujków. Ethereum ma teraz oczywiście również warstwy 2 (L2), a wtedy w ogóle by ich tu nie było. Teraz wiemy, że warstwy 2 to połowa sukcesu. Ethereum to przede wszystkim ewoluujący ekosystem, a treść tej prezentacji będzie się nadal zmieniać wraz ze zmianami technologii, a także w miarę jak nacisk ekosystemu przesuwa się z budowania podstawowej infrastruktury na ogromne skupienie się na aplikacjach.

Czym więc jest Ethereum? Po pierwsze, Ethereum to komputer światowy. Kto z was pamięta, że Ethereum jest komputerem światowym? To jest miejsce, w którym powinienem wstawić ten mem z facetem z pistoletem w kosmosie, który mówi „zawsze tak było” (always has been), ale nigdy nie rozumiałem, dlaczego przekazanie komuś tak niesamowitego i pięknego objawienia ma nastąpić w tym samym czasie, co zastrzelenie go w kosmosie 20 000 kilometrów od domu. Więc dzisiaj tego nie zrobię. Ethereum to komputer światowy. Zawsze nim było i zawsze będzie.

Oprócz tego Ethereum to niezwykle duża i zróżnicowana gospodarka onchain. Na szczęście Josh tuż przede mną wygłosił niesamowicie dobrą prezentację, w której omówił wszystkie różne aspekty tej gospodarki. Ethereum to także niezwykle duża i zróżnicowana globalna społeczność. Ethereum to wiele rzeczy. Myślę, że prawdopodobnie powinienem też wywiesić migający znak z napisem „ETH to pieniądz”, ale Ethereum to naprawdę wiele rzeczy.

Jak działa komputer światowy? Sposób, w jaki o tym myślę, jest taki: warstwa 1 (L1) to maszyna zaufania, a warstwa 2 (L2) to procesor graficzny (GPU). Warstwa 1 Ethereum, czyli główny blockchain Ethereum, to kotwica, która zapewnia bezpieczeństwo reszcie ekosystemu i spaja go w całość. Warstwa 1 jest powodem, dla którego warstwy 2 mogą komunikować się ze sobą bez konieczności zaufania (trustlessly). Przynajmniej gdy wszystko zostanie zaktualizowane do Etapu 2 (Stage 2), będzie można wziąć aktywo, wyemitować je na Optimism, a następnie przenieść i trzymać w inteligentnym kontrakcie na Arbitrum, robiąc to przy zerowym ryzyku kontrahenta. Warstwa 1 nie jest po to, by być ultraszybka; nie jest po to, by przetwarzać milion transakcji na sekundę. Warstwa 1 jest przede wszystkim po to, by być zdecentralizowana, solidna i niezawodna.

Warstwa 2 to GPU. Warstwa 2 to wy wszyscy na tej sali, którzy jesteście częścią jakiejkolwiek warstwy 2. Kto z was jest częścią warstwy 2? Hurra. Kto z was korzystał z warstwy 2? Kto korzystał z warstwy 1? Dobrze, wszyscy jesteśmy tu użytkownikami. Istnieje wiele tych różnych GPU, a Ethereum jako komputer światowy jest w stanie utrzymać się w całości, ponieważ każde z tych GPU jest połączone z maszyną zaufania poprzez systemy dowodów optymistycznych, dowody z wiedzą zerową, SNARK-i, STARK-i, plonk czy jakiekolwiek inne modne hasła. Wszystkie te systemy zapewniają, że warstwa 1 jest w stanie bez zaufania weryfikować to, co dzieje się wewnątrz warstw 2, a warstwy 2 są również w stanie bez zaufania odczytywać to, co dzieje się na warstwie 1.

Decentralizacja i różnorodność (5:11)

Istnieje ważna interakcja między tymi dwoma komponentami i razem tworzą one Ethereum, które mamy dzisiaj. Czym jest L1? To łańcuch. Działa na dowodzie stawki. Nie psuje się. Co to oznacza? L1 Ethereum to łańcuch, który istnieje łącznie od ponad dziewięciu lat, a w swojej obecnej formie dowodu stawki istnieje od nieco ponad dwóch lat. Jedną z naprawdę ważnych rzeczy dla warstwy bazowej jest wyraźny dowód na to, że budujesz na warstwie bazowej, która jest zdecentralizowana, otwarta, solidna i prawdopodobnie zachowa te cechy w przyszłości.

Jednym z elementów tego jest powolność zmian. Nie chcesz systemu, który nagle obudzi się we wtorek, będzie miał nowy zarząd, a następnie zdecyduje, że całkowicie zacznie usuwać całą masę aplikacji, zmieni cały swój model, podniesie opłaty dziesięciokrotnie lub zrobi inne rzeczy bez ostrzeżenia. Inną częścią decentralizacji i odporności jest powrót do sprawności (recovery). Ilekroć pojawia się problem, faktyczna zdolność do podniesienia się po nim i poprawy jakości warstwy 1 z biegiem czasu.

Jeśli spojrzymy na wykres puli kopania dowodu pracy Bitcoina w porównaniu do puli stakingu dowodu stawki Ethereum, celowo jestem tutaj hojny, ponieważ przed The Merge decentralizacja dowodu pracy Ethereum była jeszcze bardziej skoncentrowana. To, co widzimy po stronie dowodu stawki Ethereum, to dość zróżnicowany zestaw puli stakingowych. Jeśli przyjrzycie się Lido, ma ono nieco poniżej 30%, ale Lido nie jest jednym aktorem. To DAO. Technicznie rzecz biorąc, depozyty są podzielone między około 40 różnych operatorów węzłów. Rozsądnie jest myśleć o tym jako o czymś pomiędzy jednym a 40 aktorami.

Następnie mamy „niezidentyfikowane” (unidentified). Niezidentyfikowane to nie jest aktor, tak samo jak klawisz „any” na klawiaturze nie jest w rzeczywistości klawiszem. Właściwie nie wiemy, co to jest. Prawdopodobnie jest tam wielu stakerów indywidualnych (solo stakers), stakerów z małych firm i różnych malutkich puli stakingowych. L1 Ethereum ma dziś w rzeczywistości zaskakująco wysoki stopień decentralizacji w swoim projekcie dowodu stawki, a jest to właściwość, która z czasem staje się tylko lepsza.

Jedną z właściwości, która faktycznie znacznie się poprawiła, jest różnorodność klientów. Około pięć lat temu Ethereum to był w zasadzie tylko Go Ethereum (Geth). Kiedy masz ekosystem zdominowany przez jednego klienta, to samo w sobie staje się centralnym punktem awarii. Kto z was pamięta ataki DoS z 2016 roku? Budzisz się o 5:17 rano, dostajesz pobudkę w wojskowym stylu, schodzisz do pokoju narad (war room), a ktoś odkrył błąd w kliencie. Cały łańcuch się zatrzymuje. Naprawiamy to, a dwa lub trzy dni później ktoś znajduje kolejny błąd. Trwa to przez cały miesiąc, aż w końcu musimy przeprowadzić twarde rozwidlenie. Ale w tym okresie możliwość posiadania przez Ethereum dwóch różnych klientów — w tamtym czasie były to Geth i Parity — w zasadzie uratowała łańcuch. Bywały chwile, kiedy błąd uderzał w Getha, ale nie w Parity, i takie, kiedy błąd uderzał w Parity, ale nie w Getha. Ethereum wiele zyskało na posiadaniu wielu implementacji oprogramowania i jest to coś, co na rok 2024 jest prawdopodobnie w najlepszym stanie w całej historii Ethereum.

Wielu klientów i solidność (10:40)

Jeśli spojrzymy na klientów konsensusu, którzy obsługują część Ethereum związaną z dowodem stawki, oraz klientów wykonawczych, którzy obsługują część EVM Ethereum, możemy zauważyć, że pojedynczym klientem o najwyższym udziale w rynku jest Geth, który ma około 50%. Co się stanie, jeśli dosłownie dzisiaj, w tej chwili, wystąpi błąd w jakimkolwiek kliencie Ethereum? Sprawdźcie, czy Ethereum nadal działa. Zgaduję, że tak — postawiłbym 99,99% na PolyMarket.

Przypadek pierwszy: Co się stanie, jeśli tym klientem jest Geth? To najgorszy scenariusz. Jeśli klientem jest Geth i wystąpi błąd, realistycznie rzecz biorąc, łańcuch dzieli się na pół. Jedna połowa podąża za Gethem, druga za pozostałymi klientami, ale po obu stronach łańcuch przestaje się finalizować. Do finalizacji potrzeba dwóch trzecich. Jeśli masz mniej niż dwie trzecie, bloki nadal są tworzone, ale łańcuch przestaje się finalizować. Jeśli jesteś użytkownikiem, aplikacją lub firmą czekającą na potwierdzenie jakiejś transakcji, wykryjesz, że żaden z łańcuchów się nie finalizuje, i przejdziesz w stan oczekiwania. To, co realistycznie się wydarzy, to postawienie głównych programistów (core devs) w stan najwyższej gotowości, ustalenie, który klient faktycznie ma błąd, i naprawienie go. Jedyny raz, kiedy to się zdarzyło w Ethereum — ciekawostka, sam wysłałem transakcję, która to spowodowała w 2016 roku — w zasadzie wszystko zostało naprawione w ciągu 12 godzin.

To najgorszy scenariusz. W każdym innym przypadku, w zasadzie jeśli Prysm lub Lighthouse mają błąd, jedyne co się dzieje, to to, że Ethereum przestaje się finalizować na co najwyżej około jednego dnia, a potem po prostu wraca do normy. W przypadku jakiegokolwiek innego klienta w ogóle niczego nie zauważycie. Z punktu widzenia praktycznej decentralizacji posiadanie wielu klientów jest niezwykle pomocne. Dywersyfikuje to władzę i kontrolę nad ekosystemem Ethereum, zwłaszcza w jakiejkolwiek spornej sytuacji. Gdyby ponownie doszło do incydentu typu rozwidlenie DAO, a jeden zespół programistów dokonałby niepopularnego wyboru, użytkownicy mogliby bardzo łatwo przełączyć się na innych klientów i całkowicie ich ominąć.

Nie jest to praktyczne w ekosystemie z jednym klientem. Posiadanie zróżnicowanego ekosystemu z wieloma klientami jest trudne do osiągnięcia. Poza Ethereum żaden inny łańcuch tak naprawdę nie osiągnął niczego zbliżonego do tego. Nawet poza Ethereum, jak w przypadku przeglądarek internetowych — przeglądarki internetowe mają być otwartym standardem. Rzeczywistość jest taka, że ponad 80% działa na jakimś rozwidleniu WebKit, a reszta na Firefoksie, który dzielnie próbuje utrzymać swoją pozycję. Ethereum zdołało przeciwstawić się temu trendowi.

Dwa lata temu ten wykres wyglądał gorzej. Decentralizacja Ethereum nie tylko potrafi się nie pogarszać, ale jest również w stanie aktywnie reagować na problemy i agresywnie dążyć do ich poprawy z biegiem czasu. Jeśli budujesz aplikację, która ma istnieć za 5 lub 10 lat, to właśnie takich właściwości byś szukał.

Jeśli masz 32 ETH, lub mniej, jeśli dołączysz do puli, pojawia się coraz więcej naprawdę interesujących opcji puli — takich jak Obol squad staking, który pozwala na tworzenie mniejszych puli ze znajomymi. Istnieje wiele różnych sposobów, aby zostać stakerem, a jeśli to zrobisz, stajesz się częścią tej sieci węzłów zabezpieczających blockchain Ethereum.

Weryfikacja węzłów i skala (15:06)

Chyba tak opisuje to propaganda fundacji — ma uroczego słonia. Więc brawa dla słonia! Ty również możesz dołączyć do sieci i pomóc w jej zabezpieczaniu. Nawet jeśli nie jesteś stakerem, możesz również uruchomić węzeł Ethereum na swoim komputerze i dobrowolnie weryfikować łańcuch.

Chyba w dzisiejszych czasach nikt już nawet nie ma komputerów stacjonarnych, które tak wyglądają. Wrzuciłem hasło „komputer stacjonarny” do Stable Diffusion 3.5 i wypluło to, więc taki komputer dostajecie. Ale możecie uruchomić węzeł Ethereum na swoim komputerze, aby weryfikować łańcuch. To naprawdę ważne, ponieważ jeśli masz użytkowników weryfikujących łańcuch, to nawet większość lub superwiększość stakerów działających razem nie jest w stanie zmienić ludziom zasad bez zepsucia wszystkiego. Zasady Ethereum mogą ulec zmianie tylko poprzez twarde rozwidlenie, które zostało uzgodnione w drodze szerokiego konsensusu społeczności.

Myślę, że to jedna z tych rzeczy, które naprawdę warto zachować. Wśród ekosystemów blockchain to w zasadzie Bitcoin i Ethereum mają naprawdę silną kulturę dążenia do tego, by było to możliwe, i ciągłego ulepszania zdolności ludzi do weryfikacji łańcucha. Nadchodzi wiele aktualizacji protokołu, których dokładnym celem jest uczynienie tego jeszcze łatwiejszym.

Jutro będziecie mogli uruchomić węzeł bez konieczności posiadania więcej niż niewielkiej ilości pamięci masowej, korzystając z klientów bezstanowych (stateless clients). To część mapy drogowej o nazwie „The Verge”. Mamy również lekkich klientów (light clients). Istnieje projekt o nazwie Helios, który wykonuje formę lekkiej weryfikacji. Lekka weryfikacja nie jest idealna, ale oznacza, że nie musisz ufać węzłowi RPC, aby przekazywał ci informacje o łańcuchu. Długoterminowa przyszłość jest taka, że chcemy z-SNARK-ować cały łańcuch. Kiedy z-SNARK-ujemy cały łańcuch, będziecie mogli weryfikować zasady Ethereum na niezwykle dużym lub malutkim sprzęcie.

Staking z mniejszą ilością ETH to również bardzo aktywny wymóg badawczy. 32 ETH to wciąż dużo. Chciałbym, aby ludzie mogli być stakerami z 1 ETH. Istnieją różne sposoby, aby to zrobić, takie jak Orbit lub wprowadzanie ulepszeń w agregacji. Ogólnie rzecz biorąc, nadchodzi wiele ulepszeń protokołu, które mają na celu ułatwienie i zwiększenie dostępności stakingu oraz uruchamiania węzła.

Co działa na L1 Ethereum? Niektóre aplikacje o wysokiej wartości. Wiele zdecentralizowanych finansów (DeFi) o wysokiej wartości działa na L1. ENS jest obecnie na L1, chociaż coraz częściej współpracuje z warstwami 2. Ludzie trzymają aktywa na warstwie 1. Ponadto warstwa 1 zarządza korzeniami bloków (block roots), korzeniami stanu (state roots) i systemami dowodów dla warstw 2. Zabezpiecza ona warstwy 2. Warstwa 1 musi być wystarczająco potężna, aby obsługiwać operacje międzywarstwowe, zwłaszcza w przypadku awarii warstwy 2. Różnica między warstwą 2 a niezależnym łańcuchem polega na tym, że nawet jeśli twoja warstwa 2 padnie ofiarą ataku 51% lub zespół zakończy działalność, warstwa 1 nadal tam jest, aby chronić użytkowników. Użytkownicy są w stanie udowodnić swoją własność i stan wewnątrz warstwy 2 i zmigrować je z powrotem do warstwy 1.

Prędkości L2 i mapy drogowe (20:33)

Niedawno przeprowadzono z tym eksperyment na żywo. dYdX v3 zostało niedawno zamknięte, a ludzie z L2Beat napisali własną implementację oprogramowania mechanizmu ewakuacyjnego (escape hatch). Bez jakiegokolwiek zaangażowania ze strony zespołu dYdX, użytkownicy byli w stanie wziąć wszelkie aktywa, które mieli w dYdX v3, i przenieść je z powrotem na L1 Ethereum. Wyjście z warstwy 2 bez zaangażowania zespołu to nie tylko teoria, to rzeczywistość.

Jeśli L1 uruchamia aplikacje i chroni L2, to co robią L2? L2 zapewniają szybkość i skalę. W tym roku opłaty na warstwie 2 spadły z około 50 centów do mniej niż 1 centa. W zasadzie dla niezwykle szerokiej klasy aplikacji Ethereum z dnia na dzień zmieniło się z w zasadzie nieosiągalnego cenowo na całkowicie przystępne.

A co z czasem włączenia transakcji? Kto z was pamięta doświadczenie wysyłania transakcji i czekania na jej włączenie przez jakąś arbitralną liczbę minut — na przykład 10, 40 lub 90 minut? Kto z was pamięta takie doświadczenie w Ethereum w ciągu ostatnich 6 miesięcy? Ethereum uległo ogromnej poprawie. W erze dowodu pracy średni czas bloku w Bitcoinie wynosił 10 minut, ale w Ethereum średni czas bloku to 12 sekund. Jednak istniało irytujące zjawisko, w którym jeśli miałeś pecha z ceną gazu, musiałeś czekać 10 lub 20 minut. EIP-1559, które pojawiło się w 2021 roku, w zasadzie to rozwiązało.

Potem The Merge. Z powodu interesującego dziwactwa matematycznego, mimo że średni czas między blokami skrócił się tylko z 13 sekund do 12 sekund, średni czas między wysłaniem przez ciebie transakcji a jej włączeniem skrócił się z nieco ponad 13 sekund do nieco ponad sześciu sekund. Zadanie matematyczne dla was: dowiedzcie się, dlaczego tak jest. Po The Merge czas włączenia w zasadzie spada do 6 do 30 sekund. Wreszcie, dzięki warstwom 2, masz wstępne potwierdzenia (pre-confirmations), więc warstwy 2 są wystarczająco szybkie, aby potwierdzić twoją transakcję w ciągu kilkuset milisekund. Jako użytkownik możesz być częścią aplikacji, w której wiele się dzieje, a jednocześnie opłaty za twoje transakcje pozostają tanie.

Historia Ethereum: listopad 2013 to biała księga (whitepaper). Lipiec 2015 to uruchomienie. Około 2018 roku Ethereum ustaliło swój przybliżony projekt dla dowodu stawki i próbkowania dostępności danych. Oryginalne prace na temat próbkowania dostępności danych i kodowania wymazań (erasure coding) napisałem jeszcze w 2017 roku.

Casper i skalowanie rollupów (25:27)

Jeśli poszperacie na GitHubie, możecie poszukać katalogu o nazwie simple_casper i znaleźć kontrakty napisane w języku Serpent. Kto z was pamięta Serpenta? Kto z was używa Serpenta? To znaczy, uważam, że Python jest naprawdę piękny, ale jeśli tego chcecie, powinniście kodować w Vyper. Vyper jest w rzeczywistości świetny i znacznie się poprawił. Wewnątrz tego repozytorium w 2017 roku próbowaliśmy dokonać pełnej abstrakcji i napisać logikę dowodu stawki bezpośrednio jako inteligentny kontrakt. Uruchomiliśmy demo o 23:20 czasu w Bangkoku 31 grudnia 2017 roku — chcieliśmy wypuścić coś przed Nowym Rokiem — i demo ostatecznie dość szybko się zepsuło. To były wczesne dni.

Od tego czasu to już nie są wczesne dni. Na początku 2018 roku rozpoczął się ogromny wysiłek mający na celu zbudowanie systemu dowodu stawki i systemu skalowania Ethereum, który od tego czasu przekształcił się w bloby, które mamy dzisiaj. W 2022 roku miał miejsce The Merge, przejście z dowodu pracy na dowód stawki. W 2024 roku pierwsza część „The Surge”. Jeśli spojrzycie na diagram mapy drogowej, zobaczycie dwa kamienie milowe: podstawowe skalowanie rollupów i pełne skalowanie rollupów. Podstawowe skalowanie rollupów oznacza, że główne warstwy 2 muszą osiągnąć Etap 1 (Stage 1), a bloby muszą istnieć. Do 2024 roku faktycznie to osiągnęliśmy. Kolejnym krokiem jest w pełni działające próbkowanie dostępności danych i osiągnięcie przez główne L2 Etapu 2. Myślę, że nastąpi to szybciej, niż ludziom się wydaje.

Wciąż pozostało wiele problemów do rozwiązania. Chcemy ulepszeń w zakresie decentralizacji. Kto z was chce, aby Ethereum było scentralizowane? Okej, jedna osoba chce, aby Ethereum było scentralizowane. Odporność na cenzurę — odporność na komputery kwantowe? Okej, jedna ręka. Może czujesz, że potrzebujesz upadku, aby mogła nastąpić odnowa! Ale potrzebujemy dalszych aktualizacji, aby upewnić się, że decentralizacja, odporność na cenzurę i odporność na komputery kwantowe będą nadal miały miejsce.

Potrzebujemy również progresywnych, ciągłych ulepszeń wydajności i skali. Warstwa 2 będzie skalować się niezwykle szybko, a jej bezpieczeństwo poprawi się w ciągu najbliższych kilku lat. Spodziewam się również progresywnych, ostrożnych, ale zdecydowanych, ciągłych ulepszeń przepustowości warstwy 1. Musimy to zrobić, aby wspierać aktywność na L1 i ponieważ L1 działa jako ostateczne zabezpieczenie (backstop). Maksymalna teoretyczna bezpieczna przepustowość L2 jest proporcjonalna do przepustowości L1.

Będziemy mieli aktualizacje próbkowania dostępności danych, aby zwiększyć liczbę blobów, które Ethereum może obsłużyć. Około tydzień temu Ethereum faktycznie weszło w tryb odkrywania (discovery) cen dla blobów, co oznacza, że liczba używanych blobów dokładnie odpowiada długoterminowemu celowi. Teraz musimy przeskalować tę liczbę.

Przeskalowaliśmy się na tyle, że możliwa jest szeroka gama aplikacji: ENS, płatności konsumenckie, sieci społecznościowe. Jedną z kategorii, która moim zdaniem będzie niezwykle ważna w ciągu następnej dekady, są mieszane aplikacje finansowe i niefinansowe — aplikacje, które wykorzystują potęgę finansów, ale ostatecznie służą celom wykraczającym poza cele finansowe. Jest tu wiele bardzo potężnych aplikacji. Spędziliśmy dużo czasu na ulepszaniu technologii i będziemy to kontynuować, ale jest ona na poziomie, na którym teraz nadszedł czas na budowanie. Dziękuję. [Oklaski]

Czy ta strona była pomocna?