Przyszłość technologii Bitcoina

Każdy, kto rozważa zakup bitcoinów, powinien wiedzieć minimum dwie rzeczy:

  • jaka historia kryje się za jego technologią,
  • jaka przyszłość go czeka.

Zgodnie ze słowami eksperta Bitcoina, Andreasa M. Antonopoulosa: „Inwestuj w edukację zamiast w spekulacje”.

Ze względu na to, że Bitcoin i blockchain, na którym jest oparty, są tak innowatorskimi pod względem technologicznym koncepcjami, próby badania i zrozumienia jego technicznych aspektów mogą być trudne i zniechęcające. Ten artykuł został napisany w celu podkreślenia problemu skalowalności, z którym boryka się Bitcoin, oraz aby przedstawić spodziewane lub proponowane rozwiązania tego problemu. Kilka z przedstawionych tu koncepcji jest naprawdę ekscytujących!

Napisałem ten artykuł dlatego, że sam o Bitcoinie uczyłem się z niezliczonych źródeł, aby zebrać jak największą ilość informacji na temat jego przyszłości. Pisząc to, pamiętałem również o tych, którzy nie mają wiedzy programistycznej. Zakładam jednak, że czytelnicy mają bardzo podstawową wiedzę na temat bitcoina jako waluty oraz na temat tego, czym jest blockchain. Zacznijmy od problemu skalowalności, z jakim zmaga się Bitcoin.

Problem dotyczący przepustowości transakcji

Kiedy Bitcoin został przedstawiony światu po raz pierwszy, jego twórca, znany jako Satoshi Nakamoto, opisał go w dokumencie zwanym white paper jako „elektroniczną gotówkę w sieci peer-to-peer, umożliwiającą płatności online bezpośrednio od jednego uczestnika sieci do drugiego, z pominięciem jakiejkolwiek zewnętrznej instytucji finansowej”.

Jedną z podstawowych zalet bitcoina były natychmiastowe i bezpieczne transakcje typu peer-to-peer. Wraz ze wzrostem ceny o 1200% w stosunku do ubiegłego roku bitcoin staje się teraz, bardziej niż kiedykolwiek, dominującą kryptowalutą na rynku globalnym.

Z powodu tego bezprecedensowego wzrostu wartości liczba transakcji na blockchainie bitcoina również wzrosła, aktualnie nawet do 400 000 transakcji dziennie [artykuł powstał na początku grudnia 2017 r. – przyp. red.]. Ten szybki wzrost liczby transakcji stworzył poważny problem dla skalowalności sieci blockchain Bitcoina – ponad 90 000 transakcji jest w tej chwili niedokończonych, ze statusem „niepotwierdzone” [obecnie liczba transakcji jest podobna, ale zastosowane technologie pozwoliły ograniczyć opłaty transakcyjne nawet o 98% w porównaniu z tymi na koniec 2017 roku].

Rys.1. Razem ze wzrostem wartości i popularności bitcoina wzrasta liczba transakcji

Aby zrozumieć, dlaczego tak wiele transakcji zostaje niedokończonych, wyjaśnię, jak w ogóle działają płatności bitcoinowe.

Mechanika działania transakcji bitcoinowych

Za każdym razem, gdy użytkownik wysyła transakcję bitcoinową ze swojego portfela do innego, transakcja jest dodawana do puli pamięci (ang. memory poolmempool), która zasadniczo jest pulą wszystkich niepotwierdzonych transakcji w sieci Bitcoin. Cała ta pula jest utrzymywana przez poszczególne pule pamięci na komputerach, które przechowują również kopię rejestru blockchaina, zwanego węzłami (ang. nodes).

Rys. 2. Uproszczony schemat cyklu życia transakcji

Z całej puli pamięci górnicy wybierają te transakcje, które chcą zweryfikować. Gdy górnicy potwierdzą daną transakcję (czyli potwierdzą, że nadawca rzeczywiście ma wystarczająco dużo bitcoinów, aby wysłać je do odbiorcy), dodają ją do nowego bloku, który ostatecznie zostaje opublikowany w sieci. Następnie inne węzły przeglądają ponownie te nowo dodane transakcje w bloku, aby upewnić się, że dany blok jest właściwy, zanim go zaakceptują jako część rejestru.

