Знайомство зі сталлю

Середній5/27/2024, 5:05:26 AM
RISC Zero є одним із провідних розробників zkVM і нещодавно запустив Steel, бібліотеку доказів викликів на основі Alloy. Це вносить значні зміни в те, як розробники взаємодіють з Ethereum L1 або іншими ланцюгами EVM. Використовуючи докази з нульовим розголошенням і RISC Zero zkVM, Steel дозволяє розробникам виконувати виклики представлень, а також доказово зчитувати та обчислювати стан Ethereum масштабованим, безпечним і економічно ефективним способом.

Представляємо сталь: загартований сплав, що з'єднує RISC Zero з Ethereum

Успіх Ethereum призвів до процвітаючої екосистеми децентралізованих додатків, але проблеми масштабованості стають все більш очевидними. Розробники стоять перед складним вибором: обмежити функціональність і багатство даних своїх додатків або нести тягар надмірних зборів за газ або лімітів на газ. Що, якби у розробників був спосіб обійти ці обмеження?

Steel, бібліотека доказів виклику на основі Alloy від RISC Zero, являє собою величезні зміни в тому, як розробники взаємодіють з ланцюгами на основі Ethereum L1 або EVM. Використовуючи можливості доказів з нульовим розголошенням і RISC Zero zkVM, Steel дозволяє розробникам виконувати виклики представлень, а також доказово зчитувати та обчислювати стан Ethereum масштабованим, безпечним та економічно ефективним способом.

Зручність солідності з потужністю ZK.

Steel усуває розрив між розробкою додатків Ethereum і технологією з нульовим розголошенням, завдяки чому розробникам легше, ніж будь-коли, використовувати можливості ZK у своїх смарт-контрактах. У поєднанні з можливостями RISC Zero zkVM, Steel дозволяє розробникам створювати більш безпечні, масштабовані та ефективні програми на Ethereum L1 або будь-якому ланцюжку, еквівалентному EVM.

За допомогою Steel розробники отримують можливість:

  • Виконуйте смарт-контракти Solidity безпосередньо в zkVM для більш складної ончейн-логіки
  • Доступ до історичного стану Ethereum у zkVM
  • Обчислення без обмежень на розмір блоку та транзакцій за допомогою продовжень
  • Забезпечте безпечні та надійні офчейн-обчислення, ніби вони виконуються в ланцюжку
  • Використовуйте першу готову до виробництва zkVM, ретельно перевірену та використану різними партнерами
  • Приватні обчислення через стан Ethereum
  • Підтримуйте гнучкість завдяки кодовій базі з відкритим вихідним кодом без прив'язки до постачальника

Безшовна інтеграція та економія коштів

За допомогою Steel виконати виклик представлення так само просто, як вказати бажані методи Solidity. Незалежно від того, чи отримуєте ви баланс токенів ERC-20 (приклад) або отримуєте доступ до будь-якого аспекту стану Ethereum, Steel спрощує процес, забезпечуючи безпеку та ефективність завдяки безшовній інтеграції з RISC Zero zkVM. Наші тести показали, що Steel може обробляти понад 100 тисяч операцій SLOAD за один дзвінок, потенційно заощаджуючи тисячі доларів на платі за газ в основній мережі. Ми можемо довести це приблизно за 15 хвилин за допомогою бонсай. Для цього знадобиться щонайменше 210 млн газу, що перевищить ліміт блоку в 7 разів.

Приклад: баланс ERC20

У фрагментах коду нижче ми демонструємо процес підтвердження балансу конкретної адреси для розгорнутого контракту ERC-20 на Ethereum за допомогою Steel. Цей приклад демонструє, як розробники можуть використовувати Steel для взаємодії з ончейн-даними Ethereum у межах zkVM. З повним кодом можна ознайомитися тут.

Визначення сигнатури функції View

Почніть з визначення сигнатури функції балансу ERC-20 за допомогою sol! Макрос. Це проаналізує синтаксис Solidity для створення відповідної структури Rust, яка реалізує ознаку SolCall. Ця структура може бути використана для виклику методу balanceOf, який приймає адресу облікового запису та повертає пов'язаний з ним баланс токена ERC-20.

Підготовка дзвінка

