Ключевые выводы
Шардирование разделяет блокчейн на более мелкие сегменты, называемые шарами (шардами), позволяя обрабатывать транзакции параллельно, а не по очереди.
Каждый шард действует как независимая база данных, которая обрабатывает собственную часть транзакций, снижая нагрузку на отдельные узлы.
Шардирование может увеличить пропускную способность транзакций, снизить требования к оборудованию для операторов узлов и улучшить общую эффективность сети.
Компромиссы включают добавленную сложность, риск атак на один шард и трудности с транзакциями, которые охватывают несколько шарденов.
В марте 2024 года Ethereum внедрил промежуточную форму шардирования под названием Proto-Danksharding (EIP-4844) через обновление Cancun, снизив комиссии для сетей уровня 2. Полное danksharding остаётся в дорожной карте.
Введение
Технология блокчейна предлагает децентрализованный и прозрачный способ фиксировать транзакции, но у неё есть хорошо известное ограничение: масштабируемость. По мере роста сети и увеличения числа пользователей, отправляющих транзакции, она может замедляться и становиться дороже в использовании. Иногда это описывают как блокчейн-трилемму — сложность одновременного достижения масштабируемости, безопасности и децентрализации.
Шардирование — один из подходов, который пытается решить масштабируемую сторону этой проблемы. Изначально это была техника управления базами данных, но несколько блокчейн-проектов адаптировали её, чтобы сети могли обрабатывать больше транзакций без потери децентрализации.
Что такое шардирование?
Шардирование — это процесс разделения блокчейн-сети на более мелкие части, называемые шарами (шардами). Каждый шард содержит свою часть данных сети и независимо обрабатывает собственные транзакции. Вместо того чтобы требовать от каждого узла хранить и проверять каждую транзакцию во всей сети, каждый узел отвечает только за один шард.
Это заметный отход от того, как по умолчанию работают большинство блокчейнов. В стандартном блокчейне каждый узел должен обрабатывать и хранить все транзакции во всей сети. Этот подход, хотя и безопасен, ограничивает скорость работы сети, потому что всем узлам нужно оставаться в синхронизации.
Как работает шардирование?
Чтобы понять шардирование, полезно рассмотреть, как обычно обрабатываются данные в блокчейне, а затем — как шардирование меняет этот процесс.
Последовательная vs. параллельная обработка
В типичном блокчейне каждый узел обрабатывает транзакции по очереди, последовательно. Это означает, что скорость всей сети ограничена тем, что может обработать каждый отдельный узел. По мере роста блокчейна это становится узким местом.
Шардирование вводит параллельную обработку. Вместо того чтобы все узлы работали над одними и теми же транзакциями, разные группы узлов одновременно обрабатывают разные шарды. Это позволяет сети обрабатывать намного больше транзакций одновременно.
Горизонтальное разбиение
Шардирование использует технику, называемую горизонтальным разбиением, которая делит данные на строки, а не на столбцы. Каждый шард хранит полный набор транзакционных данных для тех транзакций, которые он обрабатывает. Это сохраняет целостность данных, потому что каждый шард имеет полные записи для своей части сети.
Горизонтальное разбиение предпочитается в системах блокчейна, потому что оно поддерживает децентрализацию. Узлам нужно хранить и проверять только данные одного шарда, что снижает требуемые объём хранения и вычислительную мощность для участия в сети.
Вертикальное разбиение
При вертикальном разбиении данные делятся на столбцы, а не на строки. Каждая часть при вертикальном разбиении содержит набор данных для каждой сущности или для всего набора данных, но только для определённого набора атрибутов.
Каковы преимущества шардирования?
Шардирование даёт несколько потенциальных преимуществ для блокчейн-сетей:
Повышенная пропускная способность: обрабатывая транзакции параллельно на нескольких шардах, шардированная сеть может обрабатывать значительно больше транзакций в секунду, чем дизайн с одной цепочкой.
Ниже требования к оборудованию: поскольку каждый узел хранит данные только для одного шарда, снижаются требования к хранению и обработке. Это делает запуск узла проще и дешевле, что может повысить децентрализацию сети.
Лучшая масштабируемость: в теории шардированная сеть может добавлять больше шарденов по мере роста спроса, позволяя сети масштабироваться без пропорционального падения производительности.
Эти преимущества в разной степени носят теоретический характер. То, насколько реальная сеть получит выигрыш, зависит от того, как именно реализовано шардирование, и от того, какие компромиссы принимаются.
Каковы ограничения шардирования?
Шардирование добавляет новые сложности, которых нет в немодульных (безшардовых) блокчейнах:
Атаки на один шард: злоумышленнику нужно существенно меньше ресурсов, чтобы захватить один шард, чем чтобы атаковать всю сеть. Это делает отдельные шарды более уязвимыми к типу атаки, известному как 51%.
Сложность между шардами: транзакции, которые затрагивают данные из двух разных шардов, сложно обрабатывать. Если один шард во время транзакции не корректно отслеживает состояние другого, теоретически могут возникнуть ошибки вроде двойного расходования.
Доступность данных: если узлы, отвечающие за определённый шард, уйдут офлайн, данные этого шарда могут стать временно недоступными, что нарушит работу сети.
Накладные расходы на синхронизацию: чтобы держать шарды согласованными, требуется усложнённая архитектура сети. Ошибки в управлении шардами могут приводить к несоответствиям или проблемам с производительностью.
Эти компромиссы объясняют, почему технически сложно реализовать шардирование, и почему многие сети идут постепенным (инкрементальным) путём.
Как используется шардирование в Ethereum?
Дорожная карта масштабирования Ethereum существенно изменилась с тех пор, как шардирование впервые обсуждали как часть плана обновления «Ethereum 2.0». Вместо того чтобы внедрять execution sharding напрямую, Ethereum Foundation перешёл к стратегии, ориентированной на роллапы: роллапы уровня 2 выполняют обработку транзакций вне сети (off-chain), размещая данные в Ethereum mainnet.
В рамках этой стратегии в обновлении Cancun в марте 2024 года Ethereum представил Proto-Danksharding (EIP-4844). EIP-4844 ввела новый тип транзакций — транзакцию, несущую блоб (blob-carrying transaction). Блобы позволяют роллапам уровня 2 публиковать большие объёмы данных в Ethereum с гораздо меньшей стоимостью, чем раньше, потому что данные блоба хранятся временно (около 18 дней) и не обрабатываются Виртуальной машиной Ethereum.
Полное danksharding — это следующий этап в дорожной карте Ethereum. Оно расширит систему блобов, включив sampling доступности данных — технику, которая позволяет узлам проверять, что данные доступны, не скачивая их полностью. Это позволит Ethereum поддерживать гораздо больше блобов в каждом блоке, заметно снижая затраты для пользователей уровня 2. На момент написания текста полное danksharding пока не реализовано.
Часто задаваемые вопросы (FAQ)
Что такое шардирование в блокчейне?
Шардирование разделяет блокчейн на более мелкие независимые сегменты, называемые шарами (шардами). Каждый шард обрабатывает собственные транзакции и хранит собственные данные. Это позволяет разным частям сети работать параллельно, увеличивая общее количество транзакций, которое сеть может обрабатывать.
Ethereum сейчас шардирован?
Ethereum реализовал промежуточную форму шардирования под названием Proto-Danksharding (EIP-4844), представленную в обновлении Cancun в марте 2024 года. Это позволяет сетям уровня 2 публиковать данные транзакций в недорогих блобах вместо дорогих calldata. Полное danksharding, которое включило бы sampling доступности данных по многим шардам, всё ещё находится в разработке.
Каковы основные риски шардирования?
Ключевые риски включают атаки на один шард, когда злоумышленник может нацелиться на один шард с меньшими ресурсами, чем требуется для атаки на всю сеть, а также сложность транзакций между шарами, которая может приводить к пограничным ситуациям, например к двойному расходованию, если с этим не справляться аккуратно. Проблемы с доступностью данных также могут возникать, если узлы, управляющие конкретным шаром, уходят офлайн.
Чем шардирование отличается от использования решений уровня 2?
Шардирование — это техника масштабирования уровня 1, которая изменяет то, как базовый блокчейн хранит и обрабатывает данные. Масштабируемость блокчейна можно также решать с помощью решений уровня 2: они обрабатывают транзакции вне сети (off-chain) и публикуют сводные данные обратно в основной блокчейн. В текущей дорожной карте Ethereum оба подхода работают вместе: шардирование (через блобы) снижает стоимость публикации данных уровня 2 в Ethereum, а роллапы выполняют обработку транзакций вне сети.
Заключительные мысли
Шардирование — перспективная техника для улучшения масштабируемости блокчейна, но она включает реальные компромиссы по сложности и безопасности. Идея развивалась от теоретического предложения к практической инкрементальной реализации, прежде всего благодаря EIP-4844 в Ethereum. По мере того как исследования продолжаются и всё больше сетей экспериментируют с конструкциями шардирования, технология, вероятно, будет развиваться дальше. То, удастся ли конкретная реализация, будет зависеть от того, насколько хорошо она со временем балансирует пропускную способность, безопасность и децентрализацию.
Дополнительные материалы для чтения
Уровень 1 блокчейна vs. решения для масштабирования уровня 2
Что такое Ethereum и как он работает?
Оптимистичные роллапы vs. роллапы с нулевым разглашением (Zero-Knowledge): в чём разница?
Что такое обновление Ethereum Cancun?
Масштабируемость блокчейна: сайдчейны и платёжные каналы
Отказ от ответственности: данный контент предоставляется вам «как есть» только для общей информации и/или образовательных целей, без каких-либо заверений или гарантий любого рода. Его нельзя рассматривать как финансовый, юридический или иной профессиональный совет, и он не предназначен для рекомендации покупки каких-либо конкретных продуктов или услуг. Вы должны получить собственную консультацию у соответствующих профессиональных специалистов. Если контент предоставлен третьим лицом, обратите внимание, что выраженные там взгляды принадлежат этому третьему лицу и не обязательно отражают взгляды Binance Academy. Цены на цифровые активы могут колебаться. Стоимость ваших инвестиций может как снижаться, так и расти, и вы можете не вернуть сумму, которую инвестировали. Вы полностью несёте ответственность за свои инвестиционные решения, и Binance Academy не несёт ответственности за любые потери, которые вы можете понести. Для получения дополнительной информации см. наши Условия использования, Предупреждение о рисках и Условия Binance Academy.
