3 Головних помилки про смарт-контрактах

Одна з найбільш багатообіцяючих розробок в області блокчейна - концепція "розумних контрактів" (смарт-контрактів). Вперше ідея була описана криптографом Ніком Сабо (Nick Szabo) в 1994 році в документі "Розумні контракти", в якому Сабо описував концепцію як "комп'ютеризований протокол транзакцій, що виконує умови контракту". Сьогодні розквіт Ефіріума сприяє спрощенню розробки і розгортання цієї концепції у відкритому середовищі.

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

1. Розумні контракти - просто код, а не контракти

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

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

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

  2. Чому люди в принципі створюють контракти? У більшості випадків - через те, що повністю не впевнені один в одному, коли мова заходить про виконання зобов'язань, або ж для того, щоб мати докази законної сили угоди. Маючи на увазі це, а також операційний елемент семантики контракту, можна сказати, що розумний контракт - результат угоди між двома або більше сторонами, "підписаний" ними всіма, що можна розглядати як складову операційної семантики традиційного контракту, хоч і написаного незнайомою мовою.

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

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

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

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

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

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

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

3. Типовий розумний контракт

Не існує такого поняття, як типовий розумний контракт. Найчастіше люди роблять ту саму помилку, кажучи про "типового блокчейне", замість того, щоб вести мову про конкретну мережі (наприклад, біткоіни, Ефіріум і т. Д.).

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

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