TL;DR

  • Przeciążenie sieci Blockchain ma miejsce, gdy liczba transakcji przesłanych do sieci przekracza możliwości przetwarzania sieci.

  • Zwiększona aktywność transakcyjna, małe rozmiary bloków i długi czas blokowania mogą przyczyniać się do przeciążenia sieci.

  • Konsekwencje przeciążenia sieci obejmują zwiększone opłaty transakcyjne, wolniejsze potwierdzanie transakcji i gorszą obsługę użytkownika.

  • Wiosną 2023 r. sieć Bitcoin stała się przeciążona, ponieważ wzmożona aktywność transakcyjna związana z tokenami BRC-20 spowodowała gwałtowny wzrost oczekujących transakcji i opłat.

Co to jest przeciążenie sieci?

Przeciążenie sieci ma miejsce, gdy liczba transakcji przesłanych do sieci przekracza jej zdolność do przetwarzania tych transakcji. Na to zjawisko składa się kilka czynników, takich jak czynniki zewnętrzne, w tym zmienność rynku i wewnętrzne cechy sieci, takie jak rozmiar bloku i czas blokowania.

Zanim zagłębimy się w szczegóły, ważne jest zbadanie procesu dodawania bloków do łańcucha bloków.

Jak działa technologia Blockchain?

Blockchain składa się z łańcucha bloków, z których każdy zawiera dane transakcyjne utworzone przez użytkowników. Każdy nowy blok dodany do łańcucha jest trwały i niezmienny.

Bloki te są propagowane w zdecentralizowanej sieci węzłów, z których każdy przechowuje kopię łańcucha bloków. Zabezpieczony kryptografią i teorią gier, blockchain stanowi szkielet kryptowalut, takich jak Bitcoin i Ethereum.

Aby w pełni zrozumieć, dlaczego sieci blockchain mogą być przeciążone, musimy zbadać kluczowe pojęcia, które odgrywają rolę w zdolności sieci do przetwarzania transakcji: pule pamięci, bloki kandydujące, ostateczność i zasada najdłuższego łańcucha.

Co to jest „pamięć”?

Pula pamięci odnosi się do zbioru niepotwierdzonych transakcji oczekujących na włączenie do następnego bloku.

Na przykład, gdy transakcja jest transmitowana w sieci Bitcoin, nie jest ona natychmiast dodawana do łańcucha bloków. Zamiast tego najpierw trafia do puli pamięci (skrót od puli pamięci), która w zasadzie jest obszarem oczekiwania na wszystkie oczekujące transakcje. Transakcja zostanie usunięta z pamięci po jej potwierdzeniu.

Czym są „blokady kandydatów”?

Bloki kandydujące, znane również jako „bloki proponowane”, to te, które górnicy lub walidatorzy proponują dodać do łańcucha bloków. Bloki te zawierają niepotwierdzone transakcje, które zostały rozesłane do sieci, ale nie zostały uwzględnione w łańcuchu bloków.

Aby blok kandydujący stał się blokiem potwierdzonym, musi zostać wydobyty lub zweryfikowany zgodnie z mechanizmem konsensusu łańcucha bloków. Na przykład mechanizm konsensusu Bitcoin Proof of Work (PoW) pozwala górnikom konkurować w rozwiązaniu złożonej łamigłówki matematycznej. Pierwszy górnik, który rozwiąże zagadkę, może dodać swój potencjalny blok do łańcucha bloków i zdobyć nagrodę.

W mechanizmie konsensusu Proof of Stake (PoS) Ethereum walidatorzy są wybierani losowo w celu zaproponowania bloków kandydujących. Inne walidatory potwierdzają ważność bloku. Kiedy blok otrzyma wystarczającą liczbę atestów, przechodzi z bloku kandydującego do bloku potwierdzonego.

Czym jest „ostateczność” w blockchain?

