Каковы преимущества технологии сэмплирования доступности данных? Зачем она нам нужна?

Фото от @testalizeme?utm_source=medium&utm_medium=referral">Testalize.me on Unsplash
Предварительные знания:
Эта серия статей познакомит с механизмом функционирования DAS через Danksharding, а также сходствами и различиями между Celestia, EigenDA и AvailDA. Первая статья познакомит с необходимостью DAS и преимуществами, которые приносит DAS.
Но на самом деле это не только L2, сама цепь Ethereum также столкнется с проблемой выхода данных, потому что легкие узлы не будут загружать полные блоки данных, как полные узлы, поэтому легким узлам нужно верить, что «когда появляется новый блок, фактически выпущены полные данные блока». Когда легкий узел обманут в вере в «неполный» блок, последствия те же, что и когда его обманывают в вере в «незаконный» блок - он подключается к ветвям, которые не используются другими. Признанные ветви форков.

Полные узлы не будут верить неполным блокам, но легкие узлы будут
Так кому доверяет текущий легкий узел Ethereum, чтобы гарантировать, что данные нового блока полностью опубликованы? Ответ - "Валидаторам". Когда легкий узел получает новый блок, он не загружает полные данные блока, но видит, сколько валидаторов проголосовали за блок. Когда достаточно валидаторов голосует за этот блок, он поверит, что полная информация об этом блоке действительно была опубликована. Это предположение принадлежит Честному Большинству, то есть убеждению, что большинство валидаторов - хорошие люди.

Когда достаточное количество валидаторов подпишет блок, легкий узел поверит, что блок полностью выпущен.
Примечание: В настоящее время легкие узлы Ethereum фактически не собирают голоса сотен тысяч валидаторов для расчетов, потому что число является слишком большим, а вычисления слишком ресурсоемкими. Вместо этого назначается еще одна партия Синхронного Комитета с гораздо меньшим числом, включающая в себя гарантию валидаторской подписи для легкого узла. Это считается переходным подходом, ожидая более полного и зрелого дизайна для замены его в будущем.
Такая великолепная способность определенно не появится из ниоткуда. Чтобы обладать этой способностью, вам нужно построить достаточно стабильную p2p сеть, иметь достаточное количество пользователей, и даже добавить функции конфиденциальности на уровне сети. Эта способность является фокусом этой серии статей - Data Availability Sampling (DAS).
В блокчейне с DAS легкие узлы будут не просто пассивно получать данные о новых блоках, а совместно участвовать в работе DAS: каждый легкий узел должен перейти в p2p-сеть за каждым блоком. По пути он ищет несколько фрагментов данных в блоке и сохраняет данные, а также делится ими с другими узлами, когда они запрашивают данные. Как и в случае с децентрализованным протоколом обмена файлами BitTorrent, узлы сети сохраняют и обмениваются данными, которые им нужны, вместе, вместо того, чтобы полагаться на централизованный сервер.

Легкие узлы работают вместе для извлечения и передачи фрагментов блоков через сеть p2p
Примечание: В идеальном сценарии все пользователи блокчейна должны запускать легкие узлы, участвовать в работе DAS и обеспечивать безопасность вместе, вместо того, чтобы полностью доверять другим узлам, как сейчас.
Каждый легкий узел не может поверить, что данные блока были полностью опубликованы, пока он успешно не получит каждый кусок запрашиваемых данных. Однако, как только он получит все запрашиваемые данные, он может безопасно полагать, что данные блока были опубликованы. Информация была опубликована полностью. Но почему легкие узлы могут безопасно полагать, что полные данные блока были опубликованы, даже если у них есть только фрагментированные данные? Это потому, что другие легкие узлы в сети также будут хранить фрагменты данных отдельно, так что когда это необходимо, все смогут работать вместе, чтобы собрать полные данные из фрагментов данных друг друга, и еще одна волшебная способность DAS заключается в том, что данные, сохраненные легкими узлами, не нужно покрывать полными данными блока. Легкие узлы могут восстановить 100% данных, лишь получив 50% данных.

