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

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з Розумний контракт)
Перейти до навігації Перейти до пошуку

Смарт-контракт (англ. smart contract — «розумний контракт») — різновид угоди в формі закодованих математичних алгоритмів, де укладення, зміни, виконання і розривання можна виконати лише з використанням комп'ютерних програм (блокчейн-платформ) у рамках мережі Інтернет.

В реальному світі широке охоплення в реалізації смарт-контрактів здобула DAO, розподілена автономна організація[en] для венчурного фінансування, яка була запущена у травні 2016 року.

Першою країною, яка законодавчо закріпила розумні контракти стала Білорусь у 2017 році.[1]

Історія[ред. | ред. код]

Словосполучення «смарт-контракт» було створено вченим у галузі інформатики, криптографії, а також в області права, Ніком Сабо у 1994 році[2], для підкреслення того, що він називає «високорозвинені практики» договірного права і пов'язаних з діловою практикою в розробці електронних протоколів торгівлі, між незнайомими людьми в Інтернеті. Можна сказати, що йдеться про врегулювання відносин сторін шляхом закріплення їх вираженої волі у формі певного коду, який придатний для зчитування комп'ютером.

У 1996 році Сабо описував його так:

Нові інституції і нові способи формалізації відносин цих інституцій стали можливі завдяки цифровій революції. Я називаю ці контракти «розумними» тому що вони більш функціональні, ніж їхні неживі паперові предки. Не передбачається використання штучного інтелекту. Смарт-контракти — це набір обіцянок у цифровому форматі, включно з протоколами, за якими сторони виконують ці обіцянки.
Оригінальний текст (англ.)
New institutions, and new ways to formalize the relationships that make up these institutions, are now made possible by the digital revolution. I call these new contracts «smart», because they are far more functional than their inanimate paper-based ancestors. No use of artificial intelligence is implied. A smart contract is a set of promises, specified in digital form, including protocols within which the parties perform on these promises. [3]

Сабо, натхненний дослідником Девідом Чаумом[en], також мав широке очікування того, що специфікації на основі чіткої логіки і перевірки, або виконання через криптографічні протоколи та інші механізми цифрової безпеки, може являти собою різке поліпшення в порівнянні з традиційним контрактом, навіть для деяких традиційних видів договірних положень, які можуть бути передані під владу комп'ютерних протоколів.[4]

У документі 2013 року, Марк Міллер[en] та інші підкреслювали можливості[en] як основи безпеки розумних контрактів, на відміну від Чаума та інших дослідників в криптографічній фінансовій спільноті, які використовують сучасні криптографічні протоколи[5], щоб забезпечити безпеку і конфіденційність цифрових грошей, облікових даних, підписання контракту, аукціонів, а також інших комерційних механізмів.

Кілька формальних мов були розроблені та запропоновані для визначення договірних положень.[6][7][8] IEEE провів два семінари з електронним укладенням договорів.[9]

Розумні контракти вперше отримали широке поширення з появою Ethereum. Ідея створення проекту виникла в 2013 році. В той момент засновник журналу Bitcoin Magazine Віталік Бутерін прийшов до висновку, що технологія блокчейна може використовуватися значно ширше, не тільки в криптовалютах. Він висунув ідею універсальної децентралізованої блокчейн-платформи, в якій будь-хто бажаючий може програмно реалізувати різні системи зберігання та обробки інформації. Головна умова — дії повинні бути описані як математичні правила.[10]

Останнім часом галас навколо блокчейну[11], смарт-контрактів використовується в сенсі загального розуміння цілі, що відбувається на блокчейні.[12] У цій інтерпретації смарт-контракт не обов'язково має відношення до класичної концепції договору, але може бути будь-якою комп'ютерною програмою.

Питання безпеки[ред. | ред. код]

