Czy wiesz, że istnieje system, w którym głosowanie odbywa się średnio co 10 minut? To niesamowite jak skonstruowana jest sieć Bitcoin.

Każde głosowanie jest potwierdzone przez osoby używające programu Bitcoin. Choćby jedna delikatna zmiana spowodowałaby odrzucenie danej transakcji czy też zbioru transakcji (bloku). Wszystko możliwe dzięki kryptografii. Wyobrażasz sobie głosowanie na prezydenta (analogia do bloku), które zostaje unieważnione bo zaledwie jeden głos (analogia do transakcji), został sfałszowany? Dokładnie taka machineria działa w Bitcoinie. To jest najbardziej zaawansowany system transakcyjny w dziejach historii, jako pierwszy, który został zdecentralizowany, a cała moc decyzyjna została przeniesiona w ręce osób go używających. Uczestniczymy w cyfrowej rewolucji i końcu systemu bankowego jakiego znamy.

Bitcoin to zdecentralizowana sieć serwerów, komputerów, telefonów, łącząca się w całość by wspólnie weryfikować wszystko co przez nią przechodzi, tworząc niezależny (zdecentralizowany) system od m.in. banków, rządów, korporacji… Jedyna szansa by zaburzyć prace Bitcoina, to posiadanie 51% mocy decyzyjnej całej sieci, co w obecnym momencie jest wykonalne jeśli serwerownie połączyłyby swoją moc. Osoby zarządzające tymi serwerami musiałyby mieć wspólny interes i tu pojawia się kolejna przeszkoda. Nikt prócz rządu, banków, korporacji… nie ma interesu by niszczyć Bitcoina. Poza tym istnieje na świecie wiele niezależnych serwerowni, które mają intencję by wspierać bitcoina. Tak jak na obrazku poniżej (źródło):

Mimo, że w Bitcoinie głosowanie odbywa się co ok 10 min, to czasami nadchodzi jedno wielkie głosowanie, które odbywa się poza zdecentralizowaną siecią. Odbywa się w kuluarach różnych serwisach dyskusyjnych tj. bitcointalk.org czy reddit.com/r/Bitcoin. W tych miejscach zarówno programiści, naukowcy, specjaliści od kryptografii czy też użytkownicy Bitcoina wypowiadają się nad dalszymi losami Bitcoina, a dokładnie co trzeba zmienić by mógł dalej rosnąć w siłę.

Od początku roku 2013, trwa zacięta dyskusja nad zmianą wielkości bloków lub wprowadzeniem innego rozwiązania, które wprowadzi skalowalność Bitcoina w ilości przetwarzanych transakcji. W chwili obecnej bitcoin jest w stanie przetwarzać ok 3 transakcje na sekundę, co w przypadku systemów scentralizowanych tj. PayPal, Visa, Mastercard jest co najmniej śmiesznym wynikiem. Limit został założony przez Satoshiego Nakamoto w celu uchronienia systemu przed atakami na sieć w początkowej fazie implementacji kodu, jednak już wtedy poinformował nas, że gdy zajdzie potrzeba należy ten limit zwyczajnie podwyższyć.

Obecnie limit wielkości każdego bloku jest dalej ustawiony na 1MB. Co najmniej kilka osób wykonało obliczenia, że przy takim limicie, z Bitcoina może korzystać swobodnie średnio 275 000 ludzi – 1 transakcja dziennie na użytkownika (link). Myślę, że już osiągnęliśmy tę liczbę, co widać to na poniższym wykresie. I gdy Bitcoin staje się popularny (często gdy cena bije rekordy, tak jak teraz) to problem jeszcze bardziej jest dostrzegalny – sieć się zapycha. Obecnie objawia się tym, że wiele transakcji czeka na potwierdzenie, można to sprawdzić na tej stronie. Jeszcze tak niedawno, nie przekraczaliśmy 1000 niepotwierdzonych transakcji.

Dyskusja wśród ludzi zainteresowanych Bitcoinem mocno zawrzała w sierpniu 2015 roku. O tego momentu cenzura, dyktatura, manipulacja panoszy się niczym choroba. Można to nazwać wojną, a dla osób nie znających tematu można to nazwać wojną dezinformacyjną, czyli usuwanie cennych propozycji aby nowi użytkownicy nie mogli się nauczyć w czym tak na prawdę jest prawda.