Obliczmy przepustowość transakcji:

  • Mediana rozmiaru transakcji to około 250 bajtów
  • Rozmiar bloku jest ograniczony do 1 MB (1 000 000 bajtów)
  • A zatem blok zawiera około 4000 transakcji (1 MB podzielone przez 250 bajtów)
  • Jeden blok może być opublikowany na blockchainie średnio co 10 minut (600 sekund)
  • 4000 transakcji (maksymalnie) jest publikowanych co 600 sekund z szybkością 6,66 transakcji na sekundę

W jaki sposób górnik dobiera transakcje, które należy zweryfikować, z ponad 90 000 niepotwierdzonych w puli pamięci? Odpowiedzią są opłaty transakcyjne! Nadawca transakcji ma możliwość dodania niestandardowej opłaty transakcyjnej do swojej transakcji. Jest to tzw. fee, czyli opłata transakcyjna przeznaczona dla górnika, która zachęca górników do wybrania właśnie tej transakcji i do szybszej jej weryfikacji. Górnicy wybierają te transakcje, które mają najwyższą opłatę, aby zmaksymalizować zyski. Teoretycznie można wysłać transakcję bez opłat. Ale jeśli inne transakcje w puli mają wyższe wynagrodzenie dla górników, dlaczego ktokolwiek miałby kiedykolwiek wybrać Twoją transakcję?

Wraz ze wzrostem bazy użytkowników Bitcoina, rośnie też średnia opłata za transakcję. W ciągu sekundy może być przetworzonych co najwyżej 7 transakcji, a każdy chciałby najpierw zweryfikować swoją. Obecnie średnia opłata transakcyjna wynosi około 3,58 USD. Opłata ta z pewnością nie jest idealna – jeśli chcesz wysłać swojemu przyjacielowi część bitcoina o wartości kilku dolarów, możesz wydać więcej na opłaty transakcyjne, niż wynosi sama wartość transakcji! Na tym polega problem i jeśli nic się nie zmieni, można się spodziewać, że opłaty transakcyjne wzrosną jeszcze bardziej z powodu wciąż rosnącej liczby niepotwierdzonych transakcji [w szczytowym momencie w grudniu 2017 r. opłaty doszły do, bagatela, 55 USD, w czerwcu 2018 r., i to już od dłuższego czasu, utrzymują się na poziomie sporo niższym niż 1 USD – przyp. red.].

Rozwiązywanie problemu przepustowości

Proponowanym rozwiązaniem tego wąskiego gardła, które wywołało wielkie kontrowersje w społeczności Bitcoina, jest po prostu podniesienie rozmiaru bloku z pierwotnego limitu 1 MB. Umożliwiłoby to umieszczanie większej liczby transakcji w jednym bloku.

Za każdym razem, gdy rozmiar bloku w łańcuchu jest zwiększany, wymagany jest tzw. hard fork. Oznacza to, że musi zostać utworzona całkowicie nowa kopia łańcucha bloków, co wymaga zgody ze strony społeczności Bitcoina. Ponieważ miliony ludzi używają Bitcoina, uzyskanie konsensusu jest trudne i należy dołożyć starań, aby uniknąć takiej konieczności. Co więcej, mimo że rozmiar bloku może zostać zwiększony na tyle, aby pomieścić aktualnie niedokończone transakcje, to baza użytkowników Bitcoina nadal rośnie – dlatego w końcu powstaną kolejne zaległości w niepotwierdzonych transakcjach, co spowoduje, że będzie potrzebne kolejne zwiększenie rozmiaru bloku, a następnie kolejny hard fork.

Dlaczego więc nie wystarczyłoby stworzenie wystarczająco dużego bloku, aby bez względu na to, ile osób używa sieci do przeprowadzania transakcji, przepustowość sieci nigdy nie była zbyt mała?

Przede wszystkim matematyka bloku, który jest na tyle duży, aby obsługiwać masową adopcję, jest niepraktyczna i ograniczy wydobycie do niezwykle wydajnych maszyn. Takie maszyny byłyby w stanie utrzymywać jedynie wielkie korporacje, przez co to rozwiązanie wprowadziłoby element centralizacji – która jest przeciwieństwem cech i założeń Bitcoina.

Jeśli weźmiemy pod uwagę wielkość bloku wystarczającą tylko dla populacji jednego miasta, ograniczyłoby to hosting węzłów i umożliwiło kopanie tylko tym z najpotężniejszymi urządzeniami, tj. wielkim firmom.

  • 1 miliard transakcji dziennie
  • 1,6 GB bloków (1655 MB)
  • 87 terabajtów/rok
  • Może wystarczy na jedną dużą powierzchnię metra?
  • Centralizacja (kopanie!)

Ponadto trzeba pamiętać, że po wykopaniu bloku wszystkie inne węzły muszą go zatwierdzić przed zaakceptowaniem. Jeśli rozmiar bloku byłby niewiarygodnie duży i ktoś próbowałby opublikować nieprawidłowy blok, węzły straciłyby dużo czasu na próbę sprawdzenia poprawności bloku przed odrzuceniem go jako nieważnego i przejściem do następnego bloku.

Ponadto trzeba pamiętać, że po wykopaniu bloku wszystkie inne węzły muszą go zatwierdzić przed zaakceptowaniem. Jeśli rozmiar bloku byłby niewiarygodnie duży i ktoś próbowałby opublikować nieprawidłowy blok, węzły straciłyby dużo czasu na próbę sprawdzenia poprawności bloku przed odrzuceniem go jako nieważnego i przejściem do następnego bloku.

Skoro w takim razie nie możemy zwiększyć rozmiaru bloku, to co można zrobić? Na szczęście istnieje kilka rozwiązań, które powinny zostać wdrożone w celu rozwiązania tego problemu.

Segregated Witness (SegWit)

Rozwiązanie, które nazywa się SegWit, jest już implementowane w sieci Bitcoina od sierpnia 2017 r. Jest to kluczowa zmiana funkcjonowania sieci, która modyfikuje format transakcji. W najprostszym tłumaczeniu zmniejsza ona ich rozmiar i umożliwia przypisanie większej liczby transakcji do bloku, co w konsekwencji zwiększa przepustowość. SegWit jest tzw. soft forkiem, co oznacza, że jest całkowicie zgodny z istniejącym protokołem Bitcoina, jednak żeby w pełni korzystać ze wszystkich jego funkcji, zarówno węzły, jak i portfele muszą zostać zaktualizowane.

Każda transakcja ma podpis nadawcy (ang. proof of ownership). Jest to zwykle największa część transakcji. W rzeczywistości te dane nie są konieczne do zweryfikowania transakcji, dlatego SegWit przenosi je na koniec transakcji, jednocześnie je oddzielając.

Rys. 3. SegWit przenosi sygnatury potwierdzające transakcje na jej koniec, sygnatury te następnie są usuwane przed umieszczeniem transakcji w bloku

Jeśli transakcja zostanie wysłana do węzła, który nie został uaktualniony technologią SegWit, usuwa on dane o nadawcy z końca transakcji przed wstawieniem ich do bloku, co zmniejsza ogólny rozmiar transakcji i oszczędza miejsce. Dodatkową korzyścią jest to, że węzły nie mogą już modyfikować danych o nadawcy [które teraz są w nowej części, tzw. witness – przyp. red.] – nie można zatem zmienić informacji o tym, od kogo pochodziła transakcja. Wcześniej węzły miały taką możliwość. To otwiera drogę do rozwiązań wielowarstwowych, które omówimy w dalszej części artykułu. Zmniejszają się również opłaty transakcyjne. Zwykle obliczane są one na 1 bajt transakcji, więc SegWit, zmniejszając całkowity rozmiar transakcji, zmniejsza też jej koszt.

SegWit zmienia również definicję bloku: zamiast bloku definiowanego za pomocą bajtów mamy teraz blok definiowany za pomocą jego „ciężkości” (maksymalna waga bloku to 4000). Transakcje wcześniejszego typu mają wagę 4, natomiast transakcje typu SegWit – 0,25. Dzięki temu jeden blok może zawierać dużo więcej transakcji typu SegWit i mogą mieć nieco większy rozmiar (w przybliżeniu co najwyżej 2 MB). Żeby jednak te wyliczenia były prawdziwe, węzły muszą uaktualnić się do SegWita, a portfele zaimplementować to rozwiązanie w celu zmniejszenia opłat transakcyjnych. W rezultacie adopcja SegWita przebiegała powoli jednak w tej chwili korzysta z niego już ponad 60% całej sieci Bitcoin [stan na luty 2020 – przyp. red.].

