Что такое смарт контракт 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 часто сравнивают с нефтью, поскольку он является продуктом, благодаря которому можно решать реальные прикладные задачи и приводить в действие сложные алгоритмы. Функциональные особенности смарт-контрактов позволяют задействовать их в большинстве сфер жизнедеятельности, но их полноценное внедрение пока еще тестируется и дорабатывается.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *