Skrócenie czasu pomiędzy blokami niczego nie poprawi

Wygadany
Awatar użytkownika
Posty: 593
Rejestracja: 8 lutego 2020
Reputacja: 1114
Reputacja postu: 
13
Napiwki za post: 0 BTC
Lokalizacja: 7-bit secp256k1

Skrócenie czasu pomiędzy blokami niczego nie poprawi

Postautor: garlonicon » czwartek, 5 maja 2022, 23:06

Ostatnio natrafiłem po raz kolejny na ludzi, którzy nadal twierdzą, że skrócenie czasu pomiędzy blokami w Bitcoinie byłoby korzystne. Podobnie, jak w przypadku poprzedniego tematu odnośnie Proof of Stake, tacy ludzie również sądzą, iż taka zmiana jest trudna do przeprowadzenia, niemożliwa na Bitcoinie, ewentualnie że po prostu się nie uda i nie ma co na to liczyć. Zatem po raz kolejny przybywam na ratunek i pokazuję, że to jest nie tylko możliwe, ale że każdy może to zrobić, jeśli tylko zechce, nie ruszając konsensusu ani o milimetr. Zatem do dzieła!

Dawno, dawno temu, gdy pionierzy wykopywali swoje pierwsze Bitcoiny na CPU, istniały jedynie pełne węzły, do których soft był wypuszczany przez samego Satoshiego. Dopóki trudność była względnie niska, każdy mógł odpalić swój własny pełny węzeł, pobrać krótki łańcuch, liczony w pojedynczych kilobajtach, czasem w megabajtach, no i to wystarczyło do tego, aby po jakimś czasie wykopać sobie 50 BTC. Póki trudność była niska, to problemu nie było, każdy dostawał 50 BTC raz na jakiś czas i wszyscy byli zadowoleni.

Minęło nieco czasu, upływały kolejne miesiące, sieć rosła, a wraz z kolejnymi górnikami, rosła również trudność samej sieci. Ludzie nadal kopali solo, przez co wydobycie pojedynczego bloku zajmowało coraz dłużej. Już nie wystarczyło poczekać kilku godzin na swoje 50 BTC, trzeba było czekać kilka dni, potem miesięcy, a potem lat. Ludzie nie są istotami cierpliwymi, poza tym, lepiej jest mieć jakieś monety niż nie mieć żadnych, zatem nic dziwnego, że rozpoczęły się poszukiwania rozwiązania tego coraz bardziej palącego problemu.

Tak powstały mining poole. To jest przyczyna ich istnienia: gdyby każdy górnik mógł nadal otrzymywać nagrodę z transakcji coinbase, ale dostawałby proporcjonalnie mniej monet, to scentralizowane poole mogłyby nigdy nie powstać. Problem polegał jednak na tym, że w tamtym momencie nikt nie znał rozwiązania, które byłoby zdecentralizowane i mogłoby się sprawdzić w długoterminowej perspektywie. Satoshi to doskonale rozumiał, co widać po jego odpowiedziach na forum, na przykład takiej: https://bitcointalk.org/index.php?topic ... 376#msg376

Wśród przeróżnych scentralizowanych pooli, istniały także inne pomysły na rozwiązanie tego problemu. Jednym z nich był P2Pool, który ma bezpośredni związek z tym tematem, czyli z czasem pomiędzy blokami. Otóż P2Pool tworzył łańcuch, który był oparty o Merged Mining: każdy blok Bitcoina był jednocześnie poprawnym blokiem P2Poola, natomiast nie każdy blok P2Poola był prawidłowym blokiem Bitcoina. Chodziło o trudność: P2Pool opierał się na 20 razy łatwiejszej trudności, przez co same bloki występowały 20 razy częściej i zamiast 10 minut, mieliśmy bloki co 30 sekund. Można? Można!

Dlaczego zatem taki model nie przetrwał do dziś i teraz mamy większość mocy obliczeniowej w rękach scentralizowanych pooli? Otóż dlatego, że P2Pool miał swoje wady, które nie zostały wyeliminowane. Bloki co 30 sekund to dość szybkie tempo, zwłaszcza jak na tamte czasy. A trudność 20 razy mniejsza jest nadal za trudna, zwłaszcza jak na dzisiejszą trudność całej sieci. Niemniej jednak, P2Pool pokazał, że skrócenie czasu pomiędzy blokami jest możliwe, a nawet nie trzeba grzebać w konsensusie, aby to zrobić. Możemy mieć zatem 600 razy łatwiejsze bloki, wykopywane co sekundę. To chyba wystarczająco szybko, prawda?

Samo wykopywanie szybszych bloków zapewniłoby wszystkim chętnym szybkie potwierdzenia transakcji. Zamiast mieć ciągle zero potwierdzeń, ludzie widzieliby kolejne bloki, wykopywane przez kolejnych górników, przez co spektrum pomiędzy zeroma potwierdzeniami, a pierwszym potwierdzeniem, zostałoby rozszerzone i byłoby widoczne w sieci a'la P2Pool.

Dlaczego zatem ludzie tego nie robią? Moim zdaniem odpowiedź jest taka sama, jak w przypadku przejścia na Proof of Stake: bo nie chcą. Albo nie wiedzą, że tak można. Poza tym, ludzie nie znają konsekwencji takich zmian. Nie rozumieją, że skutki uboczne będą takie, jak w Monero, to znaczy: ludzie będą żądali większej liczby potwierdzeń. Nagle się okaże, że jedno potwierdzenie w sieci głównej jest warte tyle samo, co 600 potwierdzeń w sieci jednosekundowych bloków. A nawet nieco mniej, bo transakcja obok może mieć 800 potwierdzeń i wskoczy najpierw, przeganiając naszą.

Niektórzy zapewne zauważą, że przytoczony pomysł nie zakłada jednej istotnej rzeczy, mianowicie: zwiększenia rozmiaru bloków. Jeśli jednak zechcemy dotknąć tej kwestii, to tutaj również mam gotową odpowiedź: sygnatury Schnorra. A także odpowiedź numer dwa, czyli łączenie transakcji. Jeśli kwestie samego czasu pomiędzy blokami nie stanowią sporu, możemy przejść do omówienia tych zagadnień, jeśli natomiast ktoś chce się skupić na samym czasie pomiędzy blokami, to możemy od tego zacząć.

Co do moich planów, to od razu parę słów wyjaśnienia: świadomie i celowo zakładam takie tematy, ponieważ uważam, że będzie z nich pożytek. Albo inni ludzie mnie wyprowadzą z błędu, albo ja ich przekonam do swoich racji, albo po prostu wymienimy się wiedzą. Ciągnę ten eksperyment dalej, bo mi się spodobał, jeśli ktoś uważa, że należy zmienić formę, to niech da znać, jestem otwarty na sugestie. Akurat mam taki nastrój, że chcę wcielić w życie niektóre zmiany, a do tego potrzebuję znać opinię ludzi, żeby wiedzieć, co da się przełknąć, a czego pies z kulawą nogą nie ruszy i na ile szczegółowo muszę objaśniać cały system, który planuję wdrożyć. Muszę zacząć stopniowo, wyjść z niektórymi tematami do ludzi, wymienić wiedzę i samemu nabrać przekonania, że efekt końcowy będzie niezniszczalny (nie ma sensu wypuszczać czegoś, co sam mogę zniszczyć lub co przeciętny forumowicz jest w stanie rozbroić, muszę uodpornić swoje dzieło na ataki, inaczej nie warto tego nikomu pokazywać).

Wróć do „Bitcoin”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 12 gości