02/10/2017

Dlaczego technologia łańcucha bloków nie jest taka zła

Technologie

Jakiś czas temu opublikowaliśmy artykuł pod tytułem Sześć mitów na temat łańcucha bloków i bitcoina: demaskowanie efektywności technologii. Teraz porozmawiamy o tym, jak rozwiązać te problemy, aby łańcuch bloków działał jeszcze lepiej.

Najpierw należy przypomnieć, że łańcuch bloków to nie to samo co bitcoin. Technologia bitcoin jest w rzeczywistości połączeniem kilku technologii: zasad przesyłania pieniędzy, zasad kryptografii, poprawnej budowy łańcucha bloków, pojęcia konsensusu, zasady dowodu pracy (ang. Proof of Work, PoW), korzystania z sieci na zasadzie peer-to-peer, motywacji uczestników, drzewa Merklego do organizowania transakcji, zasad przejrzystości, hashowania i wielu więcej.

Z jednej strony problemy wynikające z tego, w jakiej formie łańcuch bloków jest używany przez bitcoina, nie są uniwersalne, a sytuacja może się zmienić w przypadku różnych walut. Jednak z drugiej strony rynek jest obecnie zdominowany przez łańcuchy bloków przypominające bitcoina, które wykorzystują system PoW.

Problem: łańcuch bloków działa powoli i nieefektywnie

Przepustowość bitcoina wynosi 7 transakcji na sekundę — nie na każdego uczestnika, ale na całą sieć. W przypadku Ethereum, drugiej najlepszej waluty, jeśli chodzi o kapitalizację, możliwe jest 15 zwykłych transferów pieniędzy i 3–5 inteligentnych umów (ang. smart contract) na sekundę.

Zasada PoW zaakceptowana dla większości walut gwarantuje wzrost zużycia prądu oraz ilości sprzętu dotąd, aż kopanie stanie się nieopłacalne. Jednak wzrost ogólnych kosztów nigdy nie zwiększa jakości świadczonych usług — zawsze jest to 7 transakcji na sekundę, bez względu na to, ilu jest górników i ile zużyli oni energii.

Lightning Network

Eksperci przez długi czas pracowali nad rozwiązaniem problemu związanego z niewystarczającą prędkością transakcji w systemie bitcoina, aż ostatecznie wymyślili sieć o nazwie Lightning Network.

Działa ona tak (a raczej będzie działać, gdy zostanie uruchomiona): najpierw użytkownicy sieci, którzy potrzebują korzystać z większej liczby transakcji, konfigurują oddzielny kanał — coś na kształt prywatnego pokoju w czacie — i, jako gwarancję integralności, składają depozyt w głównej sieci bitcoin. Następnie rozpoczynają wymianę płatności oddzielnie od reszty sieci — z dowolną prędkością. Gdy kanał nie jest już potrzebny, uczestnicy rejestrują wyniki interakcji w publicznym łańcuchu bloków i — zakładając, że nikt nie złamał zasad — odbierają swój depozyt.

Według optymistycznych prognoz rozwiązanie Lightning Network zostanie uruchomione jeszcze w tym roku, umożliwiając przeprowadzanie milionów transakcji na sekundę.

Problem: łańcuch bloków jest masywny

Łańcuch bloków jest masywny, ale nie jest to problem, gdy w sieci istnieje zaufanie. Tak naprawdę nie ma konieczności pobierania i sprawdzania wszystkiego, aby wierzyć, że prawdopodobieństwo oszustwa jest na bardzo niskim poziomie.

Portfele internetowe

Po pierwsze, istniejące portfele internetowe i usługi sieciowe przechowują wszystko i robią wszystko za Ciebie. Jeśli nikt nie narzeka na daną usługę, można ją uznać za solidną i w jakiś sposób zaufaną.

