Hakowanie Blockchain - pytanie

Początkujący
Awatar użytkownika
Posty: 4
Rejestracja: 8 grudnia 2021
Reputacja: 1
Reputacja postu: 
0
Napiwki za post: 0 BTC

Hakowanie Blockchain - pytanie

Postautor: glados0101 » środa, 8 grudnia 2021, 10:53

Pytanie: jeśli bloki są zaszyfrowane w łańcuchu szyfrowaniem SHA-256 (a złamanie 10 znaków zajmuje ok. 5 dni), to można złamać hash jednego bloku i wszystkie bloki przed nim, nadpisując ich sygnaturę i tym samym hakując sieć do tego miejsca?

https://iv.pl/images/0edc349893e4c15677 ... 219941.png

Jeśli obliczone zostałyby wszystkie hashe każdego bloku i podgrane w jednym czasie, to czy możliwe jest złamanie takiej sieci? Złamane hashe dla sieci składającej się z 10 bloków zajęłoby 50 dni, a podgranie ich z 10 instancji nastąpiłoby jednocześnie.

Weteran
Awatar użytkownika
Posty: 5083
Rejestracja: 14 marca 2011
Reputacja: 1663
Reputacja postu: 
5
Napiwki za post: 0 BTC

Hakowanie Blockchain - pytanie

Postautor: maky » środa, 8 grudnia 2021, 17:04

glados0101 pisze: środa, 8 grudnia 2021, 10:53Pytanie: jeśli bloki są zaszyfrowane w łańcuchu szyfrowaniem SHA-256 (a złamanie 10 znaków zajmuje ok. 5 dni), to można złamać hash jednego bloku i wszystkie bloki przed nim, nadpisując ich sygnaturę i tym samym hakując sieć do tego miejsca?

To co opisujesz nie zadziała. Przypominam, że oprócz hashy są jeszcze transakcje, które muszą zgadzać się w całym łańcuchu - salda. Jeżeli jakimś cudem wstawiłbyś jedną transakcję niezgodną z resztą to bloki od momentu kolizji będą odrzucone a ty zostaniesz z krótszym łańcuchem.
Bądź zmianą, którą prag­niesz uj­rzeć w świecie.

KURSYBTC - kursy BTC przeliczone na PLN/USD/EUR + alarmy; vultr.com - serwery pod masternody

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

Hakowanie Blockchain - pytanie

Postautor: garlonicon » czwartek, 9 grudnia 2021, 08:31

jeśli bloki są zaszyfrowane w łańcuchu szyfrowaniem SHA-256
Hashowanie to nie szyfrowanie. Wszystko jest tutaj jawne, hash danych to po prostu skrót. Analogiczny do reszty z dzielenia przez 10, jak masz liczbę 123 i weźmiesz 3 jako wynik, to niczego przecież nie szyfrujesz. W praktyce, SHA-256 jest funkcją bardziej matematycznie skomplikowaną, aby mając "3" nie dało się wstawić sobie "13", "23", "33".
a złamanie 10 znaków zajmuje ok. 5 dni
To się skaluje wykładniczo, a nie liniowo. Złamanie dwóch znaków nie zajmie jednego dnia, tylko dużo krócej. A złamanie 20 znaków nie zajmie 10 dni, tylko znacznie dłużej. Wykładniczo dłużej, czyli może być na przykład tak, że będzie 25 dni na 20 znaków, 125 dni na 30 znaków, albo 625 dni (czyli prawie dwa lata) na 40 znaków. Coś w ten deseń. Żeby móc liniowo łamać bloki, należałoby najpierw złamać choć jeden, a tutaj trudność łamania pojedynczego bloku jest wykładnicza.
Jeżeli jakimś cudem wstawiłbyś jedną transakcję niezgodną z resztą to bloki od momentu kolizji będą odrzucone a ty zostaniesz z krótszym łańcuchem.
Więcej: jeżeli ktokolwiek zrobiłby choćby kolizję SHA-256, a nawet gdyby się do niej zaczął mocno zbliżać, to będzie to widać. Pojedyncza kolizja byłaby sensacją i wymusiłaby przejście na inną funkcję skrótu wręcz natychmiastowo. Oprócz tego każdy blok pokazuje, na ile blisko kolizji jesteśmy, obecnie widać, że bloki mają około 80 bitów zerowych, więc do 128 bitów nadal daleko (a mniej więcej tyle wymaga kolizja przy ataku urodzinowym).