Wielowarstwowe rozwiązania

W obecnej wersji Bitcoin nie nadaje się za bardzo do mikropłatności. Jeśli chcesz kupić filiżankę kawy za 2 USD, w BTC, przez opłaty transakcyjne, możesz czasem zapłacić więcej niż ekwiwalent 2 USD. Poza tym transakcja nie zostanie potwierdzona natychmiastowo – trzeba poczekać, aż zostanie opublikowana w sieci w zweryfikowanym bloku, który pojawi się – i to w optymistycznej wersji – w ciągu 10 minut.

Rozwiązania kolejnych warstw to sieci umieszczone na blockchainie Bitcoina, które umożliwiają użytkownikom wysyłanie kilku transakcji z niewielkimi kwotami niemal natychmiast, bez opłat transakcyjnych i właściwie bez pośredników.

Lightning Network

Lightning Network to tzw. off-chainowe podejście do skalowania bitcoina, czyli takie, które tylko czasem musi odwoływać się do warstwy podstawowej, czyli do blockchainu bitcoina. Dzięki temu i zastosowaniu połączonych ze sobą w sieć kanałów płatności, bardzo duża ilość transakcji może zostać przeprowadzona między użytkownikami sieci bez konieczności uiszczania opłat transakcyjnych związanych z użyciem warstwy podstawowej. Teoretycznie użytkownicy Lightning Network mogą dokonać nawet miliona małych transakcji między sobą odwołując się do podstawowej warstwy tylko dwa razy.

Rys. 4. W Lightning Network, aby dotrzeć do miejsca docelowego transakcje mogą być przesyłane przez innych uczestników sieci

Kanały mikropłatności są skonfigurowane w celu zapewnienia bezpośrednich płatności między dwoma użytkownikami offchain. Ponieważ blockchain nie jest już obecny w tej warstwie, nie może być użyty do sprawdzania transakcji i zapewnienia, że jedna strona zapłaci drugiej. Zamiast tego zastosowana jest technologia multisignature adresses. Są to adresy, które muszą być potwierdzone przez wielu użytkowników w celu umożliwienia przepływu funduszy oraz zawarcia ograniczonych czasowo hashowanych kontraktów (ang. hashed time-lock contracts). Kontrakty te są kryptograficznie zabezpieczonymi, automatycznymi umowami, które na pewien okres blokują fundusze, aby zapewnić stronom bezpieczeństwo, by nie doszło do oszustwa. Taka technologia eliminuje potrzebę zaufania między użytkownikami podłączonymi do kanałów mikropłatności.

Oto przykład (w dużym uproszczeniu) działania kanału mikropłatności w sieci Lightning Network:

  • Alice chce przeznaczyć 1 bitcoina na kanał mikropłatności z Bobem. Deklaruje, że ten 1 bitcoin będzie wykorzystany w transakcji typu commitment transaction na blockchainie Bitcoina. Ten 1 bitcoin jest następnie blokowany pod adresem multisig, z którego obie strony mogą się w każdej chwili wylogować, jeśli będą chciały zamknąć kanał. Ten adres jest również zabezpieczony ograniczoną czasowo umową, która stwierdza: „Alice ma 1 BTC, a Bob ma 0 BTC, wartości te zostaną uwolnione za godzinę”. Oznacza to, że 1 bitcoin Alice jest zablokowany na 1 godzinę, po czym zostanie zwrócony Alice i opublikowany ponownie na blockchainie Bitcoina.
  • Następnie Alice decyduje się dać Bobowi 0,1 BTC. Ta transakcja jest rejestrowana za pomocą nowej, skróconej umowy z blokadą czasową, stwierdzającej: „Alicja ma 0,9 BTC, a Bob ma 0,1 BTC, kontrakt wygaśnie za 50 minut”. Ta umowa ma okres ważności równy 50 minut, co oznacza, że zostanie opublikowana na blockchainie jeszcze przed oryginalną umową stwierdzającą, że Alice ma 1 BTC. W związku z tym Bob natychmiast wie, że ma 0,1 BTC, ponieważ ta nowa umowa zostanie opublikowana na blockchainie przed pierwotną umową, co spowoduje, że stara umowa będzie nieważna.
  • Po upłynięciu pełnej godziny kanał mikropłatności zostanie zamknięty, a ostateczny stan konta między Alice i Bobem będzie opublikowany na blockchainie. Jeśli Alice i Bob chcą prowadzić kolejne transakcje, mogą przedłużać termin wygaśnięcia ich kanału tak długo, jak chcą. Jeśli któreś z nich chce wcześniej zamknąć kanał, jedno z nich musi podpisać się na oryginalnym adresie multisig, w którym przechowywany jest bitcoin.

