Вступ

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

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

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

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

Хоча протокол Bitcoin підтримує розумні контракти протягом багатьох років, їх популяризував творець і співзасновник Ethereum, Віталік Бутерін. Проте варто зазначити, що кожен блокчейн може мати різний метод реалізації розумних контрактів.

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


Отже, як вони працюють?

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

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

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

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


Основні характеристики

Розумний контракт Ethereum часто має такі характеристики:

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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


ERC-20

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

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


Обмеження

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

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

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

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

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

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

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


Критика

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

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

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

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


На завершення

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

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