Смарт-контракт — це «комп'ютеризований протокол транзакцій, який виконує умови контракту»[13].[14] Блокчейн, на основі смарт-контракта, видно всім користувачам зазначеного блоку. Проте, це призводить до помилок, в тому числі дірок в системі безпеки, які можуть побачити всі користувачі, але їх не можна виправити швидко.[15] Таким чином, була успішно виконана атака на DAO в червні 2016 року вартістю 50 млн USD у Ethereum, в той час, як розробники намагалися прийти до вирішення цієї проблеми. Обробка задачі на блокчейні вимагала часу, за який хакер може отримати доступ до ресурсів, і зняти кошти з DAO контракту.

Принцип роботи[ред. | ред. код]

Смарт-контракти Ethereum розробляються на одній з мов, спроектованих для трансляції в байт-код віртуальної машини Ethereum — Solidity (схожий на С або JavaScript), Vyper і Serpent (схожі на Python), LLL (низькорівнева версія Lisp), Mutan (заснований на Go).[16][17]

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

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

Для того, щоб розумні контракти могли існувати, потрібні певні умови:

  • Використання широко поширених методів електронного підпису на основі публічних і приватних ключів (асиметричне шифрування).
  • Існування відкритих, децентралізованих і довірчих сторонам контракту баз даних для виконуваних транзакцій, робота яких повністю виключає людський фактор. Як приклад: блокчейн в Bitcoin.
  • Децентралізація середовища виконання розумного контракту. Як приклад: Ethereum, Codius, Counterparty.
  • Правдивість джерела цифрових даних. Як приклад: кореневі центри сертифікації SSL в базах сучасних інтернет-браузерів.[19]

Об'єкти розумного контракту[ред. | ред. код]

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

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

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

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

Винагорода та виконання[ред. | ред. код]

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

Криптовалюти, такі як bitcoin впровадили спеціальні випадки таких реєстрів, де майно гроші. Bitcoin і багато з його спін-оффів містять механізми для того, щоб мати більше можливостей спільної власності і виконання контрактів. Код підтримки це прихована частина протоколу Bitcoin, на основі імовірної та анонімної (за рахунок доказу роботи на основі візантійського) винагороди.[джерело?]

Одна з пропозицій для використання Bitcoin для реєстрації активів і виконання контракту називається «кольорові монети».[21] Реєстрація доменного імені реєстру здійснюється в Namecoin; реєструємо назви для потенційно довільних форм власності, поряд з виконанням контракту, реалізовані в Crypti, Ripple, Mastercoin і Ethereum.[22][23] NXT[24] реалізує право власності на доказі власності, частки в базовій валюті.

Смарт-контракти можуть бути реалізовані за допомогою рікардіанському шаблону[en] проектування контракту.[25][26]

Додатки можуть включати в себе фінансові інструменти, такі як облігації, акції та похідні, договорів по забезпеченню, а також інші документи і угоди, де вузли можуть стежити за розвитком подій, на яких зумовлені розумні правила контракту. Переваги смарт-контракту як еквіваленту звичайного фінансового інструменту гіпотетично включають зведення до мінімуму ризику контрагента, скорочення термінів розрахунків, а також підвищення прозорості.[27] UBS експериментував з «розумними» облігаціями, які використовують bitcoin блокчейн,[28] в якому платіжні потоки гіпотетично могли б бути повністю автоматизовані, створюючи самостійно оплачуваний інструмент.[29]

Токени[ред. | ред. код]

Токен — запис в блокчейні, одиниця обліку, яка не являється криптовалютою, лише призначена для представлення цифрового балансу в деякому активі[30], іншими словами виконує функцію «замінника цінних паперів» в цифровому світі. Управління токеном зазвичай реалізується за допомогою смарт-контракту, в якому записані значення залишків на рахунках власників токенів, і який надає можливість переказу токенів з одного рахунку на інший. Отримати доступ до токенів можна через спеціальні додатки, які використовують схеми електронного підпису.

Стандарти токенів[ред. | ред. код]