Пока у легких узлов есть более 50% фрагментарных данных, они могут восстановить полные блочные данные.
Примечание: это не обязательно 50%, может быть выше, в зависимости от настройки DAS, но определенно будет меньше 100%.
Поэтому в DAS, даже если большинство валидаторов проголосуют за определенный блок, легкие узлы не будут легко верить блоку. Легкий узел будет выполнять выборочное (выборочное), то есть, запрос фрагментных данных блока. Когда все запрошенные фрагменты будут получены, будет считаться, что данные блока полностью раскрыты.
Примечание: "Few" означает, что количество легких узлов, которые необходимо отобрать и сохранить для восстановления полных данных, относительно невелико по сравнению со всеми (очень многими) легкими узлами в сети.

Алиса успешно получила запрошенную информацию, поэтому она считает, что информация о блоке была полностью раскрыта, и в конечном итоге она заберет блок, который был отброшен другими узлами.
Тогда этот бедный легкий узел придется обмануть, и это также ограничение и компромисс DAS: гарантия "полного освобождения данных", предоставленная DAS, является гарантией вероятности, а не 100% и категорической гарантией, но это все равно лучше, чем полностью доверять большинству валидаторов. Если вам кажется, что гарантия вероятности недостаточно безопасна, и вы хотите быть уверены на 100%, что данные блока были полностью опубликованы, то, к сожалению, вам придется запустить полный узел самостоятельно, чтобы загрузить полные данные блока.
Примечание: Программа, запускающая легкий узел, не имеет способа узнать, что ее обманули. Для программы, как только она получает все запрошенные данные, она будет считать, что блок был полностью опубликован. Пользователи могут узнать только через свои собственные социальные каналы, что определенный блок фактически не полностью выпущен, и быстро указать своим легким узлам пометить блок как неполные данные.
В настоящее время вас, возможно, беспокоит, может ли ваша безопасность основываться только на "не враждебности к лицу, производящему блок", или "злоумышленник не знает, кто я, поэтому он на меня не нацеливается"? Да, но вот почему ранее было упомянуто, что DAS нуждается в функции конфиденциальности сетевого уровня, потому что если злоумышленник может узнать, "кто" запрашивает фрагмент данных, или знает, что три фрагмента A, B и C - "одно и то же" Лицо" ищет, то он естественным образом может легко нацелиться на цель и предоставить информацию другой стороне. Если у сетевого уровня сегодня есть функция конфиденциальности, то злоумышленник не сможет узнать, кто запрашивает этот кусок информации. Естественно, не будет способа обмануть цель, и эффективность атаки злоумышленника будет значительно снижена: у него нет способа определить, была ли цель обманута, или даже какой-либо легкий узел.

Если злоумышленнику неизвестно, кто запрашивает информацию, ему будет очень сложно обмануть легкие узлы.

Без кодирования стирания, если хотя бы немного блока отсутствует, это означает, что блок не был полностью выпущен.
Если блок закодирован кодированием стирания, то 100% данных могут быть восстановлены с помощью, например, любых 50% данных. Это означает, что легкие узлы могут гарантировать, что они могут восстановить данные, пока фрагменты данных, выбранные вместе, достигнут 50% охвата. Полная информация о блоке. По сравнению с 100% охватом, требование к 50% охвату намного проще. Для злонамеренных производителей блоков будет намного сложнее скрыть некоторую информацию, чтобы обмануть легкие узлы.
Примечание: 50% - просто пример. Для восстановления различных нужд требуется разный процент.
Как обеспечить сохранение достаточного объема данных легкими узлами? Нам нужно иметь достаточное количество легких узлов или достаточное количество выборок для каждого легкого узла. Если у нас достаточно легких узлов, количество времени выборки для каждого легкого узла не должно быть высоким; но если легких узлов недостаточно, то количество времени выборки для каждого легкого узла должно быть достаточно высоким, чтобы обеспечить совместную работу легких узлов для сохранения достаточного объема данных.
Примечание: Если количество легких узлов продолжает расти, размер данных, которые они могут хранить вместе, на самом деле может увеличиться, если количество образцов остается неизменным. Например, Celestia, о которой будет рассказано в этой серии статей, может поддерживать гибкий размер блока. Блокчейн: размер блока Celestia может быть отрегулирован в зависимости от количества легких узлов в сети.
Кроме того, сетевому уровню также необходимо иметь функции конфиденциальности, иначе легкий узел будет идентифицирован злоумышленником. Злоумышленник не будет публиковать более 50% данных, но предоставит фрагментированные данные, запрошенные заблокированным легким узлом. Чтобы ввести легкий узел в заблуждение, заставив его верить, что блоковые данные были полностью раскрыты.
Детали этих трех частей будут подробно рассмотрены в этой серии статей.





