Обзор технологии Sharding и проектов на ее основе
Содержание
Sharding (шардинг) или технология «осколков» — это концепция дизайна базы данных. Как видно из ее названия, она представляет собой создание небольших частей из более крупных элементов. В контексте использования при создании баз данных эта технология позволяет создавать меньшего размера разделы распределенной книги. Эти элементы получили название «осколки».
Важно отметить, что при применении технологии sharding разбиение выполняется горизонтально, а не вертикально. Каждый «осколок» может содержать данные, которые находятся во всех остальных шардингах. Однако доступ к этой информации возможен только через основной «осколок». Это означает, что данные в каждом элементе системы уникальны. Чтобы получить доступ к данным и использовать их необходимо поставить в очередь конкретный осколок, содержащий указанную информацию.
Технология sharding используется при создании архитектуры баз данных, поскольку она способна улучшить как их производительность, так и производительность поисковой системы. Ускорение работы системы обеспечивается за счет уменьшения размера индекса в распределенной книге. В результате, регистр может обеспечить более высокую скорость поиска. Кроме того, поскольку «осколки» могут храниться на разных серверах, этот инструмент может быть полезен для крупных корпораций с большими базами данных, которые необходимо хранить отдельно. В качестве примера можно привести многонациональные корпорации, работающие в разных странах.
Применение в распределенных книгах
Рост популярности шардинга в сообществе криптовалют можно объяснить широким распространением проблем масштабируемости блочных цепочек. Так, блокчейн Bitcoin способен обрабатывать около 7 транзакций в секунду, а Ethereum около 15. Это ничтожно мало по сравнению с крупными платежными системами, такими как Visa и Mastercard.
В то время как сообщество биткоина пыталось решить проблему масштабирования различными способами, разработчики Ethereum выбрали более рациональный подход. Он включает в себя переход на алгоритм Proof of Stake (PoS), который будет работать в тандеме с архитектурой базы данных на основе технологии sharding.
Как Ethereum сможет работать с применением шардинга?
Во время свой главной речи на мероприятии, проведенном в Школе бизнеса Сингапурского университета социальных наук, основатель Ethereum Виталик Бутерин попытался в простой форме объяснить концепцию использования «осколков» в блокчейне Ethereum. В своем докладе под названием «Дорога вперед» он заявил:
«Представьте, что Эфириум будет разделен на тысячи островов. Каждый из них сможет выполнять свою функцию. Каждый из островов получит уникальные особенности, а все, кто относится к определенному острову (то есть, имеет на нем счета), смогут взаимодействовать друг с другом и свободно использовать все его функции. Если они захотят связаться с другими островами, им придется использовать определенный протокол».
В настоящее время в сети Ethereum, а также в других блочных цепях, каждый узел — это место хранения глобального состояния сети. В перечень хранимых данных входит баланс счетов, код контрактов и всей дополнительной соответствующей информации. Кроме того, все узлы участвуют в обработке всех транзакций. Хотя это и позволяет достичь очень высокого уровня безопасности, такой подход резко ограничивает возможности масштабирования сети, потому что заключенная в рамки конкретного проекта блок-цепочка представляет собой, по сути, просто один сетевой узел.
Другими словами, скорость блочной цепи определяется тем, насколько быстрым является один узел, так как все узлы должны один за другим выполнять одни и те же транзакции.
Чтобы решить эту проблему, создатели сети Ethereum планируют реализовать ее новую версию с использованием «осколков». В рамках нового проекта для каждого узла, участвующего в системе, обработка всей истории блокчейна больше не будет обязательным действием для добавления новой транзакции в регистр. Вместо этого каждый узел будет обрабатывать только те данные, которые относятся к определенному «осколку».
Будут применены как квадратичные, так и экспоненциальные «осколки». Квадратичный подход предусматривает разбиение регистра таким образом, что в основной цепочке остается только один «осколок». Однако, при экспоненциальном использовании технологии sharding, «осколки» могут размещаться внутри других «осколков».
Хотя разработчикам еще предстоит определить, какие критерии они будут использовать для разделения глобальных состояний на осколки, существует описание того, как это должно работать:
«Например, схема шардинга в рамках Ethereum может предусматривать размещение всех адресов, начиная с 0x00 в один осколок, а адресов, начинающиеся с 0x01, в другой и т. д. В простейшей форме каждый «осколок» будет иметь собственную историю транзакций, а эффект транзакций в определенном осколке k будет ограничен состоянием осколка k».
Используя этот пример, стоит отметить, что каждый процесс обработки узлов, связанный с кошельками в определенном «осколке», должен затрагивать только информацию, находящуюся в этом конкретном «осколке». Это позволит увеличить скорость, а также количество транзакций, которые сможет обрабатывать каждый узел.
Кроме того, новый дизайн будет включать в себя использование смарт-контрактов в основной цепочке. «Умные» контракты будут отвечать за достижение консенсуса между «осколками» и основной цепочкой. Он получит название «шардинговый контракт диспетчеризации». В новом проекте будут также представлены различные типы участников сети:
«Множественные осколки будут обрабатываться раздельно различными поднаборами участников, включая нотариусов, инициаторов, майнеров и валидаторов».
В дополнение к новым типам участников сети новый дизайн также приведет к созданию различных типов узлов. Супер-полный узел будет хранить информацию о сопоставлении всех «осколков» между собой, а также основной цепочки, обеспечивая достижение полного консенсуса.
Узел верхнего уровня будет обрабатывать все основные блоки цепочки, выполняя роль «легкого клиента» для доступа ко всем «осколкам». Узлы с одним осколком будут представлять собой тип узла верхнего уровня, который полностью загружает и проверяет каждое сопоставление данных на определенном осколке. Наконец, легкий узел будет ответственным за загрузку и проверку заголовков блоков основных блочных цепочек и получит доступ только к тем данным, которые ему необходимы для конкретной транзакции.
В то время как случайная перекрестная связь будет отрицать всю концепцию, разработчики намерены предоставить ее в тех случаях, когда это необходимо. Используя так называемую систему квитанций, «осколки» смогут проверять информацию, которой будут обмениваться.
Важно отметить, что технология sharding может быть реализована в сети Ethereum только после перехода на алгоритм PoS. После ее внедрения можно ожидать значительное улучшение эффективности работы сети.
Существующие проекты на основе технологии
На момент написания статьи, список наиболее известных проектов, авторы которых использовали или намерены применить технологию «осколков», включали:
Zilliqa
В отличие от Ethereum, разработчики этой сети собираются использовать другой подход. Они хотят обеспечить четкое разграничение между такими понятиями, как состояние и история транзакций. Эту концепцию можно попытаться объяснить простыми словами с помощью метафоры:
«Состояние — это то, что имеется в наличии в данный момент, и было создано историей всех транзакций».
Итак, то, сколько средств находится на банковском счете — это текущее состояние. Если денег много — это текущее состояние счета, если нет ничего — это тоже текущее состояние. Ряд предшествующих транзакций привел к достижению текущего состояния. Если в прошлом пользователь зарабатывал больше, чем тратил, то его текущее состояние заключается в том, что у него имеются деньги. Если же он расходовал больше, чем зарабатывал, то текущее состояние — отсутствие денег.
Этот принцип заключается в том, что для хранения истории транзакций требуется гораздо больше места, чем для хранения текущего баланса (состояния). Однако история транзакций очень важна, если возникает необходимость проверки правильности баланса. Пока пользователь знает свой баланс, он понимает, сколько может потратить. Время от времени можно проверять правильность баланса путем прослеживания всей истории транзакций, но, как правило, такая потребность возникает крайне редко.
Подход, который разработчики Zilliqa выбрали для использования технологии sharding, состоит в том, что каждый отдельный узел будет иметь копию текущего состояния, а история транзакций будет разделена на части. Это позволит избежать необходимости наличия полной ее копии у всех сетевых узлов.
Такое умное решение позволит исправить основную проблему блочных цепочек благодаря «осколкам», что является очень большим шагом на пути к развитию и продвижению криптовалютных технологий.
Quarkchain
Для начала стоит вспомнить, что архитектура Quarkchain представляет собой двухслойную блочную систему. Эластичные «осколки» составляют первый слой, а корень — блок-цепочку, которая также является и вторым слоем системы. Она отвечает за подтверждение блоков первого слоя.
В системе QuarkChain транзакции подразделяются на две категории:
- транзакции с входными и выходными адресами в одном «осколке»;
- транзакции с адресами входа и выхода в разных «осколках».
Все транзакции в сети в рамках одного «осколка» относительно просты, так как каждый из них содержит полную регистрационную информацию. Транзакции между разными «осколками» сложнее из-за необходимости в синхронизации.
Такой подход наряду с использованием технологии sharding позволяет избавить пользователя от необходимости иметь несколько учетных записей в разных осколках, чтобы взаимодействовать со всеми участниками в сети. QuarkChain предлагает существенное упрощение механизма управления учетными записями. Пользователю требуется только одна учетная запись для управления всеми адресами во всех осколках. Он может беспрепятственно взаимодействовать со всеми другими участниками сети.
Кроме того, сеть использует приложение с интеллектуальным кошельком с автоматической функцией выполнения транзакций как между «осколками», так и внутри них.
Pchain
Создатели Pchain обещают преодолеть проблемы блокчейна, используя собственные многоцелевые системы с поддержкой EMV (виртуальная машина Ethereum) и используют механизмы, основанные на алгоритме PoS. Этот проект нацелен на расширение возможностей смарт-контрактов и эффективности блок-цепочек.
В будущем ожидается, что проект Pchain обеспечит рост скорости проведения транзакций, решение проблемы масштабируемости и интероперабельности, а также предложит функциональные возможности для кросс-цепоченых решений и обеспечит лучшую платформу для разработчиков для хранения разных криптовалют. Конечная цель PCHAIN заключается в том, чтобы глобальные широкомасштабные блочные приложения были доступны людям во всех сферах повседневной жизни, как интернет.
Pchain будет использовать технологию sharding для улучшения рабочих характеристик и расширения структуры цепочки на всех уровнях. В сочетании с алгоритмом PoS это позволит достичь более эффективных транзакций и сокращения потребления энергии в процессе майнинга.
IOStoken
Цель создания блочной платформы IOStoken — обеспечение экосистемы для разработки полномасштабных dApps со способностью обеспечения неограниченного количества пользователей одновременно.
В основе принципа функционирования dApps лежит распределение частей данных между сетевыми узлами, роль которых выполняют компьютеры пользователей. Для этого используется технология sharding.
Благодаря внедрению в сеть инновационной технологии EDS (Efficient Distributed Sharding) разработчики намерены добиться существенного роста возможности масштабирования благодаря динамическому разделению сети на подпространства. Это обеспечит снижение нагрузки на систему и рост ее производительности.
Заключение
Несмотря на то, что sharding — относительно новая технология в сфере блокчейна, разработчики ряда проектов уже активно используют или намерены использовать ее в ближайшее время. Столь активное внимание к шардингу вполне объяснимо. Эта технология способна решить ключевые барьеры на пути развития блочной цепочки, которые тормозят процесс ее расширения и принятия в глобальном масштабе.
Однако для окончательного внедрения «осколков» в blockchain потребуется выполнение ряда условий. Во-первых, для более широкого их внедрения необходимо, чтобы разработчики блочных и криптографических систем уделяли этому направлению больше внимания. Во-вторых, кажущаяся на первый взгляд гладкой связь между узлами внутри «осколков» на самом деле непростая в техническом плане и требует разработки отдельного протокола.
Выполнение этих ключевых условий способно обеспечить более широкое внедрение технологии шардингов. Это, в свою очередь, может помочь блокчейну преодолеть текущие проблемы масштабируемости и обеспечить более высокую пропускную способность транзакций.
Подписывайтесь на наш Telegram канал. Будьте в курсе новых статей.