. . .

Przewodnik po Solana. Czym jest Solana i dlaczego jest tak szybka?

Rafał   2021-06-22 22:47

Wraz ze wzrostem użytkowników wiele sieci doświadcza problemów z wydłużającymi się czasami oczekiwania na potwierdzenie transakcji i zwiększającymi się opłatami. Mimo że wiele nowoczesnych łańcuchów nie ma z tym większych problemów, a te starsze cały czas usprawniają swoje działanie, to budowa wielu z nich nie pozwala na przetworzenie wystarczającej ilości transakcji niskim kosztem.

Solana blokpres

Jeśli jesteś użytkownikiem Ethereum, to „przesiadka” na Solana może przyprawić Cię o ból głowy, a szybkość transakcji o mdłości. Wielokrotnie, zanim wykonasz jakąś transakcję w sieci ETH pewnie zastanawiasz się, czy warto. Opłaty potrafią pozbawić Cię znacznej ilości cennego ETH. W przypadku Solana możesz wykonywać transakcję dla zabawy… i to dosłownie. 

Break Solana to gra, która pozwala sprawdzić, czy będziesz w stanie zapchać sieć Solana klikając najszybciej jak to możliwe dowolne przyciski z klawiatury. Mnie, jak możesz zobaczyćna poniższym obrazku, się nie udało:

Break Solana

Oczywiście Solana to nie Ethereum, które nadal jest liderem w swojej dziedzinie, co nie zmienia faktu, że zapewnia niesamowity przeskok jeśli chodzi o wygodne i tanie użytkowanie.
 

Co to Solana?

Solana jest projektem wysoce skalowalnym i otwartym źródłowo, który proponuje inne podejście do łańcucha bloków. Oczywiście jak większość projektów kryptowalut jest siecią zdecentralizowaną i niewymagającą pozwolenia na użytkowanie jej i dołączenie do niej. Dzięki swojej budowie Solana może przetworzyć ponad 50 000 transakcji na sekundę z czasem bloku sięgającym 400 milisekund i średnią opłatą wynoszącą $0.0002. Solana jest platformą smart kontraktów. Świetną dla DeFi, NFT i gier opartych o NFT.

Aby łańcuch bloków był w stanie przetworzyć w sposób zdecentralizowany, taką ilość transakcji w takim czasie Solana musiała wprowadzić wiele innowacji. Są to:

  • Proof of History
  • Tower BFT
  • Turbine
  • Gulf Stream
  • Sealevel
  • Pipelining
  • Cloudbreak
  • Archivers

Proof of History

Solana osiąga tak ogromną przepustowość dzięki szybkiej i niezawodnej synchronizacji. Tradycyjne łańcuchy bloków grupują duże ilości transakcji w bloki. Jednak dopóki dany czas bloku nie minął, transakcja nie może zostać przetworzona. W przypadku standardowych łańcuchów bloki oznacza się czasem uniksowym, który mierzony jest liczbą sekund, jaka upłynęła od 1970 roku. 

W przypadku Solana węzły „Liderzy”, czyli wybrani z wyprzedzeniem na podstawie swojego stake (ilości zablokowanych SOL) Walidatorzy, którzy produkują „bloki”, oznaczają je czasowo kryptograficznymi dowodami udowadniającymi, że od poprzedniego dowodu minął pewien czas. Wszystkie dane, które zostały zhaszowane w dowód na pewno miały miejsce przed jego generacją. Węzeł dzieli się swoim blokiem z innymi, którzy weryfikują jego poprawność. 

Proof of History (PoH) działa w taki sposób:

Funkcja SHA256 znana z Bitcoina haszuje jakieś dane, które nazywamy wejściem i daje nam wynik funkcji w postaci ciągu znaków zawsze takiej samej długości, czyli wyjście. Ta funkcja działa tak, że jedno wejście da nam zawsze to samo wyjście, a dodatkowo nie da się przewidzieć jakie będzie wyjście o ile się nie uruchomi funkcji, czyli zdanie "Blokpres jest najlepszy" da nam wyjście XXX (przykładowo oczywiście, hasz ma 64 znaki). Jeśli bardzo lubisz Blokpres i dołączysz na końcu zdania "!" to otrzymasz wyjście A1G. Podobnie jeśli dodasz przecinek, kropkę, spację, rozpoczniesz małą literą itd., nie poznasz wyjścia, ale jeśli wprowadzisz zdanie tak samo, otrzymasz ten sam wynik - XXX.

PoH używa tej funkcji w sposób ciągły, w pętli. Bierze wyjście i używa go jako wejścia, następnie znów je haszuje, otrzymuje jakieś wyjście, którego, używa jako wejścia, haszuje itd. Dodatkowo zapisuje także ile razy ta funkcja została użyta. Liczniki ilości wykonanych "pętli" oraz otrzymany hasz jest wyznacznikiem tego, że minął czas, bo musi minąć, ponieważ komputer musi wykonać obliczenia, inaczej nie da się uzyskać takiego wyniku. Na poniższym obrazku możemy być pewni, że od pierwszego licznika ("count" z końcówką 6912) do ostatniego (4064) minął czas i funkcja została wykonana daną ilość razy.

