Od kilku lat znany jest koncept bitcoina – wirtualnej waluty opartej o blockchain oraz sieć rejestrów rozproszonych. Na jej podstawie powstało zarówno wiele nie wnoszących nic nowego kopii, jak i sporo projektów, które były innowacyjne pod różnymi względami. Jedną z cech innowacyjności jest sposób wydobywania (”kopania”, “miningu”), nowych jednostek monet. Poniżej przedstawiamy najbardziej popularne sposoby potwierdzania transakcji w blokach, pełniące często jednocześnie rolę „miningu”.

 

Potrzeba zabezpieczania transakcji jest związana z problemem podwójnego wydawania (double spend). W systemie zdecentralizowanym istnieje możliwość wydania tej samej sumy tokenów dwukrotnie przez jednego kupującego. Załóżmy osobę która posiada jeden token i kupuje za niego w dwóch sklepach dwie rzeczy warte jeden token za rzecz. Mamy w tym przypadku do czynienia z konfliktem w postaci dwóch lub więcej transakcji niezgodnych ze sobą. Potrzebny jest system, który zweryfikuje te transakcje i dopuści tylko jedną z nich (pierwszą lub tę z wyższymi opłatami) w jednym bloku. Metody osiągania konsensusu mają na celu ustalenie wśród wszystkich akceptujących, która transakcja zostanie zatwierdzona i dodana do bloku.

 

Proof of Work (PoW)

Proof of work (Dowód pracy) jest aktualnie najbardziej popularnym algorytmem zgodności używanym w takich kryptowalutach, jak: Bitcoin, Ethereum, Doge, Dash. W przypadku tego algorytmu wymagany jest komputer wykonujący dużą liczbę prostych obliczeń (rozwiązywanie funkcji haszującej), które polegają na odnajdywaniu właściwego ciągu cyfr i sprawdzaniu, czy jest on poprawny. W przypadku “miningu” zwycięzcą jest osoba lub grupa (pool), która znajdzie rozwiązanie najszybciej. Gdy to nastąpi, w zależności od tego o jakiej monecie mowa, zwycięzca dostaje premię w postaci nagrody za blok. Otrzymuje także wartość opłat uiszczonych przez wszystkie osoby, których transakcje biorą udział w sprawdzonym wcześniej bloku.

 

Zdecydowaną zaletą tego rozwiązania jest bezpieczeństwo sieci i zapobieganie podwójnemu wydawaniu środków (wspomniany wcześniej double spend). Osoba, która chciałaby zmienić wynik poprzedniego bloku, musiałaby wykonać pracę przeciwko całej sieci. Wymagałoby to dodatkowej mocy obliczeniowej i nie byłoby opłacalne ze względu na to, że zastosowanie mocy obliczeniowej w celu weryfikacji transakcji, przyniosłoby prawdopodobnie większe zyski niż próba zmiany poprzedniego bloku. Trzeba tu dodać, że metoda PoW oparta jest na prawdopodobieństwie. Załóżmy istnienie dwóch maszyn: X o jednostkowej mocy obliczeniowej i Y o tysiąckrotnie wyższej mocy obliczeniowej (1000X).

Nie mamy pewności, że maszynie Y zawsze uda się „odgadnąć” funkcję hashującą jako pierwszej.

 

Do największej wady metody PoW zalicza się zużycie energii, która jest wykorzystywana w procesorach wykonujących obliczenia.

Wykres obrazujący zużycie energii elektrycznej przez poszczególne kraje. Traktując kopanie Ethereum i Bitcoina jako zużycie energii przez jedno państwo, uzyskalibyśmy 71 pozycję na świecie, z zużyciem większym niż Islandia.

 

Kolejną wadą jest zapotrzebowanie na specjalne jednostki obliczeniowe, najczęściej układy ASIC lub GPU. Aktualnie na rynku brakuje kart graficznych (GPU) wysokiej klasy, gdyż zostały wykupione przez “górników” (wydobywających kryptowaluty), na czym korzystają firmy zajmujące się produkcją kart graficznych, przeżywające swój renesans.

 

Wykres ceny akcji spółki Nvidia (Interwał W1) – największego producenta dedykowanych kart graficznych na świecie.

Następnym istotnym problemem tego systemu jest opóźnianie transakcji, gdyż transfery opatrzone niższą opłatą nie są traktowane priorytetowo – zostają umieszczone w kolejce lub, w najgorszym wypadku, nie są w ogóle przetwarzane przez sieć. Mamy tu do czynienia z kwestią rentowności górników, którzy nie chcą przetwarzać transakcji o niskiej stopie zwrotu. Ostatnią wadą tego systemu, o jakiej należałoby wspomnieć, jest zjawisko „tragedii wspólnego pastwiska”. Po pewnym czasie w systemie mogą zajść zmiany, które zaczną wykluczać górników (ekonomia, mniejsze nagrody za blok, brak rentowności), przez co rejestr stanie się mniej bezpieczny. Przy jednoczesnym wzroście zainteresowania użytkowników może dojść do sytuacji, w której otrzymamy podatną na ataki, mało wiarygodną sieć o długim czasie oczekiwania.

 

Proof of Capacity (PoC) oraz Proof of Space (PoS)

