Wpis z mikrobloga

Zauważyłem że ludzie nie wiedzą po co trzeba robić synchronizację.

Kompletnie nie rozumieją po co się robi synchronizację. Nie po to żeby sprawdzać poprawność tx (przecież masz POW. który daje cidowód na to że te tx są poprawne.), tylko żeby budować bazę UTXO. Jeżeli nie zrobiłbyś synchronizacji, to nie wiedziałbyś czy nowa tx jest poprawna, bo skąd masz wiedzieć czy ktoś kto wydaje jakieś UTXO maje w chwili obecnej ("na adresie" z którego wydaje)? Nie wiedziałbyś. Nie znałbyś stanów obecnych BTC. Jeżeli przychodzi tx to nie jest w niej zapisane że w bloku np. 25374 wpłacono na ten adres i możesz sprawdzić. Miałbyś blockchain ale #!$%@? ci z niego, nie wiesz gdzie były jakie tx. Musisz znać obecny stan gdzie w danej chwili są jakie UTXO, kto je może wydać, żeby móc sprawdzić czy jakakolwiek nowa tx jest poprawna. Po to node MUSI zrobić synchronizację, inaczej nie może nic sam zweryfikować i nie mógłby działać. Tylko po to potrzeba jest robienia synchronizacji łańcucha

Nie możesz sobie skopiować czyjejś bazy UTXO bo nie masz jak sprawdzić czy jest poprawna, nie ma POW przecież. Żeby móc walidować musisz budować bazę od początku blockchaina. Przy każdej tx usuwać z bazy zniszczone UTXO i tworzyć nowe UTXO itd. Jedyny sposób to samoistne budowanie jej od początku. Tylko przez mielenie bazy UTXO synchro jest tak zasobożerne. Dany blok to nie snapschoot obecnego stanu przecież, jedynie najnowsze tx.

#bitcoin #kryptowaluty #technologia
Opposition_Fuhrer - Zauważyłem że ludzie nie wiedzą po co trzeba robić synchronizację...

źródło: comment_1638149602w0lc2tfoLzEgQ5T2ZLJuSU.jpg

Pobierz
  • 78
  • Odpowiedz
@Opposition_Fuhrer: @cypherpunkbtc: nie czytam całego wątku, ale to o czym mówicie to chyba różnice między full node z opcją assumevalid=1 i assumevalid=0.

EDIT: opcja assumevalid=1 robi to opisane poniżej pomijanie i tak tylko dla niektórych (bardzo starych) bloków ;
Faktycznie jeżeli wersja kodu źródłowego jest "uczciwa" i poprawnie zapisała tam hash znanego bloku np z ostatnich miesięcy, to jest to bezpieczne.
Ala wolę assumevalid=0 na ten ewentualny wypadek gdyby osoba zapisujące w kodzie wpisała nieprawdę (i ci robiące code review) a zarazem ktoś wydał by grube miliony $ na atak poprzez łańcuch błędnych transakcji a jednak faktycznie z PoW na
  • Odpowiedz
@decentralizacja: Dokładnie o to chodzi. Po prostu w starych blokach nie ma sensu tego robić, bo nikt tam nic nie zmanipuluje. Jeżeli byłoby cos niepoprawnego tzn. że cała sieć takie tx zaakceptowała i dalej tyle energii ile było potrzebne na wykopanie kolejnych bloków zużyła. Po prostu atari nie rozumie że to w starych blokach jest bez sensu. To nawet nie jest bardzo zasobozerne, ale jak nie trzeba to po co
  • Odpowiedz
wg was żeby wykopać prawidłowy blok trzeba mieć całą moc sieci kek,


@cypherpunkbtc: NO, trzeba. A jak stary blok to moc na wykopanie jego oraz kolejnych. NIE WIESZ CO TO MINIG.

a problem jest bo jeżeli dostajesz podczas synchro fałszywe bloki, zakładając że nie masz połączenia z prawdziwą siecią, to nie jesteś w stanie stwierdzić że są fałszywe, miner może je kopać
  • Odpowiedz