Mają one również dużą zaletę w porównaniu do tradycyjnych systemów płatności. Jeśli jeden portfel internetowy zostanie zamknięty, możesz przełączyć się do innego, ponieważ mają one takie same rekordy transakcji — łańcuch bloków jest jeden. A teraz zastanów się, jakby to było, gdyby Twój bank zaliczył wpadkę lub zbankrutowałby i trzeba by się było przenieść do innego.

Cienkie portfele

Sam Satoshi opisał inną, bardziej zaawansowaną (i bardziej niezawodną) metodę w 2008 roku. Zamiast przechowywać i przetwarzać cały łańcuch bloków o wadze 100 GB, można pobrać i sprawdzić jedynie nagłówki bloków, jak również dowód poprawności transakcji, które mają z Tobą bezpośredni związek.

Jeśli w wielu losowych węzłach sieci, które masz zamiar zgłosić, nagłówki bloków są dokładnie takie same, możesz z dużą dozą prawdopodobieństwa uznać, że całość jest poprawna.

Na tę chwilę nagłówki wszystkich istniejących bloków zajmują jedynie 40 MB, czyli niedużo. Ale można zaoszczędzić jeszcze więcej: nie trzeba przechowywać nagłówków dla każdej transakcji, która miała miejsce — można zacząć od określonego momentu.

Problem: łańcuch bloków nie jest skalowalny

Skalowalność systemu odnosi się do jego możliwości ulepszenia poprzez dodanie zasobów. Klasyczny łańcuch bloków rzeczywiście jest w ogóle nieskalowalny — dodawanie zasobów nie wpływa na prędkość transakcji.

Co ciekawe, klasyczny łańcuch bloków nie jest skalowalny ani w górę, ani w dół: niewielki system utworzony z myślą o rozwiązaniu lokalnych problemów w oparciu o te same zasady byłby podatny na tzw. atak 51% — każda osoba posiadająca wystarczająco dużo mocy obliczeniowej mogłaby uzyskać dostęp do sieci, przejąć ją i przepisać historię.

Plasma

Joseph Poon (pomysłodawca rozwiązania Lightning Network) i Vitalik Buterin (współtwórca Ethereum) niedawno zaproponowali nowe rozwiązanie, które nazwali Plasma.

Plasma to sieć służąca do tworzenia łańcucha bloków z… łańcucha bloków. Koncepcja przypomina rozwiązanie Lightning Network, ale została utworzona z myślą o Ethereum. Jak działa? Ktoś składa depozyt w sieci głównej Ethereum i rozpoczyna rozmowę z innymi klientami niezależnie i oddzielnie, samodzielnie nadzorując wykonanie inteligentnego kontraktu i ogólnych zasad Ethereum. Inteligentny kontrakt to mały program do pracy z pieniędzmi i portfelami internetowymi, jest on kluczową funkcją Ethereum.

Od czasu do czasu wyniki tych indywidualnych rozmów są rejestrowane w sieci głównej. Ponadto, podobnie jak w przypadku Lightning Network, wszyscy uczestnicy nadzorują wykonanie inteligentnego kontraktu i zgłaszają, gdy coś jest nie tak.

Póki co propozycja jest w fazie projektu, lecz jeśli zostanie ona zrealizowana, problem skalowalności łańcucha bloków przejdzie do lamusa.

Problem: górnicy zużywają zasoby naszej planety

Dowód pracy to najpopularniejsza metoda osiągania zgody w obszarze kryptowalut. Nowy blok jest tworzony wtedy, gdy długie obliczenia są wykonane oddzielnie, co ma na celu zapobieganie przepisywaniu historii finansowej. Górnicy sieci PoW zużywają wiele energii, a to, ile megawatów zostanie poświęcone, reguluje ekonomia, a nie obawy związane z bezpieczeństwem czy zdrowy rozsądek. W efekcie możliwości są zwiększane dotąd, dopóki aktualny kurs wymiany kryptowaluty czyni z kopania zajęcie opłacalne.

Proof of Stake

