Хакер DAO викраде 50 мільйонів доларів, контратака готується

мільйонів

DAO, децентралізована організація, розміщена на блокчейні Ethereum, знову говорить про це. Цього разу новини не є добрими: хакеру вдалося здобути здобич у 50 мільйонів доларів завдяки розумному контракту, який експлуатує помилку.

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

DAO: інструкція із застосування

Щоб зрозуміти, що сталося, спочатку потрібно чітко уявити, як працює DAO (Децентралізована автономна організація). Це автономна та децентралізована бізнес-концепція, характерна для блокчейну Ethereum. Він не має законного існування, не працює персонал, не може володіти майном і діє у фізичному світі, укладаючи контракти із зовнішніми постачальниками послуг.

Ці контракти, які називаються «розумними контрактами», є однією з функціональних можливостей, запропонованих блокчейном Ethereum, який був розроблений з урахуванням цього. Умови контрактів встановлюються заздалегідь, і як тільки умови виконуються, його умови автоматично виконуються.

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

Ми підписали деконтракс

Тепер, коли сцена встановлена, зупинимось на 17 червня. "Хакеру" вдалося укласти розумний контракт із DAO на надання деяких послуг. Однак цей контракт містив помилку (потенційно запроваджену на добровільних засадах). За словами Ендрю Міллера, докторанта з Університету штату Меріленд, який брав участь в аудиті коду Ethereum у 2015 році, недолік, укладений у контракті, було досить просто виділити, як він пояснив нашим колегам з Wired.

За його словами, контракт просто дав би можливість повторити виведення коштів без попередньої перевірки наявності очікуваного залишку. Таким чином, зловмисник отримав би близько 50 мільйонів доларів ефіру (еквівалент біткойна на блокчейні Ethereum), що зберігається в іншому обліковому записі, видимому всім на блокчейні. Точні обставини цієї "затримки" невідомі достеменно, інші згадують про помилку в компіляторі (Solidity).

Чи це крадіжка, якщо договір написаний погано ?

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

"Ретроспективно, очевидно, що ми занадто швидко перейшли від маленького контракту" Привіт, Світ "до великої складної справи, з великою кількістю грошей, як The DAO. Це ніби відразу після перетину Ла-Маншу Blériot, над Атлантикою було запущено літак із 500 пасажирів, що платять. », Резюмує не без гумору Стефан Борцмайер у своєму блозі.

Тим часом громада шукає шляхи повернення “вкрадених” коштів у скарбничку DAO.

Ставки високі, оскільки відведена кількість становить більше 3% від загальної маси ефіру, що знаходиться на даний момент на ринку. Однак незабаром Ethereum перейде на модель покоління, яка вже не базується на майнінгу (Proof of Work), а на так званій схемі "Proof of Stake", де нові ефіри генеруються у формі інтересів від тих, що вже існують. Очевидно, що винагороджуватиметься вже не генерація нових ефірів, а орендна плата. Тому зловмисник може мати 3% від майбутньої маси утвореного ефіру, що може створити великі проблеми в майбутньому.

Які рішення для DAO ?

Громада мала декілька варіантів отримати ці кошти. Контрактом передбачався термін дозрівання 27 днів для коштів, вилучених з DAO, протягом якого зловмисник не може розпоряджатися сумою, як бажає. Щоб продовжити цю тривалість, перший крок складався з "soft-fork".

“Мета тут - запропонувати кожному розглянути, принаймні на деякий час, цей кінець блокчейну як недійсний. Якщо всі погоджуються, це означає, що ефір, присутній у цьому контракті або за цією адресою, не зможе рухатись, ніхто не буде перевіряти його. Таким чином, ми позбавляємось знаменитого 27-денного терміну, і нам більше не доведеться поспішати з рішенням так чи інакше. Це занадто складно, щоб бути хірургічним за такий короткий час, отже, пропозиція позначити все, що містить код DAO (отже, сам DAO та всі законні роздільні запити) », - пояснює ми фахівець із криптовалют, який бажає залишаються анонімними.

Як тільки цей термін буде досягнуто, залишається вибрати шлях, яким слід йти. Серед досліджених шляхів ми відзначимо прямий напад "дочірнього DAO" зловмисника, намагаючись осушити 3,6 мільйона викрадених ефірів, скориставшись тим, що цей тип DAO не може надсилати кошти лише на адресу, з якої вони отримав їх. Іншим варіантом було б взагалі нічого не робити і дозволити DAO атакувати і позбавити всіх активів у ньому. Рішення, яке мало б перевагу, не торкаючись невід’ємної природи блокчейну, але зробило б Етериум справжнім диким заходом.

Також була піднята ідея "хард форка". Згідно консенсусу, майнери виправдали б інкриміновану транзакцію і, таким чином, повернули б 3,6 мільйона ефірів в DAO, який був би модифікований для цього випадку, щоб заповнити лазівку. Цей метод матиме недолік створення прецеденту для «переписування» блокчейну. "Це дозволило б, наприклад, суду тиснути на визнання певної операції недійсною", - зазначає експерт, з яким ми брали інтерв'ю.

Deus ex machina

Нарешті, схоже, тим часом було прийнято ще один варіант. Колектив піратів, що видають себе за "білих капелюхів" (самопроголошених "добрих хлопців"), пояснив, що вони розмістили в новому DAO 7,2 мільйона ефірів, які все ще були в DAO, щоб запобігти подальшим атакам. "Ми зменшили кількість потенційних зловмисників з понад 20 000 до лише двох", - вітають себе на Reddit.

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

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