W świecie cyfrowego górnictwa od dłuższego czasu jesteśmy świadkami bardzo ożywionej, czasami burzliwej dyskusji. Przeważają jednak merytoryczne argumenty. Sprawa dotyczy algorytmu hashującego ProgPow, który miałby zastąpić wysłużony Ethash, czyli algorytm, na jakim pracuje sieć Ethereum. Dlaczego wybór algorytmu może prowadzić do tak emocjonującej dyskusji? Jak się okazuje, ogniskuje on w sobie wizje i koncepcje na dalszy kierunek rozwoju cyfrowego górnictwa. W poniższej publikacji postaram się przybliżyć, o co tak naprawdę chodzi z ProgPow.
Geneza ProgPow
W maju 2018 roku, na jednym z cyklicznie zwoływanych meetingów przez DevTeam (zespół deweloperów odpowiadających za rozwój ETH) został złożony EIP 1075 proponujący zmianę algorytmu stosowanego do wydobywania bloków w Ethereum. EIP (Ethereum Improvement Proposal) to dokument opisujący proponowane nowe funkcje i procesy. Nowy algorytm w założeniach miałby posłużyć jako mechanizm blokujący dominację w sieci maszyn ASIC oraz umożliwić górnikom posiadającym karty graficzne na dokonanie ponownej decentralizacji sieci.
Żeby lepiej zrozumieć kontekst trzeba pamiętać, że Ethereum powstała jako kryptowaluta bazująca na konsensusie Proof of Work, a algorytm hashujacy Ethash miał być bastionem tysięcy rozproszonych po całym świecie górników opierających swoje parki maszyn na mocy obliczeniowej kart graficznych. Tak było przez długi czas ze względu na wbudowane w Ethash wysokie wymagania co do pamięci obliczeniowej.
W praktyce skonstruowanie układu obliczeniowego typu ASIC wydawało się niemożliwe, jednak potrzeba jest matką wynalazku i tego typu specjalistyczne urządzenia zaczęły pojawiać się na rynku. Najpierw Asic oferowało zbliżone osiągi do koparek opartych na kartach graficznych, jednak z czasem ich przewaga zaczęła rosnąć, by osiągnąć obecny, 2-3x szybszy poziom. W ten sposób pierwotni górnicy zaczęli coraz częściej kontestować taki stan rzeczy domagając się rozwiązania problemu.
Przełożeniem tych oczekiwań na rzeczywistość jest EIP 1075 – nowa propozycja została nazwana roboczo ProgPoW (progresywny Proof of Work). Celem było zaprojektowanie algorytmu, który wykorzystywałby w pełni moc obliczeniową, ale równocześnie w sposób zbalansowany wszystkie podsystemy dostępne we współczesnych kartach graficznych GPU. Oznacza to, że jeśli producenci koparek ASIC chciałby stworzyć wydajną maszynę, to jego rozwiązania musiałyby być konkurencyjne względem obecnych producentów kart graficznych, czyli AMD i NVIDIA. Spowodowałoby to zwiększenie nakładów projektowych, zmniejszenie dysproporcji wydajności między koparkami ASIC i GPU, a co za tym idzie odebranie ASICom obecnej dominującej pozycji. Innymi słowy ProgPow to propozycja wprowadzenia na stałe statusu quo w cyfrowym górnictwie.
Chiny vs reszta świata
Centralizacja technologii wytwarzania koparek ASIC w Chinach oraz nieuczciwe praktyki biznesowe stosowane przez tamtejsze firmy stanowią poważne zagrożenie dla bezpieczeństwa sieci, a co za tym idzie na szali stoi dalsze powodzenie projektu i wartości monety ETH. Co do zasady wszelkie przejawy monopolizacji są szkodliwe, w przypadku kryptowalut decentralizacja i rozproszenie są szczególnie istotne.
Ponieważ poziom technologii ASIC w Chinach wyprzedza resztę świata o kilka lat, to ostatecznie każda waluta posiadająca algorytm typu ASIC- friendly staje się z czasem bardzo zależna od scentralizowanych chińskich rozwiązań. W rezultacie producenci takich urządzeń czerpiąc korzyści ze swojej uprzywilejowanej pozycji uciekają się do różnych rozwiązań.
Często słychać zarzuty, że producenci ASIC wypuszczają nową generację dopiero w momencie osiągnięcia zaawansowanych prac nad kolejną generacją chipów obliczeniowych lub wprost producenci ASIC nie umożliwiają ich zakupu, dopóki nie opracują dla siebie rozwiązań znacznie szybszych. Dopiero wtedy do otwartej sprzedaży trafiają „nowe” urządzenia, które pozwalają reszcie świata na zakup swojego starego sprzętu, który już od początku jest skazany na bycie nieopłacalnym. Inną częstą praktyką jest cyklicznie wypuszczanie unowocześnionych wersji asica, zazwyczaj wzbogacającą nazwę asica o dodatkowe oznaczenia typu: Pro, Super, Eco, +. To tak naprawdę te same chipy obliczeniowe poddane umiejętnemu dozowaniu i rozłożone w czasie. W ten sposób, co kilka miesięcy na rynek trafiają gorące premiery o coraz większej sprawności.
Ten technologiczny wyścig zaproponowany przez chińskich producentów jest obarczony bardzo dużym ryzykiem. W momencie premiery nowej generacji starsze modele momentalnie tracą na wartości, a racjonalne planowanie inwestycji w cyfrowe górnictwo staje się mocno utrudnione. Harmonogram premier to jedna z najbardziej pilnie strzeżonych tajemnic chińskich producentów.
W poszukiwaniu sposobu na uniemożliwienie wytworzenia tanich i szybkich koparek ASIC eksperci z dziedziny kryptografii od dłuższego czasu poszukiwali optymalnego rozwiązania. Jednym z pierwszych sposobów było używanie algorytmu wymagającego dużych ilości pamięci. Logicznym wnioskiem było, że skoro szybkie układy pamięci są drogie, to koparki ASIC wyposażone w duże ilości szybkiej pamięci powinny być drogie, skomplikowane i trudne w wytworzeniu. Pierwszą praktyczną implementacją takiego pomysłu był „Scrypt” zastosowany m. in. w walutach Litecoin i Dodgecoin. Nowy algorytm zapewnił odporność w początkowych etapach istnienia tych walut, jednak z czasem Bitmain (chiński lider wytwarzający układy asic) opracował urządzenia ASIC do wydobywania Litecoina. Podobnie wyglądała historia z innymi algorytmami, stawiającymi na mocne wykorzystanie jednego zasobu, które w założeniach miały być odporne na koparki ASIC. Jednak z czasem wydobycie monet opartych o te algorytmy zostało zdominowane przez koparki ASIC.
Co oferuje ProgPow?
W tym miejscu do gry wchodzi ProgPow, który proponuje 5 istotnych zmian w algorytmie wykorzystywanym przez Ethereum:
- Zmiana keccak_f1600 (62 bit) na keccak_f800 (32 bit)
- Zwiększenie stanu zmiksowania
- Dodanie losowej sekwencji matematycznej w głównej pętli
- Wymuszenie odczytu z pamięci podręcznej
- Zwiększenie rozmiaru odczytywanej pamięci z 128 do 256 bajtów
Zmiany te wykorzystują mocne strony kart graficznych, zmuszając producentów ASICów do tworzenia wielozadaniowych kart graficznych zamiast tanich układów scalonych. Zmiana keccak do 32 bitów wpasowuje się w rozmiar słowa stosowany w obecnych kartach graficznych, natomiast konieczność wykonywania zaawansowanych obliczeń matematycznych uniemożliwia użycie układów ASIC. Odczyty z pamięci wymuszają posiadanie możliwości dokonywania operacji wejścia/wyjścia, a podwojenie ilości wymaganej pamięci oznaczają większe wydatki na kości pamięci.
Zgodnie z przeprowadzonymi symulacjami, taki wytworzony układ ASIC byłby tylko o 20% szybszy niż odpowiedniki w postaci kart graficznych przy jednoczesnej droższej cenie, co odbierałoby sens projektowania i wytwarzania układów asic. Naturalne przewagi asic zostałyby trwale wyeliminowane, a sytuacja na rynku znormalizowałaby się. To jest rzeczywiste znaczenie wprowadzenia ProgPow. Liczni komentatorzy przyznają, że takie rozwiązanie byłoby optymalne; z jednej strony wysoka otwartość na różne układy obliczeniowe, z drugiej progresywny algorytm angażujący wiele obszarów jednostek obliczeniowych nie pozwalający uzyskać konkretnemu typowi układu znacznej przewagi.
ProgPow – aktualny status
Propozycja EIP 1057 została warunkowo przyjęta w kwietniu 2020 podczas spotkania deweloperów o numerze 81. W rezultacie można się spodziewać przyjęcia algorytmu ProgPoW w przyszłych aktualizacjach, jednak nadal nie znamy dokładnej daty kiedy to nastąpi. Na ten moment na podobny ruch zdecydował się RavenCoin (RVN), który pilotażowo przeciera szlak praktycznego zastosowania rozwiązań zastosowanych w ramach ProgPow, a jego autorski algorytm KawPow do tej pory zdaje egzamin i równomiernie pozycjonuje strumienie mocy obliczeniowej płynącej z różnych rodzajów układów obliczeniowych.