Стандарти токенів — це набір узгоджених правил, які керують проектуванням, розробкою, поведінкою та роботою токенів криптовалюти на певному протоколі блокчейну. Щоб стандарти токенів були корисними, вони повинні бути широко прийняті. Без прийняття їх правила неможливо підняти до статусу «стандарту», оскільки стандарти — це правила, яких зазвичай дотримується широке коло людей.[31]

Ось деякі з найпопулярніших стандартів токенів на Ethereum:

ERC-20 – стандартний інтерфейс для замінних (взаємозамінних) токенів, таких як токени голосування, токени ставок або віртуальні валюти.[32]

ERC-721 – стандартний інтерфейс для невзаємозамінних токенів NFT, як-от документ на твір мистецтва чи пісню.[33]

ERC-777 – ERC-777 дозволяє людям створювати додаткову функціональність на основі токенів, як-от договір змішування для покращення конфіденційності транзакцій або функцію екстреного відновлення, щоб виручити вас, якщо ви втратите особисті ключі.[34]

ERC-1155 - ERC-1155 дозволяє здійснювати більш ефективні операції та групування транзакцій, таким чином заощаджуючи витрати. Цей стандарт токенів дозволяє створювати як корисні токени (наприклад, $BNB або $BAT), так і незамінні токени, такі як CryptoPunks.[35]

ERC-4626 — токенізований стандарт сховищ, призначений для оптимізації та уніфікації технічних параметрів сховищ, що несуть прибуток.[36]

У популярній культурі[ред. | ред. код]

У романі Постійність[en] (2002) Карл Шредер відрізняє «економіку прав», в якому всі фізичні об'єкти є нано-мічені договірними вимогами, з тим, що оплата може застосовуватися для всіх видів використання службової інформації, наприклад, військова місія в глибокому космосі повинна постійно виправдовувати співвідношення витрат і вигод своєї місії на кораблі або він перестане працювати.[джерело?]

