Что такое Шардинг?

НовичокNov 21, 2022
Шардинг - это техника разделения баз данных, которая помогает блокчейнам наращивать масштабируемость, позволяя транзакциям обрабатываться параллельно несколькими цепочками шардинга для снижения перегруженности сети и увеличения количества транзакций в секунду (TPS).
Что такое Шардинг?

Введение

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


Источник: Блог Виталика Бутерина "Почему шардинг - это здорово: демистификация технических свойств"

Шардинг обеспечивает эффективное масштабирование при достижении безопасности и децентрализации
Шардинг - это решение, которое увеличивает масштабируемость сети блокчейн без отказа от безопасности и децентрализации. Шардинг разделяет единый блокчейн на несколько меньших блокчейнов, каждый из которых управляет своими записями отдельно, а обмен датами осуществляется только при необходимости. Поэтому узлы в разных цепочках шардинга могут синхронно проверять только транзакции, принадлежащие их собственным цепочкам, вместо данных из всего блокчейна.
Пока количество узлов в каждой цепочке шардинга достаточно велико, безопасность и децентрализация будут подтверждены. Применение шардинга может увеличить пропускную способность блокчейн для удовлетворения растущего пользовательского спроса. ETH 2.0 также повысит свою масштабируемость за счет шардинга.

Что такое шардинг?

Шардинг - это техника оптимизации для улучшения производительности доступа к базе данных путем разбиения исходной базы данных на несколько шардов на основе условий спроса, что позволяет распределить нагрузку и пользовательский трафик для обеспечения более быстрого обслуживания. Учитывая, что блокчейн - это, по сути, большая децентрализованная бухгалтерская книга, можно улучшить масштабируемость с помощью шардинга.
Например, на торговых сайтах представлено большое количество товаров с разными ценами, потребители имеют различные потребности, одни предпочитают уцененные и дешевые товары, другие - дорогие и премиальные. Чтобы справиться с таким большим заказом, можно провести простую сортировку, используя диапазоны цен, чтобы ускорить обработку шашек.

Источник: DigitalOcean
Шардинг сортирует данные и обрабатывает их в соответствии с различными потребностями
Проверяющий (узел) должен подтвердить всю информацию о заказе без разделения данных заказа (шардинг), что требует много времени на выполнение повторяющихся задач. Напротив, разделение данных о заказах на несколько осколков позволяет разным проверяющим обрабатывать заказы по низким и высоким ценам отдельно.
Поскольку каждый тип заказа является небольшой частью полного заказа, и проверяющие, отвечающие за разные ценовые позиции, могут работать одновременно, не влияя друг на друга, поэтому шардинг позволяет выполнять параллельные операции; каждому проверяющему нужно проверить только часть заказа, поэтому шардинг снижает нагрузку на узлы и ускоряет проверку.
База данных с шардированием похожа на головоломку, и каждый кусочек головоломки представляет собой шард. Блокчейн без шардинга должен перерисовывать всю головоломку каждый раз, когда генерируется новый блок (репликация состояния), а затем изменять небольшую часть головоломки (обновление состояния). Блокчейн с шардированием должен только найти конкретный фрагмент, требующий изменения (шард), и заменить его на новый при добавлении новой записи транзакции.

Почему необходим Sharding?

Цепочечные приложения более разнообразны, а спрос растет экспоненциально
Как только происходит значительное увеличение количества пользователей, независимо от того, какого типа система, она неизбежно нуждается в масштабировании, чтобы учесть растущий трафик. Например, если онлайн игра настолько популярна, что количество игроков увеличивается со 100 000 до миллиона или даже десяти миллионов в день, необходимо установить новый сервер, чтобы перенаправить трафик и избежать отставания. Подобную ситуацию можно наблюдать и в реальной жизни. Во время праздников туристы, направляющиеся к достопримечательностям, всегда страдают от ужасных пробок. То, что обычно может занять всего два часа, чтобы добраться до места назначения, теперь занимает гораздо больше времени из-за резкого увеличения трафика. Альтернативные маршруты являются общим решением для эффективного облегчения дорожных заторов.
Масштабирование сталкивается с узкими местами, ищем альтернативы
Блокчейн также столкнулся с узким местом масштабируемости во время своего развития. В P2P блокчейне с 10 узлами весь обмен данными может быть завершен после 109 раз межузловой коммуникации; когда количество узлов достигает 100, это означает 10099 раз межузловой коммуникации, если нет оптимизации алгоритма. В целом, в сети P2P блокчейн с N узлами, где каждый узел обменивается данными с другими N-1 узлами, можно предположить, что количество времени и вычислений, затрачиваемых на каждую транзакцию, будет расти экспоненциально после масштабирования сетей блокчейн.

