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

Впервые данная технология была описана в начале девяностых Ником Сабо. Он был первым, кто придумал в целях формализации и большей защищённости компьютерных сетей объединить программные протоколы и пользовательский интерфейс. Для этого и нужны были смарт-контракты – наиболее простой инструмент, обеспечивающий доверительное взаимодействие. Однако в число потенциальных способов использования этого метода, прямая работа с различными финансами ещё не входила – речь шла о различных отношениях делового характера, типа кредитования, авторского права и обработки различных платежей.

Однако вскоре появились специалисты, которые адаптировали смарт-контракты под нужды криптовалют. Теперь они стали чем-то типа цифровых соглашений, подкреплённых набором определённых правил. Которые определяются особенностями компьютерного кода сети и обязательны к исполнению всеми ещё участниками (узлами).

Если же говорить о конкретно блокчейнах, то смарт-контракты позволяют создавать доверительные протоколы. То есть отдельные участники могут взаимодействовать друг с другом, ничего друг о друге не зная и не доверяя. Но если какой-то элемент контракта будет нарушен, то он автоматически аннулируется. Это позволяет также работать без посредников и значительно уменьшить операционные расходы.

Несмотря на то, что протокол системы Биткоин использует данную технологию уже довольно долгое время, популяризирована она была другой криптовалютой – Ethereum. Отличие заключается в том, что каждый отдельный блокчейн может устанавливать свои способы реализации смарт-контрактов.

Как работают смарт-контракты?

Если упрощать, то смарт-контракт – детерминированная программа, которая работает на простейшем принципе «if...then...». То есть – строго определённые реакции на чётко заданные условия. Так что название технологии не сильно соответствует её смыслу, поскольку данная система взаимодействия не является ни «умной», ни, если говорить юридическим языком, контрактом.

В сети Ethereum смарт-контракты регулируют выполнения любых взаимодействий и операций между отдельными участниками – адресами. А если какой-то адрес не использует этот способ взаимодействия, то он называется личным аккаунтом (EOA) и управляется не программой, а конкретным пользователем.

В рамках системы Ethereum, смарт-контракты состоят из кода контракта, который и определяет условия исполнения, и двух публичных ключей. Первый предоставляется создателем контракта, второй – уникальный цифровой идентификатор для адреса.

Выполнение любого подобного контракта автоматическое при каждой блокчейн-транзакции, но запускаются они исключительно с личного аккаунта, то есть не автоматически, а с подачи человека.

Характеристики

Смарт-контракты, используемые в сети Ethereum, соответствуют следующим характеристикам:

  • Распределённость. То есть – распространённость по всем узлам сети, в отличие от тех систем, где программный код и протоколы хранятся на центральных серверах.
  • Детерминированность. Для каждого условия «if» - есть строго определённое следствие «then». Это гарантирует идентичность результатов, независимо от того, кто задаёт условия.
  • Автономность. По сути это – самоисполняемая программа. Как только выполняется условие «if» - тут же выполняется следствие «then». И только в таком порядке. Наличие ручной инициации особой роли при этом не играет. Если же протокол не инициирован, то он будет находиться в бездействии, что бы ни случилось.
  • Неизменность. Когда алгоритм создан и активирован, его уже нельзя изменить. Если, конечно, эта возможность не предусмотрена при изначальной разработке.
  • Настраиваемость. Данный способ взаимодействия можно разрабатывать разными способами, так что эта технология может использоваться для очень многих типов децентрализованных сетей и приложений – DApps. Кроме того, именно эта характеристика отвечает за то, что блокчейн Ethereum может называться завершенной по Тьюрингу сетью.
  • Доверительность. Стороны могут взаимодействовать, ничего друг о друге не зная. Кроме того, все эти взаимодействия учитываются и фиксируются.
  • Прозрачность. Исходный код этой программы доступен каждому желающему.

Можно ли удалять или менять смарт-контракты?

