Offtop: Plasma sidechain – część pierwsza

plasma2

W poprzednim wpisie było porównanie dwóch technologii: Lightning Network i Plasma sidechain. Dostałem 10 tipów a Wy zgłaszaliście, że chcecie więcej, więc dziś nietypowy wpis główne o technologii Plasma.

Przede wszystkim Plasma nie jest tak tak dokładnie określoną technologią jak np. Lightning Network. Jest wiele odmian tego, co nazywa się Plasma. W Internecie znalazłem taki graf:

 

plasmaBez obaw! Nie będziemy omawiać wszystkiego :). Jak widzimy, Plasma to cała rodzina sidechainów, w których (jak sądzę) charakterystyczne jest to, że wszystkie zabezpieczone są całą mocą sieci. Jak widzimy na mapie, całą rodzinę rozwiązań “Plasma” możemy podzielić na dwie kategorie:

  • General States & Computation – Rozwiązanie, w którym na łańcuchach bocznych Plasmy, możemy uruchamiać smart contracty.
  • Simple Transfer – Czyli po prostu transferowanie wartości, bez obsługi zaawansowanych smart contaractów.

Zacznę od pierwszej kategorii, jako że znam tu o wiele mniej szczegółów. Szczegóły pojawią się dopiero w łatwiejszej do zrozumienie i wyjaśnienia, rodzinie rozwiązań pod nazwą “Simple Transfer” w kolejnym artykule.

General States & Computation

Ten typ rozwiązań ma sprawić, że każdy pod-łańcuch Plasmy będzie w stanie przetwarzać dowolne smart contracty. W związku z tym możliwe stałoby się nie tylko tworzenie łańcuchów Plasma na bazie łańcucha głównego, ale też na bazie każdego innego łańcucha Plasma.  Tworzyłoby to całe drzewo łańcuchów i w efekcie umożliwiło tworzenie niemal nieskończonej ich liczby. Na przykład:plasma-treeW powyższym przykładzie łańcuch “Plasma F” jest zabezpieczony łańcuchem “Plasma B”, który z kolei jest zabezpieczony łańcuchem “Main chain”. W ten sposób wszystkie łańcuchy Plasmy są zabezpieczone pełną mocą sieci. Mogli byśmy sobie wyobrazić, że np. “Plasma B” to łańcuch dla blockchainowych serwisów społecznościowych. “Plasma E” to łańcuch dla blockchainowego facbooka, a “Plasma F” to łańcuch dla blockchainowego twittera. Chcąc mieć pełen węzeł takiego blockchainowego facbooka musiałbym więc posiadać 3 łańcuchy: “Plasma E”, “Plasma B” i “Main chain”. Na górze jest łańcuch główny oraz minerzy, którzy zatwierdzają bloki łańcucha głównego. Co niezwykle ważne, minerzy nie muszą mieć żadnej wiedzy o tych wszystkich łańcuchach Plasma, które są zbudowane na bazie łańcucha głównego. Sytuacja jest więc identyczna jak w przypadku LN, gdzie minerzy również nie muszą wiedzieć nic o istnieniu kanałów płatności i w ogóle całej sieci LN. Ewentualne przejście z PoW na PoS nie zmienia nic w tej materii. Istotne jest więc, by zrozumieć, że nie musi istnieć ani jeden pojedynczy podmiot, który musi przechowywać i przetwarzać całość danych tego ekosystemu. By całość działała nie musi istnieć ani jeden taki podmiot, który zawierałby łańcuch główny i wszystkie podłańcuchy Plasma.

Plasma vs Sharding
Znane jest również pojęcie shardingu. Planuje je wprowadzić Ethereum, ale nie tylko. Sharding działa również na innych platformach, jak np. Zilliga, która niedawno miała swoją mainnetową premierę. Ideą shardingu jest podział obliczeń związanych z przetwarzaniem smart contrctów do wydzielonych grup tak, by każdy pełny węzeł nie musiał przetwarzać wszystkich smart contraktów. Niestety, pomimo, że samo przetwarzanie smart contractów w shardingu jest faktycznie skalowalne, to jednak całość opiera się na pojedynczym blockchainie. To jest wąskie gardło shardingu, o czym np. taka Zilliga nie kwapiła się wspomnieć choćby w swoim whitepaperze. Plasma to nie tylko rozbicie obliczeń, ale też samych danych na wiele małych blockchainów i dlatego to właśnie Plasma jest prawdziwie skalowalnym rozwiązaniem.

Przenoszenie monet
O ile w ramach każdego łańcucha Plasmy przenoszenie wartości jest dość proste o tyle trudniejsze jest przenoszenie ich między łańcuchami. Z grubsza mówiąc mamy 3 metody “przenoszenia” środków między różnymi łańcuchami Plasma:

  • metoda pełna
  • Atomic Swaps
  • Lightning network

Metoda pełna
Gdybyśmy chcieli np. Przenieść środki za “Plasma F” do “Plasma C” w sposób standardowy, musieli byśmy zrobić tak:

1. Z “Plasma F” wypłacić do “Plasma B” i poczekać (np. tydzień) na uwolnienie środków. To czas, jaki mają inni użytkownicy “Plasma F” by zweryfikować, że nie chcemy ich oszukać i nie planujemy wypłacić  np. więcej niż mieliśmy w tym łańcuchu.
2. Z “Plasma B” wypłacić do “Main chain” i ponownie poczekać, bo tym razem to uzytkownicy “Plasma B” musza mieć czas na reakcję w razie gdybyśmy chciali ich oszukać.
3. Z “Main chain” przenosimy do “Plasma A” i czekamy jedno potwierdzenie.
4. Z “Plasma A” przenosimy do “Plasma C” i również czekamy jedno potwierdzenie

Jak widzimy operacja jest czasochłonna a do tego wymaga kilku transakcji na różnych łańcuchach. Nie jest to wygodne rozwiązanie, więc można to rozwiązać inaczej wykorzystując tzw. Atomic Swaps.

Atomic Swaps
Atomic swaps polega na tym, że z punktu widzenia łańcuchów nie przenosimy monet między nimi. W ramach Atomic Swaps oddajemy komuś monety z łańcucha “Plasma F” a w zamian za to ten ktoś daje nam swoje monety na łańcuchu “Plasma C”. Myślę, że będą to wyspecjalizowane usługi, podobnie w realu mamy kantory wymiany walut. Pomimo, że Atomic Swaps to fajne rozwiązanie, nie przenosi ono tak na prawdę monet między łańcuchami. Dlatego właśnie opcja opisana wcześniej jako “Metoda pełna”, choć czasochłonna jest bardzo potrzebna. Dzięki niej uda się zachować choćby taką samą wartość monet we wszystkich łańcuchach Plasmy. Atomic Swaps jest fajną opcją, z tym, że wymaga czekania na potwierdzenia, a więc nie jest tak natychmiastowa jak LN. Wymaga też dwóch transakcji on-chain (jednej na łańcuchu “Plasma F” i drugiej na łańcuchu “Plasma C”). Transakcje na takich pod-łańcuchach będą jednak bardzo tanie, w związku z czym ta forma przenoszenia monet może konkurować nawet z LN (przynajmniej dla większych kwot).

Lightning Network

Na dowolnym z łańcuchów możemy tworzyć kanały płatności, a w ramach tych kanałów przesyłać środki. Kanały oparte na różnych łańcuchach Plasma mogą tworzyć jedną wspólną sieć LN. Użycie LN bardzo przypomina on-chainowe Atomic Swaps. Tylko czy można to nazwać przenoszeniem wartości między łańcuchami? Nie do końca, bo jest to de facto przenoszenie wartości między środkami w kanałach płatności. Ewentualnie można stworzyć jakiś miks Atomic Swaps i LN przy użyciu Submarine Swaps. Ogólnie jednak, nie postrzegam LN tak właściwie jako metody przenoszenia środków między łańcuchami Plasmy. W zasadzie, to myślę o tym na odwrót. LN to metoda przenoszenia środków w ramach kanałów płatności, natomiast sidechainy plasmy to wydajny i skalowalny sposób zabezpieczenia kanałów płatności.

Koniec ogólników
Tyle na temat Plasmy, w której sidechainy mogłyby wykonywać dowolne kontrakty Turing complete. Pora teraz na drugą część, w której opiszę prostszą wersję o nazwie Plasma MVP. Zadaniem Plasma MVP jest tylko transfer środków i to bez możliwości tworzenia na ich bazie LN ani Atomic Swaps. Pasma MVP jest delikatnie mówiąc półśrodkiem, ale to najprostsza metoda pozwalająca wejść choćby jedną nogą w tą całą rodzinę rozwiązań o nazwie Plasma. Przy okazji Plasma MVP opiszę, kto zarządza takim sidechainem oraz możliwości radzenia sobie zarówno z próbami oszustwa ze strony innych użytkowników jak i instancją zarządzającą takim sidechainem.

I tutaj niemiła niespodzianka – opiszę to dopiero w kolejnym artykule. Ciężko mi się zmotywować do pisania długich referatów. Dlatego właśnie opis Plasmy podzieliłem na dwie części.


Jeśli uznałeś/uznałaś powyższy artykuł za wartościowy, zachęcam do wpłacenia jakiejkolwiek kwoty tutaj:


Będzie to dla mnie wskaźnik tego, ile osób faktycznie aktywnie korzystających już z LN czyta te artykuły i dla ilu osób są one na tyle wartościowe, że chce im się opłacić invoice.


Chcesz wiedzieć więcej o Lightning Network? Zapraszam na grupę Lightning Network Polska na facebooku.

No Responses

Leave a Reply

Your email address will not be published.