Ostateczność ma miejsce wtedy, gdy transakcji lub operacji nie można już zmienić ani cofnąć. Gdy transakcja zostanie ostateczna, zostaje trwale zarejestrowana w łańcuchu bloków i nie można jej zmienić ani usunąć.

W łańcuchu bloków Bitcoin transakcje są transmitowane do sieci i dodawane do pamięci. Górnicy wybierają i weryfikują transakcje z tej puli i umieszczają je w nowych blokach, które mają zostać dodane do blockchainu. Transakcje zawarte w tym bloku uważa się za potwierdzone, ale teoretycznie inni górnicy nadal mogą wydobywać konkurencyjny blok.

Ostateczność transakcji wzrasta wraz z liczbą potwierdzonych bloków. Transakcje Bitcoin są zwykle uważane za „ostateczne” po dodaniu dodatkowych sześciu bloków do bloku zawierającego te transakcje. Ze względu na krótszy czas blokowania Ethereum zaleca się większą liczbę potwierdzeń, aby osiągnąć podobny poziom pewności co do „ostateczności”.

Na czym polega zasada „najdłuższego łańcucha”?

Jak pokazano powyżej, wielu górników może produkować nowe ważne bloki w podobnym czasie. Może to skutkować tymczasowymi forkami w łańcuchu bloków.

Zasada „najdłuższego łańcucha” odnosi się do zasady, że prawidłową wersją łańcucha bloków jest ta, w którą włożono najwięcej pracy obliczeniowej, czyli zazwyczaj ta z najdłuższym łańcuchem bloków. W rezultacie „ważne” bloki w krótszych łańcuchach – często nazywane blokami osieroconymi lub przestarzałymi – są odrzucane, a zawarte w nich transakcje wracają do puli pamięci.

Ethereum stosowało zasadę najdłuższego łańcucha, gdy sieć korzystała z Proof of Work (PoW). Po przejściu Ethereum na Proof of Stake (PoS) w 2022 r. sieć przyjęła zaktualizowany algorytm wyboru fork, który mierzy „wagę” łańcucha, czyli skumulowaną sumę głosów walidatora ważonych saldami walidatora stacked-Ether.

Co powoduje przeciążenie sieci Blockchain?

Przeciążenie sieci Blockchain ma miejsce, gdy liczba transakcji przesyłanych do sieci przekracza zdolność sieci do ich przetworzenia.

Istnieje kilka powodów, dla których sieci blockchain mogą być przeciążone:

Zwiększony popyt

W miarę jak coraz więcej osób przesyła transakcje do łańcucha bloków, liczba niepotwierdzonych transakcji w puli pamięci może przekroczyć liczbę, którą można uwzględnić w pojedynczym bloku. Jest to szczególnie istotne w przypadku łańcuchów bloków z nieodłącznymi ograniczeniami dotyczącymi rozmiaru bloku i czasu blokowania.

Zwiększona liczba transakcji może wynikać z nagłych wahań cen prowadzących do gwałtownego wzrostu aktywności transakcyjnej lub fal cykli masowego przyjęcia.

Mały rozmiar bloku

Każdy łańcuch bloków ma rozmiar bloku, który określa maksymalny rozmiar bloku. Ten rozmiar bloku ogranicza liczbę transakcji, które może zawierać blok.

Na przykład Bitcoin został początkowo zaprojektowany tak, aby mieć limit rozmiaru bloku wynoszący 1 megabajt. W 2017 roku Bitcoin wdrożył aktualizację o nazwie Segregated Witness lub SegWit, aby poprawić przepustowość transakcji. Zwiększa teoretyczny limit rozmiaru bloku do około 4 MB.

Jeśli liczba transakcji przekroczy ten limit, nastąpi przeciążenie sieci.

Powolne czasy blokowania

Czas bloku odnosi się do częstotliwości dodawania nowego bloku do łańcucha bloków. Bitcoin dodaje nowy blok co około 10 minut. Jeśli transakcje są tworzone ze znacznie większą szybkością i wolumenem, pojawią się zaległości w transakcjach.

