Хотя смарт-контракты стали популярны в контексте блокчейна и криптовалют, концепция была впервые описана еще в 1994 году американским криптографом Ником Сабо (Nick Szabo). Идея Сабо заключалась в том, что смарт-контракты будут использовать математические алгоритмы и самостоятельно инициировать исполнение сделки, контролируя выполнение необходимых условий.
Концепция смарт-контрактов получила первое воплощение с появлением Биткоина. Однако из-за ограничений протокола в Биткоине реализованы ограниченные функции смарт-контрактов, например, мультиподписи. Широкое распространение смарт-контракты получили после запуска Эфириума в 2015 году, в котором они работают на Виртуальной Машине Эфириума (EVM).
Со временем появилось множестве других платформ смарт-контрактов, но их концепция в основном сходна с Эфириумом. Это NEO, EOS, Tron, Waves, Ontology, VeChain и многие другие блокчейны.
Есть и более оригинальные или узконаправленные реализации смарт-контрактов. Например, в Algorand появились фиксирующие состояние смарт-контракты (stateful smart contracts), а Cardano разрабатывает смарт-контракты на основе концепции расширенных неистраченных выходов (Extended UTXO), где выполнение смарт-контракта разделяется на несколько транзакций. Secret Network запустила «секретные контракты» в своем блокчейне, где можно использовать конфиденциальные данные в dApps без раскрытия исходной информации.
Смарт-контракт представляет собой хранимую в блокчейне программу, которая выполняет определенную задачу при соблюдении конкретных условий. Смарт-контракты на Эфириуме состоят из кода контракта и двух открытых ключей. Один ключ принадлежит создателю контракта, а другой представляет собой цифровой идентификатор, уникальный для каждого контракта.
Взаимодействие любого смарт-контракта с пользователями происходит через транзакции в блокчейне. Самый простой случай – пользователь отправляет токены на адрес контракта, а контракт отвечает отправкой других токенов в соответствие с кодом своей программы. Если для выполнения контракта необходимы внесетевые данные, то контракт обращается к «оракулам», которые находят и подтверждают информацию за пределами сети и передают ее в блокчейн для исполнения смарт-контракта.
Смарт-контракты позволяют создавать не требующие доверия протоколы, в которых две стороны могут брать на себя обязательства через блокчейн, не зная друг друга и не доверяя друг другу. Они могут быть уверены, что в случае невыполнения условий контракт не будет активирован. Таким образом использование смарт-контрактов устраняет необходимость в посредниках.
Ключевые преимущества смарт-контрактов: неизменяемость третьими лицами, гарантия выполнения условий без участия людей, отсутствие необходимости в доверии, прозрачность работы. Однако смарт-контракты состоят из компьютерного кода, написанного людьми. Это сопряжено с рисками, поскольку любой код может содержать ошибки и подвержен уязвимостям.
Неизменяемость смарт-контрактов может быть недостатком. Например, в 2016 году при взломе проекта TheDAO, токены на десятки миллионов долларов были украдены из-за ошибок в коде смарт-контракта. Поскольку смарт-контракт был неизменяемым, разработчики не могли исправить код. Это привело к конфликту в сообществе и принудительному хардфорку, породившему Ethereum Classic.
В некоторых штатах США смарт-контракты легализованы и имеют юридическую силу, например, в Аризоне и Иллинойсе. В других штатах, а также в Конгрессе США, также рассматриваются аналогичные законопроекты.
В октябре 2019 года в силу вступили поправки в ГК РФ, в которых письменная форма сделки была приравнена к совершению сделки с помощью электронных и иных технических средств. Таким образом, смарт-контракты регулируются наряду с традиционными сделками в рамках ГК РФ.