Введение
В 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 лет. Однако анонимность технологии блокчейн и отсутствие посредников будут противоречить требованиям контракта. Решение этой проблемы может появиться в будущем. Однако смарт-контракты работают в распределенной сети без границ, что очень затрудняет правоприменение.
Недостатки
Некоторые энтузиасты блокчейна рассматривают смарт-контракты как автономные решения, которые заменят большую часть существующих бизнес- и бюрократических систем. Хотя эта идея может быть реализована, предстоит пройти еще долгий путь, прежде чем она станет нормой.
Смарт-контракты действительно интересная технология. Однако такие характеристики, как распределение, детерминизм, прозрачность и неизменность, иногда снижают привлекательность смарт-контрактов.
Существенным недостатком смарт-контрактов является то, что они не могут эффективно решить многие практические проблемы. Фактически, некоторые организации в настоящее время используют традиционные серверные решения в качестве временного решения.
По сравнению со смарт-контрактами централизованные серверы проще и дешевле обслуживать, и они часто имеют серьезные преимущества в скорости и межсетевом взаимодействии (взаимодействии).
Подведем итог
Нет сомнений в том, что смарт-контракты оказали глубокое влияние на сферу криптовалют и действительно внесли серьезные изменения в сферу блокчейна. Конечные пользователи не обязательно напрямую взаимодействуют со смарт-контрактами. Но в ближайшем будущем смарт-контракты будут использоваться более широко, охватывая различные области, такие как финансовые услуги и управление цепочками поставок.
Смарт-контракты и блокчейн вместе взятые меняют практически все сферы жизни современного общества. Но только время покажет, смогут ли эти революционные технологии преодолеть барьеры и в конечном итоге достичь массового внедрения.

