Ostatnio doszło do jednej z największych strat spowodowanych oszustwami on-chain. Atak typu address poisoning, czyli oszustwo wykorzystujące sposób, w jaki blockchainy oparte na kontach zarządzają historią transakcji i ponownym użyciem adresów, spowodował, że jeden użytkownik stracił prawie 50 milionów dolarów w USDT.
Komentarz Charlesa Hoskinsona
Według Charlesa Hoskinsona, do takiej sytuacji nie doszłoby na niektórych architekturach, które są z natury bardziej odporne na tego typu błędy. Tak to się wydarzyło.
Krótko po tym, jak środki zostały wypłacone z Binance, portfel ofiary, który był aktywny przez około dwa lata i był głównie używany do transferów USDT, otrzymał prawie 50 milionów dolarów. Użytkownik wysłał krótką transakcję testową do zamierzonego odbiorcy, co wielu uznałoby za bezpieczne zachowanie. Pełna kwota została wysłana kilka minut później. Przy tej drugiej transakcji użyto jednak nieprawidłowego adresu.
Wcześniej oszust przeprowadził atak address poisoning, wysyłając niewielką ilość USDT z portfela zaprojektowanego tak, by wyglądał jak prawdziwy adres, którego ofiara używała wcześniej. Ofiara przez pomyłkę wybrała zatruty adres zamiast poprawnego, kopiując adres z historii transakcji. W rezultacie, 50 milionów dolarów zostało utraconych jednym kliknięciem.
Dlaczego UTXO jest lepsze w takich przypadkach
Chociaż prawdopodobnie zostanie przeniesione lub wymienione, skradzione USDT znajduje się obecnie nadal na adresie docelowym.
"To kolejny powód, dla którego UTXO jest świetne" – powiedział Hoskinson w odpowiedzi na ten incydent. I ma rację. Model oparty na kontach, który stosują Ethereum i wiele innych łańcuchów EVM, bezpośrednio prowadzi do tego typu oszustw. Adresy są wyświetlane jako dowolne ciągi znaków w historii transakcji, a portfele promują kopiowanie z poprzednich wymian. Właśnie to wykorzystują hakerzy.
Łańcuchy takie jak Bitcoin i Cardano, które opierają się na modelu UTXO, działają inaczej. Każda transakcja generuje nowe wyjścia, zużywając istniejące. Portfele zazwyczaj tworzą transakcje na podstawie jawnych wyborów UTXO, a nie ponownie używanych punktów końcowych kont, a użytkownicy nie polegają na kopiowaniu adresów docelowych z historii kont w ten sam sposób. Nie istnieje trwały stan konta, który można by wizualnie zatruć.
Nie był to błąd protokołu ani exploit smart kontraktów. Był to błąd w projekcie, który współgrał z ludzką naturą i w mniej niż godzinę kosztował 50 milionów dolarów.



