Смарт-контракты Ethereum
С появлением блокчейна Биткоин общество получило новый удобный способ хранить и пересылать деньги. Но области применения криптовалют гораздо шире: их можно инвестировать, депонировать, давать в долг. Смарт-контракты Ethereum предоставляют такие возможности. Они создают основу для новой децентрализованной экономики.
- Что такое смарт-контракты Ethereum
- Принцип работы
- Ограничения
- Преимущества и области применения
- Примеры смарт-контрактов
- ETH и ICO
- Как создать смарт-контракт в Эфириум
- Предварительные настройки
- Написание и компиляция кода
- Запуск сервера
- Развертывание смарт-контракта
- Настройка взаимодействий
- Тестирование
- Резюме
- Часто задаваемые вопросы
Что такое смарт-контракты Ethereum
Блокчейн Биткоин устроен просто: пользователи заводят кошельки и могут переводить криптовалюту на другие адреса. Сеть работает без единого центра и выполняет классические платежные функции. Создатели Ethereum пошли дальше. Они запустили такую систему, которая позволяет пользователям самостоятельно писать программы для работы с кошельками. Персональный мини-блокчейн сам принимает платежи и решает, сколько денег и кому перечислять. Обязательными условиями для всех программ являются:
- Прозрачность.
- Предсказуемость.
- Неизменность.
Программа — это смарт-контракт Эфириум. Он представляет собой автоматизированное соглашение между сторонами, которое хранится в блокчейне. Код написан на языке Solidity и содержит условия контракта. Когда они соблюдены, транзакция происходит автоматически.
Принцип работы
Действие смарт-контракта можно сравнить с функцией вендингового аппарата: внес деньги, нажал кнопку и получил свою банку кока-колы. Это быстрее и надежнее, чем если бы продажей напитков занимался человек. Схему выполнения цифрового контракта можно разбить на несколько этапов:
- Пользователь создает транзакцию, в которой прописаны условия сделки по принципу «если …, то …». Например, если покупатель отправит продавцу 10 монет, то он получит коробку конфет.
- Транзакция отправляется в блокчейн, который обслуживают узлы (ноды). После подтверждения обеими сторонами ее невозможно изменить или удалить.
- Когда условия договора выполнены покупателем (деньги переведены), продавец отправляет ему условную коробку конфет. Система блокирует платеж до тех пор, пока получатель не подтвердит доставку товара.
- Если ноды не фиксируют перевод денег, условная коробка конфет не дойдет до покупателя. На виновную сторону будет наложен штраф в размере, определенном условиями умного контракта. Те же санкции могут применяться к продавцу, если он пришлет не тот товар, который указан в соглашении.
- Результат операции (выполнение или отмена) записывается в блокчейн.
Сделка активируется транзакцией, которая содержит обычный перевод или более сложную команду. В сети Эфириум есть 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.
Стандартная схема проведения краудфандинга (коллективного финансирования) такова:
- Разработчики генерируют идею, для реализации которой требуются деньги.
- Проект запускает ICO, принимая от инвесторов эфириумы, а взамен выдавая токены.
Сбор средств ограничен во времени, что создает ажиотаж среди вкладчиков. На пике популярности ICO суммы в $10-20 млн удавалось привлечь в течение нескольких минут или дней. В ходе токенсейла разработчики собрали $35 млн за 24 секунды. Чтобы попасть в число участников, инвесторы платили до $6600 за транзакцию.
Проект | Дата проведения ICO, годы | Сумма сборов, $ |
---|---|---|
EOS | 2017-2018 | 4,1 млрд |
Tezos | 2017 | 150 млн |
Bancor | 2017 | 140 млн |
Status | 2017 | 100 млн |
Brave | 2017 | 73 млн |
Как создать смарт-контракт в Эфириум
Персональные программы в сети Эфириум можно писать на разных языках. Большинство разработчиков используют Solidity. Создание цифрового контракта можно разделить на 4 этапа:
- Открытие кошелька в MetaMask (или любом другом, поддерживающем блокчейн Ethereum).
- Выбор тестовой сети.
- Написание и компиляция кода.
- Запуск и тестирование программы.
Предварительные настройки
Необходимым условием для написания кода является подготовка среды разработки. Сначала нужно установить инструменты для создания приватного блокчейна:
- Загрузить Ganache — отдельную тестовую сеть Ethereum.
- Установить браузерное расширение MetaMask.
После этого у пользователя появится возможность зарегистрировать новый криптовалютный кошелек Ethereum или импортировать существующий. Для развертывания цифрового контракта в сети потребуется некоторое количество эфириумов.
Для проведения транзакций в сети Эфириум пользователям приходится отдавать процент, который...
Эфириум (Ethereum) входит в топ популярных криптовалют — в августе 2021 года он занимает второе...
Благодаря криптовалютам пользователи получили возможность отправлять дешевые транзакции на крупную...
Написание и компиляция кода
Работа с программой ведется на сайте remix.ethereum.org. Это удобная площадка для развертывания контрактов и взаимодействия с ними всех пользователей Эфириум. Участники сделки могут переключаться между учетными записями и вызывать любые функции программы.
Онлайн-редактор Remix содержит компилятор кода для языка Solidity. Это инструмент для преобразования исходного шифра в машинный, который понимает компьютер. При первом посещении страницы сервис загружает пример кода, его можно безболезненно удалить и заменить программой контракта. Компилятор сначала считывает исходный шифр, а затем начинает построчно обрабатывать его, переводя в инструкцию для виртуальной машины Ethereum (EVM).
Запуск сервера
Дальнейшая работа переходит в Ganache. Сервис проверяет новый блокчейн и стыкует его с заранее созданной копией кошелька. Порядок действий разработчика следующий:
- Разархивировать сохраненную ранее zip-папку MetaMask.
- Открыть файл index.html.
- В правом верхнем углу сайта изменить Network ETH на Add Custom Network/Node.
- В открывшееся окно вставить данные про RPC Server, предоставленные Ganache. Имя узла можно выбрать самостоятельно.
С этого момента локальная копия MetaMask подключена к тестовому серверу.
Развертывание смарт-контракта
Как только узел запущен, нужно подключить Remix к RPC-адресу и загрузить цифровой контракт. Алгоритм действий такой:
- Открыть аккаунт в MetaMask.
- В верхней навигационной панели нажать Contracts, выбрать Deploy.
- В открывшемся окне вставить байт-код программы из Remix IDE. Параметр Gas Limit определяется автоматически.
- Импортировать аккаунт для загрузки программы, нажав на кнопку внизу страницы.
- Выбрать 1 из 10 адресов, выданных Ganache для взаимодействия с контрактом. Для этого нужно нажать на иконку рядом с номером кошелька.
- Копировать приватный ключ и вставить его в открывшемся окне.
- Нажать Unlock, подтвердить транзакцию.
Проверить обработку блоков можно в разделе Current Blocks сервера Ganache: показатель изменится с 0 на 1. Теперь цифровой договор загружен в локальный блокчейн. После успешного завершения операции адрес кошелька будет виден в правой части экрана Remix. Сначала токены будут храниться в кошельке создателя программы. Чтобы проверить баланс эфиров, нужно перейти в окно MetaMask, выбрать «Добавить токены», ввести адрес контракта и нажать «ОК».
Настройка взаимодействий
Для полноценного функционирования персонального блокчейна разработчики создают приложения, которые способны с ним связываться и при необходимости поставлять данные. Настройка взаимодействий позволяет участникам сделки выполнять любые операции в рамках соглашения. Для этого нужно:
- В аккаунте MetaMask выбрать Interact With Contract.
- В поле Contract Address вставить данные из Ganache (раздел Transactions).
- В строку ABI добавить соответствующую информацию из Remix (Details).
- Нажать Access.
Если все сделано правильно, на экране появится раздел Read/Write Contract, в котором можно выбрать функции, записанные в контракте.
Тестирование
Перед запуском программы ее нужно проверить. Даже незначительная ошибка в цифровом договоре может привести к последствиям. Тестируются отдельные механизмы смарт-контракта:
- Электронная подпись.
- Условия выполнения обязательств.
- Отправка сообщений.
- Код и фиксация его изменений.
- Инструменты, необходимые для выполнения договора.
Для этого нужно смоделировать условия, записанные в программе. Например, для проверки функции инкремента (совершения транзакции) разработчик переходит в раздел Read/Write Contract и нажимает Write, соглашаясь с операцией. При новом запросе getCount появляется 1 вместо 0 и увеличивается число сделок в Ganache. Аналогично можно протестировать другие функции.
Резюме
Пока одни компании формируют очередную папку бумажных договоров, другие сдают в аренду автомобили и заправляют самолеты в несколько кликов. Смарт-контракты выполняют разные задачи: от продажи токенов до управления децентрализованными организациями. Цифровые договоры можно создать самостоятельно, обладая начальными навыками программирования. Общество уже накопило большой опыт работы с EVM, поэтому в сети и на форумах легко найти ответы на все вопросы по запуску персонального блокчейна.
Часто задаваемые вопросы
Это децентрализованная виртуальная машина Ethereum, которая обрабатывает скрипты с использованием общедоступных узлов. EVM работает изолированно от основной сети и является удобной средой для тестирования новых продуктов.
Truffle Framework — популярный фреймворк от Ethereum. Это платформа с открытым исходным кодом для быстрой разработки децентрализованных приложений и управления жизненным циклом смарт-контрактов.
Официальные приложения Ethereum — MetaMask и MyEtherWallet.
Для создания программ на Эфириум чаще всего используется универсальный язык Solidity. Смарт-договоры также можно писать на C++ (EOS, XRP), JavaScript (LISK).
Персональные блокчейны обладают всеми характеристиками основной сети Ethereum. Они прозрачны, предсказуемы и неизменны.