

Blockchain, to zdecentralizowana technologia, działająca jako rozproszona księga do zasilania transakcji. Dzięki temu, że każda transakcja jest zdecentralizowana, każdy węzeł może autonomicznie zainicjować transakcje. Oczywiście zgodnie z umową, jaką określił inteligentny kontrakt. Wszystko bez ingerencji stron trzecich.
W związku z tym, że coraz więcej osób korzysta z technologii blockchain, rośnie liczba problemów powiązanych z jego skalowalnością. W efekcie transakcje są opóźnione. Na dzisiejszej lekcji omówimy rozwiązania skalowania blockchaina i jak zrobić, żeby transakcje były na czas.
Skalowalność blockchain
Skalowalność to zdolność systemu do obsługi rosnącej ilości pracy. Jeśli do sieci blockchain trafi zbyt duża liczba danych, nie będzie on działał prawidłowo. Wówczas łańcuch bloków będzie miał bardzo niską skalowalność.
Blockchain jest skalowalny wtedy, gdy osiąga większy TPS niż inne systemy, zmieniając swoją metodę konsensusu i dostosowując system pod aktualne potrzeby.
Na czym więc polega problem?
Publiczne blockchainy są niewydolne. Jest to śmiałe stwierdzenie, jednak prawdzie. Łańcuchy bloków to księga, która zarządza kryptograficznie podpisanymi transakcjami w sieciach P2P. Przechowują i przetwarzają ogromną ilość transakcji. Z tego powodu łańcuch bloków napotyka problemy ze skalowalnością, szczególnie przy większej liczbie węzłów i transakcji.
Aby rozwiązać ten problem, platformy blockchain potrzebują większej mocy obliczeniowej, szybkiego łącza Internetowego i dobrej pamięci on-chain. Opóźnienia i przepustowość transakcji, to dwie cechy, które wpływają na blockchain. Wiadome jest, że zwiększone przypadki użycia nie mogą wpłynąć na wydajność platformy blockchain.
Jak zatem rozwiązać problem? Wielu znawców tematu sugeruje, aby pójść na kompromis w kwestii bezpieczeństwa i poziomu decentralizacji. Wówczas istnieje szansa, że zwiększymy skalowalność w łańcuchu bloków. Sprawdźmy teraz, jakie rozwiązania nam proponują.
Skalowalność blockchain – rozwiązania
Rozwiązania skalowalności warstwy pierwszej (Layer1). Poprawiają najważniejsze właściwości i atrybuty sieci blockchain. Mówimy tutaj o zwiększeniu limitu rozmiaru bloku czy skróceniu czasu jego weryfikacji. Skalowalność warstwy pierwszej obejmuje również: sharding, SEGWIT oraz hard forki. Rozwiązania warstwy 1 są często nazywane rozwiązaniami skalowania on-chain, ponieważ wymagają zmian w bazie kodu głównej sieci. Przyjrzyjmy się im:
- Sharding – jego zadaniem jest podział sieci blockchain na mniejsze i łatwo zarządzane sieci, nazywane shardami. Następnie sieć uruchamia shardy obok siebie. Z każdym shardem wydajność przetwarzania transakcji w sieci wzrasta.
- SEGWIT – jego zadaniem jest ulepszenie protokołu w sieci blockchcian, głównie Bitcoina. Modyfikuje on sposób i strukturę przechowywania danych. Usuwa dane z podpisu, powiązanego z każdą transakcją i tym samym zwiększa pojemność i przestrzeń do przechowywania transakcji.
- Hard fork – wprowadza zmiany we właściwościach sieci blockchain. Fork może obejmować zwiększenie rozmiaru bloku lub zmniejszenie potrzebnego czasu do jego utworzenia.
Warstwa druga (Layer 2). Rozwiązania warstwy drugiej proponują nam dodatkowe protokoły, instalowane na szczycie głównego blockchaina. Są one wykorzystywane do odciążania głównego łańcucha. Opcje warstwy drugiej obejmują również kanały stanów i łańcuchy off-side.
- State Channels. Oferują dwukierunkową komunikację, pomiędzy kanałami transakcyjnymi off-chain a sieciami blockchain. Nie wymagają natychmiastowego zaangażowania górników do zatwierdzenia transakcji. Są zintegrowane z siecią za pomocą inteligentnego kontraktu lub mechanizmu wielopodpisowego.
- Sidechains. To również bardzo dobry wybór rozwiązań warstwy 2. Jak sama nazwa wskazuje, sidechain to łańcuch boczny, który przylega do łańcucha głównego i służy jako łańcuch transakcyjny.
- Plasma. Wykorzystuje tzw. „child chain”, które „wychodzą” z łańcucha głównego, przy czym każdy z child chainów służy jako niezależny blockchain. Przetwarzają one własne transakcje, jednocześnie zapewniając bezpieczeństwo z łańcucha głównego.
- Lightning network. Rozwiązanie off-chain. Wykorzystuje funkcjonalność inteligentnych kontraktów nad główną siecią blockchain. Kanały off-chain oferują szybsze transakcje z ograniczonymi opłatami.
5. Skalowanie ksiąg rozproszonych. W tym miejscu warto zauważyć, że blockchainy, tak w zasadzie są elementem większego ekosystemu DLT (technologii rozproszonych ksiąg). Oprócz blockchain istnieje więcej rodzaj ksiąg, które można by wykorzystać do zwiększenia skalowalności. Jako przykład do rozwiązania skalowalności blockchain możemy podać Directed Acyclic Graphs lub DAG’s. Obie działają asynchronicznie, co daje możliwość niezależnego działania transakcji. Co więcej, DAG’s wykorzystują w swoim działaniu liniową strukturę danych, co pozwala na przepływ danych z poprzednich do późniejszych sekcji. Umożliwia to przetwarzanie nieograniczonej liczby danych.
6. Skalowanie mechanizmu konsensusu. Wiesz, że istnieje wiele algorytmów konsensusu, dostosowanych do potrzeb platformy. Jednak ich skalowanie jest jednym ze sposobów zwiększenia skalowalności blockchaina.
Podsumowanie
Popyt na usługi oferowane przez blockchain będzie rósł. Aktualne zapotrzebowanie już teraz doprowadziło do problemów ze skalowalnością. Im więcej użytkowników, tym więcej transakcji. Jak widzisz, istnieje wiele rozwiązać, czy to warstwy 1, czy skalowalności mechanizmu konsensusu. Zauważmy jednak, że wiele z tych rozwiązań ciągle znajduje się w początkowej fazie rozwoju.