Sieć umożliwia także transakcjom przekierowanie się do miejsca docelowego, wykorzystując innych podłączonych użytkowników w kanale jako pośredników [dużo otwartych kanałów płatności tworzy sieć zwaną Lightning Network – przyp. red.].

Może się to zdarzyć, nawet jeśli bezpośrednie połączenie z żądanym użytkownikiem nie jest możliwe do wyszukania bieżącego kanału mikropłatności. Na przykład jeśli Alice ma kanał otwarty z Bobem, a Bob ma kanał z Markiem, a Alice chce wysłać Markowi trochę bitcoinów, sieć może skierować płatność do Marka przez Boba, jednocześnie zapewniając, że żadna ze stron nie musi ufać innej.

Idealnie byłoby, gdyby użytkownik tworzył commitment transactions w drugej warstwie bardzo rzadko, pozostając jak najdłużej w sieci, żeby regulować większość swoich codziennych płatności. Gdy użytkownik chce wyjść z tej wielowarstwowej sieci, dokonuje się transakcji rozliczeniowej na blockchainie, deklarując końcowe saldo użytkownika po wszystkich działaniach drugiej warstwy. Taka transakcja rozliczeniowa oblicza użytkownikom całkowite saldo bitcoinów na blockchainie porównując je z danymi dostępnymi przed wejściem do Lightning Network. W sumie tylko dwie blockchainowe transakcje są wykonywane w celu umożliwienia użytkownikowi przeprowadzenia na drugiej warstwie nieograniczonej liczby transakcji za darmo.

Jak już wspomniałem, SegWit toruje drogę dla Lightning Network, ponieważ eliminuje zdolność węzłów do modyfikowania danych uczestników transakcji, a dane te używane są do identyfikacji wejścia użytkownika do drugiej warstwy.

Od redakcji

Sama sieć Lightning Network w chwili obecnej jak i technologie w niej stosowane rozwijają się bardzo dynamicznie a ilość dostępnych portfeli wykorzystujących tę technologię zwiększa się z dnia na dzień. Istnieją już takie rozwiązania, dzięki którym użytkownik wciąż jest w posiadaniu własnego klucza prywatnego a zarządzanie kanałami płatności odbywa się automatycznie (np. Phoenix Wallet)

Podpisy Schnorra

Kiedy użytkownik wysyła transakcję w sieci Bitcoin, dane wejściowe transakcji (kwota, którą wysyła) są obliczane po prostu przez pobranie z blockchaina całkowitej niewykorzystanej kwoty bitcoina, którą wcześniej otrzymał. Czyli na przykład:

  • Zaczynając z pustym portfelem, otrzymuję 1 bitcoin w transakcji nr 1, a następnie kolejny 1 bitcoin w osobnej transakcji nr 2.
  • Chcę teraz wysłać 2 bitcoiny w kolejnej transakcji. Będą dwa wejścia do tej transakcji: transakcja nr 1 i transakcja nr 2, czyli w sumie 2 bitcoiny.

W ramach obecnego algorytmu generowania sygnatur (ang. elliptic curve digital signature algorithm) każde wejście wymaga własnego, oddzielnego podpisu. Zwiększa to łączny rozmiar transakcji, a co za tym idzie, zwiększa opłatę transakcyjną.

Rys. 5. Bieżący obraz transakcji. Tu każde wejście wymaga podpisu, co zwiększa całkowity rozmiar transakcji

