Logo
Поділитися цією статтею

Розумні контракти на блокчейні потребують нового виду належної перевірки

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

Понад 20 років тому Нік Сабо запропонував використовувати «розумний контракт» для зменшення витрат на шахрайство та правозастосування, пов’язаних із традиційними паперовими контрактами. Його смарт-контракт буде реалізований як «комп’ютеризований протокол транзакцій, який виконує умови контракту» – іншими словами, комп’ютерна програма.

Як і будь-яке інше програмне забезпечення, комп’ютерна програма «розумного контракту» отримувала б вхідні дані, запускала серію кроків програми та видавала результати. Наприклад, смарт-контракт може чекати настання заздалегідь визначеної умови (наприклад: акція досягне певної ціни), автоматично вважатиме умови контракту виконаними та запустить заздалегідь визначену серію кроків ефективності (наприклад: платіж), які будуть виконані автоматично. Значно випередивши свій час, ця ідея не прижилася.

Продовження Нижче
Не пропустіть жодної історії.Підпишіться на розсилку Crypto Long & Short вже сьогодні. Переглянути Всі Розсилки

Перенесімося вперед у 2016 рік. Блокчейнів багато, і відновився інтерес до смарт-контрактів, особливо з децентралізованим виконанням контрактів: смарт-контракти на блокчейні.

Блокчейн Bitcoin працює з 2009 року, але, незважаючи на різноманітні зусилля, не підходить для зручного впровадження смарт-контрактів. Навпаки, оригінальний блокчейн Ethereum , анонсований у 2014 році та запущений у 2015 році, був спеціально розроблений для реалізації смарт-контрактів.

Проблеми в раю

З моменту запуску смарт-контракти почали поширюватися в екосистемі Ethereum . Однак майбутня незмінність смарт-контрактів Ethereum залишається невизначеною після широкого розголосу «хардфорк» Ethereum. Існуючий ефір фактично став «E[i]ther» — класичним ефіром (ETC) і *новим* ефіром (ETH), залишаючи ринкові сили визначати, чи виживе один або обидва.

Система Ethereum , як і Bitcoin, пов’язує право власності на валюту (ефір) з адресою. Однак, на відміну від Bitcoin , Ethereum також надає адресу для виконуваного коду контракту, який працює в блокчейні. Коли адреса контракту отримує відповідне повідомлення від користувача або іншого контракту, код виконується. Розумні контракти Ethereum зберігаються в блокчейні та виконуються на «віртуальних машинах Ethereum » (EVM) самостійно вибраними комп’ютерними вузлами, широко відомими як «майнери». Ці вузли виконують обробку, необхідну для виконання відповідних кроків програми. За окрему плату, звичайно.

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

Але надмірне використання ресурсів Ethereum — не єдиний можливий вид зловживання. У нещодавній статті зазначено, що серед приблизно 19 000 досліджених смарт-контрактів Ethereum 44% містили вразливі місця. Оскільки код смарт-контракту копіювався знову і знову, а методи складання помилок повторювалися, код, заповнений помилками, поширювався. Старий, недосконалий код, очевидно, став нестійкою основою для нових смарт-контрактів.

Як ми всі з болем усвідомлюємо, помилки програмного забезпечення та вразливі місця системи не є чимось новим. Найпопулярніші операційні системи та прикладне програмне забезпечення часто «оновлюються». І постійно виявляється більше помилок. Типова ліцензійна угода на програмне забезпечення включає роки «безкоштовних» оновлень.

Як виправити незмінну систему?

Як споживач програмного забезпечення, ваша «належна обачність» досить проста, оскільки процес виправлення помилок вбудовано в ліцензію на програмне забезпечення. Коли (а не якщо) щось йде не так, у вас є певна надія, що хтось намагається вирішити проблему.

Але розумні контракти – це не звичайне програмне забезпечення. Передбачається, що смарт-контракт автоматично реалізує реальний контракт: фактичну угоду між двома (чи більше) сторонами. Після того, як сторони переговорів погоджуються з умовами угоди, ці умови перетворюються на смарт-контракт – наприклад, надаються програмісту для створення коду смарт-контракту. Отже, як сторони дізнаються, чи погоджені умови були правильно запрограмовані?

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

Смарт-контракт має бути безпомилковим, стійким до помилок або, принаймні певним чином, виправним. Покладання на «форму» контрактів не є гарантією безпеки – особливо не для розумних контрактів. Старе програмне забезпечення з помилками, звичайно, можна використати, і воно має великий ефект. Подивіться на Злом DAO. Повідомляється, що понад 50 мільйонів доларів ефіру було перенаправлено через уразливість смарт-контракту.

Для цього нового виду контракту потрібен новий вид належної перевірки. Розумні контракти поєднують право та інформатику. Належна перевірка смарт-контрактів має робити те саме.

Due diligence в епоху блокчейну

Яка належна перевірка потрібна для смарт-контракту?

Традиційний аналіз запропонованої трансакції та узгоджених умов контракту повинен визначити практичні та юридичні питання. Аналіз вихідного коду має виявити недоліки в програмуванні смарт-контракту до його компіляції.

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

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

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

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

Більш сувора перевірка смарт-контракту може нарешті принести певний спокій.

аудит зображення через Shutterstock

Примітка: Погляди, висловлені в цьому стовпці, належать автору і не обов'язково відображають погляди CoinDesk, Inc. або її власників та афіліатів.

Picture of CoinDesk author Ted Mlynar and Ira Schaefer