Что такое смарт контракт Ethereum простыми словами

Что такое смарт контракт

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

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

Впервые определение смарт-контракт было описано в 1997 году в статье программиста Ника Сабо, который занимался его разработкой с 1994 года. Принято считать, что труды Ника Сабо вдохновили Сатоши Накомото на создание блокчейна и первой криптовалюты, где впервые и был реализован smart-контракт. Но Биткоин, как и большинство других криптовалют, не наделены полнотой по Тьюрингу, поэтому их умные контракты — простые конструкции и используются для мультиподписи или транзакций с отложенным исполнением.

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

Умные контракты Эфириум (англ. Smart contract — умный контракт) — самоисполняемый компьютерный алгоритм, записывающийся в цепочку blockchain. Он позволяет исключить необходимость сотрудничества с посредниками для урегулирования прав сторон. Смарт-контракты платформы Эфириум содержат условия сделки и обязательства сторон. Если стороны их выполняют, то автоматически получают желаемое.

Как работает смарт контракт?

Ethereum smart contract имеют полноту по Тьюрингу, позволяют включать в них любые условия сделки, создавать децентрализованные приложения и обмениваться активами.

Блокчейн Ethereum представляет собой классический блокчейн, с подключенной виртуальной машиной EVM (Ethereum Virtual Machine), позволяющей отслеживать состояния на основе указанного первоисточника и выполнять код смарт-контракта на любом компьютере майнера.

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

Смарт-контракт содержит:

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

Смарт-контракт самостоятельно:

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

Каждый контракт составляется и подписывается участниками. Ему присваивается индивидуальный номер, Gas Limit — количество вычислений, которые необходимы для выполнения. Стороны оплачивают работу майнеров Газом и информация о новом контракте транслируется в сеть. Майнеры проверяют состояние условий контракта, счетов пользователей и если все условия соблюдены, то исполняют вторую часть условий, обновляя счета участников сделки, выписывают receipt (чеки) на каждую транзакцию по контракту и включают сделку в новый блок цепи, подбором подписи.

Наиболее простой пример работы смарт контракта — обмен криптовалюты на токены. Создается контракт с условием: если мне будет перечислено 10 ETH, то с моего счета будет списано 100 токенов. Отправляя транзакцию на контракт, пользователь делает запрос, майнеры проверяют состояние счетов отправителя и получателя, и если баланс позволяет, то производят обмен.
Схема действия смарт контракта
Для более сложного примера можно рассмотреть использование умного контракта в аренде недвижимости. Владелец и арендатор не доверяют друг другу и боятся быть обманутыми. Для избежания эксцессов им требуется составить и нотариально заверить бумажный договор, прописав все условия соглашения или пойти более легким путем и составить смарт-контракт на аренду. Для них создают хранилище — умный контракт, куда арендатор ложит деньги, а владелец – код от двери жилья. Арендатору выдается код, владельцу – арендная плата. В программный код контракта вносятся условия, что контракт считается завершенным:

  • когда арендатор заселяется и вводит код, при этом второй стороне перечисляется предоплата, а после окончания срока аренды вся сумма;
  • если код оказался подделкой, то сделка аннулируется и внесенные средства возвращаются;
  • если арендатор передумал, то в пользу владельца вписывается энная сумма за неустойку, а остаток перечисляется арендатору.

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

Виды смарт контрактов

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

  • автоматизированные;
  • подкрепленные бумажным соглашением;
  • зафиксированные преимущественно на бумаге, с частичной автоматизацией на цифровом коде.

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

Ключевые преимущества смарт контрактов

Преимущество Особенности
Совершение защищенных сделок без привлечения регулирующей стороны. Если две стороны сделки не доверяют друг другу, то для безопасности следует обратиться к третьему лицу, выступающим гарантом соблюдения условий. Смарт-контракты исключают эту необходимость, поскольку правомерность сделки будет проверяется математическими вычислениями и обмен будет совершен только при достижении прописанных условий.
Безопасность и конфиденциальность. Смарт контракт — это зашифрованная сделка, внесенная в блокчейн. Ее невозможно подделать или изменить, при этом стороны могут и условия сделки остаются конфиденциальными.
Минимизированные издержки за проведение сделок. За заключение бумажного договора потребуется оплатить услуги юриста, а в случае несоблюдения условий потребуется доказывать правоту в судебном порядке, оплачивать судебные издержки и налоги. В случае с смарт-контрактом, потребуется оплатить только стоимость вычислений, а если условия договора будут нарушены, то сделка не состоится. При этом может быть предусмотрено автоматическое списание неустойки с виновника, в пользу второй стороны.
Быстрота заключение сделки. Составление бумажного договора требует времени на поиск регулирующей стороны. Следует также учитывать очереди в суды на случай нарушения условий договора. Для создания смарт-контракта потребуется только время для записи условий сделки, а сама сделка будет произведена автоматически, сразу же после их соблюдения.

