Wydajność i skalowalność łańcucha blokowego Ethereum
Pokaż więcej
Poznaj treść artykułu i oceń nastroje rynkowe w zaledwie 30 sekund!
Podobnie jak Bitcoin, głównym powodem problemu ze skalowalnością Ethereum jest protokół sieciowy, który każdy węzeł sieci musi przetwarzać każdą transakcję. Ethereum 1.x wdraża nieco zmodyfikowaną wersję mechanizmu kontroli pracy (PoW). WEthereum górnicy muszą ścigać się, aby znaleźć coś, co pozwoli im sprostać docelowym trudnościom. Każdy węzeł musi sprawdzić, czy praca górników jest prawidłowa i zachować dokładną kopię bieżącego stanu sieci. To znacznie ogranicza możliwości procesu transakcyjnego i przepustowość sieci blockchain Ethereum. Obecnie może przetwarzać tylko 12-15 transakcji na sekundę .
Trilemat skalowalności Blockchain
Po raz pierwszy stosowany przez Vitalika Buterina, trylemat skalowalności to koncepcja blockchain dotycząca jego zdolności do rozwiązywania problemów skalowalności, decentralizacji i bezpieczeństwa, bez uszczerbku dla któregokolwiek z nich. Trilemata twierdzi, że prawie niemożliwe jest osiągnięcie wszystkich trzech właściwości w systemie blockchain:
Decentralizacja : jest to podstawowa zasada, na podstawie której utworzono Bitcoin i blockchain. Decentralizacja pozwala każdemu uczestniczyć w zdecentralizowanym ekosystemie bez centralnego organu lub pośrednika.
Bezpieczeństwo: Odnosi się to do uczciwości i niemożności bezużyteczności księgi publicznej oraz zdolności do powstrzymania ataku51% lub DDoS, takiego jak ataki sieciowe.
Skalowalność: Dotyczy to zdolności do obsługi rosnącej liczby transakcji w sieci blockchain. Aby blockchain Ethereum stał się komputerem światowym, jak wyobrażał sobie wynalazca, musi odpowiadać przepustowości wielu scentralizowanych systemów, takich jak Amazon, Visa czy Mastercard.
Poniższy schemat jest ilustracją trilematu skalowalności w łańcuchu blokowym:
Głównym wyzwaniem skalowalności jest znalezienie sposobu na osiągnięcie wszystkich trzech celów w warstwie podstawowej. Wybory projektowe Bitcoin i Ethereum sprzyjają decentralizacji i bezpieczeństwu, jednocześnie poświęcając skalowalność.
Rozwiązania do skalowania Ethereum
Skalowalność Ethereum jest jednym z najbardziej aktywnych tematów w społeczności Ethereum. Poniżej przedstawiono kilka obszarów troski, którymi społeczność próbuje się zająć w przyszłości Ethereum:
Przetwarzanie transakcji i czas tworzenia blokady z PoW — jak szybko górnicy mogą przetwarzać wszystkie transakcje i tworzyć nową blokadę przez górnictwo?
Finalność transakcji – jak szybko zdecentralizowana sieć może osiągnąć konsensus co do realizacji transakcji i nie można jej cofnąć? Obecnie sieć potrzebuje około sześciu bloków z Bitcoinem i 3-4 minut z Ethereum, aby rozważyć sfinalizowanie bloku w łańcuchu głównym. Zainteresowani czytelnicy powinni sprawdzić blok Vitalik dla rozliczenia transakcji i zablokować prawdopodobieństwo finalności.
Wprowadzane lub proponowane rozwiązania dzielą się na trzy kategorie: rozwiązanie w łańcuchu, rozwiązanie poza łańcuchem i protokoły mechanizmów konsensusu. Istnieją pewne oczywiste lub teoretyczne, takie jak zwiększenie rozmiaru bloku lub wcięcie jednego łańcucha blokowego w wiele niezależnych łańcuchów altcoin. Ze względu na naturę peer-to-peer tradycyjne podejście skalowania poziomego może nie działać. W odniesieniu do sieci Ethereum, niektóre z nich zostały również uwzględnione w stanowych lub bezstanowych inteligentnych kontraktach, które przyczyniają się do problemów ze skalowalnością. Omówimy ogólne koncepcje wszystkich tych rozwiązań, a następnie zagłębimy się w niektóre z obiecujących.
Rozmiar bloku
Jest to podobne do podejścia do skalowania pionowego. Niektóre altcoiny, takie jak Bitcoin Cash, Ethereum Core itp., wdrażają większy rozmiar bloku w celu uzyskania ogólnej wydajności transakcji. Teorią stojącą za tym podejściem jest to, że ponieważ górnictwo PoW jest głównym wąskim gardłem w całym procesie, zwiększając rozmiar bloku, możemy przetworzyć więcej transakcji na górnictwo. Tworzenie wykresów acyklicznych (DAG) dla górnictwa opartego na schodach może trochę potrwać, ale średni czas potrzebny na ukończenie górnictwa może nie ulec pogorszeniu, ponieważ większość klientów Ethereum i tak buforuje DAG.
Poniższy schemat ilustruje działanie tej techniki:
Jednak, podobnie jak skalowanie pionowe, to rozwiązanie wymaga, aby węzły sieciowe miały lepszą przepustowość obliczeniową w celu przetwarzania dużych bloków. Może to prowadzić do scenariusza, w którym sieć jest skoncentrowana na kilku bogatych rękach, a zatem może ostatecznie naruszyć decentralizację i bezpieczeństwo, główne zasady blockchain.
Altcoiny
Innym rozwiązaniem nie jest posiadanie jednego gigantycznego łańcucha blokowego, ale posiadanie wielu mniejszych łańcuchów blokowych ialtcoin . Może to mieć miejsce w końcu, ponieważ wiele branż pionowych tworzy lub planuje tworzenie łańcuchów specyficznych dla danej branży. Zmniejszy to aktywność użytkowników w każdym pojedynczym łańcuchu blokowym, co powinno pozwolić na bardziej skalowalny ekosystem.
Poniższy schemat ilustruje działanie tej techniki:
Istnieje jednak kilka problemów z tą opcją. Jednym z nich są obawy dotyczące bezpieczeństwa. Powszechnie uważa się, że sieć jest bezpieczniejsza, jeśli więcej węzłów sieciowych uczestniczy w przetwarzaniu transakcji w blockchain. Dzięki szerszej dystrybucji łańcuchów altcoin, mniej węzłów będzie działać na dowolnym łańcuchu blokowym. Może to zmniejszyć bezpieczeństwo łańcucha blokowego, ponieważ mniejsza sieć altcoin może być bardziej podatna na ataki sieciowe. Powiedzmy, że w większej sieci mamy około 10 000 węzłów, będzie to wymagało co najmniej 5001 węzłów (lub zwanych 51%) do ataku w sieci. Jeśli podzielimy 10 000 węzłów na 50 mniejszych łańcuchów, każdy łańcuch składa się z 200 węzłów, a do usunięcia każdego mniejszego łańcucha potrzeba tylko 101 węzłów, co nazywamy problemem ataku 1%. Innym problemem jest integracja łańcuchowa. Chociaż istnieją pewne rozwiązania do obsługi integracji cross-blockchain, ogólna złożoność integracji mniejszych łańcuchów i altcoinów drastycznie wzrośnie.
Rozwiązania w łańcuchu
Rozwiązania On-chain, czasami nazywane również rozwiązaniami warstwy 1, mają na celu poszukiwanie rozwiązań w celu rozwiązania problemów ze skalowalnością i wydajnością w podstawowej warstwie sieci blockchain Ethereum. Jednym z takich rozwiązań jest dzielenie się. Sharding nie jest nową koncepcją, ponieważ tradycyjne RDBMS i nowe platformy big data od wielu lat wykorzystują udostępnianie jako sposób na poprawę skalowalności i wydajności.
Celem udostępniania w sieci Ethereum jest pogrupowanie węzłów sieciowych, łańcucha blokowego i stanów globalnych na różne odłamki, a każdy odłamek osiągnie konsensus w całym odłamku stanu transakcji między tymi węzłami w grupie. Na poziomie koncepcyjnym może to nie różnić się znacznie od Plasma, podejście łańcucha bocznego warstwy 2, ale trudności techniczne, implikacje i wysiłki sieciowe są zupełnie inne.
Innym rozwiązaniem warstwy 1 lub rozwiązania łańcuchowego jest przejście na mechanizm konsensusu Proof of Stake (PoS), który jest jednym z najbardziej aktywnych obszarów badawczych dotyczących problemów ze skalowalnością i wydajnością w Ethereum. Istnieje wiele debat dotyczących zalet i wad mechanizmu konsensusu opartego na PoW. Jest dosyć skuteczny w zabezpieczaniu łańcucha blokowego w zdecentralizowanej sieci, ale jest również głównym wąskim gardłem w wydajności łańcucha blokowego.
Mówiąc prościej, Proof of Stake jest jednym z najpopularniejszych algorytmów konsensusu w sieciach blockchain. W przeciwieństwie do konsensusu PoW, gdzie górnicy są nagradzani za rozwiązywanie zagadek kryptograficznych, w algorytmie konsensusu PoS pula wybranych walidatorów na zmianę proponuje nowe bloki. Walidator jest wybierany w deterministyczny sposób, w zależności od jego bogactwa, definiowanego również jako stawka. Każdy, kto zdeponuje swoje monety jako stawkę, może stać się weryfikatorem. Szansa na udział w badaniu może być proporcjonalna do stawek, które włożą. Załóżmy, że Alice, Bob, Catherine i David włożyli odpowiednio 40 Ether, 30 Ether, 20 Ether i 10 Ether, aby wziąć udział; otrzymają oni 40%, 30%, 20% i 10% szans na wybór jako twórca bloków.
Poniżej przedstawiono, jak to działa w mechanizmie konsensusu PoS. Jak pokazano na poniższym schemacie, blockchain śledzi zestaw weryfikatorów, czasami zwanych również twórcami bloków lub fałszerstw. W dowolnym momencie, gdy trzeba utworzyć nowe bloki, blockchain losowo wybiera walidator. Wybrany weryfikator weryfikuje transakcje i proponuje nowe bloki dla wszystkich weryfikatorów do uzgodnienia. Nowe bloki są następnie głosowane przez wszystkie bieżące weryfikatory. Moc głosowania jest oparta na stawce, którą wkłada weryfikator. Ktokolwiek proponuje nieprawidłowe transakcje lub blokuje bądź głosuje złośliwie, co oznacza, że celowo narażają integralność łańcucha, może utracić swoje udziały. W celu utworzenia bloku węzeł nie otrzymuje nagrody. Wynagrodzenie jest wypłacane za transakcję. Po zaakceptowaniu nowych bloków twórca bloków może pobrać opłatę transakcyjną jako nagrodę za pracę nad tworzeniem nowych bloków. Dostępne są dwie podstawowe opcje wyboru węzłów:
Losowo z „najbogatszych” węzłów;
Losowo z najstarszych węzłów.
PoS jest uważany za bardziej energooszczędny i przyjazny dla środowiska w porównaniu z mechanizmem PoW. Jest również postrzegany jako bezpieczniejszy. Zasadniczo zmniejsza zagrożenie atakiem o 51%, ponieważ złośliwe weryfikatory musiałyby zgromadzić ponad 50% wszystkich udziałów, aby przejąć sieć blockchain. Taki algorytm ma na celu zniechęcenie atakujących do sprawdzania fałszywych transakcji z powodu ryzyka utraty „zabezpieczenia”.
Podobnie jak w przypadku PoW, całkowita decentralizacja może nie być w pełni możliwa w publicznym łańcuchu blokowym opartym na PoS. Dzieje się tak dlatego, że kilka bogatych węzłów może monopolizować stawki w sieci. Ci, którzy włożą więcej udziałów, mogą skutecznie kontrolować większość głosowania i mają więcej szans na wygenerowanie nowego bloku. Oba algorytmy są przedmiotem problemu społecznego i ekonomicznego, który sprawia, że są bogatsze.
Rozwiązania pozałańcuchowe
Podobnie jak w przypadku uzasadnienia rozwiązania łańcuchowego, społeczność Ethereum aktywnie poszukuje również rozwiązań pozałańcuchowych, czasami nazywanych rozwiązaniami warstwy 2. Jednym z nich jest rozwiązanie łańcucha bocznego z plazmą. Zamiast umieszczać wszystkie transakcje w łańcuchu głównym, Plasma pozwala każdemu na tworzenie łańcuchów bocznych i łańcuchów bocznych obligacji w globalnym łańcuchu blokowym. Jest to podobne do rozwiązania sieci oświetleniowej w Bitcoin.
Innym rozwiązaniem jest kanał stanowy z Raiden, podobny do kanałów płatniczych w Bitcoin. Hipoteza stojąca za tym podejściem polega na tym, że wiele transakcji między stronami musi zostać zweryfikowanych tylko przez zaangażowane strony i nie ma potrzeby, aby wszystkie transakcje były zatwierdzane przez całą sieć.
Intuicyjnym rozwiązaniem w celu zwiększenia skalowalności i przepustowości jest utworzenie wielu małych łańcuchów. Może to brzmieć jak wiarygodne rozwiązanie, ponieważ może ono odpowiadać potrzebom biznesowym i społecznym. Weźmy na przykład siebie, jako klientów lub obywateli, kupujemy owoce i warzywa z naszych lokalnych sklepów spożywczych, które mogą wykorzystać jeden blockchain do zapewnienia identyfikowalności i bezpieczeństwa żywności w całym łańcuchu dostaw świeżych produktów.
Po zakończeniu zakupów można zapłacić za zakupy bezpośrednio za pośrednictwem łańcucha blokady płatności P2P. Po zaciągnięciu kredytu hipotecznego lub pożyczki biznesowej możesz uzyskać zatwierdzenie kredytu hipotecznego i pożyczki za pośrednictwem blockchain hipoteki itd. Jesteśmy bardziej skłonni spotkać się ze wszystkimi tymi pionowymi lub prywatnymi łańcuchami, zanim dostrzeżemy gigantyczny globalny łańcuch.
Jednak powoduje integrację między łańcuchami i problemy z egzekwowaniem bezpieczeństwa. To właśnie Plasma próbuje rozwiązać. Po raz pierwszy zaproponowali je Joseph Poon i Vitalik Buterin w sierpniu 2017 r. Celem projektu jest przenoszenie transakcji do wielu szybszych i mniej zatłoczonych łańcuchów bocznych, zwanych również łańcuchami plazmowymi. Podobnie jak w przypadku kanału stanowego, łańcuch plazmowy będzie okresowo realizować swoje transakcje w łańcuchu głównym Ethereum.
Bezpieczeństwo i uczciwość będą egzekwowane za pośrednictwem łańcucha głównego. W przypadku wykrycia podejrzenia oszustwa w łańcuchach plazmowych transakcje zostaną wycofane, a użytkownicy Plasma mogą opuścić łańcuch plazmowy i przejść do łańcucha głównego.
Poniższy schemat pokazuje, jak może wyglądać sieć plazmowa:
Każdy łańcuch plazmowy sam w sobie jest łańcuchem blokowym. Są one związane z łańcuchem korzeniowym Ethereum poprzez inteligentną umowę. Inteligentna umowa zasadniczo łączy cały łańcuch dzieci z łańcuchem głównym, działając jako most. Każdy może utworzyć łańcuch plazmowy i napisać inteligentną umowę wiążącą łańcuch plazmowy z łańcuchem korzeniowym.
Jak pokazano na poniższym schemacie, w każdym okresie nagłówki bloków każdego bloku łańcuchów plazmowych są przesyłane do łańcucha głównego i rejestrowane w blokach łańcucha głównego.
Transakcje w łańcuchach plazmowych pozostaną w każdym łańcuchu plazmowym. Do weryfikacji danych w łańcuchu podrzędnym zostanie użyty dowód Merkle w nagłówkach bloków. Pozwala to na równoległe przetwarzanie dziesiątek i tysięcy transakcji w wielu łańcuchach plazmowych, a także pozostawia minimalne i wystarczające informacje nagłówka Merkle w łańcuchu głównym, aby egzekwować bezpieczeństwo:
Łańcuch korzeniowy będzie odgrywał rolę arbitra, w pewnym stopniu podobną do systemu sądu federalnego w Stanach Zjednoczonych, gdzie łańcuch korzeniowy jest sądem najwyższym, a łańcuchy plazmowe są sądami torowymi lub sądami okręgowymi. W systemie sądu federalnego, po rozstrzygnięciu sprawy przez federalny sąd okręgowy, sprawę można odwołać do sądu okręgowego lub sądu najwyższej instancji w celu przeprowadzenia arbitrażu.
Gdy dochodzi do oszustwa w łańcuchu plazmowym, niezależnie od tego, czy jest to podwójny wydatek w łańcuchu, czy też więcej wypłacasz niż masz na wszystkich kontach, każdy może zapewnić zabezpieczenie przed oszustwami, aby udowodnić, że transakcja jest nieważna. Jeśli okaże się, że transakcje są oszustwami, transakcja zostanie wycofana.
Użytkownicy osocza mogą opuścić łańcuch osocza dziecka i przenieść etery z powrotem do łańcucha głównego. Pierwotne propozycje wprowadzają pojedynczą koncepcję walidacji, jako operator łańcucha blokowego plazmy, w celu walidacji i dodawania transakcji do bloków oraz zarządzania stanem łańcucha blokowego podrzędnego.
Idea stojąca za tym podejściem polega na tym, że bezpieczeństwo i integralność łańcucha blokowego na poziomie globalnym jest egzekwowana przez łańcuch główny przy użyciu PoW lub, najprawdopodobniej, hybrydowego protokołu konsensusu PoW i PoS. W przypadku, gdy weryfikator łańcucha plazmowego może zatrzymać fundusz i popełnić nieuczciwe działania, każdy może zapewnić zabezpieczenie przed oszustwami dla weryfikatora w łańcuchu głównym.
Po stwierdzeniu oszustwa ze strony weryfikatora łańcuch główny umożliwi wszystkim klientom w łańcuchu plazmowym objętym wpływem zmiany przejście do łańcucha głównego. Nazywa się to scenariuszem wyjścia z amasy. W takim przypadku indywidualne konta zostaną przeniesione do łańcucha głównego jeden po drugim, nieprawidłowa transakcja zostanie wycofana, a weryfikator łańcucha plazmowego zostanie ukarany stawką, którą wkłada w inteligentny kontrakt. W zależności od tego, ile kont wymaga migracji, ukończenie masowego wyjścia może chwilę potrwać.
Chociaż był to jeden z najciekawszych i najbardziej aktywnych tematów w społeczności badawczej Ethereum, nie ma jeszcze publicznego wydania wdrożenia plazmy. Zamiast tego zaproponowano wersję ze skalowaniem oryginalnej propozycji, zwaną również osoczem o minimalnym żywotności, czyli MVP, dla prostego wdrożenia, które obejmuje uproszczony model bezpieczeństwa i podstawowe operacje wyjścia z łańcuchów plazmowych.
Bardzo interesującym aspektem MVP jest ponowne wprowadzenie modelu UTXO. Jedną z kluczowych różnic w Ethereum jest przejście od modelu UTXO Bitcoina do bardziej zdefiniowanego modelu konta, gdzie saldo konta jest obiektem stanu utrzymywanym w stanie światowym.
Model konta Ethereum ułatwia weryfikację transakcji i przelewy pieniężne, przy jednoczesnym poświęceniu równoległości. Może to nie być znacząca wada, ponieważ wszystkie transakcje muszą być weryfikowane przez wszystkie węzły. Jednak w przypadku Plasma, gdy łańcuch główny odchodzi od przetwarzania transakcji do egzekwowania bezpieczeństwa i arbitrażu, ważne jest, aby móc równolegle weryfikować nieprawidłowe transakcje.
Struktura łańcuchów blokowych, stąd drzewo UTXO ze wszystkich łańcuchów podrzędnych, ułatwia stosowanie rozproszonych algorytmów równoległych w celu weryfikacji ochrony przed oszustwami i egzekwowania bezpieczeństwa we wszystkich łańcuchach plazmowych.
Poniższy schemat pokazuje, co potencjalne osocze może wnieść do sieci łańcucha blokowego Ethereum, gdy drzewo łańcuchów dziecięcych osocza Ethereum jest połączone z macierzystym łańcuchem plazmowym i ostatecznie są połączone z łańcuchem głównym Ethereum i przez niego zabezpieczone:
Ogromna skalowalność zostanie osiągnięta poprzez przenoszenie kosztownych obliczeń na łańcuchy podrzędne i umożliwienie łańcuchowi głównemu świadczenia wspólnych usług bezpieczeństwa i arbitrażu na łańcuch blokowy na poziomie globalnym. Istnieje kilka podobnych rozwiązań interoperacyjności między łańcuchami, takich jak sieć Cosmos. Sieć Cosmos, rzekomo będąca Internetem blockchains, zapewnia architekturę integracji w centrum. Niezależne łańcuchy blokowe, jako strefy lub szprychy, są przymocowane do głównego łańcucha blokowego jako centrum. Jego celem jest ułatwienie integracji blockchain za pośrednictwem protokołu IBC (komunikacji między blockchainami).