Хотите сделать свой бизнес более эффективным, используя смарт-контракты? Разработаем для вас смарт-контракт, помогающий увеличить эффективность и автономность вашего бизнес-проекта.
Создаём архитектуру как для новых, так и уже существующих криптопроектов. Проводим аудит смарт-контрактов с применением ручных и автоматических средств поиска ошибок и возможных уязвимостей.
Слушаем и слышим клиентов, укладываемся в сроки, предлагаем оптимальные решения для поставленных задач и целей.
Если вы хоть немного погружены в блокчейн и криптовалюты, то наверняка не раз слышали слово смарт-контракт. Первое, что приходит на ум, — это что-то из области юриспруденции, какие-то умные договоры, за исполнением которых следит алгоритм и которые, вероятно, нельзя нарушать. Второе — это будущее сделок, скоро все они будут заключаться только через смарт-контракты. Разберёмся, так ли это в действительности.
Что такое смарт-контракт
Смарт-контракт (smart contract — умный контракт) — компьютерный алгоритм, предназначенный для заключения договора, контроля выполнения условий и самоисполнения обязательств. Он записывается в виде кода и выполняется только в блокчейне — распределённом реестре, которым управляет децентрализованная сеть из равноправных узлов.
Как вы уже поняли, никакого отношения к сделкам в реальном мире это не имеет. То есть с помощью смарт-контракта не получится купить машину или сделать безопасной поставку вагона пшеницы. А вот обменять один токен на другой без посредников или вложить его под проценты в криптобанк — пожалуйста.
В реальном мире договоры заключаются на бумаге или в цифровом виде с использованием ЭЦП. Их соблюдение контролирует государство, а споры решаются в судах. В Сети есть упоминания, как кто-то продал квартиру или какой-то другой актив с помощью смарт-контракта, но всё это лукавство.
Как и в офлайне, где договоры регулируются конкретными странами и юрисдикциями, смарт-контракт действует только в той сети, в которой он написан и развёрнут.
Понять суть проще на примере торгового автомата. Один пользователь засовывает в автомат марки, другой — ракушки. В автомате установлен курс обмена — 2 марки за 1 ракушку. Оба пользователя доверяют автомату, потому что его исходный код открыт, каждый может с ним ознакомиться.
Как появились умные контракты
Идею и термин «умный контракт» придумал Ник Сабо в 1994 году. Он описал его как криптографический протокол, который самостоятельно проводит сделки и контролирует их выполнение на основе алгоритмов.
Умные контракты стали широко применяться на практике, когда появился Эфириум. В 2013 году будущий основатель проекта Виталик Бутерин понял, что протокол Биткоина не пригоден для смарт-контрактов, поскольку проектировался не для этого. Тогда он решил создать с нуля свой протокол, более подходящий для такой задачи.
Смарт-контракты позволяют заключать сделки и проводить операции по заранее установленным правилам без посредников. Благодаря блокчейну такие операции прозрачны, прослеживаемы и необратимы.
Где используются смарт-контракты
Приложения на основе смарт-контрактов, размещённых в блокчейн-сетях, называются dApps (decentralized apps — децентрализованные приложения). Смарт-контракты с блокчейном обеспечивают исполнение обязательств по криптовалютным продуктам, делают их надёжными, предоставляют защищённую платёжную систему для криптовалют. Оракулы играют ключевую роль в создании смарт-контрактов нового поколения, которые предоставляют финтех-продукты и монетарные инструменты, например, те, что основаны на рыночных данных.
Выпуск токенов. Пожалуй, самый популярный способ использования. Наличие в открытом доступе сотен примеров обеспечивает простоту и доступность выпуска токенов для каждого.
Децентрализованные биржи. DEX (decentralized exchanges) — это биржи на блокчейне, позволяющие торговать токенами без необходимости хранить их у централизованных компаний. Яркие представители — Uniswap, PancakeSwap, SushiSwap, Polyx DEX. Самый распространённый вид DEX — автоматические маркетмейкеры. Они представляют собой ончейн-пулы ликвидности, обеспечивающие обмен токенов по установленной формуле, вместо книги ордеров. Благодаря им трейдеры получают доступ к ликвидности, а поставщики ликвидности — пассивный доход.
Стейкинг. Это предоставление криптовалюты в качестве доли. Протоколы используют его, чтобы обеспечить эффективную токеномику. Так становится видно, кому и в какой пропорции должны распределяться вознаграждения за стейкинг. Либо они могут быть урезаны, то есть автоматически изъяты при определённых обстоятельствах.
Фарминг. Эта новинка появилась в экосистеме DeFi и используется там, чтобы удерживать ликвидность и справедливо распределять токены управления протоколом между пользователями. Большинство DeFi-проектов, предлагающих фарминг, вознаграждают поставщиков ликвидности нативными токенами, которые финансируют развитие протокола.
Алгоритмические стейблкоины. Они похожи на централизованные и децентрализованные стейблкоины тем, что тоже обеспечиваются фиатом, криптовалютой или любым другим активом. Но есть отличие — алгоритмические стейблкоины поддерживают эквивалент привязки с помощью системы автоматических вознаграждений и штрафов. Если цена опускается ниже привязки, то сжигаются лишние токены, а если поднимается выше привязки, то выпускаются дополнительные токены.
Как создать смарт-контракт
Разберём создание смарт-контракта на примере Ethereum, самой распространённой блокчейн-платформы для них.
Сначала нужно проработать логику смарт-контракта и написать исходный код. Для этого используется язык программирования Solidity, который в чём-то похож на JavaScript. Код можно писать в любой среде разработки, но наибольшее распространение получила веб-среда Remix Online IDE. В ней можно разработать смарт-контракт, скомпилировать и разместить его в сети.
После компиляции нужно развернуть код в сети. Для этого делается специальная транзакция, а размещающий адрес платит комиссию сети, в нашем случае в ETH. Чем сложнее смарт-контракт, тем выше комиссия.
Если всё прошло успешно, то транзакция на размещение будет проведена в одном из блоков и смарт-контракт окажется в блокчейне под уникальным адресом. После этого он сможет принимать разные команды.
Сколько стоит разработка смарт-контрактов
Стоимость смарт-контракта напрямую зависит от его сложности. Например, создание простого смарт-контракта по выпуску токенов стоит 1000–5000 USD, а разработка сложных dApps начинается от 10 000 USD и может стоить более 100 000 USD.
Мы в Polygant занимаемся блокчейн-разработкой 10 лет и за это время создали почти сотню умных контрактов разной сложности. Напишите нам в Telegram, чтобы обсудить, насколько сложный нужен вашему криптопроекту.
Что такое аудит смарт-контрактов
Аудит безопасности — независимое изучение кода смарт-контракта, который проекты обычно размещают в GitHub. Аудит необходим DeFi-проектам и dApps, чьи многочисленные пользователи проводят транзакции на миллионы долларов. Как правило, аудит включает 4 этапа:
Аудиторы проводят первичный анализ контрактов.
Аудиторы предоставляют результаты анализа разработчикам проекта для принятия мер.
Разработчики проекта вносят изменения, устраняя обнаруженные ошибки.
Аудиторы составляют финальный отчёт с учётом внесённых изменений и оставшихся ошибок.
Аудит — стандартная процедура, которую заказывают масштабные криптопроекты. Многие инвесторы учитывают аудит, когда изучают новые DeFi-проекты. Причём они больше доверяют отчётам, составленным авторитетными аудиторскими фирмами.
Зачем нужен аудит
Через смарт-контракты переводятся или блокируются огромные суммы криптовалют, что часто привлекает хакеров. Из-за малейших ошибок в коде проект может лишиться миллионов пользовательских токенов. Например, взлом The DAO привёл к краже ETH на $50 миллионов и расколу Эфириума.
Команде проекта нужна независимая проверка безопасности контракта, ведь его транзакции необратимы. Особенности технологии блокчейн не позволят вернуть криптовалюту и решить проблемы после взлома, поэтому любые уязвимости надо выявлять заранее.
Цели аудита смарт-контрактов
Аудит помогает достичь разных целей, например:
Нахождение и закрытие уязвимостей
Аудиторы проверяют смарт-контракты на уязвимости. Некоторые обнаруживаются сразу, но большинство выявляется только с помощью специальных техник и инструментов. Например, при рыночной манипуляции уязвимый смарт-контракт может быть атакован с использованием мгновенных займов. Чтобы обнаружить такие слабые места, аудиторы пробуют взломать смарт-контракт. Вот самые распространённые атаки, которые они имитируют:
Рекурсивный вызов. Контракт вызывает другой, внешний контракт до того, как зафиксировать изменения. После этого второй контракт может рекурсивно взаимодействовать с первым неприемлемым способом, поскольку баланс первого ещё не обновился.
Опережение транзакции. Когда исполнение контракта зависит от его положения в блоке, можно протолкнуть транзакцию в очереди, переплатив за газ, чтобы нечестно победить в аукционах, лотереях, играх.
Целочисленное переполнение. Когда контракт выполняет арифметическую операцию, значение может превысить ёмкость хранилища, что приводит к неверному расчёту сумм.
Устранение ошибок безопасности
Аудиторы также исследуют сеть с размещёнными в ней смарт-контрактами и программный интерфейс приложения (API), который используется для взаимодействия с dApp. Если окажется, что проект не выдерживает DDoS-атаку или его API скомпрометирован, то пользователям небезопасно подключать криптокошельки к потенциально вредоносным блокчейн-приложениям.
Оптимизация затрат газа
Помимо проверки безопасности блокчейна, аудиторы изучают, насколько оптимизированы и эффективны смарт-контракты. Профессиональные блокчейн-разработчики стараются оптимизировать их производительность. Но если над проектом трудились неопытные разработчики, то они могли пренебречь оптимизацией.
Некоторым смарт-контрактам для исполнения необходимо отправить серию транзакций. Учитывая, что в блокчейн-сетях вроде Эфириума плата за газ высока, эффективные смарт-контракты позволили бы экономить на комиссиях за транзакции. А если они неэффективны, то дорогой газ может даже нарушить их работу.
Как проводится аудит смарт-контрактов
Аудит безопасности — распространённая услуга. И хотя методы аудиторских фирм могут различаться, типичный аудит проводится так:
Определяется объём работ. Спецификации контракта зависят от предназначения и архитектуры проекта. Они позволяют аудиторам понять, каких целей добивались разработчики при написании смарт-контракта.
Оценивается стоимость проведения аудита с учётом объёма работы.
Проводится аудит. Техники и инструменты проверки зависят от аудиторов. Они используют как автоматическую, так и ручную проверку.
Пишется черновик отчёта с обнаруженными ошибками. Он передаётся команде проекта для устранения проблем.
Составляется финальный отчёт, в котором указываются действия, предпринятые разработчиками проекта для исправления ошибок.
Что такое аудиторский отчёт
Отчёт предоставляется после проведения аудита. Во многих отчётах проблемам присваивается степень строгости: критическая, серьёзная, существенная, тривиальная. Также указывается статус проблемы, который сменяется, если команда проекта успела устранить её до составления финального отчёта.
Кроме общих выводов отчёт содержит анализ ошибок в коде, примеры неэффективного кода, рекомендации по исправлению. Когда команда проекта получит финальный отчёт, она может опубликовать его целиком или только результаты на сайте и в сообществе.
Сколько стоит аудит смарт-контракта
Стоимость зависит от количества смарт-контрактов, аудит которых заказывает криптопроект. В среднем аудит стоит 2000–3000 USD. Аудит сложного проекта может стоить более 10 000 USD. На стоимость услуги ещё может влиять репутация аудиторской фирмы.
У Polygant высокая репутация, но мы не считаем это поводом завышать стоимость аудита. Отправьте нам запрос, чтобы узнать, во сколько обойдётся аудит в вашем случае.
Johnny Walker
Chief Editor
7 октября 2024 Updated on Обновлено
10 декабря 2024