Jak działa ochrona przed powtórzeniami Segwit2x

Category: Będziesz Chciał
17 lutego 2021

Uwaga: ten schemat ochrony przed powtórkami został przywrócony! Upewnij się, że NIE UŻYWASZ schematu ochrony z tego artykułu do niczego, ponieważ NIE BĘDZIE chroniony przed lub po 2x hard fork.

Jeff Garzik połączył się wczoraj w schemacie ochrony przed powtórkami dla Segwit2x. W tym poście wyjaśnię, jak to działa, co musisz zrobić i dlaczego zrobili to w ten sposób.

Czym w ogóle jest ochrona przed powtórkami?Przed wyjaśnieniem dokładnego schematu ochrony przed powtórkami ważne jest, aby zrozumieć, jakie ataki powtórkowe są pierwsze. W przypadku hard forka bez ochrony przed powtórzeniem transakcje, które wykorzystują monety przed widelcem, są ważne w obu łańcuchach. Oznacza to, że jeśli Alicja wyśle ​​Bobowi 1 monetę w łańcuchu X, ta sama transakcja będzie ważna w łańcuchu Y.

Alicja może mieć zamiar wysłać Bobowi 1 XCoin i 1 YCoin, w którym to przypadku będzie transmitować transakcję w obu łańcuchach i nie będzie miała luki w zabezpieczeniach. Jeśli jednak chciała wysłać Bobowi tylko 1 XCoin, a nie 1 YCoin, mamy problem. Alice oczywiście rozgłosi transakcję w łańcuchu X, ale transakcja jest teraz publiczna, co stwarza lukę w zabezpieczeniach.

Atakujący może odebrać publiczną transakcję wysyłającą 1Xcoin od Alicji do Boba z łańcucha X i odtworzyć ją w łańcuchu Y. Spowodowałoby to, że Bob otrzymałby 1 YCoin. Nazywa się to atakiem replay i powoduje wiele niezamierzonych transakcji.

Ochrona przed powtórzeniami to uogólniony termin określający, w jaki sposób można uniemożliwić atakującemu wykonanie ataków typu Replay. Innymi słowy, spraw, aby transakcje z łańcucha X nie były ważne w łańcuchu Y i odwrotnie.

Silna dwukierunkowa ochrona przed powtórkami vs Opt-in Replay ProtectionSilna dwukierunkowa ochrona przed powtórkami oznacza, że ​​transakcje z łańcucha X nigdy nie są ważne w łańcuchu Y po hard forku i odwrotnie. Oznacza to, że wszystkie transakcje mają jakiś znacznik, który wyjaśnia, do jakiego łańcucha były przeznaczone.

Bitcoin Cash osiągnął to poprzez oznaczenie podpisów, których wymaga każda transakcja. To spowodowało, że transakcje w ich łańcuchu były nieważne na Bitcoinie i odwrotnie. Nazywa się to „silną ochroną przed powtórzeniami, ponieważ nie ma możliwości, aby ktokolwiek przypadkowo został narażony na ataki powtórkowe. Silna ochrona przed powtórkami jest bardzo podobna do automatycznie blokowanych drzwi, które zapobiegają ucieczce transakcji z łańcucha X.

Opt-in replay protection oznacza, że ​​transakcje z łańcucha X muszą zrobić coś specjalnego, aby były nieważne w łańcuchu Y. Oznacza to, że domyślnie transakcje są narażone na ataki typu replay, ale jeśli manipulujesz transakcją w określony sposób, transakcja wygrywa nie obowiązuje w łańcuchu Y. Opt-in ochrona przed powtórkami jest bardziej jak drzwi, o których musisz pamiętać, aby je zamknąć, ponieważ w przeciwnym razie transakcja może uciec z łańcucha X i dostać się do łańcucha Y.

Co zrobili programiści Segwit2x?Deweloperzy Segwit2x zdecydowali się na konkretny schemat ochrony przed powtórką Opt-in, jak w powyższym żądaniu ściągnięcia. Alicja, wysyłając monety z łańcucha Legacy do Boba, będzie musiała wysłać niewielką kwotę do 3Bit1xA4apyzgmFNT2k8Pvnd6zb6TnwcTi, aby transakcja była nieważna w łańcuchu 2x. Ten adres został wybrany, ponieważ jest dość łatwy do zobaczenia wizualnego (zaczyna się 3-bitowy) i jest wystarczająco łatwy do wydania, ponieważ klucz prywatny jest dobrze znany.