Solana haszsolana.com/solana-whitepaper.pdf

Do każdego wejścia możemy dodać inne dane, np. transakcję poprzez haszowanie ich razem. Oczywiście dodanie takich danych zmieni wszystkie kolejne wyjścia.

Solana PoH

Proof of History służy do oznaczania każdej transakcji w łańcuchu bloków. Solana w taki sposób tworzy zapis wydarzeń w sieci, ustalając kolejność, w jakiej odbywały się jej transakcje, zanim jeszcze zostały dodane i potwierdzone w sieci.

Solana może dzielić bloki na mniejsze partie transakcji nazwane wpisami (ang. entries), które są przesyłane do Walidatorów w czasie rzeczywistym, zanim pojawi się jakikolwiek konsensus. 

Solana technicznie nigdy nie wysyła bloku, ale używa tego terminu do opisania sekwencji wpisów, na które głosują Walidatorzy, aby je potwierdzić.

Wszystkie wpisy, które stanowią zbiór transakcji, są przesyłane do Walidatorów tak szybko, jak węzeł Lider jest w stanie zgrupować daną ilość transakcji we wpis, czyli „blok”. Walidatorzy przetwarzają je „optymistycznie”, jeszcze zanim dojdzie do głosowania nad ich poprawnością. Jeśli konsensus nie zostanie osiągnięty, węzeł po prostu cofa swój stan.

Solana transakcje

solana.com/solana-whitepaper.pdf

Proof of History nie jest mechanizmem konsensusu, ale służy do poprawy wydajności konsensusu Solana, która stosuje mechanizm Proof of Stake.

Tower BFT

Proof of History (PoH) zapewnia sieciowe źródło czasu przed osiągnięciem konsensusu, natomiast Tower BFT jest algorytmem konsensusu wykorzystującym mechanizm Proof of Stake i korzystającym właśnie z PoH.

Walidator gwarantuje, że po oddaniu głosu na hash PoH, nie będzie głosował na żaden hash PoH, który nie pochodzi od niego. 

Zanim stan łańcucha zostanie finalnie określony, Walidatorzy głosują, która wersja jest tą właściwą. Oddają głos, który zostaje zablokowany. Oznacza to, że nie wolno im oddawać głosu nad przyszłą wersją łańcucha bloków, która nie uwzględnia wersji, na którą głosowali wcześniej. Mówiąc prościej, jeśli Walidator X głosuje, że blok A jest poprawny, to chwile później nie może głosować na wersję łańcucha, w której nie ma bloku A.

Gdy ⅔ Walidatorów zagłosowało na jakiś hash PoH, czyli blok transakcji, jest on kanonizowany i nie można go cofnąć. TBFT jest ulepszoną wersją Practical Byzantine Fault Tolerance (PBFT) 

Turbine

Turbine to protokół propagacji bloków. Lider, czyli węzeł, który właśnie tworzy blok, dzieli go na mniejsze pakiety danych, które rozsyła do węzłów. Z kolei każdy Walidator retransmituje pakiet do grupy innych węzłów, nazywanych „Sąsiedztwem”.

Solana Turbinemedium.com/solana-labs/turbine-solanas-block-propagation-protocol-solves-the-scalability-trilemma-2ddba46a51db

Nie wszyscy Walidatorzy są sobie równi. Najważniejszymi są ci z największą stawką (ang. stake). Propagacja jest odpowiednio priorytetyzowania. Algorytm konstruuje drzewo w taki sposób, że Walidatorzy o wyższym stake znajdują się w sąsiedztwie bliższym Liderowi.

Gulf Stream

Gulf Stream to rozwiązanie do zarządzania Mempool, czyli niepotwierdzonymi transakcjami. Klienci i Walidatorzy przekazują transakcje do przyszłego Lidera z wyprzedzeniem, ponieważ rotacja Liderów jest znana. Pozwala to Walidatorom na wykonywanie transakcji z wyprzedzeniem, skrócenie czasu potwierdzeń, szybszą zmianę Liderów i zmniejszenie obciążenia pamięci.

Sealevel i inne

Dzięki Sealevel smart kontrakty na Solana działają równolegle. To oznacza, że tysiące inteligentnych kontraktów może działać jednocześnie bez obniżania wydajności sieci.

Jeśli chodzi o pozostałe wymienione części składające się na szybkość Solana to Pipelining jest jednostką przetwarzania transakcji, która pomaga w optymalizacji walidacji, Cloudbreak umożliwia jednoczesne odczytywanie i zapisywanie danych, a Archivers są wyspecjalizowanymi lekkimi klientami i zajmują się przechowywaniem danych. Pobierają część bazy danych (tzw. Segment), przechowują go i dostarczają dowody na jego przechowanie (Proof of Replication), za co zarabiają SOL.

