Wyłączone opkody, czyli Quine oraz inne ataki
- Wygadany
- Posty: 593
- Rejestracja: 8 lutego 2020
- Reputacja: 1114
- Lokalizacja: 7-bit secp256k1

Wyłączone opkody, czyli Quine oraz inne ataki
Postautor: garlonicon » środa, 11 maja 2022, 18:58
Wyjaśnienie stanowiące podstawę techniczną niniejszego wpisu jest wzięte z listy mailingowej: https://lists.linuxfoundation.org/piper ... 20462.html
Typowemu programiście zdarza się trafić na różne sprytne sztuczki, które wyglądają niewinnie, ale są w istocie dość groźne. Na przykład plik ZIP, który można rozpakowywać w nieskończoność: https://kottke.org/14/06/the-infinitely-large-zip-file. Podobną sztuczkę stanowi Quine, czyli program, który wypisuje swój własny kod źródłowy po uruchomieniu. W pierwszej chwili nie jest to takie oczywiste, czy takie rzeczy w ogóle da się zrobić. Jednakże, po przejściu przez takie sztuczki okazuje się, że nie tylko jest to realne, ale również może stanowić potencjalną lukę bezpieczeństwa.
Dlaczego nieskończony ZIP jest groźny? Otóż: wyobraźmy sobie, że na komputerze użytkownika znajduje się antywirus. Taki program skanuje podejrzane paczki, sprawdza ich zawartość, a następnie albo usuwa, jeśli plik jest groźny (i informuje o tym użytkownika), albo zostawia, jeśli jest nieszkodliwy. W przypadku wspomnianego pliku, problem polega na ciągłej próbie rozpakowania takiego ZIPa do samego końca. To się nigdy nie uda, antywirus może się zawiesić i zapchać dysk niepotrzebnymi kopiami tego pliku, który z punktu widzenia atakującego waży jedynie niecały kilobajt.
Co to ma wspólnego z kryptowalutami? Otóż takie opkody, jak OP_CAT albo OP_SUBSTR, pozwalają na napisanie takiej transakcji, która będzie mogła być powtarzana w nieskończoność. Jest to tak zwany Quine. W ten sposób można zrobić najprzeróżniejsze brzydkie rzeczy. Przykładowo: można użyć punktu bazowego (czyli klucza prywatnego równego jeden, tudzież innego dowolnego powszechnie znanego klucza) i napisać taką transakcję, która będzie umożliwiała wysłanie monet tylko na taki adres. Następnie można utworzyć taki adres i wysłać na niego monety.
Co się stanie dalej? Monety z takiego adresu będą mogły zostać wysłane tylko na nasz znany klucz publiczny. W normalnym przypadku ktoś by mógł błyskawicznie zgarnąć takie monety i atak na tym by się zakończył. Jednakże: cechą Quine jest rekursywność. Oznacza to tyle, że monety zostaną wysłane zawsze na taki sam adres, z jakiego są wydawane. Wtedy Quine jest kompletny. Efekt końcowy jest taki, że taka transakcja jest niczym odkurzacz: zasysa istniejące monety, blokując je w nieskończonej pętli transakcyjnej.
Dlaczego taki atak jest groźny? Powody mogą być różne, ale podam następujący: istnieją boty, które zgarniają monety z łatwych do zdobycia adresów. Jest taka możliwość, że Quine będzie operował na naszym adresie atakującego i że boty nauczą się ten adres wydawać. Jeśli kilkukrotnie jakieś monety zostaną przesunięte w identyczny sposób, to może się okazać, że da się napisać taki Quine, na który jakiś bot będzie reagować. Adres atakującego może być nawet nieznany, byleby sygnatury pozwalały na przesunięcie monet i umożliwiały wydanie tego wszystkiego za pomocą prostego klucza.
Jakie są dalsze konsekwencje? Otóż w przypadku BSV nie istnieje limit wielkości bloku. Oznacza to tyle, że taki Quine mógłby zostać użyty w celu zapchania bloków niepotrzebnymi danymi tak, aby ich całkowite pobranie mogło się okazać niepraktyczne. Całkiem możliwe, że dałoby się rozszerzyć Quine tak, aby zrobić cały blok na tym oparty. W takim przypadku atakujący wydobyłby normalny blok, który z jego punktu widzenia nie byłby jakoś szczególnie duży, natomiast pozostałe węzły nieustannie usiłowałyby pobrać wszystkie transakcje w nim zawarte i mogłoby im się to nigdy nie udać, powodując zawieszenie pobierania łańcucha na bloku wybranym przez atakującego.
garlonicon
- Początkujący
- Posty: 40
- Rejestracja: 15 października 2018
- Reputacja: 24
Wyłączone opkody, czyli Quine oraz inne ataki
Postautor: zbig001 » poniedziałek, 24 lutego 2025, 11:45
zbig001
- Bardzo Zły Moderator
- Posty: 14458
- Rejestracja: 16 kwietnia 2012
- Reputacja: 2683
- Lokalizacja: Polska/Wwa/GW

Wyłączone opkody, czyli Quine oraz inne ataki
Postautor: rav3n_pl » poniedziałek, 24 lutego 2025, 15:42
Ponieważ skrypty są wykonywane w odseparowanym środowisku per wejście, jeżeli nie będzie jakiegoś błędu przepełnienia, nie ma możliwości wpłynięcia na inne części transakcji.
Możemy więc też mieć do czynienia z adresami, z których nie da się wydać środków - bu skrypt wydania nie będzie mógł się wykonać.
Jestem przeciwny otwieraniu drzwi, które potencjalnie mogą sparaliżować sieć.
BIP39 Mnemonik z talii kart
Bitcoin Core 0.29
Linki do YT, TT, LI i reszty
rav3n_pl
- Początkujący
- Posty: 96
- Rejestracja: 15 stycznia 2019
- Reputacja: 88
- Napiwki: XpMDadXhCkR8QN5oVjJjzfQnJ2fxLEqKXZ

Wyłączone opkody, czyli Quine oraz inne ataki
Postautor: Bits-Bull » wtorek, 11 marca 2025, 23:05

Zastanawialiście się, jakie implikacje niesie ze sobą przywracanie opkodów takich jak OP_CAT i OP_SUBSTR w BSV? Choć mogą wydawać się niewinne, ich potencjał do tworzenia zamkniętych pętli transakcyjnych (Quine) może prowadzić do poważnych luk w bezpieczeństwie!
- Niebezpieczeństwo nieskończoności: Opkody te mogą pozwalać na nieskończone powtarzanie transakcji, co może w praktyce uniemożliwić wydanie monet.
- Ataki na sieć: Bez limitu rozmiaru bloku, taki mechanizm mógłby obciążyć sieć, a konsekwencje byłyby katastrofalne dla użytkowników.
Jak myślicie, czy ryzyko związane z takimi opkodami jest warte ich potencjalnej użyteczności? Dajcie znać, jakie są Wasze przemyślenia!


Bits-Bull
- Początkujący
- Posty: 1
- Rejestracja: 16 kwietnia 2025
- Reputacja: 0
Wyłączone opkody, czyli Quine oraz inne ataki
Postautor: teresa98 » środa, 16 kwietnia 2025, 18:43

To nie tylko kwestia kodu – to kwestia odpowiedzialności. Bezpieczny scripting to nie tylko „więcej opkodów = lepiej”. OP_CAT daje władzę, ale i ryzyko. Trzeba to testować off-chain zanim ktoś odpali to w mainnecie…

teresa98
- Bitcoin
- Bezpieczeństwo
- Giełdy i serwisy - zagrożenia
- Anonimowość i bezpieczeństwo w sieci
- Piramidy i scamy
- Bitcoin
- Rozwój projektu
- Twój wkład w rozwój projektu
- Przedszkole
- Pomoc techniczna
- Generowanie monet
- Pomoc
- Ogólnie o miningu
- Mining pools
- Kopacze (miners)
- Sprzęt (hardware) do miningu
- Bitcoin w mediach
- Projekty związane z Bitcoin
- Imprezy, spotkania, konferencje
- Kwestie prawne
- Ciekawostki
- Organizacje charytatywne, zbiórki, dotacje
- Programowanie i wdrożenia
- Ankiety
- Portfele bitcoin
- Dla zaawansowanych - nowi tylko czytają
- Ekonomia
- Rozważania ekonomiczne
- Ankiety ekonomiczne
- Analiza techniczna
- Tutaj zapłacisz bitcoinami
- Polska
- Świat
- Tablica ogłoszeń
- Towary
- Sprzedam
- Kupię
- Zamienię
- Udziały
- Usługi
- Wymiana walut
- Komentarze
- Nagrody
- Wymiana Face-to-Face
- Dolnośląskie
- Kujawsko-pomorskie
- Lubelskie
- Lubuskie
- Łódzkie
- Małopolskie
- Mazowieckie
- Opolskie
- Podkarpackie
- Podlaskie
- Pomorskie
- Śląskie
- Świętokrzyskie
- Warmińsko-mazurskie
- Wielkopolskie
- Zachodniopomorskie
- Cała Polska
- Szukam/dam pracę
- Boty i strategie
- Giełdy, kantory, bitomaty
- Kantory
- Bitomaty
- Inwestycje
- Metale szlachetne
- ICO
- Forki i Alternatywne kryptowaluty
- LiteCoin
- Ekonomia
- Mining
- Ustawienia i konfiguracje
- Linki
- Dogecoin
- Ekonomia
- Mining
- NameCoin
- Ekonomia
- Mining
- Pozostałe
- Scrypt
- SHA256
- Dash
- Ethereum
- ETC
- Lisk
- Bitcoin Cash
- Kopanie kryptowalut
- Kopanie GPU
- Kopanie CPU
- Kopanie ASIC/FPGA
- Kopalnie kryptowalut
- IOTA
- NEO
- Chia
- SCAMY
- Inne
- Linki
- Faucety, kraniki, gry
- Księga skarg i zażaleń
- AMA
- Strona i forum
- Administrator mówi
- Opinie, propozycje, uwagi
- Propozycje banów
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 40 gości
- Strefa czasowa UTC+02:00
- Na górę
- Zmień szerokość ekranu
- Usuń ciasteczka witryny
O Polskim Forum Bitcoin
Polskie Forum Bitcoin skupia miłośników Bitcoina w Polsce. Tu możesz zadać pytania odnośnie Bitoina lub podyskutować na ciekawe tematy.
Polecamy
Treści na tym forum mają charakter wyłącznie informacyjno-edukacyjny, a posty są wyrazem osobistych poglądów ich autorów. Treśći na forum ani w całości ani w części nie stanowią "rekomendacji" w rozumieniu przepisów Rozporządzenia Ministra Finansów z dnia 19 października 2005 r. w sprawie informacji stanowiących rekomendacje dotyczące instrumentów finansowych, lub ich emitentów (Dz.U. z 2005 r. Nr 206, poz. 1715).