Podpisy Schnorra są alternatywnym i wydajniejszym sposobem na przechowywanie danych podpisu w transakcjach. Wszystkie dane wejściowe są kumulowane, a następnie zapisywane jako pojedyncza sygnatura przy użyciu algorytmu Schnorr, co znacznie oszczędza miejsce w transakcji i dodatkowo pomaga zwiększyć ich przepustowość, umożliwiając przechowywanie większej średniej liczby transakcji w bloku.

Sygnatury Schnorra mogą być również wykorzystywane do wspomagania postępu technologii Bitcoina w zakresie prywatności dzięki korzystaniu z transakcji CoinJoin. CoinJoin to metoda wprowadzania anonimowości do transakcji Bitcoina. Działa poprzez łączenie naszej transakcji z innymi transakcjami dokonywanymi na rzecz jednego odbiorcy. Gdy płatności są połączone, śledzenie, który użytkownik wysłał dane wejściowe, staje się mocno utrudnione, co skutecznie czyni je anonimowymi. Niestety transakcje CoinJoin spowodowały wzrost opłat z powodu większej liczby danych wejściowych w pojedynczej transakcji, co skutkuje wyższą liczbą podpisów. Wykorzystanie podpisów Schnorr umożliwia skompresowanie wszystkich podpisów w transakcji, oszczędzając w dużym stopniu opłaty transakcyjne i zachęcając do korzystania z CoinJoin.

Rys. 6. Transakcje Schnorr. Wszystkie sygnatury nadawców są przechowywane jako jeden podpis w algorytmie Schnorra

Ponadto Schnorr toruje drogę do złożonych transakcji wielostronnych, które wymagają potwierdzenia przez wiele podmiotów. Niezależnie od tego, ile potwierdzeń stron jest wymaganych do transakcji, wszystkie dają jeden podpis Schnorr.

Sygnatury Schnorr są teraz możliwe tylko dzięki wdrożeniu technologii SegWit. Ponieważ kluczowe dane nie mogą być modyfikowane przez osoby trzecie, można je wykorzystać do efektywnego tworzenia sygnatury w technologii Schnorr.

MimbleWimble

MimbleWimble to radykalna, ale niesamowicie potężna propozycja zmiany w architekturze Bitcoina, którą przedstawiono anonimowo w internecie w lipcu 2016 roku i która wciąż jest dostępna pod adresem:

https://download.wpsoftware.net/bitcoin/wizardry/mimblewimble.txt

Celem modyfikacji, nazwanej na cześć klątwy wiążącej język w uniwersum Harry’ego Pottera, jest całkowite usunięcie większości danych o transakcji z bloków. W ramach MimbleWimble transakcje składają się wyłącznie z kwot wejściowych, kwot wyjściowych i podpisu. Podpis transakcji może zostać odszyfrowany tylko przez odbiorcę, dlatego weryfikacja transakcji pozostaje w jego gestii. Co za tym idzie, bloki zawierają tylko listę wszystkich wejściowych i wyjściowych kwot transakcji oraz ich odpowiednie podpisy. Bloki mogą być następnie płynnie łączone z poprzednimi blokami, ponieważ są tylko parami kwot wejściowych i wyjściowych. Następnie węzły mają możliwość kryptograficznej weryfikacji, czy suma transakcji w blokach nie tworzy dodatkowych bitcoinów (czyli czy różnica między kwotami wejściowymi a wyjściowymi równa się 0) bez konieczności odszyfrowywania transakcji.

Usunięcie przechowywania większości danych o transakcji zapewnia pełną anonimowość użytkownikom poprzez pozbycie się możliwości generowania historii transakcji. Co więcej, przy blokach zawierających tylko niewydane kwoty wyjściowe (czyli liczbę bitcoinów, które zostały odebrane w adresie, ale nie zostały jeszcze przeniesione), zgodnie z wspomnianym wyżej dokumentem white paper, rozmiar blockchaina można zmniejszyć o ponad 60%. Zmniejszenie rozmiaru oznacza również, że w celu sprawdzenia blockchaina MimbleWimble węzły będą musiały jedynie spojrzeć na zestaw niewydanych kwot wyjściowych zamiast na cały zestaw transakcji, co spowoduje wykładniczy wzrost wydajności.

