pm7 pisze:Nowy blok zabezpiecza wszystkie poprzednie. Wiesz, "blockchain" - łańcuch bloków. Żeby cofnąć transakcję np. w bloku 4, kiedy sieć ma 6, musisz ponownie wykopać 4, 5 i 6 (oraz oczywiście wszystkie powstałe w czasie, gdy kopiesz). Liczba transakcji w blokach 5 i 6 nie zmienia tego, że zabezpieczają one bloki poprzednie i wszystkie transakcje w nich.
Mamy dwie rzeczy. Zabezpieczanie teraźniejszości i zabezpieczanie historii. Teraźniejszość mamy, kiedy wysyłam bity do sklepu, żeby sobie kupić nową kartę Tesco. Bezpieczna przeszłość to gwarancja, że bity nie znikną mi z portfela.
Blok z transakcjami zabezpiecza i teraźniejszość i przeszłość. Blok bez transakcji zabezpiecza tylko przeszłość.
Kopalnia świadczy mi usługę gorszej jakości a bierze tyle samo kasy. Muszę dłużej czekać na potwierdzenie. Nie ma nawet znaczenia, jakie dam fee i czy w ogóle. Chciwa kopalnia wchodzi w drogę pomiędzy mnie a sprzedawcę, opóźniając zawarcie transakcji.
Paradoksalnie, dla mnie by było lepiej, gdyby taka kopalnia zniknęła razem z całą jej mocą obliczeniową. Dzięki temu moja transakcja byłaby potwierdzona
szybciej (!). A historię też by ktoś prędzej czy później zabezpieczył. Jedyne, co by się stało, to że na haszowanie poszłoby o 20% mniej mocy obliczeniowej, ale to bez znaczenia, bo i tak nie ma żadnego atakującego, który by dysponował 81% mocy bitcoina i do obrony przed którym potrzebowalibyśmy akurat tych 20% kopaczy.
Nie do końca. Bloki nie powstają co 10 minut. Wyobraź sobie, że dostajesz nowy blok. Bardzo szybko przeprowadzasz walidację nagłówka i widzisz, że jest dobry (oprócz transakcji, ale tworzenie bloków z nieprawidłowymi transakcjami jest wysoce nieopłacalne). Możesz teraz albo kopać dalej na tej samej wysokości, tworząc fork, jeżeli znajdziesz blok i stworzyć szablon bloku z transakcjami po pełnej walidacji nowego bloku, albo zacząć od razu kopanie nowego, "pustego" bloku, a następnie przełączyć się na kopanie normalnego, z transakcjami. Oczywiście, czasami trafisz pusty blok przed przełączeniem kopania na blok z transakcjami, ale w tym czasie i tak nie mógłbyś wykopać bloku z transakcjami. Możesz więc albo zarobić, albo marnować czas i pieniądze, a w dodatku tworzyć forki. Dla mnie wybór jest oczywisty, choć nie mam pewności jak dobre jest oprogramowanie tych dwóch kopalni. Ostatnio pokazało, że nie jest idealne, ale idea wydaje się prawidłowa.
To jest błąd w protokole, albo lepiej - nieprzewidziany ficzer, którego twórcy nie planowali. To jest w interesie wyłącznie kopalni i to w bardzo krótkowzrocznym sensie.
To jest klasyczny dylemat więźnia, czyli sytuacja, kiedy korzyść jednostki jest stratą dla ogółu. Dobrze zaprojektowany protokół nie powinien dopuszczać do takich sytuacji.
Dla mnie zmarnowanym czasem jest właśnie to dodatkowe oczekiwanie na zatwierdzenie transakcji. Którego by nie było, gdyby wszystkie kopalnie zatwierdzały pełne bloki. Właśnie to jest problemem, że wystarczy, że jedna kopalnia się wyłamie i już ma przewagę nad innymi.
Niestety, sytuacji nie da się prosto naprawić bez forka. Trochę pomoże zmniejszenie nagrody, ale na to trzeba też czekać.
Najśmieszniej by było, gdyby teraz wszystkie kopalnie gremialnie zrezygnowały z kopania transakcji. Każdy będzie miał pełno zysków, tylko nawet nie będzie mógł ich przelać na giełdę.