Jak pewnie zauważyłeś/aś, jestem za tym by zwiększyć wielkość bloku, tak jak sam proponował twórca Satoshi Nakamoto. Zrobiły się dwie grupki ludzi. Wyznawcy małych bloków oraz osoby chcące znieść lub zminimalizować ograniczenie wielkości bloków. Wyznawcy małych bloków twierdzą, że łańcuch bloków zostanie zaśmiecony małymi transakcjami oraz wieszczą przyszłość Lighting Network / sidechain. Jest to sposób nawiązywania wielu błyskawicznych transakcji poza siecią Bitcoin (centralizacja) i następnie potwierdzanie ich jedną transakcją (decentralizacja), co miałoby odciążyć Bitcoina od przetwarzania wielu transakcji. Problem w tym, że implementacja Lighting Network / sidechain, jest tak powolna i skomplikowana, że obecnie robi się gorąco w świecie Bitcoina. W wątpliwości też wprowadza dokument techniczny opisujący zasadę działania Lighting Network (link), porównując go do dokumentu opisującego działanie Bitcoina (link), jest co najmniej mało zrozumiały (59 stron kontra 9 stron).

Jeden z użytkowników podsumował tą całą dyskusję tym jednym obrazkiem 🙂

W międzyczasie powstał nowy kod Bitcoina, który nie ma limitu wielkości bloków. Bitcoin XT został stworzony przez Gavina Andressena oraz Mike Hearna. Obecnie działa tak samo jak obecnie główny kod Bitcoina, czyli w obu sieciach zachodzą identyczne transakcje. W momencie gdy liczba bloków w 75% będzie wykonana przez wersję XT, to włączy się opcja tworzenia większych bloków, natomiast wtedy Bitcoin Core będzie odrzucał bloki stworzone przez XT, co jest oczywiste, bo będą mieć wielkość większą niż 1MB. Po Internecie panoszy się jeszcze dezinformacja, że Bitcoin XT to kolejny altcoin (kopia kodu Bitcoina), co jest oczywiście nieprawdą. Czyli jeszcze raz! Obecnie Bitcoin XT działa tak samo jak Bitcoin Core, a zmiany zostaną wprowadzone jak 75% sieci będzie używać wersji XT. Więc jakie to zmiany?

  • BIP101 – autor: Gavin Andresen- hardfork do 8MB w styczniu 2016 po zaznaczeniu 750 z 1000 ostatnich bloków jako zgodne z BIP przez kopalnie, blok rośnie x2 co 2 lata aż do 8GB w 2036r.

Wyobrażacie sobie ściągać 8GB danych co 10 minut? 🙂 Owszem ja przy takim łączu też nie umiem sobie tego wyobrazić jednak, tą czynność możemy zostawić dla profesjonalnych serwerowni oraz indywidualnych osób z dużym dyskiem (tak samo jak to robimy teraz). Za kilkadziesiąt lat 8GB będzie dla nas tym co 1MB teraz. Przy takiej wielkości bloków sieć Bitcoin będzie mogła obsłużyć 2,5 miliarda ludzi, gdzie każdy będzie robił średnio 1 transakcję dziennie. Gavin już wcześniej przeprowadzał symulacje przy zwiększeniu bloku do 20MB, można poczytać tutaj. Ciekawe, że w testach wyszło, że dyski lepiej radzą sobie z większym blokiem (20MB), może to być spowodowane przez optymalizację dysków pod kątem zapisu dużych plików.

Obecnie przy 1MB limicie bloków, zwiększają się drastycznie prowizje za transakcje, wychodzi na to, że transakcje robią się coraz droższe. Co przeczy z główną ideą Satoshiego Nakamoto oraz jego grupy programistów, ponieważ Bitcoin jako idea miał dostarczyć prosty, tani, szybki, bezpieczny system transakcyjny dla każdego kto chce i ma Internet, bez podziałów na rasy, narodowość… Ciekawe badanie przeprowadził Peter R. Rizun, zbadał jak będzie zachowywać się prowizja za transakcję, gdy nie będzie limitu wielkości bloku. Dokument znajdziesz tutaj. Wniosek płynący z tego dokumentu jest jasny. To rynek sam ustali wg popytu i podaży liczby transakcji ile prowizji będzie wymagać by transakcja była zaakceptowana oraz by nie dochodziło zbyt wcześnie do znacznego zwiększenia wielkości bloku (tak by technologia nadążała). Myślę, że tym kierunku powinniśmy zmierzać.

Mimo, że wojna rozgrywa się głownie między Bitcoin Core a Bitcoin XT to wersja Bitcoin Unlimited – która całkowite znosi limit wielkości bloków ma sporą przewagę nad XT. Według mnie implementaca BU nie jest właściwa lub po godzinie czytania jakims cudem nadal źle ją rozumiem. Wersja ta wprowadza możliwośc ustawiania jak duże bloki akceptujemy oraz jeśli jesteśmy kopalnią to jak duże bloki tworzymy. Te rozwiązanie wprowadzi demokrację. Każdy wtedy będzie mógł sam zadecydować w procesie demokratycznym jaka wielkośc bloku jest właściwa. Pomysł świetny jednak mam wątpliwości, czy w praktyce osoby, które będą głosować inaczej, będą od razu rozgałęziać łańcuch bloków, co by doprowadziło do pewnego rozdzaju chaosu 🙂