Bardzo Zły Moderator
Awatar użytkownika
Posty: 14347
Rejestracja: 16 kwietnia 2012
Reputacja: 2639
Reputacja postu: 
0
Napiwki za post: 0 BTC
Lokalizacja: Polska/Wwa/GW

Hakowanie Blockchain - pytanie

Postautor: rav3n_pl » czwartek, 9 grudnia 2021, 09:10

@glados0101 Nie da się bo 2^256
Piffko: PLC/BTC 1Rav3nkMayCijuhzcYemMiPYsvcaiwHni
BIP39 Mnemonic z talii kart
Bitcoin Core 0.25
Linki do YT, TT, LI i reszty

Początkujący
Awatar użytkownika
Posty: 4
Rejestracja: 8 grudnia 2021
Reputacja: 1
Reputacja postu: 
0
Napiwki za post: 0 BTC

Hakowanie Blockchain - pytanie

Postautor: glados0101 » czwartek, 9 grudnia 2021, 11:32

garlonicon pisze: czwartek, 9 grudnia 2021, 08:31Hashowanie to nie szyfrowanie
Dzięki za odpowiedź.

Rzeczywiście, doczytałem w literaturze, że jest między tym duża różnica, bo hashowanie to operacja nieodwracalna, w przeciwieństwie do szyfrowania.

Jednakże Hash może być generowany przez algorytm SHA-256 używany przy szyfrowaniu.


Treść bloku jest szyfrowana normalnie (asymetrycznie z wykorzystaniem kluczy publiczny/prywatny)?

Od czego zależy wielkość treści bloku i czy są jakieś ograniczenia? Np. chciałbym aby w bloku znalazły się dane o wadze 10 MB.

Gaduła
Awatar użytkownika
Posty: 417
Rejestracja: 4 sierpnia 2017
Reputacja: 310
Reputacja postu: 
0
Napiwki za post: 0 BTC

Hakowanie Blockchain - pytanie

Postautor: KamilZ » czwartek, 9 grudnia 2021, 11:53

@glados0101 Treść bloku, to zwykle informacje o wejściach i wyjściach podpisanych kluczami prywatnymi i to te dane stanowią zwykle większość.
Wielkość bloku zależy zwykle od ilości transakcji i ich skomplikowania (ile wejść i ile wyjść).

Za ilość danych w bloku trzeba zapłacić proporcjonalnie do ich ilości.
W BTC nie wciśniesz 10MB danych na ten moment (jest ograniczenie), ale teoretycznie jeśli byś zapłacił duże opłaty na innym blockchainie, to mógłbyś to zrobić.

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

Hakowanie Blockchain - pytanie

Postautor: garlonicon » czwartek, 9 grudnia 2021, 12:23