Matematyczne szczegóły MimbleWimble są poza zakresem tego artykułu, ale zostały szczegółowo wyjaśnione w dokumencie white paper. Chociaż MimbleWimble ma pewne wyraźne zalety i techniczne przełomy, jego implementacja wymaga usunięcia systemu skryptów Bitcoina, na którym opiera się znaczna część istniejącej architektury. W rezultacie implementacja MimbleWimble na blockchainie Bitcoina z technicznego punktu widzenia nie jest wykonalna.

Istnieją jednak propozycje, aby MimbleWimble istniał jako sidechain (łańcuch boczny). Sidechain jest oddzielnym blockchainem, bezpośrednio połączonym z blockchainem Bitcoina za pomocą tzw. 2-way peg. Ten element umożliwia wymianę zasobów między dwoma łańcuchami i powiązanie wartości zasobu łańcucha bocznego z wartością bitcoina. W tej konfiguracji użytkownicy mogliby wymieniać bitcoiny na coiny MimbleWimble, przeprowadzać całkowicie prywatne i szybkie transakcje w łańcuchu MimbleWimble, a następnie wymieniać je z powrotem na bitcoiny, kiedy tylko zechcą.

Grupa programistów jest już w trakcie rozwijania MimbleWimble jako oddzielnej kryptowaluty nazwanej GRIN.

Rootstock

Rootstock, z jakiegoś powodu, jest chyba jedną z najrzadziej omawianych zmian Bitcoina, a zdecydowanie jedną z najbardziej ekscytujących. Opisywany jest jako „pierwsza platforma dla smart kontraktów typu open source z dwukierunkowym powiązaniem z siecią Bitcoin, która nagradza również górników Bitcoina poprzez tzw. merge-mining, co pozwala im aktywnie uczestniczyć w rewolucji dotyczącej smart kontraktów”.

Podobnie jak MimbleWimble, Rootstock jest rozwijany jako sidechain Bitcoina. Jego podstawową wartością jest specjalizacja w smart kontraktach. Rootstock ma być platformą Turing Complete (w pełni programowalną), która będzie wstecznie kompatybilna z wirtualną maszyną Ethereum. Oznacza to, że Rootstock będzie w stanie realizować wszelkie smart kontrakty opracowane dla platformy Ethereum, ale będzie mógł również budować te opracowane na potrzeby własnej platformy.

Rys. 7. Coiny bocznego łańcucha są powiązane z blockchainem Bitcoina, działając obok niego ze stałym kursem wymiany

Rootstock ma na celu wdrożenie tej wszechstronnej funkcjonalności inteligentnych kontraktów, jednocześnie wykorzystując względnie dominującą bazę użytkowników Bitcoina i jego wartość, działając jak łańcuch boczny, powiązany wartością z blockchainem Bitcoina. Został również tak zaprojektowany, by zapewnić bezpieczeństwo przez istniejącą sieć wydobywczą Bitcoina, dzięki czemu nie ma potrzeby zachęcania górników do zabezpieczania nowego blockchaina. Rootstock ma również na celu rozwiązanie problemu skalowalności transakcji poprzez wdrożenie własnej wersji wielowarstwowego rozwiązania o nazwie Lumino. Dzięki temu może być w stanie wykonać do 20 000 transakcji na sekundę.

Rootstock ma być uruchomiony przed końcem 2017 roku [mainnet w wersji beta o nazwie Bamboo ruszył 5 grudnia 2017 r., 14 czerwca 2018 r. mamy już wersję 0.4.3 – przyp. red.]. Ogólnie rzecz biorąc, platforma ma na celu idealnie pasować do Bitcoina i jeśli jej założenia okażą się realne, niewątpliwie przyniesie bezprecedensową użyteczność dla sieci Bitcoin.

Podsumowanie

Jeśli dotarłeś aż do tej części artykułu – gratulacje! Mam nadzieję, że udało Ci się dowiedzieć czegoś o przyszłości Bitcoina i jesteś tak samo podekscytowany jak ja.

Bitcoin nie jest doskonały i musi stawić czoło wyzwaniom, które muszą być rozwiązane przez całą społeczność. Jest jednak wspierany przez niesamowicie oddanych i prężnych programistów, którzy codziennie pracują nad rozwiązywaniem tych problemów. Praktycznie dzień w dzień pojawiają się tu innowacje i jestem pewien, że w czasie czytania tego artykułu też pojawiła się kolejna ekscytująca propozycja dla blockchainu Bitcoina.