Сферы использования смарт контрактов

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

Смарт контракт для ICO

ICO — классический пример использования смарт-контрактов. Для привлечения инвестиций в проект компанией инициируется разработка собственного токена. Для этого можно воспользоваться шаблонным контрактом ERC20 или создать собственный. Следующим шагом прописывается смарт-контракт для обмена токенов на криптовалюту. В нем закладывается условия продажи токенов на ICO:

  • дата начала и завершения проведения ICO;
  • стоимость токена;
  • ограничения на покупки.

Инвесторы высылают деньги на контракт и средства автоматически обменивают на токены по условиям заложенным в договор.

Таким контрактом гарантируется честность проведения ICO, поскольку условия контракта не могут быть изменены. Контракт работает только в прописанные в нем сроки. Аналогичным принципом создается pre-sale и другие распродажи.

Именно на основе смарт контракта, платформы Эфириум были запущены криптовалюты Nem, Cardano, Tron, EOS, Dao. Последняя, к слову, согласована с создателями Эфириума и призвана сделать проведение ICO более легким и эффективным.

Смарт контракты в реальной жизни

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

  • банковская система;
  • логистика;
  • страхование;
  • операции с недвижимостью;
  • регистрация прав собственности.

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

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

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

Еще смарт-контракт позволяет в рамках определенной общественной организации проводить голосование.

Как использовать смарт контракты?

Для того, чтобы использовать функционал платформы Ethereum, следует обзавестись аккаунтом. В сети Эфириума существует два типа аккаунтов:

  • аккаунт пользователя (externally owned account) — кошелек, с приватным и публичным ключом, владелец может хранить коины и совершать транзакции подписывая их приватным ключом;
  • аккаунт контракта (contract account)— смарт-контракт, баланс которого управляется на основе заложенного в него кода, а исходящие транзакции генерируются в ответ на входящие.

Все действия в сети основывают на транзакциях между аккаунтами. Транзакции на кошелек пользователя — перевод средств, транзакция на аккаунт контракта — механизм приводящий условия контракта в действие, в нее дополнительно включаются параметры Газа и вызова контракта.

С чего начать?

Зарегистрировать официальный кошелек Эфириум можно официальном сайте www.ethereum.org.
Для этого нужно:

  1. Перейти на сайт.
  2. Перейти в раздел “Ethereum Wallet” и выбрать подходящую к используемой операционной системе версию кошелька. Дождаться загрузки и установить программное обеспечение.
  3. Загрузка программы Ethereum кошелька

  4. Следовать указаниям инструкции и зарегистрировать кошелек.
  5. Интерфейс программы Ethereum Wallet

  6. Сохранить приватный ключ и электронную подпись в надежном месте.

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

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

Транзакция Эфириума состоит из:

  1. Адреса получателя;
  2. Суммы перевода, при создании контракта — первоначальный баланс аккаунта;
  3. Gas Limit Gas Price — стоимость выполнения кода и цена за выполнения одной транзакции по нему;
  4. Байт-код контракта — условия сделки, прописанные в цифровом коде, при достижении которых договор будет приведен в исполнение;
  5. Данные для проверки подписи.

Использовать готовые шаблоны

Разработчики Эфириума сделали все возможное для легкого запуска контрактов. Достаточно выбрать подходящий шаблон и подтвердить сделку, после чего встроенный алгоритм автоматически переведет ее на используемый в сети язык программирования Solidity.

Создать свой смарт контракт на Эфире

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

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

Ресурс etherscan.io в открытом доступе содержит не один смарт контракт, пример которого можно взять за основу. Изучив логику и принципы работы, написать смарт контракт будет значительно легче. В 2017 году также была разработана платформа Etherparty, которая призвана упростить создание умных контрактов, но пока находится в стадии разработки.

Преимущества и недостатки смарт контрактов

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

Выводы

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