Jakie są konsekwencje przeciążenia sieci?

Przeciążenie sieci Blockchain może skutkować kilkoma negatywnymi konsekwencjami, które utrudniają płynne działanie sieci.

Podwyższone opłaty transakcyjne

Górnicy są zachęcani do priorytetowego traktowania transakcji wiążących się z wyższymi opłatami. Kiedy więc sieć blockchain staje się przeciążona, użytkownicy często muszą płacić wyższe opłaty transakcyjne, aby zachęcić górników do nadawania priorytetu swoim transakcjom. Może to sprawić, że korzystanie z blockchain będzie droższe niż zwykle, szczególnie w przypadku mniejszych transakcji.

Opóźnione czasy potwierdzania transakcji

Przeciążenie sieci może prowadzić do wydłużenia czasu oczekiwania na potwierdzenie i finalizację transakcji. W skrajnych przypadkach transakcje mogą nie zostać potwierdzone przez kilka godzin, dni, a nawet dłużej. Może to powodować frustrację użytkowników.

Złe doświadczenia użytkownika

Wysokie opłaty i długi czas potwierdzania mogą skutkować złym doświadczeniem użytkownika, co może potencjalnie ograniczyć przyjęcie i użyteczność łańcucha bloków.

Zmienność rynku

Zagęszczenie ruchu może zwiększyć niepewność i przyczynić się do zmienności rynku. Jeśli wielu użytkowników próbuje sprzedać kryptowalutę, ale sieć jest zbyt przeciążona, aby przetworzyć te transakcje, użytkownicy mogą wpaść w panikę i spróbować szybko pozbyć się swoich zasobów.

Istnieją inne konsekwencje, w tym zagrożenia bezpieczeństwa i ryzyko centralizacji sieci. W szczególności dłuższy czas potwierdzenia może zwiększyć ryzyko ataków polegających na podwójnym wydatkowaniu, a wysokie opłaty mogą prowadzić do centralizacji władzy wydobywczej.

Przykłady przeciążenia sieci

Zarówno sieci Bitcoin, jak i Ethereum doświadczyły znacznego przeciążenia sieci.

Przeciążenie sieci Bitcoin

Znaczący wzrost cen Bitcoina pomiędzy końcem 2017 r. a początkiem 2018 r. doprowadził do jednego z najważniejszych w dotychczasowej historii przypadków zatorów w sieci. Gwałtowny wzrost popularności Bitcoina doprowadził do ogromnego wzrostu popytu i transakcji, co spowodowało znaczne opóźnienia i oszałamiający wzrost opłat transakcyjnych. W pewnym momencie średnie opłaty transakcyjne przekraczały 50 dolarów.

Wiosną 2023 r. sieć Bitcoin stała się przeciążona, ponieważ wzmożona aktywność transakcyjna związana z tokenami BRC-20 spowodowała gwałtowny wzrost oczekujących transakcji i opłat. W pewnym momencie zarejestrowano prawie 400 000 niepotwierdzonych transakcji, co spowodowało zator w pamięci. Opłaty transakcyjne w ciągu kilku tygodni wzrosły o ponad 300%.

Przeciążenie sieci Ethereum

Godny uwagi przykład przeciążenia sieci Ethereum miał miejsce w 2017 r., kiedy projekt „CryptoKitties” stał się wirusowy i znacznie spowolnił sieć. Doszło również do przeciążenia sieci w związku z boomem DeFi, co spowodowało wzrost cen gazu.

Każda sieć blockchain może zostać przeciążona. Jednak przypadki przeciążenia sieci w sieciach Bitcoin i Ethereum przyciągnęły więcej uwagi niż w przypadku innych łańcuchów bloków, ponieważ miały one szerszy wpływ ze względu na ich popularność i znaczenie.

