25 Квітня, 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 адреса не оприлюднюватиметься. Обов’язкові поля позначені *