MMS

Сегодня мы рады объявить о выпуске нашего минимально жизнеспособного продукта (MVP) — легкого клиента выборки доступности данных. Это знаменует собой первую важную веху в нашей дорожной карте по созданию универсальной консенсусной сети, позволяющей любому развернуть свой собственный блокчейн за считанные минуты.

TL;DR

  • Легкие клиенты выборки доступности данных играют важную роль в безопасности, масштабируемости и функциональной совместимости экосистемы Celestia.
  • Легкие клиенты Celestia обладают почти такой же безопасностью, как и полные узлы, и не полагаются на честное консенсусное большинство для проверки состояния.
  • Наша реализация объединяет двухмерное кодирование стирания Рида-Соломона с консенсусом Tendermint и компонентами IPFS для обеспечения выборки доступности данных.
  • Инструкции о том, как поиграть с нашим легким клиентом, можно найти в конце поста.

Что такое облегченный клиент выборки доступности данных?

В отличие от большинства других блокчейнов, Celestia предназначена исключительно для обеспечения консенсуса и доступности данных, а не для выполнения транзакций. Точно так же легкие клиенты Celestia не проверяют транзакции, они только проверяют, что каждый блок имеет консенсус и что данные блока доступны для сети. Это означает, что они не полагаются на честное консенсусное большинство для проверки состояния, свойство, которым обычно обладают только полные узлы.

Благодаря продуманной схеме блочного кодирования легким клиентам достаточно лишь небольшой случайной выборки данных блока, чтобы с высокой вероятностью убедиться, что остальная часть блока опубликована. Если какой-либо полный узел обнаружит что-то подозрительное, он может уведомить легких клиентов с доказательством мошенничества с доступностью данных.

Идея повышения безопасности легкого клиента восходит к оригинальному техническому документу Биткойн . В документе Сатоши упоминает, что легкие клиенты можно было бы сделать более безопасными, если бы полные узлы отправляли им «предупреждения» при публикации недопустимого блока. Получив предупреждение, легкие клиенты загружали полный блок, чтобы убедиться в несоответствии для себя.

Несмотря на свое раннее происхождение, эта идея оставалась в значительной степени неисследованной примерно до 2018 года, когда в новом исследовании было предложено как теоретическое решение для максимальной безопасности легких клиентов — даже перед лицом нечестного большинства — так и первое практическое решение проблемы доступности данных .

Наш облегченный клиент выборки доступности данных — это первая реализация вышеупомянутого исследования, встроенная в проверенный в боевых условиях механизм консенсуса Tendermint.

 

Но подождите, есть еще

Помимо своих преимуществ в плане безопасности, легкие клиенты Celestia играют фундаментальную роль в обеспечении безопасности и масштабируемости сети в целом. Легкие клиенты Celestia полагаются на безопасность в цифрах. Должно быть минимальное количество легких клиентов, чтобы гарантировать возможность восстановления исходных данных блока из всех выборок, которые они берут по отдельности.

С другой стороны, по мере увеличения количества легких клиентов размер каждого блока также может увеличиваться без ущерба для безопасности или децентрализации сети. Большие блоки означают большую пропускную способность данных и большее масштабирование.

Легкие клиенты для выборки данных являются ключевым компонентом всех сайдчейнов на основе агрегированных данных, построенных на основе Celestia, поскольку безопасность накопительных пакетов зависит от доступности данных. Для оптимистичных пакетов требуется доступность данных, чтобы можно было обнаружить мошенничество, а для пакетов с нулевым разглашением требуется доступность данных, чтобы пользователи могли знать состояние цепочки.

И последнее, но не менее важное: легкие клиенты являются ключевыми компонентами стандартов взаимодействия блокчейнов, таких как IBC . Улучшенная безопасность легких клиентов Celestia означает, что цепочки, построенные на Celestia, имеют гораздо более надежные гарантии безопасности для совместимости.

 

Основные технические характеристики

Этот MVP сочетает в себе несколько основных компонентов, над которыми наша команда инженеров работала последние несколько месяцев.

Мы реализовали библиотеку дерева Меркла с пространством имен ( NMT ). Это бинарное дерево Меркла, отсортированное по пространствам имен, которое позволяет любому накопительному пакету в Celestia загружать только данные, относящиеся к его цепочке, и игнорировать данные для других накопительных пакетов. Узлы в дереве помечаются минимальным и максимальным пространством имен своих дочерних элементов. Мы заменили обычное дерево Меркла Tendermint нашим NMT. Вы можете думать об этом как о многопользовательском Tendermint, где каждое приложение должно заботиться только о своей части дерева.

Мы также внедрили специальную схему кодирования под названием 2-Dimensional Reed-Solomon Merkle Tree ( rsmt2d ). Мы используем эту схему для кодирования данных блока в квадрат, который кодируется стиранием в больший квадрат с данными четности. Затем мы интегрировали этот механизм кодирования вместе с NMT для вычисления корней Меркла строк и столбцов из закодированного стиранием блока, который мы называем расширенным блоком или расширенным квадратом. Мы изменили заголовок блока Tendermint, чтобы зафиксировать эти корни строк и столбцов.

Цель этих изменений — сделать статистически маловероятным сокрытие или утаивание данных производителями блоков. Либо все данные блока доступны, либо выборка доступности данных не удалась.

Чтобы сделать выборку возможной в одноранговой сети, мы сделали так, чтобы производители блоков передавали данные таким образом, чтобы их было легко выбирать. В частности, мы написали подключаемый модуль IPLD и модифицировали IPFS с целью создания оптимизированной сети, из которой легкие клиенты могут получать данные. IPFS и особенно IPLD кажутся естественными для этого, поскольку все данные адресуются через дерево Меркла (с пространством имен).

Мы объединили все это в библиотеку, которую могут использовать легкие клиенты и узлы других типов для проверки доступности блока. Чтобы получить представление о том, как это сравнивается с ванильным легким клиентом Tendermint, не углубляясь в код, вам следует взглянуть на этот ADR .

 

Возьмемся за дело!

Теперь давайте погрузимся в код. Посмотрите нашу демонстрацию, чтобы оценить легкий клиент.

Что дальше?

Хотя MVP является важной вехой, предстоит еще много работы, чтобы сделать обнаружение контента на уровне одноранговой сети IPFS эффективным в большой сети. Дополнительные сведения см. в этом выпуске GitHub . Приведенная выше демонстрация основана на непосредственно подключенных узлах.

Нашей следующей ближайшей вехой является полная реализация других типов узлов . Ознакомьтесь с этим GitHub, для получения более подробной информации. После этого мы завершим нашу следующую большую веху — Devnet. Наш Devnet позволит любому запустить полный узел Celestia локально, а также генерировать и проверять доказательства доступности данных.

Если вам интересно следить за развитием Celestia или участвовать в нашем сообществе, присоединяйтесь к нашему каналу в Telegram , заходите на наш сервер Discord , помечайте наши репозитории на GitHub и следите за новостями в Twitter .

Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *