Bitcoin królem

Forki, forki...

Każdy kto siedzi choć trochę głębiej w środowisku kryptowalut słyszał o hardforkach BTC. O co w tym właściwie chodzi? Forki w środowisku programistycznym to zmiany kodu przez inną osobę, przez co zmodyfikowany program stanowi oddzielny byt oparty na oryginale. Twórca Bitcoina dał nam do ręki narzędzie - otwarty kod, z którym możemy robić jako społeczność wszystko co tylko chcemy. W końcu blockchain nie jest scentralizowany i nikt nie może nam narzucić żadnych reguł - o tym decyduje rynek.

Ale po co?

Oryginalny Bitcoin jako środek płatniczy odnosi porażkę. Stał się z czasem wolny, transakcje kosztują krocie, przestał być całkowicie anonimowy i tylko cena świadczy o jego użyteczności. Dlatego też powstały jego forki. Każdy obiecuje ulepszenie łańcucha pod innym kątem. Dla przykładu Bitcoin Cash zwiększa wielkość wykopanego bloku, przez co więcej transakcji zostaje wykonanych w tym samym czasie, a Bitcoin Gold rozwiązuje inny problem - ułatwia samo wydobycie, dzięki czemu Bitcoin nie jest we władaniu ludzi, których stać na specjalistyczny sprzęt. Ale nie tylko wydajność sieci jest tu problemem, ponieważ dla przykładu Ethereum nie jest tylko środkiem płatniczym, ale umożliwia też tworzenie małych programów w sieci, nadaje blockchainowi jakąś funkcjonalność poza płatnościami! Jak do tego ma się Bitcoin?

Ulepszenia dla staruszka

Internauci ze wszystkich stron świata nie śpią. Przetrwanie Bitcoina i jego adaptacja do codziennego życia byłaby dla wszystkich korzystna, dlatego wiele osób w społeczności pracuje nad wszelakimi propozycjami ulepszenia. Prawda jest taka, że o ile słyszy się o forkach takich jak wyżej wymienione Bitcoin Cash i Bitcoin Gold, to są to forki pchane przez grube ryby jak Roger Ver, które niekoniecznie chcą naszego dobra. Tymczasem wielu programistów działających w społeczności proponuje znakomite rozwiązania, o których mało kto słyszy, a mogą one zmienić wszystko. Zaprezentuję kilka z najciekawszych projektów.

Mikropłatności

Tak jak pisałem już wyżej, Bitcoin przez swoją ociężałość i cenę transakcji przestał być brany pod uwagę jako środek płatniczy. Fundacja Blockstream, zajmująca się technologiami blockchain zaproponowała rozwiązanie. Może będzie to brzmiało skomplikowanie, ale zostańcie ze mną. Zaproponowali dodanie dodatkowej warstwy do modelu blockchain odpowiadającej za kanały przesyłowe. Według tego modelu warstwa pierwsza blokuje fundusze (po wysłaniu żądania czekamy na potwierdzenia w sieci), warstwa trzecia dokonuje rzeczywistego potwierdzenia przesłania środków (potwierdzenia w sieci, umieszczenia transakcji w bloku), a zaproponowana przez nich warstwa druga otwierałaby kanał przesyłowy pomiędzy nie całą siecią, ale kilkoma node’ami, a fundusze byłyby zablokowane w dzielonym portfelu przez co dalej byłyby bezpieczne. Nie jest to złoty środek i fundacja stale pracuje nad ulepszeniem procesu, ale już na tym etapie obliczono 90% oszczędności mocy dla grupy 20 node’ów ze 100 kanałami między sobą. Szczegóły są opisane w dokumencie stworzonym przez Blockstream pod tym adresem.

Mimblewimble

