Введение

Ник Сабо впервые описал смарт-контракты в 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-сети, а не на централизованном сервере. А поскольку они основаны на системе блокчейна, они, как правило, либо неизменны, либо их очень сложно изменить.

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

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

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

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

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


Критика

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

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

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

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


Заключительные мысли

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

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