Нещодавно відбулася одна з найбільших втрат через он-чейн шахрайства. Атака під назвою "address poisoning", шахрайство, яке використовує особливості управління історією транзакцій та повторного використання адрес у блокчейнах з обліковою моделлю, призвела до того, що один користувач втратив майже 50 мільйонів доларів у USDT.
Коментар Чарльза Хоскінсона
За словами Чарльза Хоскінсона, це не могло б статися на деяких архітектурах, які за своєю суттю більш стійкі до подібних помилок. Ось як це сталося.
Незабаром після того, як гроші були виведені з Binance, гаманець жертви, який був активним близько двох років і в основному використовувався для переказів USDT, отримав майже 50 мільйонів доларів. Користувач спочатку відправив тестову транзакцію одержувачу, що багато хто вважає безпечною поведінкою. Повна сума була відправлена через кілька хвилин. Для другого переказу була використана неправильна адреса.
Раніше шахрай здійснив атаку address poisoning, відправивши невелику кількість USDT з гаманця, який був створений так, щоб виглядати як справжня адреса, яку жертва вже використовувала раніше. Жертва помилково вибрала отруєну адресу замість правильної, коли копіювала адресу з історії транзакцій. У результаті, 50 мільйонів доларів було втрачено одним кліком.
Чому UTXO кращий у таких випадках
Хоча, ймовірно, ці USDT будуть переміщені або обміняні, наразі вкрадені кошти все ще знаходяться на адресі призначення.
"Це ще одна причина, чому UTXO чудовий", — сказав Хоскінсон у відповідь на інцидент. І він має рацію. Модель на основі облікових записів, яку використовують Ethereum та багато інших EVM-ланцюгів, безпосередньо призводить до такого типу шахрайства. Адреси відображаються у вигляді довільних рядків в історії транзакцій, а гаманці заохочують копіювати їх з попередніх операцій. Саме цим і користуються хакери.
Ланцюги, такі як Bitcoin та Cardano, які базуються на моделі UTXO, працюють інакше. Кожна транзакція створює нові виходи, споживаючи існуючі. Гаманці зазвичай формують транзакції з явних виборів UTXO, а не з повторно використаних кінцевих точок облікових записів, і користувачі не покладаються на копіювання адрес призначення з історії облікових записів так само. Постійного стану облікового запису, який можна було б візуально отруїти, не існує.
Це не була помилка протоколу чи експлойт смарт-контракту. Це була вада у дизайні, яка взаємодіяла з людською природою, і менш ніж за годину вона коштувала 50 мільйонів доларів.