Rozważane są inne schematy ochrony przed powtórkami opt-in, takie jak umieszczenie specjalnego ciągu w OP_RETURN, utworzenie magicznej wartości nSequence lub ignorowanie transakcji z pewnymi bitami wersji (ten może nadal się zdarzać), ale ten schemat został wybrany najprawdopodobniej, ponieważ jest to stosunkowo łatwe, nawet w przypadku portfeli, które nie są świadome twardego widelca.

Zanim zaczniesz próbować wysłać monety na powyższy adres, mam jedno zastrzeżenie. Ten schemat ochrony przed powtórkami aktywuje się dopiero po przerwaniu łańcucha. Oznacza to, że wysyłanie niewielkiej kwoty na powyższy adres nie ma sensu do 18 listopada, kiedy zostanie wydobyty blok 494784. W tym momencie wysłanie transakcji zawierającej niewielką kwotę na powyższy adres w łańcuchu Legacy nie będzie możliwe do odtworzenia w łańcuchu 2x.

Dlaczego Segwit2x nie dodał silnej ochrony przed powtórkami, takiej jak BCH?Deweloperzy Segwit2x uważają, że będą głównym łańcuchem po hard forku. W związku z tym chcą, aby wszystkie obecne portfele istniejące w ekosystemie Bitcoin były kompatybilne z 2x i nie wymagały aktualizacji. Oznacza to, że portfele i usługi nie będą musiały aktualizować swojego oprogramowania z opcją ochrony przed powtórkami. Uważają, że silna ochrona przed powtórkami spowodowałaby wtedy większy podział w ekosystemie niż powinien.

Kiedy BCH rozwidlił się 1 sierpnia, prawie nie było portfeli obsługujących BCH, ponieważ ich schemat ochrony przed powtórkami był silny i ponieważ programiści portfeli nie mieli szansy zakodować korekt wymaganych, aby transakcje były ważne w BCH. Wygląda na to, że Segwit2x próbuje tego uniknąć, umożliwiając transakcje z obecnymi portfelami Bitcoin, sprzedawcami i istniejącymi usługami.

Czego wymagałoby Core w zakresie wdrożenia silnej ochrony przed powtórkami?Niestety, każdy silny schemat ochrony przed powtórkami wymaga hard forka. Wielu programistów Core uważa, że ​​hard forki wymagają dużo czasu i konsensusu społeczności, co jest głównym powodem obecnej debaty z 2x ludźmi. W związku z tym silny schemat ochrony przed powtórkami jest mało prawdopodobny.

Co muszę zrobić, aby podzielić moje monety po hard forku?Najpierw będziesz chciał przenieść swoje monety Legacy na nowe adresy (Twój portfel Legacy), ale każda z tych transakcji będzie musiała wysłać niewielką kwotę do 3Bit1xA4apyzgmFNT2k8Pvnd6zb6TnwcTi. Jeśli nie zależy Ci zbytnio na prywatności, możesz dokonać jednej gigantycznej transakcji, która wyśle ​​wszystkie Twoje obecne bitcoiny na inny adres lub zestaw adresów. Tylko upewnij się, że niewielka kwota została również wysłana do 3Bit1xA4apyzgmFNT2k8Pvnd6zb6TnwcTi w tej samej transakcji.

Następnie możesz wysłać swoje 2x monety na różne adresy i będzie to Twój portfel 2x.

WniosekHard forks porusza wiele problemów, z którymi społeczność Bitcoin nie miała wcześniej do czynienia. Ataki typu Replay są jednym z nich. Jak zawsze, zachowaj ostrożność podczas dokonywania transakcji Bitcoin i bądź na bieżąco z takimi hard forami, zanim wyślesz jakiekolwiek Bitcoiny w dowolne miejsce.

Chcesz otrzymywać wyselekcjonowane techniczne wiadomości dotyczące bitcoinów? Zapisz się do newslettera Bitcoin Tech Talk!

Czy jesteś programistą, który chce wejść do Bitcoin i blockchain? Zapisz się na seminarium Programming Blockchain w Stanford, Londynie lub Seulu!