Ta implementacja wdrażana jest przez doświadczonych programistów i wpierana przez 18% górników i 7,7% użytkowników. Poparcie rośnie systematycznie. Aktualne statystyki możesz sprawdzić tutaj.

Porównując jaką wersją tworzone są bloki w sieci Bitcoin widać jasno, że wersja Classic oraz wersja Bitcoin Unlimited (obecnie to samo), mają już spory wpływ decyzyjny w jaki sposób będziemy tworzyć w przyszłości bloki.

Patrząc na historię zmian używalności wersji aplikacji Bitcoin widać, że jedynie Bitcoin Unlimited jest jedyną wersją, która może mieć przyszłość jako wersja Bitcoina z demokratycznym limitem wielkości bloku. Co będzie regulować wielkość bloków aby ktoś nie zasypał sieci śmieciami? Opłaty za transakcje 🙂 Jak czytasz ten artykuł z uwagą, to zauważyłeś jak podałem link do tego artykułu. Na wykresie umieściłem jedynie kilka z wielu wersji Bitcoina. Tylko te wersje głównie są używane przez użytkowników. Można też zauważyć jak powolny jest proces aktualizacji oprogramowania przez użytkowników.

Dokładniej sam proces głosowania poprzez kopalnie pokazuje strona bitcoinity.org. Patrząc się na ten wykres oraz przez kilka godzin przeglądając dyskusję jaka zachodziła przez ostatnie lata, wygląda to dla mnie jak dobry i zły marketing wprowadzenia poprawki. Takie przepychanie kto lepiej mówi jednak większość zwykle idzie za tłumem (manipulacja). I jak widać wielkie kopalnie, również zachowują się jak owieczki. Na chwilę obecną 1/4 sieci nie zgadza się na pozostawaniu przy limicie 1MB.

Obecnie jedynym ciekawym rozwiązaniem jaki przypadło mi do gustu jest propozycja od BitPay. Zaproponowali by wielkośc bloku zmieniała się dynamicznie na podstawie średniej wielkości bloku z X liczby bloków. Wynik miałby wg propozycji być powiększany o 3 x średnia wielkość bloku. W takim układzie podczas gdy sieć nagle by sie rozrosła w krótkim czasie, to zapas miejsca wystarczyłby by obsłużyc nowe transakcje.

Jakie by nie były propozycje potrzebujemy zmiany wielkości bloków (najlepiej do 8MB) już teraz, by mieć czas na dalsze dyskusje i poszukiwanie złotego grala. Jedyna obecna szansa na to wdrożenie Bitcoin Unlimited.

Innym aspektem, prócz samych statystyk jest fakt, że firma BlockStream dostała finansowanie 21 milionów dolarów. Co jest bardzo ciekawe, wiele osób z blockstream jest nadal programistami Bitcoin Core. Te osoby w „przypadkowy” sposób są zgodne by nie podnosić limitu wielkości bloku.

