Kurs5080

Bitmarket

Bitcantor.com

 

blocks

 

 

Z pozoru prosty do rozwiązania problem zwiększenia przepustowości sieci Bitcoina stał się obecnie skomplikowaną układanką, w której przeplatają się argumenty techniczne, ideologiczne i biznesowe, oraz krzyżują się sprzeczne interesy różnych grup użytkowników naszej kryptowaluty.

 

Warto przypomnieć, że Satoshi Nakamoto wprowadził sztuczne ograniczenie wielkości bloku do 1 MB, żeby utrudnić atak na sieć, przez zalanie jej spamowymi transakcjami.

Obecnie, wobec wysokości opłat transakcyjnych i faktu, że większość węzłów odrzuca transakcje z bardzo małymi opłatami, taki atak jest w praktyce niemożliwy. Dowiodły tego praktycznie nieudane próby takich ataków. Podniesienie limitu rozmiaru bloku wydawałoby się naturalną reakcją na zapychanie się sieci. Tymczasem programiści Bitcoin Core z takich, czy innych powodów odrzucają to rozwiązanie. W zamian proponują kilka dość złożonych technicznie pomysłów, które w sumie pozwolą na niewielkie (około dwukrotne) zwiększenie przepustowości sieci, oraz wprowadzenie ich oczka w głowie, czyli Lightning Network, sieci mikropłatności bazującej na łańcuchu bloków Bitcoina. Te rozwiązania to oddzielenie podpisów cyfrowych od transakcji (segregated witness), oraz rekonstrukcja bloków z transakcji w pamięci (compact block relay).


Oddzielenie podpisów jest obecnie dla programistów Core kluczowym wdrożeniem. Nie spieszą się z nim co prawda, ale dzięki temu wydaje się ono gruntownie przetestowane. Początkowo SW było testowane w oddzielnej sieci testowej, która miała kilka wersji w miarę jak wyłapywano błędy w implementacji. Następnie uruchomiono oddzielenie podpisów w zasadniczej sieci testowej Bitcoina, czyli testnecie. Tam sprawdzono jak SW współpracuje ze starszym oprogramowaniem. Może ono być bowiem (i najprawdopodobniej będzie) wprowadzone jako „softfork”, czyli nie wymusza szybkiej aktualizacji wszystkich węzłów sieci. Z punktu widzenia wielkości bloku SW działa tak, że podpisy cyfrowe potwierdzające prawo do wydania wejść transakcji nie są wliczane do rozmiaru bloku. Ponieważ podpisy zajmują mniej więcej połowę transakcji, oznacza to, że faktycznie blok może mieć około 2 MB, bo limit 1 MB dotyczyć teraz będzie tylko „gołych” transakcji.

Aby skompensować to zwiększenie ilości przesyłanych danych, kolejną nowością w protokole jest nowy sposób rozgłaszania bloków w sieci. To pomysł zupełnie niezależny od SW, bazujący na spostrzeżeniu, że węzeł otrzymujący nowy blok z transakcjami, większość tych transakcji już raz pobrał w momencie, gdy były rozgłoszone i przechowuje je w pamięci (tzw. mempool). W związku z tym węzeł mógłby otrzymać jedynie wykaz identyfikatorów (hashów) transakcji w bloku i pobrać je z własnej pamięci, odpytując sieć jedynie o brakujące transakcje. W ten sposób może zbudować kompletny blok i zapisać go na dysku. Testy pokazały, że to rozwiązanie zmniejsza obciążenie łącza mniej więcej o połowę, więc kompensuje zwiększenie faktycznego rozmiaru bloku wprowadzane przez SW.

Bardzo istotne jest to, że segregated witness oprócz lekkiego poluzowania limitu ilości transakcji w bloku, jest krytyczną aktualizacją dla promowanej przez programistów Bitcoin Core sieci Lightning. Dzieje się tak dlatego, że SW wprowadza możliwość określenia wersji języka skryptowego Bitcoina, która ma być użyta do weryfikacji transakcji. To z kolei pozwala na rozszerzenia tego języka niekoniecznie całkowicie kompatybline wstecz. To warunek konieczny do wprowadzenia Lightning.

Jak wcześniej wspomnieliśmy, SW wraz z innymi ulepszeniami mają być wprowadzone na zasadzie softforka, a progiem odblokowania tej aktualizacji jest 95% (95% górników i kopalń musi zasygnalizować w wykopywanych blokach gotowość do aktualizacji). W tej chwili wersja 0.13.0 Bitcoin Core zawiera już cały nowy kod, ale nie ma jeszcze „przełącznika” softforka. Zatem gdyby w tej chwili 95% górników już zaakceptowało SW, to i tak jeszcze nie zostałoby włączone. Przełącznik ma zostać uaktywniony w następnej wersji 0.13.1.

Tu jednak pojawiła się niespodziewana przeszkoda, w postaci dynamicznie rozwijającej się chińskiej kopalni ViaBTC. W ciągu kilku miesięcy jej moc osiągnęła około 10% mocy sieci BTC. Nieoficjalnie mówi się o tym, że ViaBTC ma ciche wsparcie producenta koparek BitMain, zarazem właściciela największej chińskiej kopalni AntPool. Kopalnia ViaBTC w obszernym wpisie na blogu jasno wyłożyła swój punkt widzenia: nie dla segregated witness, wsparcie dla Bitcoin Unlimited. Wersja węzła Bitcoin Unlimited znosi limit bloku i pozwala operatorowi węzła na samodzielne określenie limitu bloków jakie przyjmie. Ma to doprowadzić do samoregulacji rozmiaru bloku, bez technicznych komplikacji jakie wnosi SW.

Nietrudno zauważyć, że z obecną mocą wydobycia ViaBTC może skutecznie zablokować SW, co dla ekipy Core oznacza również pożegnanie z Lightning. Właściciele ViaBTC są tego oczywiście świadomi, uważając Lightning za wypaczenie idei Bitcoina. Z drugiej strony przeforsowanie Bitcoin Unlimited – w przeciwieństwie do SW – wymaga hardforka, czyli przejściowego rozdwojenia łańcucha bloków i wymuszonej aktualizacji oprogramowania. Do tego 10% mocy sieci z pewnością nie wystarczy, jednak inne chińskie kopalnie również krzywo patrzą na pomysły panów programistów Core. Spór o rozmiar bloku jest więc wciąż nierozstrzygnięty, ale walka weszła na nowy poziom.

 

Fotografia na licencji Creative Commons: flickr.com

 

infobtc-1160x653

BitCoin Reklama GiF 380x280