Что такое смарт-контракты?

Поделиться
Copied to clipboard!
Что такое смарт-контракты?
Прослушать статью
00:00 / 00:00

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

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

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

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

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


Как это работает?

Простыми словами, смарт-контракт работает как детерминированная программа. Она выполняет определённые действия, когда соблюдены заданные условия. Исходя из этого, система смарт-контрактов часто использует "if… then…" выражения. Несмотря на общепринятую терминологию, смарт-контракты не являются ни контрактами в юридическом смысле, ни "умными". Это всего лишь фрагменты кода, запущенного в распределенной системе (в блокчейне).

В сети Ethereum смарт-контракты отвечают за выполнение операций между пользователями (адресами). Любой адрес, не являющийся смарт-контрактом, называется личным аккаунтом (EOA). Таким образом, смарт-контракты управляются программным кодом, а личные аккаунты – пользователями.

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

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


Основные характеристики

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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


ERC-20

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

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


Недостатки

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

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

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

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

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

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

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


Критика

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

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

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

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


Заключение

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

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

Loading