In Defense of Bitcoin Maximalism
Перевод выполнен специально для The_Farm и WMarket. https://t.me/TheFarm_xyz Мы уже много лет слышим, что будущее за блокчейном, а не за одним лишь биткойном. Будущее всего мира - это не один большой крипто-проект, и даже не несколько, а множество криптовалют, основные из которых будут иметь сильное руководство и управляющих, так сказать, будут все под одной крышей, для того чтобы быстро адаптироваться к потребностям большого количества пользователей. Биткойн - это монета-бумер, вслед за ним ...
Ethereum прошел первый серьезный тест на PoS
От hedgehog для читателей The_Farm и WMarket April 16, 2022 https://t.me/TheFarm_xyz?fbclid=IwAR0NIqC_P54R5lckhrYjXZ7AiOfsylsYZeAsphuZYkVDUkxX6f4kh7g_BRc Оригинал статьиРазработчики Ethereum успешно протестировали Proof of Stake в основной сети, в так называемом теневом форке.Теневой форк прошел успешно, хотя и с некоторыми незначительными проблемами.11 апреля разработчики Ethereum провели первый крупный тест предстоящего перехода блокчейна на PoS. До сих пор разработчики тестировали все боль...
Неполное руководство по скрытым адресам
Одной из крупнейших оставшихся проблем в экосистеме Ethereum является конфиденциальность. По умолчанию все, что попадает на публичный блокчейн, является общедоступным. Все чаще это означает не только деньги и финансовые транзакции, но и ENS, POAPs, NFTs, SBT и многое другое. На практике, использование всего набора приложений Ethereum подразумевает открытие большой части вашей жизни для всеобщего видения и анализа. Улучшение этой ситуации является важной проблемой и ни для кого не секрет. До с...
One of the creators of TheFarm (https://t.me/TheFarm_xyz)
In Defense of Bitcoin Maximalism
Перевод выполнен специально для The_Farm и WMarket. https://t.me/TheFarm_xyz Мы уже много лет слышим, что будущее за блокчейном, а не за одним лишь биткойном. Будущее всего мира - это не один большой крипто-проект, и даже не несколько, а множество криптовалют, основные из которых будут иметь сильное руководство и управляющих, так сказать, будут все под одной крышей, для того чтобы быстро адаптироваться к потребностям большого количества пользователей. Биткойн - это монета-бумер, вслед за ним ...
Ethereum прошел первый серьезный тест на PoS
От hedgehog для читателей The_Farm и WMarket April 16, 2022 https://t.me/TheFarm_xyz?fbclid=IwAR0NIqC_P54R5lckhrYjXZ7AiOfsylsYZeAsphuZYkVDUkxX6f4kh7g_BRc Оригинал статьиРазработчики Ethereum успешно протестировали Proof of Stake в основной сети, в так называемом теневом форке.Теневой форк прошел успешно, хотя и с некоторыми незначительными проблемами.11 апреля разработчики Ethereum провели первый крупный тест предстоящего перехода блокчейна на PoS. До сих пор разработчики тестировали все боль...
Неполное руководство по скрытым адресам
Одной из крупнейших оставшихся проблем в экосистеме Ethereum является конфиденциальность. По умолчанию все, что попадает на публичный блокчейн, является общедоступным. Все чаще это означает не только деньги и финансовые транзакции, но и ENS, POAPs, NFTs, SBT и многое другое. На практике, использование всего набора приложений Ethereum подразумевает открытие большой части вашей жизни для всеобщего видения и анализа. Улучшение этой ситуации является важной проблемой и ни для кого не секрет. До с...
One of the creators of TheFarm (https://t.me/TheFarm_xyz)

Subscribe to Hdghg

Subscribe to Hdghg
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers

Перевод выполнен пользователем Hdghg#9419 для русско-говорящего комьюнити Celestia.
Celestia - это модульная блокчейн-сеть, целью которой является создание масштабируемого уровня доступности данных, позволяющего создать следующее поколение масштабируемых блокчейн-архитектур - модульные блокчейны. Celestia масштабируется путем отделения исполнения от консенсуса и введения нового примитива - выборки доступности данных.
Первый вариант подразумевает, что Celestia отвечает только за упорядочивание транзакций и за гарантию доступности данных; это похоже на сведение консенсуса к атомной трансляции.
Второй вариант обеспечивает эффективное решение проблемы доступности данных, требуя от нод с ограниченным ресурсом только выборку небольшого количества случайных фрагментов из каждого блока для проверки доступности данных.
Интересно, что большее количество легких узлов, участвующих в отборе, увеличивает объем данных, которые сеть может безопасно обрабатывать, позволяя увеличить размер блока без увеличения затрат на проверку цепи.
Блокчейн представляет реплицированные машины состояний: узлы в распределенной сети без права доступа применяют упорядоченную последовательность транзакций к начальному состоянию, что приводит к конечному состоянию. Это означает, что блокчейн требует выполнения следующих четырех функций:
1)Выполнение. Под собой подразумевает выполнение транзакций, которые корректно обновляют состояние. Таким образом, выполнение должно гарантировать, что выполняются только верные транзакции, т.е. транзакции, которые приводят к корректным переходам машины состояния.
2)Расчеты подразумевают среду для уровней исполнения проверки доказательств, разрешения споров о мошенничестве и установления мостов между другими уровнями исполнения.
3)Консенсус подразумевает согласование порядка транзакций.
4)Доступность данных (DA) подразумевает обеспечение доступности данных транзакции. Обратите внимание, что исполнение, расчеты и консенсус требуют наличия DA.
Традиционные блокчейны, то есть монолитные блокчейны, реализуют все четыре функции вместе в едином базовом консенсусном слое. Проблема монолитных блокчейнов заключается в том, что уровень консенсуса должен выполнять множество различных задач, и он не может быть оптимизирован только для одной из этих функций. В результате монолитная парадигма ограничивает пропускную способность системы.
В качестве решения модульные блокчейны разделяют эти функции между несколькими специализированными уровнями как часть модульного стека. Благодаря гибкости, которую обеспечивает специализация, существует множество возможностей для организации этого стека. Например, одним из таких вариантов является разделение четырех функций на три специализированных уровня.
Базовый слой состоит из DA и консенсуса и поэтому называется слоем консенсуса и DA (или, для краткости, слоем DA), в то время как расчеты и исполнение перемещаются на верхний слой в своих собственных. В результате каждый слой может быть специализирован для оптимального выполнения только своей функции и, таким образом, повышения пропускной способности системы. Более того, эта модульная парадигма позволяет нескольким слоям исполнения, т.е. роллапам, использовать одни и те же слои расчета и DA.
Celestia - это уровень доступности данных (DA), который обеспечивает масштабируемое решение проблемы доступности данных. В связи с неразрешенной природой сетей блокчейн, уровень DA должен обеспечивать механизм для уровней исполнения и расчетов для проверки с минимальным уровнем доверия, действительно ли данные транзакции доступны.
Двумя ключевыми особенностями слоя DA Celestia являются выборка доступности данных (DAS) и Namespaced Merkle trees (хз как перевести) (NMTs). Обе функции представляют собой новые решения для масштабирования блокчейна: DAS позволяет легким узлам проверять доступность данных без необходимости загружать весь блок; NMT позволяют уровням исполнения и расчетов Celestia загружать транзакции, имеющие отношение только к ним.
В целом, легкие узлы загружают только заголовки блоков, которые содержат фиксаторы (т.е. корни Меркла) данных блока (т.е. список транзакций).
Чтобы сделать DAS возможным, Celestia использует двумерную схему кодирования Рида-Соломона: каждый блок данных разбивается на k × k кусков, упорядочивается в k × k матрицу и расширяется данными о четности в расширенную матрицу 2k × 2k путем многократного применения кодирования Рида-Соломона.
Затем вычисляются 4k отдельных корней Меркла для строк и столбцов расширенной матрицы; корень Меркла из этих корней используется в качестве обязательства данных блока в заголовке.
Чтобы убедиться в наличии данных, легкие узлы Celestia делают отбор блоков данных размером 2k × 2k.
Каждый узел случайным образом выбирает набор уникальных координат в расширенной матрице и запрашивает полные узлы о кусках данных и соответствующих доказательствах Меркла в этих координатах. Если легкие узлы получают правильный ответ на каждый запрос выборки, то с высокой вероятностью можно гарантировать, что данные всего блока доступны.
Кроме того, каждый полученный фрагмент данных с правильным доказательством Меркла передается в сеть. В результате, до тех пор, пока легкие узлы Celestia собирают вместе достаточное количество блоков данных (т.е. не менее k × k уникальных блоков), полный блок может быть восстановлен полными узлами.
DAS позволяет Celestia масштабировать слой DA. DAS может выполняться лайт нодами с ограниченными ресурсами, поскольку каждая лайт нода сэмплирует только небольшую часть данных блока. Чем больше лайт нод в сети, тем больше данных они могут коллективно загрузить и сохранить.
Это означает, что увеличение числа лайт нод, выполняющих DAS, позволяет создавать более крупные блоки (т.е. с большим количеством транзакций), при этом DAS остается выполнимой для этих нод с ограниченными ресурсами. Однако для проверки заголовков блоков нодами Celestia необходимо загрузить промежуточные корни Меркла в формате 4k.
Для блока данных размером n байт это означает, что каждая лайт нода загрузит O(n) байт. Поэтому любое улучшение пропускной способности этих нод Celestia имеет квадратичный эффект на пропускную способность уровня DA Celestia.
Требование загрузки 4k промежуточных корней Меркла является следствием использования двумерной схемы кодирования Рида-Соломона. В качестве альтернативы DAS может быть разработана со стандартным (т.е. одномерным) кодированием Рида-Соломона, где исходные данные разбиваются на k блоков и дополняются k дополнительными блоками данных о четности. Поскольку обязательство данных блока является корнем Меркла из 2k результирующих кусков данных, легким узлам больше не нужно загружать O(n) байт для проверки заголовков блоков.
Недостатком стандартного кодирования Рида-Соломона является работа со злонамеренными производителями блоков, которые неправильно генерируют расширенные данные.
Это возможно, поскольку Celestia не требует, чтобы большинство участников консенсуса (т.е. производителей блоков) были честными, чтобы гарантировать доступность данных. Таким образом, если расширенные данные недействительны, исходные данные могут быть не восстановлены, даже если лайт ноды выбирают достаточное количество уникальных блоков (т.е. не менее k для стандартного кодирования и k × k для двумерного кодирования).
В качестве решения проблемы используются доказательства мошенничества в отношении неверно сгенерированных распознанных данных, позволяющие лайт нодам отклонять блоки с неверно расширенными данными. Такие доказательства требуют восстановления кодировки и проверки несоответствия. При стандартном кодировании Рида-Соломона это требует загрузки исходных данных, т.е. O(n) байт. Напротив, при двумерном кодировании Рида-Соломона требуется только O(n ) байт, поскольку достаточно проверить только одну строку или один столбец матрицы.
Обеспечение доступности данных
Уровень DA Celestia состоит из блокчейна PoS. Celestia называет этот блокчейн Celestia App - приложение, которое обеспечивает транзакции для поддержки уровня DA и создано с использованием Cosmos SDK. На следующем рисунке показаны основные компоненты Celestia App.
Celestia App построена на базе Celestia Core, модифицированной версии алгоритма консенсуса Tendermint. Среди наиболее важных изменений по сравнению с ванильным Tendermint, Celestia Core:
Позволяет кодировать данные блока стиранием (с использованием двумерной схемы кодирования Рида-Соломона).
Заменяет обычное дерево Меркла, используемое Tendermint для хранения данных блоков, на дерево Меркла с распределением имен, которое позволяет вышележащим уровням (т.е. исполнение и расчеты) загружать только необходимые данные.
Для получения более подробной информации об изменениях в Tendermint ознакомьтесь с ADRs. Обратите внимание, что узлы Celestia Core по-прежнему используют p2p-сеть Tendermint.
Как и Tendermint, Celestia Core связана с прикладным уровнем посредством ABCI++, что является значительной эволюцией ABCI (Application Blockchain Interface).
Машина состояния Celestia App необходима для выполнения логики PoS и управления уровнем DA.
Однако Celestia App не зависит от данных - механизм не проверяет и не хранит данные, которые предоставляются Celestia App.
Пользователи запрашивают Celestia App о предоставлении данных, отправляя транзакции PayForData. Каждая такая транзакция состоит из идентификатора отправителя, данных, которые должны быть предоставлены, также называемых сообщением, размера данных, идентификатора пространства имен и подписи. Каждый производитель блоков объединяет несколько транзакций PayForData в блок.
Однако прежде чем предложить блок, производитель передает его в механизм через ABCI++, где каждая транзакция PayForData разделяется на сообщение с пространством имен (обозначено Msg на рисунке ниже), то есть данные вместе с идентификатором пространства имен, и исполняемую транзакцию (обозначена e-Tx на рисунке ниже), которая не содержит данных, а только обязательство, которое может быть использовано позже для доказательства того, что данные действительно были предоставлены.
Далее производитель блока добавляет в заголовок блока обязательство данных. Как описано здесь, обязательство представляет собой корень Меркла из 4k промежуточных корней Меркла (т.е. по одному для каждой строки и столбца расширенной матрицы). Чтобы вычислить это обязательство, производитель блока выполняет следующие операции:
Он разделяет исполняемые транзакции и данные пространства имен на доли. Каждая доля состоит из нескольких байтов, которым предшествует идентификатор пространства имен. Для этого исполняемые транзакции ассоциируются с зарезервированным пространством имен.
Он упорядочивает эти доли в квадратную матрицу (по строкам). Обратите внимание, что доли заполняются до следующей второй степени. Полученный квадрат размером k × k называется исходными данными.
Он расширяет исходные данные до квадратной матрицы 2k × 2k, используя описанную выше двумерную схему кодирования Рида-Соломона. Расширенные доли (т.е. содержащие данные стирания) ассоциируются с другим зарезервированным пространством имен.
Он вычисляет обязательство для каждой строки и столбца расширенной матрицы, используя NМТ, описанные выше.
Таким образом, обязательство блочных данных является корнем дерева Меркла, а листья - корнями леса поддеревьев Namespaced Merkle, по одному на каждую строку и столбец расширенной матрицы.
Для расширения возможностей подключения нода Celestia дополняет Celestia App отдельной сетью libp2p, т.е. так называемой сетью DA, которая обслуживает запросы DAS.
Легкие ноды подключаются к ноде Celestia в сети DA, просматривают расширенные заголовки блоков (т.е. заголовки блоков вместе с соответствующими метаданными DA, такими как промежуточные корни Меркла в формате 4k) и выполняют DAS на полученных заголовках (т.е. запрашивают случайные фрагменты данных).
Обратите внимание, что выполнение DAS необязательно - лайт ноды могут просто поверить, что данные, соответствующие обязательствам в заголовках блоков, действительно были предоставлены уровнем Celestia DA. Кроме того, лайт ноды могут отправлять транзакции в Celestia App, т.е. транзакции PayForData.
При выполнении DAS для заголовка блока каждая лайт нода запрашивает у узлов Celestia некоторое количество случайных фрагментов данных из расширенной матрицы и соответствующие доказательства Меркла. Если все запросы успешны, то лайт нода принимает заголовок блока как действительный (с точки зрения DA).
Если хотя бы один из запросов оказывается неудачным (т.е. либо кусок данных не получен, либо доказательство Меркла недействительно), то лайт нода отклоняет заголовок блока и повторяет попытку позже. Повторная попытка необходима для борьбы с ложными отрицаниями, т.е. заголовки блоков отклоняются, хотя данные блока доступны. Это может произойти, например, из-за перегрузки сети.
В качестве альтернативы, лайт ноды могут принять заголовок блока, хотя данные будут недоступны, т.е. ложное срабатывание. Это возможно, поскольку свойство надежности (т.е. если честная лайт нода принимает блок как доступный, то по крайней мере один честный полный узел в конечном итоге будет иметь все данные блока) гарантировано.
Путем точной настройки параметров Celestia (например, количества блоков данных, отбираемых каждой лайт нодой) вероятность ложных срабатываний может быть снижена настолько, что у производителей блоков не будет стимула скрывать данные блока.