Alternatywnym podejściem rozdzielania prawa do tworzenia bloków jest tzw. proof-of-stake (PoS). W koncepcji tej prawdopodobieństwo utworzenia bloku, a tym samym prawo otrzymania nagrody (w postaci zainteresowania lub nowo wydanej kryptowaluty) zależy nie od tego, ile zostało wykonane pracy obliczeniowej (czyli ile energii zostało zużyte), lecz jaką ilość waluty masz w systemie.

Jeśli posiadasz jedną trzecią wszystkich monet, dzięki algorytmowi probabilistycznemu masz jedną trzecią prawdopodobieństwa utworzenia nowego bloku. Jest to dobra okazja, aby uczestnicy przestrzegali zasad, gdyż im więcej masz waluty, tym bardziej jesteś zainteresowany poprawnym funkcjonowaniem sieci i stabilnym kursem wymiany.

Proof of Authority

Istnieje także bardziej radykalna metoda: zezwolenie na tworzenie bloków jedynie zaufanym uczestnikom. Na przykład, 10 szpitali może użyć łańcucha bloków do śledzenia sytuacji epidemiologicznej w mieście. Każdy szpital ma własny klucz podpisu służący do autoryzacji. Sprawia to, że taki łańcuch bloków jest prywatny: zapisywać w nim może tylko ten szpital. Z drugiej strony pomaga to zachować otwartość, która jest przecież istotnym elementem jakości łańcucha bloków.

Jednak podejście Proof of Authority nie działa zgodnie z oryginalną koncepcją łańcucha bloków: tu efektywność sieci staje się scentralizowana.

Zasoby mogą być używane za towary

Niektóre sieci wykonują pożyteczną pracę w oparciu o koncepcję Proof of Work. Szukają one liczb pierwszych określonego typu (Primecoin), obliczają struktury białkowe (FoldingCoin) lub wykonują inne ścisłe zadania, które wymagają wielu obliczeń (GridCoin). Nagrodą za „kopanie” jest promocja inwestowania w zasoby naukowe.

Problem: łańcuch bloków jest zdecentralizowany, przez co się nie rozwija

Wprowadzenie zmian do zdecentralizowanego protokołu sieciowego nie jest łatwym zadaniem. Jego twórca może uruchomić obowiązkowe aktualizację dla wszystkich klientów — chociaż taka sieć nie mogłaby zostać uznana za rzeczywiście zdecentralizowaną — lub przekonać wszystkich uczestników do akceptowania zmian. Jeśli znaczna część z nich zagłosuje przeciwko zmianom, społeczność może się podzielić: łańcuch bloków podzieli się na dwa alternatywne łańcuchy bloków, a także będą istniały dwie waluty. Taki podział nazywa się „widelcem” (ang. fork).

Po części problem stanowi to, że różni uczestnicy mają różne cele. Górnicy są zainteresowani wzrostem nagród i zainteresowaniem; użytkownicy chcą płacić mniej za transfer; fani chcą, aby kryptowalutą była bardziej popularna; a geeki — aby do technologii dodawano przydatne innowacje.

Dwie z największych kryptowalut już się podzieliły. Stało się tak niedawno z bitcoinem, gdy uczestnicy nie mogli się zgodzić co do strategii rozszerzania rozmiaru bloku. Nieco wcześniej podobna sytuacja dotknęła Ethereum jako wynik niezgody w sprawie tego, czy sprawiedliwym działaniem będzie anulowanie rozłamu w funduszu inwestycyjnym i zwrócenie pieniędzy inwestorom.

Jak można unikać takich sytuacji?

Tezos

W kryptowalucie można zakodować opcję głosowania nad modyfikacjami. Funkcję taką udostępniono w walucie Tezos, która za chwilę pojawi się na rynku. Do podstawowych zasad takiego głosowania należą:

  1. Im więcej masz kryptowaluty, tym większą posiadasz moc w głosowaniu. Siła wydobywcza nie ma znaczenia.
  2. Swój głos można przydzielić osobie, która lepiej rozumie temat aktualnego głosowania.
  3. Deweloperzy mają prawo wyrażenia sprzeciwu przez rok po wydaniu waluty, a w razie konieczności może ono zostać rozszerzone.
  4. Kworum początkowe będzie wynosić 80%, jednak może ono zostać zmienione w celu dostosowania go do rzeczywistej aktywności użytkownika.