Далі налаштуйте дзвінок, створивши екземпляр структури balanceOfCall з адресою цільового рахунку. Крім того, визначте константи для адреси контракту, який ви хочете запитати, та адреси абонента.

Виконання виклику в головній

Основна функція виконується в zkVM, виробляючи доказ з нульовим розголошенням. Він починається зі зчитування середовища введення, потім конструює об'єкт ViewCallEnv, гарантуючи, що поточний стан відповідає очікуваному кореневому стану стану. Після фіксації хешу та номера відповідного блоку виконується виклик представлення, а баланс виводиться.

Як це працює

Сталь спрощує процес доведення виконання коду Solidity в RISC Zero zkVM в три простих кроки:

  1. Фаза перед друком: ініціюйте попередню перевірку, зробивши виклик представлення до вузла Ethereum RPC. При цьому кешуються необхідні слоти для зберігання, заповнюючи базу даних EVM лише даними, необхідними для запиту. Усі слоти сховища виявляються та завантажуються автоматично на основі виконання виклику представлення.
  2. Перевірка сховища: Проведіть перевірку цілісності сховища, переконавшись, що дані в базі даних EVM збігаються з коренем стану блокчейну, тим самим підтверджуючи його легітимність.
  3. Виконання солідності: Запустіть задану функцію Solidity на EVM, всередині RISC Zero zkVM.

Чим це відрізняється від доказів зберігання?

У випадку з традиційними доказами сховища розробники повинні вручну вибирати, які слоти сховища використовують їхні смарт-контракти, і повторно реалізовувати логіку смарт-контрактів. За допомогою steel усі слоти зберігання виявляються та завантажуються автоматично на основі виконання виклику представлення. Це економить розробникам значну кількість часу та зменшує простір помилок реалізації, зменшуючи ймовірність вразливостей безпеки.

Отримання перевіреного хешу блоку

При використанні коду операції blockhash для перевірки в смарт-контрактах Ethereum зобов'язання щодо перевірки має посилатися на блокхеш віком не більше 256 блоків. Враховуючи середній час блоку 12 секунд, це встановлює вузький часовий проміжок приблизно 50 хвилин для завершення генерації доказу та підтвердження включення перевірочної транзакції в блок.

Коли в ланцюжку потрібен перевірений хеш блоку, старший за 256 блоків, можна використовувати ряд стратегій:

  • Коли хеш блоку, який буде потрібен, відомий заздалегідь (наприклад, при ініціюванні пропозиції щодо управління), цей хеш блоку може бути збережений до стану контракту.
  • Інший підхід полягає у використанні RISC Zero для підтвердження хеш-ланцюжка від блоку, який був запитаний до блоку в останньому 256.

Майбутнє ончейн-додатків

Ми уявляємо майбутнє, в якому відбудеться безшовна інтеграція офчейн-обчислень з перевіркою в мережі. Steel є нашим внеском у втілення цього бачення в реальність, дозволяючи розробникам достовірно отримувати доступ і обчислювати всю історію Ethereum всередині zkVM, щоб створити наступну хвилю багатих даними та більш функціональних ончейн-додатків.

Початок роботи зі сталлю

Сталь є ключовим компонентом зобов'язань RISC Zero щодо запуску zkVM 1.0, що є важливою віхою на шляху до дешевої, безпечної перевірки доказів у ланцюжку та універсальних доказів з нульовим розголошенням. Почніть роботу зі Steel вже сьогодні, відвідавши наш репозиторій GitHub, де ви знайдете документацію, приклади коду та ресурси, які допоможуть вам інтегрувати Steel у ваш проект.

Застереження:

  1. Ця стаття передрукована з [riscze]. Усі авторські права належать оригінальному автору [Сантьяго Кампосу]. Якщо є заперечення проти цього передруку, будь ласка, зв'яжіться з командою Gate Learn, і вони оперативно впораються з цим.
  2. Відмова від відповідальності: Погляди та думки, висловлені в цій статті, належать виключно автору і не є жодною інвестиційною порадою.
  3. Переклад статті на інші мови здійснює команда Gate Learn. Якщо не зазначено, копіювання, розповсюдження або плагіат перекладених статей заборонено.

Знайомство зі сталлю