Wybrane ciekawe cytaty, świetnie oddające daną sytuację:

  • 20 Sierpień 2015 @Demotruk: „Ironia żądania użycia zcentralizowanego mechanizmu [osiągania] konsensusu zanim będziesz mógł wrzucić jakiekolwiek nowe zmiany do zdecentralizowanego mechanizmu konsensusu”
  • Jak zwiększyć liczbę zwolenników swojego pomysłu ? Zlikwidować wszystkich przeciwników i zwolenników konkurencji. Stalin i Hitler by się nie powstydzili (odnośnie usuwania z kanału zwolenników wersji XT
  • 21 Sierpień 2015 @AndreKoster: „Permamentne utrzymywanie 1MB zabezpieczenia antyspamowego jest świetnym pomysłem… Jeżeli jesteś bankiem”
  • 21 Sierpień 2015 @buddhamangler: „Oto powód dlaczego forkujemy… Adam, Blockstream i zwolennicy małych bloków chcą przepisać historię co do wizji Satoshiego.”
  • Poziom żenady cenzorskich zapędów Theymosa przekracza kolejne granice. Do dyskusji na temat „alternatywnych” klientów sieci Bitcoin stowrzone zostają każdego dnia specjalne posty. Dyskusja poza nimi na kontrowersyjne tematy zwiększania limitu rozmiaru bloku bądź alternatywnych klientów kończy się skasowaniem posta lub zbanowaniem konta użytkownika
  • 22 Sierpień 2015 @cafucafucafu: „Sidechainy/[Lightning Network] właściwie czyni Blockchain mniej bezpiecznym i mniej scentralizowanym poprzez zabieranie z niego zasobów. To jest tak, jakby tworzyć altcoiny aby uczynić Bitcoina bezpieczniejszym. „
  • 23 Sierpień 2015 @ydtm: „Dzisiaj Nauczyłem Się, ze ‚scentralizowany proces budowy oprogramowania’ (aka ‚konsensus developerski’) może być właściwie BARDZIEJ NIEBEZPIECZNY niż ‚scentralizowany proces wydobywczy’ (w dwóch genialnych postach od /u/ferretinjapan)”
  • 26 Sierpień 2015 @jstolfi: „Uważaj: problem nie jest [w wyborze] pomiędzy Core a XT, lecz w wyborze między małymi blokami a dużymi blokami”
  • 29 Sierpień 2015 @tsontar: „Prawdziwi Cypherpunkowie ‚głosują mocą swojego CPU, wyrażając ich akceptację prawidłowych bloków poprzez pracę nad ich przedłużeniem i odrzuceniem nieprawidłowych bloków poprzez odmowę pracy na nich. Jakiekolwiek potrzebne zasady i inicjatywy mogą zostać wymuszone przez ten mechanizm konsensusu.’ Wedle definicji Satoshiego, nie możesz ‚głosować’ na BIP100, ponieważ nie istnieje on w kodzie. Nie głosujesz na niego, tylko zaprogramowujesz go w kodzie, po czym tym kodem głosujesz. Tak właśnie whitepaper mówi na temat w jaki sposób zasady i inicjatywy mają być wymuszane.”

 

Podsumowanie i wnioski

Chciałbym niezmiernie podziękować użytkownikowi @ShadowOfHarbringer za to, że poświęcił swój czas oraz kompetencje po przygotowania opracowania na podstawie tego co działo się przez ostatnie lata w społeczności Bitcoin. Wszystko zamieścił na stronie, którą znajdziecie tutaj.

Dla mnie jasne jest to, że część społeczeństwa, która stanowi mniejszość, chce zniszczyć Bitcoina. Dzięki temu, że mają dostęp do ogromnych funduszy oraz mają doświadczenie w tym co robią, mają możliwość wprowadzić zamęt, dezinformacje, chaos, oraz próby skłócenia społeczności Bitcoin. Zasada dziel i rządź, którą stosują od lat oprawcy szuka zastosowania i też w tym temacie. Jestem przekonany, że ich starania spełzną na niczym, bo ta iluzja, którą próbują narzucić, nie istnieje. Świat Bitcoina i ludzie, którzy go zbudowali jest solidarny, każdy tu chce wolności i czy to wiedza, czy to intuicja łatwo pokaże co powinniśmy razem stworzyć. Trwa wojna psychologiczna na społeczność Bitcoina, jednak jesteśmy inteligentni i znamy broń oprawców 🙂 Kto to taki? Kto ma interes w tym aby zniszczyć Bitcoina? To raczej wiadome 🙂

Od technicznej strony nie ma sensu wspierać innych odmian bitcoina niż Bitcoin Unlimited. Dodam, że ta wersja Bitcoina jest w 100% kompatybilna z Bitcoin Classic (fork Bitcoin Core wprowadzający bloki 2MB). Osoby, które używają „lekkich” portfeli nie powinni się martwić, gdy sieć przegłosuje Bitcoin Unlimited to wystarczy zaktualizować swoją aplikację.

Każdy z nas jako użytkowników Bitcoina powinien sobie zadać pytanie. Lepiej jest znieść limit bloków, czy tworzyć nowe altcoiny, których wartość rośnie w schemacie pump&dump? Co by było gdy będziemy mieć jeden duży łańcuch bloków z jednym indeksem ceny do walut finducjarnych, z groszowymi opłatami za transakcję (lub darmowymi) zamiast wielu kryptowalut, które prawie nic nowego nie wprowadzają? Przecież jeśli chodzi o ilość danych na dysku, to na to samo wyjdzie. Natomiast jak ja obserwuje osoby, które chcą zacząć używać Bitcoina, dostają bólu głowy, bo to wygląda na jeden wielki śmietnik, gdzie każdy może sobie stworzyć nową kryptowalutę.

Jestem za tym aby była jedna spójna aplikacja, jeden łańcuch bloków bez limitów, jeden Bitcoin. Natomiast altcoiny, wg mnie powinny służyć jedynie do testowania innowacji i nowych rozwiązań, które możemy kiedyś wdrożyć do Bitcoina.

Jeśli dalej masz pytania czym jest Bitcoin i jak go zrozumieć od podstaw, to zajrzyj do Kompendium Wiedzy jakie teraz przygotowuję 🙂