Jednakże Hash może być generowany przez algorytm SHA-256 używany przy szyfrowaniu.
Może, ale w Bitcoinie nie ma żadnego szyfrowania. Podpisy owszem, istnieją, ale nic nie jest szyfrowane, możesz sobie przeglądać wszelkie sygnatury.
Treść bloku jest szyfrowana normalnie (asymetrycznie z wykorzystaniem kluczy publiczny/prywatny)?
Nie jest wcale szyfrowana. Podpisywanie danych kluczami to jeszcze inna para kaloszy niż szyfrowanie.
Od czego zależy wielkość treści bloku i czy są jakieś ograniczenia? Np. chciałbym aby w bloku znalazły się dane o wadze 10 MB.
Przed Segwitem 1 MB na blok, po Segwicie 4 MB (łącznie, licząc rozmiar części z Segwitem i bez, więc w praktyce bloki mają około 2 MB). Przy opłacie 1 satoshi per bajt, to daje jakieś 0.01 BTC na megabajt, czyli 0.10 BTC trzeba byłoby za to zapłacić (optymistycznie licząc, bo realistycznie pewnie wyjdzie drożej, w zależności od tego, jak te dane porozkładasz).

Edit:
W BTC nie wciśniesz 10MB danych na ten moment
W jednym bloku nie, ale jak to porozkładasz, to i owszem. Ograniczeń jest wiele, rozmiar OP_RETURN maksymalnie wynosi 80 bajtów, rozmiar rzeczy pushowanych na stos jakieś 520 bajtów, rozmiar skryptów jakieś 10 kilobajtów, rozmiar samej transakcji pewnie standardowo coś koło 100 kilobajtów, no i wspomniany już wcześniej rozmiar bloku. Tak czy inaczej, jeśli chcesz wypchnąć hash danych lub coś względnie krótkiego, to nie ma problemu, natomiast przy próbie wypychania danych liczonych w megabajtach trzeba kombinować i rozkładać to na wiele bloków i transakcji, no i oczywiście słono za to zapłacić.

Początkujący
Awatar użytkownika
Posty: 4
Rejestracja: 8 grudnia 2021
Reputacja: 1
Reputacja postu: 
0
Napiwki za post: 0 BTC

Hakowanie Blockchain - pytanie

Postautor: glados0101 » czwartek, 9 grudnia 2021, 13:10

Interesuje się tematyką Blockchain w komunikacji urządzeń przemysłowych, więc to dość abstrakcyjny obszar użycia na tę chwilę.
Ewentualnie bliżej temu do rozwiązań ETH czy Smart contract, ale i tak do komercyjnych zastosowań trzeba będzie stworzyć dedykowany system.

Dużo piszecie o Bitcoinie (no tak, nazwa forum zobowiązuje :D ) - i właśnie, uważacie że ten system ma jakiś potencjał w praktycznych zastosowaniach?

Gaduła
Awatar użytkownika
Posty: 417
Rejestracja: 4 sierpnia 2017
Reputacja: 310
Reputacja postu: 
0
Napiwki za post: 0 BTC

Hakowanie Blockchain - pytanie

Postautor: KamilZ » czwartek, 9 grudnia 2021, 13:57

Czy ma potencjał, to musisz osądzić sam.
Tutaj masz ciekawy wpis na temat możliwych zastosowań:
viewtopic.php?p=200349#p200349

Weteran
Awatar użytkownika
Posty: 5083
Rejestracja: 14 marca 2011
Reputacja: 1663
Reputacja postu: 
3
Napiwki za post: 0 BTC

Hakowanie Blockchain - pytanie

Postautor: maky » czwartek, 9 grudnia 2021, 15:38

garlonicon pisze: czwartek, 9 grudnia 2021, 08:31Żeby móc liniowo łamać bloki, należałoby najpierw złamać choć jeden

Nic nie trzeba łamać. Do pierwszych bloków nie potrzebujesz dużej mocy. Zresztą możesz chchmęcić z czasem kopania a więc również z trudnością. Tak więc teoretycznie możesz wyprodukować x bloków z dowolnymi haszami i tylko jeden blok, po którym masz resztę już istniejącego blockchaina ma mieć odpowiedni hasz. I oczywiście transakcje muszą się zgadzać z tym co później ponieważ inaczej bloki późniejsze zostaną odrzucone.

