Декомпиляция смарт-контрактов: схема, форма и управление
Термин «смарт-контракт» (smart contract), также известный как «умный контракт» или «умный договор», был впервые введён в обиход американским кибернетиком, криптографом и юристом Ником Жабо (Nick Szabo) в статье 1994 года “Smart Contracts”[2]. Он определил, что умный контракт представляет собой перечень компьютерных операций, при совершении которых выполняются условия сделки (computerized transaction protocol that executes the terms of a contract). Там же он указал, что общей задачей создания смарт-контракта является удовлетворение типичных договорных условий (об оплате, обеспечении исполнения сделки и т.д.) для того, чтобы свести к минимуму возможность нарушения договорных условий, уменьшить зависимость от воли контрагентов. Связанные с этим экономические цели включают снижение убытков ex delicto, трансакционных издержек, касающихся заключения и исполнения договоров. Декомпилировав смарт-контракт, можно выделить субъектов (участников-сторон договора и оператора), объекты (желанные деяния обязанного субъекта) и предмет (технические средства для заключения и исполнения умного договора).
Автор считает, что смарт-контракт представляет собой сделку, срок исполнения которой или совершения определённых деяний в рамках данной сделки определяется только событием, которое должно неизбежно наступить, при этом само такое исполнение не может зависеть от поведения обязанной стороны. То есть в смарт-контракте определение сроков и само совершение какого-либо деяния зависит только от совершения значимого для исполнения смарт-контракта деяния (например, момент поставки сам по себе определяет момент оплаты). Естественно, что предметом многих договоров является совершение контрагентом определённых действий (услуги, выполнение работы), но допустимо применение элементов смарт-контракта, например, в целях снижения стоимости верификации состояния (state verification[3]). Таким образом, текст умного контракта можно разделить на две составляющие:
- набор юридически значимых инструкций, описывающий порядок реализации условий договора;
- программу для ЭВМ, способную исполнить указанные инструкции.
Смарт-контракт, в отличие от обычного договора, содержащего значимые для сторон условия и ответственность за их неисполнение, предполагает синтез текста договора и практики его выполнения, представляя собой алгоритм взаимодействия сторон. По сути каждая из составляющих умного контракта является алгоритмом, но если первая составлена на высокоуровневом «юридическом» языке, предназначенном для закрепления условий соглашения между сторонами de jure, то вторая является текстом, записанным в понятном для электронных устройств символьном выражении языка низкого уровня[4], для реализации договора de facto. Таким образом, программа для ЭВМ, которая содержит в себе последовательность достижения существенных условий договора, является неотъемлемой частью этого договора, или он находит в ней своё выражение. У этой посылки есть важное следствие, которое заключается в том, что смарт-контракт, выраженный в виде программы для ЭВМ, в отличие от текста договора, является объектом авторского права, но это тема для отдельной статьи.
Классическое представление С. А. Голунского и М. С. Строговича[5] о структуре юридической нормы предполагает её трёхчленную структуру: гипотеза, диспозиция, санкция, которая предполагает следующую логическую структуру: «При определённых обстоятельствах <гипотеза> обязанный субъект совершит определённые деяния <диспозиция>, из-за чего наступят определённые последствия <санкция>». Блок-схема данного модельного алгоритма, выполненная в стандарте BPMN[6], выглядит следующим образом:
Для примера используем договор купли-продажи. Пункт 1 статьи 454 Гражданского кодекса Российской Федерации, сходный с общими положениями большинства договоров купли-продажи, звучит следующим образом: «По договору купли-продажи одна сторона (продавец) обязуется передать вещь (товар) в собственность другой стороне (покупателю), а покупатель обязуется принять этот товар и уплатить за него определенную денежную сумму (цену)», может быть изложен в виде алгоритма следующим образом:
Выполнение указанного выше алгоритма зависит от воли сторон, а для того, чтобы этот договор получил приставку смарт, диспозитивная воля сторон по исполнению встречно обеспеченных обязательств должна быть ограничена оператором смарт-контракта. В классическом понимании умного договора функцию такого оператора выполняют участники сети blockchain[7], которая представляет собой распределённую сеть ЭВМ, предназначенную для хранения, передачи, защиты и обработки данных и команд. Для достижения поставленных целей и защиты информации структурирование умного договора должно осуществляться обладающим полным объёмом компетенций в данной области лицом – центральным оператором. В том же договоре купли-продажи примитивно[8] роль оператора смарт-контракта может быть представлена следующим образом:
Автоматизация работы оператора умного договора предполагается.
Функциями оператора смарт-контракта являются:
- предоставление инструментария для заключения умного договора;
- верификация состояний сторон договора;
- направление обязательных распоряжений;
- оказание участникам умного договора дополнительных услуг.
После структурирования умного договора вторая и третья функция оператора смарт-контракта может быть передана заказчику. Также центральный оператор может осуществлять функции арбитража[9] системы в случае нарушения кем-либо из её участников заданных алгоритмов взаимодействия в ней, что предполагает, что оператор при оказании услуг сторонам сам действует по чёткому алгоритму. Осуществление функций оператора связано со сбором и обработкой данных, необходимых для реализации умного контракта.
Предоставление инструментария для заключения умного договора означает, что оператор обеспечивает участникам оформление существенных условий договора в том формате, который понимает вычислительная система оператора. Сам смарт-контракт заключается в соответствии со статьёй 434 Гражданского кодекса Российской Федерации в письменной форме путём обмена электронными документами – информацией в электронной форме между его участниками и (или) оператором. Предполагается два способа составления смарт-контракта: (1) при помощи оператора, (2) самостоятельно, посредством средств, предоставляемых оператором. Инструментарий также включает в себя средства защиты участников смарт-контракта и их информации.
Верификация состояний означает, что оператор самостоятельно запрашивает и получает информацию и данные о сторонах и об обстоятельствах исполнения договора. Источниками информации и данных могут выступать как сами стороны, так и сведения, полученные из объективных источников, в том числе из сигналов технических устройств[10].
Направление обязательных распоряжений означает, что оператор смарт-договора реагирует на возникновение или изменение состояний участников договора и обязывает участников совершать определённые действия. Для того, чтобы исполнение не зависело от сторон, предполагается, что исполнение распоряжений происходит преимущественно путём направления сигнала техническим средствам сторон[11], посредством использования которых выполняются их обязательства, предусмотренные умным договором. Там, где это в настоящий момент невозможно, оператор передаёт распоряжение непосредственно участнику.
При взаимодействии с участниками смарт-контрактов центральный оператор аккумулирует у себя большой объём информации. Используя эти данные, он может оказывать финансовые (например, услуги по определению и зачёту взаимных встречных требований), посреднические (например, заключая сделки в интересах участника) и информационные услуги, связанные с предоставлением деперсонифицированных сведений, возникших в результате анализа и обобщения данных, полученных при исполнении умного договора.
В связи с вышеизложенным центральный оператор смарт-контракта должен обладать компетенциями как в области юриспруденции, так и в области администрирования технико-программной среды умного договора. Первая компетенция необходима для того, чтобы смарт-контракт имел юридически обязывающее значение для его участников при действующем уровне развития права (так как умный договор является сделкой, заключаемой в простой письменной форме) и третьих лиц, вторая – для его фактической реализации. Администрирование технико-программной среды умного договора подразумевает под собой создание и настройку специальных программно-технических комплексов оператора и участников смарт-контракта. Функции оператора смарт-контракта и реализация его компетенций должны осуществляться в высокоунифицированной (для обмена данными между различными операторами) среде, а взаимодействие с участниками посредством специального интерфейса.
[1] В данном контексте термин «декомпиляция» обозначает разбор «смарт-контракта» на составляющие.
[2] Smart Contracts [Электронный ресурс] / Nick Szabo. – Режим доступа: https://web.archive.org/web/2001 1102030833/http://szabo.best.vwh.net/smart.contracts.html (Дата обращения: 27.10.2016)
[3] Townsend R. M. Optimal Contracts and Competitive Markets with Costly State Verification / Townsend R. M. // Ithaca, NY USA: Journal of Economic Theory. – 1979. – № 21 (2). – P. 265-293.
[4] См. Бояркин, В.Н. Понятие «программа для ЭВМ» в современном российском праве / В.Н. Бояркин // Новые подходы в гуманитарных исследованиях: право, философия, история, лингвистика : межвуз. сб. науч. тр.- Вып. VIII / ред. кол.: Ю.К. Воробьев [и др.]. – Саранск: Ковылк.тип., 2008 – С. 46-48.
[5] Голунский С. А. Теория государства и права / С. А. Голунский, М. С. Строгович. – М.: Юридическое издательство НКЮ СССР, 1940. – С. 251-253.
[6] Business Process Model and Notation (BPMN) version 2.0.2 with change bars [Электронный ресурс] / Object Management Group. – Режим доступа: http://www.omg.org/spec/BPMN/2.0.2/PDF/ (Дата обращения: 15.11.2016)
[7] Bitcoin: A Peer-to-Peer Electronic Cash System [Электронный ресурс] / Satoshi Nakamoto. – Режим доступа: https://bitcoin.org/bitcoin.pdf (Дата обращения: 16.11.2016)
[8] В данной блок-схеме использованы следующие допущения: (1) стороны передают оператору смарт-контракта сведения об отправке и приёмке товара (верификация состояния), (2) распоряжение оператора покупателю на оплату поставленного товара обязательно для последнего, к тому же (3) стороны (продавец и покупатель) пришли к выводу, что участие оператора в столь просто структурированной сделке для них экономически целесообразно.
[9] См. Арбитраж [Электронный ресурс] / Web Money Transfer. – Режим доступа: http://arbitrage.webmoney.ru/asp/default.asp (Дата обращения: 20.11.2016)
[10] Первая международная сделка с блокчейн, смарт-контрактом и IoT [Электронный ресурс] / Роман Окашин. – Режим доступа: https://hightech.fm/2016/10/25/another_blockchain_deal (Дата обращения: 18.11.2016)
[11] При автоматизации связки «сигнал (верификация) – ответ (распоряжение)» получается, что смарт-контракт исполняется посредством взаимодействия в интернете вещей (Internet of Things, IoT).