Rozwiązania łagodzące przeciążenie sieci

Rozwiązanie problemu zatorów w sieci blockchain jest złożonym problemem. Istnieje kilka podejść, a każde z nich ma swoje zalety i wady.

Zwiększanie rozmiaru bloku

Zwiększanie rozmiaru bloku umożliwia przetworzenie większej liczby transakcji w jednym bloku, skutecznie zwiększając przepustowość sieci. Jednak propagacja większych bloków w sieci zajmuje więcej czasu, co zwiększa ryzyko tymczasowych forków. Wymagają również większej przestrzeni do przechowywania, co może prowadzić do zwiększonej centralizacji.

Zmniejszanie czasu bloku

Skrócenie czasu blokowania może umożliwić sieci szybsze przetwarzanie transakcji. Jednak krótsze czasy bloków mogą zwiększyć liczbę osieroconych bloków i potencjalnie zagrozić bezpieczeństwu.

Rozwiązania warstwy 2

Te rozwiązania poza łańcuchem przetwarzają transakcje poza głównym łańcuchem bloków i rejestrują stan końcowy w łańcuchu. Przykładami takich rozwiązań są Bitcoin Lightning Network i Plasma Ethereum. Rozwiązania te mogą zwiększyć skalowalność, ale są skomplikowane we wdrażaniu i mogą powodować dodatkowe problemy związane z bezpieczeństwem.

Fragmentowanie

Sharding to technika, w której łańcuch bloków jest dzielony na kilka mniejszych fragmentów, z których każdy jest w stanie przetwarzać transakcje i inteligentne kontrakty. Może to znacząco zwiększyć przepustowość sieci. Jednak podobnie jak w przypadku rozwiązań warstwy 2, sharding zwiększa złożoność i może również powodować dodatkowe zagrożenia bezpieczeństwa.

Inne potencjalne rozwiązania problemu zatorów w sieci obejmują dostosowanie opłat i rozwiązania skalujące, w tym pakiety optymistyczne i pakiety zbiorcze o zerowej wiedzy. Mechanizm konsensusu Proof of Stake (PoS) jest generalnie szybszy niż Proof of Work (PoW).

Zamykające myśli

Ponieważ oczekuje się, że w nadchodzących latach technologia blockchain zostanie przyjęta przez większą liczbę użytkowników, problemy z przeciążeniem sieci zyskują na znaczeniu. Zdolność sieci do wydajnego przetwarzania dużej liczby transakcji ma kluczowe znaczenie dla powszechnego przyjęcia i użyteczności. Jest to szczególnie istotne w przypadku systemów blockchain, które mają ułatwiać codzienne transakcje w czasie rzeczywistym.

Chociaż przeciążenie sieci blockchain stwarza poważne wyzwania, społeczność nadal opracowuje rozwiązania, które pomagają złagodzić te problemy. Właśnie dlatego badania nad ulepszeniem skalowalności blockchain są w czołówce branży.

Dalsze czytanie

Co to jest Blockchain i jak działa?

Jakie są opłaty za transakcje Blockchain?

Jak wydobywać bitcoiny

What Is Bitcoin’s Fee-To-Reward Ratio?

Disclaimer and Risk Warning: This content is presented to you on an “as is” basis for general information and educational purposes only, without representation or warranty of any kind. It should not be construed as financial, legal or other professional advice, nor is it intended to recommend the purchase of any specific product or service. You should seek your own advice from appropriate professional advisors. Where the article is contributed by a third party contributor, please note that those views expressed belong to the third party contributor, and do not necessarily reflect those of Binance Academy. Please read our full disclaimer here for further details. Digital asset prices can be volatile. The value of your investment may go down or up and you may not get back the amount invested. You are solely responsible for your investment decisions and Binance Academy is not liable for any losses you may incur. This material should not be construed as financial, legal or other professional advice. For more information, see our Terms of Use and Risk Warning.