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

Кодекс – це закон? Ще не зовсім

Чи повинен кодекс бути законом? У цій Погляди Лукас Абегг стверджує, що потрібно подолати багато наукових перешкод, перш ніж це стане можливим.

golf, sport

Після того, як експеримент DAO провалився, почалася гаряча Політика дискусія про те, як продовжувати розробку блокчейна Ethereum.

Позиції варіювалися від дотримання парадигми незмінності з «код є законом» як найважливішого правила, якого слід Соціальні мережі, до більш Human підходу, коли запитували майнерів і розробників Ethereum, яких заходів слід вжити.

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

Однак лише мало часу було витрачено на запитання, що а розумний контракт насправді здатний виконувати.

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

Тож давайте ближче розглянемо можливості смарт-контрактів.

Природа інформації

Особливістю смарт-контракту є, по суті, обробка інформації.

Хоча поняття інформації різниться і не існує універсального визначення, корисно почати зі способу теорія інформації має справу з інформацією, оскільки теорія інформації є частиною ДНК сучасної інформатики.

Тому необхідно розділити інформацію на синтаксична інформація і семантична інформація. Перше – це правила про зв’язок між символами, а друге – значення, яке приписується таким символам (тобто: «намір»). Межа між цими двома дещо розмитою, і розрізнити їх іноді важко (що, як ми побачимо пізніше, в першу чергу призводить до проблеми DAO), але різниця між ними явно існує.

Був цікавий твір про труднощі вловлення "наміру". нещодавно написаний Віталік Бутерін.

Синтаксичну інформацію можна проаналізувати та виміряти (як Шеннон і Ткач зроблено в «Математичній теорії комунікації») і є відкритим для математичних доказів. Однак семантична інформація — це те, що Human приписує символу. Це може представляти все, про що здатний думати Human мозок.

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

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

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

Відсутнє управління

Ще один спосіб розрізнити ці два типи інформації – називати їх «сухий код» і «мокрий код», концепція, розроблена криптографом Ніком Сабо.

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

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

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

Математичний доказ і незмінність

Коли Шеннон працював над теорією комунікації, він дуже дбав про те, щоб його дослідження було обмежено сферою синтаксичної інформації. Це дозволило йому математично підтвердити свої висновки.

Цього не можна було б зробити, якби була задіяна семантична інформація. Для Шеннона математичні докази були важливими для розвитку науки.

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

Оскільки ваш код незмінний і не може бути змінений, ви повинні бути повністю впевнені, що він не має недоліків.

Таким чином, математичне підтвердження вашого коду раптом видається досить важливою функцією.

І все ж Solidity, який використовується на Ethereum для впровадження смарт-контрактів, не є мовою, яка дозволяє математичні докази (тобто: не посилально прозорий). Це дозволяло реалізувати семантичну інформацію, або, явно кажучи, намір розробників. Виклик рекурсії, який призвів до злому The DAO, мав бути використаний у певний спосіб, як це було задумано розробниками.

Очевидно, що такі наміри не були зафіксовані кодом і тому T завадили хакеру DAO злити DAO.

На закінчення: незмінність і правильність коду схожі на дві чаші терезів. Чим більше «ваги» ви надаєте незмінності, тим більше уваги потрібно приділяти правильності коду.

Необхідність коду, який можна перевірити

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

Усі ці знахідки далеко не новина.

Ще в 2002 році Нік Сабо написав статтю про a офіційна мова для контрактів, в якому він прямо зазначив, що використання процедурної комп’ютерної мови може бути спокусливим, але завдає більше шкоди, ніж користі. Це навіть T згадує все існуючі мови програмування які використовуються у фінансовій індустрії, або нові способи створення програмних мов, що дозволяють формальне підтвердження (зразки тут і тут https://legalese.com/docs).

Навіть розробник Solidity, доктор Гевін Вуд, передбачено на ранній стадії концепції Solidity мова, яка дозволяє мати математичні докази, і новітні дослідження припускають, що переклад Solidity на F* щоб отримати код, який можна перевірити, знадобиться.

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

Заповнення технічної пустоти

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

Такий обхідний шлях може лежати в правовій системі з класичного м’ясного простору, зокрема в певній сфері під назвою Альтернативне вирішення спорів (ADR).

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

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

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

Як може виглядати такий LINK між смарт-контрактами та правовими нормами meatspace, можна знайтитут. (Це не правила ADR, а норми договірного права. Проте реалізація буде дуже схожою).

Рух до законності

Спочатку може здатися дивним використовувати старі концепції для просування в нову сферу.

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

Щоб завершити коло з самого початку, ми повинні поважати двосторонню природу інформації та дозволити коду обробляти синтаксичну інформацію та розгортати інструменти керування для обробки семантичної інформації Human .

Використання такого керівного інструменту, як правила арбітражу, пов’язані зі спеціальними смарт-контрактами, у поєднанні з визнанням того, що смарт-контракти не є ані розумними, ані контрактами, а скоріше лише перевіреним кодом (VEC), може надати спосіб тестування нових Технології менш катастрофічним способом, ніж це було зроблено з DAO, а також може забезпечити впевненість, необхідну для того, щоб зробити смарт-контракти цікавими для бізнесу.

Принаймні, поки наука не наздожене бачення «код є законом» і справжнього стану законність можна досягти.

Образ гольфу через Shutterstock

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

Picture of CoinDesk author Lukas Abegg