Шардинг: другая возможность масштабируемости Блокчейн
15 сентября 2022 года Эфириум завершил слияние (Merge). Это исторический момент, к которому Эфириум готовился 5 лет и откладывал 6 раз. Из-за долгой разработки и широкого внимания многие ошибочно полагали, что слияние само собой приведет к более высокой масштабируемости, безопасности и устойчивости, но это не так. Переход от доказательства работы (PoW) к доказательству доли (PoS) — это всего лишь замена "рельсов и колес", и он не приведет к более высокой скорости, большей емкости или более низким расходам. Достичь этих целей можно только с помощью целого набора решений: основная сеть с возможностью шардинга в сочетании с решениями второго уровня, усиливающими масштабируемость.
Как указал сооснователь Эфириума Виталик Бутерин, шардинг является решением для масштабируемости в условиях тройного затруднения. Он разделяет узлы в сети на более мелкие группы, обрабатывая различные наборы транзакций и достигая параллельной обработки. Это похоже на то, как при оплате в Walmart, открытие дополнительных кассовых линий может наглядно уменьшить время ожидания в очереди и повысить эффективность расчетов.
Это логика Шардинга, прямая и простая, но дьявол кроется в деталях. Принципы и направление верны, но на этапе реализации всегда возникают множество проблем. В этой статье я хотел бы упорядочить направление и проблемы на пути "Шардинга" и нарисовать карту исследователя Шардинга, смотрящего на звезды и стоящего на земле. Также, сравнив существующие решения по Шардингу, я хочу выявить некоторые общие проблемы и предложить одно жизнеспособное направление для исследования: Shardeum и динамический Шардинг.
Проще говоря, учитывая ограничения невозможного треугольника, начиная с Эфириума как исходной точки координат (0,0), в соответствии с двумя подходами: "вертикальным" и "горизонтальным", мы разделим методы масштабируемости текущего Блокчейн на две основные категории:
Вертикальное масштабирование(: достигается за счет повышения производительности существующего оборудования системы. Создание децентрализованной сети, где каждый узел сети обладает суперкомпьютерной мощностью, то есть каждый узел требует "лучшего" оборудования. Этот подход прост и эффективен, может привести к первоначальному улучшению пропускной способности, особенно подходит для высокочастотной торговли, игр и других приложений, чувствительных к задержкам. Однако такой способ масштабирования ограничивает уровень децентрализации сети, поскольку затраты на запуск узлов-подтверждений или полных узлов возрастают. Поддержание уровня децентрализации ограничено приблизительной скоростью роста производительности вычислительного оборудования), что и называется "законом Мура": количество транзисторов на чипе удваивается каждые два года, а стоимость вычислений уменьшается вдвое(.
Горизонтальное масштабирование)Horizontal Scaling(: Горизонтальное масштабирование обычно имеет несколько подходов. Один из них заключается в том, чтобы в контексте Блокчейн распределить объем вычислений транзакций в экосистеме на несколько независимых Блокчейнов, каждый из которых имеет своих производителей блоков и исполнительные возможности. Этот подход позволяет полностью настраивать уровень выполнения каждого Блокчейна, например, требования к аппаратному обеспечению узлов, функции конфиденциальности, газовые сборы, виртуальные машины и настройки разрешений и т.д. Другим вариантом горизонтального масштабирования является модульный Блокчейн, который делит инфраструктуру Блокчейна на уровень выполнения, уровень доступности данных)DA( и уровень консенсуса. Самым распространенным модульным механизмом Блокчейна является rollup. Еще один подход состоит в том, чтобы разделить один Блокчейн на множество частей, выполняя их параллельно. Каждый Шард можно рассматривать как отдельный Блокчейн, что означает, что многие Блокчейны могут выполняться параллельно. Кроме того, обычно также существует основной Блокчейн, единственной задачей которого является поддержание синхронизации всех Шардов.
! [Шардем: еще одна возможность шардинга])https://img-cdn.gateio.im/webp-social/moments-7aa1677db6b8128b68accfe04fcda738.webp(
Следует отметить, что вышеописанные подходы к масштабированию не существуют изолированно; каждое решение представляет собой компромисс, найденный в рамках невозможного треугольника, в сочетании с механизмами стимулов, созданными экономическими силами в системе, чтобы достичь эффективного баланса на макро- и микроуровне.
Для обсуждения "Шардинг" нам нужно начать с самого начала.
Предположим такую ситуацию: при расчете покупок в Walmart, чтобы повысить эффективность расчета и снизить время ожидания клиентов, мы расширяем количество кассовых окон с одного до десяти. Чтобы избежать ошибок в учете, в этот момент нам необходимо установить единые правила:
Первое, если у нас есть 10 кассиров, как распределить их по окнам для работы?
Во-вторых, если у нас есть 1000 клиентов, ожидающих в очереди, как мы можем решить, к какому окну каждый клиент должен подойти для расчета?
Третье, как произвести сводку по 10 отдельным книгам учета, соответствующим этим 10 окнам?
Четвертое, как предотвратить ошибки кассиров, чтобы избежать несовпадения счетов?
Эти несколько вопросов на самом деле соответствуют нескольким ключевым вопросам в Шардинге, а именно:
Как определить, к какому Шардингу принадлежат узлы/валидаторы всей сети? То есть: как провести сетевое шардирование )Network Sharding(;
Как определить, как транзакция распределяется между Шардинг? То есть: как выполнить транзакционное Шардинг )Transaction Sharding(;
Как хранятся данные Блокчейн в разных Шардингах? То есть: как осуществляется состояние Шардинга )State Sharding(;
Сложность означает риск. На основе всего вышесказанного, как избежать раскола безопасности всей системы?
) 01 Сетевая Шардинг ### Network Sharding (
Если мы просто поймем Блокчейн как децентрализованный реестр, то как механизм консенсуса PoS, так и механизм консенсуса PoW предназначены для того, чтобы узлы боролись за право ведения учета по определенным заранее установленным правилам, при этом гарантируя правильность реестра. Шардинг сети означает, что требуется другое установленное правило, которое делит сеть Блокчейн на фрагменты, при этом сводя к минимуму взаимные коммуникации, и каждый фрагмент обрабатывает транзакции на цепочке, борясь за право ведения учета - то есть, правило группировки узлов.
А в процессе этого возникают проблемы: по мере того как внутренние узлы Блокчейна разделяются на разные Шарды, сложность и стоимость для атакующих будут снижаться линейно. Мы можем сделать вывод, что если правила и результаты этого процесса группировки фиксированы и предсказуемы, то атакующему для контроля всей сети Блокчейн достаточно целенаправленно контролировать один из Шардов, подкупив часть узлов внутри Шарда.
Основатель Near Александр Скиданов описывает эту проблему следующим образом: если одна цепочка с X валидаторами решит жестко форкнуться в шардинг-цепочку и разделит X валидаторов на 10 шардов, то в каждом шарде теперь будет только X/10 валидаторов, для разрушения одного шарда потребуется уничтожить всего 5.1%)51% / 10( от общего числа валидаторов. Это приводит к второму вопросу: кто выбирает валидаторов для каждого шарда? Только когда все 5.1% валидаторов находятся в одном шарде, контроль над 5.1% валидаторов становится вредным. Если валидаторы не могут выбрать, в каком шарде они будут валидировать, то участники, контролирующие 5.1% валидаторов, крайне маловероятно разместят всех валидаторов в одном шарде, тем самым значительно снижая свою способность разрушать систему.
Система шардинга должна разработать механизм, чтобы доверять сети, что она не сможет отменить эти транзакции из внешних шардов. На сегодняшний день, возможно, лучшим ответом является обеспечение того, чтобы количество валидаторов внутри шардов превышало некоторый минимальный порог, так что вероятность того, что нечестные валидаторы переполнят отдельный шард, будет очень низкой. Наиболее распространенный способ — построить некоторую степень непредвзятости, полагаясь на математические методы, чтобы свести к минимуму вероятность успеха атакующих. Например, в Ethereum решение заключается в случайном выборе валидаторов для конкретного шарда из всех валидаторов, и каждые 6.4 минуты ) длина эпохи ( валидаторы меняются.
Говоря проще, это означает случайное разбиение узлов на группы, а затем распределение работы для независимой проверки узлов в каждой группе.
Однако следует отметить, что случайность в Блокчейне является очень сложной темой. Логически, процесс генерации этого случайного числа не должен зависеть от вычислений в какой-либо конкретной Шардинге. В отношении этого вычисления многие существующие дизайнерские идеи заключаются в разработке отдельного Блока, который поддерживает всю сеть. Такие цепочки в Ethereum и Near называются Beacon-цепочками, в PolkaDot - Relay-цепочками, в Cosmos - Cosmos Hub.
![Подробное объяснение новой публичной цепи Shardeum: Шардинг как другая возможность])https://img-cdn.gateio.im/webp-social/moments-6e8d3331d7d68cb512eb2eb47bd9064d.webp(
) 02 Торговля Шардинг ###Transaction Sharding (
Торговый шардинг относится к разработке правил о том, "какие транзакции должны быть распределены по каким шардам", что позволяет достигать параллельной обработки и избегать проблем с двойными расходами. Различия в модели бухгалтерских книг Блокчейна могут повлиять на разработку торгового шардинга.
В настоящее время в сети Блокчейн существует два типа методов учета: UTXO) Unspent Transaction Outputs, модель неиспользуемых транзакционных выходов ( и модель счета/баланса, типичным представителем первого является BTC, а второго - ETH.
Модель UTXO: в BTC-транзакциях каждая транзакция имеет один или несколько выходов, UTXO относится к неиспользованным выходам транзакций в блокчейне, которые могут использоваться как входы для новых транзакций, в то время как использованные выходы транзакций больше нельзя использовать, что похоже на оплату и сдачу при бумажных транзакциях, когда покупатель передает одну или несколько банкнот продавцу, а продавец возвращает одну или несколько банкнот покупателю. В модели UTXO шардирование требует межшардовой связи. Одна транзакция может включать несколько входов и выходов, концепция счета отсутствует, а записей о балансе нет, возможный способ: поместить его в хеш-функцию в соответствии с одним из значений входа транзакции, чтобы получить дискретное хеш-значение, определяющее, в какой шард должны идти данные. Вот так:
Чтобы гарантировать, что записи размещаются в правильных Шардингах последовательно, значения, вводимые в хеш-функцию, должны происходить из одного и того же столбца. Этот столбец называется Шард Ключом. Затем транзакции, которые генерируют значение 1, распределяются в Шардинг 1, а транзакции, которые генерируют значение 2, распределяются в Шардинг 2. Однако недостатком этого подхода является то, что Шардингам необходимо взаимодействовать друг с другом, чтобы избежать атак двойного расходования. Если ограничить межшардинговые транзакции, это ограничит доступность платформы, а разрешение межшардинговых транзакций требует балансировки затрат на межшардинговую связь и выгод от повышения производительности.
Модель счетов/баланса: система записывает баланс каждого счета, при проведении транзакции система проверяет, достаточно ли баланса на счете для оплаты, аналогично тому, как при банковском переводе банк записывает баланс каждого счета, и только если баланс счета больше необходимой суммы перевода, транзакция может быть выполнена. В модели счетов/баланса, поскольку у одной транзакции только один вход, достаточно разделить транзакцию по адресу отправителя, чтобы гарантировать, что несколько транзакций одного и того же счета обрабатываются в одном шарде, что эффективно предотвращает двойные траты. Поэтому большинство блокчейнов, использующих технологию шардинга, представляют собой учетные книги, подобные Эфириуму.
! [Шардеум: еще одна возможность шардинга])https://img-cdn.gateio.im/webp-social/moments-4227a2e49f76cd01b23d7b5398e51a3c.webp(
) 03 Состояние Шардинга ###State Sharding (
Статус шардинга относится к тому, как данные Блокчейн распределяются и хранятся в различных шардах.
По-прежнему используя наш пример с очередями в Walmart, у каждого окна есть своя запись. Как ведутся их учетные книги? Если: клиент приходит в очередь, он записывается в соответствующую книгу, например, клиент A пошел к окну A, и на следующий день этот клиент пошел к другому кассовому окну, например, к окну B, но у окна B нет информации о предыдущих учетных записях этого клиента ), например, касающихся способов расчетов, таких как карта предоплаты (, что делать? Вызывать информацию об учетной записи этого клиента у окна A?
Состояние Шардинга является самой большой проблемой Шардинга, более сложной, чем упомянутые выше сетевой Шардинг и транзакционный Шардинг. Поскольку в механизме Шардинга транзакции распределяются по различным Шардам в зависимости от адреса, это означает, что состояние будет храниться только в Шарде, соответствующем его адресу. В этом случае возникает проблема в том, что транзакции не будут происходить только в одном Шарде, и часто будут касаться межшардового )Cross-Sharding(.
Рассмотрим ситуацию с переводом: аккаунт A переводит 10U на аккаунт B, при этом адрес A распределен по Шардингу 1, запись транзакции также будет храниться в Шардинге 1. Адрес B распределен по Шардингу 2, запись транзакции будет храниться в Шардинге 2.
Если A хочет перевести деньги B, будет сформирована межшардинговая сделка, Шардинг 2 будет обращаться к Шардингу 1, чтобы получить прошлые записи транзакций и подтвердить их действительность. Если A часто переводит деньги B, Шардинг 2 будет вынужден постоянно взаимодействовать с Шардингом 1, что снизит эффективность обработки транзакций. Однако, если участники не загружают и не проверяют всю историю конкретного шардинга, они не обязательно...
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
12 Лайков
Награда
12
6
Репост
Поделиться
комментарий
0/400
CodeZeroBasis
· 7ч назад
merge что случилось, устал смотреть?
Посмотреть ОригиналОтветить0
GasFeeBeggar
· 7ч назад
Пять лет ожидания — это пустота.
Посмотреть ОригиналОтветить0
rugpull_survivor
· 7ч назад
Снова POS, снова Шардинг, а мой Gas все еще такой дорогой.
Посмотреть ОригиналОтветить0
RugPullSurvivor
· 7ч назад
Вот это да, 5 лет назад, когда играли для лохов, это звучало действительно хорошо.
Посмотреть ОригиналОтветить0
TopEscapeArtist
· 7ч назад
Опять говорят о Шардинге, лучше взглянем на индикатор MACD.
Посмотреть ОригиналОтветить0
LiquidationWatcher
· 7ч назад
L2 - это истинный путь, расширение только с надежными проектами.
Шардинг технологии: вызовы и решения для масштабирования Ethereum
Шардинг: другая возможность масштабируемости Блокчейн
15 сентября 2022 года Эфириум завершил слияние (Merge). Это исторический момент, к которому Эфириум готовился 5 лет и откладывал 6 раз. Из-за долгой разработки и широкого внимания многие ошибочно полагали, что слияние само собой приведет к более высокой масштабируемости, безопасности и устойчивости, но это не так. Переход от доказательства работы (PoW) к доказательству доли (PoS) — это всего лишь замена "рельсов и колес", и он не приведет к более высокой скорости, большей емкости или более низким расходам. Достичь этих целей можно только с помощью целого набора решений: основная сеть с возможностью шардинга в сочетании с решениями второго уровня, усиливающими масштабируемость.
Как указал сооснователь Эфириума Виталик Бутерин, шардинг является решением для масштабируемости в условиях тройного затруднения. Он разделяет узлы в сети на более мелкие группы, обрабатывая различные наборы транзакций и достигая параллельной обработки. Это похоже на то, как при оплате в Walmart, открытие дополнительных кассовых линий может наглядно уменьшить время ожидания в очереди и повысить эффективность расчетов.
Это логика Шардинга, прямая и простая, но дьявол кроется в деталях. Принципы и направление верны, но на этапе реализации всегда возникают множество проблем. В этой статье я хотел бы упорядочить направление и проблемы на пути "Шардинга" и нарисовать карту исследователя Шардинга, смотрящего на звезды и стоящего на земле. Также, сравнив существующие решения по Шардингу, я хочу выявить некоторые общие проблемы и предложить одно жизнеспособное направление для исследования: Shardeum и динамический Шардинг.
! Шардеум: еще одна возможность шардинга
Один. О "Шардинге"
Проще говоря, учитывая ограничения невозможного треугольника, начиная с Эфириума как исходной точки координат (0,0), в соответствии с двумя подходами: "вертикальным" и "горизонтальным", мы разделим методы масштабируемости текущего Блокчейн на две основные категории:
Вертикальное масштабирование(: достигается за счет повышения производительности существующего оборудования системы. Создание децентрализованной сети, где каждый узел сети обладает суперкомпьютерной мощностью, то есть каждый узел требует "лучшего" оборудования. Этот подход прост и эффективен, может привести к первоначальному улучшению пропускной способности, особенно подходит для высокочастотной торговли, игр и других приложений, чувствительных к задержкам. Однако такой способ масштабирования ограничивает уровень децентрализации сети, поскольку затраты на запуск узлов-подтверждений или полных узлов возрастают. Поддержание уровня децентрализации ограничено приблизительной скоростью роста производительности вычислительного оборудования), что и называется "законом Мура": количество транзисторов на чипе удваивается каждые два года, а стоимость вычислений уменьшается вдвое(.
Горизонтальное масштабирование)Horizontal Scaling(: Горизонтальное масштабирование обычно имеет несколько подходов. Один из них заключается в том, чтобы в контексте Блокчейн распределить объем вычислений транзакций в экосистеме на несколько независимых Блокчейнов, каждый из которых имеет своих производителей блоков и исполнительные возможности. Этот подход позволяет полностью настраивать уровень выполнения каждого Блокчейна, например, требования к аппаратному обеспечению узлов, функции конфиденциальности, газовые сборы, виртуальные машины и настройки разрешений и т.д. Другим вариантом горизонтального масштабирования является модульный Блокчейн, который делит инфраструктуру Блокчейна на уровень выполнения, уровень доступности данных)DA( и уровень консенсуса. Самым распространенным модульным механизмом Блокчейна является rollup. Еще один подход состоит в том, чтобы разделить один Блокчейн на множество частей, выполняя их параллельно. Каждый Шард можно рассматривать как отдельный Блокчейн, что означает, что многие Блокчейны могут выполняться параллельно. Кроме того, обычно также существует основной Блокчейн, единственной задачей которого является поддержание синхронизации всех Шардов.
! [Шардем: еще одна возможность шардинга])https://img-cdn.gateio.im/webp-social/moments-7aa1677db6b8128b68accfe04fcda738.webp(
Следует отметить, что вышеописанные подходы к масштабированию не существуют изолированно; каждое решение представляет собой компромисс, найденный в рамках невозможного треугольника, в сочетании с механизмами стимулов, созданными экономическими силами в системе, чтобы достичь эффективного баланса на макро- и микроуровне.
Для обсуждения "Шардинг" нам нужно начать с самого начала.
Предположим такую ситуацию: при расчете покупок в Walmart, чтобы повысить эффективность расчета и снизить время ожидания клиентов, мы расширяем количество кассовых окон с одного до десяти. Чтобы избежать ошибок в учете, в этот момент нам необходимо установить единые правила:
Первое, если у нас есть 10 кассиров, как распределить их по окнам для работы?
Во-вторых, если у нас есть 1000 клиентов, ожидающих в очереди, как мы можем решить, к какому окну каждый клиент должен подойти для расчета?
Третье, как произвести сводку по 10 отдельным книгам учета, соответствующим этим 10 окнам?
Четвертое, как предотвратить ошибки кассиров, чтобы избежать несовпадения счетов?
Эти несколько вопросов на самом деле соответствуют нескольким ключевым вопросам в Шардинге, а именно:
Как определить, к какому Шардингу принадлежат узлы/валидаторы всей сети? То есть: как провести сетевое шардирование )Network Sharding(;
Как определить, как транзакция распределяется между Шардинг? То есть: как выполнить транзакционное Шардинг )Transaction Sharding(;
Как хранятся данные Блокчейн в разных Шардингах? То есть: как осуществляется состояние Шардинга )State Sharding(;
Сложность означает риск. На основе всего вышесказанного, как избежать раскола безопасности всей системы?
) 01 Сетевая Шардинг ### Network Sharding (
Если мы просто поймем Блокчейн как децентрализованный реестр, то как механизм консенсуса PoS, так и механизм консенсуса PoW предназначены для того, чтобы узлы боролись за право ведения учета по определенным заранее установленным правилам, при этом гарантируя правильность реестра. Шардинг сети означает, что требуется другое установленное правило, которое делит сеть Блокчейн на фрагменты, при этом сводя к минимуму взаимные коммуникации, и каждый фрагмент обрабатывает транзакции на цепочке, борясь за право ведения учета - то есть, правило группировки узлов.
А в процессе этого возникают проблемы: по мере того как внутренние узлы Блокчейна разделяются на разные Шарды, сложность и стоимость для атакующих будут снижаться линейно. Мы можем сделать вывод, что если правила и результаты этого процесса группировки фиксированы и предсказуемы, то атакующему для контроля всей сети Блокчейн достаточно целенаправленно контролировать один из Шардов, подкупив часть узлов внутри Шарда.
Основатель Near Александр Скиданов описывает эту проблему следующим образом: если одна цепочка с X валидаторами решит жестко форкнуться в шардинг-цепочку и разделит X валидаторов на 10 шардов, то в каждом шарде теперь будет только X/10 валидаторов, для разрушения одного шарда потребуется уничтожить всего 5.1%)51% / 10( от общего числа валидаторов. Это приводит к второму вопросу: кто выбирает валидаторов для каждого шарда? Только когда все 5.1% валидаторов находятся в одном шарде, контроль над 5.1% валидаторов становится вредным. Если валидаторы не могут выбрать, в каком шарде они будут валидировать, то участники, контролирующие 5.1% валидаторов, крайне маловероятно разместят всех валидаторов в одном шарде, тем самым значительно снижая свою способность разрушать систему.
Система шардинга должна разработать механизм, чтобы доверять сети, что она не сможет отменить эти транзакции из внешних шардов. На сегодняшний день, возможно, лучшим ответом является обеспечение того, чтобы количество валидаторов внутри шардов превышало некоторый минимальный порог, так что вероятность того, что нечестные валидаторы переполнят отдельный шард, будет очень низкой. Наиболее распространенный способ — построить некоторую степень непредвзятости, полагаясь на математические методы, чтобы свести к минимуму вероятность успеха атакующих. Например, в Ethereum решение заключается в случайном выборе валидаторов для конкретного шарда из всех валидаторов, и каждые 6.4 минуты ) длина эпохи ( валидаторы меняются.
Говоря проще, это означает случайное разбиение узлов на группы, а затем распределение работы для независимой проверки узлов в каждой группе.
Однако следует отметить, что случайность в Блокчейне является очень сложной темой. Логически, процесс генерации этого случайного числа не должен зависеть от вычислений в какой-либо конкретной Шардинге. В отношении этого вычисления многие существующие дизайнерские идеи заключаются в разработке отдельного Блока, который поддерживает всю сеть. Такие цепочки в Ethereum и Near называются Beacon-цепочками, в PolkaDot - Relay-цепочками, в Cosmos - Cosmos Hub.
![Подробное объяснение новой публичной цепи Shardeum: Шардинг как другая возможность])https://img-cdn.gateio.im/webp-social/moments-6e8d3331d7d68cb512eb2eb47bd9064d.webp(
) 02 Торговля Шардинг ###Transaction Sharding (
Торговый шардинг относится к разработке правил о том, "какие транзакции должны быть распределены по каким шардам", что позволяет достигать параллельной обработки и избегать проблем с двойными расходами. Различия в модели бухгалтерских книг Блокчейна могут повлиять на разработку торгового шардинга.
В настоящее время в сети Блокчейн существует два типа методов учета: UTXO) Unspent Transaction Outputs, модель неиспользуемых транзакционных выходов ( и модель счета/баланса, типичным представителем первого является BTC, а второго - ETH.
Модель UTXO: в BTC-транзакциях каждая транзакция имеет один или несколько выходов, UTXO относится к неиспользованным выходам транзакций в блокчейне, которые могут использоваться как входы для новых транзакций, в то время как использованные выходы транзакций больше нельзя использовать, что похоже на оплату и сдачу при бумажных транзакциях, когда покупатель передает одну или несколько банкнот продавцу, а продавец возвращает одну или несколько банкнот покупателю. В модели UTXO шардирование требует межшардовой связи. Одна транзакция может включать несколько входов и выходов, концепция счета отсутствует, а записей о балансе нет, возможный способ: поместить его в хеш-функцию в соответствии с одним из значений входа транзакции, чтобы получить дискретное хеш-значение, определяющее, в какой шард должны идти данные. Вот так:
Чтобы гарантировать, что записи размещаются в правильных Шардингах последовательно, значения, вводимые в хеш-функцию, должны происходить из одного и того же столбца. Этот столбец называется Шард Ключом. Затем транзакции, которые генерируют значение 1, распределяются в Шардинг 1, а транзакции, которые генерируют значение 2, распределяются в Шардинг 2. Однако недостатком этого подхода является то, что Шардингам необходимо взаимодействовать друг с другом, чтобы избежать атак двойного расходования. Если ограничить межшардинговые транзакции, это ограничит доступность платформы, а разрешение межшардинговых транзакций требует балансировки затрат на межшардинговую связь и выгод от повышения производительности.
Модель счетов/баланса: система записывает баланс каждого счета, при проведении транзакции система проверяет, достаточно ли баланса на счете для оплаты, аналогично тому, как при банковском переводе банк записывает баланс каждого счета, и только если баланс счета больше необходимой суммы перевода, транзакция может быть выполнена. В модели счетов/баланса, поскольку у одной транзакции только один вход, достаточно разделить транзакцию по адресу отправителя, чтобы гарантировать, что несколько транзакций одного и того же счета обрабатываются в одном шарде, что эффективно предотвращает двойные траты. Поэтому большинство блокчейнов, использующих технологию шардинга, представляют собой учетные книги, подобные Эфириуму.
! [Шардеум: еще одна возможность шардинга])https://img-cdn.gateio.im/webp-social/moments-4227a2e49f76cd01b23d7b5398e51a3c.webp(
) 03 Состояние Шардинга ###State Sharding (
Статус шардинга относится к тому, как данные Блокчейн распределяются и хранятся в различных шардах.
По-прежнему используя наш пример с очередями в Walmart, у каждого окна есть своя запись. Как ведутся их учетные книги? Если: клиент приходит в очередь, он записывается в соответствующую книгу, например, клиент A пошел к окну A, и на следующий день этот клиент пошел к другому кассовому окну, например, к окну B, но у окна B нет информации о предыдущих учетных записях этого клиента ), например, касающихся способов расчетов, таких как карта предоплаты (, что делать? Вызывать информацию об учетной записи этого клиента у окна A?
Состояние Шардинга является самой большой проблемой Шардинга, более сложной, чем упомянутые выше сетевой Шардинг и транзакционный Шардинг. Поскольку в механизме Шардинга транзакции распределяются по различным Шардам в зависимости от адреса, это означает, что состояние будет храниться только в Шарде, соответствующем его адресу. В этом случае возникает проблема в том, что транзакции не будут происходить только в одном Шарде, и часто будут касаться межшардового )Cross-Sharding(.
Рассмотрим ситуацию с переводом: аккаунт A переводит 10U на аккаунт B, при этом адрес A распределен по Шардингу 1, запись транзакции также будет храниться в Шардинге 1. Адрес B распределен по Шардингу 2, запись транзакции будет храниться в Шардинге 2.
Если A хочет перевести деньги B, будет сформирована межшардинговая сделка, Шардинг 2 будет обращаться к Шардингу 1, чтобы получить прошлые записи транзакций и подтвердить их действительность. Если A часто переводит деньги B, Шардинг 2 будет вынужден постоянно взаимодействовать с Шардингом 1, что снизит эффективность обработки транзакций. Однако, если участники не загружают и не проверяют всю историю конкретного шардинга, они не обязательно...