Середній5/27/2024, 5:05:26 AM
RISC Zero є одним із провідних розробників zkVM і нещодавно запустив Steel, бібліотеку доказів викликів на основі Alloy. Це вносить значні зміни в те, як розробники взаємодіють з Ethereum L1 або іншими ланцюгами EVM. Використовуючи докази з нульовим розголошенням і RISC Zero zkVM, Steel дозволяє розробникам виконувати виклики представлень, а також доказово зчитувати та обчислювати стан Ethereum масштабованим, безпечним і економічно ефективним способом.

Представляємо сталь: загартований сплав, що з'єднує RISC Zero з Ethereum

Успіх Ethereum призвів до процвітаючої екосистеми децентралізованих додатків, але проблеми масштабованості стають все більш очевидними. Розробники стоять перед складним вибором: обмежити функціональність і багатство даних своїх додатків або нести тягар надмірних зборів за газ або лімітів на газ. Що, якби у розробників був спосіб обійти ці обмеження?

Steel, бібліотека доказів виклику на основі Alloy від RISC Zero, являє собою величезні зміни в тому, як розробники взаємодіють з ланцюгами на основі Ethereum L1 або EVM. Використовуючи можливості доказів з нульовим розголошенням і RISC Zero zkVM, Steel дозволяє розробникам виконувати виклики представлень, а також доказово зчитувати та обчислювати стан Ethereum масштабованим, безпечним та економічно ефективним способом.

Зручність солідності з потужністю ZK.

Steel усуває розрив між розробкою додатків Ethereum і технологією з нульовим розголошенням, завдяки чому розробникам легше, ніж будь-коли, використовувати можливості ZK у своїх смарт-контрактах. У поєднанні з можливостями RISC Zero zkVM, Steel дозволяє розробникам створювати більш безпечні, масштабовані та ефективні програми на Ethereum L1 або будь-якому ланцюжку, еквівалентному EVM.

За допомогою Steel розробники отримують можливість:

  • Виконуйте смарт-контракти Solidity безпосередньо в zkVM для більш складної ончейн-логіки
  • Доступ до історичного стану Ethereum у zkVM
  • Обчислення без обмежень на розмір блоку та транзакцій за допомогою продовжень
  • Забезпечте безпечні та надійні офчейн-обчислення, ніби вони виконуються в ланцюжку
  • Використовуйте першу готову до виробництва zkVM, ретельно перевірену та використану різними партнерами
  • Приватні обчислення через стан Ethereum
  • Підтримуйте гнучкість завдяки кодовій базі з відкритим вихідним кодом без прив'язки до постачальника

Безшовна інтеграція та економія коштів

За допомогою Steel виконати виклик представлення так само просто, як вказати бажані методи Solidity. Незалежно від того, чи отримуєте ви баланс токенів ERC-20 (приклад) або отримуєте доступ до будь-якого аспекту стану Ethereum, Steel спрощує процес, забезпечуючи безпеку та ефективність завдяки безшовній інтеграції з RISC Zero zkVM. Наші тести показали, що Steel може обробляти понад 100 тисяч операцій SLOAD за один дзвінок, потенційно заощаджуючи тисячі доларів на платі за газ в основній мережі. Ми можемо довести це приблизно за 15 хвилин за допомогою бонсай. Для цього знадобиться щонайменше 210 млн газу, що перевищить ліміт блоку в 7 разів.

Приклад: баланс ERC20

У фрагментах коду нижче ми демонструємо процес підтвердження балансу конкретної адреси для розгорнутого контракту ERC-20 на Ethereum за допомогою Steel. Цей приклад демонструє, як розробники можуть використовувати Steel для взаємодії з ончейн-даними Ethereum у межах zkVM. З повним кодом можна ознайомитися тут.

Визначення сигнатури функції View

Почніть з визначення сигнатури функції балансу ERC-20 за допомогою sol! Макрос. Це проаналізує синтаксис Solidity для створення відповідної структури Rust, яка реалізує ознаку SolCall. Ця структура може бути використана для виклику методу balanceOf, який приймає адресу облікового запису та повертає пов'язаний з ним баланс токена ERC-20.

Підготовка дзвінка

