Чого ми можемо навчитися, вивчаючи хаки? Розкриття інформації про конфіденційність та рух криптовалюти після злому DAO 2016

Симбіоз

Термін криптовалюта майже став синонімом злому. Здається, що щотижня на біржі, гаманці окремих користувачів, смарт-контракти та загальнодоступні блокчейни, на яких вони сидять, відбуваються неймовірно масштабні хаки. У багатьох випадках вектори атаки очевидні в ретроспективі: код не був перевірений, внутрішні процеси для запобігання фішингу не існували, основні стандарти коду не були дотримані тощо. Вивчення самих хаків часто не дасть багато цікавої інформації для тих, хто вже знайомий з основні методи безпеки. 

Але кожен крипто-злом має дві основні складові — це сам злом, а потім і методи, за допомогою яких хакер і його когорти намагаються виручити вкрадену видобуток. Для прихильників конфіденційності спроби анонімізації цих коштів є цікавими тематичними дослідженнями щодо рівнів анонімності, досягнутих у публічних мережах блокчейну.

Оскільки кошти ретельно відстежуються високоорганізованими та добре фінансованими державними установами та юридичними особами, вони дають можливість спільноті спостерігати за ефективністю різних задіяних гаманців конфіденційності. Якщо ці хакери не можуть залишатися приватними, які шанси, що середні користувачі, які шукають конфіденційність у публічних мережах, зможуть цього досягти? 

Злом DAO 2016, зразковий випадок

При вивченні цих зломів і наступних арештів стає зрозуміло, що в більшості випадків хакери роблять серйозні помилки, намагаючись анонімізувати свою криптовалюту. У деяких випадках збої виникають через прості помилки користувача. В інших випадках вони викликані помилками в програмному забезпеченні гаманця, яке вони використовували, або іншими менш очевидними помилками на шляху до конвертації криптовалюти в реальні активи. 

Нещодавно значний розвиток отримав особливо цікавий випадок, хак DAO 2016 року — слідство статті Forbes було опубліковано, що ідентифікує ймовірного хакера. Процес, за допомогою якого було ідентифіковано цю особу, дає деяке уявлення про широко використовуваний гаманець для конфіденційності Wasabi Wallet і про те, як неналежне використання програмного забезпечення може призвести до «змішування» коштів імовірного хакера. 

Були допущені критичні помилки

Що стосується порядку операцій, то першим кроком хакера було конвертувати частину вкрадених коштів з Ethereum Classic в біткойн. Хакер використовував Shapeshift для виконання обміну, який на той час забезпечував повний публічний запис усіх угод на платформі. З Shapeshift частина коштів перемістилася в Wasabi Wallet. Звідси справи йдуть вниз.  

Для тих, хто не знайомий, CoinJoin — це прізвисько спеціального протоколу побудови транзакцій, який дозволяє кільком сторонам об’єднувати свої кошти у велику транзакцію з метою розірвати зв’язок між коштами, що надходять у CoinJoin, і коштами, що витікають із CoinJoin.

Замість транзакції з одним платником і одержувачем, транзакція CoinJoin має кількох платників і одержувачів. Скажімо, наприклад, у вас є CoinJoin з 10 учасниками — якщо CoinJoin правильно сконструйовано і всі правила взаємодії дотримуються правильно, кошти, які витікають з CoinJoin, матимуть анонімний набір 10. тобто будь-який з 10 «змішаних результатів». ” з транзакції може належати до будь-якого з 10 (або більше) “незмішаних вхідних даних” для транзакції. 

Хоча CoinJoins може бути дуже потужним інструментом, у учасників є багато можливостей робити критичні помилки, які значно погіршують або повністю підривають будь-яку конфіденційність, яку вони могли отримати від CoinJoin. У випадку з імовірним хакером DAO така помилка була допущена. Як ви прочитаєте далі, існує ймовірність, що ця помилка була помилкою користувача, однак, можливо, була (оскільки виправлена) помилка в Wasabi Wallet, яка призвела до цієї помилки конфіденційності. 

Wasabi Wallet використовує Протокол ZeroLink, який створює CoinJoins зі змішаними виходами однакового значення. Це означає, що всі користувачі повинні змішувати лише певну, заздалегідь визначену кількість біткойнів. Будь-яке значення, що перевищує цю суму, що входить до CoinJoin, має бути повернуто відповідним користувачам у вигляді незмішаних біткойнів.

Якщо, наприклад, Аліса має один вихідний біткойн .15, а CoinJoin приймає лише вихідні дані значення .1 біткойн, після завершення CoinJoin Аліса матиме змішаний вихід .1 біткойн і .05 незмішаний вихід біткойн. Біткойн .05 вважається «незмішаним», оскільки його можна пов’язати з вихідним результатом Аліси .15. Змішаний вихід більше не може бути безпосередньо пов’язаний із вводом, і він матиме набір анонімності, який складається з усіх інших учасників CoinJoin. 