Dodano po 2 minutach 33 sekundach:
Teoretycznie można wyprodukować dłuższy niż obecny blockchain i zastąpić w całości istniejący.
Wystarczy wykonać manipulację czasem przy kopaniu bloków.
Wydaje mi się tylko, że w obecnym kodzie są zaszyta jakieś checkpointy (poprawcie mnie jeśli się mylę).

UWAGA: Na czerwono moje błędne rozumowanie.
Ostatnio zmieniony czwartek, 9 grudnia 2021, 17:26 przez maky, łącznie zmieniany 1 raz.
Bądź zmianą, którą prag­niesz uj­rzeć w świecie.

KURSYBTC - kursy BTC przeliczone na PLN/USD/EUR + alarmy; vultr.com - serwery pod masternody

Początkujący
Posty: 2365
Rejestracja: 4 kwietnia 2020
Reputacja: 386
Reputacja postu: 
0
Napiwki za post: 0 BTC
Napiwki: LaJyKiGrGR82QJH9NRU5N2XqDsGxsjfSuW

Hakowanie Blockchain - pytanie

Postautor: zdzicho2000 » czwartek, 9 grudnia 2021, 17:04

@KamilZ w BSV sa bloki nawet po kilka GB.
Zobacz na ilośc transakcji i fee
https://bitinfocharts.com/pl/bitcoin%20sv/

akurat tu nie podają fee, ale jest rzędu 1 c
transakcji teraz około 850 tys

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

Hakowanie Blockchain - pytanie

Postautor: garlonicon » czwartek, 9 grudnia 2021, 17:08

Nic nie trzeba łamać. Do pierwszych bloków nie potrzebujesz dużej mocy.
Do wykopania alternatywnych bloków z taką trudnością potrzeba około 2^32 hashy. Do wydobycia dwóch identycznych bloków w ogóle, to jakieś 2^128 (bo atak urodzinowy). Do znalezienia innego bloku, którego hash się pokryje idealnie, no to 2^256 (no może nieco mniej, jak się sprytnie do tego podejdzie, ale jeśli można to zrobić szybciej, to też pewnie coś koło 2^254, może 2^252, tego typu wielkości, skoro przy MD5 teoretyczny atak preimage wymaga jakieś 2^123 przy 128 bitach).
Zresztą możesz chchmęcić z czasem kopania a więc również z trudnością.
Żeby zbić trudność, możesz wydłużyć czas. Skrócenie go prowadziłoby do zwiększenia trudności, a tylko wtedy można wykonać głęboki reorg (no i wtedy niektóre transakcje musiałyby wejść w późniejszych blokach, bo mają timelocki). Liczy się jednak łączny Proof of Work, a w nowszych klientach są zaszyte hashe niektórych bloków oraz minimalna wartość łączna Proof of Work (tak zwany chainwork), więc nawet jeśli otoczysz kogoś tylko swoimi węzłami i wykopiesz mnóstwo bloków o trudności równej jeden, no to zakładając, że użytkownik ma oficjalnego klienta, to taki węzeł odrzuci takie bloki.
Wydaje mi się tylko, że w obecnym kodzie są zaszyta jakieś checkpointy (poprawcie mnie jeśli się mylę).
Jeśli ktoś ma oficjalnego klienta, to tam checkpoint jest ustawiony w ten sposób, źródło: https://github.com/bitcoin/bitcoin/blob ... pp#L94-L95
consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000001fa4663bbbe19f82de910280");
consensus.defaultAssumeValid = uint256S("0x00000000000000000008a89e854d57e5667df88f1cdef6fde2fbca1de5b639ad"); // 691719
Oznacza to tyle, że aby takiego klienta przekonać do alternatywnego łańcucha, trzeba byłoby wystartować od bloku 691719 i zbić trudność (wykopując wiele bloków z masakrycznie wysoką trudnością przez wiele dwutygodniowych okresów, co atakującemu mogłoby zająć mnóstwo czasu, choć nadal mniej niż jakakolwiek kolizja). Tutaj jednak hashe są wbite na sztywno, co oznacza, że potrzebny jest preimage.

