Введение:
Что такое доступность данных? Для большинства людей первым впечатлением может быть "доступ к историческим данным определенного момента", но на самом деле это серьезное непонимание концепции DA. Недавно соучредители L2BEAT и сторонники данкшардинга, а также основатель Celestia разъяснили это заблуждение. Они отметили, что доступность данных (DA) на самом деле должна относиться к "публикации данных", но большинство людей интерпретируют DA как "возможность поиска исторических данных", что на самом деле связано с вопросами хранения данных.
Например, некоторое время назад Данкрад упомянул механизм обязательного вывода/вывода средств на Уровне 2, отметив, что обязательный вывод средств Validium требует получения последнего состояния L2 для построения доказательства Меркла, в то время как Plasma нужны данные только за 7 дней до этого (это относится к их методам определения легитимного корня состояния).
Этим Данкрад четко указал на то, что Validium требует от DA обеспечить безопасность средств пользователей, а Plasma - нет. Здесь пример использования Dankrad указывает на разницу между DA и поиском исторических данных, которая заключается в том, что DA часто включает только недавно опубликованные данные.
В L2BEAT еще больше подчеркнули различие между доступностью данных (DA) и хранением данных (DS). Бартек из L2BEAT неоднократно подчеркивал, что DA и хранение данных/возможность поиска исторических данных - это две разные вещи, и что пользователи могут получить доступ к нужным им данным L2 только потому, что узлы, предоставляющие данные, "достаточно добры к Вам". Кроме того, L2BEAT планирует использовать "наличие доступных узлов хранения данных с правами доступа" в качестве новой метрики для оценки Rollups, помимо DA.
Заявления членов сообщества Ethereum/Ethereum Foundation свидетельствуют о намерении прояснить и уточнить концепции, связанные с Уровнем 2, в будущем, а также дать более подробное определение самого Уровня 2. Это связано с тем, что многие термины, связанные с Rollup и L2, не были четко разъяснены, например, как далеко назад данные считаются "историческими" - некоторые считают, что поскольку смарт-контракты могут вызывать данные только из последних 256 блоков, данные, полученные до 256 блоков (50 минут), считаются "историческими".
Однако "Rollup", упомянутый Celestia и Ethereum Foundation, относится к двум разным вещам. Цель этой статьи - прояснить разницу между концепцией DA и хранением данных, начиная с источника DA, выборки доступности данных, и заканчивая методами реализации DA в Rollups, объясняя, что на самом деле означает доступность данных - публикация данных.
Концепция DA берет свое начало в вопросе "доступности данных", который основатель Celestia Мустафа объясняет следующим образом: DA - это то, как обеспечить публикацию всех данных в блоке в сети, когда производитель блока предлагает новый блок. Если производитель блока не освобождает все данные в блоке, невозможно проверить, содержит ли блок ошибочные транзакции.
Мустафа также отмечает, что Ethereum Rollups просто публикует данные блока L2 в цепочке Ethereum и полагается на ETH для обеспечения доступности данных. На официальном сайте Ethereum проблема доступности данных кратко сформулирована в виде вопроса: "Как мы можем проверить, доступны ли данные нового блока?". Для легких клиентов вопрос доступности данных относится к проверке доступности блока без необходимости загружать весь блок.
Официальный сайт Ethereum также четко различает доступность данных и возможность их получения: доступность данных означает способность узлов загружать данные блока, когда они предлагаются, другими словами, она связана со временем, пока блок не достигнет консенсуса. Возможность извлечения данных означает способность узлов извлекать историческую информацию из блокчейна. Хотя для архивирования могут потребоваться исторические данные блокчейна, узлам не нужно использовать исторические данные для проверки блоков и обработки транзакций.
По мнению китайского участника Celestia и партнера W3Hitchhiker Рена Хонги (Ren Hongyi), Layer 2 заранее предполагает, что Ethereum достаточно безопасен и децентрализован. Сортировщики могут уверенно отправлять данные DA в Ethereum, и эти данные будут беспрепятственно переданы всем полным узлам Ethereum. Поскольку полные узлы L2 сами запускают клиент Geth, они считаются подмножеством полных узлов Ethereum и поэтому могут получать данные DA уровня 2.
По мнению доктора Ци Чжоу, основателя EthStorage, определение доступности данных (DA) заключается в том, что никто не может скрыть данные о транзакциях, переданные пользователями в сеть. Соответствующая модель доверия заключается в том, что нам нужно доверять только самому протоколу Уровня 1 (L1), без необходимости вводить другие предположения о доверии.
Ци Чжоу отмечает, что текущая реализация DA в Ethereum - это, по сути, P2P-трансляция (с использованием протокола gossip), где каждый узел загружает, распространяет новые блоки и хранит данные Rollup. Однако полные узлы Ethereum не будут хранить исторические блоки вечно. После внедрения EIP-4844 они могут автоматически удалять данные, полученные некоторое время назад (по-видимому, 18 дней). Существует не так много архивных узлов, в которых хранятся все исторические данные по всему миру. EthStorage планирует заполнить этот пробел в экосистеме Ethereum и помочь Layer 2 создать свои специальные узлы для хранения данных.
Первые дискуссии о доступности данных со стороны Ethereum Foundation можно увидеть в твитах Виталика Бутерина и документах GitHub в 2017 году. В то время он считал, что для обеспечения масштабируемости и эффективности блокчейна необходимо увеличить аппаратную конфигурацию полных узлов (полные узлы - это те, которые загружают полный блок и проверяют его достоверность, а валидаторы, которые участвуют в консенсусе, являются подмножеством полных узлов). Однако повышение требований к аппаратному обеспечению для полных узлов также увеличит эксплуатационные расходы, что приведет к централизации блокчейна.
По этому поводу Виталик предложил разработать схему для устранения рисков безопасности, вызванных тенденцией к централизации высокопроизводительных полных узлов. Он планирует использовать коды стирания и случайную выборку данных для разработки протокола, который позволит узлам с меньшими аппаратными возможностями проверять, что блок не содержит проблем, не зная полного блока.
Его первоначальная идея была связана с идеей, упомянутой в техническом описании Биткойна, в котором говорится, что легким узлам не нужно получать полный блок, но они будут предупреждены честными полными узлами, если с блоком возникнут проблемы. Эту концепцию можно распространить на более поздние доказательства мошенничества, но она не гарантирует, что честные полные узлы всегда могут получить достаточное количество данных, и не позволяет судить постфактум, не утаил ли автор блока некоторые данные от публикации.
Например, узел A может опубликовать доказательство мошенничества, утверждая, что он получил неполный блок от узла B. Однако невозможно определить, был ли неполный блок сфабрикован A или отправлен B. Виталик отметил, что эту проблему можно решить с помощью Data Availability Sampling (DAS), что, очевидно, связано с вопросами публикации данных.
Виталик кратко рассказал об этих проблемах и их решениях в своей статье "Заметка о доступности данных и кодировании стирания". Он отметил, что доказательства DA (Data Availability), по сути, являются "дополнением" к доказательствам мошенничества.
Однако концепцию DA не так просто объяснить, о чем свидетельствует то, что документ Виталика на GitHub претерпел 18 исправлений, причем последнее исправление было подано 25 сентября 2018 года. Буквально за день до этого, 24 сентября 2018 года, основатель Celestia Мустафа и Виталик в соавторстве написали ставшую впоследствии знаменитой статью "Доказательства мошенничества и доступности данных: Максимизация безопасности легких клиентов и масштабирование блокчейн с нечестным большинством".
Интересно, что первым автором статьи указан Мустафа, а не Виталик (другой автор сейчас работает исследователем в публичном блокчейне Sui). В статье упоминается концепция доказательств мошенничества и объясняется принцип выборки доступности данных (Data Availability Sampling, DAS), в результате чего разрабатывается смешанный протокол DAS + двумерное кодирование стирания + доказательства мошенничества. В статье особо отмечается, что система доказательств DA является необходимым дополнением к доказательствам мошенничества.
С точки зрения Виталика, протокол работает следующим образом:
Предположим, что публичный блокчейн имеет N узлов консенсуса (валидаторов) с высокопроизводительным оборудованием, которое обеспечивает высокую пропускную способность данных и эффективность. Хотя такой блокчейн может иметь высокий показатель TPS (транзакций в секунду), количество узлов консенсуса, N, относительно невелико, что делает его более централизованным и повышает вероятность сговора между узлами.
Однако предполагается, что хотя бы один из N узлов консенсуса является честным. До тех пор, пока хотя бы 1/N валидаторов честны, способны обнаружить и передать доказательства мошенничества, когда блок недействителен, легкие клиенты или честные валидаторы могут узнать о проблемах безопасности в сети и использовать такие механизмы, как уничтожение вредоносных узлов и социальные форки консенсуса, чтобы вернуть сеть в нормальное состояние.
Как уже упоминал Виталик, если честный полноценный узел получит блок, обнаружит, что в нем не хватает некоторых частей, и опубликует мошенническое доказательство, будет сложно определить, не опубликовал ли автор блока эту часть, не была ли она утаена другими узлами во время передачи, или это ложный флаг узла, опубликовавшего мошенническое доказательство. Более того, если большинство узлов сговорится, 1/N честный валидатор может оказаться в изоляции, не имея возможности получать новые блоки, что является сценарием атаки с целью сокрытия данных. В таких случаях честный узел не может определить, вызвано ли это плохими условиями сети или преднамеренным сговором других узлов, а также не может знать, изолированы ли другие узлы, что затрудняет суждение о том, сговорилось ли большинство узлов о сокрытии данных.
Поэтому необходимо найти способ гарантировать, с очень высокой вероятностью, что честные валидаторы смогут получить данные, необходимые для проверки блоков; а также определить, кто стоит за атакой с сокрытием данных - тот ли, кто предложил блок, не опубликовав достаточное количество данных, другие узлы, или же это сговор большинства. Очевидно, что эта модель безопасности обеспечивает гораздо большую защиту, чем "предположение о честном большинстве", распространенное в типичных цепочках PoS, и выборка доступности данных (DAS) - это конкретный метод реализации.
Предположим, что в сети много световых узлов, возможно, 10 раз по N, каждый из которых подключен к нескольким валидаторам (для простоты предположим, что каждый световой узел подключен ко всем N валидаторам). Эти легкие узлы будут проводить многократные выборки данных из валидаторов, каждый раз случайным образом запрашивая небольшую порцию данных (предположим, всего 1% блока). Затем они будут распространять полученные фрагменты среди валидаторов, не имеющих таких данных. Пока существует достаточное количество световых узлов и частота выборки данных достаточно высока, даже если некоторые запросы будут отклонены, но на большинство из них будет получен ответ, можно быть уверенным, что все валидаторы в конечном итоге смогут получить необходимое количество данных для проверки блока. Это может свести на нет влияние утаивания данных узлами, отличными от предлагающего блок.
(Источник изображения: W3 Hitchhiker)
Если большинство валидаторов сговорятся и откажутся отвечать на большинство запросов от лёгких узлов, людям будет легко понять, что в цепочке есть проблема (ведь даже если у некоторых людей плохой интернет, это не приведёт к тому, что большинство запросов от лёгких узлов будет отклонено). Таким образом, вышеупомянутая схема с большой вероятностью может определять поведение большинства в сговоре, хотя такие ситуации сами по себе редки. При таком подходе можно устранить неопределенности, возникающие из других источников, кроме разработчика блока. Если автор блока утаивает данные, например, не публикует достаточно данных в блоке для его проверки (после введения двумерного кодирования стирания блок содержит 2k2k фрагментов, и для восстановления исходных данных блока требуется как минимум около kk фрагментов, или 1/4. Чтобы помешать другим восстановить исходные данные, предлагающий должен скрыть не менее k+1*k+1 фрагментов), в конечном итоге они будут обнаружены честными валидаторами, которые затем передадут доказательства мошенничества, чтобы предупредить других.
По словам Виталика и Мустафы, то, что они сделали, - это, по сути, объединили идеи, которые уже были предложены другими, и добавили к ним свои собственные инновации. Если рассматривать концепцию и метод реализации в целом, становится ясно, что "доступность данных" означает, были ли данные, необходимые для проверки последнего блока, опубликованы автором блока и могут ли они быть получены проверяющими. Речь идет о том, "полностью ли опубликованы данные", а не о том, "можно ли получить исторические данные".
С учетом этого утверждения давайте рассмотрим, как Data Availability (DA) реализована в Ethereum Rollups, и это станет совершенно ясно: блок-промоутер в Rollup известен как Sequencer, который с определенными интервалами публикует данные, необходимые для проверки переходов состояния уровня 2 в Ethereum. В частности, он инициирует транзакцию с назначенным контрактом, вписывая данные, связанные с DA, в пользовательские входные параметры, которые затем записываются в блок Ethereum. Учитывая высокую степень децентрализации Ethereum, можно быть уверенным, что данные, предоставленные секвенсором, будут без проблем получены "верификаторами". Однако организации, играющие роль "верификаторов", различаются в разных сетях Rollup.
Например, в случае с Arbitrum секвенсор размещает партии транзакций в определенном контракте на Ethereum. Сам контракт не проверяет эти данные, но посылает событие для полных узлов L2, чтобы они узнали, что секвенсор опубликовал партию транзакций. В частности, ZK Rollups используют контракт Verifier на Ethereum в качестве "верификатора". ZK Rollup должен публиковать только State Diff + Validity Proof, т.е. информацию об изменениях состояния плюс доказательство достоверности. Контракт Verifier проверяет доказательство действительности, чтобы убедиться, что оно соответствует State Diff. Если проверка пройдена, L2-блок/пакет, опубликованный секвенсором, считается действительным.
(Источник: Бывшая "Белая книга" Polygon Hermez)
Оптимистичные сворачивания требуют публикации большего количества данных в Ethereum, поскольку они полагаются исключительно на полные узлы L2 для загрузки данных и проверки достоверности блоков. Это означает, что, как минимум, должны быть раскрыты цифровые подписи каждой транзакции L2 (сейчас обычно используются агрегированные подписи). Если выполняются вызовы контрактов, входные параметры также должны быть раскрыты, помимо адресов передачи транзакций, значений nonce для предотвращения атак воспроизведения и т.д. Однако по сравнению с полными данными о транзакциях все равно происходит некоторая обрезка.
По сравнению с ZK Rollups, стоимость DA (Data Availability) для Optimistic Rollups выше, потому что ZK Rollups нужно раскрывать только окончательные изменения состояния после выполнения партии транзакций, сопровождая их доказательством достоверности, используя лаконичность ZK SNARK/STARK; в то время как Optimistic Rollups может использовать только самый громоздкий метод, требующий повторного выполнения всех транзакций на других узлах с полным L2.
Ранее W3hitchhiker примерно подсчитал, что без учета будущего развития EIP-4844 и blobs, эффект масштабирования ZKR (Zero-Knowledge Rollups) может в несколько раз превысить эффект OPR (Optimistic Rollups). Если рассматривать смарт-кошельки, связанные с EIP-4337 (которые используют отпечатки пальцев и данные радужной оболочки глаза вместо подписей закрытых ключей), то преимущество ZKR будет еще более очевидным, поскольку ему не нужно размещать двоичные данные отпечатков пальцев и радужной оболочки глаза на Ethereum, в то время как оптимистичные ролловеры это делают.
Что касается Validium и Plasma/Optimium, то они фактически используют внецепочечный уровень DA Ethereum для достижения DA. Например, компания ImmutableX, принявшая систему доказательства достоверности, создала набор узлов DAC (Data Availability Committee) специально для публикации данных, связанных с DA; Metis публикует данные DA на Memlabs, а Rooch и Manta используют Celestia. В настоящее время, благодаря наличию DAS (Data Availability Solutions) и систем доказательства мошенничества, Celestia является одним из самых надежных проектов уровня DA за пределами Ethereum.
Введение:
Что такое доступность данных? Для большинства людей первым впечатлением может быть "доступ к историческим данным определенного момента", но на самом деле это серьезное непонимание концепции DA. Недавно соучредители L2BEAT и сторонники данкшардинга, а также основатель Celestia разъяснили это заблуждение. Они отметили, что доступность данных (DA) на самом деле должна относиться к "публикации данных", но большинство людей интерпретируют DA как "возможность поиска исторических данных", что на самом деле связано с вопросами хранения данных.
Например, некоторое время назад Данкрад упомянул механизм обязательного вывода/вывода средств на Уровне 2, отметив, что обязательный вывод средств Validium требует получения последнего состояния L2 для построения доказательства Меркла, в то время как Plasma нужны данные только за 7 дней до этого (это относится к их методам определения легитимного корня состояния).
Этим Данкрад четко указал на то, что Validium требует от DA обеспечить безопасность средств пользователей, а Plasma - нет. Здесь пример использования Dankrad указывает на разницу между DA и поиском исторических данных, которая заключается в том, что DA часто включает только недавно опубликованные данные.
В L2BEAT еще больше подчеркнули различие между доступностью данных (DA) и хранением данных (DS). Бартек из L2BEAT неоднократно подчеркивал, что DA и хранение данных/возможность поиска исторических данных - это две разные вещи, и что пользователи могут получить доступ к нужным им данным L2 только потому, что узлы, предоставляющие данные, "достаточно добры к Вам". Кроме того, L2BEAT планирует использовать "наличие доступных узлов хранения данных с правами доступа" в качестве новой метрики для оценки Rollups, помимо DA.
Заявления членов сообщества Ethereum/Ethereum Foundation свидетельствуют о намерении прояснить и уточнить концепции, связанные с Уровнем 2, в будущем, а также дать более подробное определение самого Уровня 2. Это связано с тем, что многие термины, связанные с Rollup и L2, не были четко разъяснены, например, как далеко назад данные считаются "историческими" - некоторые считают, что поскольку смарт-контракты могут вызывать данные только из последних 256 блоков, данные, полученные до 256 блоков (50 минут), считаются "историческими".
Однако "Rollup", упомянутый Celestia и Ethereum Foundation, относится к двум разным вещам. Цель этой статьи - прояснить разницу между концепцией DA и хранением данных, начиная с источника DA, выборки доступности данных, и заканчивая методами реализации DA в Rollups, объясняя, что на самом деле означает доступность данных - публикация данных.
Концепция DA берет свое начало в вопросе "доступности данных", который основатель Celestia Мустафа объясняет следующим образом: DA - это то, как обеспечить публикацию всех данных в блоке в сети, когда производитель блока предлагает новый блок. Если производитель блока не освобождает все данные в блоке, невозможно проверить, содержит ли блок ошибочные транзакции.
Мустафа также отмечает, что Ethereum Rollups просто публикует данные блока L2 в цепочке Ethereum и полагается на ETH для обеспечения доступности данных. На официальном сайте Ethereum проблема доступности данных кратко сформулирована в виде вопроса: "Как мы можем проверить, доступны ли данные нового блока?". Для легких клиентов вопрос доступности данных относится к проверке доступности блока без необходимости загружать весь блок.
Официальный сайт Ethereum также четко различает доступность данных и возможность их получения: доступность данных означает способность узлов загружать данные блока, когда они предлагаются, другими словами, она связана со временем, пока блок не достигнет консенсуса. Возможность извлечения данных означает способность узлов извлекать историческую информацию из блокчейна. Хотя для архивирования могут потребоваться исторические данные блокчейна, узлам не нужно использовать исторические данные для проверки блоков и обработки транзакций.
По мнению китайского участника Celestia и партнера W3Hitchhiker Рена Хонги (Ren Hongyi), Layer 2 заранее предполагает, что Ethereum достаточно безопасен и децентрализован. Сортировщики могут уверенно отправлять данные DA в Ethereum, и эти данные будут беспрепятственно переданы всем полным узлам Ethereum. Поскольку полные узлы L2 сами запускают клиент Geth, они считаются подмножеством полных узлов Ethereum и поэтому могут получать данные DA уровня 2.
По мнению доктора Ци Чжоу, основателя EthStorage, определение доступности данных (DA) заключается в том, что никто не может скрыть данные о транзакциях, переданные пользователями в сеть. Соответствующая модель доверия заключается в том, что нам нужно доверять только самому протоколу Уровня 1 (L1), без необходимости вводить другие предположения о доверии.
Ци Чжоу отмечает, что текущая реализация DA в Ethereum - это, по сути, P2P-трансляция (с использованием протокола gossip), где каждый узел загружает, распространяет новые блоки и хранит данные Rollup. Однако полные узлы Ethereum не будут хранить исторические блоки вечно. После внедрения EIP-4844 они могут автоматически удалять данные, полученные некоторое время назад (по-видимому, 18 дней). Существует не так много архивных узлов, в которых хранятся все исторические данные по всему миру. EthStorage планирует заполнить этот пробел в экосистеме Ethereum и помочь Layer 2 создать свои специальные узлы для хранения данных.
Первые дискуссии о доступности данных со стороны Ethereum Foundation можно увидеть в твитах Виталика Бутерина и документах GitHub в 2017 году. В то время он считал, что для обеспечения масштабируемости и эффективности блокчейна необходимо увеличить аппаратную конфигурацию полных узлов (полные узлы - это те, которые загружают полный блок и проверяют его достоверность, а валидаторы, которые участвуют в консенсусе, являются подмножеством полных узлов). Однако повышение требований к аппаратному обеспечению для полных узлов также увеличит эксплуатационные расходы, что приведет к централизации блокчейна.
По этому поводу Виталик предложил разработать схему для устранения рисков безопасности, вызванных тенденцией к централизации высокопроизводительных полных узлов. Он планирует использовать коды стирания и случайную выборку данных для разработки протокола, который позволит узлам с меньшими аппаратными возможностями проверять, что блок не содержит проблем, не зная полного блока.
Его первоначальная идея была связана с идеей, упомянутой в техническом описании Биткойна, в котором говорится, что легким узлам не нужно получать полный блок, но они будут предупреждены честными полными узлами, если с блоком возникнут проблемы. Эту концепцию можно распространить на более поздние доказательства мошенничества, но она не гарантирует, что честные полные узлы всегда могут получить достаточное количество данных, и не позволяет судить постфактум, не утаил ли автор блока некоторые данные от публикации.
Например, узел A может опубликовать доказательство мошенничества, утверждая, что он получил неполный блок от узла B. Однако невозможно определить, был ли неполный блок сфабрикован A или отправлен B. Виталик отметил, что эту проблему можно решить с помощью Data Availability Sampling (DAS), что, очевидно, связано с вопросами публикации данных.
Виталик кратко рассказал об этих проблемах и их решениях в своей статье "Заметка о доступности данных и кодировании стирания". Он отметил, что доказательства DA (Data Availability), по сути, являются "дополнением" к доказательствам мошенничества.
Однако концепцию DA не так просто объяснить, о чем свидетельствует то, что документ Виталика на GitHub претерпел 18 исправлений, причем последнее исправление было подано 25 сентября 2018 года. Буквально за день до этого, 24 сентября 2018 года, основатель Celestia Мустафа и Виталик в соавторстве написали ставшую впоследствии знаменитой статью "Доказательства мошенничества и доступности данных: Максимизация безопасности легких клиентов и масштабирование блокчейн с нечестным большинством".
Интересно, что первым автором статьи указан Мустафа, а не Виталик (другой автор сейчас работает исследователем в публичном блокчейне Sui). В статье упоминается концепция доказательств мошенничества и объясняется принцип выборки доступности данных (Data Availability Sampling, DAS), в результате чего разрабатывается смешанный протокол DAS + двумерное кодирование стирания + доказательства мошенничества. В статье особо отмечается, что система доказательств DA является необходимым дополнением к доказательствам мошенничества.
С точки зрения Виталика, протокол работает следующим образом:
Предположим, что публичный блокчейн имеет N узлов консенсуса (валидаторов) с высокопроизводительным оборудованием, которое обеспечивает высокую пропускную способность данных и эффективность. Хотя такой блокчейн может иметь высокий показатель TPS (транзакций в секунду), количество узлов консенсуса, N, относительно невелико, что делает его более централизованным и повышает вероятность сговора между узлами.
Однако предполагается, что хотя бы один из N узлов консенсуса является честным. До тех пор, пока хотя бы 1/N валидаторов честны, способны обнаружить и передать доказательства мошенничества, когда блок недействителен, легкие клиенты или честные валидаторы могут узнать о проблемах безопасности в сети и использовать такие механизмы, как уничтожение вредоносных узлов и социальные форки консенсуса, чтобы вернуть сеть в нормальное состояние.
Как уже упоминал Виталик, если честный полноценный узел получит блок, обнаружит, что в нем не хватает некоторых частей, и опубликует мошенническое доказательство, будет сложно определить, не опубликовал ли автор блока эту часть, не была ли она утаена другими узлами во время передачи, или это ложный флаг узла, опубликовавшего мошенническое доказательство. Более того, если большинство узлов сговорится, 1/N честный валидатор может оказаться в изоляции, не имея возможности получать новые блоки, что является сценарием атаки с целью сокрытия данных. В таких случаях честный узел не может определить, вызвано ли это плохими условиями сети или преднамеренным сговором других узлов, а также не может знать, изолированы ли другие узлы, что затрудняет суждение о том, сговорилось ли большинство узлов о сокрытии данных.
Поэтому необходимо найти способ гарантировать, с очень высокой вероятностью, что честные валидаторы смогут получить данные, необходимые для проверки блоков; а также определить, кто стоит за атакой с сокрытием данных - тот ли, кто предложил блок, не опубликовав достаточное количество данных, другие узлы, или же это сговор большинства. Очевидно, что эта модель безопасности обеспечивает гораздо большую защиту, чем "предположение о честном большинстве", распространенное в типичных цепочках PoS, и выборка доступности данных (DAS) - это конкретный метод реализации.
Предположим, что в сети много световых узлов, возможно, 10 раз по N, каждый из которых подключен к нескольким валидаторам (для простоты предположим, что каждый световой узел подключен ко всем N валидаторам). Эти легкие узлы будут проводить многократные выборки данных из валидаторов, каждый раз случайным образом запрашивая небольшую порцию данных (предположим, всего 1% блока). Затем они будут распространять полученные фрагменты среди валидаторов, не имеющих таких данных. Пока существует достаточное количество световых узлов и частота выборки данных достаточно высока, даже если некоторые запросы будут отклонены, но на большинство из них будет получен ответ, можно быть уверенным, что все валидаторы в конечном итоге смогут получить необходимое количество данных для проверки блока. Это может свести на нет влияние утаивания данных узлами, отличными от предлагающего блок.
(Источник изображения: W3 Hitchhiker)
Если большинство валидаторов сговорятся и откажутся отвечать на большинство запросов от лёгких узлов, людям будет легко понять, что в цепочке есть проблема (ведь даже если у некоторых людей плохой интернет, это не приведёт к тому, что большинство запросов от лёгких узлов будет отклонено). Таким образом, вышеупомянутая схема с большой вероятностью может определять поведение большинства в сговоре, хотя такие ситуации сами по себе редки. При таком подходе можно устранить неопределенности, возникающие из других источников, кроме разработчика блока. Если автор блока утаивает данные, например, не публикует достаточно данных в блоке для его проверки (после введения двумерного кодирования стирания блок содержит 2k2k фрагментов, и для восстановления исходных данных блока требуется как минимум около kk фрагментов, или 1/4. Чтобы помешать другим восстановить исходные данные, предлагающий должен скрыть не менее k+1*k+1 фрагментов), в конечном итоге они будут обнаружены честными валидаторами, которые затем передадут доказательства мошенничества, чтобы предупредить других.
По словам Виталика и Мустафы, то, что они сделали, - это, по сути, объединили идеи, которые уже были предложены другими, и добавили к ним свои собственные инновации. Если рассматривать концепцию и метод реализации в целом, становится ясно, что "доступность данных" означает, были ли данные, необходимые для проверки последнего блока, опубликованы автором блока и могут ли они быть получены проверяющими. Речь идет о том, "полностью ли опубликованы данные", а не о том, "можно ли получить исторические данные".
С учетом этого утверждения давайте рассмотрим, как Data Availability (DA) реализована в Ethereum Rollups, и это станет совершенно ясно: блок-промоутер в Rollup известен как Sequencer, который с определенными интервалами публикует данные, необходимые для проверки переходов состояния уровня 2 в Ethereum. В частности, он инициирует транзакцию с назначенным контрактом, вписывая данные, связанные с DA, в пользовательские входные параметры, которые затем записываются в блок Ethereum. Учитывая высокую степень децентрализации Ethereum, можно быть уверенным, что данные, предоставленные секвенсором, будут без проблем получены "верификаторами". Однако организации, играющие роль "верификаторов", различаются в разных сетях Rollup.
Например, в случае с Arbitrum секвенсор размещает партии транзакций в определенном контракте на Ethereum. Сам контракт не проверяет эти данные, но посылает событие для полных узлов L2, чтобы они узнали, что секвенсор опубликовал партию транзакций. В частности, ZK Rollups используют контракт Verifier на Ethereum в качестве "верификатора". ZK Rollup должен публиковать только State Diff + Validity Proof, т.е. информацию об изменениях состояния плюс доказательство достоверности. Контракт Verifier проверяет доказательство действительности, чтобы убедиться, что оно соответствует State Diff. Если проверка пройдена, L2-блок/пакет, опубликованный секвенсором, считается действительным.
(Источник: Бывшая "Белая книга" Polygon Hermez)
Оптимистичные сворачивания требуют публикации большего количества данных в Ethereum, поскольку они полагаются исключительно на полные узлы L2 для загрузки данных и проверки достоверности блоков. Это означает, что, как минимум, должны быть раскрыты цифровые подписи каждой транзакции L2 (сейчас обычно используются агрегированные подписи). Если выполняются вызовы контрактов, входные параметры также должны быть раскрыты, помимо адресов передачи транзакций, значений nonce для предотвращения атак воспроизведения и т.д. Однако по сравнению с полными данными о транзакциях все равно происходит некоторая обрезка.
По сравнению с ZK Rollups, стоимость DA (Data Availability) для Optimistic Rollups выше, потому что ZK Rollups нужно раскрывать только окончательные изменения состояния после выполнения партии транзакций, сопровождая их доказательством достоверности, используя лаконичность ZK SNARK/STARK; в то время как Optimistic Rollups может использовать только самый громоздкий метод, требующий повторного выполнения всех транзакций на других узлах с полным L2.
Ранее W3hitchhiker примерно подсчитал, что без учета будущего развития EIP-4844 и blobs, эффект масштабирования ZKR (Zero-Knowledge Rollups) может в несколько раз превысить эффект OPR (Optimistic Rollups). Если рассматривать смарт-кошельки, связанные с EIP-4337 (которые используют отпечатки пальцев и данные радужной оболочки глаза вместо подписей закрытых ключей), то преимущество ZKR будет еще более очевидным, поскольку ему не нужно размещать двоичные данные отпечатков пальцев и радужной оболочки глаза на Ethereum, в то время как оптимистичные ролловеры это делают.
Что касается Validium и Plasma/Optimium, то они фактически используют внецепочечный уровень DA Ethereum для достижения DA. Например, компания ImmutableX, принявшая систему доказательства достоверности, создала набор узлов DAC (Data Availability Committee) специально для публикации данных, связанных с DA; Metis публикует данные DA на Memlabs, а Rooch и Manta используют Celestia. В настоящее время, благодаря наличию DAS (Data Availability Solutions) и систем доказательства мошенничества, Celestia является одним из самых надежных проектов уровня DA за пределами Ethereum.