19 Березня, 2024

Що таке смарт-контракти: теорія зі схемами та прикладами

Все, що ви хотіли знати про смарт-контракти, їх сутність, види, особливості створення та застосування на практиці.

Що таке смарт-контракт простими словами

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

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

Тобто. це програма, що здійснює певні дії у відповідь виконання заданих умов (за схемою “якщо…то…”).

Чому розумний?

Ось що на це відповів автор ідеї, криптограф-юрист Нік Сабо:

“Я називаю ці нові контракти «розумними», тому що вони набагато функціональніші за їхніх неживихпаперових предків.

Розумний контракт — це набір обіцянок, визначених у цифровій формі, включаючи протоколи, у яких сторони виконують ці обіцянки”.

Різні погляди на суть

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

Ось ще кілька більш сучасних термінів смарт-контракту:

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

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

Трішки історії

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

Смарт-контракти біткоїну

З поширенням блокчейну, ця ідея набула практичного сенсу. Деякі принципи смарт-контрактів було втілено у протоколі біткоїну.

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

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

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

Приклади смарт-контрактів на блокчейні біткоїну:

  • Ескроу – для використання коштів потрібний підпис третього агента
  • Мультисиґ — транзакція може бути завершена лише після підпису кількох осіб із заданої кількості “власників” контракту, кількість та адреси учасників заздалегідь визначені в момент створення такого гаманця
  • Заповіт – якщо гаманець не активний, спадкоємці отримують кошти (вірніше – власник адреси витрачає у будь-який час, а от спадкоємці можуть витратити виходи з гаманця тільки після блоку з певною датою, кожна нова транзакція пересилає здачу з продовженням цього терміну)
  • Сейф – до засобів немає доступу до певної дати
  • Атомік свопи та скрипти створення платіжних каналів — лейєр 2 та децентралізовані обмінники

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

Смарт-контракти Ethereum

Потенціал смарт-контрактів та недоліки BTC оцінив свого часу Віталік Бутерін. Він розробив платформу Ethereum, що дозволяє створювати тюрінг-повні смарт-контракти.

Основні відмінності – мова програмування Solidity та можливість зберігати в блокчейні інформацію про стан (statefulness). Тобто, мережа Ethereum сприймає кожну транзакцію як частину системи, тоді як біткоін – як окрему.

В Ефіріумі також можна створювати смарт-контракти для генерації токенів. Найпоширенішим став токен стандарту ERC-20. Така стандартизація дозволила спростити взаємодію між гаманцями, проектами, біржами та ін.

Сьогодні багато проектів розробляють свої платформи для смарт-контрактів (Tron, NEO, EOS, Hyperledger Fabric, Aeternity, Waves, Ontology, VeChain, Stellar), які відрізняються алгоритмом консенсусу, пропускною спроможністю, вартістю обробки транзакцій та функціональністю.

Однак Ethereum зі стандартом ERC-20 і досі залишається найпопулярнішою платформою.

Види смарт-контрактів

Розглянемо, як смарт-контракти класифікують за кількома критеріями.

  1. Середовище виконання:
  • централізовані смарт-контракти (діють на централізованій платформі, з одним валідатором, реєстр знаходиться на одному сервері. Приклад: контракти провайдерів мобільного зв’язку чи банків);
  • децентралізовані (створені в блокчейні).
  1. Процес постановки завдань та виконання умов смарт-контракту:
  • довільно програмовані (тьюрінг-повні);
  • обмежені (тьюринг-неповні);
  • встановлені (суворо типізовані).
  1. Рівень приватності (щодо умов смарт-контракту):
  • повністю відкриті;
  • частково відкриті;
  • повністю конфіденційні.

Як працюють смарт-контракти в блокчейн

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

Елементи смарт-контрактів:

  1. Платформа, у якій написано алгоритм (наприклад, Ethereum).
  2. Предмет – активи, що підлягають обміну на підставі смарт-контракту (товари, послуги, крипта, дані).
  3. Умови, які потрібно виконати для здійснення обміну.
  4. Сторони, що беруть участь в обміні, мають унікальний цифровий підпис.
  5. Оракули (за потребою) – незалежні джерела зовнішньої інформації.

 Характерні риси смарт-контрактів:

  1. Розподіл (вони репліковані та розподілені по всіх вузлах мережі)
  2. Детермінованість (чіткий алгоритм дій та завжди передбачуваний результат).
  3. Автономність (після ініціювання умови виконуються автоматично, без вирішення посередників).
  4. Незмінність (як правило, після створення в них не можна внести зміни).
  5. Налаштовуваність (у процесі створення можна прописати будь-який алгоритм, що обчислюється).
  6. Довірливість (сторони довіряють протоколу, ведеться облік усіх даних).
  7. Прозорість (в основному, вихідний код – відкритий. Бувають і винятки – MAST – але після виконання код все одно відкривається).

