Блокчейны, в которых реализованы смарт-контракты, куда более перспективны, чем те, что не имеют такой возможности. Энтузиасты криптовалютного рынка верят, что в будущем смарт-контракты заменят любые договоры между людьми, а также между человеком и цифровой системой. Cryptonomist разобрался, что нужно для создания смарт-контракта.
Почему смарт-контракты — это будущее
С помощью смарт-контрактов люди будут вести бизнес в условиях новой децентрализованной экономики. IBM и другие крупные технологические компании уже заинтересовались переходом на смарт-контракты. И хотя пока заказчикам проще работать с бумажными договорами и известными брендами, новая технология агрессивно завоевывает рынок.
Если вы как разработчик можете создавать смарт-контракты, то в глазах работодателей ваша ценность многократно возрастает. При этом разработка смарт-контрактов достаточно проста. Просто это новая и не слишком хорошо изученная область.
Проектирование смарт-контракта
Чтобы создать смарт-контракт, нужно чётко понимать, зачем он нужен и каким должен быть. Смарт-контракты выгодны, потому что облегчают проведение транзакций, позволяют отслеживать информацию и не дают изменить ранее добавленные данные.
Выполните последовательно такие действия:
-
Определите стороны, которые будут заключать смарт-контракт. Одной из сторон может являться сама система.
-
Установите, записи о чём вы будете хранить в блокчейне.
-
Реализуйте функцию создания уникальных токенов.
-
Уточните, по каким правилам будет исполняться смарт-контракт и что произойдёт, если он не будет исполнен.
-
Укажите дополнительные условия. К примеру, чтобы реализовать блокчейн-систему продажи билетов, защищённую от спекулянтов, введите правило, которое повышает цену билета при перепродаже.
Выбор платформы
Наиболее популярной платформой для создания смарт-контрактов и децентрализованных приложений является 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-запрос.
Полезные ссылки
-
Ethereum Stack Exchange — база знаний, сообщество разработчиков.