Смарт-контракт
Смарт-контракт (англ. smart contract — умный контракт) — компьютерный алгоритм, содержащий условия договора и предназначенный для автоматического контроля и исполнения договорных отношений. Для работы смарт-контракта все условия и обязательства договора описываются на языке программирования, программа запускается на доверенной вычислительной системе. В настоящее время возможности исполнения смартконтрактов встречаются на платформах криптовалют.
Первой страной, на государственном уровне подтвердившей юридическую силу смарт-контрактов, стала Белоруссия[1].
История
[править | править код]Концепцию и термин «умный контракт» придумал Ник Сабо: в 1994 году появилась его концептуальная статья «Smart Contracts»[2]. Целью было реализовать коммерческую операцию через компьютерную сеть без участия посредников. В качестве простейшего примера Сабо писал, что «торговый автомат является контрактом на предъявителя: любой, у кого есть монеты, может участвовать в обмене с продавцом», причём это происходит в автоматическом режиме без непосредственного участия продавца, роль которого сводится к настройке автомата, загрузке товаров и инкассации денег, но от продавца не требуется непосредственного общения с покупателем. Смарт-контракт также самостоятельно выполняет описанные действия (например, предоставляет цифровой товар, отправляет деньги, открыто или закрыто публикует информацию), если выполнены заложенные в нём условия, точно так же, как это реализовано в торговом автомате.
В другой статье 1996 года он более подробно исследовал потенциальные возможности применения умных контрактов и более лаконично изложил саму суть: «Смарт-контракты — это набор обещаний в цифровом формате, включая протоколы, по которым стороны выполняют эти обещания»[3]. Уже к 1997 году был разработан ряд алгоритмов и протоколов, пригодных для базовой реализации идеи[4].
Но узким местом оставались системы платежей, которые на тот момент всегда имели доверенных посредников (администраторов), что не позволяло сделать систему абсолютно автоматической, действующей лишь согласно выполненным условиям вне зависимости от воли какого-либо исполнителя. Практические реализации концепции Ника Сабо стали возможными благодаря появлению в 2008 году технологии блокчейн[5], что обеспечило контрактам полную автономность и позволило отказаться от стороннего администратора, который выполнял роль контролёра и арбитра. Уже в первых версиях Биткойна через использование языка программирования скриптов стало возможным реализовать базовые функции умных контрактов. Но из соображений безопасности биткойн-скрипты не обладают полнотой по Тьюрингу и широкого применения для реализации умных контрактов не получили. Однако стали появляться разработки протоколов более высокого уровня (включая универсальные умные контракты) поверх протокола биткойна[6], по аналогии с тем, как поверх TCP/IP существует множество прикладных протоколов.
Умные контракты получили широкое распространение с появлением Ethereum, в котором изначально была встроена универсальная виртуальная машина, позволяющая писать код на нескольких разных языках программирования. Идея создания проекта появилась в 2013 году. В тот момент основатель журнала Bitcoin Magazine Виталик Бутерин пришёл к выводу, что технология блокчейна может использоваться значительно шире, не только в криптовалютах. Он выдвинул идею универсальной децентрализованной блокчейн-платформы, в которой любой желающий может программно реализовать разные системы хранения и обработки информации. Главное условие — действия должны быть описаны как математические правила[7].
Принцип работы
[править | править код]Смарт-контракты Ethereum разрабатываются на одном из языков, спроектированных для трансляции в байт-код виртуальной машины Ethereum — Solidity (похож на Си или JavaScript), Vyper и Serpent (похожи на Python), LLL (низкоуровневая версия Лисп), Mutan (основан на Go)[8][9][10].
Стороны подписывают умный контракт, используя методы, аналогичные подписанию отправки средств в действующих криптовалютных сетях. После подписания сторонами контракт сохраняется в блокчейне и вступает в силу. Для обеспечения автоматизированного исполнения обязательств контракта непременно требуется среда существования (узлы блокчейна Ethereum), которая позволяет полностью автоматизировать выполнение пунктов контракта. Это означает, что умные контракты смогут существовать только внутри среды, имеющей беспрепятственный доступ исполняемого кода к объектам умного контракта.
Все условия контракта должны иметь программное описание и ясную логику исполнения. В связи с этим первые умные контракты имеют задачу формализации наиболее простых взаимоотношений, состоящих из небольшого количества условий. Имея беспрепятственный доступ к объектам контракта, умный контракт отслеживает по указанным условиям достижения или нарушения пунктов и принимает самостоятельные решения, основываясь на запрограммированных условиях. Таким образом, основной принцип умного контракта состоит в полной автоматизации и достоверности исполнения договорных отношений[11].
Взаимодействовать смарт-контракты с внешними системами могут через блокчейн-оракулов, которые могут сопоставить условия смарт-контрактов и внешней информации. Оракул посылает информацию смарт-контракту из внешних ресурсов в понятном для блокчейна виде[12].
Для того, чтобы умные контракты могли существовать, требуются определённые условия:
- Использование широко распространенных методов электронной подписи на основе публичных и приватных ключей (асимметричное шифрование).
- Существование открытых, децентрализованных и доверительных сторонам контракта баз данных для исполняемых транзакций, работа которых полностью исключает человеческий фактор. Как пример: блокчейн в Bitcoin.
- Децентрализация среды исполнения умного контракта. Как пример: Ethereum, Codius, Counterparty[англ.], Solana[англ.],
- Достоверность источника цифровых данных. Как пример: корневые центры сертификации SSL в базах современных интернет-браузеров[13].
Объекты умного контракта
[править | править код]- Подписанты — стороны умного контракта, принимающие или отказывающиеся от условий с использованием электронных подписей. Прямым аналогом является подпись отправителя средств в сети Bitcoin, которая подтверждает внесение транзакции в цепочку блоков.
- Предмет договора. Предметом договора может являться только объект, находящийся внутри среды существования самого умного контракта, или же должен обеспечиваться беспрепятственный, прямой доступ умного контракта к предмету договора без участия человека.
- Условия. Условия умного контракта должны иметь полное математическое описание, которое возможно запрограммировать в среде существования умного контракта. Именно в условиях описывается логика исполнения пунктов предмета договора.
- Децентрализованная платформа. Для распределенного хранения смарт-контракта необходима его запись в блокчейне этой платформы[11].
Примеры применения
[править | править код]
Первая большая и перспективная область развития блокчейна — финансовая. Это и криптовалюта, и смарт-контракты, и госреестры. Например, сейчас, чтобы продать дом, нужно несколько недель, а это может занимать всего 3 минуты.
- По аналогии с IPO вводится первичное блокчейн-размещение (ICO англ. initial coin offerings) — метод краудфандинга для организации стартапов. На основе опубликованного меморандума инвесторы направляют средства на счет соответствующего умного контракта, получая взамен денежные знаки, играющие роль акций данного стартапа. По состоянию на август 2017 года объём инвестиций в ICO составляет 550 млн долларов[15][16].
- Возможность создания рынка ценных бумаг без участия фондовой биржи или клирингового центра.
- Децентрализованные финансовые сервисы (DeFi) — некастодиальные протоколы для кредитования под залог цифровых активов и платформы для торговли токенами и деривативами[17].
- Децентрализованная автономная организация — механизм координации деятельности группы людей для достижения общих целей, правила работы которого могут быть заданы в форме смарт-контрактов[16].
- Децентрализованная наука (DeSci) — децентрализованная среда, позволяющая создать саморегулируемую систему получения и распространения знаний, результатов научных исследований, произведений литературы и искусства, а также распределение финансирования научных разработок и различных исследований.
- Существует идея создания децентрализованного продукта, похожего на Facebook, где только пользователи получат полный контроль над своими личными страницами, что даст им возможность полностью самостоятельно получать доходы от рекламы.
- Автоматизация предоставления банковских услуг: финансирование цепочек поставок, ипотечное кредитование, кредитование малого бизнеса[16][18].
- Оптимизация страховых бизнес-процессов (в части ведения страхового учёта и документооборота), а также процессов обработки страховых претензий и выплат компенсаций в типовых страховых случаях[16].
- Платформы для голосований без необходимости в отдельном органе для подсчёта голосов; проведение опросов без участия социологического центра.
- Возможность надёжного оформления договоров без привлечения нотариусов или регистрации в государственных реестрах.
Перспективы
[править | править код]Умные контракты могут выполняться автоматически. Они основаны на криптографии и способны обеспечивать большую безопасность, чем традиционные контракты, основанные на праве, и снизить прочие трансакционные издержки, связанные с заключением договоров и возможных судебных издержек. Потенциальные сферы применения: здравоохранение, кредитование, избирательная система, медиа, интернет вещей, аренда, поставки, клиринг и т. д.
По мнению британского журнала The Economist, умные контракты имеют перспективу стать наиболее важным приложением технологии блокчейн[15].
Применение инструментов смарт-контракта даёт импульс к появлению новых бизнес-моделей, что оказывает влияние на повышение конкуренции и развитие новых сервисов на финансовом рынке[16].
Юридическую значимость смарт-контракты могут получить при соответствии законам государства. Для этого нужно, чтобы смарт-контракты содержали условия и ограничения, установленные законодательством государства[19].
Белоруссия стала первой страной в мире, законодательно закрепившей смарт-контракты 21 декабря 2017 года согласно Декрету о развитии цифровой экономики[1][20]. Разработчиком правовой концепции смарт-контракта выступил белорусский юрист Денис Алейников[21][22]. В стране планируется разрешить банкам заключать смарт-контракты[23][24].
Недостатки
[править | править код]Наблюдатели выражают опасение, что распространение автоматизированных технологий поддержания контрактов может привести к ослаблению существующих социальных институтов, которые человечество создавало на протяжении многих поколений. Кроме того, такие технологии могут привести к исчезновению большого количества административных рабочих мест, также как роботизация привела к исчезновению рабочих мест в промышленности[15]. Это относится, в частности, к нотариусам, банковским служащим, а также к клеркам, занимающимся регистрацией сделок с недвижимым имуществом[25].
Смарт-контракт не обладает функциональной гибкостью. При использовании традиционных механизмов заключения соглашения всегда есть возможность договориться или изменить его условия, но при использовании смарт-контрактов реализовать такие изменения в ходе его исполнения проблематично. Отсутствие в мировой законодательной практике официально закрепленного статуса смарт-контракта может затруднить решение спорных вопросов, возникающих при нарушении условий его исполнения[16].
Процесс создания смарт-контракта является сложным, и чем больше условий и аспектов, которые должен отслеживать контракт (состояние товара в процессе транспортировки, таможенные действия и иное), тем сложнее их описать и учесть на момент заключения подобного договора[16].
Безопасность
[править | править код]Небрежность разработчиков может повлечь за собой злонамеренное использование смарт-контрактов[16], как показала история с утечкой свыше трех миллионов монет Ethereum из проекта The DAO в 2016 году[26].
В 2017 году профессор Швейцарской высшей технической школы Цюриха Мартин Вечев и бывшие докторанты Губерт Рицдорф и Петр Цанков учредили ChainSecurity. Основная цель компании — сделать технологии блокчейн более безопасными. В этих целях она разрабатывает и использует программы автоматизированного сканирования для аудита смарт-контрактов. Создатели смарт-контрактов могут обратиться в ChainSecurity с просьбой провести аудит выдать сертификат безопасности контрактов[27]. Аналогичный аудит смарт-контрактов проводит компания OpenZeppelin, которая является официальным партнёром Ethereum Foundation[28].
В 2023 году появилось сообщение об успешном аудите смарт-контрактов с помощью ChatGPT — чат-бота на базе искусственного интеллекта[29].
Примечания
[править | править код]- ↑ 1 2 Беларусь первой в мире законодательно закрепила smart-контракт . www.belta.by (22 декабря 2017). Дата обращения: 15 марта 2023. Архивировано 23 октября 2021 года.
- ↑ Smart Contracts . www.fon.hum.uva.nl. Дата обращения: 15 марта 2023. Архивировано 20 ноября 2022 года.
- ↑ Nick Szabo -- Smart Contracts: Building Blocks for Digital Markets . www.fon.hum.uva.nl. Дата обращения: 15 марта 2023. Архивировано 30 апреля 2017 года.
- ↑ Smart Contracts: Formalizing and Securing Relationships on Public Networks . ojphi.org (1 сентября 1997). Дата обращения: 7 июня 2022. Архивировано 17 апреля 2019 года.
- ↑ Источник . Дата обращения: 29 марта 2016. Архивировано 8 декабря 2017 года.
- ↑ Smart contracts secured by Bitcoin | Rootstock (брит. англ.). rootstock.io. Дата обращения: 15 марта 2023. Архивировано 11 марта 2023 года.
- ↑ Ольга Любимова. Создатель Ethereum Виталик Бутерин: «Блокчейн поможет искоренить коррупцию» . Inc. Russia. Дата обращения: 15 марта 2023. Архивировано 15 марта 2023 года.
- ↑ Ресурсы для разработчиков Ethereum . ethereum.org. Дата обращения: 15 марта 2023. Архивировано 6 января 2014 года.
- ↑ Chris Dannen. Introducing Ethereum and Solidity: Foundations of Cryptocurrency and Blockchain Programming for Beginners. — Apress, 2017-03-16. — 197 с. — ISBN 978-1-4842-2535-6.
- ↑ Verification of Ethereum Smart Contracts — Programming Methodology Group | ETH Zurich . Дата обращения: 22 марта 2023. Архивировано 22 марта 2023 года.
- ↑ 1 2 Andrew Tar. Smart Contracts, Explained (англ.). Cointelegraph (31 октября 2017). Дата обращения: 15 марта 2023. Архивировано 21 января 2018 года.
- ↑ Блокчейн-оракулы: как они устроены и зачем нужны? Дата обращения: 3 июля 2022. Архивировано 5 апреля 2023 года.
- ↑ ❰ Смарт-контракты: как использовать и насколько надежны для сделок ᐈ Сообщество Сryptonet . web.archive.org (17 мая 2020). Дата обращения: 15 марта 2023. Архивировано из оригинала 17 мая 2020 года.
- ↑ Виталик Бутерин: «Путин знает, что такое блокчейн — это и есть хайп» . Дата обращения: 20 октября 2017. Архивировано 1 октября 2017 года.
- ↑ 1 2 3 Disrupting the trust business (англ.). worldif.economist.com (6 июля 2017). Дата обращения: 15 марта 2023. Архивировано 15 марта 2023 года.
- ↑ 1 2 3 4 5 6 7 8 Аналитический обзор по теме «Смарт-контракты» . Центральный банк Российской Федерации (октябрь 2018). Дата обращения: 14 августа 2021. Архивировано 20 сентября 2021 года.
- ↑ Бум криптокредитования и DeFi — очередной пузырь или новый импульс для биткоин-индустрии? (англ.). ForkLog (25 ноября 2019). Дата обращения: 15 марта 2023. Архивировано 15 марта 2023 года.
- ↑ Visa Crypto Thought Leadership – Auto Payments (англ.). usa.visa.com. Дата обращения: 15 марта 2023. Архивировано 22 марта 2023 года.
- ↑ Из блокчейна слов не выкинешь: как он изменит Украину и почему опыт других стран нам уже не подходит (укр.). businessviews.com.ua. Дата обращения: 9 апреля 2018. Архивировано 10 апреля 2018 года.
- ↑ В Беларуси полностью урегулировали крипту. Что, кому и как теперь можно в 8 пунктах. + Список всех документов . dev.by. Дата обращения: 6 февраля 2019. Архивировано 25 апреля 2019 года.
- ↑ Денис Алейников: Беларусь может легализовать смарт-контракт первой в мире . Office Life (12 ноября 2017). Дата обращения: 6 февраля 2019. Архивировано из оригинала 7 февраля 2019 года.
- ↑ В Беларуси введен уникальный правовой режим для участников криктоэкономики . Deloitte CIS (27 декабря 2017). Дата обращения: 6 февраля 2019. Архивировано 7 февраля 2019 года.
- ↑ В Беларуси банкам разрешат заключать смарт-контракты | naviny.by
- ↑ Юристы видят проблемы с внедрением смарт-контрактов. Разработчик: "С мнением Беларуси везде считаются" . TUT.BY (16 ноября 2018). Дата обращения: 6 февраля 2019. Архивировано из оригинала 7 февраля 2019 года.
- ↑ Профессионал года – создатель криптовалюты Ethereum Виталик Бутерин . Ведомости. Дата обращения: 15 марта 2023. Архивировано 29 декабря 2017 года.
- ↑ Уроки DAO: куда приводят мечты | ForkLog . forklog.com. Дата обращения: 9 апреля 2018. Архивировано 10 апреля 2018 года.
- ↑ Security flaws uncovered in blockchain platform (англ.). ethz.ch. Дата обращения: 15 марта 2023. Архивировано 18 февраля 2023 года.
- ↑ OpenZeppelin Security. EIP-4337 - Ethereum Account Abstraction Audit (амер. англ.). OpenZeppelin blog (19 апреля 2022). Дата обращения: 15 марта 2023. Архивировано 11 марта 2023 года.
- ↑ GPT-4 справился с аудитом смарт-контракта на блокчейне Ethereum . Дата обращения: 23 июня 2023. Архивировано 23 июня 2023 года.
Литература
[править | править код]- Акст Р. Что такое Смарт-контракт. или Ethereum за час. — Ridero, 2017. — С. 19. — ISBN 978-5-4485-2907-8.
- Dannen C. Introducing Ethereum and Solidity. — Brooklyn, New York, USA: Apress, 2017. — 197 с. — ISBN 978-1-4842-2535-6.
- Iyer K., Dannen C. Building Games with Ethereum Smart Contracts. Intermediate Projects for Solidity Developers. — Brooklyn, New York, USA: Apress, 2018. — 281 с. — ISBN 978-1-4842-3492-1.
- Бурков А. Ethereum: работа с сетью, смарт-контракты и распределенные приложения. — ЛитРес, 2020. — С. 542. — ISBN 978-5-0428-8384-2.
- Фролов А. Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство. — ЛитРес, 2022. — ISBN 978-5-0419-2925-1.