Схема роботи смарт-контрактів

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

Технологію смарт-контракту схематично можна зобразити так:

  1. Особа ініціює транзакцію
  2. Інформація про неї потрапляє в мережу, що складається з нід (вузлів мережі блокчейн)
  3. Ноди, на підставі певних алгоритмів консенсусу, підтверджують інформацію про статус ініціатора та саму транзакцію.
  4. Після підтвердження транзакція потрапляє до складу нового блоку (що включає інші транзакції).
  5. Новий блок приєднується до ланцюга блоків (блокчейн)
  6. Транзакцію завершено

Застосування смарт-контрактів

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

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

Схема застосування (наприклад, придбання електронної книги за криптовалюту):

  1. За умовами смарт-контракту доступ до книг відкривається після оплати певної кількості монет.
  2. Покупець ініціює запит на отримання доступу до книги та надсилає монети.
  3. Вузли, отримавши інформацію від сторін, перевіряють дотримання умов контракту (статус сторін, права сторін на володіння активами, відповідність суми монет) та підтверджують транзакції за умови дотримання умов.
  4. Ці транзакції потрапляють у блок, та у у мережу.
  5. Транзакції завершено: продавець отримує монети, покупець — доступ до книги.

Поки що найуспішнішим прикладом застосування смарт-контрактів можна назвати ICO (первинна пропозиція монет). Крім того, смарт-контракти активно застосовуються на ринку децентралізованих фінансів (DeFi), токенізації активів, обробки платежів для dApps та DEX, в іграх та мобільних додатках.

Більшість ICO використовують смарт-контракти на платформі Ethereum.

Умови функціонування смарт-контрактів

Щоб смарт-контракти можна було широко застосовувати у реальному житті, їм необхідно створити певні умови.

  1. По-перше, необхідне середовище – блокчейн, тобто розподілений реєстр даних, на базі якого буде створюватись смарт-контракт, та інша інфраструктура.
  2. По-друге, важливим є поширення криптовалюти як платіжного засобу (поки ніяке інше не підходить) та підвищення довіри до неї. Смарт-контракти криптовалюту використовують як паливо, розрахункову одиницю.
  3. По-третє, необхідно розширити коло осіб, які мають доступ та можливості використовувати смарт-контракти.
  4. І по-четверте, потрібне правове регулювання використання: смарт-контракти, криптовалюти є предметом правового регулювання, яке лише зароджується.

Плюси та мінуси смарт-контрактів

То що робить смарт-контракти такими перспективними та затребуваними?

І що водночас заважає їм “захопити світ”?

Плюси Мінуси
Незалежність (відсутність посередників)Репутація (немає повноцінної довіри суспільства)
Безпека (вся інформація надійно зберігається у блокчейн у зашифрованому вигляді)Юридичний статус (неврегульованість законом заважає впровадженню у різні сфери життя)
Безпомилковість (немає людського фактора, висока точність виконання)Ризик помилок у коді, юридична коректність оцифрування умов контракту
Швидкість (автоматизовані процеси відбуваються майже миттєво)Складність реалізації (інтеграція високих технологій у всі сфери життя поки що занадто ресурсозатратна)
Економія (немає операційних витрат та посередників, крім плати за газ)Розрахунки у криптовалюті (крипта не визнана законним платіжним засобом)
Прозорість (всі умови та результати заздалегідь відомі)Оракули (потреба у надійних зовнішніх джерелах інформації)
Незмінність (не можна внести зміни до вже створеного контракту)Незмінність (відсутність гнучкості умов, неможливість виправлення помилки)

Створення та розробка смарт-контрактів

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

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

Для початку, виходячи з цілей проекту, потрібно вибрати децентралізовану платформу для створення смарт-контракту (Ethereum, Tron, Lisk, Cardano, Hyperledger Fabric, Nem, Stellar, NEO, Ontology…).

Основні мови програмування для смарт-контрактів: JavaScript, Solidity, Fe, Rust, Vyper, Script, Serpent.

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

Перш ніж використовувати написаний код, важливо протестувати його для виявлення різних багів та прихованих вразливостей.

Підсумок

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

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

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

Share

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *