Успіх 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. З повним кодом можна ознайомитися тут.
Визначення сигнатури функції View
Почніть з визначення сигнатури функції балансу ERC-20 за допомогою sol! Макрос. Це проаналізує синтаксис Solidity для створення відповідної структури Rust, яка реалізує ознаку SolCall. Ця структура може бути використана для виклику методу balanceOf, який приймає адресу облікового запису та повертає пов'язаний з ним баланс токена ERC-20.
Підготовка дзвінка
Далі налаштуйте дзвінок, створивши екземпляр структури balanceOfCall з адресою цільового рахунку. Крім того, визначте константи для адреси контракту, який ви хочете запитати, та адреси абонента.
Виконання виклику в головній
Основна функція виконується в zkVM, виробляючи доказ з нульовим розголошенням. Він починається зі зчитування середовища введення, потім конструює об'єкт ViewCallEnv, гарантуючи, що поточний стан відповідає очікуваному кореневому стану стану. Після фіксації хешу та номера відповідного блоку виконується виклик представлення, а баланс виводиться.
Сталь спрощує процес доведення виконання коду Solidity в RISC Zero zkVM в три простих кроки:
У випадку з традиційними доказами сховища розробники повинні вручну вибирати, які слоти сховища використовують їхні смарт-контракти, і повторно реалізовувати логіку смарт-контрактів. За допомогою steel усі слоти зберігання виявляються та завантажуються автоматично на основі виконання виклику представлення. Це економить розробникам значну кількість часу та зменшує простір помилок реалізації, зменшуючи ймовірність вразливостей безпеки.
При використанні коду операції blockhash для перевірки в смарт-контрактах Ethereum зобов'язання щодо перевірки має посилатися на блокхеш віком не більше 256 блоків. Враховуючи середній час блоку 12 секунд, це встановлює вузький часовий проміжок приблизно 50 хвилин для завершення генерації доказу та підтвердження включення перевірочної транзакції в блок.
Коли в ланцюжку потрібен перевірений хеш блоку, старший за 256 блоків, можна використовувати ряд стратегій:
Ми уявляємо майбутнє, в якому відбудеться безшовна інтеграція офчейн-обчислень з перевіркою в мережі. Steel є нашим внеском у втілення цього бачення в реальність, дозволяючи розробникам достовірно отримувати доступ і обчислювати всю історію Ethereum всередині zkVM, щоб створити наступну хвилю багатих даними та більш функціональних ончейн-додатків.
Сталь є ключовим компонентом зобов'язань 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. З повним кодом можна ознайомитися тут.
Визначення сигнатури функції View
Почніть з визначення сигнатури функції балансу ERC-20 за допомогою sol! Макрос. Це проаналізує синтаксис Solidity для створення відповідної структури Rust, яка реалізує ознаку SolCall. Ця структура може бути використана для виклику методу balanceOf, який приймає адресу облікового запису та повертає пов'язаний з ним баланс токена ERC-20.
Підготовка дзвінка
Далі налаштуйте дзвінок, створивши екземпляр структури balanceOfCall з адресою цільового рахунку. Крім того, визначте константи для адреси контракту, який ви хочете запитати, та адреси абонента.
Виконання виклику в головній
Основна функція виконується в zkVM, виробляючи доказ з нульовим розголошенням. Він починається зі зчитування середовища введення, потім конструює об'єкт ViewCallEnv, гарантуючи, що поточний стан відповідає очікуваному кореневому стану стану. Після фіксації хешу та номера відповідного блоку виконується виклик представлення, а баланс виводиться.
Сталь спрощує процес доведення виконання коду Solidity в RISC Zero zkVM в три простих кроки:
У випадку з традиційними доказами сховища розробники повинні вручну вибирати, які слоти сховища використовують їхні смарт-контракти, і повторно реалізовувати логіку смарт-контрактів. За допомогою steel усі слоти зберігання виявляються та завантажуються автоматично на основі виконання виклику представлення. Це економить розробникам значну кількість часу та зменшує простір помилок реалізації, зменшуючи ймовірність вразливостей безпеки.
При використанні коду операції blockhash для перевірки в смарт-контрактах Ethereum зобов'язання щодо перевірки має посилатися на блокхеш віком не більше 256 блоків. Враховуючи середній час блоку 12 секунд, це встановлює вузький часовий проміжок приблизно 50 хвилин для завершення генерації доказу та підтвердження включення перевірочної транзакції в блок.
Коли в ланцюжку потрібен перевірений хеш блоку, старший за 256 блоків, можна використовувати ряд стратегій:
Ми уявляємо майбутнє, в якому відбудеться безшовна інтеграція офчейн-обчислень з перевіркою в мережі. Steel є нашим внеском у втілення цього бачення в реальність, дозволяючи розробникам достовірно отримувати доступ і обчислювати всю історію Ethereum всередині zkVM, щоб створити наступну хвилю багатих даними та більш функціональних ончейн-додатків.
Сталь є ключовим компонентом зобов'язань RISC Zero щодо запуску zkVM 1.0, що є важливою віхою на шляху до дешевої, безпечної перевірки доказів у ланцюжку та універсальних доказів з нульовим розголошенням. Почніть роботу зі Steel вже сьогодні, відвідавши наш репозиторій GitHub, де ви знайдете документацію, приклади коду та ресурси, які допоможуть вам інтегрувати Steel у ваш проект.