Как создать смарт-контракт

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

Почему смарт-контракты — это будущее

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

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

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

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

Выполните последовательно такие действия:

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

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

  3. Реализуйте функцию создания уникальных токенов.

  4. Уточните, по каким правилам будет исполняться смарт-контракт и что произойдёт, если он не будет исполнен.

  5. Укажите дополнительные условия. К примеру, чтобы реализовать блокчейн-систему продажи билетов, защищённую от спекулянтов, введите правило, которое повышает цену билета при перепродаже.

Выбор платформы

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

Преимущества Ethereum — распространённость, популярность, широкое сообщество, которое активно развивает систему и помогает новичкам. Если в процессе разработки вы столкнётесь со сложностями, получить совет будет несложно.

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

К примеру, на децентрализованной платформе Lisk используется Javascript — распространённый язык с привычным синтаксисом. А децентрализованные приложения доступны в специальном магазине, где вы также сможете опубликовать и своё решение.

Создание смарт-контракта на примере Ethereum

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

Отметим, что особенность Solidity заключается и в системе адресации. Все учетные записи Ethereum имеют уникальные адреса. Они определяют стороны, заключающие контракт.

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

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

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

Интеграция

Готовый смарт-контракт нужно интегрировать с Javascript. Это делается с помощью фреймворка Truffle.

Первый шаг — развёртывание контракта и его перенос в тестовую сеть. Truffle такую сеть предоставляет, называется она Ganache. После переноса вы получите смарт-контракт в JSON-представлении. Вызывать его можно с помощью адресов тестовой сети из Javascript-приложения.

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

Полезные ссылки

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.