SOL

SOL jest natywnym tokenem sieci Solana i pełni w niej bardzo podobne funkcje jak np. ETH w sieci Ethereum. 

SOL jest paliwem całej sieci i służy do pokrywania opłat transakcyjnych i stakingu. Liderzy, czyli węzły generujące sekwencje PoH, czyli „bloki” Solana są wybierani na podstawie ich stawki. Ci, którzy zostają wybrani zarabiają 50% opłat transakcyjnych ze wszystkich transakcji w bloku i nagrody inflacyjne. Pozostałe 50% SOL w opłatach jest spalane.

Użytkownicy mogą oddelegować swoje SOL do Walidatorów i zarabiać część ich nagród. Aby oddelegować swoje tokeny, należy utworzyć specjalne konto stakingowe, z którego można oddelegować SOL do jednego Walidatora.

Solana inflacja

SOL jest tokenem inflacyjnym. Według dokumentacji szacuje się, że w dłuższym terminie inflacja osiągnie poziom 1.5% rocznie. Zwroty z inwestycji w staking zależą od procenta zablokowanych w stakingu SOL.

Portfele Solana

Jeśli chodzi o praktyczne używanie SOL, można korzystać z wielu różnych portfeli. Jako że Solana nie jest kompatybilna z EVM do obsługi zdecentralizowanych aplikacji nie możemy użyć portfeli takich jak MetaMask, ale inne rozszerzenia przeglądarki są dostępne, jak np. portfel Sollet. Innym popularnym portfelem Solana jest np. SolFlare.

SPL Tokens

Jest to pewien standard wykorzystywany do tworzenia tokenów na Solana. Tokeny SPL to po prostu różne aktywa działające na Solana. Najprościej porównać SPL do ERC20. 

Jednak w przeciwieństwie do ERC20, każdy token, który posiadasz w portfelu w sieci Solana, ma inny adres. Dzięki aktualizacji, która miała na celu zapewne pomóc nowym użytkownikom, jak i tym przechodzącym z Ethereum oraz ułatwić użytkowanie sieci, większość portfeli wyświetla jeden adres SOL jako adres portfela, na który można wysyłać dowolne tokeny Solana, podobnie jak w przypadku właśnie Ethereum. Różne adresy tokenów w twoim portfelu nadal istnieją na łańcuchu i można ich używać. Jeśli nie jesteś pewny, zawsze wyślij niewielką ilość tokenów jako test, zwłaszcza że jak już powinieneś wiedzieć, w przypadku Solana to prawie nic nie kosztuje.

Walidatorzy

Każdy może zostać Walidatorem sieci Solana jednak trzeba spełnić dość rygorystyczne warunki.

Aby uczestniczyć w konsensusie, wymagane jest konto do głosowania. Wymaga to również wysłania transakcji głosowania dla każdego bloku, z którym zgadza się Walidator. Według dokumentacji może to kosztować około 1,1 SOL dziennie.

Z wielką szybkością wiąże się mocny sprzęt i spory wydatek na ten sprzęt. Walidatorzy Solana muszą spełnić następujące warunki jeśli chodzi o moc komputera:

  • Procesor: 12 rdzeni i 24 wątki lub więcej, 2,8 GHz lub szybszy
  • RAM: 128 GB lub więcej
  • Sugerowana płyta główna z obsługą 256GB RAM
  • Dysk: SSD PCIe Gen3 x4 NVME lub lepszy, co najmniej kilka dysków SSD 500GB lub 1TB. Łącznie potrzebne około 2TB SSD.
  • Grafika: Nie wymagana

Koszt takiego sprzętu to około (bardzo około) 7,500zł. Zależy to od jakości sprzętu, producenta itd.

Podsumowanie

Jak zapewne zauważyłeś, Solana jest bardzo skomplikowanym projektem, który wprowadził mnóstwo innowacji. Wiele z aspektów działania Solana nie zostało w tym artykule nawet dotknięte, lub zostało poruszone minimalnie. Ten projekt jest bardzo rozbudowany i właściwie o każdym jego elemencie można by napisać osobny artykuł.

Najważniejsze co potrzebujesz wiedzieć o Solana to, że zapewnia ogromną szybkość transakcji bardzo niskim kosztem. Nie ma tu żadnych technologii shardingu i L2, ponieważ Solana niczego takiego nie potrzebuje. Jest zdecentralizowana, choć nie w tak dużym stopniu jak kilka innych podobnych projektów, ale jest też dość młodym projektem, który cały czas się rozwija.

Ekosystem Solana (tak na marginesie wspierany przez gigantów rynku kryptowalut), rośnie bardzo szybko, a różne dotacje i programy zapewniane przez Solana Foundation zachęcają coraz szersze grono programistów i zespołów do budowania swoich aplikacji właśnie na Solana.

Popularne