Перевод выполнен пользователем Hdghg#9419 для русско-говорящего комьюнити Celestia.
Celestia - это модульная блокчейн-сеть, целью которой является создание масштабируемого уровня доступности данных, позволяющего создать следующее поколение масштабируемых блокчейн-архитектур - модульные блокчейны. Celestia масштабируется путем отделения исполнения от консенсуса и введения нового примитива - выборки доступности данных.
Первый вариант подразумевает, что Celestia отвечает только за упорядочивание транзакций и за гарантию доступности данных; это похоже на сведение консенсуса к атомной трансляции.
Второй вариант обеспечивает эффективное решение проблемы доступности данных, требуя от нод с ограниченным ресурсом только выборку небольшого количества случайных фрагментов из каждого блока для проверки доступности данных.
Интересно, что большее количество легких узлов, участвующих в отборе, увеличивает объем данных, которые сеть может безопасно обрабатывать, позволяя увеличить размер блока без увеличения затрат на проверку цепи.
Блокчейн представляет реплицированные машины состояний: узлы в распределенной сети без права доступа применяют упорядоченную последовательность транзакций к начальному состоянию, что приводит к конечному состоянию. Это означает, что блокчейн требует выполнения следующих четырех функций:
1)Выполнение. Под собой подразумевает выполнение транзакций, которые корректно обновляют состояние. Таким образом, выполнение должно гарантировать, что выполняются только верные транзакции, т.е. транзакции, которые приводят к корректным переходам машины состояния.
2)Расчеты подразумевают среду для уровней исполнения проверки доказательств, разрешения споров о мошенничестве и установления мостов между другими уровнями исполнения.
3)Консенсус подразумевает согласование порядка транзакций.
4)Доступность данных (DA) подразумевает обеспечение доступности данных транзакции. Обратите внимание, что исполнение, расчеты и консенсус требуют наличия DA.
Традиционные блокчейны, то есть монолитные блокчейны, реализуют все четыре функции вместе в едином базовом консенсусном слое. Проблема монолитных блокчейнов заключается в том, что уровень консенсуса должен выполнять множество различных задач, и он не может быть оптимизирован только для одной из этих функций. В результате монолитная парадигма ограничивает пропускную способность системы.
В качестве решения модульные блокчейны разделяют эти функции между несколькими специализированными уровнями как часть модульного стека. Благодаря гибкости, которую обеспечивает специализация, существует множество возможностей для организации этого стека. Например, одним из таких вариантов является разделение четырех функций на три специализированных уровня.
Базовый слой состоит из DA и консенсуса и поэтому называется слоем консенсуса и DA (или, для краткости, слоем DA), в то время как расчеты и исполнение перемещаются на верхний слой в своих собственных. В результате каждый слой может быть специализирован для оптимального выполнения только своей функции и, таким образом, повышения пропускной способности системы. Более того, эта модульная парадигма позволяет нескольким слоям исполнения, т.е. роллапам, использовать одни и те же слои расчета и DA.
Celestia - это уровень доступности данных (DA), который обеспечивает масштабируемое решение проблемы доступности данных. В связи с неразрешенной природой сетей блокчейн, уровень DA должен обеспечивать механизм для уровней исполнения и расчетов для проверки с минимальным уровнем доверия, действительно ли данные транзакции доступны.
Двумя ключевыми особенностями слоя DA Celestia являются выборка доступности данных (DAS) и Namespaced Merkle trees (хз как перевести) (NMTs). Обе функции представляют собой новые решения для масштабирования блокчейна: DAS позволяет легким узлам проверять доступность данных без необходимости загружать весь блок; NMT позволяют уровням исполнения и расчетов Celestia загружать транзакции, имеющие отношение только к ним.
В целом, легкие узлы загружают только заголовки блоков, которые содержат фиксаторы (т.е. корни Меркла) данных блока (т.е. список транзакций).
Чтобы сделать DAS возможным, Celestia использует двумерную схему кодирования Рида-Соломона: каждый блок данных разбивается на k × k кусков, упорядочивается в k × k матрицу и расширяется данными о четности в расширенную матрицу 2k × 2k путем многократного применения кодирования Рида-Соломона.
Затем вычисляются 4k отдельных корней Меркла для строк и столбцов расширенной матрицы; корень Меркла из этих корней используется в качестве обязательства данных блока в заголовке.
Чтобы убедиться в наличии данных, легкие узлы Celestia делают отбор блоков данных размером 2k × 2k.
Каждый узел случайным образом выбирает набор уникальных координат в расширенной матрице и запрашивает полные узлы о кусках данных и соответствующих доказательствах Меркла в этих координатах. Если легкие узлы получают правильный ответ на каждый запрос выборки, то с высокой вероятностью можно гарантировать, что данные всего блока доступны.
Кроме того, каждый полученный фрагмент данных с правильным доказательством Меркла передается в сеть. В результате, до тех пор, пока легкие узлы Celestia собирают вместе достаточное количество блоков данных (т.е. не менее k × k уникальных блоков), полный блок может быть восстановлен полными узлами.
DAS позволяет Celestia масштабировать слой DA. DAS может выполняться лайт нодами с ограниченными ресурсами, поскольку каждая лайт нода сэмплирует только небольшую часть данных блока. Чем больше лайт нод в сети, тем больше данных они могут коллективно загрузить и сохранить.
Это означает, что увеличение числа лайт нод, выполняющих DAS, позволяет создавать более крупные блоки (т.е. с большим количеством транзакций), при этом DAS остается выполнимой для этих нод с ограниченными ресурсами. Однако для проверки заголовков блоков нодами Celestia необходимо загрузить промежуточные корни Меркла в формате 4k.
Для блока данных размером n байт это означает, что каждая лайт нода загрузит O(n) байт. Поэтому любое улучшение пропускной способности этих нод Celestia имеет квадратичный эффект на пропускную способность уровня DA Celestia.
Требование загрузки 4k промежуточных корней Меркла является следствием использования двумерной схемы кодирования Рида-Соломона. В качестве альтернативы DAS может быть разработана со стандартным (т.е. одномерным) кодированием Рида-Соломона, где исходные данные разбиваются на k блоков и дополняются k дополнительными блоками данных о четности. Поскольку обязательство данных блока является корнем Меркла из 2k результирующих кусков данных, легким узлам больше не нужно загружать O(n) байт для проверки заголовков блоков.
Недостатком стандартного кодирования Рида-Соломона является работа со злонамеренными производителями блоков, которые неправильно генерируют расширенные данные.
Это возможно, поскольку Celestia не требует, чтобы большинство участников консенсуса (т.е. производителей блоков) были честными, чтобы гарантировать доступность данных. Таким образом, если расширенные данные недействительны, исходные данные могут быть не восстановлены, даже если лайт ноды выбирают достаточное количество уникальных блоков (т.е. не менее k для стандартного кодирования и k × k для двумерного кодирования).
В качестве решения проблемы используются доказательства мошенничества в отношении неверно сгенерированных распознанных данных, позволяющие лайт нодам отклонять блоки с неверно расширенными данными. Такие доказательства требуют восстановления кодировки и проверки несоответствия. При стандартном кодировании Рида-Соломона это требует загрузки исходных данных, т.е. O(n) байт. Напротив, при двумерном кодировании Рида-Соломона требуется только O(n ) байт, поскольку достаточно проверить только одну строку или один столбец матрицы.
Обеспечение доступности данных
Уровень DA Celestia состоит из блокчейна PoS. Celestia называет этот блокчейн Celestia App - приложение, которое обеспечивает транзакции для поддержки уровня DA и создано с использованием Cosmos SDK. На следующем рисунке показаны основные компоненты Celestia App.
Celestia App построена на базе Celestia Core, модифицированной версии алгоритма консенсуса Tendermint. Среди наиболее важных изменений по сравнению с ванильным Tendermint, Celestia Core:
Позволяет кодировать данные блока стиранием (с использованием двумерной схемы кодирования Рида-Соломона).
Заменяет обычное дерево Меркла, используемое Tendermint для хранения данных блоков, на дерево Меркла с распределением имен, которое позволяет вышележащим уровням (т.е. исполнение и расчеты) загружать только необходимые данные.
Для получения более подробной информации об изменениях в Tendermint ознакомьтесь с ADRs. Обратите внимание, что узлы Celestia Core по-прежнему используют p2p-сеть Tendermint.
Как и Tendermint, Celestia Core связана с прикладным уровнем посредством ABCI++, что является значительной эволюцией ABCI (Application Blockchain Interface).
Машина состояния Celestia App необходима для выполнения логики PoS и управления уровнем DA.
Однако Celestia App не зависит от данных - механизм не проверяет и не хранит данные, которые предоставляются Celestia App.
Пользователи запрашивают Celestia App о предоставлении данных, отправляя транзакции PayForData. Каждая такая транзакция состоит из идентификатора отправителя, данных, которые должны быть предоставлены, также называемых сообщением, размера данных, идентификатора пространства имен и подписи. Каждый производитель блоков объединяет несколько транзакций PayForData в блок.
Однако прежде чем предложить блок, производитель передает его в механизм через ABCI++, где каждая транзакция PayForData разделяется на сообщение с пространством имен (обозначено Msg на рисунке ниже), то есть данные вместе с идентификатором пространства имен, и исполняемую транзакцию (обозначена e-Tx на рисунке ниже), которая не содержит данных, а только обязательство, которое может быть использовано позже для доказательства того, что данные действительно были предоставлены.
Далее производитель блока добавляет в заголовок блока обязательство данных. Как описано здесь, обязательство представляет собой корень Меркла из 4k промежуточных корней Меркла (т.е. по одному для каждой строки и столбца расширенной матрицы). Чтобы вычислить это обязательство, производитель блока выполняет следующие операции:
Он разделяет исполняемые транзакции и данные пространства имен на доли. Каждая доля состоит из нескольких байтов, которым предшествует идентификатор пространства имен. Для этого исполняемые транзакции ассоциируются с зарезервированным пространством имен.
Он упорядочивает эти доли в квадратную матрицу (по строкам). Обратите внимание, что доли заполняются до следующей второй степени. Полученный квадрат размером k × k называется исходными данными.
Он расширяет исходные данные до квадратной матрицы 2k × 2k, используя описанную выше двумерную схему кодирования Рида-Соломона. Расширенные доли (т.е. содержащие данные стирания) ассоциируются с другим зарезервированным пространством имен.
Он вычисляет обязательство для каждой строки и столбца расширенной матрицы, используя NМТ, описанные выше.
Таким образом, обязательство блочных данных является корнем дерева Меркла, а листья - корнями леса поддеревьев Namespaced Merkle, по одному на каждую строку и столбец расширенной матрицы.
Для расширения возможностей подключения нода Celestia дополняет Celestia App отдельной сетью libp2p, т.е. так называемой сетью DA, которая обслуживает запросы DAS.
Легкие ноды подключаются к ноде Celestia в сети DA, просматривают расширенные заголовки блоков (т.е. заголовки блоков вместе с соответствующими метаданными DA, такими как промежуточные корни Меркла в формате 4k) и выполняют DAS на полученных заголовках (т.е. запрашивают случайные фрагменты данных).
Обратите внимание, что выполнение DAS необязательно - лайт ноды могут просто поверить, что данные, соответствующие обязательствам в заголовках блоков, действительно были предоставлены уровнем Celestia DA. Кроме того, лайт ноды могут отправлять транзакции в Celestia App, т.е. транзакции PayForData.
При выполнении DAS для заголовка блока каждая лайт нода запрашивает у узлов Celestia некоторое количество случайных фрагментов данных из расширенной матрицы и соответствующие доказательства Меркла. Если все запросы успешны, то лайт нода принимает заголовок блока как действительный (с точки зрения DA).
Если хотя бы один из запросов оказывается неудачным (т.е. либо кусок данных не получен, либо доказательство Меркла недействительно), то лайт нода отклоняет заголовок блока и повторяет попытку позже. Повторная попытка необходима для борьбы с ложными отрицаниями, т.е. заголовки блоков отклоняются, хотя данные блока доступны. Это может произойти, например, из-за перегрузки сети.
В качестве альтернативы, лайт ноды могут принять заголовок блока, хотя данные будут недоступны, т.е. ложное срабатывание. Это возможно, поскольку свойство надежности (т.е. если честная лайт нода принимает блок как доступный, то по крайней мере один честный полный узел в конечном итоге будет иметь все данные блока) гарантировано.
Путем точной настройки параметров Celestia (например, количества блоков данных, отбираемых каждой лайт нодой) вероятность ложных срабатываний может быть снижена настолько, что у производителей блоков не будет стимула скрывать данные блока.
No activity yet