О смарт-контрактах
Смарт-контракты, новая технология, ставшая возможной благодаря появлению публичных блокчейнов, непросты для понимания, так как этот термин отчасти вводит в заблуждение относительно характера описываемого им взаимодействия.
Смарт-контракты полезны в том смысле, что представляют собой децентрализованную систему, которая существует между всеми сторонами соглашения, помогает избегать конфликтных ситуаций между ними и экономит их время без необходимости оплачивать услуги посредников. У блокчейнов есть свои недостатки, однако они абсолютно прозрачны и, несомненно, превосходят традиционные системы в скорости, стоимости и безопасности – поэтому банки и правительства выражают в отношении них такую заинтересованность.
Работающие на блокчейнах смарт-контракты вызвали значительный информационный резонанс, когда на их основе были построены полностью автономные функционирующие организации. Кроме того, они позволяют строить саморегулируемые системы peer-to-peer-страхования и облегчают сдачу в аренду любых ресурсов, имеющих подключение к Интернету. В этой статье я объясняю, как работают смарт-контракты. Я представлю вашему вниманию краткую вводную информацию по теме, а затем перейду к сравнению программирования, хранения и выполнения смарт-контрактов в Биткоине и Эфириуме, двух наиболее масштабных на сегодняшний день блокчейн-протоколах без уровней доступа.
Что такое смарт-контракты?
Смарт-контракты, также известные как криптоконтракты, представляют собой компьютерные программы, осуществляющие непосредственный контроль передачи цифровых валют или активов между сторонами с соблюдением определённых условий. Смарт-контракты служат не только для фиксации правил и штрафных санкций за их невыполнение, подобно обычным договорам, но также и автоматически обеспечивают выполнение этих обязательств. Они делают это, принимая информацию как вводные данные, присваивая этим вводным данным цифровые значения согласно заложенным в контракте правилам и выполняя требуемые соответствующими пунктами договора действия, например, определяя, следует ли отправить тот или иной актив одному из участников соглашения или вернуть его владельцу. Идею смарт-контрактов проще всего объяснить на примере. Давайте представим смарт-контракт страхования жизни, выплачивающий страховую сумму определённому бенефициару в случае смерти владельца полиса. Контракт может в режиме реального времени производить онлайн-проверку реестров записей о смерти граждан, чтобы определить момент выплаты страховой суммы. Смарт-контракты не требуют доверия, автономны и самодостаточны.
Хранение и выполнение смарт-контрактов
В сетях Биткоина и Эфириума хранение и выполнение смарт-контрактов происходит по-разному. Пользователи Эфириума записывают смарт-контракты в блокчейн посредством транзакции в адрес сети, включив в неё необходимую информацию, задающую последовательность выполнений операций смарт-контракта. Транзакция не отправляется на определённый адрес. Вместо этого, ноды (узлы сети), обрабатывающие транзакцию, распознают «пакет данных смарт-контракта» и генерируют для него адрес в сети.
Преимущества смарт-контрактов
Смарт-контракты могут предложить людям множество важнейших преимуществ. Перечислю только некоторые из них
Как смарт-контракты работают?
Стоит отметить, что Биткоин первым обеспечил поддержку базовых смарт-контрактов в том смысле, что его сеть может автоматически осуществлять трансфер средств от одного человека другому. Ноды сети только подтверждают действительность транзакций, если она соответствует определённым условиям.
Однако Биткоин ограничивается этим сценарием использования в качестве валюты.
Напротив, Эфириум заменяет более ограниченный скриптовый язык (язык написания около ста возможных сценариев) другим языком, который позволяет разработчикам писать с его помощью собственные программы.
Эфириум позволяет разработчикам программировать собственные смарт-контракты, или «автономные агенты», как они называются в «белой книге» Эфириума. Язык Эфириума является «Тьюринг-полным». Это означает, что он поддерживает более широкий набор вычислительных команд.
Смарт-контракты способны
- функционировать в качестве счетов с «мульти-подписью» – так, что средства будут списываться только в случае подтверждения операции определённым процентом людей, имеющих доступ к управлению счётом;
- контролировать выполнение соглашений, заключённых между пользователями – например, договора страхования – и обеспечивать условия для выполнения других контрактов (подобно тому, как работают библиотеки программных модулей);
- хранить информацию о приложении – например, данные о регистрации домена или базу зарегистрированных пользователей.