Далі налаштуйте дзвінок, створивши екземпляр структури balanceOfCall з адресою цільового рахунку. Крім того, визначте константи для адреси контракту, який ви хочете запитати, та адреси абонента.

Виконання виклику в головній

Основна функція виконується в zkVM, виробляючи доказ з нульовим розголошенням. Він починається зі зчитування середовища введення, потім конструює об'єкт ViewCallEnv, гарантуючи, що поточний стан відповідає очікуваному кореневому стану стану. Після фіксації хешу та номера відповідного блоку виконується виклик представлення, а баланс виводиться.

Як це працює

Сталь спрощує процес доведення виконання коду Solidity в RISC Zero zkVM в три простих кроки:

  1. Фаза перед друком: ініціюйте попередню перевірку, зробивши виклик представлення до вузла Ethereum RPC. При цьому кешуються необхідні слоти для зберігання, заповнюючи базу даних EVM лише даними, необхідними для запиту. Усі слоти сховища виявляються та завантажуються автоматично на основі виконання виклику представлення.
  2. Перевірка сховища: Проведіть перевірку цілісності сховища, переконавшись, що дані в базі даних EVM збігаються з коренем стану блокчейну, тим самим підтверджуючи його легітимність.
  3. Виконання солідності: Запустіть задану функцію Solidity на EVM, всередині RISC Zero zkVM.

Чим це відрізняється від доказів зберігання?

У випадку з традиційними доказами сховища розробники повинні вручну вибирати, які слоти сховища використовують їхні смарт-контракти, і повторно реалізовувати логіку смарт-контрактів. За допомогою steel усі слоти зберігання виявляються та завантажуються автоматично на основі виконання виклику представлення. Це економить розробникам значну кількість часу та зменшує простір помилок реалізації, зменшуючи ймовірність вразливостей безпеки.

Отримання перевіреного хешу блоку

При використанні коду операції blockhash для перевірки в смарт-контрактах Ethereum зобов'язання щодо перевірки має посилатися на блокхеш віком не більше 256 блоків. Враховуючи середній час блоку 12 секунд, це встановлює вузький часовий проміжок приблизно 50 хвилин для завершення генерації доказу та підтвердження включення перевірочної транзакції в блок.

Коли в ланцюжку потрібен перевірений хеш блоку, старший за 256 блоків, можна використовувати ряд стратегій:

  • Коли хеш блоку, який буде потрібен, відомий заздалегідь (наприклад, при ініціюванні пропозиції щодо управління), цей хеш блоку може бути збережений до стану контракту.
  • Інший підхід полягає у використанні RISC Zero для підтвердження хеш-ланцюжка від блоку, який був запитаний до блоку в останньому 256.

Майбутнє ончейн-додатків

Ми уявляємо майбутнє, в якому відбудеться безшовна інтеграція офчейн-обчислень з перевіркою в мережі. Steel є нашим внеском у втілення цього бачення в реальність, дозволяючи розробникам достовірно отримувати доступ і обчислювати всю історію Ethereum всередині zkVM, щоб створити наступну хвилю багатих даними та більш функціональних ончейн-додатків.

Початок роботи зі сталлю

Сталь є ключовим компонентом зобов'язань RISC Zero щодо запуску zkVM 1.0, що є важливою віхою на шляху до дешевої, безпечної перевірки доказів у ланцюжку та універсальних доказів з нульовим розголошенням. Почніть роботу зі Steel вже сьогодні, відвідавши наш репозиторій GitHub, де ви знайдете документацію, приклади коду та ресурси, які допоможуть вам інтегрувати Steel у ваш проект.

Застереження:

  1. Ця стаття передрукована з [riscze]. Усі авторські права належать оригінальному автору [Сантьяго Кампосу]. Якщо є заперечення проти цього передруку, будь ласка, зв'яжіться з командою Gate Learn, і вони оперативно впораються з цим.
  2. Відмова від відповідальності: Погляди та думки, висловлені в цій статті, належать виключно автору і не є жодною інвестиційною порадою.
  3. Переклад статті на інші мови здійснює команда Gate Learn. Якщо не зазначено, копіювання, розповсюдження або плагіат перекладених статей заборонено.
Розпочати зараз
Зареєструйтеся та отримайте ваучер на
$100
!