Смарт-контракты — это сбывшаяся мечта порядочных людей, так как они гарантируют выполнение контракта всеми сторонами сделки, причем без участия каких-либо посредников или гарантов. В этой статье мы подробно расскажем, что они из себя представляют, какими бывают и как самому разработать смарт-контракт.
Еще в 1994 году Ник Сабо, ученый-компьютерщик, правовед и криптограф (многие считают, что именно он скрывается за псевдонимом Сатоши Накамото, создателя Bitcoin), понял, что децентрализованный реестр можно использовать для создания самоисполняющихся контрактов, или смарт-контрактов. «Я называю эти контракты “умными”, потому что они гораздо более функциональны, чем их неодушевленные бумажные предки. Смарт-контракт — это набор обещаний, прописанных в цифровой форме, включая протоколы, в рамках которых стороны выполняют эти обещания», — говорил Ник Сабо, когда описывал концепцию своих смарт-контрактов.
Если разобрать это определение, то можно сказать, что смарт-контракт — это самоисполняющийся компьютерный алгоритм, в котором условия его исполнения напрямую закодированы в строках компьютерного кода, хранящегося в распределенной децентрализованной сети, такой как блокчейн. Этот код содержит данные и инструкции, которые выполняют все прописанные в договоре транзакции и обеспечивают их отслеживание и необратимость. При этом смарт-контракту не нужны банк, государство или иной посредник для обеспечения соблюдения контракта.
Если не вдаваться в технические детали, то можно сказать, что смарт-контракты нужны для автоматического обмена ценностями, например для обмена фиатных денег на биткоины, видеоигру, золото или доступ к веб-сайту. При этом принцип их работы можно сравнить с механизмом обычного кофейного автомата, который без продавца или владельца кофе меняет деньги покупателя на чашку кофе. Ценности в этом случае — кофе и деньги, а условия обмена — внесение некоторого количества денежных знаков (цены кофе) и напитков в хранилище автомата. Механизм автомата сначала принимает ценности обеих сторон (продавца и покупателя кофе) и затем производит автоматический обмен.
Смарт-контракт действует по аналогичному принципу, только его «механизм» прописан в виде компьютерного кода, который запускает определенные действия (функции, операции, транзакции, алгоритмы) при выполнении заранее прописанных условий и инструкций. Условия и инструкции действуют по логике «если →тогда»:
Также стоит отметить, что смарт-контракты, как правило, являются типом учетной записи, обладающей теми же правами, что и учетные записи пользователей. Только в случае смарт-контрактов их учетные записи не контролируются пользователями — учетная запись смарт-контракта управляется кодом внутри самого контракта.
Это важно, поскольку благодаря тому, что смарт-контракты являются учетными записями, мы, как пользователи блокчейна или DApps, можем взаимодействовать со смарт-контрактами. Например, мы можем отправлять токены в смарт-контракт, чтобы тот обменял их на другие токены (как в случае обмена криптовалютой c человеком) или чтобы смарт-контракт выполнил какую-то другую инструкцию / функцию.
Большинство существующих смарт-контрактов — это Smart Legal Contract. Они лежат в основе криптовалютных бирж, DeFi-проектов, GameFi-проектов и самых разных платформ на основе блокчейна — от NFT-маркетплейсов до метавселенных и площадок для токенизации и купли-продажи реальной недвижимости.
Децентрализованные автономные организации, или DAO можно определить как сообщества, которые управляются набором правил, принятых и кодифицированных с использованием смарт-контрактов. После принятия этих правил работа смарт-контрактов DAO будет заключаться в обеспечении их соблюдения и предоставлении механизмов правовой защиты, а также наказании нарушителей. Другими словами, смарт-контракты DAO — это законы и «цифровая» бюрократия.
Примерами смарт-контрактов DAO могут послужить протоколы управления Decentraland, Uniswap, Polkadot и MakerDAO. Согласно правилам этих проектов управление ими отдано держателям их нативных токенов, которые могут выдвигать различные предложения (например, определять структуру комиссий, менять код блокчейна, добавлять и / или удалять парачейны) и голосовать за них. Смарт-контракты DAO здесь отвечают за голосование и подсчет голосов.
Такого рода смарт-контракты работают под управляющей программой, и их главная задача — это обеспечить взаимодействие между этой программой и блокчейном. Например, ALC отвечают за интеграцию Интернета вещей (IoT) с блокчейном или за возможность использовать свой NFT в качестве игрового персонажа в игре Spider Tanks. Кроме того, ALC также могут отвечать за связь блокчейна с оракулами.
Теперь, когда мы разъяснили концепцию, цель использования и преимущества соглашений на основе блокчейна, давайте разберем, как можно разработать смарт-контракт для потребностей своего приложения или бизнеса.
Первое решение, которое вы должны принять при разработке смарт-контракта, — решить, на какой блокчейн-платформе его создать. Раньше этот выбор состоял из Эфириума и нескольких малоизвестных платформ. Сейчас же выбор огромен и он не столь однозначен. Да, Ethereum по-прежнему сохраняет лидерство по количеству запущенных смарт-контрактов и Dapps, но он медленный, дорогой и имеет большие проблемы с масштабированием, поэтому все больше стартапов выбирают другие блокчейны: Polygon, Polkadot, Cardano, Solana, BSC, Tezos или Hyperledger.
Вот шесть самых популярных платформ для разработки смарт-контрактов.
Как и в случае с блокчейнами, существует также несколько инструментов, которые разработчик может использовать для создания смарт-контракта. Все они разделены на подгруппы в зависимости от цели их использования. Некоторые такие технологии обязательны (например, вы не сможете создать смарт-контракт без использования языка программирования). Остальные не являются обязательными. Здесь мы постарались упомянуть все инструменты, которые популярны и широко используются разработчиками смарт-контрактов.
На этом этапе разработчик пишет код смарт-контракта. Это можно делать с нуля, но это не обязательно. Вы можете срезать углы, используя подходящий шаблон или библиотеку с открытым исходным кодом. У каждого блокчейна есть свой набор инструментов для разработки. Например, OpenZeppelin часто используется для смарт-контрактов на Ethereum. У Hyperledger также есть свой набор.
Учитывая то количество взломов смарт-контрактов, которое мы наблюдаем, тестирование, вероятно, является самым важным этапом разработки смарт-контрактов. Дело в том, что смарт-контракты — это программное обеспечение с открытым исходным кодом, а значит, любой хакер может изучить его код и найти «дыры», чтобы использовать их для взлома смарт-контракта. Кроме того, после того как вы создадите свой смарт-контракт и развернете его, изменить его будет невозможно, так что тестирование — это последний шанс для разработчика устранить возможные недочеты и ошибки.
Для упрощения тестирования у блокчейнов обычно есть тестовые сети, позволяющие произвести проверку смарт-контракта без каких-либо рисков потери денег, данных и репутации. Выбор тестовой сети зависит от блокчейна. Например, Ropsten или Rinkeby работают с Ethereum, а Hyperledger Fabric, основанный на разрешениях, требует Hyperledger Umbra.
Последний этап разработки смарт-контракта — это его развертывание в среде блокчейна. После этого ваш смарт-контракт станет доступным пользователям и его нельзя будет никак изменить. После этого, чтобы улучшить ваш смарт-контракт, вам нужно будет создать и запустить новую его версию, при этом старая версия будет и дальше существовать в сети блокчейна, пока он будет работать — именно поэтому сейчас есть три версии Uniswap в сети Эфириум, которые работают параллельно.
Любой может разработать и внедрить смарт-контракты. Все, что требуется, — это соответствующие навыки. Но даже если у вас нет таких навыков, ничего страшного, так как вы всегда можете нанять команду опытных блокчейн-разработчиков, таких как Merehead, которые помогут вам создать, протестировать и развернуть нужный вам смарт-контракт.