Umiejąc tworzyć kolizje losowych hashy, można byłoby coś zdziałać jedynie na najnowszych blokach, bo dokładając do łańcucha równocześnie dwa różne bloki o tym samym hashu, można byłoby podzielić sieć na dwie grupy, z których każda widziałaby inne transakcje jako prawidłowe, więc kolejny blok poprawny w jednej sieci mógłby być błędny w innej.

Weteran
Awatar użytkownika
Posty: 5083
Rejestracja: 14 marca 2011
Reputacja: 1663
Reputacja postu: 
0
Napiwki za post: 0 BTC

Hakowanie Blockchain - pytanie

Postautor: maky » czwartek, 9 grudnia 2021, 17:10

garlonicon pisze: czwartek, 9 grudnia 2021, 17:08Do wykopania alternatywnych bloków z taką trudnością

Ale trudność można "oszukać" jeśli z nikim nie konkurujesz.
Wystarczy manipulacja czasem kopania.

Dodano po 1 minucie 25 sekundach:
garlonicon pisze: czwartek, 9 grudnia 2021, 17:08Do znalezienia innego bloku, którego hash się pokryje idealnie, no to 2^256

LOL. Masz absolutną rację.
Chyba czas na kawkę. Myślałem o zerach wiodących a nie o haszu.

REASUMUJĄC:
- podstawienie bloków - niewykonalne
- podstawienie całego nowego łańcucha - IMHO wykonalne - niewykonalne

Dodano po 6 minutach 22 sekundach:
No właśnie. Kto mi odpowie jak daleko wstecz patrzy algorytm w poszukiwaniu dłuższego łańcucha?

Dodano po 6 minutach 4 sekundach:
garlonicon pisze: czwartek, 9 grudnia 2021, 17:08 to tam checkpoint jest ustawiony w ten sposób

No, to chyba sprawę mamy wyjaśnioną.
Bądź zmianą, którą prag­niesz uj­rzeć w świecie.

KURSYBTC - kursy BTC przeliczone na PLN/USD/EUR + alarmy; vultr.com - serwery pod masternody

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

Hakowanie Blockchain - pytanie

Postautor: garlonicon » czwartek, 9 grudnia 2021, 18:53

Ale trudność można "oszukać" jeśli z nikim nie konkurujesz.
Poniżej 2^32 hashy na blok nie zejdziesz w głównej sieci. Trudność równa jeden to absolutne minimum, nawet jak odpalisz oficjalnego klienta lokalnie i spróbujesz zbudować łańcuch od zera, tworząc w ramach testów własną sieć. W sieci regtest byłoby łatwiej, bo tam trudność jest straszliwie niska, tam produkując jakikolwiek hash masz 50% szans, że spełnia trudność, wtedy rzeczywiście możesz w mgnieniu oka wykopać na CPU łańcuch z identycznymi transakcjami, co oryginał, ale o mniejszej trudności, po prostu używając tych samych wartości jako merkle root. Spodziewam się zatem, że jeśli masz ASIC-a, no to kopanie z trudnością równą jeden w głównej sieci jest równie proste, co kopanie bloków w sieci regtest na CPU.
Wystarczy manipulacja czasem kopania.
Ustawiając czas kopania na 10 minut, masz bloki o trudności jeden. Jeśli wydłużysz ten czas do 20 minut, trudność nie spadnie do 0.5, tylko pozostanie równa jeden, bo to jest absolutne minimum dopuszczalne w głównej sieci. Hash każdego bloku w głównej sieci musi mieć 32 bity zerowe na początku, jeśli tylu nie ma, to nie trzeba niczego więcej sprawdzać i można z automatu uznać, że jest nieprawidłowy.
podstawienie całego nowego łańcucha
Warto zauważyć, że cały istniejący łańcuch ma chainwork określany przez 96-bitową liczbę (podaną wyżej). To oznacza, że zrobienie kolizji jest trudniejsze niż to, co zostało wykopane od 2009 około 2^32 razy, co dość dobrze obrazuje, że gdyby ktokolwiek dysponował mocą obliczeniową wystarczającą do zrobienia kolizji przez bruteforce, to ponad 2^32 razy bardziej opłacałoby się tego nie ujawniać i zamiast tego użyć tejże mocy do kopania kolejnych bloków. A sama kolizja wymaga około 2^128 hashy, zrobienie ataku preimage jest w zasadzie "do kwadratu trudniejsze", bo wymaga około 2^256 hashy.

