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

