Що таке смарт-контракти?
Зміст
Вступ
Як працюють смарт-контракти?
Основні можливості
Переваги та варіанти використання
Обмеження
Критика
Заключні думки
Що таке смарт-контракти?
Головна сторінка
Статті
Що таке смарт-контракти?

Що таке смарт-контракти?

Середній рівень
Опубліковано Sep 16, 2019Оновлено Sep 23, 2022
8m

Вступ

Нік Сабо вперше описав смарт-контракти у 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-мережі, а не на централізованому сервері. І оскільки вони засновані на блокчейн-системі, вони зазвичай або незмінні, або їх дуже важко змінити.

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

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

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

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

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


Критика

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

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

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

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


Заключні думки

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

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