Доказательство мошенничества и концепция реализации ZK Fraud Proof
доказательство мошенничества является широко используемым технологическим решением в области блокчейна, первоначально возникшим в сообществе Ethereum и принятым такими проектами Layer2, как Arbitrum и Optimism. После возникновения экосистемы Bitcoin в 2023 году Робин Линус предложил решение BitVM, в основе которого лежит доказательство мошенничества, предоставляя новую модель безопасности для второго уровня или мостов на основе существующей технологической базы Bitcoin.
BitVM прошел через несколько этапов эволюции, начиная с ранней версии BitVM0, основанной на логических вентилях, и до более поздней версии BitVM2, в которой основное внимание уделяется ZK Fraud Proof и верификационным схемам Groth16, соответствующий технологический путь постоянно совершенствовался. Несколько проектов, таких как Bitlayer, Citrea, BOB и другие, реализовали различные решения на основе технологии BitVM.
В данной статье будет рассмотрен пример схемы доказательства мошенничества Optimism, проанализированы ее решения на основе виртуальной машины MIPS и интерактивного доказательства мошенничества, а также основные идеи ZK-доказательства мошенничества.
OutputRoot и StateRoot
Optimism - это известный проект Optimistic Rollup, его инфраструктура состоит из секвенсора и смарт-контрактов на блокчейне Ethereum. После обработки транзакций секвенсор отправляет данные в Ethereum. Запуск клиентского узла Optimism позволяет загружать эти данные и выполнять их локально, вычисляя хэш текущего состояния.
Если последователь загружает неправильный набор хешей состояния, локальные вычисления будут различаться, в этом случае можно инициировать сомнения через систему доказательства мошенничества.
Блокчейны, основанные на EVM, обычно используют структуру данных Merkle Tree для записи набора состояний, называемого World State Trie. После выполнения транзакции World State Trie изменяется, и его конечный хэш также обновляется. Эфириум называет этот хэш StateRoot, который используется для представления изменений набора состояний.
Система учетных записей Optimism аналогична Ethereum и также использует поле StateRoot. Секретар периодически загружает OutputRoot в Ethereum, который вычисляется на основе StateRoot и двух других полей.
Для проверки правильности OutputRoot в цепочке самым простым способом является реализация клиентского узла OP на Ethereum, но существуют две проблемы:
Умный контракт не может автоматически получить входные параметры, необходимые для доказательства мошенничества.
Ограничен Gas Limit в Ethereum, не поддерживает сложные вычислительные задачи
Первую проблему можно решить с помощью контракта PreimageOracle. Что касается второй проблемы, команда OP написала виртуальную машину MIPS на языке Solidity, реализовав часть функций узлов OP.
Команда разработчиков OP написала упрощённую программу на Golang, функционал которой в основном совпадает с выполнением транзакций узлом OP, созданием блоков и модулем OutputRoot. Однако из-за чрезмерных вычислительных затрат невозможно полностью выполнять все транзакции в цепочке.
Для этого Optimism разработал интерактивную систему доказательства мошенничества, которая детализирует процесс обработки транзакций в упорядоченной обработке кодов операций MIPS. После выполнения каждого кода операции хэш состояния виртуальной машины будет изменяться, и эти записи будут объединены в дерево Меркла.
В интерактивном доказательстве мошенничества необходимо определить, какой код операции MIPS привел к ошибке хэширования состояния виртуальной машины, затем воспроизвести это состояние в цепочке и выполнить этот код операции, чтобы проверить, совпадает ли результат. Это требует загрузки части информации о состоянии виртуальной машины MIPS в цепочку.
Контракты, связанные с доказательством мошенничества на блокчейне, выполняют операцию MIPS через функцию Step:
солидность
функция step(
байт памяти _stateData,
байт памяти _proof
) публичные возвраты (байт32) {
// ...
}
_stateData и _proof параметры содержат зависимые данные выполнения одной инструкции MIPS, такие как состояние регистров, хэш состояния памяти и т.д.
OP использует 32-разрядную архитектуру MIPS, память может быть организована в 28-уровневое двоичное дерево Меркла, на нижнем уровне имеется 2^27 листовых записей для данных по каждому адресу памяти. Хэш всех собранных данных листьев называется memRoot.
Интерактивное доказательство мошенничества
Для определения спорных MIPS кодов операции команда OP разработала протокол Fault Dispute Game(FDG). В FDG участвуют два角色: вызывающий и защищающий, обе стороны должны локально построить GameTree.
GameTree состоит из двух уровней дерева: первый уровень листьев - это OutputRoot различных блоков, второй уровень листьев - это хэш состояния виртуальной машины MIPS. Стороны спора многократно взаимодействуют в сети и в конечном итоге определяют одну операцию MIPS, которую необходимо выполнить в цепочке.
В заключение, интерактивное доказательство мошенничества включает в себя два основных механизма:
Необходимо выполнить операции MIPS и информацию о состоянии VM, которые должны быть записаны в блокчейн для FDG.
Выполнение данного кода операции на виртуальной машине MIPS в сети Ethereum, получение конечного результата
ZK-версия доказательства мошенничества
Традиционное доказательство мошенничества имеет сложное взаимодействие и сталкивается со следующими проблемами:
Многократные взаимодействия создают большие затраты на газ
Процесс взаимодействия длительный, в течение которого Rollup не может нормально выполнять транзакции
Высокая сложность разработки специализированных VM на блокчейне
Для решения этих проблем Optimism предложила концепцию ZK Fraud Proof. Суть заключается в том, чтобы указать транзакции, которые необходимо воспроизвести при вызове, последовательный обработчик предоставляет ZK-доказательство, которое проверяется контрактом Ethereum.
По сравнению с интерактивным доказательством мошенничества, ZK Fraud Proof заменяет многократные взаимодействия на однократное создание и верификацию ZK-доказательства, экономя время и затраты. В отличие от ZK Rollup, OP Rollup, основанный на ZK Fraud Proof, создает доказательства только в случае вызова, снижая вычислительные затраты.
Идея ZK-доказательства мошенничества также была принята BitVM2. Проекты, использующие BitVM2, такие как Bitlayer, Goat Network и другие, реализуют программу проверки ZK Proof через биткойн-скрипты, что значительно уменьшает размер программы для записи в блокчейн.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Подробное объяснение доказательства мошенничества: от интерактивных схем до технической эволюции ZK Fraud Proof
Доказательство мошенничества и концепция реализации ZK Fraud Proof
доказательство мошенничества является широко используемым технологическим решением в области блокчейна, первоначально возникшим в сообществе Ethereum и принятым такими проектами Layer2, как Arbitrum и Optimism. После возникновения экосистемы Bitcoin в 2023 году Робин Линус предложил решение BitVM, в основе которого лежит доказательство мошенничества, предоставляя новую модель безопасности для второго уровня или мостов на основе существующей технологической базы Bitcoin.
BitVM прошел через несколько этапов эволюции, начиная с ранней версии BitVM0, основанной на логических вентилях, и до более поздней версии BitVM2, в которой основное внимание уделяется ZK Fraud Proof и верификационным схемам Groth16, соответствующий технологический путь постоянно совершенствовался. Несколько проектов, таких как Bitlayer, Citrea, BOB и другие, реализовали различные решения на основе технологии BitVM.
В данной статье будет рассмотрен пример схемы доказательства мошенничества Optimism, проанализированы ее решения на основе виртуальной машины MIPS и интерактивного доказательства мошенничества, а также основные идеи ZK-доказательства мошенничества.
OutputRoot и StateRoot
Optimism - это известный проект Optimistic Rollup, его инфраструктура состоит из секвенсора и смарт-контрактов на блокчейне Ethereum. После обработки транзакций секвенсор отправляет данные в Ethereum. Запуск клиентского узла Optimism позволяет загружать эти данные и выполнять их локально, вычисляя хэш текущего состояния.
Если последователь загружает неправильный набор хешей состояния, локальные вычисления будут различаться, в этом случае можно инициировать сомнения через систему доказательства мошенничества.
Блокчейны, основанные на EVM, обычно используют структуру данных Merkle Tree для записи набора состояний, называемого World State Trie. После выполнения транзакции World State Trie изменяется, и его конечный хэш также обновляется. Эфириум называет этот хэш StateRoot, который используется для представления изменений набора состояний.
Система учетных записей Optimism аналогична Ethereum и также использует поле StateRoot. Секретар периодически загружает OutputRoot в Ethereum, который вычисляется на основе StateRoot и двух других полей.
! Предыстория BitVM: Реализация защиты от мошенничества и защиты от мошенничества ZK
MIPS виртуальная машина и память Merkle Tree
Для проверки правильности OutputRoot в цепочке самым простым способом является реализация клиентского узла OP на Ethereum, но существуют две проблемы:
Первую проблему можно решить с помощью контракта PreimageOracle. Что касается второй проблемы, команда OP написала виртуальную машину MIPS на языке Solidity, реализовав часть функций узлов OP.
Команда разработчиков OP написала упрощённую программу на Golang, функционал которой в основном совпадает с выполнением транзакций узлом OP, созданием блоков и модулем OutputRoot. Однако из-за чрезмерных вычислительных затрат невозможно полностью выполнять все транзакции в цепочке.
Для этого Optimism разработал интерактивную систему доказательства мошенничества, которая детализирует процесс обработки транзакций в упорядоченной обработке кодов операций MIPS. После выполнения каждого кода операции хэш состояния виртуальной машины будет изменяться, и эти записи будут объединены в дерево Меркла.
В интерактивном доказательстве мошенничества необходимо определить, какой код операции MIPS привел к ошибке хэширования состояния виртуальной машины, затем воспроизвести это состояние в цепочке и выполнить этот код операции, чтобы проверить, совпадает ли результат. Это требует загрузки части информации о состоянии виртуальной машины MIPS в цепочку.
Контракты, связанные с доказательством мошенничества на блокчейне, выполняют операцию MIPS через функцию Step:
солидность функция step( байт памяти _stateData, байт памяти _proof ) публичные возвраты (байт32) { // ... }
_stateData и _proof параметры содержат зависимые данные выполнения одной инструкции MIPS, такие как состояние регистров, хэш состояния памяти и т.д.
OP использует 32-разрядную архитектуру MIPS, память может быть организована в 28-уровневое двоичное дерево Меркла, на нижнем уровне имеется 2^27 листовых записей для данных по каждому адресу памяти. Хэш всех собранных данных листьев называется memRoot.
Интерактивное доказательство мошенничества
Для определения спорных MIPS кодов операции команда OP разработала протокол Fault Dispute Game(FDG). В FDG участвуют два角色: вызывающий и защищающий, обе стороны должны локально построить GameTree.
GameTree состоит из двух уровней дерева: первый уровень листьев - это OutputRoot различных блоков, второй уровень листьев - это хэш состояния виртуальной машины MIPS. Стороны спора многократно взаимодействуют в сети и в конечном итоге определяют одну операцию MIPS, которую необходимо выполнить в цепочке.
В заключение, интерактивное доказательство мошенничества включает в себя два основных механизма:
ZK-версия доказательства мошенничества
Традиционное доказательство мошенничества имеет сложное взаимодействие и сталкивается со следующими проблемами:
Для решения этих проблем Optimism предложила концепцию ZK Fraud Proof. Суть заключается в том, чтобы указать транзакции, которые необходимо воспроизвести при вызове, последовательный обработчик предоставляет ZK-доказательство, которое проверяется контрактом Ethereum.
По сравнению с интерактивным доказательством мошенничества, ZK Fraud Proof заменяет многократные взаимодействия на однократное создание и верификацию ZK-доказательства, экономя время и затраты. В отличие от ZK Rollup, OP Rollup, основанный на ZK Fraud Proof, создает доказательства только в случае вызова, снижая вычислительные затраты.
Идея ZK-доказательства мошенничества также была принята BitVM2. Проекты, использующие BitVM2, такие как Bitlayer, Goat Network и другие, реализуют программу проверки ZK Proof через биткойн-скрипты, что значительно уменьшает размер программы для записи в блокчейн.