Weteran
Awatar użytkownika
Posty: 5083
Rejestracja: 14 marca 2011
Reputacja: 1663
Reputacja postu: 
0
Napiwki za post: 0 BTC

Hakowanie Blockchain - pytanie

Postautor: maky » czwartek, 9 grudnia 2021, 19:11

garlonicon pisze: czwartek, 9 grudnia 2021, 18:53Trudność równa jeden to absolutne minimum, nawet jak odpalisz oficjalnego klienta lokalnie i spróbujesz zbudować łańcuch od zera, tworząc w ramach testów własną sieć.

Myślałem o takim myku jak obliczanie hasza kolejnych bloków na minimalnej trudności i utrzymywanie tej minimalnej trudności manipulując czasem czyli ja podaje taki czas "systemowi", że wydaje mu się iż bloki wpadają co 10 minut. Czyli cofamy się z czasem do genesis block i lecimy np co sekundę blok z czasem jakby upłynęło 10 minut.

Jakim wobec tego cudem Satoshi sam ze sobą kopał skoro jak twierdzisz trudność powinna być za wysoka?
Bądź zmianą, którą prag­niesz uj­rzeć w świecie.

KURSYBTC - kursy BTC przeliczone na PLN/USD/EUR + alarmy; vultr.com - serwery pod masternody

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

Hakowanie Blockchain - pytanie

Postautor: garlonicon » czwartek, 9 grudnia 2021, 19:24

Jakim wobec tego cudem Satoshi sam ze sobą kopał skoro jak twierdzisz trudność powinna być za wysoka?
Trudność początkowa nie jest za wysoka. Po prostu jest wymagająca przy pojedynczym komputerze w sieci, jak jest N komputerów o podobnej mocy, to oczywiście bloki wpadają N razy częściej. Żeby się o tym przekonać, możesz pobrać klienta, otworzyć go w folderze bez łańcucha, dać opcję "-noconnect" przy uruchamianiu (albo ręcznie się rozłączyć z poziomu GUI) i zrobić w konsoli "generatetoaddress 1 TwójAdres LiczbaHashy". Możesz wtedy naocznie się przekonać, ile czasu potrzeba współczesnemu komputerowi, aby wykopać jeden blok na CPU, mimo tylu optymalizacji, które się po drodze pojawiły. Możesz też użyć jakiegoś cpuminera i połączyć się ze swoim węzłem, wtedy też zobaczysz, że nawet współczesne programy do kopania na CPU nie są w stanie w mgnieniu oka wykopywać bloków, tylko jednak trochę wysiłku to wymaga.

Weteran
Awatar użytkownika
Posty: 5083
Rejestracja: 14 marca 2011
Reputacja: 1663
Reputacja postu: 
0
Napiwki za post: 0 BTC

Hakowanie Blockchain - pytanie

Postautor: maky » czwartek, 9 grudnia 2021, 19:27

garlonicon pisze: czwartek, 9 grudnia 2021, 19:24tylko jednak trochę wysiłku to wymaga.

Ja to rozumiem. Interesuje mnie tylko teoretycznie czy gdybym posiadał odpowiednią moc, czas i potrafił odpowiednio zmodyfikować soft to mój pomysł by zadziałał i wykopałbym w skończonym czasie dłuższy łańcuch
Bądź zmianą, którą prag­niesz uj­rzeć w świecie.

