Что такое перегрузка блокчейн‑сети?
Basics
Перегрузка сети в блокчейне возникает, когда объём транзакций превышает способность сети эффективно их обрабатывать. К факторам, вызывающим перегрузку, относятся резкий рост активности транзакций, ограниченный размер блоков и задержки при подтверждении блоков. Последствия перегрузки сети могут быть значительными: это повышение комиссий за транзакции, увеличение времени подтверждения и ухудшение пользовательского опыта. Очевидным примером стала весна 2023 года, когда сеть Биткоина испытала перегрузку из‑за повышенной активности транзакций, связанной с токенами BRC‑20. В результате неоплаченные транзакции накопились, а комиссии достигли беспрецедентных уровней.
How Does Blockchain Network Congestion Happen?
Перегрузка сети возникает, когда объём транзакций превышает её вычислительные возможности. На это влияют различные факторы: внешние события, такие как волатильность рынка, и внутренние характеристики сети, например размер блока и время между блоками. Перед тем как углубляться в детали, важно понять, как блоки добавляются в блокчейн.
Blockchain Technology: How Does It Work?
В основе технологии блокчейн лежит цепочка взаимосвязанных блоков, каждый из которых содержит данные о транзакциях, отправленных пользователями. Эти блоки становятся неизменными и необратимыми после добавления в цепь. Блоки распространяются по децентрализованной сети узлов, каждый из которых хранит копию всего блокчейна. С помощью криптографии и теории игр блокчейн служит фундаментальной инфраструктурой для популярных криптовалют, таких как Биткоин и Эфириум.
Чтобы понять факторы, влияющие на перегрузку сетей блокчейн, необходимо разобраться в ключевых понятиях, определяющих пропускную способность сети при обработке транзакций. Среди этих понятий — мемпул, кандидатные блоки, финализация и принцип самой длинной цепочки.
What Is a “Mempool”?
Мемпул (mempool) — это хранилище неподтверждённых транзакций, ожидающих включения в следующий блок блокчейна. Когда пользователь инициирует транзакцию в сети Биткоин, она проходит несколько этапов, прежде чем будет окончательно записана в блокчейн. Сначала транзакция попадает в мемпул — временную очередь неподтверждённых транзакций. Транзакции остаются в мемпуле до тех пор, пока майнеры не подтвердят их и не включат в новый добытый блок. После подтверждения транзакция удаляется из мемпула и навсегда добавляется в блокчейн, обеспечивая её неизменность.
What Is a “Candidate Blocks”?
Кандидатные блоки, также называемые «предлагаемыми блоками», — это блоки, которые майнеры или валидаторы выдвигают как возможные для добавления в блокчейн. Такие блоки содержат неподтверждённые транзакции, распространённые по сети, но ещё не включённые в основную цепь.
Чтобы кандидатный блок стал подтверждённым, он должен пройти процесс майнинга или валидации, установленный конкретным консенсусным механизмом блокчейна. В случае механизма Proof of Work (PoW) в Биткоине майнеры соревнуются в решении сложной математической задачи. Первый майнер, успешно решивший задачу, получает право добавить свой кандидатный блок в блокчейн и получить вознаграждение.
В механизме Proof of Stake (PoS), применяемом в Эфириуме, валидаторы выбираются случайным образом для предложения кандидатных блоков. Другие валидаторы затем дают аттестации, подтверждающие корректность блока. Как только кандидатный блок набирает достаточное количество аттестаций, он переходит из статуса кандидата в подтверждённый блок.
What Does Blockchain "Finality" Mean?
Финализация в контексте блокчейна означает состояние, при котором транзакция или операция становится необратимой и не может быть изменена или отменена. После достижения финализации транзакция является неизменной и навсегда записана в блокчейне. В сети Биткоин транзакции сначала рассылаются по сети и попадают в мемпул. Майнеры выбирают и подтверждают транзакции из этого пула, включая их в новые блоки, которые добавляются в блокчейн. Транзакции, включённые в блок, считаются подтверждёнными, но остаётся теоретическая вероятность того, что другие майнеры смогут создать конкурирующий блок.
Уровень финализации транзакций повышается с добавлением большего числа блоков к цепочке. В случае Биткоина транзакции обычно считаются «финальными» после добавления ещё шести блоков поверх блока, содержащего эти транзакции. Эфириум, имея более короткое время блока, требует большего числа подтверждений для достижения аналогичного уровня уверенности в финализации транзакции.
"Longest Chain" Principle: What Is It?
Как уже было сказано, иногда несколько майнеров одновременно создают валидные блоки, что приводит к временным форкам в блокчейне. Принцип «самой длинной цепочки» заключается в том, что действительной версией блокчейна считается та цепочка, в которую вложено больше вычислительной работы, обычно представляемая самой длинной последовательностью блоков. В результате «валидные» блоки в более коротких цепочках, часто называемые сиротскими или устаревшими блоками, отвергаются, а их транзакции возвращаются в мемпул.
В случае Эфириума принцип самой длинной цепочки использовался, когда сеть работала на Proof of Work (PoW). После перехода Эфириума на Proof of Stake (PoS) в 2022 году сеть перешла на обновлённый алгоритм выбора форка, который оценивает «вес» цепочки. Этот вес вычисляется на основе суммарного количества голосов валидаторов с учётом их застейканных объёмов эфира.
Blockchain Network Congestion: What Causes It?
Перегрузка блокчейн‑сети возникает, когда объём отправляемых транзакций превышает её способность обрабатывать их. Этому способствуют несколько причин:
- Рост спроса: по мере того как больше пользователей отправляют транзакции в блокчейн, количество неподтверждённых транзакций в мемпуле может превысить вместимость одного блока. Это особенно актуально для сетей с ограничениями размера блока и времени блока. Рост спроса может быть вызван резкими колебаниями цен, приводящими к всплеску транзакционной активности, или волнами массового принятия.
- Малый размер блока: у каждого блокчейна есть предустановленный размер блока, определяющий максимальное число транзакций, которое можно включить в блок. Например, у Биткоина изначально был лимит размера блока в 1 мегабайт. Однако обновления, такие как Segregated Witness (SegWit), увеличили теоретический лимит до примерно 4 мегабайт. Если число транзакций превышает этот лимит, это приводит к перегрузке сети.
- Медленное время блока: время блока — это интервал между добавлением последовательных блоков в блокчейн. Например, у Биткоина целевое время блока составляет примерно 10 минут. Если транзакции генерируются быстрее и в большем объёме, чем сеть способна обработать, возникает отставание транзакций, что способствует перегрузке.
В заключение, перегрузка блокчейн‑сети может возникать из‑за роста спроса, малого размера блоков и медленного времени блока, что препятствует эффективной обработке транзакций.
How Does Network Congestion Affect Blockchain?
Перегрузка блокчейн‑сети может иметь несколько негативных последствий, нарушающих её нормальную работу. К таким последствиям относятся:
Increased Transaction Fees
Когда сеть перегружена, пользователям часто приходится платить более высокие комиссии, чтобы привлечь внимание майнеров и приоритизировать свои транзакции. Это делает использование блокчейна дороже, особенно для мелких переводов, поскольку пользователям нужно платить больше, чтобы их транзакции были обработаны быстрее.
Delayed Transaction Confirmation Times
Перегрузка сети может привести к увеличению времени ожидания подтверждения и финализации транзакций. Иногда транзакции остаются неподтверждёнными часами, днями или даже дольше. Такие задержки вызывают недовольство у пользователей, которые рассчитывают на своевременное подтверждение своих операций.
Poor User Experience
Высокие комиссии и длительные времена подтверждения существенно ухудшают пользовательский опыт. Когда пользователи сталкиваются с дорогими комиссиями и долгим ожиданием, их удовлетворённость и доверие к блокчейну снижаются. Это, в свою очередь, может препятствовать широкой адаптации и удобству использования технологии.
Market Volatility
Перегрузка сети может усиливать рыночную волатильность. Если много пользователей пытаются продать свои криптовалютные активы в период перегрузки, а сеть не успевает эффективно обработать эти транзакции, это может создать неопределённость и усилить колебания на рынке.
Кроме того, перегрузка сети может создавать риски для безопасности и повышать риск централизации. Длительное время подтверждения увеличивает вероятность атак двойной траты, когда злоумышленник пытается потратить одну и ту же криптовалюту несколько раз до подтверждения транзакций. Высокие комиссии также могут концентрировать майнинговую мощность в руках немногих участников, что ведёт к уменьшению децентрализации. Перегрузка блокчейн‑сетей приводит к росту комиссий, задержкам подтверждений, ухудшению UX, волатильности рынка, рискам безопасности и проблемам централизации. Эти вызовы подчёркивают важность исследований в области масштабируемости и оптимизации для обеспечения эффективной и бесперебойной работы сетей.
Blockchain Network Congestion: Examples
Сети Биткоин и Эфириум сталкивались со значительной перегрузкой, что вызывало различного рода проблемы для пользователей и ухудшение общей производительности сети.
Bitcoin Network Congestion
Биткоин пережил заметный эпизод перегрузки во время роста цены в конце 2017 — начале 2018 года. Повышенная популярность и спрос привели к массовому притоку транзакций, что вызвало значительные задержки и высокие комиссии. В определённый момент средние комиссии за транзакцию поднялись выше $50, делая отправку транзакций дорогой и длительной.
Весной 2023 года сеть Биткоина столкнулась с ещё одним событием перегрузки, вызванным увеличением активности транзакций, связанных с токенами BRC‑20. Этот всплеск привёл к резкому росту числа неподтверждённых транзакций и комиссий. Мемпул, где ожидают подтверждения транзакции, испытывал затор — в нём было почти 400 000 неподтверждённых транзакций. В течение нескольких недель комиссии выросли более чем на 300%.
Ethereum Network Congestion
Сеть Эфириум также сталкивалась с перегрузками. В 2017 году вирусный успех проекта «CryptoKitties» значительно замедлил работу сети. Переполнение запросами и транзакциями, связанными с проектом, привело к задержкам и росту цен на газ.
Кроме того, бум децентрализованных финансов (DeFi) в экосистеме Эфириума также способствовал перегрузке сети. Высокий спрос на выполнение смарт‑контрактов и взаимодействие с DeFi‑протоколами увеличивал цены на газ, делая транзакции более дорогими для пользователей.
Хотя любая блокчейн‑сеть может столкнуться с перегрузкой, случаи перегрузки в сетях Биткоин и Эфириум получили особое внимание из‑за их широкой популярности и значимости в криптоэкосистеме. Их опыт подчёркивает необходимость внедрения масштабируемых решений и оптимизаций для более плавной и эффективной обработки транзакций.
Solutions to Alleviate Network Congestion
Решение проблемы перегрузки блокчейн‑сети — сложная задача, для которой существует несколько подходов, каждый со своими компромиссами и ограничениями. Ниже приведены некоторые стратегии.
Extending the Block Size
Этот подход предполагает увеличение размера блока, позволяющее обрабатывать больше транзакций одновременно. Более крупные блоки повышают пропускную способность сети, но дольше распространяются по сети, что может привести к временным форкам. Кроме того, большие блоки требуют больше места для хранения, что может способствовать централизации.
Block Time Reduction
Уменьшение времени генерации новых блоков может ускорить обработку транзакций. Однако более короткие интервалы блока могут увеличить число сиротских блоков, что снижает безопасность сети.
Layer 2 Solutions
Решения второго уровня переводят транзакции вне основной цепочки с последующей фиксацией итогового состояния в основном блокчейне. Примеры включают Lightning Network для Биткоина и Plasma для Эфириума. Layer 2 может значительно повысить масштабируемость, но их реализация сложна и требует учёта вопросов безопасности.
A Sharding System
Шардинг подразумевает разделение блокчейна на более мелкие шарды, каждый из которых способен независимо обрабатывать транзакции и выполнять смарт‑контракты. Этот подход может значительно увеличить пропускную способность сети. Тем не менее, как и Layer 2, шардинг влечёт за собой сложность и потенциальные риски безопасности.
Дополнительные меры для снижения перегрузки включают настройку комиссий и использование масштабируемых решений, таких как оптимистичные и zero‑knowledge rollups. Переход на консенсус Proof of Stake (PoS), как правило, обеспечивает более высокую скорость по сравнению с Proof of Work (PoW) и может повысить эффективность сети. Важно тщательно оценивать плюсы и минусы каждого подхода, чтобы выбрать наиболее подходящее решение для конкретной сети. При решении проблем перегрузки критично учитывать требования сети, аспекты безопасности и потребности пользователей.
Conclusion
Проблемы перегрузки сетей становятся всё более актуальными по мере роста числа пользователей блокчейн‑технологий. Чтобы сеть могла широко использоваться и приносила ценность, она должна эффективно обрабатывать большой объём транзакций. Это особенно важно для систем, предназначенных для повседневных и моментальных платежей. Несмотря на значительные сложности, сообщество продолжает разрабатывать решения для их смягчения. Индустрия блокчейн активно инвестирует в исследования масштабируемости.