Polska nazwa: Dowód Miejsca. Jest to rozwiązanie bardzo podobne do PoW, również wykorzystujące zasoby hardwarowe, w tym przypadku przestrzeń dyskową. Altcoiny (kryptowaluty inne niż Bitcoin), które używają tego systemu to: burstpermacoinstorj. Z jednej strony algorytmy te mogłyby służyć do tworzenia backupów ważnych informacji, takich jak cyfrowe biblioteki, czy rejestry, natomiast z drugiej jest to sposób na zabezpieczenie sieci przed problemem podwójnego wydawania. W tym przypadku mamy pewien rodzaj pracy, związany z utrzymywaniem dysków i zasobów (obliczenia CPU do plotowania dysków), ale z drugiej strony praca ta nie jest „bezużyteczna” i nie jest wykonywana tylko po to, by wesprzeć sieć, ale może służyć także wyższym celom.  W metodzie PoC istnieje podobny mechanizm prawdopodobieństwa, co w PoW. W tym przypadku suma zplotowanych (przygotowanych do kopania) zasobów dyskowych stanowi jednostkę prawdopodobieństwa, stąd też osoba z przestrzenią dyskową nawet tak małą jak 1 terabajt ma probabilistyczne szanse na „wykopanie” bloku. W systemie tym bardzo istotne jest też, podobnie jak w PoW, łączenie się w grupy zwane „poolami”, by zwiększyć swoje prawdopodobieństwo oraz jednocześnie zmniejszyć wariancję szansy wykopania bloku i otrzymania nagrody. Zagrożeniem w tym systemie mogą być gracze o dużych zasobach dyskowych, czy też dostarczyciele usług w chmurze.

 

Proof of Stake (PoS)

Proof of Stake (Dowód Stawki) jest to jeden ze sposobów kopania/zabezpieczania sieci blockchain, który wymaga od użytkownika posiadania określonej liczby tokenów i stałego dostępu do sieci. Załóżmy prostą sieć o 100 tokenach, bez określonych minimalnych zasobów potrzebnych do wzięcia udziału w procesie kopania, czy innych ograniczeń (minimalny czas przetrzymywania monet). Posiadając 10 tokenów, otrzymujemy więc 10% szans na „wykopanie” kolejnego bloku, czy to generycznego, czy związanego z opłatami. Trzeba bowiem zaznaczyć, że większą część nagród może stanowić nagroda od samego systemu, w systemie gdzie w każdym bloku generowana jest pewna stawka przydzielana osobie, która wykopała dany blok. Im większa ilość posiadanych tokenów, tym większe są nasze szanse na sprawdzenie bloku. Często w systemach PoS wszystkie monety są już dostępne (premined, np. w przypadku NEM), a uczestnicy systemu rywalizują między sobą o opłaty transakcyjne. Systemy altcoin używające tej metody zatwierdzania transakcji to np. peercoin lub nxt. W systemie peercoin starsze i większe ilości tokenów mają większą moc nabywczą przy kopaniu. Prowadzi to do problemu monopolizacji sieci – użytkownicy, którzy mają duże zasoby bogacą się szybciej od tych z małymi zasobami i przewaga ta się powiększa. Istnieją więc sposoby, by zapobiegać takiemu procederowi przez wprowadzenie ograniczonego czasu „życia” zasobów. Po każdej udanej weryfikacji bloku użytkownik musi odczekać minimum 30 dni, zanim system poprosi jego zasoby o potwierdzenie kolejnego bloku. Ponadto, mniejsze zasoby otrzymują największy możliwy współczynnik wartości po 90 dniach, automatycznie stając w kolejce do zabezpieczenia kolejnego zbioru transferów. System ten jest bezpieczny, dopóki atakujący nie przejmie 51% zasobów tokenów. Problemem jest tu także możliwość głosowania na kilka alternatywnych rozwiązań przez użytkowników o  małych stawkach, przez co algorytm nie jest rozwiązywalny. Wprowadzono kilka testowych zabezpieczeń, takich jak odgórna kontrola czy połączenie z rozwiązaniem typu proof of burn, w którym środki przelewa się na określone konto związane z miningiem i przez czas weryfikacji użytkownik nie ma do nich dostępu. Można porównać to do posiadania na blockchain rachunku powierniczego (segregated account). W przypadku próby oszustwa użytkownik zostaje ukarany całkowitą utratą środków.

 

Proof of Importance (PoI)

Jest to pochodna systemu PoS z szeregiem ulepszeń, z których głównym jest dodanie współczynnika ważności do każdego zestawu tokenów. Ponadto, wprowadzono pewne obostrzenia związane z minimalną ilością tokenów wymaganych do otrzymania pierwszego współczynnika wartości oraz czasu po którym środki mogą zostać przeznaczone do miningu. W przypadku tego algorytmu posłużę się przykładem tokena XEM, jako flagowej implementacji tej technologii blockchain. W systemie NEM kopanie nazywane jest harvestingiem(żniwami), gdyż wszystkie monety są już dostępne na rynku, a potwierdzający transakcje harvester, dostaje nagrodę w postaci opłat transakcyjnych.

 

Szczegółowy opis PoI na przykładzie NEM pojawi się na dniach.

 

 

 

Autorzy: Bartłomiej Sanak, Tomasz Kurowski (P2P.Systems)

Bibliografia:

http://kryptopolonia.info/matematyka-kryjaca-sie-za-bitcoin/
https://en.bitcoin.it/wiki/Proof_of_Stake
https://themerkle.com/what-is-proof-of-importance/
https://steemit.com/til/@ontofractal/til-about-nem-cryptotoken-consensus-algorithm-and-blockchain-features
https://blog.nem.io/what-are-poi-and-vesting/
https://blog.nem.io/how-do-i-get-importance-on-the-nem-blockchain/
http://www.coindesk.com/short-guide-blockchain-consensus-protocols/
NEM technical reference: https://nem.io/NEM_techRef.pdf
https://kryptopomocnik.pl/delegated-proof-of-stake-dpos/

Podziel się z innymi

Bitcoin, Blockchain, Kryptowaluty, Nem