вступ

Нік Сабо вперше описав розумні контракти в 1990-х роках. Тоді він визначив смарт-контракт як інструмент, який формалізує та захищає комп’ютерні мережі шляхом поєднання протоколів із інтерфейсами користувача.

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

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

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

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

Ця стаття присвячена смарт-контрактам, які працюють на віртуальній машині Ethereum (EVM), яка є важливою частиною блокчейну Ethereum.


Як вони працюють?

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

У мережі Ethereum розумні контракти відповідають за виконання та керування операціями блокчейну, які відбуваються, коли користувачі (адреси) взаємодіють один з одним. Будь-яка адреса, яка не є розумним контрактом, називається зовнішнім обліковим записом (EOA). Таким чином, розумні контракти контролюються комп’ютерним кодом, а EOA – користувачами.

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

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


Ключові особливості

Смарт-контракт Ethereum часто має такі характеристики:

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

Детермінований. Розумні контракти виконують лише ті дії, для яких вони були розроблені, за умови дотримання вимог. Крім того, результат завжди буде однаковим, незалежно від того, хто їх виконає.

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

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

Можливість налаштування. Перед розгортанням розумні контракти можна закодувати багатьма різними способами. Таким чином, їх можна використовувати для створення багатьох типів децентралізованих програм (DApps). Це пов’язано з тим фактом, що Ethereum є повним блокчейном Turing.

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

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


Чи можу я змінити або видалити смарт-контракт?

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

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

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


Переваги та випадки використання

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

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

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

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


ERC-20

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

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


Обмеження

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

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

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

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

Важливо зазначити, що проблема виникла не через блокчейн Ethereum. Натомість це було спричинено неправильною реалізацією смарт-контракту.

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

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


Критика

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

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

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

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


Закриття думок

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

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