Написал: 0XNATALIE
На недавней конференции разработчиков Ethereum обсуждалось предложение разделить хард-форк Ethereum Pectra на две части. Это предложение ранее было отклонено из-за опасений, что оно задержит обновление дерева Веркле. Однако на этой встрече разработчики еще раз подняли эту идею, поскольку они надеются добавить в вилку Pectra больше предложений по улучшению (EIP). Предлагается разделить хардфорк на две части: в первую часть войдут все EIP, которые сейчас есть в Pectra Devnet 3, а во вторую часть форка войдут EOF (EVM Object Format) и PeerDAS и т. д. Для лучшего понимания PeerDAS, мы сначала Давайте начнем с базовой концепции доступности данных.
DA: Убедитесь, что узлы получают данные в цепочке
Доступность данных (DA) означает обеспечение того, чтобы блоки, опубликованные предлагающим блок, и все данные транзакций, содержащиеся в блоках, могли быть эффективно доступны и получены другими участниками сети. Доступность данных является ключевым фактором безопасности блокчейна, поскольку, если данные недоступны, даже если блок является законным, другие узлы не смогут проверить его содержимое, что потенциально может вызвать проблемы с консенсусом и кибератаки. Например, злоумышленник может опубликовать только часть данных блока, что сделает невозможным их проверку другими узлами.
Когда новый блок транслируется, все участвующие узлы загружают и проверяют данные блока. Эта модель осуществима, когда масштаб сети невелик, но по мере дальнейшего роста блокчейна объем данных станет очень большим, хранилище каждого узла будет продолжать увеличиваться, и соответственно возрастут требования к оборудованию. Чтобы позволить легким узлам (мобильным устройствам, таким как мобильные телефоны или компьютеры) участвовать в проверке блоков, в блокчейне реализована технология шардинга.
Технология шардинга делит всю сеть блокчейна на несколько небольших «осколков». Каждый шард обрабатывает только свою часть данных и не обязан обрабатывать данные всего блокчейна. Таким образом, одному узлу достаточно обрабатывать данные только своего собственного сегмента. Однако каждый шард обрабатывает только часть данных, а это означает, что узлы в других шардах не могут напрямую получить доступ ко всем данным. Как гарантировать, что данные в шардах доступны и что другие узлы могут проверить достоверность данных? Например, узел в шарде публикует вновь сгенерированный блок, но может публиковать только часть данных. Если другие узлы не могут получить все данные блока, они не могут проверить, является ли блок подлинным и законным.
DAS: проверка общей доступности данных с помощью частичных данных
Чтобы решить проблему доступности данных при сегментировании, была предложена технология выборки доступности данных (DAS). Ее основная идея заключается в проверке доступности данных блоков посредством выборки, не требуя от каждого узла хранить или загружать полные данные блока. .
Выборка доступности данных позволяет узлам проверять доступность данных, просто получая случайную часть данных в блоке. Если узел может успешно получить и проверить эти случайные фрагменты данных, можно сделать вывод, что доступны все данные блока.
Для поддержки этой выборочной проверки данные блока обычно кодируются с использованием RS. Эта кодировка позволяет полностью восстановить данные, даже если часть данных утеряна. Следовательно, даже если узел загружает только часть данных блока, он может сделать вывод и подтвердить достоверность всех данных блока. DAS уменьшает объем данных, которые должен обрабатывать каждый узел, посредством выборочной проверки, а легкие узлы также могут участвовать в проверке блоков.
Уровни DA, такие как Celestia, реализуются с помощью этих технологий. В основном включает в себя кодирование RS + подтверждение достоверности + DAS.
Кодирование RS (кодирование Рида-Соломона): этот метод кодирования позволяет узлам, которые получают только часть фрагмента данных, восстановить весь блок данных. Он похож на код исправления ошибок и имеет определенную устойчивость к ошибкам. Даже если часть данных потеряна, оставшейся части достаточно для восстановления полных данных.
Доказательство достоверности: используйте доказательство с нулевым разглашением, чтобы гарантировать отсутствие ошибок в процессе кодирования и передачи данных. Если проверка прошла успешно, все данные могут быть декодированы без ошибок.
DAS (выборка доступности данных): легкие узлы случайным образом выбирают часть фрагментов кодирования RS в блоке, чтобы проверить доступность этих фрагментов, тем самым делая вывод о том, что весь блок данных доступен.
PeerDAS: совместная проверка данных между узлами
PeerDAS — это особая реализация DAS, которая выполняет выборку доступности данных через одноранговую сеть. Одноранговая сеть — это сеть, состоящая из нескольких узлов, которые напрямую взаимодействуют друг с другом. В рамках DAS каждый узел независимо проводит выборочную проверку данных, а PeerDAS оптимизирует этот процесс. Это позволяет узлам сотрудничать для совместного использования и проверки данных в блоках, что еще больше повышает эффективность проверки. Узлы не изолированы. Они могут совместно выполнять задачи и результаты проверки данных и могут полагаться на проверенные данные других узлов. Таким образом, узлам не придется выполнять всю работу по проверке в одиночку, а совместно выполнять задачи проверки, что еще больше снижает нагрузку на узлы. Более того, совместная проверка увеличивает сложность подделки данных. Злоумышленнику необходимо одновременно воздействовать на несколько узлов проверки, чтобы успешно подделать данные.
В настоящее время, согласно последней встрече Ethereum по PeerDAS, команда Lighthouse клиента Ethereum объединила ветку DAS с основной веткой и проводит тестирование на совместимость с PeerDAS. Ветки обычно представляют собой независимые версии кода, используемые для разработки и тестирования новых функций или улучшений. Слияние с основной веткой означает, что функция или улучшение уже разработаны и уверены, что они стабильны и могут быть объединены с основным кодом.