Оригинальное название: «Знакомство со сталью».
Составил: Крис, Techub News
Steel, соединяющая RISC Zero и Ethereum
Успех сети Ethereum способствовал энергичному развитию экосистемы DApp, но вместе с этим возникают все более серьезные проблемы с масштабируемостью. Разработчики сталкиваются с дилеммой: либо ограничить функциональность и объем данных своих приложений, либо терпеть высокие платы за газ и ограничения на использование. А что, если разработчики смогут найти способ обойти эти ограничения?
RISC Zero — один из разработчиков zkVM. Возможно, вы часто слышали о zkEVM, но, возможно, вы не знакомы с его производной концепцией zkVM. RISC Zero недавно запустил новую технологию под названием Steel, библиотеку проверки вызовов представлений на основе Alloy, которая произведет революцию в том, как разработчики взаимодействуют с Ethereum L1 или другими EVM-совместимыми цепочками. Используя доказательства с нулевым разглашением и технологию zkVM RISC Zero, Steel предоставляет разработчикам масштабируемый, безопасный и экономичный способ выполнения вызовов просмотра, а также проверяемого чтения и вычисления состояния Ethereum.
Удобство Solidity и мощь ZK
Steel строит мост между разработкой приложений Ethereum и технологией доказательства с нулевым разглашением, значительно облегчая процесс применения разработчиками технологии доказательства с нулевым разглашением (ZK) в смарт-контрактах. Интегрируя возможности zkVM RISC Zero, Steel предоставляет разработчикам инструменты для создания более безопасных, масштабируемых и эффективных приложений на Ethereum L1 или любой EVM-совместимой цепочке.
Используя Steel, разработчики могут добиться значительных улучшений в:
Непосредственное выполнение сложной внутрисетевой логики: выполняйте смарт-контракты Solidity непосредственно на zkVM для поддержки более сложной внутрисетевой логики.
Доступ к историческому состоянию: доступ к историческому состоянию Ethereum в zkVM, предоставляющий более широкий ресурс для анализа и проверки данных.
Преодолевайте вычислительные ограничения: используйте продолжения для выполнения вычислений без ограничений по размеру блока или размеру данных транзакции.
Обеспечьте безопасность вычислений вне сети. Убедитесь, что безопасность вычислений вне сети так же надежна, как и выполнение операций в сети.
Проверенная zkVM: используйте первую zkVM, тщательно протестированную множеством партнеров и используемую в производственных средах.
Частный расчет: выполните частный расчет статуса Ethereum для повышения защиты данных.
Гибкость открытого исходного кода: обеспечивается за счет базы открытого исходного кода, что обеспечивает гибкость и свободу от ограничений поставщиков.
Внедрение Steel предоставляет разработчикам мощный инструмент для интеграции передовой технологии доказательства с нулевым разглашением в существующую технологию блокчейна, способствуя дальнейшим инновациям в разработке приложений блокчейна.
Бесшовная интеграция и экономия средств
В Steel выполнить вызов представления так же просто, как указать необходимый метод Solidity. Будь то получение баланса токенов ERC-20 (пример) или доступ ко всему из состояния Ethereum, Steel упрощает процесс за счет плавной интеграции с RISC Zero zkVM, обеспечивая при этом безопасность и эффективность. Тестирование показало, что Steel способна обрабатывать более 100 тысяч операций SLOAD за один вызов просмотра, экономя тысячи долларов на расходах на газ в основной сети. Мы можем доказать это примерно за 15 минут, используя Bonsai, для которого требуется как минимум 210M газа, что в 7 раз превышает лимит блока.
Пример: баланс ERC20Of
Приведенный ниже фрагмент кода демонстрирует процесс использования Steel для подтверждения баланса определенного адреса для контракта ERC-20, развернутого на Ethereum. В этом примере показано, как разработчики могут использовать Steel для взаимодействия с данными цепочки Ethereum внутри zkVM. Полный код можно посмотреть здесь.
Определить сигнатуру функции просмотра
Сначала используйте макрос sol!, чтобы определить сигнатуру функции BalanceOf ERC-20. Это позволит проанализировать синтаксис Solidity и сгенерировать соответствующую структуру Rust, которая реализует признак SolCall и может использоваться для вызова метода BalanceOf, который принимает адрес учетной записи и возвращает связанный баланс токена ERC-20.
готов позвонить
Затем настройте вызов, создав экземпляр структуры BalanceOfCall с адресом целевой учетной записи. В то же время определите константы для адреса контракта, который вы хотите запросить, и адреса вызывающего абонента.
Выполнить вызов в Main
Основная функция выполняется в zkVM и генерирует доказательства с нулевым разглашением. Сначала он считывает среду ввода, а затем создает объект ViewCallEnv, гарантируя, что текущее состояние соответствует ожидаемому корню состояния. После отправки соответствующего хеша и номера блока выполните вызов просмотра и распечатайте баланс.
принцип
Steel упрощает процесс выполнения кода Solidity в RISC Zero zkVM, позволяя выполнять проверку кода в три четких этапа:
Предварительная фаза: эта фаза инициируется вызовом просмотра на узле RPC Ethereum. Этот процесс кэширует необходимые слоты хранилища и заполняет базу данных EVM на основе требований запроса. Все слоты хранилища автоматически обнаруживаются и получаются посредством выполнения вызовов просмотра.
Проверка хранилища. Этот шаг включает в себя проверку целостности хранилища, чтобы убедиться, что данные в базе данных EVM соответствуют корню состояния блокчейна, тем самым проверяя легитимность данных.
Выполнение Solidity: выполнение указанных функций Solidity на EVM внутри RISC Zero zkVM, чтобы гарантировать, что код работает должным образом.
Благодаря этим трем шагам Steel предоставляет эффективный и надежный способ проверки и выполнения кода Solidity в RISC Zero zkVM, что значительно упрощает весь процесс.
Чем это отличается от подтверждения хранения?
При традиционном доказательстве хранения разработчики должны вручную выбирать слоты хранилища, используемые их смарт-контрактами, и переопределять логику смарт-контракта. При использовании Steel все слоты хранилища автоматически обнаруживаются и извлекаются на основе вызовов просмотра. Это экономит много времени разработчиков и снижает вероятность ошибок реализации, тем самым снижая вероятность появления уязвимостей безопасности.
Получить проверенный хеш блока
При проверке с использованием кода операции Blockhash в смарт-контракте Ethereum обязательство проверки должно ссылаться на хэш блока не старше 256 блоков. Учитывая, что среднее время блока составляет 12 секунд, это устанавливает узкие временные рамки примерно в 50 минут для полного создания доказательства и подтверждения того, что проверенная транзакция была включена в блок.
Если вам нужно получить проверенный хэш блока старше 256 блоков, вы можете использовать одну из нескольких стратегий:
Когда хеш блока, который понадобится, известен заранее (например, при запуске предложения по управлению), этот хэш блока можно сохранить в состоянии контракта.
Другой подход — использовать RISC Zero для проверки цепочки хешей от запрошенного блока до одного из последних 256 блоков.
Будущее сетевых приложений
Представьте себе будущее, в котором вычисления вне сети будут легко интегрированы с проверкой внутри сети. Steel вносит свой вклад в реализацию этой концепции, предоставляя разработчикам надежный доступ и вычисление полной истории Ethereum в zkVM, что позволяет им создавать следующее поколение более мощных сетевых приложений с большим объемом данных.
Автор: TechubNews; из «DeDehao», открытой контентной платформы ChainDD. Эта статья представляет собой только мнение автора и не отражает официальную позицию ChainDD. Оригинальность и подлинность содержания статей «DeHao» гарантируется. Если рукопись является плагиатом, фальсификацией и т. д., и это повлекло за собой правовые последствия, участник несет ответственность за публикацию статьи на платформе Dehao, если есть какие-либо нарушения, нарушения правил или другие неуместные высказывания. Читателям предлагается контролировать его. После подтверждения платформа будет немедленно отключена. Если у вас возникнут проблемы с содержанием статьи, свяжитесь с WeChat: Chaindd123.