Оглавление
- Введение
- Принцип работы смарт контракта и для он вообще нужен?
- 1.1. Как работают смарт-контракты
- Ethereum: платформа для смарт-контрактов
- Варианты использования (область применения) Smart Contract
- Моя работа имеет смысл
- Делаем ещё проще: lowcode-разработка
- «Сквозные» технологии
- Что такое смарт-контракты?
- Сети Blockchain с использованием смарт-контрактов
- 4.3. Что такое «финальное» соглашение сторон?
- 4.5. Изменение и разрыв смарт-контрактов
- 4.8. Распределение рисков при атаках и сбоях
- Преимущества Smart Contract
Введение
Наша компания занимается аудитом безопасности смарт-контрактов, и вопрос использования автоматических средств стоит очень остро. Насколько сильно они могут помочь в определении подозрительных мест, какие стоит их использовать, что они умеют делать и какова специфика работы в этой области? Эти и сопутствующие вопросы — тема данной статьи. А материалом будут попытки поработать с реальными контрактами с помощью наиболее интересных представителей и рецепты по запуску этого крайне разношерстного и дико интересного софта. Сначала хотелось сделать одну статью, но после некоторого времени объем информации стал слишком большим, поэтому было решено сделать цикл статей, по одной на каждый автоанализатор. Список, из которого мы будем брать инструменты представлен, например, , но, если за время написания попадутся другие интересные инструменты, я с удовольствием их опишу и протестирую.
Надо сказать, что задачи по аудиту оказались крайне интересными, т.к. до сих пор разработчики не так много внимания уделяли экономическим аспектам алгоритмов, и внутренней оптимизации. А аудит смарт-контрактов добавил несколько интересных векторов атак, которые надо учитывать при поиске ошибок. Также, как оказалось, появилось достаточно много средств для автоматического тестирования: статические анализаторы, анализаторы байт-кода, фаззеры, парсеры и много другого хорошего ПО.
Цель статьи: способствовать распространению безопасного кода контрактов и позволить разработчикам быстро и просто избавляться от глупых багов, которые часто являются наиболее обидными. Когда сам протокол является вполне надежным, и решает серьезную проблему, наличие глупой ошибки, забытой на этапе тестирования может серьезно испортить проекту жизнь. Поэтому давайте учиться пользоваться, как минимум, инструментами, которые позволяют “малой кровью” избавиться от well-known проблем.
Забегая вперед, должен сказать, что наиболее часто встречающиеся critical баги, которые мы встречали в аудитах — это всё таки логические проблемы имплементации, а не типовые уязвимости, такие как access rights, integer overflow, reentrancy. Большой, полный аудит решений невозможен без опытных разработчиков, которые способны проаудировать высокоуровневую логику контрактов, их lifecycle, аспекты реальной эксплуатации и соответствие заданию, а не только типовые паттерны атак. Именно высокоуровневая логика часто становится источником critical багов.
Зато предупреждения, типовые дыры и ошибки оставленные по невнимательности, которые нельзя пропускать — удел автоматических анализаторов, с этими задачами они должны справляться лучше людей. Именно этот тезис и будет подвергнут проверке.
Принцип работы смарт контракта и для он вообще нужен?
Что такое смарт контракт
На рынке криптовалют понятие «смарт-контракт» означает программное обеспечение или приложение, работающий на базе блокчейна. Обычно это выглядит в виде цифрового соглашения, подкрепленного определенным сводом правил, которые прописаны на уровне компьютерного кода и выполняются (реплицируются) узлами сети.
Историческая справка
Впервые принцип смарт-контрактов был прописан еще в 1996 году. Сделал его программист и криптограф Нико Сабо. На тот момент еще даже не думали о появлении технологии blockhain. Однако Сабо удалось прописать принцип, опередив технологии на десятилетия, в 90-е годы еще не было возможности реализовать это на практике.
Сайт Викиденьги рекомендует присоединится к команде криптоинвесторов CosaNostra, парни расскажут как вылезти из финансовой задницы и научиться получать пассивный доход. Никаких заманух, только качественная информация от практикующих инвесторов (от недвижимости до криптовалюты).
Только в 2008 году появляется первая криптовалюта под названием bitcoin. Она была создана на базе blockhain, но в ней не был реализован принцип децентрализованной книги. Спустя примерно 5 лет появляется платформа Ethereum, которая полностью воплощает принцип смарт-контрактов на практике. На сегодняшний день существует множество платформ, работающих по этому принципу.
Принцип работы
Смарт-контракты, которые еще называют интеллектуальными, являются компьютерным протоколом (кодом). В коде прописаны все условия сделки, которая заключается между сторонами на blockhain. Выглядит это примерно так: «если Сторона 1 передает деньги, то Сторона 2 – получает машину». В обмене могут участвовать любые активы, от денег до недвижимости.
После выполнения заданных условий, интеллектуальный контракт выполняет транзакцию, с полной гарантией соблюдения достигнутого соглашения. В сделке может участвовать не только 2 стороны, а более, включая юридических и физических лиц.
Проверьте свои знания, выбрав один из вариантов ответов
На каком алгоритме работает Эфириум?
DaggerHashimoto
Scrypt
Ethash
Эфириум(Ethereum) использует алгоритм хеширования Ethash, который отличается от хэша биткоина.
Подробнее об этом, можно узнать в статье:Алгоритм майнинга эфириума
Вся информация о сделке хранится в децентрализованной книге. В ней нельзя внести самостоятельно данные, следовательно, фальсифицировать или удалить записи. Договора проводятся с полной анонимностью.
Главная особенность смарт-контрактов, что они могут работать исключительно с активами, которые находятся в цифровой экосистеме. Для получения данных об активах из внешнего мира создано множество платформ и приложений.
Основные преимущества
Основной плюс смарт-контрактов – это неизменный процесс. Любые, даже самые минимальные изменения может внести только разработчик до создания самого контракта. Следовательно, такие сделки являются самыми защищенными от взлома.
Помимо этого выделяют следующие преимущества:
- смарт-контракты реализованы как автоматизированный процесс, не требующий личного участия сторон и третьих лиц, поэтому все проводится максимально быстро;
- риск появления ошибок минимальный, так как для реализации сделки не требуется вмешательство третьих лиц;
- все сделки проходят с минимальной комиссией, так как не требуются средства на операционные расходы, нет посредников.
Смарт-контракты на сегодняшний день признаны самыми надежными, так как любая сделка в виртуальной среде защищена интеллектуальным договором.
Немного о минусах
Основной недостаток смарт-контрактов – отсутствие регулирования в международной правовой среде. Второй минус, который одновременно является плюсом – неизменность сделки. Если одна из сторон найдет более выгодное предложение, то отказаться от уже имеющейся сделки у нее не будет возможности. Но, есть все шансы, что в скором будущем будет реализована разработка, позволяющая заключать дополнительные соглашения на платформе blockhain.
Заключение
Большинство разработчиков уверены, что в будущем смарт-контракты смогут полностью заменить процесс проведения коммерческих и других сделок. А это в свою очередь избавит мир от бюрократической волокиты. Потенциал у интеллектуальных контрактов большой, но до широкомасштабного внедрения в реальную жизнь еще далеко.
Проверьте свои знания, выбрав один из вариантов ответов
В какой стране % людей, которые владели когда-нибудь криптовалютой выше всего?
США
Турция
Китай
Россия
Больше всего респондентов (людей), которые хоть когда-нибудь использовали криптовалюту является Турция! Этот показатель равен 20%
Подробнее об этом, можно узнать в статье:За счет чего криптовалюта стала такой популярной
1.1. Как работают смарт-контракты
Термин «смарт-контракт» описывает компьютерный код, который автоматически исполняет всё соглашение или его части. Код хранится на платформе, построенной на основе блокчейна. Как мы увидим ниже, код бывает единственным объявлением о соглашении между сторонами либо дополняет традиционный текстовый контракт и исполняет лишь определённые положения, такие как перевод денег стороной А стороне Б. Сам код реплицируется на несколько узлов блокчейна, а значит, пользуется преимуществами блокчейна: это безопасность, сохранность и неизменяемость. Реплицирование также означает, что по мере добавления в блокчейн каждого нового блока код, по сути, может исполниться. Если стороны инициировали транзакцию и тем самым показали, что условия соблюдены, это станет триггером, и код выполнит какие-то действия. Если же транзакция не инициирована, то и код ничего не делает. Большинство смарт-контрактов написаны на одном из языков программирования, созданных именно для этих целей (например, Solidity).
Необходимо, чтобы входные параметры и этапы выполнения смарт-контракта были конкретными и объективными. Иными словами, «если произойдёт Х — тогда сделать Y». Следовательно, смарт-контракты выполняют простейшие задачи, например автоматически переводят криптовалюту с кошелька одной стороны на кошелёк другой, если соблюдены нужные условия. По мере распространения блокчейна и увеличения средств, вкладываемых в токены или отправляемых в рамках блокчейна (on-chain), смарт-контракты будут усложняться и получать возможность обрабатывать сложные транзакции. Многие разработчики уже создают более сложные смарт-контракты, объединяя в них несколько этапов транзакций. Тем не менее нам придётся ждать ещё много лет, пока код сможет определять субъективные юридические критерии, такие как «соответствуют ли действия стороны критериям коммерчески оправданных усилий (commercially reasonable efforts)» или «стоит ли выполнить пункт о возмещении и выплатить компенсацию».
Прежде чем скомпилированный смарт-контракт будет исполнен, требуется оплатить транзакционную комиссию за добавление контракта в блокчейн. Например, в блокчейне Ethereum смарт-контракты исполняются в виртуальной машине Ethereum Virtual Machine (EVM), а комиссия в криптовалюте ether (эфир) называется газом (gas, хотя более корректный перевод — «топливо») . Чем сложнее смарт-контракт, тем больше газа нужно заплатить. То есть газ — это своеобразный шлюз, защищающий EVM от исполнения слишком сложных или многочисленных смарт-контрактов .
Пока что смарт-контракты лучше всего подходят для автоматического исполнения транзакций двух типов:
- оплата, инициируемая определёнными событиями,
- наложение финансовых санкций при невыполнении объективных условий.
Когда развёрнутый контракт начал действовать, для выполнения этих двух типов транзакций не требуется участие людей, в том числе доверенных держателей условного депонирования или представителей юридической системы. Это позволяет снизить накладные расходы на исполнение и правоприменение при заключении контрактов.
Например, смарт-контракты могут избавить вас от так называемых кассовых разрывов (procure-to-pay gap). Как только товар прибыл на склад и зарегистрирован, смарт-контракт способен мгновенно отправить запросы на подтверждения. Получив их, он сразу же переведёт средства от покупателя продавцу. При этом продавцы получат оплату быстрее, им не придётся напоминать клиентам о необходимости заплатить, а покупатели сэкономят на банковских операциях. Всё это может снизить требования к оборотному капиталу и упростить финансовые операции для обеих сторон. Что касается обязательности исполнения, то смарт-контракт можно запрограммировать таким образом, чтобы он закрывал доступ к подключённым через интернет активам (например, к контенту), пока не получена оплата.
Ethereum: платформа для смарт-контрактов
Какую технологию нужно использовать, чтобы создать умный-контракт?
Виталик Бутерин
Большинство смарт-контрактов написаны и работают на платформе Ethereum. Ethereum — это блокчейн система предложенная в 2013 году русско-канадским программистом Виталиком Бутериным. В 2015 году она была полностью реализована и запущена.
Каждый контракт выполняется на Turing-complete Ethereum Virtual Machine (EVM). Или другими словами Виртуальная Машина Тьюринга. Эта виртуальная машина является частью общего алгоритма Ethereum и способна выполнять определенный спектр задач. В частности, она заточена под обработку смарт-контрактов. Такая машина Тьюринга принимает решения на основе каких-либо переменных. Если выполняется какое-либо условие, то она выполняет заданное действие.
Таким образом эта виртуальная машина наилучшим образом подходит для обслуживания умных контрактов.
Именно функционал контрактов глобально отличает Ethereum от Биткоина, который сделан только для отправки средств от одного пользователя к другому. Ethereum позволяет реализовать более сложные задачи.
После Ethereum на рынке появилось множество платформ, которые также стали поддерживать умные контракты. Среди наиболее известных можно выделить такие проекты как EOS, Waves и NEO.
Варианты использования (область применения) Smart Contract
Умные контракты набирают популярность и уже были реализованы в различных проектах блокчейна. Вот лишь несколько многообещающих примеров их реализации в различных отраслях:
Банковское дело
Банковское дело может быть основной отраслью, где умные контракты являются наиболее значимой альтернативой традиционной модели транзакций. Они делают платежи, ссуды, и почти все другие финансовые операции буквально автоматизированы.
KYC-Chain реализует интеллектуальные контракты для частных лиц, предприятий и финансовых учреждений. В основе лежат механизмы, позволяющие клиентам соблюдать нормативные правила, такие как автоматические смарт-проверки, а также обмениваться соответствующими документами и получать их в цифровой форме, заверенные нотариусами и учреждениями.
Здравоохранение
Умные контракты также могут улучшить здравоохранение. Они могут упростить процессы для страховых испытаний, расширить доступ к межведомственным данным и повысить уверенность в конфиденциальности пациентов. Аутентификация, авторизация и подтверждение личности — далеко не все их возможности, выполняемые в сетях блокчейна.
Примером умных контрактов в сфере здравоохранения является Dentacoin. Dentacoin стремится объединить пациентов и стоматологов в сообществах, чтобы улучшить стоматологическую помощь и сделать ее доступной по всему миру.
Цепочка поставок
Еще одна область, где умные контракты могут обеспечить видимость в реальном времени — это цепочки поставок. Они обеспечивают детальное отслеживание запасов, способствуют финансированию цепочки поставок, а также снижают риск краж и мошенничества.
Умные контракты могут эффективно использоваться независимо от типа рынка или проданных товаров. Например, Name Bazaar внедряет технологию смарт-контрактов на одноранговом рынке, где пользователи могут обмениваться криптовалютными активами на блокчейне в форме доменов.
Правовые вопросы
Традиционная модель решения юридических вопросов и заверения документов также уступает место умным контрактам. Они устраняют необходимость в нотариальном заверении, предлагая не только автоматизированное и беспристрастное, но и экономически эффективное решение.
Nottar.io иллюстрирует концепцию нотариального заверения документов с использованием блокчейна Ethereum.
Недвижимость
Вы уже читали о самой простой концепции того, как умный контракт может работать в сфере недвижимости, в разделе “Как работают умные контракты”. Конечно, реальные проекты являются более сложными и всеобъемлющими и должны охватывать более широкий круг вопросов и возможностей.
Например, FOAM — это фондовый рынок недвижимости, в котором используются технологии, позволяющие пользователям совершать сделки с недвижимостью, получать финансирование, а также управлять арендой.
Правительство
Возможно, было бы наиболее интересно исследовать потенциальное влияние технологий децентрализации на монопольные сферы, особенно государственные системы.
Австралийская компания Horizon State работает над тем, чтобы обеспечить голосование и другие инструменты, чтобы помочь демократическому процессу. В частности, Horizon State намерен предложить экосистему голосования на основе цепочки блоков, которая поддерживает безопасные и экономически эффективные операции по проведению кампаний для ряда типов выборов и параметров голосования. Основной целью данного решения является обеспечение прозрачного и беспристрастного голосования в странах по всему миру.
И еще один интересный факт: Белоруссия стала первой страной, законодательно закрепившей смарт-контракты и тем самым решив вопрос правового регулирования.
Интернет вещей
Есть области, где умные контракты пересекаются с другими технологиями, и Интернет вещей (IoT) является одной из них. Комбинация интеллектуальных контрактов и IoT является мощной и может обеспечить значительные преобразования в различных отраслях, прокладывая путь для новых распределенных приложений.
Проект Oaken доказывает это. Oaken предоставляет автономное аппаратное и программное обеспечение IoT в сочетании с технологией блокчейна. В совокупности эти компоненты позволяют использовать Oaken практически с любым устройством для построения сети интернета вещей и, следовательно, применять ее для различных реальных задач.
Моя работа имеет смысл
Что я даю этому миру? Да, вопрос достаточно избитый, и в нем много патетики, но в той или иной форме он посещает очень многих. Деньги перестали радовать? Представляете, и такое возможно. Когда все, что ты делаешь, кажется мелким и незначительным.
Что делать?
Одна стилист всегда рекомендовала своим клиенткам отойти от зеркала на пять шагов. Хороший совет в любой ситуации.Большое видится на расстоянии. Каждый из нас выполняет работу, которая часто является лишь пазлом в одной огромной мозаике. Отойдите на пять шагов и посмотрите, действительно ли эта мозаика будет цельной и законченной, если вашего кусочка в ней не будет? Вы увидите, что нет.
Делаем ещё проще: lowcode-разработка
Итак, у нас есть единая парадигма разработки на основе кодинга. Но что если разрабатывать программное обеспечение без него? В публичных чейнах есть такая возможность.
Есть такой стартап — Furucombo — визуальный конструктор, который даёт возможность складывать DeFi-протоколы как кубики и получать готовую DeFi-стратегию. Раньше для стратегии нужно было писать код смарт-контракта, в котором в рамках одной транзакции вызывались бы разные протоколы. Сейчас мы складываем кубики, нажимаем Run — и всё готово. Так реализуется low-code подход к разработке — с помощью drag’n’drop и графического интерфейса. По большому счету, такой подход требует лишь знаний предметной области: в случае с Furucombo это DeFi, а в корпоративном мире — это бизнес-процессы компании, знание того, что мы хотим оптимизировать и зачем применять блокчейн.
Low-code разработка становится все более и более популярной. Вот выжимка из отчета Gartner по теме:
Почти четверть пользователей, пришедших к low-code, вообще никогда не занимались программированием! И 70% из них освоили low-code менее чем за месяц. Тогда как самый простой курс программирования с нуля на питоне — это минимум полгода. Почти две трети абсолютных новичков разработали своё приложение менее чем за три месяца
Low-code позволяет быстро и просто автоматизировать типовые бизнес-процессы и снижать TTM, быстрее релизить приложение на рынке, что сегодня критически важно
В экосистеме Waves Enterprise существует партнерский продукт EasyChain, который позволяет собирать приложения на основе нашего блокчейна аналогичным low-code способом.
С помощью визуального конструктора пользователь рисует в EasyChain Studio свой бизнес-процесс, через API он публикуется и попадает в блокчейн. Дальше со смарт-контрактом можно работать через API, через Studio или через эксплорер бизнес-процессов. Для любого бизнес-процесса можно сделать собственный интерфейс пользователя — через веб- или мобильное приложение.
«Сквозные» технологии
Так называемыми сквозными технологиями являются, по словам представителя Минкомсвязи России, блокчейн, большие данные (Big Data), искусственный интеллект, виртуальная и дополненная реальность, беспроводные технологии, робототехника и сенсорика, интернет вещей (речь идет о предметах, оснащенных технологиями, позволяющими этим предметам взаимодействовать между собой – например, холодильник может быть оснащен технологиями по заказу продуктов питания с учетом доходов владельца), квантовые и новые производственные технологии. Именно такой перечень был определен ныне утратившей силу программой «Цифровая экономика», на смену которой принята действующая нацпрограмма, не содержащая при этом такого перечня. «Сквозная» цифровая технология определяется как часть технологического процесса производства товаров, оказания услуг и выполнения работ, представляющая собой совокупность процессов и методов поиска, сбора, хранения, обработки, предоставления и распространения информации, обеспечивающих в ходе хозяйственной деятельности по производству (поставке) товаров, оказанию услуг и выполнению работ:
- рост результативности, точности или иных значимых характеристик технологического процесса;
- повышение качества или иных значимых характеристик производимых (поставляемых) товаров, оказываемых услуг и выполняемых работ, в том числе за счет сокращения брака;
- снижение издержек при производстве (поставке) товаров, оказании услуг и выполнении работ (п. 2 Правил предоставления субсидий из федерального бюджета на государственную поддержку программ деятельности лидирующих исследовательских центров, реализуемых российскими организациями в целях обеспечения разработки и реализации дорожных карт развития перспективных «сквозных» цифровых технологий).
Значимым шагом на пути к развитию «сквозных» технологий в рамках законодательства стало принятие Федерального закона от 18 марта 2019 г. № 34-ФЗ «О внесении изменений в части первую, вторую и статью 1124 части третьей Гражданского кодекса Российской Федерации», который вступил в силу с 1 октября текущего года. Напомним, что указанный закон ввел в Гражданский кодекс понятие цифровых прав и ряд положений, касающихся их оборота, а также нормы о совершении юридически значимых действий с помощью электронных или иных технических средств и о «самоисполняемых» сделках – смарт-контрактах.
Цифровыми правами признаются названные в таком качестве в законе обязательственные и иные права, содержание и условия осуществления которых определяются в соответствии с правилами информационной системы, отвечающей установленным законом признакам. Осуществление, распоряжение, в том числе передача, залог, обременение другими способами или ограничение распоряжения цифровыми правами возможны только в информационной системе без обращения к третьему лицу (). Цифровые права теперь поименованы в качестве объектов гражданских прав в .
дополнили положением о том, что условиями сделки может быть предусмотрено исполнение возникающих из нее обязательств сторонами при наступлении определенных обстоятельств без направленного на исполнение обязательства отдельно выраженного дополнительного волеизъявления сторон путем применения информационных технологий, определенных условиями сделки. Речь как раз и идет о так называемых «самоисполняемых» сделках – смарт-контрактах.
Что такое смарт-контракты?
Смарт-контракт – электронный протокол, написанный с помощью компьютерного кода. Его назначение – передача информации и обеспечение исполнения условий контракта обеими сторонами. Его еще называют умный контракт.
Особенности смарт-контракта
Smart-контракты дают возможность безопасно обмениваться деньгами, акциями, собственностью и другими активами напрямую, без участия посредников.
Обычно, чтобы заключить любую сделку, необходимо обратиться к нотариусу или адвокату, оплатить документы и ждать их оформления. А в случае невыполнения условий сделки одной из сторон в реальной жизни приходится обращаться в суд. Участники таких сделок не могут полностью доверять друг другу и уповают на защиту закона.
Рассмотрим это на примере покупки мобильного телефона в Интернете. Допустим, продавец просит предоплату – потому что опасается отправлять посылку наложенным платежом и потерять деньги за доставку, если покупатель за посылкой не явится. Покупатель же опасается, что продавец окажется мошенником, присвоит предоплату и не вышлет товар, либо товар окажется некачественным. В таких ситуациях обе стороны вынужденно рискуют.
Но при заключении смарт-контракта подобного риска нет. Разработана программа, которая следит за выполнением обязательств обеих сторон, а также автоматически взымает штрафы за нарушение условий договора. «Умные контракты» обеспечивают безопасность и прозрачность сделки, не позволяют обойти статьи договора, основаны на криптографии. Это более выгодно и финансово: не нужно платить юристам или другим посредникам, делать предоплату. Выполнение условий сделки происходит автоматически с минимальными затратами на их сопровождение, без привлечения третьих лиц.
Когда и почему появился смарт-контракт
В 1994 году криптограф и специалист в области права Ник Сабо понял, что с помощью децентрализованного реестра можно заключать электронные самоисполняемые контракты. Их можно записать в виде кода. Выполнение контрактов обеспечит сеть компьютеров, которая управляется цепочкой блоков. Таким образом люди смогут переводить друг другу деньги, получать товары и услуги. Лишь в 2008 году удалось реализовать идею умных контрактов – благодаря появлению технологии блокчейн. А в 2013 году умные контракты начали широко применяться на практике после создания проекта Ethereum.
Сети Blockchain с использованием смарт-контрактов
Много было сказано об умных контрактах в отношении технологии блокчейна. Хотя существует множество их примеров, реализованных в различных сетях и проектах блокчейнов, наиболее заметными остаются Bitcoin и Ethereum.
Bitcoin
Хотя Биткойн в основном известен транзакциями криптовалюты, его протокол также можно использовать для создания умных контрактов. Он предоставляет язык программирования, который позволяет создавать нестандартные смарт-контракты, такие как учетные записи с несколькими подписями, каналы оплаты, условные депонирования и временные блокировки. В частности, существует отдельная платформа под названием RootStock, построенная на блокчейне Биткойна.
Ethereum
Эфириум — самая известная структура интеллектуальных контрактов, созданная специально для их поддержки. Эта структура, написанная на языке Solidity, представляет собой децентрализованную платформу, которая выполняет интеллектуальные контракты без какой-либо возможности простоя, цензуры, мошенничества или вмешательства третьих лиц.
База данных этого блокчейна хранит транзакции между людьми с использованием умных контрактов и их исходный код. Еще пол года назад число транзакций эфира с использованием смарт контрактов составило более 200 тысяч.
4.3. Что такое «финальное» соглашение сторон?
Анализируя традиционные текстовые контракты, суды изучают принятый сторонами финальный письменный документ, чтобы определить, соблюдают они свои обязательства или нарушают. Суды уже давно подчёркивают, что именно финальное соглашение отражает взаимное намерение сторон.
В случае с исключительно программными смарт-контрактами исполняемый код — и результат его работы — представляет собой единственное объективное свидетельство условий, согласованных сторонами. Вероятно, в подобных случаях электронная переписка между сторонами и устные обсуждения того, какие функции «должен» выполнять смарт-контракт, уступят программному коду свою роль определяющего выражения намерений сторон.
Что касается вспомогательных смарт-контрактов, то суды могут рассматривать текст и код как единое соглашение. Ситуация усложняется, когда традиционное текстовое соглашение и код не совпадают. Скажем, в примере со страхованием посевов в тексте говорится, что страховка выплачивается, если температура воздуха падает ниже 0 градусов, а в смарт-контракте выплата происходит при температуре воздуха, равной или ниже 0 градусов. Текстовое соглашение не регламентирует приоритет кода или текста при несогласованностях, и судам понадобится решать (возможно, в каждом случае индивидуально), рассматривать ли код как взаимосогласованную поправку к текстовому соглашению — или же превалировать должен текст? В некотором смысле анализ этой ситуации не должен отличаться от анализа той, когда положения основного соглашения не совпадают с тем, что отражено в приложениях или графике работ. Тот факт, что в одном случае речь идёт о конфликте между текстом и программным кодом, а в другом — между двумя текстами, не должен быть определяющим; однако суды могут решить иначе.
Одно из решений — использовать текстовый контракт, когда параметры, запускающие исполнение смарт-контракта, не только прописаны в тексте, но и включены в сам смарт-контракт. В примере с посевами условие «ниже 0 градусов» можно прописать текстом и указать в виде параметра в смарт-контракте, тем самым исключив возможность несогласованности.
4.5. Изменение и разрыв смарт-контрактов
В настоящий момент не существует простого способа изменить смарт-контракт, что создаёт сложности. Например, в случае с текстовым контрактом, если стороны взаимно согласились на новые условия сделки или если изменились законы, то стороны могут быстро согласовать изменения в контракте или скорректировать своё поведение. Смарт-контракты не обеспечивают такой же гибкости. Модифицировать неизменяемый смарт-контракт гораздо сложнее, чем код обычного ПО, которое не построено на основе блокчейна. В результате изменение смарт-контракта может привести к гораздо более высоким операционным издержкам, чем переписывание текстового контракта, и увеличит вероятность, что желаемые изменения неточно отразятся в коде.
Аналогичные трудности связаны и с разрывом смарт-контракта. Допустим, одна из сторон обнаружила ошибку в соглашении, дающую другой стороне больше прав, чем они договаривались; или одна из сторон пришла к выводу, что выполнять обязательства куда дороже, чем предполагалось. В случае с текстовым контрактом сторона может прибегнуть к так называемому эффективному нарушению (или к угрозе им), т. е. сознательно нарушить соглашение и выплатить ущерб, если это дешевле выполнения контрактных обязательств. Более того, перестав соблюдать условия контракта или угрожая это сделать, можно усадить другую сторону за стол переговоров и обсудить мирное урегулирование спора. Смарт-контракты вообще не предполагают таких вариантов.
Сейчас разрабатываются проекты смарт-контрактов, которые проще изменять и можно в любой момент нарушить. В каком-то смысле это неэтично по отношению к неизменяемой и автоматизированной природе смарт-контрактов, однако им пойдут на пользу нововведения, отражающие бизнес-реалии, то, как действуют участники контракта.
4.8. Распределение рисков при атаках и сбоях
Смарт-контракты добавляют дополнительные риски, которых нет в большинстве зафиксированных в тексте соглашений: взлом контракта, непреднамеренные программные ошибки в коде или протоколе. Если учесть относительную безопасность блокчейна, эти концепции тесно взаимосвязаны. Большинство «взломов», ассоциируемых с блокчейном, — это на самом деле эксплойты непреднамеренных ошибок в коде. Как и в случае со многими багами, эти ошибки не вопиющи, но после использования становятся очевидными. Например, в 2017-м атакующий вывел из нескольких кошельков с мультиподписями эфир на 31 млн долларов . Кошельки с мультиподписями безопаснее, поскольку для доступа требуют более одного приватного ключа. Однако злоумышленник перехватил поток данных в коде компании Parity, переинициализировал смарт-контракт и сделал себя единственным владельцем кошельков с мультиподписями. Поэтому сторонам, заключившим смарт-контракт, нужно понимать, как риск и ответственность за непреднамеренные ошибки в коде и их использование злоумышленниками распределяются между сторонами и, возможно, третьей стороной — разработчиками или страховщиками смарт-контракта.
Преимущества Smart Contract
Явные алгоритмы программирования в свойствах ядра и блокчейна, таких как децентрализация, прозрачность, защита от мошенничества и другие, делают умные контракты надежным средством для установления деловых отношений и выполнения транзакций.
В качестве альтернативы традиционным контрактам с центральной бизнес-моделью, вот преимущества, которые интеллектуальные контракты предлагают предприятиям:
- Прямые отношения с клиентами. Умные контракты устраняют необходимость в посредниках и позволяют прозрачные, прямые отношения с клиентами.
- Сопротивление провалу. Поскольку предприятия не зависят от третьей стороны, ни одно физическое или юридическое лицо не контролирует данные или деньги. Децентрализация означает, что даже если какой-либо человек покинет сеть блокчейна, она продолжит функционировать без потери данных или целостности.
- Больше доверия. Деловые соглашения автоматически исполняются и применяются. Кроме того, эти соглашения являются неизменными и, следовательно, неразрывными.
- Уменьшение мошенничества. Поскольку смарт-контракты хранятся в сети распределенной цепочки блоков, их результаты проверяются всеми в этой сети. Поэтому никто не может получить контроль над чужими средствами или данными, поскольку все другие участники блокчейна заметят это и отметят такую операцию как недействительную.
- Эффективность затрат. Устранение посредников снимает дополнительные сборы, позволяя предприятиям и их клиентам не только взаимодействовать и совершать сделки напрямую, но и делать это с минимальной или нулевой комиссией за транзакции.
- Бухучет, ведение учета, делопроизводство. Все контрактные транзакции хранятся в хронологическом порядке в блокчейне и могут быть доступны вместе с полным журналом аудита.

Эта тема закрыта для публикации ответов.