Геродот: Як використовувати доказ зберігання Starknet, щоб довести стан Ethereum?

原文:Геродот: доведення стану Ethereum за допомогою доказів зберігання на Starknet

Переклад і коректура: китайська спільнота Starknet"

Огляд

  • StarkWare співпрацює з Геродотом, щоб розробити метод доказу доказу, який відстежує всі блоки Ethereum з моменту його створення до теперішнього часу.
  • Це досягається за рахунок використання криптографічних доказів і хешів блоків.
  • Досягає мети EIP-2935 — отримати доступ до хешів історичних блоків понад 256 блоків нативним способом і відкрити нові можливості для нових сценаріїв використання, таких як DeFi.
  • Геродот і StarkWare впроваджують цю технологію в Ethereum як суспільне благо.

Вступ

Важливо мати доказовий доступ до історичного стану в Ethereum. Але поки що нам вдавалося отримати доступ до обмеженої історії до останньої години.

Але Starknet – це яскрава компанія, яка постійно впроваджує інновації, розширюючи межі можливого. Тепер, завдяки Геродоту та StarkWare, ми можемо відстежувати та отримувати всі хеші блоків Ethereum, починаючи з генезис-блоку, у ланцюжок нативним і доказовим способом.

Розглянемо докладніше, як Геродот і СтаркВер досягли цього і що це все означає. Почнемо з передісторії proof-of-storage.

Що таке доказ зберігання?

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

У нещодавній статті про Proof of Storage ми представили Геродота, команду, яка очолює дослідження та інновації Proof of Storage. В даний час команда Геродота впровадила нову технологію, яка дозволяє безнадійно доводити стан Ethereum з моменту створення блоку, значно покращуючи продуктивність proof-of-storage.

Давайте розберемося, як Геродот цього досягає, і чому це важливо.

Доказ заснування блоків Ethereum он-чейн

По-перше, нам потрібно зрозуміти, як працюють заголовки блоків Ethereum і хеші блоків.

Що таке хеш блоку та хеш блоку? **

Заголовок блоку - це частина блоку, яка підсумовує всю інформацію, що міститься в блоці, включаючи хеш батьківського блоку, мітку часу блоку, корінь стану і так далі.