Несмотря на то, что Биткойн и Ethereum являются мейнстримом, они все еще применяют устаревший механизм
Биткойн, который в настоящее время является крупнейшей криптовалютой по рыночной капитализации, и предварительно модернизированный Ethereum оба низкоскоростные: Биткойн обрабатывает около 7 транзакций в секунду (TPS), а Ethereum немного больше - 15 TPS. Этого уже давно недостаточно для удовлетворения потребностей большого количества пользователей, и оно затмевает централизованную систему, например, ведущей компании по выпуску кредитных карт VISA, которая обрабатывает до 24 000 транзакций в секунду. В дополнение к перегрузке сети, низкая скорость также увеличивает расходы, и пользователям приходится платить более высокую плату за приоритетность своих транзакций, что еще больше ухудшает пользовательский опыт.


Источник: Etherscan

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

Как работает шардинг в ETH 2.0?

Механизм консенсуса Ethereum будет преобразован из Proof of Work (PoW) в Proof of Stake (PoS) в ETH 2.0, а оригинальный мейннет Ethereum будет объединен в Beacon Chain. В результате, узлам Ethereum больше не требуется огромная вычислительная мощность для генерации новых блоков. Вместо этого они вкладывают свои ETH в смарт-контракты, чтобы стать валидаторами и получить право на получение платы за транзакции при подаче новых блоков.
В ETH 2.0 для улучшения масштабируемости будет создано 64 шарда, один из которых называется Beacon Chain. Он играет ключевую роль в модернизации шардинга Ethereum и отвечает за координацию и обмен информацией между различными шардингами. Все узлы ETH 2.0 также будут ставить ETH на шард-цепочки и обрабатывать транзакции на разных шардах в соответствии с инструкциями, а блоки на шард-цепочках будут действительны только с одобрения Beacon Chain.

Источник: Hsiao-wei Wang
Шардинг проверяет ожидающие транзакции путем сортировки
Когда в ETH 2.0 будет внедрен шардинг, алгоритм случайной выборки будет назначать случайное количество узлов в каждом шардинге для проверки транзакций и определения порядка и валидности транзакций в цепочке шардинга путем голосования, затем информация о новых сгенерированных блоках шардинга будет добавлена в цепочку маяков. Новый блок должен быть одобрен более чем двумя третями узлов в цепочке шарда.
Как показано на рисунке ниже, каждому узлу присваивается номер (1~100) в последовательности наборов узлов валидатора; алгоритм случайной выборки разрушает порядок присвоения узлов, в результате чего образуется новый набор узлов без фиксированного порядка; новые первые 1~10 узлов могут быть назначены в качестве первого комитета для обработки транзакций по первой цепочке шардов, а 11~20-е узлы - в качестве второго комитета для обработки второй цепочки шардов, и так далее.


Источник: Блог Виталика Бутерина "Why sharding is great: demystifying the technical properties"
Узел валидатора не назначается фиксированно для обработки транзакций на определенной цепочке шардов, поскольку алгоритм случайной выборки будет нарушать порядок узлов в течение некоторого периода времени. Таким образом, члены комитета, ответственные за каждую цепочку шардов, не фиксированы, что позволяет избежать риска централизации, вызванного тем, что определенный узел проверяет цепочку шардов в течение длительного времени, и повышает сложность атаки.
Поскольку шардинг значительно увеличит пропускную способность ETH 2.0, для всех узлов становится невозможным синхронно обновлять полные данные о транзакциях на разных цепочках шардинга, то заголовок Collation Header, который похож на заголовок блока в PoW, становится средством обмена информацией. Как следует из названия, заголовок collation содержит метаданные об информации внутри collation, такие как:

  1. Один шард, к которому принадлежит колляция
  2. Корневой хэш родительской раскладки
  3. Корень Меркла всех транзакций в коллизии
  4. Корень до состояния и корень после состояния
  5. Подписи нотариусов


Источник: Hackernoon
Заголовок collation предоставляет узлу достаточную информацию и загружает полную запись транзакции в соответствии с индексом только в случае необходимости.

Плюсы и минусы шардинга

Альтернатива, которая эффективно перенаправляет спрос на использование и значительно улучшает масштабируемость
Представьте, что миллион автомобилей вынуждены ехать по одной дороге, чтобы переместиться из города А в город Б. Поездка будет медленной, и это касается обычных блокчейнов, поскольку все узлы цепи должны проверять каждую транзакцию. Шардинг разбивает данные в цепи на части, так что каждому узлу необходимо обрабатывать только часть транзакции. Когда блокчейн добавляет несколько магистралей для рассеивания трафика, пользователи могут по праву завершать транзакции быстрее.

Источник: Блок Генезис

Уменьшить перегрузку сети и снизить затраты
В Ethereum до обновления майнерские узлы упаковывали транзакции в зависимости от того, сколько пользователи готовы заплатить, при этом более высокие комиссии обрабатывались быстрее, а более низкие - медленнее, что привело к патологическому торгу комиссиями, когда пользователи иногда платили более $50 за одну транзакцию. Шардинг позволяет блокчейну работать более плавно и снижает необходимость в комиссионных торгах, а пользователи могут обратиться к другому, если на одном шарде возникнет перегрузка.

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

Хотя шардинг выделяет целый список преимуществ, он также вводит ряд новых проблем:

Возможность 1% атаки
Блокчейн уязвим для 51% атак, что означает, что злоумышленник способен произвольно подделать данные транзакций или даже контролировать всю сеть блокчейна, если он контролирует 51% вычислительной мощности узлов. В более крупных блокчейн-сетях, таких как Биткойн и предварительно обновленный Ethereum, стоимость атаки 51% слишком высока, что делает ее нецелесообразной для реализации.
Однако с внедрением шардинга количество узлов, обрабатывающих каждый шардинг, резко сокращается, и злоумышленнику становится намного проще скомпрометировать сеть, если он атакует один из шардингов и успешно подделывает транзакции, а не атакует всю сеть. Если говорить более конкретно, то для сети блокчейн, содержащей 1 000 узлов с одинаковой вычислительной мощностью, хакеру необходимо контролировать более 500 узлов, чтобы атаковать всю сеть. Но когда эти 1 000 узлов распределены по 100 шардам, хакеру достаточно контролировать более 5 узлов в одном из шардов, чтобы подделать данные.

Источник: Блок Генезис

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

Сговор между членами комитета
Хотя в шардинге используется алгоритм случайной выборки, чтобы избежать назначения одинаковых узлов в фиксированную цепочку шардов, все же существует вероятность того, что дублирующие комбинации одинаковых узлов могут совместно подтверждать транзакции после достаточно длительного периода времени, и члены комитета, проверяющие цепочку шардов, также могут сговориться друг с другом и внести в цепочку вредоносную транзакцию.
Дисбаланс нагрузки
Предпосылкой для улучшения производительности сети посредством шардинга является то, что "шардинг" успешно приносит "перенаправление". Если блокчейн оптимизирован со 100 цепочками шардов, но все пользователи по-прежнему используют определенную цепочку шардов, значит, шардинг не работает, и масштабируемость улучшена незначительно. Это также является потенциальной проблемой для ETH 2.0, поскольку возможность выполнения операций смарт-контракта для каждой цепочки шардов не включена в первоначальное планирование.
Более сложные исследователи блокчейна
Улучшение масштабируемости, привносимое шардингом, достигается путем добавления большего количества алгоритмов и данных ко всей сети, большая вычислительная мощность необходима исследователям блокчейна для эффективного извлечения информации в блокчейне.

Другие блокчейны, использующие шардинг

Элронд:

Elrond - это децентрализованный публичный блокчейн, нацеленный на улучшение масштабируемости, скорости и безопасности путем разработки трех ключевых технологий, включая Adaptive State Sharding с технологией масштабирования блокчейна, Secure Proof of Stake (SPoS), которая определяет выбор валидаторов для ускорения проверки, и Elrond Virtual Machine, которая поддерживает множество языков программирования и совместима с Ethereum VM.

Уникальный адаптивный государственный шардинг Elrond сочетает в себе три формы шардинга:

  1. Разделение сети представляет собой процесс объединения узлов в группы.
  2. Шардинг транзакций поднимает сложность на следующий уровень и занимается распределением транзакций по разным шардам, но все узлы хранят весь блокчейн в своем состоянии.
  3. Разделение состояния представляет собой наиболее сложную часть и описывается как механизм, который позволяет различным хранилищам иметь дело только с частью состояния без репликации данных между узлами из разных хранилищ.

В настоящее время Elrond может достигать 15 000 TPS при сохранении комиссии на уровне $0,001, что является разумным преимуществом перед Ethereum.

Рядом:

Near - это блочная публичная цепочка, основанная на полном шардинге состояний, упрощенных приложениях для разработки и механизме proof-of-stake. Она ставит перед собой цель увеличить масштабируемость для разработки децентрализованных приложений и открыть двери технологии блокчейн для всех. Его механизм консенсуса Doomslug, который использует алгоритм Nightshade, способен масштабировать TPS до 100 000. Техническая архитектура Near отличается от других публичных цепочек с шардингом, таких как Beacon Chain, которая состоит из одной цепочки и нескольких цепочек шардов, она разбита на отдельные блоки, и шардинг осуществляется между этими блоками. Блок содержит все транзакции всех шардов, в то время как состояние шарда разделено, и валидаторы случайным образом назначаются для проверки соответствующего состояния шарда транзакции, тем самым повышая безопасность.

Zilliqa:

Zilliqa - довольно ранняя пташка в блокчейн. Он был запущен для решения проблемы плохой масштабируемости блокчейна в то время путем использования сетевого шардинга и шардинга транзакций, а также PoW и византийского отказоустойчивого алгоритма консенсуса (PBFT) с упрощенной сложностью для ускорения консенсуса внутри шардов. Он все еще может работать быстро с более чем 600 узлами, а постоянное масштабирование позволяет Zilliqa повысить TPS с 2400 до 3600 TPS.

Гармония:

Harmony - это публичная цепочка, основанная на шардинге состояний, которая структурирована Beacon Chain и несколькими цепочками шардинга и сопровождается византийским отказоустойчивым алгоритмом консенсуса (PBFT) для достижения глубоко оптимизированного консенсуса при ускорении с помощью подписей BLS для объединения нескольких подписей в одну. В публичной цепочке с шардингом 1% вычислительной мощности может быть использован для атак с двойным расходованием средств. Учитывая это, Harmony использует EPoS (Effective Proof-of-Stake) и Random Sharding для рассеивания токенов с крупными ставками и случайного распределения их по нескольким шардам для снижения риска быть атакованным, чтобы повысить безопасность шардов. Кроме того, в нем используется технология Kademlia Cross-shard Communication для контроля сетевых расходов, а также используются преимущества Erasure Code, который позволяет восстанавливать данные, для оптимизации процесса трансляции блоков для эффективного горизонтального масштабирования шардинга.

Заключение

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

Шардинг эффективно отвлекает потребности в цепочке и повышает эффективность доступа

Sharding - это технология оптимизации, которая повышает эффективность доступа к базе данных путем разделения данных транзакций на цепочке и их синхронной обработки разными узлами, именно так достигается перераспределение трафика и увеличение скорости. Как долгожданное решение для масштабирования первого уровня, когда шардинг будет успешно реализован после преодоления технических трудностей высокого уровня, его потенциальные преимущества будут весьма значительными. Шардинг был принят некоторыми блокчейнами, и в предстоящем ETH 2.0 он также будет принят в надежде значительно улучшить производительность сети.

Шардинг является чрезвычайно трудной задачей со многими нерешенными проблемами, но в конечном итоге невозможный треугольник будет преодолен

Однако, шардинг не является идеальным решением. В дополнение к повышенной сложности, это может подвергнуть сеть большему риску. Многие разработчики продолжают свои исследования, как координировать различные шарды для эффективной работы, ожидая, что шардинг станет ключом к преодолению "невозможного треугольника" безопасности, децентрализации и масштабируемости, чтобы все существующие приложения блокчейн и криптовалюты могли получить дальнейшее распространение.

Автор: Piccolo Переводчик:Yulei
Рецензент(ы) : Хьюго, Эдвард
Отказ от ответственности:

  • Данная статья представляет собой лишь мнение обозревателей и не является инвестиционным предложением.
    *Gate.io оставляет за собой все права на эту статью. Перепечатка статьи будет разрешена при условии ссылки на Gate.io. Во всех остальных случаях будут предприняты юридические действия в связи с нарушением авторских прав.
Автор: Piccolo
Переводчик: Yuler
Рецензент(ы): Hugo, Edward, Cecilia, Ashley
* Информация не предназначена и не является финансовым советом или любой другой рекомендацией любого рода, предложенной или одобренной Gate.io.
* Эта статья не может быть опубликована, передана или скопирована без ссылки на Gate.io. Нарушение является нарушением Закона об авторском праве и может повлечь за собой судебное разбирательство.

Что такое Шардинг?

НовичокNov 21, 2022
Шардинг - это техника разделения баз данных, которая помогает блокчейнам наращивать масштабируемость, позволяя транзакциям обрабатываться параллельно несколькими цепочками шардинга для снижения перегруженности сети и увеличения количества транзакций в секунду (TPS).
Что такое Шардинг?

Введение

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


Источник: Блог Виталика Бутерина "Почему шардинг - это здорово: демистификация технических свойств"

Шардинг обеспечивает эффективное масштабирование при достижении безопасности и децентрализации
Шардинг - это решение, которое увеличивает масштабируемость сети блокчейн без отказа от безопасности и децентрализации. Шардинг разделяет единый блокчейн на несколько меньших блокчейнов, каждый из которых управляет своими записями отдельно, а обмен датами осуществляется только при необходимости. Поэтому узлы в разных цепочках шардинга могут синхронно проверять только транзакции, принадлежащие их собственным цепочкам, вместо данных из всего блокчейна.
Пока количество узлов в каждой цепочке шардинга достаточно велико, безопасность и децентрализация будут подтверждены. Применение шардинга может увеличить пропускную способность блокчейн для удовлетворения растущего пользовательского спроса. ETH 2.0 также повысит свою масштабируемость за счет шардинга.

Что такое шардинг?

Шардинг - это техника оптимизации для улучшения производительности доступа к базе данных путем разбиения исходной базы данных на несколько шардов на основе условий спроса, что позволяет распределить нагрузку и пользовательский трафик для обеспечения более быстрого обслуживания. Учитывая, что блокчейн - это, по сути, большая децентрализованная бухгалтерская книга, можно улучшить масштабируемость с помощью шардинга.
Например, на торговых сайтах представлено большое количество товаров с разными ценами, потребители имеют различные потребности, одни предпочитают уцененные и дешевые товары, другие - дорогие и премиальные. Чтобы справиться с таким большим заказом, можно провести простую сортировку, используя диапазоны цен, чтобы ускорить обработку шашек.

Источник: DigitalOcean
Шардинг сортирует данные и обрабатывает их в соответствии с различными потребностями
Проверяющий (узел) должен подтвердить всю информацию о заказе без разделения данных заказа (шардинг), что требует много времени на выполнение повторяющихся задач. Напротив, разделение данных о заказах на несколько осколков позволяет разным проверяющим обрабатывать заказы по низким и высоким ценам отдельно.
Поскольку каждый тип заказа является небольшой частью полного заказа, и проверяющие, отвечающие за разные ценовые позиции, могут работать одновременно, не влияя друг на друга, поэтому шардинг позволяет выполнять параллельные операции; каждому проверяющему нужно проверить только часть заказа, поэтому шардинг снижает нагрузку на узлы и ускоряет проверку.
База данных с шардированием похожа на головоломку, и каждый кусочек головоломки представляет собой шард. Блокчейн без шардинга должен перерисовывать всю головоломку каждый раз, когда генерируется новый блок (репликация состояния), а затем изменять небольшую часть головоломки (обновление состояния). Блокчейн с шардированием должен только найти конкретный фрагмент, требующий изменения (шард), и заменить его на новый при добавлении новой записи транзакции.

Почему необходим Sharding?

Цепочечные приложения более разнообразны, а спрос растет экспоненциально
Как только происходит значительное увеличение количества пользователей, независимо от того, какого типа система, она неизбежно нуждается в масштабировании, чтобы учесть растущий трафик. Например, если онлайн игра настолько популярна, что количество игроков увеличивается со 100 000 до миллиона или даже десяти миллионов в день, необходимо установить новый сервер, чтобы перенаправить трафик и избежать отставания. Подобную ситуацию можно наблюдать и в реальной жизни. Во время праздников туристы, направляющиеся к достопримечательностям, всегда страдают от ужасных пробок. То, что обычно может занять всего два часа, чтобы добраться до места назначения, теперь занимает гораздо больше времени из-за резкого увеличения трафика. Альтернативные маршруты являются общим решением для эффективного облегчения дорожных заторов.
Масштабирование сталкивается с узкими местами, ищем альтернативы
Блокчейн также столкнулся с узким местом масштабируемости во время своего развития. В P2P блокчейне с 10 узлами весь обмен данными может быть завершен после 109 раз межузловой коммуникации; когда количество узлов достигает 100, это означает 10099 раз межузловой коммуникации, если нет оптимизации алгоритма. В целом, в сети P2P блокчейн с N узлами, где каждый узел обменивается данными с другими N-1 узлами, можно предположить, что количество времени и вычислений, затрачиваемых на каждую транзакцию, будет расти экспоненциально после масштабирования сетей блокчейн.

Несмотря на то, что Биткойн и Ethereum являются мейнстримом, они все еще применяют устаревший механизм
Биткойн, который в настоящее время является крупнейшей криптовалютой по рыночной капитализации, и предварительно модернизированный Ethereum оба низкоскоростные: Биткойн обрабатывает около 7 транзакций в секунду (TPS), а Ethereum немного больше - 15 TPS. Этого уже давно недостаточно для удовлетворения потребностей большого количества пользователей, и оно затмевает централизованную систему, например, ведущей компании по выпуску кредитных карт VISA, которая обрабатывает до 24 000 транзакций в секунду. В дополнение к перегрузке сети, низкая скорость также увеличивает расходы, и пользователям приходится платить более высокую плату за приоритетность своих транзакций, что еще больше ухудшает пользовательский опыт.


Источник: Etherscan

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

Как работает шардинг в ETH 2.0?

Механизм консенсуса Ethereum будет преобразован из Proof of Work (PoW) в Proof of Stake (PoS) в ETH 2.0, а оригинальный мейннет Ethereum будет объединен в Beacon Chain. В результате, узлам Ethereum больше не требуется огромная вычислительная мощность для генерации новых блоков. Вместо этого они вкладывают свои ETH в смарт-контракты, чтобы стать валидаторами и получить право на получение платы за транзакции при подаче новых блоков.
В ETH 2.0 для улучшения масштабируемости будет создано 64 шарда, один из которых называется Beacon Chain. Он играет ключевую роль в модернизации шардинга Ethereum и отвечает за координацию и обмен информацией между различными шардингами. Все узлы ETH 2.0 также будут ставить ETH на шард-цепочки и обрабатывать транзакции на разных шардах в соответствии с инструкциями, а блоки на шард-цепочках будут действительны только с одобрения Beacon Chain.

Источник: Hsiao-wei Wang
Шардинг проверяет ожидающие транзакции путем сортировки
Когда в ETH 2.0 будет внедрен шардинг, алгоритм случайной выборки будет назначать случайное количество узлов в каждом шардинге для проверки транзакций и определения порядка и валидности транзакций в цепочке шардинга путем голосования, затем информация о новых сгенерированных блоках шардинга будет добавлена в цепочку маяков. Новый блок должен быть одобрен более чем двумя третями узлов в цепочке шарда.
Как показано на рисунке ниже, каждому узлу присваивается номер (1~100) в последовательности наборов узлов валидатора; алгоритм случайной выборки разрушает порядок присвоения узлов, в результате чего образуется новый набор узлов без фиксированного порядка; новые первые 1~10 узлов могут быть назначены в качестве первого комитета для обработки транзакций по первой цепочке шардов, а 11~20-е узлы - в качестве второго комитета для обработки второй цепочки шардов, и так далее.


Источник: Блог Виталика Бутерина "Why sharding is great: demystifying the technical properties"
Узел валидатора не назначается фиксированно для обработки транзакций на определенной цепочке шардов, поскольку алгоритм случайной выборки будет нарушать порядок узлов в течение некоторого периода времени. Таким образом, члены комитета, ответственные за каждую цепочку шардов, не фиксированы, что позволяет избежать риска централизации, вызванного тем, что определенный узел проверяет цепочку шардов в течение длительного времени, и повышает сложность атаки.
Поскольку шардинг значительно увеличит пропускную способность ETH 2.0, для всех узлов становится невозможным синхронно обновлять полные данные о транзакциях на разных цепочках шардинга, то заголовок Collation Header, который похож на заголовок блока в PoW, становится средством обмена информацией. Как следует из названия, заголовок collation содержит метаданные об информации внутри collation, такие как:

  1. Один шард, к которому принадлежит колляция
  2. Корневой хэш родительской раскладки
  3. Корень Меркла всех транзакций в коллизии
  4. Корень до состояния и корень после состояния
  5. Подписи нотариусов


Источник: Hackernoon
Заголовок collation предоставляет узлу достаточную информацию и загружает полную запись транзакции в соответствии с индексом только в случае необходимости.

Плюсы и минусы шардинга

Альтернатива, которая эффективно перенаправляет спрос на использование и значительно улучшает масштабируемость
Представьте, что миллион автомобилей вынуждены ехать по одной дороге, чтобы переместиться из города А в город Б. Поездка будет медленной, и это касается обычных блокчейнов, поскольку все узлы цепи должны проверять каждую транзакцию. Шардинг разбивает данные в цепи на части, так что каждому узлу необходимо обрабатывать только часть транзакции. Когда блокчейн добавляет несколько магистралей для рассеивания трафика, пользователи могут по праву завершать транзакции быстрее.

Источник: Блок Генезис

Уменьшить перегрузку сети и снизить затраты
В Ethereum до обновления майнерские узлы упаковывали транзакции в зависимости от того, сколько пользователи готовы заплатить, при этом более высокие комиссии обрабатывались быстрее, а более низкие - медленнее, что привело к патологическому торгу комиссиями, когда пользователи иногда платили более $50 за одну транзакцию. Шардинг позволяет блокчейну работать более плавно и снижает необходимость в комиссионных торгах, а пользователи могут обратиться к другому, если на одном шарде возникнет перегрузка.

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

Хотя шардинг выделяет целый список преимуществ, он также вводит ряд новых проблем:

Возможность 1% атаки
Блокчейн уязвим для 51% атак, что означает, что злоумышленник способен произвольно подделать данные транзакций или даже контролировать всю сеть блокчейна, если он контролирует 51% вычислительной мощности узлов. В более крупных блокчейн-сетях, таких как Биткойн и предварительно обновленный Ethereum, стоимость атаки 51% слишком высока, что делает ее нецелесообразной для реализации.
Однако с внедрением шардинга количество узлов, обрабатывающих каждый шардинг, резко сокращается, и злоумышленнику становится намного проще скомпрометировать сеть, если он атакует один из шардингов и успешно подделывает транзакции, а не атакует всю сеть. Если говорить более конкретно, то для сети блокчейн, содержащей 1 000 узлов с одинаковой вычислительной мощностью, хакеру необходимо контролировать более 500 узлов, чтобы атаковать всю сеть. Но когда эти 1 000 узлов распределены по 100 шардам, хакеру достаточно контролировать более 5 узлов в одном из шардов, чтобы подделать данные.

Источник: Блок Генезис

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

Сговор между членами комитета
Хотя в шардинге используется алгоритм случайной выборки, чтобы избежать назначения одинаковых узлов в фиксированную цепочку шардов, все же существует вероятность того, что дублирующие комбинации одинаковых узлов могут совместно подтверждать транзакции после достаточно длительного периода времени, и члены комитета, проверяющие цепочку шардов, также могут сговориться друг с другом и внести в цепочку вредоносную транзакцию.
Дисбаланс нагрузки
Предпосылкой для улучшения производительности сети посредством шардинга является то, что "шардинг" успешно приносит "перенаправление". Если блокчейн оптимизирован со 100 цепочками шардов, но все пользователи по-прежнему используют определенную цепочку шардов, значит, шардинг не работает, и масштабируемость улучшена незначительно. Это также является потенциальной проблемой для ETH 2.0, поскольку возможность выполнения операций смарт-контракта для каждой цепочки шардов не включена в первоначальное планирование.
Более сложные исследователи блокчейна
Улучшение масштабируемости, привносимое шардингом, достигается путем добавления большего количества алгоритмов и данных ко всей сети, большая вычислительная мощность необходима исследователям блокчейна для эффективного извлечения информации в блокчейне.

Другие блокчейны, использующие шардинг

Элронд:

Elrond - это децентрализованный публичный блокчейн, нацеленный на улучшение масштабируемости, скорости и безопасности путем разработки трех ключевых технологий, включая Adaptive State Sharding с технологией масштабирования блокчейна, Secure Proof of Stake (SPoS), которая определяет выбор валидаторов для ускорения проверки, и Elrond Virtual Machine, которая поддерживает множество языков программирования и совместима с Ethereum VM.

Уникальный адаптивный государственный шардинг Elrond сочетает в себе три формы шардинга:

  1. Разделение сети представляет собой процесс объединения узлов в группы.
  2. Шардинг транзакций поднимает сложность на следующий уровень и занимается распределением транзакций по разным шардам, но все узлы хранят весь блокчейн в своем состоянии.
  3. Разделение состояния представляет собой наиболее сложную часть и описывается как механизм, который позволяет различным хранилищам иметь дело только с частью состояния без репликации данных между узлами из разных хранилищ.

В настоящее время Elrond может достигать 15 000 TPS при сохранении комиссии на уровне $0,001, что является разумным преимуществом перед Ethereum.

Рядом:

Near - это блочная публичная цепочка, основанная на полном шардинге состояний, упрощенных приложениях для разработки и механизме proof-of-stake. Она ставит перед собой цель увеличить масштабируемость для разработки децентрализованных приложений и открыть двери технологии блокчейн для всех. Его механизм консенсуса Doomslug, который использует алгоритм Nightshade, способен масштабировать TPS до 100 000. Техническая архитектура Near отличается от других публичных цепочек с шардингом, таких как Beacon Chain, которая состоит из одной цепочки и нескольких цепочек шардов, она разбита на отдельные блоки, и шардинг осуществляется между этими блоками. Блок содержит все транзакции всех шардов, в то время как состояние шарда разделено, и валидаторы случайным образом назначаются для проверки соответствующего состояния шарда транзакции, тем самым повышая безопасность.

Zilliqa:

Zilliqa - довольно ранняя пташка в блокчейн. Он был запущен для решения проблемы плохой масштабируемости блокчейна в то время путем использования сетевого шардинга и шардинга транзакций, а также PoW и византийского отказоустойчивого алгоритма консенсуса (PBFT) с упрощенной сложностью для ускорения консенсуса внутри шардов. Он все еще может работать быстро с более чем 600 узлами, а постоянное масштабирование позволяет Zilliqa повысить TPS с 2400 до 3600 TPS.

Гармония:

Harmony - это публичная цепочка, основанная на шардинге состояний, которая структурирована Beacon Chain и несколькими цепочками шардинга и сопровождается византийским отказоустойчивым алгоритмом консенсуса (PBFT) для достижения глубоко оптимизированного консенсуса при ускорении с помощью подписей BLS для объединения нескольких подписей в одну. В публичной цепочке с шардингом 1% вычислительной мощности может быть использован для атак с двойным расходованием средств. Учитывая это, Harmony использует EPoS (Effective Proof-of-Stake) и Random Sharding для рассеивания токенов с крупными ставками и случайного распределения их по нескольким шардам для снижения риска быть атакованным, чтобы повысить безопасность шардов. Кроме того, в нем используется технология Kademlia Cross-shard Communication для контроля сетевых расходов, а также используются преимущества Erasure Code, который позволяет восстанавливать данные, для оптимизации процесса трансляции блоков для эффективного горизонтального масштабирования шардинга.

Заключение

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

Шардинг эффективно отвлекает потребности в цепочке и повышает эффективность доступа

Sharding - это технология оптимизации, которая повышает эффективность доступа к базе данных путем разделения данных транзакций на цепочке и их синхронной обработки разными узлами, именно так достигается перераспределение трафика и увеличение скорости. Как долгожданное решение для масштабирования первого уровня, когда шардинг будет успешно реализован после преодоления технических трудностей высокого уровня, его потенциальные преимущества будут весьма значительными. Шардинг был принят некоторыми блокчейнами, и в предстоящем ETH 2.0 он также будет принят в надежде значительно улучшить производительность сети.

Шардинг является чрезвычайно трудной задачей со многими нерешенными проблемами, но в конечном итоге невозможный треугольник будет преодолен

Однако, шардинг не является идеальным решением. В дополнение к повышенной сложности, это может подвергнуть сеть большему риску. Многие разработчики продолжают свои исследования, как координировать различные шарды для эффективной работы, ожидая, что шардинг станет ключом к преодолению "невозможного треугольника" безопасности, децентрализации и масштабируемости, чтобы все существующие приложения блокчейн и криптовалюты могли получить дальнейшее распространение.

Автор: Piccolo Переводчик:Yulei
Рецензент(ы) : Хьюго, Эдвард
Отказ от ответственности:

  • Данная статья представляет собой лишь мнение обозревателей и не является инвестиционным предложением.
    *Gate.io оставляет за собой все права на эту статью. Перепечатка статьи будет разрешена при условии ссылки на Gate.io. Во всех остальных случаях будут предприняты юридические действия в связи с нарушением авторских прав.
Автор: Piccolo
Переводчик: Yuler
Рецензент(ы): Hugo, Edward, Cecilia, Ashley
* Информация не предназначена и не является финансовым советом или любой другой рекомендацией любого рода, предложенной или одобренной Gate.io.
* Эта статья не может быть опубликована, передана или скопирована без ссылки на Gate.io. Нарушение является нарушением Закона об авторском праве и может повлечь за собой судебное разбирательство.
Начните торговать сейчас
Зарегистрируйтесь сейчас и получите ваучер на
$100
!