Щоб зберегти конфіденційність CoinJoin, дуже важливо, щоб змішані та незмішані виходи ніколи не пов’язувалися один з одним. У випадку, якщо вони випадково агрегуються в біткойн-блокчейні в рамках однієї або набору транзакцій, спостерігач може використовувати цю інформацію, щоб відстежити змішані вихідні дані до їх джерела. 

У випадку хакера DAO здається, що в процесі використання Wasabi Wallet вони використовували одну адресу в кількох CoinJoins; в одному випадку the address був використаний як вихід із незмішаних змін, у другому випадку він використовувався як змішаний вихід.

Це відносно незвичайна помилка в контексті CoinJoin, тому що ця техніка провини за асоціацією вимагає транзакції за CoinJoins, щоб «злити» незмішані та змішані виходи, пов’язуючи їх разом. Але в цьому випадку не потрібно аналізувати транзакції, окрім двох CoinJoins, оскільки одна й та сама адреса використовувалася суперечливими способами в двох окремих CoinJoins. 

По суті, така можливість існує завдяки дизайнерському рішенню в програмному забезпеченні Wasabi Wallet: Wasabi Wallet використовує єдиний шлях виведення як для змішаних, так і для незмішаних результатів. Це вважається погана практика. Співробітник Wasabi заявив, що це повинно зробити відновлення гаманця сумісним з іншими гаманцями, однак, BIP84 (який є схема виведення Wasabi Wallet використовує) має стандартний спосіб розпізнавання шляху деривації, призначеного для зміни вихідних даних.

Помилки, що виникають у результаті цього вибору дизайну, найбільш помітні, коли користувач одночасно використовує два екземпляри Wasabi Wallet, використовуючи один і той же початковий код. У цьому сценарії два екземпляри можуть вибрати одну й ту саму адресу таким конфліктним способом, коли одночасно намагаються запустити змішування з кожного екземпляра. Про це застерігається в офіційна документація. Також можливо, що винуватцями були відомі помилки в гаманці Васабі.

Висновки та висновки

Отже, що ми дізнаємося з цього? Хоча ця помилка з Wasabi не зовсім кінець історії, вона виступала як важливий компонент у відстеженні ймовірного хакера. Ще раз підтверджується наше переконання, що конфіденційність – це важко. Але практично ми маємо інший приклад важливості запобігання забрудненню вихідних даних під час використання інструментів конфіденційності та того, наскільки ретельного «контролю монет» вимагають як користувачі, так і програмне забезпечення. Виникає питання, які протоколи конфіденційності призначені для мінімізації цього класу атак? 

Одним цікавим рішенням є CoinSwap, де замість об’єднання вихідних даних у велику транзакцію ви обмінюєтеся результатами з іншим користувачем. Таким чином ви міняєте історію монет, а не приєднуєтеся до історії монет. Більш потужним є те, що якщо CoinSwap виконується в контексті поза ланцюгом (як це реалізовано Mercury Wallet), немає жодних незмішаних вихідних змін, з якими потрібно мати справу. 

Хоча існують можливі помилки користувача, які можуть призвести до «розміщення» CoinSwap, ці помилки, ймовірно, набагато більш очевидні для кінцевого користувача, оскільки будь-яке злиття вихідних даних у спосіб, що порушує конфіденційність, може бути здійснено лише шляхом явного змішування поміняли вихідні дані тим, які ще не були замінені, на відміну від об’єднання двох виводів, які вже пройшли через CoinJoin, лише один з яких фактично змішаний.

Ртутний гаманець наразі це єдина поза ланцюжком CoinSwap засіб, доступний для кінцевих користувачів. Це дозволяє користувачам блокувати свої монети в протоколі другого рівня (відомому як ланцюжок станів), а потім сліпо обмінюватися своїми виходами з іншими користувачами ланцюга станів. Це дуже цікава техніка, з якою варто поекспериментувати для тих, хто зацікавлений у дослідженні нових інструментів конфіденційності з захоплюючою функціональністю та прийнятними компромісами.

Отримайте свій щоденний підсумок Біткойн, Defi, НФТ та Web3 новини від CryptoSlate

Це безкоштовно, і ви можете будь-коли скасувати підписку.

Отримати край на крипторинку?

Станьте учасником CryptoSlate Edge та отримайте доступ до нашої ексклюзивної спільноти Discord, більш ексклюзивного вмісту та аналізу.

Аналіз на ланцюгах

Знімки цін

Більше контексту

Приєднуйтесь зараз за $ 19 / місяць Вивчіть усі переваги

Джерело: https://cryptoslate.com/what-can-we-learn-from-studying-hacks-revealing-insights-on-privacy-and-cryptocurrency-movements-after-the-dao-2016-hack/