Смарт-контракты Ethereum

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

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

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

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

Принцип работы

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

  1. Пользователь создает транзакцию, в которой прописаны условия сделки по принципу «если …, то …». Например, если покупатель отправит продавцу 10 монет, то он получит коробку конфет.
  2. Транзакция отправляется в блокчейн, который обслуживают узлы (ноды). После подтверждения обеими сторонами ее невозможно изменить или удалить.
  3. Когда условия договора выполнены покупателем (деньги переведены), продавец отправляет ему условную коробку конфет. Система блокирует платеж до тех пор, пока получатель не подтвердит доставку товара.
  4. Если ноды не фиксируют перевод денег, условная коробка конфет не дойдет до покупателя. На виновную сторону будет наложен штраф в размере, определенном условиями умного контракта. Те же санкции могут применяться к продавцу, если он пришлет не тот товар, который указан в соглашении.
  5. Результат операции (выполнение или отмена) записывается в блокчейн.
В отличие от обычных договоров смарт-контракты Ethereum не только хранят всю информацию о сделке, но и контролируют ее выполнение. Соглашение вступает в силу, если все участники примут его условия. Решение записывают в код программы, шифруют и сохраняют в блокчейне.

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

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

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

Ограничения

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

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

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

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

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

  • Безопасность. Запись сделки хранится в блокчейне. Ее нельзя изменить или удалить.
  • Отсутствие посредников. Не нужно привлекать специалиста, который выступит гарантом выполнения условий соглашения.
  • Надежность. В отличие от бумажного документа цифровой договор нельзя потерять или повредить.

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

Примеры смарт-контрактов

Умные блокчейн-программы были созданы в 2015 году, но массово их начали внедрять только в 2020-м. Многолетние тестирования показали, что использование цифровых договоров повышает прозрачность бизнес-процессов, сокращает финансовые расходы и временные издержки. Например, Сбербанк первым в России запатентовал перевод сделок РЕПО (продажи ценных бумаг с обязательством выкупить их в определенный срок по заранее оговоренной цене) в смарт-контракты. Commerzbank и BASF используют цифровые договоры для моментальной оплаты услуг поставщиков. РЖД начала внедрять программы Ethereum для автоматического выполнения финансовых операций в грузовых перевозках.

В 2021 году смарт-контракты ETH для отслеживания цепочек поставок используют Nestle, Walmart, Mercedes Benz Cars, а к 2025-му планирует и Почта России.

ETH и ICO

Умные программы Ethereum получили огромную популярность благодаря их массовому использованию для инвестирования в стартапы. В 2017-2018 годах ICO привлекло около $14 млрд. Большинство токенов были созданы и запущены на платформе Эфириум. В январе 2017-го курс ETH составлял $8, а уже в июне цена монеты достигла $360. В начале 2018 года Ethereum стоил $1360.

График Ethereum
Курс ETH в динамике 2016-2021 годов

Стандартная схема проведения краудфандинга (коллективного финансирования) такова:

  1. Разработчики генерируют идею, для реализации которой требуются деньги.
  2. Проект запускает ICO, принимая от инвесторов эфириумы, а взамен выдавая токены.

Сбор средств ограничен во времени, что создает ажиотаж среди вкладчиков. На пике популярности ICO суммы в $10-20 млн удавалось привлечь в течение нескольких минут или дней. В ходе токенсейла разработчики собрали $35 млн за 24 секунды. Чтобы попасть в число участников, инвесторы платили до $6600 за транзакцию.

Смарт-контракты полностью автоматизировали ICO. Программа сама запоминала, от кого и сколько пришло денег, начисляла токены и позволяла участникам передавать или продавать жетоны. Благодаря прозрачности блокчейна инвесторы видели, сколько всего было выпущено монет и как они были распределены.
ПроектДата проведения ICO, годыСумма сборов, $
EOS2017-20184,1 млрд
Tezos2017150 млн
Bancor2017140 млн
Status2017100 млн
Brave201773 млн

Как создать смарт-контракт в Эфириум

Персональные программы в сети Эфириум можно писать на разных языках. Большинство разработчиков используют Solidity. Создание цифрового контракта можно разделить на 4 этапа:

  1. Открытие кошелька в MetaMask (или любом другом, поддерживающем блокчейн Ethereum).
  2. Выбор тестовой сети.
  3. Написание и компиляция кода.
  4. Запуск и тестирование программы.
Криптовалютный кошелек
Официальный сайт MetaMask