Sieć Bitcoin jest całkowicie transparentna, a wszystkie node’y przetwarzają wszystkie transakcje w sieci, co w założeniu jest zaletą (transparentność i bezpieczeństwo transakcji), ale obecnie te dwa atrybuty są tematem zaciekłej dyskusji. Pełna transparentność sieci pozwala na wyśledzenie transakcji, każdy może przeglądać do woli wykopane bloki, a mając jeden adres prześledzić całą historię wydatków portfela. Wystarczy powiązanie transakcji zamówienia pizzy za Bitcoiny z portfelem z czarnego rynku i organy ścigania mogą mieć dokładny adres domniemanego przestępcy. Poza tym przetwarzanie wszystkich transakcji przez wszystkie node’y jest bardzo nieekonomiczne i zwiększa koszt samej transakcji.
Rok temu na forum deweloperów Bitcoina pojawił się tajemniczy dokument stworzony przez nieznanego autora podpisującego się jako “Tom Elvis Jedusor” (prawdziwe imię Lorda Voldemorta z francuskiej wersji Harrego Pottera). Dokument przedstawiał protokół Mimblewimble (nawiązanie do Czaru Związanego Języka), który pozwala drastycznie zwiększyć prywatność, a dodatkowo poprawić skalowalność architektury blockchain. Prezentuje on sposób na szyfrowanie wielkości transakcji w losowych ciągach cyfr, gdzie tylko adresat może odszyfrować wartość. Mimo tego dzięki kryptograficznej operacji nazwanej “zobowiązaniem bitowym” sieć dalej może wykonywać operacje matematyczne na tej wartości.
Mimblewimble proponuje także ukrycie transakcji przez łączenie kilku operacji w jedną, większą, mieszając wszystkie jej wejścia (nadawców) i wyjścia (odbiorców). Bardzo utrudnia to znalezienie drogi jaką przebyła transakcja i z jakiego portfela do jakiego tak naprawdę przesłane zostały fundusze. Idąc krok dalej możemy całkowicie wymazać adresy nadawców i odbiorców, zastąpić je nowymi ciągami znaków odpowiadającym ich partiom w transakcji i dodać jeszcze parę losowych, dla zwiększenia bezpieczeństwa.
Do tego dochodzi jeszcze poprawa skalowalności. Obecnie wszystkie transakcje w sieci są połączone. Transakcja tak naprawdę polega na zamianie wyjścia poprzedniej transakcji i zamiana na wejście nowej. Idąc tą ścieżką, jeśli stara transakcja jest nieważna, nowa oparta o nią także będzie nieważna. Więc aby wykonać transakcję node’y muszą znać cały blockchain (na chwilę obecną około 80 gigabajtów). Przy protokole Mimblewimble nie ma już takiej rzeczy jak historia transakcji, każdy bitcoin ma blok z którego został stworzony i od tego momentu jego wartość trafia do wyżej opisanej zmieszanego, nieznanego ciągu wyjść transakcji. Oznacza to, że node’y nie muszą się już martwić o historię transakcji, ale o to które wyjścia są prawdziwe. Co ciekawe może to również zmniejszyć wielkość dyskową samego blockchaina, ponieważ będą liczyły się tylko adresy wyjściowe.

Lighting Network i Atomic Swap

Deweloperzy z ACINQ, Blockstream i Lightning Labs tydzień temu przedstawili wersję 1.0 protokołu Lightning i pokazali jej zastosowanie w sieci Bitcoin za pomocą trzech różnych implementacji. Jest to o tyle ważne, że każda z tych fundacji opracowywała niezależnie własną wersję: ACINQ opracował system eclair, Blockstream c-lightning, a Lightning Labs opracowało lnd. W pierwszym teście kafejka Starblocks, prosta aplikacja oparta na eclair zaakceptowała opłatę wykonaną przez aplikację lnd przekierowaną dodatkowo przez c-lightning. Całkowicie spełnia to założenia Lightning Network i pokazuje, że mikropłatności nie są już tak odległe. Ostatecznie protokół ma zapewnić błyskawiczne i tanie transakcje, które nadadzą blockchainowi nowe znaczenie.
Lightning Network już w fazie testowej potrafił obsłużyć transakcję pomiędzy różnymi blockchainami. Lightning Labs z powodzeniem dokonał Atomic Swap - zamienił bitcoin na litecoin w testowej sieci: posiadacze się zmienili, mimo braku zarejestrowania transakcji w blockchainie. Lightning Network jest skonstruowane w taki sposób, że działając na różnych blockchainach może je łączyć. W przypadku kiedy jeden z posiadaczy waluty chce ją wymienić na inną, jest możliwe aby wysłał bitcoin do odpowiedniego kanału, a otrzymał odpowiednią ilość litecoinów na wyjściu. Rozwiązanie takie pozwala na zamianę walut bez udziału giełdy, czyli szybsze, bezpieczniejsze i tańsze zamiany walut bezpośrednio w sieci.

Smart Kontrakty

Smart kontrakty kojarzą się z “drugą generacją” blockchaina, której czołowym reprezentantem jest Ethereum. Mało kto wie, ale Bitcoin zawsze wspierał smart kontrakty. Sam proces transakcji to mały smart kontrakt: fundusze są przesyłane z jednego portfela do drugiego, kiedy zostanie wysłana właściwa kryptograficzna sygnatura. Bardziej zaawansowane smart kontrakty, jak multisig (kontrakty które mogą reagować na transakcje różnych ludzi i przechowywać ich środki) i timelocki (kontrakty ograniczone czasowo) zostały wprowadzone jeszcze zanim Ethereum powstało! Aktualnie są używane do wprowadzenia w życie Lightning Network.
Wychodząc z tego poziomu Bitcoin dorównuje w funkcjonalności Ethereum. Jeden z programistów fundacji Blockstream, Andrew Poelstra pracuje konkretnie nad funkcjonalnością smart kontraktów w łańcuchu Bitcoin. Zamiast całkowitej transparentności, co pozwoliło na eksploatację i hacki takie jak DAO, albo niedawne uszkodzenie portfela multisig i wielki wyciek funduszy zaproponował on przeniesienie kontraktów poza główny łańcuch co zwiększy bezpieczeństwo. Co więcej, prace Poelstra obejmują opisany już przeze mnie protokół Mimblewimble, który mógłby obedrzeć Bitcoin z funkcjonalności smart kontraktów przez znaczne okrojenie zawartości transakcji. Proponuje on prowadzenie sygnatur Schnorra - po krótce pozwalają one na agregację sygnatur, kilka różnych sygnatur transakcji może matematycznie zostać połączonych w jedną. Nie będę wchodził głębiej w szczegóły techniczne, ale zapraszam pod ten link jeśli chcesz poczytać więcej o sygnaturach Schnorra.
Warto też dodać, że już od roku rozpatrywany jest protokół MAST, który dodałby dodatkową warstwę prywatności i większą skalowalność w przypadku kontraktów. Za pomocą istniejącej już w Bitcoinie funkcji P2SH i użyciu drzew hash pozwalałby na lepsze przechowywanie skryptów w blockchainie i szybsze ich przetwarzanie. Nie będę w ramach tego artykułu przedstawiał dokładniejszych technikaliów tego protokołu, gdyż dotyczy on ściśle kryptografii i funkcji programistycznych, ale zapraszam pod ten link wszystkich zainteresowanych.

Zużycie prądu

Szczerze? To nie jest żaden problem. Media trąbią o tym, że “moc obliczeniowa Bitcoina jest tak duża, że przerasta moc generowaną z osobna przez 116 państw!”. Brzmi strasznie, ale rzeczywistość jest inna. Cała ta moc jest szacowana na 8.27 terawatogodzin rocznie. Dla porównania ŚWIATOWA PRODUKCJA MONET I BANKNOTÓW JEST SZACOWANA NA 11 TERAWATOGODZIN ROCZNIE. Wydobycie złota na całym świecie zużywa na chwilę obecną 132 terawatogodziny rocznie. 16 razy więcej niż Bitcoin. Bardzo prosto jest manipulować tą informacją, żeby wyglądała na wyolbrzymioną: “Bitcoin zużywa więcej energii niż Demokratyczna Republika Kongo”, jak i bardzo małą: Bitcoin zużywa 20% energii produkowanej przez pojedynczą elektrownię węglową w Tajwanie”.

Konkluzja

Prawda jest taka, że na chwilę obecną Bitcoin jest niczym. To dalej mały projekt, nowinka technologiczna, która ma szansę rozwinąć się do światowej waluty i jest na bardzo dobrej drodze. Media, bankierzy i rządy będą oczywiście szerzyć panikę nazywając go oszustwem wszech czasów i rzucając dziwnymi informacjami, tak jak udowodniłem w przypadku zużycia prądu. Dzięki opisanym przeze mnie ulepszeniom Bitcoin może działać znacznie sprawniej i bezpieczniej niż jakiekolwiek systemy bankowe, zużywając przy tym znacznie mniej energii.
To nasza powinność jako społeczności, żeby wprowadzić ten plan w życie.