Шардинг: передовые исследования масштабирования Блокчейна
15 сентября 2022 года Эфириум завершил слияние (Merge). Это исторический момент, к которому Эфириум готовился 5 лет, отложив 6 раз. Из-за постоянной отладки и долгосрочной разработки, а также эффекта повышенного внимания, многие ошибочно полагали, что слияние естественным образом приведет к более высокой масштабируемости, безопасности и устойчивости, но на самом деле это не так. Переход от PoW( к PoS) - это всего лишь замена "рельсов и колес", и он не приведет напрямую к более высокой скорости, большей емкости или более низким расходам. Реализовать эти цели может только комплексное решение: основная сеть с возможностью Шардинга в сочетании с решениями второго уровня, повышающими масштабируемость.
Как отметил основатель Эфириума Виталик Бутерин, шардинг является решением для масштабируемости в рамках тройственной проблемы. Он позволяет разбивать узлы сети на меньшие группы, обрабатывать различные наборы транзакций и осуществлять параллельную обработку. Это похоже на то, как в супермаркете при оплате покупок открываются несколько касс, что позволяет сократить время ожидания и повысить эффективность расчетов.
Это логика Шардинга, прямолинейная и простая. Однако дьявол кроется в деталях - принципы и направление верны, но на практике всегда возникают множество проблем. Эта статья направлена на то, чтобы прояснить направление и проблемы на пути "Шардинга", нарисовать карту исследователя Шардинга, смотрящего на звезды и стоящего на земле. В то же время, сравнивая существующие решения Шардинга, найти некоторые общие проблемы и предложить возможное направление исследования: Shardeum и динамический Шардинг.
Проще говоря, учитывая ограничения невозможного треугольника, начиная с Эфириума как начала координат (0,0), согласно двум подходам: "вертикальному" и "горизонтальному", мы разделим методы масштабирования текущего Блокчейн на две большие категории:
Вертикальное масштабирование(Vertical Scaling): достигается за счет повышения производительности существующего аппаратного обеспечения системы. Создание децентрализованной сети, в которой каждый узел обладает супервычислительной мощностью, то есть каждый узел требует "лучшее" оборудование. Этот подход прост и эффективен, он может привести к первоначальному улучшению пропускной способности, особенно подходит для высокочастотной торговли, игр и других приложений, чувствительных к задержкам. Однако этот способ масштабирования ограничивает уровень децентрализации сети, поскольку затраты на запуск узлов проверки или полных узлов возрастают. Уровень децентрализации ограничен приблизительной скоростью роста производительности вычислительного оборудования( это и есть так называемая "Закон Мура": количество транзисторов на чипе удваивается каждые два года, а стоимость вычислений уменьшается вдвое).
Горизонтальное масштабирование(Horizontal Scaling): Горизонтальное масштабирование обычно имеет несколько подходов. Один из них в контексте Блокчейна заключается в распределении вычислительной нагрузки транзакций в экосистеме на несколько независимых Блокчейнов, каждая цепочка имеет своих производителей блоков и исполнительные способности. Этот подход позволяет полностью настраивать уровень исполнения каждой цепочки, например, требования к аппаратному обеспечению узлов, функции конфиденциальности, газовые сборы, виртуальные машины и настройки разрешений. Другой вариант горизонтального масштабирования - модульный Блокчейн, который разделяет инфраструктуру Блокчейна на уровень исполнения, уровень доступности данных(DA) и уровень консенсуса. Самый популярный модульный механизм Блокчейна - это rollup. Также существует способ разделения одного Блокчейна на множество шардов с параллельным исполнением. Каждый шард можно рассматривать как отдельный Блокчейн, то есть многие Блокчейны могут исполняться параллельно. Кроме того, обычно есть одна основная цепочка, единственной задачей которой является поддержание синхронизации всех шардов.
Следует отметить, что вышеупомянутые подходы к масштабированию не существуют изолированно, каждое из решений находит компромисс в рамках невозможного треугольника, сочетая его с проектированием механизмов стимулов, создаваемых экономическими силами в системе, для достижения эффективного баланса на макро- и микроуровне.
Чтобы обсудить "Шардинг", нам нужно начать с самого начала.
По-прежнему предполагаем такую ситуацию: при расчете в супермаркете, чтобы повысить эффективность расчетов и сократить время ожидания клиентов, мы расширяем количество касс с одной до 10. Чтобы избежать ошибок в учете, в это время нам необходимо установить единые правила:
Первое, если у нас есть 10 кассиров, как мы распределим их по каким окнам?
Во-вторых, если у нас есть 1000 клиентов, ожидающих в очереди, как мы можем решить, к какому окну каждый клиент должен подойти для расчета?
Третье, как провести сводку по 10 отдельным книгам учета, соответствующим этим 10 окнам?
Четвертое, как предотвратить ошибки кассиров, чтобы избежать несоответствий в учетах?
Эти несколько вопросов на самом деле соответствуют нескольким ключевым вопросам в Шардинге, а именно:
Как определить, к какому Шардингу принадлежат узлы/валидаторы по всей сети? То есть: как осуществляется Шардинг сети (Network Sharding);
Как определить, как каждая транзакция распределяется по какому шардингу? То есть: как осуществить шардирование транзакции (Transaction Sharding);
Как данные Блокчейн хранятся в различных Шардинг? То есть: как происходит состояние Шардинг (State Sharding);
Сложность означает риск, на основе всего вышесказанного, как избежать раскола безопасности всей системы?
( 01 Сеть Шардинг)Network Sharding###
Если мы упростим понимание Блокчейн как децентрализованного реестра, будь то механизмы консенсуса PoS или PoW, они предназначены для того, чтобы различные узлы по определённым заранее установленным правилам боролись за право ведения учёта, при этом обеспечивая правильность реестра. А Шардинг сети подразумевает, что требуется другой набор заранее установленных правил для разделения сети Блокчейн на фрагменты, при этом стараясь минимизировать взаимную связь, и каждый фрагмент обрабатывает транзакции в сети, борясь за право ведения учёта - то есть, правила группировки узлов.
Однако в процессе возникают проблемы: по мере того, как внутренние узлы Блокчейна делятся на разные Шарды, сложность и стоимость для злоумышленников резко снижаются. Мы можем предположить, что если правила и результаты этого процесса группировки фиксированы и предсказуемы, то злоумышленнику для контроля всей сети Блокчейн достаточно направленно контролировать один из Шардов, подкупив часть узлов внутри него.
Система шардинга должна разработать механизм, чтобы доверять сети, что она не сможет отменить эти транзакции из внешних шардов. На сегодняшний день, вероятно, лучшим ответом является обеспечение того, чтобы количество валидаторов в шарде превышало какой-то минимальный порог, чтобы вероятность того, что недобросовестные валидаторы смогут подавить отдельный шард, была очень низкой. Наиболее распространенный способ заключается в создании определенной степени беспристрастной случайности, полагаясь на математические методы, чтобы минимизировать вероятность успеха атакующего. Например, в Ethereum решение заключается в случайном выборе валидаторов для определенного шарда из всех валидаторов, и каждые 6.4 минуты( длина эпохи) валидаторы меняются.
Говоря проще, это значит случайным образом разбивать узлы на группы и затем распределять работу для независимой валидации по узлам в каждой группе.
Однако стоит отметить, что случайность в Блокчейне является очень сложной темой, логически говоря, процесс генерации этого случайного числа не должен зависеть от вычислений какого-либо конкретного Шардинга. Для таких вычислений многие существующие проектные идеи заключаются в разработке отдельного Блока, который обслуживает всю сеть. Такие цепи называются Beacon цепями в Ethereum и Near, Relay цепями в PolkaDot и Cosmos Hub в Cosmos.
Торговый шардинг относится к правилам о том, "какие транзакции должны быть распределены по каким шардам", что позволяет достичь цели параллельной обработки и избежать проблемы двойного расходования. Различия в модели бухгалтерского учета Блокчейн повлияют на разработку торгового шардинга.
В настоящее время в сети Блокчейн существуют два типа методов учета: UTXO###Unspent Transaction Outputs, модель неиспользуемых выходов транзакций( и модель счета/баланса, типичным представителем которой является BTC, в то время как ETH относится ко второй.
Модель UTXO: В BTC-транзакциях каждая транзакция имеет один или несколько выходов, UTXO означает неиспользованные выходы транзакций в блокчейне, которые могут быть использованы в качестве входов для новых транзакций, в то время как уже использованные выходы транзакций не могут быть повторно использованы, что похоже на ситуацию с наличными деньгами, когда покупатель передает店家 одну или несколько банкнот, а店家 возвращает покупателю одну или несколько банкнот в качестве сдачи. В модели UTXO торговые транзакции требуют межфрагментной связи. Одна транзакция может включать несколько входов и несколько выходов, концепции счетов не существует, также не ведется учет балансов, возможный способ заключается в том, чтобы обрабатывать входное значение транзакции с помощью хэш-функции, чтобы получить дискретное хэш-значение для определения того, в какой фрагмент должны идти данные.
Чтобы гарантировать, что записи размещаются в правильных Шардах последовательно, значения, вводимые в хеш-функцию, должны происходить из одного и того же столбца. Этот столбец называется Shard Key. Затем транзакции, генерирующие значение 1, распределяются в Шард 1, а транзакции, генерирующие значение 2, распределяются в Шард 2. Однако недостатком этого подхода является то, что Шарды должны обмениваться данными, чтобы избежать атаки двойного расходования. Если ограничить транзакции между Шардами, это ограничит доступность платформы, а если позволить транзакции между Шардами, придется взвешивать затраты на межшардовую связь и выгоды от повышения производительности.
Модель аккаунтов/балансов: Система регистрирует баланс каждого аккаунта. При проведении транзакции система проверяет, достаточно ли средств на аккаунте для оплаты, аналогично тому, как банк регистрирует баланс каждого аккаунта при банковском переводе, и только если баланс аккаунта больше необходимой суммы перевода, транзакция может быть выполнена. В модели аккаунтов/балансов, поскольку у транзакции только один ввод, достаточно разделить транзакцию по адресу отправителя, чтобы гарантировать, что несколько транзакций одного и того же аккаунта обрабатываются в одном шарде, что эффективно предотвращает двойные траты. Поэтому большинство блокчейнов, использующих технологию шардинга, являются системами учетных книг аккаунтов, подобными Ethereum.
! [Шардеум: еще одна возможность шардинга])https://img-cdn.gateio.im/webp-social/moments-4227a2e49f76cd01b23d7b5398e51a3c.webp(
) 03 Состояние Шардинг (State Sharding )
Статус шардинга относится к тому, как данные в Блокчейне распределяются и хранятся в разных шардах.
По-прежнему используя наш пример с очередями в супермаркете, на каждом окне есть своя учетная запись, как они ведут свои книги учета? Если: клиент встает в какую очередь, тот и записывается, например, клиент A подошел к окну A, а на следующий день этот клиент пошел в другое окно, например, в окно B, но у окна B нет информации о прошлом счете этого клиента ###, например, если это касается способов расчета, таких как предоплаченные карты (, что делать? Запрашивать учетные данные этого клиента у окна A?
Состояние шардирования является самой большой проблемой шардирования, более сложной, чем вышеупомянутое сетевое шардирование и шардирование транзакций. Поскольку в механизме шардирования транзакции распределяются по различным шардированным блокам в зависимости от адреса, это означает, что состояние будет храниться только в шардированном блоке, соответствующем его адресу. В этом случае возникает проблема, что транзакции не будут происходить только в одном шардированном блоке, и часто будут затрагивать кросс-шардирование )Cross-Sharding(.
Рассмотрим ситуацию перевода: A-аккаунт переводит 10U на B-аккаунт, при этом адрес A распределён в Шардинг 1, записи транзакций также будут храниться в Шардинг 1. Адрес B распределён в Шардинг 2, записи транзакций будут храниться в Шардинг 2.
Когда A хочет перевести средства B, это приведет к межшардинговой сделке, и Шардинг 2 будет запрашивать прошлые записи транзакций у Шардинга 1 для подтверждения действительности сделки. Если A часто отправляет средства B, Шардинг 2 должен постоянно взаимодействовать с Шардингом 1, что приведет к снижению эффективности обработки транзакций. Однако, если участники не загрузят и не проверят всю историю конкретного Шардинга, они не смогут точно определить, является ли состояние их взаимодействия результатом некоторых последовательностей действительных Блоков, и действительно ли такие последовательности Блоков соответствуют нормальной цепи в Шардинге.
Таким образом, по сравнению с единой цепью без шардинга, система шардинга сталкивается с новыми вызовами, такими как невозможность пользователям напрямую и полностью проверять действительность и доступность любой данной цепи из-за слишком большого объема данных. Необходимо предоставить пользователям максимально возможные методы косвенной проверки, чтобы определить, какая цепь полностью доступна и действительна, чтобы они могли определить, какая цепь является стандартной. На практике разработчики Блокчейн могут использовать следующие технологии для решения некоторых проблем с проверкой: такие как комитеты, SNARKs/STARKs, механизмы рыбаков, а также доказательства мошенничества и доступности данных.
Есть два подхода для решения этой проблемы, один из них - синхронный межшардинговый.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
16 Лайков
Награда
16
7
Поделиться
комментарий
0/400
ExpectationFarmer
· 08-03 11:53
Шардинг? А это не сытно.
Посмотреть ОригиналОтветить0
BuyHighSellLow
· 08-03 05:41
Мошенничество 5 лет, наконец, решено.
Посмотреть ОригиналОтветить0
ShitcoinConnoisseur
· 08-03 05:40
Виталик Бутерин说啥都对~
Посмотреть ОригиналОтветить0
SellTheBounce
· 08-03 05:35
Снова увидели, как неудачники разыгрываются как лохи.
Посмотреть ОригиналОтветить0
BrokenYield
· 08-03 05:25
вздох... ещё одно переоценённое слияние, которое ничего не решило. классический крипто, честно говоря
Посмотреть ОригиналОтветить0
SchroedingerGas
· 08-03 05:20
Снова разыгрывайте людей как лохов?
Посмотреть ОригиналОтветить0
Blockblind
· 08-03 05:14
Годами занимались, а в итоге только оболочка? Нам нужен низкий Газ.
Исследование технологии шардинга: анализ принципов и вызовов масштабирования блокчейна
Шардинг: передовые исследования масштабирования Блокчейна
15 сентября 2022 года Эфириум завершил слияние (Merge). Это исторический момент, к которому Эфириум готовился 5 лет, отложив 6 раз. Из-за постоянной отладки и долгосрочной разработки, а также эффекта повышенного внимания, многие ошибочно полагали, что слияние естественным образом приведет к более высокой масштабируемости, безопасности и устойчивости, но на самом деле это не так. Переход от PoW( к PoS) - это всего лишь замена "рельсов и колес", и он не приведет напрямую к более высокой скорости, большей емкости или более низким расходам. Реализовать эти цели может только комплексное решение: основная сеть с возможностью Шардинга в сочетании с решениями второго уровня, повышающими масштабируемость.
Как отметил основатель Эфириума Виталик Бутерин, шардинг является решением для масштабируемости в рамках тройственной проблемы. Он позволяет разбивать узлы сети на меньшие группы, обрабатывать различные наборы транзакций и осуществлять параллельную обработку. Это похоже на то, как в супермаркете при оплате покупок открываются несколько касс, что позволяет сократить время ожидания и повысить эффективность расчетов.
Это логика Шардинга, прямолинейная и простая. Однако дьявол кроется в деталях - принципы и направление верны, но на практике всегда возникают множество проблем. Эта статья направлена на то, чтобы прояснить направление и проблемы на пути "Шардинга", нарисовать карту исследователя Шардинга, смотрящего на звезды и стоящего на земле. В то же время, сравнивая существующие решения Шардинга, найти некоторые общие проблемы и предложить возможное направление исследования: Shardeum и динамический Шардинг.
! Шардеум: еще одна возможность шардинга
Один. О "Шардинг"
Проще говоря, учитывая ограничения невозможного треугольника, начиная с Эфириума как начала координат (0,0), согласно двум подходам: "вертикальному" и "горизонтальному", мы разделим методы масштабирования текущего Блокчейн на две большие категории:
Вертикальное масштабирование(Vertical Scaling): достигается за счет повышения производительности существующего аппаратного обеспечения системы. Создание децентрализованной сети, в которой каждый узел обладает супервычислительной мощностью, то есть каждый узел требует "лучшее" оборудование. Этот подход прост и эффективен, он может привести к первоначальному улучшению пропускной способности, особенно подходит для высокочастотной торговли, игр и других приложений, чувствительных к задержкам. Однако этот способ масштабирования ограничивает уровень децентрализации сети, поскольку затраты на запуск узлов проверки или полных узлов возрастают. Уровень децентрализации ограничен приблизительной скоростью роста производительности вычислительного оборудования( это и есть так называемая "Закон Мура": количество транзисторов на чипе удваивается каждые два года, а стоимость вычислений уменьшается вдвое).
Горизонтальное масштабирование(Horizontal Scaling): Горизонтальное масштабирование обычно имеет несколько подходов. Один из них в контексте Блокчейна заключается в распределении вычислительной нагрузки транзакций в экосистеме на несколько независимых Блокчейнов, каждая цепочка имеет своих производителей блоков и исполнительные способности. Этот подход позволяет полностью настраивать уровень исполнения каждой цепочки, например, требования к аппаратному обеспечению узлов, функции конфиденциальности, газовые сборы, виртуальные машины и настройки разрешений. Другой вариант горизонтального масштабирования - модульный Блокчейн, который разделяет инфраструктуру Блокчейна на уровень исполнения, уровень доступности данных(DA) и уровень консенсуса. Самый популярный модульный механизм Блокчейна - это rollup. Также существует способ разделения одного Блокчейна на множество шардов с параллельным исполнением. Каждый шард можно рассматривать как отдельный Блокчейн, то есть многие Блокчейны могут исполняться параллельно. Кроме того, обычно есть одна основная цепочка, единственной задачей которой является поддержание синхронизации всех шардов.
Следует отметить, что вышеупомянутые подходы к масштабированию не существуют изолированно, каждое из решений находит компромисс в рамках невозможного треугольника, сочетая его с проектированием механизмов стимулов, создаваемых экономическими силами в системе, для достижения эффективного баланса на макро- и микроуровне.
Чтобы обсудить "Шардинг", нам нужно начать с самого начала.
По-прежнему предполагаем такую ситуацию: при расчете в супермаркете, чтобы повысить эффективность расчетов и сократить время ожидания клиентов, мы расширяем количество касс с одной до 10. Чтобы избежать ошибок в учете, в это время нам необходимо установить единые правила:
Первое, если у нас есть 10 кассиров, как мы распределим их по каким окнам?
Во-вторых, если у нас есть 1000 клиентов, ожидающих в очереди, как мы можем решить, к какому окну каждый клиент должен подойти для расчета?
Третье, как провести сводку по 10 отдельным книгам учета, соответствующим этим 10 окнам?
Четвертое, как предотвратить ошибки кассиров, чтобы избежать несоответствий в учетах?
Эти несколько вопросов на самом деле соответствуют нескольким ключевым вопросам в Шардинге, а именно:
Как определить, к какому Шардингу принадлежат узлы/валидаторы по всей сети? То есть: как осуществляется Шардинг сети (Network Sharding);
Как определить, как каждая транзакция распределяется по какому шардингу? То есть: как осуществить шардирование транзакции (Transaction Sharding);
Как данные Блокчейн хранятся в различных Шардинг? То есть: как происходит состояние Шардинг (State Sharding);
Сложность означает риск, на основе всего вышесказанного, как избежать раскола безопасности всей системы?
( 01 Сеть Шардинг)Network Sharding###
Если мы упростим понимание Блокчейн как децентрализованного реестра, будь то механизмы консенсуса PoS или PoW, они предназначены для того, чтобы различные узлы по определённым заранее установленным правилам боролись за право ведения учёта, при этом обеспечивая правильность реестра. А Шардинг сети подразумевает, что требуется другой набор заранее установленных правил для разделения сети Блокчейн на фрагменты, при этом стараясь минимизировать взаимную связь, и каждый фрагмент обрабатывает транзакции в сети, борясь за право ведения учёта - то есть, правила группировки узлов.
Однако в процессе возникают проблемы: по мере того, как внутренние узлы Блокчейна делятся на разные Шарды, сложность и стоимость для злоумышленников резко снижаются. Мы можем предположить, что если правила и результаты этого процесса группировки фиксированы и предсказуемы, то злоумышленнику для контроля всей сети Блокчейн достаточно направленно контролировать один из Шардов, подкупив часть узлов внутри него.
Система шардинга должна разработать механизм, чтобы доверять сети, что она не сможет отменить эти транзакции из внешних шардов. На сегодняшний день, вероятно, лучшим ответом является обеспечение того, чтобы количество валидаторов в шарде превышало какой-то минимальный порог, чтобы вероятность того, что недобросовестные валидаторы смогут подавить отдельный шард, была очень низкой. Наиболее распространенный способ заключается в создании определенной степени беспристрастной случайности, полагаясь на математические методы, чтобы минимизировать вероятность успеха атакующего. Например, в Ethereum решение заключается в случайном выборе валидаторов для определенного шарда из всех валидаторов, и каждые 6.4 минуты( длина эпохи) валидаторы меняются.
Говоря проще, это значит случайным образом разбивать узлы на группы и затем распределять работу для независимой валидации по узлам в каждой группе.
Однако стоит отметить, что случайность в Блокчейне является очень сложной темой, логически говоря, процесс генерации этого случайного числа не должен зависеть от вычислений какого-либо конкретного Шардинга. Для таких вычислений многие существующие проектные идеи заключаются в разработке отдельного Блока, который обслуживает всю сеть. Такие цепи называются Beacon цепями в Ethereum и Near, Relay цепями в PolkaDot и Cosmos Hub в Cosmos.
! 10 000 слов подробное объяснение новой публичной сети Shardeum: еще одна возможность шардинга
( 02 Транзакции Шардинг )
Торговый шардинг относится к правилам о том, "какие транзакции должны быть распределены по каким шардам", что позволяет достичь цели параллельной обработки и избежать проблемы двойного расходования. Различия в модели бухгалтерского учета Блокчейн повлияют на разработку торгового шардинга.
В настоящее время в сети Блокчейн существуют два типа методов учета: UTXO###Unspent Transaction Outputs, модель неиспользуемых выходов транзакций( и модель счета/баланса, типичным представителем которой является BTC, в то время как ETH относится ко второй.
Модель UTXO: В BTC-транзакциях каждая транзакция имеет один или несколько выходов, UTXO означает неиспользованные выходы транзакций в блокчейне, которые могут быть использованы в качестве входов для новых транзакций, в то время как уже использованные выходы транзакций не могут быть повторно использованы, что похоже на ситуацию с наличными деньгами, когда покупатель передает店家 одну или несколько банкнот, а店家 возвращает покупателю одну или несколько банкнот в качестве сдачи. В модели UTXO торговые транзакции требуют межфрагментной связи. Одна транзакция может включать несколько входов и несколько выходов, концепции счетов не существует, также не ведется учет балансов, возможный способ заключается в том, чтобы обрабатывать входное значение транзакции с помощью хэш-функции, чтобы получить дискретное хэш-значение для определения того, в какой фрагмент должны идти данные.
Чтобы гарантировать, что записи размещаются в правильных Шардах последовательно, значения, вводимые в хеш-функцию, должны происходить из одного и того же столбца. Этот столбец называется Shard Key. Затем транзакции, генерирующие значение 1, распределяются в Шард 1, а транзакции, генерирующие значение 2, распределяются в Шард 2. Однако недостатком этого подхода является то, что Шарды должны обмениваться данными, чтобы избежать атаки двойного расходования. Если ограничить транзакции между Шардами, это ограничит доступность платформы, а если позволить транзакции между Шардами, придется взвешивать затраты на межшардовую связь и выгоды от повышения производительности.
Модель аккаунтов/балансов: Система регистрирует баланс каждого аккаунта. При проведении транзакции система проверяет, достаточно ли средств на аккаунте для оплаты, аналогично тому, как банк регистрирует баланс каждого аккаунта при банковском переводе, и только если баланс аккаунта больше необходимой суммы перевода, транзакция может быть выполнена. В модели аккаунтов/балансов, поскольку у транзакции только один ввод, достаточно разделить транзакцию по адресу отправителя, чтобы гарантировать, что несколько транзакций одного и того же аккаунта обрабатываются в одном шарде, что эффективно предотвращает двойные траты. Поэтому большинство блокчейнов, использующих технологию шардинга, являются системами учетных книг аккаунтов, подобными Ethereum.
! [Шардеум: еще одна возможность шардинга])https://img-cdn.gateio.im/webp-social/moments-4227a2e49f76cd01b23d7b5398e51a3c.webp(
) 03 Состояние Шардинг (State Sharding )
Статус шардинга относится к тому, как данные в Блокчейне распределяются и хранятся в разных шардах.
По-прежнему используя наш пример с очередями в супермаркете, на каждом окне есть своя учетная запись, как они ведут свои книги учета? Если: клиент встает в какую очередь, тот и записывается, например, клиент A подошел к окну A, а на следующий день этот клиент пошел в другое окно, например, в окно B, но у окна B нет информации о прошлом счете этого клиента ###, например, если это касается способов расчета, таких как предоплаченные карты (, что делать? Запрашивать учетные данные этого клиента у окна A?
Состояние шардирования является самой большой проблемой шардирования, более сложной, чем вышеупомянутое сетевое шардирование и шардирование транзакций. Поскольку в механизме шардирования транзакции распределяются по различным шардированным блокам в зависимости от адреса, это означает, что состояние будет храниться только в шардированном блоке, соответствующем его адресу. В этом случае возникает проблема, что транзакции не будут происходить только в одном шардированном блоке, и часто будут затрагивать кросс-шардирование )Cross-Sharding(.
Рассмотрим ситуацию перевода: A-аккаунт переводит 10U на B-аккаунт, при этом адрес A распределён в Шардинг 1, записи транзакций также будут храниться в Шардинг 1. Адрес B распределён в Шардинг 2, записи транзакций будут храниться в Шардинг 2.
Когда A хочет перевести средства B, это приведет к межшардинговой сделке, и Шардинг 2 будет запрашивать прошлые записи транзакций у Шардинга 1 для подтверждения действительности сделки. Если A часто отправляет средства B, Шардинг 2 должен постоянно взаимодействовать с Шардингом 1, что приведет к снижению эффективности обработки транзакций. Однако, если участники не загрузят и не проверят всю историю конкретного Шардинга, они не смогут точно определить, является ли состояние их взаимодействия результатом некоторых последовательностей действительных Блоков, и действительно ли такие последовательности Блоков соответствуют нормальной цепи в Шардинге.
Таким образом, по сравнению с единой цепью без шардинга, система шардинга сталкивается с новыми вызовами, такими как невозможность пользователям напрямую и полностью проверять действительность и доступность любой данной цепи из-за слишком большого объема данных. Необходимо предоставить пользователям максимально возможные методы косвенной проверки, чтобы определить, какая цепь полностью доступна и действительна, чтобы они могли определить, какая цепь является стандартной. На практике разработчики Блокчейн могут использовать следующие технологии для решения некоторых проблем с проверкой: такие как комитеты, SNARKs/STARKs, механизмы рыбаков, а также доказательства мошенничества и доступности данных.
Есть два подхода для решения этой проблемы, один из них - синхронный межшардинговый.