KURSYBTC - kursy BTC przeliczone na PLN/USD/EUR + alarmy; vultr.com - serwery pod masternody

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

Hakowanie Blockchain - pytanie

Postautor: garlonicon » czwartek, 9 grudnia 2021, 19:50

Interesuje mnie tylko teoretycznie czy gdybym posiadał odpowiednią moc, czas i potrafił odpowiednio zmodyfikować soft to mój pomysł by zadziałał i wykopałbym w skończonym czasie dłuższy łańcuch
Dłuższy pod względem liczby bloków? Tak. Mocniejszy pod względem łącznej trudności? Nie. Inne węzły by go odrzuciły, bo:

1) Są checkpointy, jak dojdziesz do jednego z tych bloków: https://github.com/bitcoin/bitcoin/blob ... #L148-L160

Checkpointy domyślnie oznaczają, że klient będzie ostrzegał, że hashe się nie zgadzają. A jeśli zdecydujesz się uznać te checkpointy, no to oczywiście trudność będzie większa niż minimum, więc będzie trzeba ją najpierw zbić, poprzez długie, czterdziestominutowe bloki, gdzie trudność będzie spadała czterokrotnie (bo bardziej nie może), aż zjedzie do minimum.

2) Jest wspomniana wyżej wartość "nMinimumChainWork" oraz "defaultAssumeValid".

Tego typu wartości, podobnie jak checkpointy, przyspieszają weryfikację. Klient domyślnie najpierw zaciąga nagłówki, a potem dopiero bloki. I domyślnie zakłada, że bloki do podanego punktu są prawidłowe, więc sprawdza je tylko pod względem hashy, a nie pod względem samych danych. Innymi słowy: stare sygnatury nie są w ogóle sprawdzane, o ile tego nie wymusisz, bo założenie jest takie, że gdyby cokolwiek się tam miało zmienić, to by oznaczało głęboki reorg, a to by podważyło wiarygodność sieci tak czy inaczej. Startując od bloku za wszelkimi checkpointami, problem jest taki, jak wyżej: musisz najpierw zbić trudność, co wymaga kopania z wysoką trudnością przez wiele bloków, zanim zrobi się łatwiej.

3) Liczy się najsilniejszy łańcuch, a nie najdłuższy.

Jeśli masz jeden łańcuch, który ma milion bloków (o trudności jeden) i drugi łańcuch, który ma nieco ponad 700k bloków (obecny), no to ten z milionem bloków zostanie odrzucony, bo liczy się chainwork. Pierwotnie tylko liczba bloków miała znaczenie, ale Satoshi zauważył potencjalne niebezpieczeństwo wynikające z tego i załatał to dawno temu. Ponieważ wtedy najdłuższy łańcuch był jednocześnie najsilniejszy, ta luka nie została nigdy przez nikogo wykorzystana i sieć zaakceptowała nowe reguły.

Weteran
Awatar użytkownika
Posty: 5083
Rejestracja: 14 marca 2011
Reputacja: 1663
Reputacja postu: 
0
Napiwki za post: 0 BTC

Hakowanie Blockchain - pytanie

Postautor: maky » czwartek, 9 grudnia 2021, 20:06

garlonicon pisze: czwartek, 9 grudnia 2021, 19:50Liczy się najsilniejszy łańcuch, a nie najdłuższy

Dzięki za wyczerpującą odpowiedź.
No to teraz już wszyscy hodlerzy BTC mogą spać spokojnie. :lol:
Bądź zmianą, którą prag­niesz uj­rzeć w świecie.

KURSYBTC - kursy BTC przeliczone na PLN/USD/EUR + alarmy; vultr.com - serwery pod masternody

Wróć do „Bezpieczeństwo”

Kto jest online

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