Если при создании программы в неё была вложена функция SELFDESTRUCT, то да, можно. Она позволяет удалять смарт-контракт и заменять его новым. В противном случае, исправить или удалить ничего не выйдет.

Но считается, что системы, оснащённые данной функцией – более надёжны и функциональны. В качестве примера, можно рассмотреть систему, в которой большой смарт-контракт делится на несколько небольших, часть из которых оснащена функцией SELFDESTRUCT. Это означает, что разработчик сможет удалять и менять некоторые фрагменты кода, не мешая функционированию всей системы.

Преимущества и возможности

Смарт-контракты гарантируют повышенную прозрачность всей системы и снижают эксплуатационные расходы. А в ряде ситуаций – ещё и снижают бюрократические издержки. Особенно это актуально в ситуациях, когда речь идут об обменах разнообразных финансов между двумя незнакомыми друг с другом сторонами.

Данная технология используется при создании токенизированных активов, при разработке систем голосования, для повышения надёжности криптовалютных кошельков, для более эффективной работы бирж, работающих на децентрализованном принципе, и аналогичных мобильных приложений. Кроме того, смарт-контракты можно адаптировать для работы в сферах здравоохранения, благотворительности, бюрократического аппарата, децентрализованного финансирования и много чего ещё.

Недостатки

Каждый смарт-контракт – это код, написанный человеком. Поэтому в нём всегда есть возможность для ошибок и уязвимостей. Этого можно избежать, используя квалифицированных специалистов и неоднократные проверки. Именно так и поступают, когда речь идёт об особо важной информации и больших суммах.

Смарт-контракты преимущественно работают в распределённых одноранговых сетях, что автоматически лишает систему ряда функций и регуляционных возможностей. Кроме того, внесение изменений в подобный работающий алгоритм либо невозможно, либо технически очень сложно и затратно.

Неизменность, о которой мы уже говорили, это хорошо, но только пока система работает стабильно. Когда в 2016 году хакеры взломали децентрализованную организацию DAO, они смогли без особых проблем украсть криптовалюту эфир на сумму в миллионы долларов. И это длилось некоторое время, поскольку разработчики ничего не могли с этой ситуацией поделать. Решение было в итоге найдено – хардфорк. То есть – разделение Ethereum на две цепочки. Одна часть - текущий блокчейн, отменила блоки со взломом, вернув утраченный эфир владельцам. Другая сохранила ситуацию неизменной - Ethereum Classic. Что важно – уязвимость была не в работе самого блокчейна Ethereum, а в неправильной работе смарт-контракта.

Также недостатком можно считать юридическую неопределённость смарт-контрактов. В подавляющем большинстве государтсв они находятся в «серой зоне», поскольку не вписываются в существующую нормативно-правовую базу. Например, в рамках данной системы могут осуществлять транзакции и несовершеннолетние, в чём невозможно убедиться, поскольку посредников нет и работает принцип псевдоанонимности. Поэтому юридическая легализация – одна из наиважнейших проблем, которая стоит перед распределёнными сетями в целом и смарт-контрактами в частности.

Критика

С одной стороны, смарт-контракты, по мнению энтузиастов данной технологии, могут серьёзно упростить и автоматизировать текущие коммерческие и организационные системы. С другой – у данного метода взаимодействия всё ещё слишком много недостатков, чтобы он стал общепринятым, причём – в реальном мире.

Увы, для решения ряда проблем куда лучше подходят централизованные сервера. Они проще, дешевле в обслуживании, работают более эффективно, подразумевают возможность внесение изменений, и что самое важное – намного легче взаимодействуют с другими сетями. А у смарт-контрактов функциональная совместимость практически отсутствует, поскольку изначально используются разные коды и алгоритмы.

Вывод

Смарт-контаркты – крайне эффективная технология, особенно когда речь заходит о системах блокчейн. Не исключено, что в ближайшем будущем всё больше и больше приложений, осуществляющих финансовые услуги и работающих с конфиденциальной информацией, будут использовать именно их. Потенциал у них значителен, но как человечество им распорядится и примет ли его – это покажет только время.