За последние два года хакеры несколько раз атаковали DeFi-протоколы с использованием мгновенных займов — эксплуатировали уязвимости ценовых оракулов и подменяли данные.
Проект Witnet работает над созданием децентрализованной сети оракулов, которая защитит блокчейн-экосистему от подобных взломов. Она обеспечивает доставку достоверных данных из внешних источников в смарт-контракты Ethereum и других блокчейнов. Рассказываем о работе протокола Witnet, его экосистеме и токене WIT.
Что такое оракулы и как с их помощью взламывают смарт-контракты
Смарт-контракт — это компьютерный алгоритм, который реализует логику определенного соглашения между пользователями блокчейна без участия посредников.
Децентрализованные биржи, лендинговые сервисы и другие DeFi-протоколы часто используют данные из источников вне блокчейна. Ими могут быть усредненный курс биткоина на централизованных биржах, стоимость золота на фондовом рынке или балансы адресов в других сетях. Контракты не могут самостоятельно получить эти данные и запрашивают их у оракулов.
Оракулы — это приложения, которые по запросу смарт-контрактов считывают нужную информацию и транслируют ее в блокчейн. От достоверности данных зависит честность работы приложения и сохранность средств пользователей.
Злоумышленники могут вмешаться в работу оракула, чтобы подменить передаваемую информацию и создать возможности для финансовых махинаций. Например, в ноябре 2020 года хакеры атаковали DeFi-проект Cheese Bank, воспользовавшись уязвимостью в механизмах оценки стоимости обеспечения оракулом Uniswap. В результате злоумышленники вывели $3,3 млн в стейблкоинах USDC, USDT и DAI.
Разработчики оракулов защищают данные с помощью криптографических подписей, проверок честности и усреднения значений. Команда Witnet решила проблему безопасности информации по-своему: выделила оракулы в децентрализованную сеть с алгоритмом консенсуса и вознаграждениями для владельцев оракулов.
Как работает протокол Witnet
В 2017 году CTO блокчейн-стартапа Stampery Адам Санчес де Педро, CEO Даниэле Леви и ведущий разработчик блокчейн-проекта Aragon Луис Иван Куэнде опубликовали white paper Witnet: A Decentralized Oracle Network Protocol.
«Смарт-контракты не смогут стать по-настоящему экономически децентрализованными до тех пор, пока мы не создадим децентрализованного оракула, который опирается не на слепое доверие, а на некий цифровой аналог мудрости толпы», — утверждают авторы документа.
White paper описывает протокол с сетью нод (witnesses, свидетели). Они соединяют смарт-контракты Ethereum с внешними источниками данных: фондовыми биржами, спортивными сайтами, агрегаторами прогнозов погоды или обозревателями блокчейнов.
Достоверность транслируемой информации проверяют сами ноды. Они получают за это вознаграждение в виде нативных токенов Witnet (WIT). Благодаря экономическому стимулу владельцы узлов заинтересованы в передаче правдивой информации.
В протоколе Witnet реализована разновидность алгоритма консенсуса Byzantine Fault Tolerance (BFT) с использованием доказательства приемлемости (Proof-of-Eligibility, PoE). Алгоритм BFT позволяет достичь консенсуса, даже если ⅓ нод в сети не отвечают или дают неверную информацию.
В процессе передачи данных в каждый момент времени участвует только часть нод. Сеть выделяет запросы пользователей в отдельные задачи, а затем выбирает подмножество узлов для ее решения.
Чтобы попасть в подмножество, нода сначала «узнает», сможет ли она выполнить задачу. Этот метод приемлемости (eligibility) называют криптографической схемой жеребьевки (cryptographic sortition scheme). Ее можно сравнить с проверкой наличия выигрышного билета участниками лотереи.
В Witnet вероятность того, что узел подойдет для решения текущей задачи, зависит от репутации. Она формируется на базе исторической честности ноды и качества выполнения предыдущих задач.
Запрашивать данные в Witnet можно с помощью:
- предметно-ориентированного языка программирования RAD Object Notation (RADON);
- сервиса Witnet Truffle box, который позволяет писать запросы данных на языке Solidity в Ethereum. Инструкция по созданию запросов данных на Solidity опубликована на сайте Witnet;
- с помощью десктопного кошелька Sheikah.
Каждый запрос данных пользователи оплачивают в нативных токенах Witnet (WIT). Процесс получения, проверки и доставки данных в смарт-контракты называется витнессингом (witnessing).
Упрощенный процесс получения данных выглядит так:
- Пользователь публикует запрос и указывает, какие данные ему нужны.
- Активные узлы проходят жеребьевку для выполнения задачи.
- Выбранные ноды получают данные из указанных источников, оформляют их в единый результат и подтверждают его правдивость.
- Остальные узлы записывают результат в текущий блок и добавляют его в блокчейн Witnet.
- Пользователь получает данные в блокчейне.
Процесс получения, подтверждения и доставки данных проходит в пределах одной эпохи (epoch) длительностью 90 секунд.
Экосистема Witnet: нода, кошелек и обозреватель блокчейна
В 2017 году Адам Санчес де Педро и Даниэле Леви основали некоммерческую организацию Witnet Foundation, которая курирует развитие экосистемы Witnet.
Организация разрабатывает Witnet-Rust — реализацию протокола Witnet на языке программирования Rust. Witnet-Rust состоит из двух основных компонентов: ноды и кошелька.
В справочных материалах Witnet можно посмотреть подробную инструкцию по установке ноды на Windows, Linux и macOS.
Каждая нода хранит историю всех транзакций в блокчейне Witnet. Разработчики рекомендуют запускать Witnet-Rust на компьютере с 4 Гб оперативной памяти и 100 Гб свободного места на диске. По оценкам команды Witnet, размер блокчейна будет расти на 75 Гб в год.
В июне 2021 Даниэле Леви основал стартап Other Plane Labs для разработки легкого десктопного Witnet-кошелька Sheikah. С его помощью пользователи получают и отправляют токены WIT, а также создают и выполняют запросы на предоставление данных вроде цены биткоина или Ethereum от одного или нескольких источников.
В июле 2020 года анонимный разработчик под псевдонимом Dr. CPU представил обозреватель блокчейна Witnet Explorer. Его пользователи могут отслеживать блоки и транзакции, а также смотреть статистику сети вроде количества добытых блоков и активных нод.
Токеномика Witnet: эмиссия и распределение токенов
WIT — нативный токен Witnet c общей эмиссией 2,5 млрд единиц. На момент публикации WIT стоит $0,033. Токен используется для вознаграждения владельцев нод Witnet и оплаты запросов данных пользователей сети.
Валидаторы получат 70% от общей эмиссии токена. Остальные 30% WIT были предварительно добыты в генезис-блоке основной сети. Команда проекта распределила премайн так:
- 250 млн (10%) — основателям и ранним инвесторам;
- 250 миллионов (10%) — Witnet Foundation;
- 250 миллионов (10%) — участникам пресейла на Republic, который прошел в марте 2018 года.
Время добычи блока в сети Witnet составляет 45 секунд. Вознаграждение за каждый блок составляет 250 WIT ($9 на момент публикации). В Witnet есть халвинг: каждые 3 500 000 блоков (примерно пять лет) вознаграждение будет уменьшаться на 50%.
До первого халвинга в 2025 году валидаторы будут находить около 1920 блоков в день. Ежедневная эмиссия составит 480 000 WIT, ежемесячная — 14,6 млн WIT, а годовая — 175 млн WIT.
Развитие проекта: грантовая программа, листинг на Gate.io и интеграции с другими блокчейнами
23 ноября 2021 года Witnet Foundation запустила грантовую программу для финансирования проектов: улучшения протокола, развития экосистемы и расширение сообщества Witnet. Для участия в программе нужно подать заявку на странице Witnet Grant Program в Notion.
В июле 2021 года группа разработчиков экосистемы Witnet запустила WitSwap — кроссчейн-мост для «обертывания» WIT в токены стандарта ERC-20 (eWIT). Мост позволил создать пул ликвидности для eWit на Uniswap v3. В декабре централизованная криптобиржа Gate.io провела листинг WIT.
В 2021 году Witnet Foundation заключила партнерства с Conflux Network, Boba Network и Metis, а в январе — с KuCoin Community Chain и Celo. По словам Адама Санчеса де Педро, в феврале проект интегрирует Polygon и Harmony, а в течение 2022 года — Avalanche, Moonbeam, Arbitrum, Optimism, Aurora, Klaytn, BSC, xDAI и Solana.
Согласно данным аналитического сервиса Witnet Data Feed, сейчас в 15 основных и тестовых блокчейнах развернуто более 50 ценовых каналов Witnet. В 2022 году разработчики планируют добавить 150 ценовых каналов, которые будут работать в 50 сетях. Оракулами Witnet пользуются такие проекты:
- TriAngle — ведущий протокол кредитования в сети Conflux. Он использует ценовой канал CFX/USDT от Witnet для расчета займа в стейблкоинах AUSD под залог CFX.
- Agora Space — социальная блокчейн-платформа. С помощью оракулов Witnet предоставляет смарт-контрактам доступы к децентрализованной проверке данных социальных сетей вроде количества просмотров на YouTube или количества подписчиков в Twitter.
- Aragon — фреймворк для создания децентрализованных автономных организаций (ДАО). В сочетании с оракулами Witnet он позволяет голосовать за предложения по управлению в Discord.
В октябре 2021 года разработчики встроили в протокол оракул-источник случайных данных (randomness oracle). С его помощью пользователи Witnet могут создавать NFT-коллекции и случайным образом присваивать токенам характеристики. Организаторы конференции Ethereum-разработчиков LisСon использовали этот оракул для выпуска NFT-коллекции Witty Creatures 2.0 на OpenSea.
Выводы
Witnet — децентрализованная сеть оракулов, которая предоставляет DeFi-сервисам в Ethereum и других сетях безопасный доступ к достоверным данным.
С момента публикации white paper в 2017 году команда Witnet создала мультичейн-экосистему, а количество активных нод по состоянию на февраль 2022 года превысило 5000 единиц.
В этом году Witnet Foundation планирует интегрировать 11 сетей, а также профинансировать проекты экосистемы в рамках грантовой программы. Оракулы стали важным инфраструктурным компонентом сектора DeFi, поэтому у Witnet есть все шансы занять эту нишу.