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 Ethereum 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:
Czym jest i jak działa Solana?
Solana jest wysoce skalowalną i otwartą źródłowo platformą smart kontraktów, która proponuje nowatorskie podejście do łańcucha bloków. Oczywiście jak większość projektów kryptowalut jest siecią zdecentralizowaną (Tak. Jest. Choć nie jest to ideał) i niewymagającą pozwolenia na użytkowanie 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.
Aby łańcuch bloków był w stanie przetworzyć w sposób zdecentralizowany, taką ilość transakcji w krótkim czasie, Solana musiała wprowadzić wiele innowacji. Są to:
- Proof of History
- Tower BFT
- Turbine
- Gulf Stream
- Sealevel
- Pipelining
- Cloudbreak
- Archivers
Przyjrzyjmy się najważniejszym częścią technologii Solana.
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 rozwiązań 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 dane wejście da nam zawsze to samo wyjście, a dodatkowo nie da się przewidzieć wyniku o ile nie uruchomi się funkcji.
Przykładowo; zdanie "Blokpres jest najlepszy" da nam wyjście XXX (to przykład, 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. Nawet najmniejsza zmiana sprawi, że 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ć 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.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.
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.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”.
medium.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 priorytetyzowana. 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.
Tak właściwie, to Solana nie posiada tradycyjnego Mempool. Klienci i Walidatorzy przekazują transakcje bezpośrednio 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.
Jak stakować SOL? Sprawdź >>
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 oraz jeden z najlepszych - Phantom.
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łosujących 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.
- Karta graficzna: Nie jest wymagana
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 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 (na razie) nie potrzebuje. Jest zdecentralizowana, choć nie w tak dużym stopniu jak kilka innych kryptowalut, ale jest też dość młodym projektem, który cały czas się rozwija.
Ekosystem Solana, 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.