Uważa się, że podejście to znacznie zmniejszy poziom emocjonalny i konieczność przeprowadzania sztywnych rozdziałów (ang. hard forks).

Podczas głosowania nad tymi zasadami w pewnym momencie większość osób mogłaby wyeliminować prawa do głosowania mniejszości. Mówiąc w skrócie, może wygrać bogatszy. Jednak autorzy Tezosa uważają, że takie przejęcie miałoby negatywny wpływ na wartość waluty, przez co jest mało prawdopodobne. Czas pokaże.

Problem: łańcuch bloków jest zbyt przezroczysty

Wyobraź sobie, że pracujesz dla WikiLeaks i dostajesz darowizny w bitcoinach. Każdy może poznać Twój adres zamieszkania i dowiedzieć się, ile masz pieniędzy, a gdy spróbujesz zamienić swoje pieniądze na dolary w kantorze, organy ścigania dowiedzą się, ile ich masz.

Nie można wyprać swoich pieniędzy w bitcoinach. Podzielenie pieniędzy na 10 portfeli oznacza tylko tyle, że masz 10 kont. Istnieją usługi zwane mikserami lub tumblerami, które umożliwiają przelewanie dużych kwot za opłatą, aby ukryć prawdziwego właściciela. Jednak są one niewygodne z wielu powodów.

CoinJoin w Dashu

Twórcy kryptowaluty Dash (dawniej Darkcoin) jako pierwsi spróbowali rozwiązać problem anonimowości, używając funkcji PrivateSend. Ich podejście było proste: wbudowali tumbler w walutę.

Problemów było kilka. Po pierwsze, jeśli ktoś (np. organy ścigania) kontroluje znaczną część węzłów, które mieszają „czyste” pieniądze z „brudnymi”, ma on wgląd w transfer. Może scenariusz ten nie jest prawdopodobny, ale wciąż możliwy do zrealizowania.

Po drugie, mieszanie brudnych pieniędzy z czystymi sprawia, że całość wygląda na nieco brudną — „szarą”. Aby szare pieniądze wyglądały na czyste, wszyscy uczestnicy muszą korzystać z mieszania przez cały czas.

CryptoNote w Monero

Bardziej niezawodne podejście wykorzystuje prawdziwie anonimowa waluta o nazwie Monero.

Monero używa podpisów elektronicznych, które zezwalają grupie uczestników (wyznaczonych przez komórkę) podpisanie wiadomości, a także sprawia, że nikt nie jest w stanie ustalić, kto je podpisał. Dzięki temu nadawca może zacierać własne ślady. Z kolei protokół zapobiega podwójnemu wydatkowaniu.

Co więcej, Monero używa nie tylko klucza prywatnego do przesyłania pieniędzy, ale także dodatkowego klucza prywatnego, aby uzyskiwać wiedzę o nowych pieniądzach w portfelu, co uniemożliwia zobaczenie historii transakcji kogoś innego.

Ponadto niektórzy nadawcy mogą generować portfele jednorazowe, aby oddzielnie przechowywać pieniądze, które są prywatne, i fundusze pochodzące z rynków (zalecenie to zostało utworzone dawno temu dla bitcoina).

Wnioski

Nasz krótki przegląd problemów, które utalentowane osoby obróciły na swoją korzyść, dobiega końca. Moglibyśmy napisać o wiele więcej na temat inteligentnych kontraktów w Ethereum, świetlanej przyszłości Ripple‚a czy kryptowalut bez łańcuchów bloków, takich jak IOTA. Może w kolejnych postach nam się to uda.