Примітки[ред. | ред. код]

  1. Беларусь первой в мире законодательно закрепила smart-контракт [Архівовано 23 жовтня 2021 у Wayback Machine.], БЕЛТА, 22 ДЕКАБРЯ 2017
  2. [Smart Contracts. Процитовано 23 липня 2023.  Smart Contracts]
  3. Nick Szabo -- Smart Contracts: Building Blocks for Digital Markets. www.fon.hum.uva.nl. Архів оригіналу за 27 квітня 2018. Процитовано 29 липня 2017. 
  4. Nick Szabo. Formalizing and Securing Relationships on Public Networks. First Monday. Архів оригіналу за 4 лютого 2017. Процитовано 10 грудня 2016. 
  5. Miller, Van Cutsem, and Tulloh (2013). Distributed Electronic Rights in JavaScript. ESOP'13 22nd European Symposium on Programming. Архів оригіналу за 6 січня 2017. Процитовано 10 грудня 2016. 
  6. Welcome to ERights.Org. erights.org. Архів оригіналу за 12 листопада 2016. Процитовано 10 грудня 2016. 
  7. A Formal Language for Analyzing Contracts. vwh.net. Архів оригіналу за 21 серпня 2006. Процитовано 10 грудня 2016. 
  8. Архівована копія. Архів оригіналу за 29 серпня 2006. Процитовано 10 грудня 2016. 
  9. Архівована копія. Архів оригіналу за 3 грудня 2018. Процитовано 10 грудня 2016. 
  10. Создатель Ethereum Виталик Бутерин: «Блокчейн поможет искоренить коррупцию». Архів оригіналу за 20 лютого 2018. Процитовано 23 жовтня 2021. 
  11. Архівована копія. Архів оригіналу за 24 листопада 2016. Процитовано 10 грудня 2016. 
  12. Архівована копія. Архів оригіналу за 11 грудня 2016. Процитовано 10 грудня 2016. 
  13. Tapscott, Don; Tapscott, Alex (May 2016). The Blockchain Revolution: How the Technology Behind Bitcoin is Changing Money, Business, and the World. с. 72, 83, 101, 127. ISBN 978-0670069972. 
  14. https://medium.com/blockchain-hub/to-fork-of-not-to-fork-a9b077718fe3#.xk7ojtacq. Архів оригіналу за 17 січня 2017. Процитовано 10 грудня 2016. 
  15. Peck, M. (28 травня 2016). Ethereum’s $150-Million Blockchain-Powered Fund Opens Just as Researchers Call For a Halt. IEEE Spectrum. Institute of Electrical and Electronics Engineers. Архів оригіналу за 30 травня 2016. Процитовано 10 грудня 2016. 
  16. Руководства, ресурсы и инструменты для разработчиков на Ethereum. Архів оригіналу за 23 жовтня 2021. Процитовано 23 жовтня 2021. 
  17. Chris Dannen ntroducing Ethereum and Solidity: Foundations of Cryptocurrency and Blockchain Programming for Beginners [Архівовано 23 жовтня 2021 у Wayback Machine.]
  18. Smart Contracts, Explained. Архів оригіналу за 21 січня 2018. Процитовано 23 жовтня 2021. 
  19. Смарт-контракты: как использовать и насколько надежны для сделок. Архів оригіналу за 17 травня 2020. Процитовано 23 жовтня 2021. 
  20. Nick Szabo (2005). Secure Property Titles with Owner Authority. Архів оригіналу за січень 15, 2014. Процитовано 12 січня 2014. 
  21. Hal Hodson (20 November 2013). Bitcoin moves beyond mere money. New Scientist. Архів оригіналу за 13 січня 2014. Процитовано 12 January 2014. 
  22. Ethereum: A Next-Generation Generalized Smart Contract and Decentralized Application Platform. Архів оригіналу за 11 січня 2014. Процитовано 12 January 2014. 
  23. Архівована копія. Архів оригіналу за 8 листопада 2016. Процитовано 10 грудня 2016. 
  24. Bitcoin Descendant NXT Features 100% New Code, Green Mining, Decentralized Trading, More. Yahoo Finance. 23 December 2013. Архів оригіналу за 13 січня 2014. Процитовано 12 January 2014. 
  25. Grigg (2015). The Sum of all Chains - Lets Converge. Coinscrum. Архів оригіналу за 8 грудня 2016. Процитовано 10 грудня 2016. 
  26. Clack та ін. (2016). Smart Contract Templates: foundations, design landscape and research directions. Архів оригіналу за 11 вересня 2016. Процитовано 10 грудня 2016.  {{cite web}}: Явне використання «та ін.» у: |last= (довідка)
  27. Blockchain Technology: Preparing for Change. Accenture. Архів оригіналу за 10 серпня 2016. Процитовано 10 грудня 2016. 
  28. Ross, Rory (12 вересня 2015). Smart Money: Blockchains Are the Future of the Internet. Newsweek. Архів оригіналу за 10 липня 2016. Процитовано 27 травня 2016. 
  29. Wigan, David (11 червня 2015). Bitcoin technology will disrupt derivatives, says banker. IFR Asia. Архів оригіналу за 29 червня 2016. Процитовано 27 травня 2016. 
  30. Что такое токен?. ForkLog (англ.). 2 листопада 2017. Архів оригіналу за 19 серпня 2021. Процитовано 30 березня 2021. 
  31. Pratap, Zubin (16 листопада 2022). What Are Token Standards? A Complete List. Chainlink Blog (амер.). Процитовано 23 липня 2023. 
  32. ERC-20: Token Standard. Ethereum Improvement Proposals. Процитовано 23 липня 2023. 
  33. ERC-721: Non-Fungible Token Standard. Ethereum Improvement Proposals. Процитовано 23 липня 2023. 
  34. ERC-777: Token Standard. Ethereum Improvement Proposals. Процитовано 23 липня 2023. 
  35. ERC-1155: Multi Token Standard. Ethereum Improvement Proposals. Процитовано 23 липня 2023. 
  36. ERC-4626: Tokenized Vaults. Ethereum Improvement Proposals. Процитовано 23 липня 2023. 

Див. також[ред. | ред. код]

Посилання[ред. | ред. код]