Успех Ethereum привел к процветанию экосистемы децентрализованных приложений, но проблемы масштабируемости становятся все более очевидными. Разработчики стоят перед сложным выбором: ограничить функциональность и насыщенность данными своих приложений или нести бремя чрезмерной платы за газ или лимитов газа. Что, если бы у разработчиков был способ обойти эти ограничения?
Steel, библиотека доказательств вызовов на основе Alloy от RISC Zero, представляет собой огромный сдвиг в том, как разработчики взаимодействуют с цепочками Ethereum L1 или EVM. Используя возможности доказательств с нулевым разглашением и RISC Zero zkVM, Steel позволяет разработчикам выполнять вызовы представлений, а также доказуемо считывать и вычислять состояние Ethereum масштабируемым, безопасным и экономически эффективным способом.
Steel устраняет разрыв между разработкой приложений Ethereum и технологией нулевого разглашения, позволяя разработчикам проще, чем когда-либо, использовать возможности ZK в своих смарт-контрактах. В сочетании с возможностями RISC Zero zkVM Steel позволяет разработчикам создавать более безопасные, масштабируемые и эффективные приложения на Ethereum L1 или любой цепочке, эквивалентной EVM.
С помощью Steel разработчики получают возможность:
В Steel выполнить вызов представления так же просто, как указать желаемые методы Solidity. Будь то получение баланса токенов ERC-20 (пример) или доступ к любому аспекту состояния Ethereum, Steel упрощает процесс, обеспечивая безопасность и эффективность за счет бесшовной интеграции с RISC Zero zkVM. Наши тесты показали, что Steel может обрабатывать более 100 тыс. операций SLOAD за один вызов представления, потенциально экономя тысячи долларов на плате за газ в основной сети. Мы можем доказать это примерно за 15 минут с помощью бонсай. Для этого потребуется не менее 210 млн газа, что в 7 раз превысит лимит блока.
В приведенных ниже фрагментах кода мы демонстрируем процесс подтверждения баланса конкретного адреса для развернутого контракта ERC-20 на Ethereum с помощью Steel. Этот пример демонстрирует, как разработчики могут использовать Steel для взаимодействия с данными Ethereum в пределах zkVM. С полным кодом можно ознакомиться здесь.
Определение сигнатуры функции представления
Начните с определения сигнатуры функции balanceOf в ERC-20 с помощью sol! макрос. Это проанализирует синтаксис Solidity для генерации соответствующей структуры Rust, которая реализует типаж SolCall. Эту структуру можно использовать для вызова метода balanceOf, который принимает адрес учетной записи и возвращает связанный баланс токенов ERC-20.
Подготовка к звонку
Затем настройте вызов, создав экземпляр структуры balanceOfCall с адресом целевой учетной записи. Кроме того, определите константы для адреса контракта, который вы хотите запросить, и адреса вызывающего абонента.
Выполнение вызова в Main
Основная функция выполняется в zkVM, создавая доказательство с нулевым разглашением. Он начинает с чтения входной среды, а затем создает объект ViewCallEnv, гарантируя, что текущее состояние соответствует ожидаемому корню состояния. После фиксации соответствующего хэша и номера блока выполняется вызов представления и выводится баланс.
Steel упрощает процесс доказательства выполнения кода Solidity в RISC Zero zkVM в три простых шага:
При использовании традиционных доказательств хранилища разработчики должны вручную выбирать, какие слоты хранения будут использоваться их смарт-контрактом, и заново реализовывать логику смарт-контракта. При использовании steel все слоты хранения обнаруживаются и извлекаются автоматически на основе выполнения вызова представления. Это значительно экономит разработчикам время и уменьшает количество ошибок при реализации, снижая вероятность уязвимостей в системе безопасности.
При использовании кода операции blockhash для валидации в смарт-контрактах Ethereum обязательство для валидации должно ссылаться на blockhash не старше 256 блоков. Учитывая, что среднее время блока составляет 12 секунд, это устанавливает узкие временные рамки примерно в 50 минут для завершения создания доказательства и подтверждения включения проверяющей транзакции в блок.
Когда в блокчейне требуется проверенный хэш блока старше 256 блоков, можно использовать несколько стратегий:
Мы представляем себе будущее, в котором существует бесшовная интеграция оффчейн-вычислений с ончейн-проверкой. Steel - это наш вклад в воплощение этого видения в реальность, позволяя разработчикам доказуемо получать доступ и выполнять вычисления на протяжении всей истории Ethereum внутри zkVM для создания следующей волны богатых данными и более функциональных ончейн-приложений.
Steel является ключевым компонентом стремления RISC Zero к запуску zkVM 1.0, вехи на пути к дешевой, безопасной проверке доказательств в цепочке и универсальным доказательствам с нулевым разглашением. Начните работу со Steel уже сегодня, посетив наш репозиторий GitHub для получения документации, примеров кода и ресурсов, которые помогут вам интегрировать Steel в свой проект.
Успех Ethereum привел к процветанию экосистемы децентрализованных приложений, но проблемы масштабируемости становятся все более очевидными. Разработчики стоят перед сложным выбором: ограничить функциональность и насыщенность данными своих приложений или нести бремя чрезмерной платы за газ или лимитов газа. Что, если бы у разработчиков был способ обойти эти ограничения?
Steel, библиотека доказательств вызовов на основе Alloy от RISC Zero, представляет собой огромный сдвиг в том, как разработчики взаимодействуют с цепочками Ethereum L1 или EVM. Используя возможности доказательств с нулевым разглашением и RISC Zero zkVM, Steel позволяет разработчикам выполнять вызовы представлений, а также доказуемо считывать и вычислять состояние Ethereum масштабируемым, безопасным и экономически эффективным способом.
Steel устраняет разрыв между разработкой приложений Ethereum и технологией нулевого разглашения, позволяя разработчикам проще, чем когда-либо, использовать возможности ZK в своих смарт-контрактах. В сочетании с возможностями RISC Zero zkVM Steel позволяет разработчикам создавать более безопасные, масштабируемые и эффективные приложения на Ethereum L1 или любой цепочке, эквивалентной EVM.
С помощью Steel разработчики получают возможность:
В Steel выполнить вызов представления так же просто, как указать желаемые методы Solidity. Будь то получение баланса токенов ERC-20 (пример) или доступ к любому аспекту состояния Ethereum, Steel упрощает процесс, обеспечивая безопасность и эффективность за счет бесшовной интеграции с RISC Zero zkVM. Наши тесты показали, что Steel может обрабатывать более 100 тыс. операций SLOAD за один вызов представления, потенциально экономя тысячи долларов на плате за газ в основной сети. Мы можем доказать это примерно за 15 минут с помощью бонсай. Для этого потребуется не менее 210 млн газа, что в 7 раз превысит лимит блока.
В приведенных ниже фрагментах кода мы демонстрируем процесс подтверждения баланса конкретного адреса для развернутого контракта ERC-20 на Ethereum с помощью Steel. Этот пример демонстрирует, как разработчики могут использовать Steel для взаимодействия с данными Ethereum в пределах zkVM. С полным кодом можно ознакомиться здесь.
Определение сигнатуры функции представления
Начните с определения сигнатуры функции balanceOf в ERC-20 с помощью sol! макрос. Это проанализирует синтаксис Solidity для генерации соответствующей структуры Rust, которая реализует типаж SolCall. Эту структуру можно использовать для вызова метода balanceOf, который принимает адрес учетной записи и возвращает связанный баланс токенов ERC-20.
Подготовка к звонку
Затем настройте вызов, создав экземпляр структуры balanceOfCall с адресом целевой учетной записи. Кроме того, определите константы для адреса контракта, который вы хотите запросить, и адреса вызывающего абонента.
Выполнение вызова в Main
Основная функция выполняется в zkVM, создавая доказательство с нулевым разглашением. Он начинает с чтения входной среды, а затем создает объект ViewCallEnv, гарантируя, что текущее состояние соответствует ожидаемому корню состояния. После фиксации соответствующего хэша и номера блока выполняется вызов представления и выводится баланс.
Steel упрощает процесс доказательства выполнения кода Solidity в RISC Zero zkVM в три простых шага:
При использовании традиционных доказательств хранилища разработчики должны вручную выбирать, какие слоты хранения будут использоваться их смарт-контрактом, и заново реализовывать логику смарт-контракта. При использовании steel все слоты хранения обнаруживаются и извлекаются автоматически на основе выполнения вызова представления. Это значительно экономит разработчикам время и уменьшает количество ошибок при реализации, снижая вероятность уязвимостей в системе безопасности.
При использовании кода операции blockhash для валидации в смарт-контрактах Ethereum обязательство для валидации должно ссылаться на blockhash не старше 256 блоков. Учитывая, что среднее время блока составляет 12 секунд, это устанавливает узкие временные рамки примерно в 50 минут для завершения создания доказательства и подтверждения включения проверяющей транзакции в блок.
Когда в блокчейне требуется проверенный хэш блока старше 256 блоков, можно использовать несколько стратегий:
Мы представляем себе будущее, в котором существует бесшовная интеграция оффчейн-вычислений с ончейн-проверкой. Steel - это наш вклад в воплощение этого видения в реальность, позволяя разработчикам доказуемо получать доступ и выполнять вычисления на протяжении всей истории Ethereum внутри zkVM для создания следующей волны богатых данными и более функциональных ончейн-приложений.
Steel является ключевым компонентом стремления RISC Zero к запуску zkVM 1.0, вехи на пути к дешевой, безопасной проверке доказательств в цепочке и универсальным доказательствам с нулевым разглашением. Начните работу со Steel уже сегодня, посетив наш репозиторий GitHub для получения документации, примеров кода и ресурсов, которые помогут вам интегрировать Steel в свой проект.