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

3 помилки щодо розумних контрактів

За словами консультанта з питань блокчейну Олів’є Ріккена, ажіотаж щодо смарт-контрактів створює нові операційні проблеми.

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

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

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

ONE з найперспективніших розробок у сфері блокчейну є ідея смарт-контрактів.

Вперше деталізовано криптографом Нік Сабо у своїй статті «Розумні контракти» 1994 року Сабо описує цю концепцію як «комп’ютеризований протокол транзакцій, який виконує умови контракту». Сьогодні підйом блокчейн Ethereum сприяє легкому розвитку та розгортанню цієї концепції в громадському середовищі.

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

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

Ось три проблеми, з якими я стикаюся найчастіше:

1. «Розумні контракти — це лише код, а не контракти»

Поширена фраза, яку часто цитують: «розумні контракти не є ані розумними, ані контрактами, це просто дурний код».

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

Коли ми дивимося на звичайні контракти, семантика контракту складається з двох основних елементів, а саме:

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

Чому люди в першу чергу укладають контракти? Здебільшого тому, що вони T повністю довіряють один одному для виконання угоди (попри будь-яку усну домовленість) або як доказ для третіх сторін того, що передача товарів була законною.

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

Вирішення конфлікту може Соціальні мережі майже тим самим шляхом, що й у випадку з усіма традиційними контрактами, тобто через суди, посередництво ETC.

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

2. «Розумні контракти можуть працювати повністю автономно»

Це підводить нас до другої помилки

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

Блокчейн, по суті, керується транзакціями. Це також стосується смарт-контрактів і, таким чином розумні контракти є реактивними.

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

Крім того, інформація, доступна для смарт-контракту під час виконання, досить обмежена.

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

Доступні дані — це дані, надіслані до контракту в транзакції або повідомленні, плюс дані в сховищі (стан) і пам’яті контракту.

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

Крім того, смарт-контракти можуть виконувати лише основні обчислення, такі як додавання, віднімання та ділення. Вони не здатні виконувати аналіз великих даних.

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

«Розумний контракт»

Розумний контракт не існує.

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

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

Функції, якими може володіти смарт-контракт, залежать від блокчейна.

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

Зображення червоним олівцем через Shutterstock

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

Picture of CoinDesk author Olivier Rikken