! [Геродот: Як використовувати доказ зберігання Starknet, щоб довести стан Ethereum?] ](https://img-cdn.gateio.im/webp-social/moments-69a80767fe-57a52bbce0-dd1a6f-cd5cc0.webp)

Заголовок блоку Ethereum і дерево стану Меркла (джерело вмісту)

Заголовок блоку містить багато інформації. У цій статті ми зосередимося на коренях держави. Давайте розберемося, чому.

Як видно на зображенні вище, під заголовком блоку знаходиться стан облікового запису Ethereum. Кожен обліковий запис Ethereum має пов’язаний простір для зберігання, в якому зберігаються змінні облікового запису (по суті, стан смарт-контракту). Після того, як криптографічне зобов’язання, збережене обліковим записом, хешується, воно зберігається як кореневий код сховища разом із балансом облікового запису, випадковим числом і хешем коду. У сукупності вони в основному утворюють підсумок стану облікового запису.

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

Нарешті, оскільки кожен блок в Ethereum (і ланцюжку EVM) містить цей корінь стану, і кожен блок також має пов’язаний рядок, який називається хешем блоку (який є результатом хешування всього в заголовку блоку, включаючи корінь стану), хеш блоку є криптографічним зобов’язанням усього стану Ethereum у певний момент часу.

Хеш історичного блоку на EVM

З огляду на велику кількість критичної інформації, що зберігається в хешах блоків, нам часто потрібен доступ до їх історії.

У Solidity, якщо ми хочемо отримати хеш блоку, видобутого два блоки тому (зворотний відлік починається з блоку, що містить транзакцію), ми можемо використовувати наступний синтаксис:

! [Геродот: Як використовувати доказ зберігання Starknet, щоб довести стан Ethereum?] ](https://img-cdn.gateio.im/webp-social/moments-69a80767fe-2104f9b973-dd1a6f-cd5cc0.webp)

Спосіб дуже простий. Але є проблема — цей метод хешування блоків може отримати лише хеш останніх 256 блоків. Виходячи із середнього значення 12 секунд блоку в Ethereum, це еквівалентно 51,2-хвилинній історії в ланцюжку.

Ліміт у 256 блоків зазвичай достатній для людей, які бажають використовувати хеш історичного блоку як джерело ентропії (випадковості). Однак, враховуючи восьмирічну історію Ethereum, якщо ви хочете використовувати хеш блоку, щоб отримати його історичний стан у певному блоці, 51-хвилинної історії недостатньо.

Цей ончейн-ліміт на 256-блокове отримання хешу в першу чергу призначений для підвищення ефективності зберігання стану та зменшення потенційних проблем зі зростанням стану.

Геродот дає можливість отримати повну хеш-історію блоків

Як Геродот вирішує це обмеження і дозволяє досягти:

  • Доступ до повної історії хешів блоків Ethereum
  • Доведіть весь стан Ethereum з моменту створення блоку
  • І все це робиться без довіри

Ключ полягає в силі криптографічних доказів.

Давайте зануримося в процедурні етапи геш-накопичувача історичного блоку Геродота:

Крок 1: Зареєструйте хеш останнього блоку

В основній мережі Ethereum нещодавній хеш блоку реєструється в смарт-контракті під назвою SharpFactsAggregator. Цей хеш блоку може бути отриманий за допомогою хеш-коду операції блоку (значення коду операції 0x40) і збережений як проста рядкова змінна у вищевказаному смарт-контракті. Ви також можете зареєструвати відповідний номер блоку для подальшого доступу.

Припускаючи, що номер зареєстрованого блоку становить 18 000 000, ми можемо побачити за допомогою Etherscan, що хеш-значення цього блоку становить 0x95b1… 4baf3。

Крок 2: Доведіть хеш останнього блоку

Наступним кроком є отримання інформації про заголовок блоку блоку 18 000 000 з архівного вузла, обчислення хеш-значення його блоку поза мережею та 0x95b1 його зареєстрованим хеш-значенням блоку… 403. Цей процес обчислень також використовує prover для створення доказу цього обчислення.

Хеш цього блоку додається до гірського хребта Меркле. Це варіант дерева Меркла, і додавання нових елементів в дерево не вимагає великих обчислень.

Крок 3: Доведіть хеш блоку X-1

Після того, як ми довели, що заголовок блоку, отриманий з вузла архіву, є дійсним, ми беремо заголовок блоку X-1, обчислюємо його хеш-значення та порівнюємо його з батьківським хешем блоку X (це значення можна знайти в заголовку блоку X, який ми отримали раніше).

Якщо хеші збігаються, ми можемо бути впевнені, що заголовок блоку X-1 також дійсний. Оскільки всі обчислення можуть бути змодельовані як функція, STARK доказ цього обчислення може бути створений одночасно. Це призвело до доказу валідності заголовка блоку X-1 (див. малюнок нижче).

! [Геродот: Як використовувати доказ зберігання Starknet, щоб довести стан Ethereum?] ](https://img-cdn.gateio.im/webp-social/moments-69a80767fe-b49842862d-dd1a6f-cd5cc0.webp)

Крок 4: Рекурсивно доведіть хеш попереднього блоку

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

! [Геродот: Як використовувати доказ зберігання Starknet, щоб довести стан Ethereum?] ](https://img-cdn.gateio.im/webp-social/moments-69a80767fe-0cc8661bce-dd1a6f-cd5cc0.webp)

Важливо зазначити, що ці обчислення виконуються поза мережею, і Геродот також генерує докази обчислень.

Крок 5: Опублікуйте доказ у мережі та його подальше використання

Після того, як остаточний корінь MMR буде згенеровано, цей корінь може бути опублікований ончейн (на смарт-контракті, що агрегує докази) разом з обчислювальними доказами мільйонів блоків. Вартість перевірки цих доказів у ланцюжку виправдана через надзвичайно низьку вартість перевірки згенерованих доказів STARK.

Ми впровадили спосіб відстеження та доступу до всіх станів Ethereum з моменту генезис-блоку.

Команда Геродота називає ці MMR «накопичувачами хешу історичних блоків» і реалізує мету EIP-2935, запропоновану Віталіком Бутеріним і Томашем Станчаком у 2020 році – спосіб доступу до понад 256 блоків історичних даних. Це питання, яке відкрите вже більше трьох років! Однак Геродот і Старкнет досягли цього, не змінивши жодних шарів протоколу.

Деякі ключові моменти про вищевказаний процес:

  • Геродот обробляє близько 1350 блоків за партію, і докази кожної партії публікуються в ланцюжку. Після завершення всього процесу обробки перших 18 мільйонів блоків Ethereum корінь MMR історії блоків можна періодично оновлювати, оскільки нові блоки продовжують додаватися до історії ланцюга.

! [Геродот: Як використовувати доказ зберігання Starknet, щоб довести стан Ethereum?] ](https://img-cdn.gateio.im/webp-social/moments-69a80767fe-373c047e8c-dd1a6f-cd5cc0.webp)

Після того, як корінь MMR знайдений у ланцюжку, можна довести, що MMR містить хеш кожного блоку (що є фундаментальною властивістю дерева Меркла).

Перш ніж надсилати докази в основну мережу Ethereum, докази команди Геродота використовують систему SHARP, створену командою StarkWare. Головною перевагою системи SHARP є її здатність знижувати витрати та підвищувати ефективність генерації доказів.

Наведений вище робочий процес реплікується у двох окремих MMR, один з яких використовує хеш-функцію Keccak256, а інший – Poseidon. Ethereum використовуватиме варіант Keccak256, а Starknet – варіант Poseidon.

Корінь MMR основної мережі Ethereum надсилається до Starknet через власний протокол обміну повідомленнями Starknet від L1 до L2 для використання в Starknet. Хеш-акумулятор блоку Геродота також реалізує можливість доступу до історичних даних Ethereum у Starknet. Система обміну повідомленнями Starknet L1-to-L2 може бути використана для безпечної пересилки хешів блоків L1 і перевірених коренів MMR до Starknet. Після надсилання до Starknet підтвердження зберігання історичних даних Ethereum можна перевірити на відповідність цим зобов’язанням.

Нові можливості хеш-накопичувача блоку Геродота

Геродот і StarkWare впроваджують хеш-акумулятори блоків в Ethereum як суспільне благо. Після того, як остаточний корінь MMR і доказ обчислень будуть опубліковані в основній мережі Ethereum, будь-який розробник може використовувати їх для доступу до доведеного стану в будь-який момент часу з моменту створення ланцюга.

Оскільки корінь MMR Ethereum також надсилатиметься до Starknet через власний протокол міжланцюгового обміну повідомленнями, доступ до інформації про стан крос-чейн можна отримати простим і недовірливим способом. Протоколи DeFi можуть отримати вигоду від історичного підтвердження стану, використовуючи інформацію про баланс рахунку або інформацію про позицію рахунку в певний момент часу. Можна генерувати більш надійні випадкові числа, використовуючи більший хеш-запис історичного блоку. Кросчейн-голосування також стало простішим, оскільки користувачам не потрібно передавати активи між ланцюгами перед голосуванням на L2. З цим пов’язано набагато більше можливостей.

Висновок

У світі, де масштабованість, децентралізація та можливість перевірки блокчейну постійно розвиваються, команда Starknet стає маяком інновацій. Проєкти, створені на Starknet, стають ключовим елементом масштабування Ethereum. У міру того, як ми глибше занурюємося в це нове майбутнє, ознайомлення з екосистемою Starknet закладе основу для вашого майбутнього зростання.

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
Додати коментар
Додати коментар
Немає коментарів
  • Популярні активності Gate Fun

    Дізнатися більше
  • Рин. кап.:$0.1Холдери:2
    0.00%
  • Рин. кап.:$0.1Холдери:1
    0.00%
  • Рин. кап.:$2.25KХолдери:1
    0.00%
  • Рин. кап.:$2.26KХолдери:1
    0.00%
  • Рин. кап.:$2.26KХолдери:1
    0.00%
  • Закріпити