Введение

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

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

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

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

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

В этой статье основное внимание будет уделено смарт-контрактам, работающим в виртуальной машине Ethereum (EVM), важной части блокчейна Ethereum.


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

Проще говоря, смарт-контракт — это детерминированная программа, выполняющая конкретные задачи при выполнении определенных условий. Таким образом, системы смарт-контрактов обычно следуют условным операторам «если… то…». Хотя концепция «смарт-контракта» хорошо известна, она не является ни юридическим контрактом, ни смарт-контрактом. Это всего лишь фрагмент кода, работающий в распределенной системе блокчейна.

В сети Ethereum смарт-контракты отвечают за выполнение и управление операциями блокчейна, когда пользователи (адреса) взаимодействуют друг с другом. Адреса вне смарт-контрактов называются «Внешними учетными записями (EOA)». Таким образом, смарт-контракты контролируются компьютерным кодом, а внешние учетные записи (EOA) — пользователями.

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

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


Ключевая особенность

Смарт-контракты Ethereum имеют следующие общие характеристики:

распределено. Смарт-контракты реплицируются и распределяются по всем узлам сети Ethereum. Это сильно отличается от других централизованных серверных решений.

Уверенность. Смарт-контракты выполняют заранее запланированные действия только при выполнении требований. И независимо от того, кто это делает, результаты остаются неизменными.

автономия. По сравнению с «самоисполняющимися» программами, смарт-контракты автоматически выполняют различные задачи. Большую часть времени неактивированные смарт-контракты остаются в «спящем» состоянии и не выполняют никаких действий.

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

Кастомизация. Перед развертыванием смарт-контракты кодируются различными способами. Поэтому его можно использовать для создания самых разных децентрализованных приложений (DApps). Это идет рука об руку с тем фактом, что Ethereum представляет собой полный по Тьюрингу блокчейн.

Де-доверие. Две или более стороны могут взаимодействовать посредством смарт-контрактов, не зная друг друга и не доверяя друг другу. Кроме того, технология блокчейна обеспечит точность данных.

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


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

После развертывания смарт-контракты Ethereum не могут добавлять новые функции. Однако до тех пор, пока создатель контракта резервирует в коде функцию «SELFDESTRUCT», эта функция может позже «удалить» смарт-контракт и заменить его новым контрактом. Если эта функция не зарезервирована в коде, смарт-контракт невозможно удалить.

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

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


Преимущества и варианты использования

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

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

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

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


ЭРК-20

Токены, выпущенные в блокчейне Ethereum, соответствуют стандарту ERC-20. Этот стандарт определяет основные функции всех токенов Ethereum. Поэтому эти цифровые активы часто называют «токенами ERC-20» и составляют значительную часть существующих криптовалют.

Многие блокчейн-компании и стартапы внедрили смарт-контракты для автономной эмиссии цифровых токенов в сети Ethereum. После выпуска токена большинство компаний распространяют свои токены ERC-20 посредством первичного предложения монет (ICO). В большинстве случаев использование смарт-контрактов может эффективно осуществлять транзакции с фондами и распределение токенов без доверия.


ограничения

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

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

Неизменяемость смарт-контрактов имеет очевидные преимущества, но в некоторых случаях может оказаться контрпродуктивной. Например, децентрализованная автономная организация The DAO была взломана в 2016 году, и миллионы монет Ethereum (ETH) исчезли. Причина заключалась в том, что код смарт-контракта имел недостатки.

Поскольку смарт-контракты неизменяемы, разработчики не могут исправить код. В конечном итоге это привело к хард-форку, в результате которого родилась вторая цепочка Ethereum. Проще говоря, цепочка (часть текущего блокчейна Ethereum) «восстанавливается» до того состояния, в котором она была до взлома, возвращая средства их первоначальным владельцам. Другая цепочка, теперь известная как Ethereum Classic, решила не вмешиваться во взлом, настаивая на том, что события, происходящие в блокчейне, никогда не должны подвергаться вмешательству.

Важно отметить, что эта проблема вызвана не блокчейном Ethereum, а некорректным исполнением смарт-контрактов.

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

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


Недостатки

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

Смарт-контракты действительно интересная технология. Однако такие характеристики, как распределение, детерминизм, прозрачность и неизменность, иногда снижают привлекательность смарт-контрактов.

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

По сравнению со смарт-контрактами централизованные серверы проще и дешевле обслуживать, и они часто имеют серьезные преимущества в скорости и межсетевом взаимодействии (взаимодействии).


Подведем итог

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

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