Предварительные настройки

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

  1. Загрузить Ganache — отдельную тестовую сеть Ethereum.
  2. Установить браузерное расширение MetaMask.

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

Написание и компиляция кода

Работа с программой ведется на сайте remix.ethereum.org. Это удобная площадка для развертывания контрактов и взаимодействия с ними всех пользователей Эфириум. Участники сделки могут переключаться между учетными записями и вызывать любые функции программы.

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

Запуск сервера

Дальнейшая работа переходит в Ganache. Сервис проверяет новый блокчейн и стыкует его с заранее созданной копией кошелька. Порядок действий разработчика следующий:

  1. Разархивировать сохраненную ранее zip-папку MetaMask.
  2. Открыть файл index.html.
  3. В правом верхнем углу сайта изменить Network ETH на Add Custom Network/Node.
  4. В открывшееся окно вставить данные про RPC Server, предоставленные Ganache. Имя узла можно выбрать самостоятельно.

С этого момента локальная копия MetaMask подключена к тестовому серверу.

Инструмент для создания локальной сети Ethereum
Тестирование блокчейна на Ganache

Развертывание смарт-контракта

Как только узел запущен, нужно подключить Remix к RPC-адресу и загрузить цифровой контракт. Алгоритм действий такой:

  1. Открыть аккаунт в MetaMask.
  2. В верхней навигационной панели нажать Contracts, выбрать Deploy.
  3. В открывшемся окне вставить байт-код программы из Remix IDE. Параметр Gas Limit определяется автоматически.
  4. Импортировать аккаунт для загрузки программы, нажав на кнопку внизу страницы.
  5. Выбрать 1 из 10 адресов, выданных Ganache для взаимодействия с контрактом. Для этого нужно нажать на иконку рядом с номером кошелька.
  6. Копировать приватный ключ и вставить его в открывшемся окне.
  7. Нажать Unlock, подтвердить транзакцию.

Проверить обработку блоков можно в разделе Current Blocks сервера Ganache: показатель изменится с 0 на 1. Теперь цифровой договор загружен в локальный блокчейн. После успешного завершения операции адрес кошелька будет виден в правой части экрана Remix. Сначала токены будут храниться в кошельке создателя программы. Чтобы проверить баланс эфиров, нужно перейти в окно MetaMask, выбрать «Добавить токены», ввести адрес контракта и нажать «ОК».

Настройка взаимодействий

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

  1. В аккаунте MetaMask выбрать Interact With Contract.
  2. В поле Contract Address вставить данные из Ganache (раздел Transactions).
  3. В строку ABI добавить соответствующую информацию из Remix (Details).
  4. Нажать Access.

Если все сделано правильно, на экране появится раздел Read/Write Contract, в котором можно выбрать функции, записанные в контракте.

Тестирование

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

  • Электронная подпись.
  • Условия выполнения обязательств.
  • Отправка сообщений.
  • Код и фиксация его изменений.
  • Инструменты, необходимые для выполнения договора.

Для этого нужно смоделировать условия, записанные в программе. Например, для проверки функции инкремента (совершения транзакции) разработчик переходит в раздел Read/Write Contract и нажимает Write, соглашаясь с операцией. При новом запросе getCount появляется 1 вместо 0 и увеличивается число сделок в Ganache. Аналогично можно протестировать другие функции.

Резюме

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

Часто задаваемые вопросы

❓ Что такое EVM?

Это децентрализованная виртуальная машина Ethereum, которая обрабатывает скрипты с использованием общедоступных узлов. EVM работает изолированно от основной сети и является удобной средой для тестирования новых продуктов.

❔ Что такое трюфель?

Truffle Framework — популярный фреймворк от Ethereum. Это платформа с открытым исходным кодом для быстрой разработки децентрализованных приложений и управления жизненным циклом смарт-контрактов.

👛 Какие кошельки можно использовать для создания персонального блокчейна?

Официальные приложения Ethereum — MetaMask и MyEtherWallet.

👩‍💻 На каких языках пишут смарт-контракты?

Для создания программ на Эфириум чаще всего используется универсальный язык Solidity. Смарт-договоры также можно писать на C++ (EOS, XRP), JavaScript (LISK).

🛡 Чем обеспечена безопасность цифровых контрактов?

Персональные блокчейны обладают всеми характеристиками основной сети Ethereum. Они прозрачны, предсказуемы и неизменны.

заместитель главного редактора
Комментариев пока нет
Получайте главные новости из мира криптовалюты прямо на почту