Adres zerowy

Początkujący
Posty: 11
Rejestracja: 28 września 2022
Reputacja: 0
Reputacja postu: 
0
Napiwki za post: 0 BTC

Adres zerowy

Postautor: piotrjuszczyk » środa, 14 grudnia 2022, 15:27

Czy da się wygenerować (prawdopodobieństwo na razie zostawmy na boku) klucz do adresu null 0x000... w sieci Ethereum.
Spotkałem się z odpowiedziami zarówno że się da jak i się nie da.
Jeśli adres zerowy jest tym samym co każdy inny adres - to powinno się dać - mimo iż z niemal zerowym prawdopodobieństwem.
Ale czasem algorytmy mają jakieś maski które powodują że pewnych rzeczy nie da się zrobić. Więc może się nie da.
Ja nie wiem.

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

Adres zerowy

Postautor: garlonicon » środa, 14 grudnia 2022, 17:41

Czy da się wygenerować (prawdopodobieństwo na razie zostawmy na boku) klucz do adresu null 0x000... w sieci Ethereum.
Tak.
Spotkałem się z odpowiedziami zarówno że się da jak i się nie da.
Da się wygenerować klucz, gorzej z wydaniem środków.
Jeśli adres zerowy jest tym samym co każdy inny adres - to powinno się dać - mimo iż z niemal zerowym prawdopodobieństwem.
Byłoby tak, gdyby ten adres nie był traktowany w specjalny sposób. Mianowicie: to jest jeden ze standardowych sposobów na spalenie środków. A to oznacza, że próba ich przesunięcia może doprowadzić do hard-forka, który to cofnie, jeśli komukolwiek kiedykolwiek by się to udało.
Ale czasem algorytmy mają jakieś maski które powodują że pewnych rzeczy nie da się zrobić. Więc może się nie da.
Na innych monetach jest to klarowniej rozwiązane, bo istnieje różnica między wyjściem, które jest matematycznie niewydawalne, a wyjściem, które jest jedynie pułapką na monety ("trap address"). Na przykład: 1CounterpartyXXXXXXXXXXXXXXXUWLpVr jest adresem, z którego środki można normalnie przesunąć, jeśli ma się klucz. Tak samo 1111111111111111111114oLvT2 oraz 31h1vYVSYuKP6AhS86fbRdMw9XHieotbST. Z kolei środki spalone przez OP_RETURN są wyrzucane całkowicie z obiegu i nie są nawet trzymane przez węzły z włączonym pruningiem.

Jednakże: środki na adresie bc1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq9e75rs oraz bc1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqthqst8 są matematycznie niewydawalne, mimo że dałoby się przesunąć monety z ich niesegwitowych odpowiedników. Chodzi o zgodność wsteczną, mianowicie na szczycie stosu jest zero, co oznacza, że taki adres nie przechodzi wstępnego sprawdzenia, a skoro nie dało się go wydać przed Segwitem, to po jego aktywacji również jest to niemożliwe (soft-forki nie mogą sprawić, aby transakcje wcześniej niepoprawne stały się nagle prawidłowe).

Tak samo środki z adresu bc1pqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpqqenm są matematycznie zablokowane na zawsze, po prostu dlatego, że klucz publiczny jest nieprawidłowy (a poza tym, szczyt stosu zawiera zero, więc bez aktywowanego Taproota też nie można ich ruszyć).

W skrócie: szczyt stosu dający zero oznacza, że środków nie można ruszyć. Środki z przyszłych adresów też pod to podlegają. Na przykład adres bc1zqqqqvmec0n jest matematycznie niewydawalny, mimo że adresy "bc1z" nie zostały jeszcze wprowadzone przez żaden soft-fork i ich znaczenie nie jest jeszcze znane.

Początkujący
Posty: 11
Rejestracja: 28 września 2022
Reputacja: 0
Reputacja postu: 
0
Napiwki za post: 0 BTC

Adres zerowy

Postautor: piotrjuszczyk » czwartek, 15 grudnia 2022, 00:16

Dzięki za wyczerpującą odpowiedź.
Jednakowoż hard fork - jest działaniem po, czyli to już jest inna kwestia czy ktoś podejmie decyzję żeby to zrobić. Zrobi tak albo nie. Zapewne i tak będzie za późno żeby cofnąć skutki w postaci sprzedaży.
Bo spotkałem się z taką odpowiedzią że to może być matematycznie niemożliwe, na samym końcu odpowiedź.
https://ethereum.stackexchange.com/ques ... l-the-toke

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

Adres zerowy

Postautor: garlonicon » czwartek, 15 grudnia 2022, 07:41

Jednakowoż hard fork - jest działaniem po, czyli to już jest inna kwestia czy ktoś podejmie decyzję żeby to zrobić. Zrobi tak albo nie. Zapewne i tak będzie za późno żeby cofnąć skutki w postaci sprzedaży.
ETH wielokrotnie pokazało, że nie jest zdecentralizowaną monetą. Sama centralizacja jest bardzo silna. Widać to było choćby przy podziale na ETH i ETC (kod miał być nie do zatrzymania, a tu proszę, transakcje zostały cofnięte hard-forkiem), widać to również teraz (zobacz, ile adresów ma ile monet i jak to się ma do zasady "raz 51%, zawsze 51%", obowiązującej w stakingu oraz w obecnie działającym "de facto Proof of Burn", dopóki środków nie można odblokować).

Wniosek jest prosty: transakcja może być poprawna, ale walidatorzy mogą ją odrzucić, bo będą uznawali monety na adresie zerowym za spalone. A jeśli nie odrzucą, to społeczność się nie zgodzi na to, aby coś, co było uznawane za "adres do palenia monet" nagle wracało do obiegu. Poza tym, od czasów porzucenia Proof of Work, nadpisanie historii będzie dużo prostsze, bo żadna moc obliczeniowa nie będzie chroniła przed cofaniem takich transakcji, więc będzie się je dało blokować nawet bez forków.

Natomiast mówiąc bardziej technicznie: czym jest adres?
1. Generujemy klucz prywatny (64 znaki szesnastkowo, 256 bitów)
2. Używamy ECDSA (wynik ma prefix 02 lub 03 oraz końcówkę, mamy de facto 257 bitów ładnie zapisanych jako 256 bitów oraz 1 bit prefiksu)
3. Liczymy Keccak-256 na kluczu publicznym, wynikiem jest 256 bitów w hashu.
4. Bierzemy ostatnie 20 bajtów, czyli 160 bitów.
Dlaczego da się wygenerować klucz do adresu zerowego? Bo mamy statystycznie jakieś 2^(256-160), czyli 2^96 kluczy, które pasują do takiego adresu. Stąd wiadomo, że sam klucz da się wygenerować, gdyby się nie dało, to oznaczałoby, że ta funkcja skrótu jest naprawdę straszliwie zepsuta, skoro nie da się zrobić czegoś, do czego powinno być około 2^96 pasujących wyników.
Bo spotkałem się z taką odpowiedzią że to może być matematycznie niemożliwe, na samym końcu odpowiedź.
To by świadczyło o tym, że Keccak-256 jest funkcją skrótu dziurawą jak ser szwajcarski. Wątpię w to, eksperymenty na uproszczonych funkcjach skrótu nie pokazują tutaj aż takich matematycznych odchyleń, aby coś, co ma mieć około 2^96 rozwiązań, miało zero rozwiązań.

Wróć do „Ethereum”

Kto jest online

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