Фьючерсы
Доступ к сотням фьючерсов
TradFi
Золото
Одна платформа мировых активов
Опционы
Hot
Торги опционами Vanilla в европейском стиле
Единый счет
Увеличьте эффективность вашего капитала
Демо-торговля
Введение в торговлю фьючерсами
Подготовьтесь к торговле фьючерсами
Фьючерсные события
Получайте награды в событиях
Демо-торговля
Используйте виртуальные средства для торговли без риска
Запуск
CandyDrop
Собирайте конфеты, чтобы заработать аирдропы
Launchpool
Быстрый стейкинг, заработайте потенциальные новые токены
HODLer Airdrop
Удерживайте GT и получайте огромные аирдропы бесплатно
Launchpad
Будьте готовы к следующему крупному токен-проекту
Alpha Points
Торгуйте и получайте аирдропы
Фьючерсные баллы
Зарабатывайте баллы и получайте награды аирдропа
Инвестиции
Simple Earn
Зарабатывайте проценты с помощью неиспользуемых токенов
Автоинвест.
Автоинвестиции на регулярной основе.
Бивалютные инвестиции
Доход от волатильности рынка
Мягкий стейкинг
Получайте вознаграждения с помощью гибкого стейкинга
Криптозаймы
0 Fees
Заложите одну криптовалюту, чтобы занять другую
Центр кредитования
Единый центр кредитования
Геродот: Как использовать доказательство хранения Starknet для подтверждения состояния Ethereum?
原文:Геродот: Доказательство состояния Ethereum с помощью доказательств хранилища в Starknet
Перевод и корректура: Китайское сообщество Starknet"
Общие сведения
Введение
Важно иметь доказуемый доступ к историческому состоянию Ethereum. Но до сих пор нам удавалось получить доступ к ограниченной истории до последнего часа.
Но Starknet — это динамичная, постоянно внедряющая инновации, раздвигающая границы возможного. Теперь, благодаря Herodotus и StarkWare, мы можем отслеживать и извлекать все хеши блоков Ethereum, начиная с генезис-блока, нативным и доказуемым способом.
Давайте подробнее рассмотрим, как Геродот и StarkWare добились этого и что все это значит. Начнем с предыстории proof-of-storage.
Что такое Proof of Storage?
Доказательство хранения позволяет нам доказать, что государство действительно существовало в какой-то момент в прошлом без какого-либо доверия к третьей стороне. При хранении доказательств доверие встраивается в математику. Подтверждение хранилища также можно использовать для доступа к этим состояниям в цепочках.
В недавней статье, посвященной Proof of Storage, мы познакомили вас с Геродотом, командой, возглавляющей исследования и инновации в области Proof of Storage. В настоящее время команда Herodotus внедрила новую технологию, которая обеспечивает надежное доказательство состояния Ethereum с момента создания блока, значительно повышая производительность доказательства хранения.
Давайте рассмотрим, как Геродот добивается этого и почему это важно.
Доказательство основополагающих блоков Ethereum в блокчейне
Во-первых, нам нужно понять, как работают заголовки блоков Ethereum и хеши блоков.
Что такое заголовок блока и хэш блока? **
Заголовок блока — это часть блока, которая суммирует всю информацию, содержащуюся в блоке, включая хэш родительского блока, метку времени блока, корень состояния и так далее.
! [Геродот: Как использовать доказательство хранилища Starknet для доказательства состояния Ethereum?] ](https://img-cdn.gateio.im/webp-social/moments-69a80767fe-57a52bbce0-dd1a6f-cd5cc0.webp)
Заголовок блока Ethereum и дерево Меркла состояния (источник контента)
Заголовок блока содержит много информации. В этой статье мы сосредоточимся на корнях состояния. Давайте разберемся, почему.
Как видно на изображении выше, под заголовком блока находится состояние счета Ethereum. Каждая учетная запись Ethereum имеет связанное с ней пространство для хранения, в котором хранятся переменные учетной записи (по сути, состояние смарт-контракта). После хэширования криптографического обязательства, хранящегося в учетной записи, оно сохраняется в корневом каталоге хранилища вместе с балансом учетной записи, случайным числом и хэшем кода. Взятые вместе, они в основном формируют сводку состояния счета.
Строится дерево Merkle Patricia Trie, содержащее состояние всех учетных записей 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 блоков в цепочке в первую очередь предназначен для повышения эффективности хранения состояний и уменьшения потенциальных проблем с ростом состояния.
Геродот дает возможность получить полную историю хеширования блоков
Как Геродот решает это ограничение и позволяет нам достичь:
Ключ к разгадке кроется в силе криптографических доказательств.
Давайте углубимся в процедурные шаги хеш-аккумулятора исторического блока Геродота:
Шаг 1: Зарегистрируйте хэш последнего блока
В основной сети Ethereum недавний хэш блока регистрируется в смарт-контракте под названием SharpFactsAggregator. Этот хэш блока может быть получен с помощью кода операции хэша блока (значение кода операции 0x40) и сохранен как простая строковая переменная в приведенном выше смарт-контракте. Вы также можете зарегистрировать соответствующий номер блока для последующего доступа.
Предполагая, что зарегистрированный номер блока равен 18 000 000, мы можем увидеть через Etherscan, что хеш-значение этого блока равно 0x95b1… 4БАФ3。
Шаг 2: Подтвердите хэш последнего блока
Следующим шагом является получение информации о заголовке блока 18 000 000 из архивного узла, вычисление его значения хэша блока вне цепочки и 0x95b1 его с зарегистрированным значением хэша блока… 4БАФ3. В этом вычислительном процессе также используется доказательство для создания доказательства этого вычисления.
Хеш этого блока добавляется к горному хребту Меркла. Это вариант дерева Меркла, и добавление новых элементов в дерево не требует много вычислений.
Шаг 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 блокам исторических данных. Это вопрос, который открыт уже более трех лет! Тем не менее, Геродот и Старкнет добились этого, не изменив никаких уровней протокола.
Некоторые ключевые моменты о вышеуказанном процессе:
! [Геродот: Как использовать доказательство хранилища Starknet для доказательства состояния Ethereum?] ](https://img-cdn.gateio.im/webp-social/moments-69a80767fe-373c047e8c-dd1a6f-cd5cc0.webp)
После того, как корень MMR найден в блокчейне, можно доказать, что MMR содержит хэш каждого блока (что является фундаментальным свойством дерева Меркла).
Перед отправкой доказательств в основную сеть Ethereum Provers команды Herodotus используют систему SHARP, созданную командой StarkWare. Основным преимуществом системы SHARP является ее способность снижать затраты и повышать эффективность создания проб.
Описанный выше рабочий процесс реплицируется в два отдельных MMR, один из которых использует хеш-функцию Keccak256, а другой — Poseidon. Ethereum будет использовать вариант Keccak256, в то время как Starknet будет использовать вариант Poseidon.
Корень MMR основной сети Ethereum отправляется в Starknet через собственный протокол обмена сообщениями Starknet L1-L2 для использования в Starknet. В хеш-аккумуляторе блока Herodotus также реализована возможность доступа к историческим данным Ethereum на Starknet. Система обмена сообщениями Starknet L1-to-L2 может быть использована для безопасной пересылки хэшей блоков L1 и проверенных корней MMR в Starknet. После отправки в Starknet доказательство хранения исторических данных Ethereum может быть проверено на соответствие этим обязательствам.
Новые возможности хеш-аккумулятора блоков Геродота
Herodotus и StarkWare внедряют аккумуляторы хэша блоков в Ethereum в качестве общественного блага. После того, как окончательный корень MMR и доказательство вычислений будут опубликованы в основной сети Ethereum, любой разработчик может использовать их для доступа к доказуемому состоянию в любой момент времени с момента создания цепочки.
Поскольку корень MMR Ethereum также будет отправлен в Starknet через собственный протокол обмена сообщениями между цепочками, информация о состоянии между цепочками может быть доступна простым и не требующим доверия способом. Протоколы DeFi могут извлечь выгоду из исторического доказательства состояния, используя информацию о балансе счета или информацию о позиции счета с кредитным плечом в определенный момент времени. Можно генерировать более надежные случайные числа, используя большую историческую хэш-запись блока. Кроссчейн-голосование также стало проще, так как пользователям не нужно переводить активы между цепочками перед голосованием на L2. Есть еще много возможностей, которые с этим связаны.
Заключение
В мире, где масштабируемость, децентрализация и проверяемость блокчейна постоянно развиваются, команда Starknet становится маяком инноваций. Проекты, созданные на Starknet, становятся ключевым элементом в масштабировании Ethereum. По мере того, как мы все глубже погружаемся в это новое будущее, знакомство с экосистемой Starknet заложит основу для вашего будущего роста.