Як крадуть криптовалюта, питаннячко

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

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

Ethereum і розумні контракти

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

Кожна операція в криптовалюта супроводжується «розумним контрактом» - програмою, візується виконання всіх правил системи при здійсненні транзакції. У Bitcoin ці угоди досить обмежені, але в Ethereum вони можуть виконувати практично будь-які дії. Оскільки дії на електронну контрактом здійснюють не люди, а комп'ютери, і він вписаний в блокчейн, його неможливо порушити, скасувати або обійти.

За ідеєю, це повинно забезпечувати абсолютну безпеку транзакцій і дотримання «конституції» криптовалюта. Не потрібні суди для вирішення спорів, регулятори та інші інститути обмеження і придушення. Все працює саме по собі, як в либертарианской утопії.

DAO якраз і є таким «розумний контракт», на основі якого створена відповідна організація. Її заснував німецький стартап Slock.it, який розробляє електронні дверні замки, в надії таким чином залучити інвестиції. Контракт був дуже складним - він повністю описував все правила функціонування організації: накопичення капіталу в перші 27 днів, придбання токенов для голосування по ініціативам колективу, розподіл прибутку і так далі.

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

Втім, помилкою ця вразливість була тільки з точки зору бідолах, які вклали кошти в DAO. З точки зору системи, все працювало як годинник - крадіжка виявилася закладена в саму суть контракту. Подумати про можливість змінити його правила постфактум нікому не спало на думку. Гроші міг повернути тільки сам зловмисник, але він це робити не збирався.

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

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

Перевіривши свій метод на тестовій мережі Ethereum, вони запустили контратаку, викачавши 7,6 мільйона ефіру (приблизно 105,7 мільйонів доларів на той момент) в два дочірні DAO, що становить близько 70 відсотків активів початкового проекту. Втім, з огляду на, що дочірні організації засновані на все тому ж коді, відвести з них гроші не становило жодних проблем за допомогою того ж методу. І дійсно - згодом виявилося, що в ряди Робін Гудів просочився один із зловмисників.

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

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

Що ж сталося з грошима, які повели Робін Гуди? Це питання досі не вирішене: роздавати «награбоване» складно, і багато користувачів небезпідставно припускають, що хтось із цих людей потихеньку спробує викачати кошти в свою користь.

Все це схоже на фінансову версію квантової теорії множинності світів: під час колапсу квантової функції з'являються світи з різними його наслідками. Реальність розгалузилася.

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

Форуми, на яких спілкувалися учасники, завирували. Раптом, в одну мить, утворилося регулювання, правопрінужденіе, покарання і навіть якась демократія з голосуваннями за і проти. Незгодні дивилися і говорили: це не те, на що ми підписувалися. Зловмисник - законний власник цих грошей згідно із законом гір, і тільки так. Вони хвалили його за розум і кмітливість.

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

Чим ця історія цікава? По-перше, автономна програма, самостійно розпоряджається 150 мільйонами доларів, - це щось досі небачене.

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

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

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

З іншого боку, то, як проблема вирішувалася, може і повинно викликати і оптимізм. Тисячі людей домовилися про розгалуженні Ethereum, підтримали і провели його абсолютно демократично, знизу, а не зверху. Це незвично навіть для інтернету. Спільноти, особливо великі, рідко бувають демократичними. Можна сказати, що комуністичний підхід в цій ситуації переміг індивідуалістичний, Лібертаріанська.