Что такое масштабирование в криптовалюте
Перейти к содержимому

Что такое масштабирование в криптовалюте

  • автор:

Что на самом деле означает «масштабируемость» в мире блокчейна?

Масштабируемость — одна из самых важных проблем в блокчейне. С тех пор, как появился Биткоин, она была в центре внимания как практиков отрасли, так и ученых. Чжицзе Рен и Питер Чжоу исследуют вопросы масштабируемости блокчейна в VeChain и сравнивают различные блокчейны, анализируя их плюсы и минусы. Их цель — обеспечить как криптовалютные сообщества, так и широкую публику глубоким пониманием текущего состояния развития блокчейна. Думаю, вам это тоже будет чертовски интересно. Далее — от первого лица.

Что на самом деле означает «масштабируемость» в мире блокчейна? Фото.

Независимо от того, исследуете ли вы блокчейн в академических кругах или просто тащитесь от происходящего в мире крипты, вы наверняка слышали термин «масштабируемость» (scalability) или «масштабируемый блокчейн» (scalable blockchain). Об этом так много говорят, столько шума. Однако в большинстве случаев за «масштабируемым» блокчейном скрывается обычная цепочка блоков, способная достигать высоких показателей TPS (транзакций в секунду). Иногда бывает даже так, что истинный смысл «масштабируемости» искажается или даже намеренно меняется, чтобы ввести людей в заблуждение и получить незаслуженные преимущества. С другой стороны, мы видели массу докладов и статей, написанных исследовательскими институтами, компаниями или СМИ, в которых пытаются объективно сравнить масштабируемость разных блокчейнов. Однако вряд ли хоть кто-то из них способен отличить лживые утверждения от имеющих под собой почву.

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

Для большинства компьютерных систем — например, базы данных или поисковой системы — «масштабируемость» означает способность системы обрабатывать растущий объём работы, то есть масштабироваться. Система плохо масштабируется или, иными словами, имеет плохую масштабируемость, если вместо того, чтобы задействовать больше ресурсов (например, подключать дополнительную вычислительную мощность, серверы или пропускную способность), она требует дополнительных усилий по модификации системы, чтобы быть в состоянии справиться с возросшей нагрузкой.

И всё же, в области блокчейна у слова «масштабируемость» гораздо более широкий диапазон значений. Да что там говорить — даже термин «блокчейн» пока не получил хорошего определения с академической точки зрения. К примеру, если говорить про Bitcoin, многие до сих пор считают «масштабированием» любое улучшение пропускной способности, задержки, времени начальной загрузки или стоимости транзакций.

В наши дни есть много различных систем блокчейна, которые можно считать «масштабируемым», однако их пропускная способность сильно отличается. Обратите внимание, что слово «масштабируемый» является сравнительным термином в блокчейне. Когда система называется масштабируемой, это значит, что она достигает более высокого значения TPS, чем другие существующие системы, путём изменения механизма консенсуса и/или уточнения некоторых параметров системы.

Фактически, мы можем классифицировать масштабируемые блокчейны на четыре типа:

  • 1. Масштабирование Bitcoin: решения для повышения пропускной способности Bitcoin за счёт увеличения размера блока или сокращения интервала блока без изменений в POW-алгоритме консенсуса
  • 2. Масштабирование POW: решения, которые всё еще укладываются в структуру консенсуса Сатоши Накамото, но достигают более высокой пропускной способности, чем POW-алгоритм в Биткоине, за счёт изменения алгоритма
  • 3. Масштабирование алгоритмов византийской отказоустойчивости (Byzantine Fault Tolerance, BFT): решения, основанные на BFT-алгоритмах, но с более простыми сообщениями, нежели в алгоритмах Practical Byzantine Fault Tolerance, PBFT
  • 4. Масштабируемые блокчейны: решения, которые ослабляют требование того, что узлы валидации/майнинга должны знать всю историю транзакций. Благодаря этому пропускная способность системы может возрастать с увеличением размера сети и, следовательно, лучше масштабироваться, чем системы трёх вышеупомянутых типов

Масштабирование Bitcoin

Все мы знаем, что Биткоин плохо масштабируется. Потому что дизайн POW (proof-of-work), лежащий в основе работы Биткоина, это не позволяет. В Биткоине POW используется как метод случайного определения следующего действительного (valid) блока, то есть все узлы «работают» (обеспечивают доказательство проделанной работы, POW) в течение определённого времени, чтобы определить победителя. Более того, новый блок должен быть синхронизирован со всей сетью, чтобы каждый узел мог (плюс-минус) конкурировать с другими в гонке за следующий блок. По сути, POW Биткоина обладает каскадной структурой, как на рисунке ниже.

Что на самом деле означает «масштабируемость» в мире блокчейна? Масштабирование Bitcoin. Фото.

Каскадная структура POW Биткоина запускает алгоритм консенсуса только после того, как все узлы закончат получать и проверять все блоки.

То, что синхронизация занимает 1 минуту, когда длительность работы POW составляет 10 минут (как в Биткоине) — это нормально. Но Биткоин больше не будет честным и безопасным, если время синхронизации будет сопоставимо с каждым циклом POW, что произойдёт, если размер блока увеличится или интервал блока значительно уменьшится — например, до 1 минуты. В таком случае в сети появится много форков, ответвлений, что в итоге приведёт к очень долгому времени подтверждения и снижению уровня безопасности.

Другими словами, неочевидное ограничение Биткоина заключается в том, что время каждого раунда работы алгоритма консенсуса должно быть значительно больше периода синхронизации. Сколько времени уйдёт на синхронизацию — зависит не только от дизайна алгоритма консенсуса, но и в значительной степени от характеристик основной сети, например, от пропускной способности, задержки, топологии, уровня децентрализации. В работе ‘On scaling decentralized blockchains‘ (О масштабировании децентрализованных блокчейнов) подсчитано, что Bitcoin мог обеспечить не больше 27 транзакций в секунду на сети Bitcoin в 2016 году. Это ограничение может быть неприменимо к отдельному альткоину, использующему тот же алгоритм POW для достижения консенсуса, или даже к современному Bitcoin, так как сети отличаются по размеру или уровню децентрализации. Однако вышеупомянутое ограничение остается в силе. Следовательно, «наивные» подходы, которые увеличивают блок (привет BCH — от редакции) или уменьшают интервал между блоками, могут «масштабировать» Биткоин совсем чуть-чуть.

Масштабирование POW

Для решения проблемы, изложенной выше, предлагаются новые схемы POW, в которых безопасность системы не зависит от синхронизации новых блоков, как показано на рисунке ниже. Другими словами, период согласования (достижения консенсуса) не обязательно должен быть значительно больше времени синхронизации, его можно оставить примерно или в точности таким же. Например, в Bitcoin-NG консенсус используется только для определения лидера раунда вместо целого набора транзакций. Таким образом, синхронизация транзакций может выполняться параллельно и может использоваться больший размер блока. Другие похожие блокчейны в этой категории имеют Hybrid Consensus, Byzcoin и GHOST.

Что на самом деле означает «масштабируемость» в мире блокчейна? Масштабирование POW. Фото.

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

POS (proof-of-stake)

Мы можем включить некоторые новые схемы POS в категорию масштабируемого POW с точки зрения масштабируемости. Всё потому, что в таких системах консенсус в сети достигается с помощью механизмов выбора лидера, которые основаны на генераторах случайных чисел и которым не требуется много времени для достижения справедливого выбора. Следовательно, у них нет ограничения в том, что «период консенсуса должен быть значительно больше времени синхронизации», и можно сразу перейти к большому размеру блока, как в решениях масштабирования POW. Среди известных проектов: Ouroboros, Snow White, Dfinity и Algorand.

Масштабирование BFT

Алгоритмы византийской отказоустойчивости (BFT) — это семейство алгоритмов консенсуса, которые могут допускать произвольное поведение ненадежных узлов, что позволяет честным узлам достигать консенсуса в ненадёжных сетях. Всё началось с задачи византийских генералов, предложенной Лесли Лэмпортом в начале 80-х. Однако из-за отсутствия «реальных» случаев применения практическая версия BFT появилась только в 1995 году и получила название «практической византийской отказоустойчивости» (PBFT).

PBFT — это алгоритм, имеющий сложность сообщения O(N²), как показано на следующем рисунке. N здесь — это общее число узлов проверки/майнинга в сети. На рисунке ниже показаны пять шагов в каждом раунде согласования (консенсуса), а стрелка представляет сообщение, отправляемого с одного узла на другой. Можно заметить, что для достижения консенсуса по одному сообщению это сообщение сперва должно быть передано всем узлам сети, а затем каждая нода (узел) должна оповестить каждую другую о сообщении.

Что на самом деле означает «масштабируемость» в мире блокчейна? Масштабирование BFT. Фото.

Одним из главных недостатков PBFT является то, что он плохо масштабируется в зависимости от размера сети из-за сложности сообщения O(N²). Легко обнаружить, что количество сообщений, отправляемых между узлами для каждой транзакции, будет расти в квадрате относительно роста количества проверяющих сеть узлов. И поскольку пропускная способность может расти только пропорционально количеству узлов, пропускная способность будет уменьшаться по мере роста сети, и в принципе её нельзя будет использовать в сети с более чем, скажем, 50 узлами.

Для решения этой проблемы было предложено несколько идей, масштабирующих классические алгоритмы BFT. Первая попытка получила название спекулятивной (или предположительной) BFT. Идея очень проста: сперва узлы предполагают, что состояние сети хорошее и что среда доверенная, и используют более простые и эффективные схемы для достижения консенсуса. Если попытка в таком случае не удаётся, они переключаются обратно на более «дорогостоящий» PBFT. Это эквивалентно размену «худшей из задержек» на «лучшую из возможных пропускную способность». Отметим, что этот тип BFT на примере, допустим, Zyzzyva, существовал еще до концепции блокчейна. Поскольку проблема масштабируемости становится всё более и более важной, идея спекулятивной византийской отказоустойчивости была пересмотрена и принята на вооружение практиками и исследователями блокчейна для построения таких систем, как Byzcoin, Algorand и Thunderella.

Что на самом деле означает «масштабируемость» в мире блокчейна? Масштабирование BFT. Фото.

Zyzzyva спекулятивно использует схему сложности сообщения O(N) для достижения консенсуса

Вторая идея заключается в намеренном удалении избыточности в процессе BFT за счёт использования информационно-теоретического инструмента — кодирования со стиранием. Он может повысить эффективность использования пропускной полосы. К примеру, Honeybadger-BFT попадает в эту категорию.

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

Что лучше: масштабируемый POW (POS) или масштабируемая BFT

Хотя схемы масштабируемого POW (POS) и масштабируемой BFT, упомянутые выше, могут отличаться как по форме, так и по концепции, они могут иметь схожую производительность с точки зрения пропускной способности. В идеале оба подхода должны максимально использовать пропускную способность для передачи сообщений и обеспечивать беспрепятственную сложность сообщений O(N). 100-1000 транзакций в секунду (TPS) в сети с сотнями узлов (нод) будет грубым приближением пропускной способности масштабируемого POW (POS) или масштабируемой BFT. Другими словами, если вы видите термин «масштабируемый блокчейн», скорее всего, он будет относиться к двум этим типам «масштабируемости».

Направленные ациклические графы (DAG)

Многих удивит, что алгоритмы консенсуса на базе DAG также попадают в эту категорию, поскольку многие считают, что их вполне можно масштабировать горизонтально. Но факт заключается в том, что большинство DAG, независимо от того, являются они академическими предложениями по типу Phantom, Conflux или Avalanche, или промышленными проектами по типу IOTA и Hedera Hashgraph, они требуют, что все сообщения были известны каждому углу. Phantom, Conflux и IOTA можно рассматривать как усовершенствованные версии GHOST (масштабируемый POW), обеспечивающие лучшее распараллеливание консенсуса и синхронизацию. Avalanche и Hedera Hashgraph можно рассматривать как алгоритмы спекулятивной BFT, которые выдают высокую пропускную способность с менее строгими предположениями BFT.

Горизонтальные блокчейны (scale-out)

Эта концепция больше напоминает первоначальное определение «масштабируемого» в распределённых системах, в том смысле, что как масштабируемый горизонтально (scale-out) блокчейн, так и масштабируемая распределённая система с радостью предлагают более высокую пропускную способность по мере роста сети. Принципиальное различие между ними заключается в том, что масштабируемость в распределённых системах требует линейного роста производительности системы вместе с числом серверов (узлов), а это по сути является недостижимым для блокчейна по причине децентрализации.

И поэтому исследователи блокчейна стремились к более низкому уровню масштабируемости, чтобы пропускная способность сети росла сублинейно с увеличением размера сети. В результате получались схемы, которые сегодня называются «масштабируемыми горизонтально блокчейнами». Возможно, вы не слышали об этом самом горизонтальном масштабировании (scale-out), но наверняка слышали о «шардинге», Lightning Network и Ethereum Plasma. Их все можно рассматривать как горизонтальные подходы к решению вопроса масштабируемости блокчейна.

В масштабируемых горизонтально блокчейнах некоторые сообщения могут никогда не достичь некоторых узлов. Здесь под «узлами» мы подразумеваем тех, кто участвует и в валидации, и в консенсусе. В контексте Биткоина это будет означать, что майнеры не должны знать и подтверждать все транзакции. Серьёзным следствием такого параметра будет то, что растёт риск двойной траты, поскольку монеты, потраченные в транзакции, можно потратить снова в узлах, которые не знают об этой транзакции. Чтобы предотвратить двойные траты и, в то же время, сохранить параметр, нам понадобится, чтобы некоторые узлы в сети проверяли транзакции от лица других, что фактически возвращает определённый уровень централизации в систему. В результате под угрозой оказывается безопасность или децентрализация. Эту проблему называют «трилеммой масштабируемости блокчейна». Из-за трилеммы были споры о том, стоит ли нам вообще использовать горизонтальные схемы масштабирования.

Что на самом деле означает «масштабируемость» в мире блокчейна? Горизонтальные блокчейны (scale-out). Фото.

Трилемма масштабируемости блокчейна

Как мы уже упомянули в некоторых схемах горизонтального масштабирования, есть две популярные стратегии разработки и реализации горизонтального блокчейна: одна — через шардинг и другая — через off-chain схемы, то есть такие, которые проводятся не на основном блокчейне.

Шардинг (sharding) — это разделение всей сети на подсети, «шарды» или сегменты, где узлы в каждой подсети используют локальный ledger, то есть книгу блоков. В идеале каждому узлу нужно знать, проверять и хранить сообщения, передаваемые только в пределах его собственного сегмента, а не все. Можно представить шардинг как разбиение исходного блокчейна на меньшие блокчейны, которые менее безопасны, так как меньше узлов проверяют транзакции и участвуют в консенсусе.

Таким образом, самые большие проблемы стратегии шардинга следующие: 1) как защитить каждый шард; 2) как шарды могли бы эффективно и безопасно взаимодействовать для обработки транзакций между шардами. Например, если какие-нибудь криптовалюты перемещаются из шарда А в шард Б, получатель в шарде Б должен запросить действительность валют у множества узлов из шарда А, чтобы не попасться на уловку злоумышленников. Для решения этих двух проблем предлагалось много решений, достаточно перечислить некоторые: Omniledger, Chainspace, Rchain, шардинг для Ethereum, распространяться о них мы будем в другой статье.

Схемы вне блокчейна (off-chain), внешние решения надстройки, в значительной степени базируются на идеях Lightning Network, которая использует некоторые хитрые приёмы для активации отдельного канала вне блокчейна между двумя узлами для быстрых переводов — без необходимости регистрировать каждую транзакцию между ними на блокчейне Bitcoin. Однако такое удобство сопряжено с некоторыми издержками, а именно: обе стороны должны заранее внести депозит на блокчейн, чтобы открыть оффчейн-канал между собой. С тех пор предлагалось множество подобных внеблокчейновых схем, предлагающих проведение быстрых платежей. В частности, сторонам позволяли взаимодействовать посредством других типов сообщений, например, транзакций с множеством сторон (multi-party transactions), транзакций условных платежей (conditional payment transactions) и транзакций на смарт-контрактах (smart contract transactions). Таким образом, остаётся лишь задача спроектировать и эффективно развернуть такие механизмы за пределами блокчейна с применением принудительных мер на блокчейне для различных типов сообщений. Из обсуждаемых проектов: Plasma, Polkadot, Liquidity.

Что лучше: шардинг или внеблокчейновые платежи?

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

Фактически, термин «консенсус» состоит из двух свойств: согласованность (соглашение) и жизнеспособность (доступность). Первое означает, что два честных узла не должны иметь разногласий по поводу содержания сообщения. Последнее означает, что если честный узел знает сообщение, все остальные честные узлы в конечном счете тоже о нём узнают. Как для шардинга, так и для внеблокчейновых схем жизнеспособность оказывается скомпрометированной, поскольку о некоторых сообщениях узнают не все честные узлы. Разница между ними в том, как они достигают согласованности. В частности, шардинг гарантирует согласованность в шарде с определённым ухудшением безопасности. С другой стороны, решения вне цепи блоков не дают жёсткой гарантии согласованности. Вместо этого согласованность зависит от некоторого экономического принуждения, такого как депозит на основной цепи, и штрафного механизма, если кто-то ведёт себя плохо за пределами блокчейна.

VAPOR

Помимо шардингового и внеблокчейнового подходов, мы недавно предложили ещё одно решение для горизонтального масштабирования: VAPOR. Эта система основана на важном допущении под названием «рациональность», которое мы наблюдали на имеющихся системах блокчейна. В частности, мы находим, что большинство систем блокчейна рассматривают особый тип сообщений — транзакций, и большинство систем по умолчанию подразумевают, что участники блокчейна рациональны в отношении транзакций. К примеру, если Алиса рациональна и если она хочет что-то купить у Боба, после того, как она осуществит платежную транзакцию Бобу, ей нужно будет предоставить подлинность этой транзакции Бобу. И Боб, если он разумен и рационален, продаст свой товар только после того, как проверит, что сделка действительно подтверждена и подлинна. Мы называем это «рациональностью в передачи ценности». VAPOR использует «рациональность» в системе передачи ценности для масштабирования без ущерба для безопасности и децентрализации. Другими словами, VAPOR может использоваться в качестве полностью защищённой и децентрализованной системы ценностей, то есть в качестве криптовалюты, без необходимости каждого узла знать, подтверждать и хранить все транзакции. Однако у этой системы есть ограничение в функциональности, поскольку её можно использовать только для передачи ценности — в качестве «денег», чтобы допущение о «рациональности» соблюдалось.

Обсуждение

Мы надеемся, что теперь концепция масштабируемости блокчейна стала вам понятнее. Самое важное, что нужно из этого всего вынести: так называемый «масштабируемый блокчейн» ничего не скажет вам о его подлинной масштабирумости, если только его не сравнивают с Биткоином, POW Биткоина, классическим BFT или негоризонтальным блокчейном.

Критерии определения масштабируемости блокчейна

Весьма трудно судить о «масштабируемости» системы блокчейна без каких-либо теоретических знаний и опыта в этой области. Тем не менее, я думаю, что следующие три критерия могут быть использованы для оценки того, обладает ли конкретная блокчейн-система тремя типами масштабируемости, которые мы обсудили:

      Использует ли блокчейн POW Биткоина в качестве типа консенсуса? Если да, есть ли ограничение, что узлы всегда должны синхронизироваться с новейшими блоками, иначе их мощность майнинга будет потрачена впустую? Если да, это не масштабируемый POW.
      Использует ли блокчейн византийскую отказоустойчивость (BFT) в качестве типа консенсуса? Если да, есть ли какая-нибудь хитрая уловка, которая позволяет уменьшить сложность сообщения? Если нет, это не масштабируемая BFT.
      Нужно ли знать каждый кусочек сообщения каждому проверяющему узлу/майнеру? Узел в данном случае означает узлы, которые участвуют в консенсусе, то есть узлы, которые могут генерировать блоки — например, майнеры в контексте криптовалют. Если да, это не горизонтально масштабируемый блокчейн.

Так сколько транзакций в секунду может быть на блокчейне?

А теперь позвольте мне дать чуть более конкретное представление о масштабируемости с точки зрения TPS, проводимых транзакций в секунду. Как мы все знаем, если блокчейн не масштабируется горизонтально, каждый узел, участвующий в консенсусе, должен получить все сообщения. Следовательно, пропускная способность системы будет ограничена наименее способным узлом в сети. Следовательно, пропускная способность домашнего персонального компьютера, то есть 100-1000 TPS, будет вполне разумным ожиданием максимального уровня TPS, который может достичь полностью децентрализованный блокчейн. Другими словами, если не масштабируемый горизонтально блокчейн заявляет о пропускной способности в 10 тысяч TPS, это говорит о том, что система должна быть достаточно централизованной, поскольку узлы с меньшей пропускной способностью не смогут к ней присоединиться. С другой стороны, если блокчейн масштабируется горизонтально, его пропускная способность в теории не ограничена. Однако стоит остерегаться компромиссов между безопасностью, децентрализацией и функциональностью, поскольку невозможно одновременно угодить им всем.

Слой 1 или слой 2?

«Что будет лучшим решением для масштабирования блокчейна, слой 1 или слой 2?» — этот вопрос вызывает столько горячих споров, что мы не могли его не задать, обсуждая «масштабируемость». Однако мы не будем называть их конкретно, поскольку определение слою 1 и слою 2 (layer 1/layer 2), как таковое, не существует. Ограничимся кратким описанием.

В частности, layer 1 используется для представления всех усилий по масштабированию блокчейнов путем изменения существующих алгоритмов консенсуса или предложения новых алгоритмов консенсуса, которые включают все алгоритмы, описанные в этой статье, за исключением внеблокчейновых схем. Однако, как мы уже объяснили, их достижимая «масштабируемость» сильно разнится. С другой стороны, подходы layer 2 по большей части представлены внеблокчейновыми схемами. Будет неуместно сравнивать «слой 1» и «слой 2» с точки зрения масштабируемости, поскольку только одна категория «слоя 1», а именно шардинг, приближается к тому уровню «масштабируемости», что и «слой 2».

На сегодняшний день масштабируемость блокчейна остаётся открытой проблемой без идеального решения. Теоретически, все существующие схемы имеют свои плюсы и минусы и плохо масштабируются во всех ситуациях. Более того, безопасность некоторых схем либо не доказана, либо доказана при определённых теоретических условиях. Да что там говорить: ни одна масштабируемая схема, особенно обладающая строгими доказательствами безопасности, не была успешно реализована и протестирована в реальной жизни из-за трудностей реализации.

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

Способы масштабирования биткоина и других криптовалют

Масштабирование криптовалют

Криптовалюты становятся все более популярными и постепенно внедряются в повседневную жизнь. При этом возникают определенные проблемы с тем, чтобы качественно и быстро обслуживать все транзакции.

Например, транзакции биткоина увеличились в несколько раз: со 100 тысяч до 10 миллионов за пять лет. В сети Эфириум количество транзакций поднялось до 500 тысяч.

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

Проблема масштабируемости криптовалют

BTC и ETH, чтобы конкурировать с более распространенными платежными системами, вроде Visa и PayPal, необходимо серьезно активизировать технологии, которые отвечают за время проведения времени транзакций.

Система TpS
PayPal 193
Visa 1667
Ethereum 20
Bitcoin (без segwit) 7

Единственный способ улучшить эти цифры — работать с масштабируемостью. Эти проблемы можно сгруппировать таким образом:

  • время добавления транзакции в блок,
  • время достижения консенсуса.

Время добавления в блок

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

Однако, поскольку BTC становится более популярным, в особенно высокий наплыв пользователей это становится более трудно. Когда майнеры добывают блок, они вольны выбирать, что поместить в него первее. Отсюда высокая комиссия продвигает блок в очереди: это может быть доступно для держателей больших сумм, но не так выгодно при мелких платежах.

Способы масштабирования биткоина и других криптовалют

Способы масштабирования биткоина и других криптовалют

Теперь про Ethereum. Теоретически, сеть может обрабатывать 1000 транзакций в секунду. Однако на практике ограничивается 6,7 миллионами газа в каждом блоке. Статистику можно посмотреть на Etherscan.

Газ — это плата за вычислительные усилия, которые потребуются для решения смарт-контракта

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

Время достижения консенсуса

Сейчас все криптовалюты основаны на блокчейне с одноранговой структурой. Участникам, так называемым нодам, не предоставляются дополнительные специальные привилегии. Нет центральной власти и нет иерархии.

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

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

Способы масштабирования биткоина и других криптовалют

Но в отличие от людей, ноды не берут информацию на веру: получая информацию от узла А, что транзакция действительна, узел B выполнит свои вычисления, чтобы проверить транзакцию. Этот процесс занимает много времени. Проблема в том, что чем больше нод, тем больше времени нужно отвести для подтверждение транзакции.

Это особенно относится к Ethereum, потому что в этой сети наибольшее количество нод среди всех криптовлют из-за популярности ICO.

Существующие решения масштабируемости

  • Segwit
  • Увеличение размера блока
  • Шардинг
  • Доказательство доли владения PoS
  • Оффчейн-каналы
  • Plasma

SegWit

Segwit — это сайдчейн, который идет параллельно основной цепи и содержит подписи к транзакциям. Тогда в блоке освобождается дополнительное место.

  • Увеличивает количество транзакций, которые можно добавить в блок;
  • Снижает транзакционные сборы;
  • Уменьшает размер каждой отдельной транзакции;
  • Транзакции могут подтверждаться быстрее, потому что время ожидания будет уменьшаться;
  • Помогает в масштабируемости;
  • Поскольку количество транзакций в каждом блоке будет увеличиваться, может увеличить общие сборы майнеру за блок;
  • Помогает активировать Lightning;
  • Устраняет проблему квадратичного хеширования (проблема от увеличения размера блока, когда, например, в 2 раза больше транзакций -> в 2 раза больше подписей, что еще увеличивает время транзакции).
  • Майнеры получат меньшую плату за каждую отдельную транзакцию;
  • Реализация сложна, все кошельки должны сами реализовать segwit;
  • Увеличение использования ресурсов, так как емкость, транзакции, пропускная способность — все увеличится;
  • Неоднородная поддержка сообществом, что ведет к форкам;
  • Сложное обслуживание. Сайдчейн, содержащая данные подписи, должна также поддерживаться майнерами. Однако, в отличие от основного блокчейна, они не имеют финансовой выгоды от этого на данный момент.

Увеличение размера блока

Раз проблема биткоина и эфириум в ограничении размера блока, почему бы просто не увеличить его? Изначально, BTC не должен был иметь блок в 1 Мб, но Сатоши Накамото установил ограничение, чтобы сеть не погрязла в спам-транзакциях.

Реализация увеличенного блока породила много дебатов в сообществе биткоина. Аргументы разных сторон таковы.

Против увеличения размера блока:

  • Майнеры потеряют стимул, потому что сборы будут уменьшаться: размеры блоков увеличатся, транзакции будут легко добавляться. Есть опасения, что хэш-рейт сети снизится, так как майнеры уйдут на более прибыльные валюты.
  • Биткоины не должны использоваться в повседневных целях: некоторые члены сообщества не хотят, чтобы BTC использовался для обычных транзакций. Эти люди считают, что монеты имеют более высокую цель.
  • Это приводит к расколу сообщества, форкам, а вместе с ними к большим спекуляциям и мошенничеству.
  • Это приведет к увеличению централизации: поскольку размер сети будет увеличиваться, объем вычислительной мощности, необходимой для майнинга, также будет увеличиваться. Это сделает неконкурентными все небольшие пулы.

Аргументы за увеличения размера блока:

  • Увеличение размера блока на самом деле работает на пользу майнера: увеличение размера блока будет означать увеличение транзакций на блок, что, в свою очередь, увеличит общую сумму транзакционных сборов.
  • BTC должен расти и быть более доступным для «простого человека». Если размер блока не изменится, он будет использоваться исключительно богатыми и крупными корпорациями. Это никогда не было целью биткоина.
  • Изменения происходят постепенно: коллапса не будет, потому что система будет изменяться поэтапно.
  • Segwit не является постоянным решением.

Увеличение размера блока было также рассмотрено для Ethereum, но из-за многих причин сообщество отказывается от этого:

  • Во-первых, главное, что препятствует масштабируемости Ethereum, — это скорость консенсуса среди узлов. Увеличение размера блока все равно не решит эту проблему. Фактически, по мере увеличения количества транзакций на блок количество вычислений и проверок на ноду также увеличится.
  • Для обеспечения большего количества транзакций размеры блоков необходимо периодически увеличивать. Это централизирует систему больше.
  • Наконец, увеличение размера блока будет через хардфорк, что может разделить сообщество. В последний раз, когда это было в Эфириуме, все сообщество раскололось и появился ETC. Люди не хотят, чтобы это повторилось.

Proof Of Stake

Сейчас одна из самых важных вещей — это переход Эфириума от PoW к PoS.

Для перехода к PoS в сети будет постепенно реализовываться Casper. Среди плюсов, кратко назовем:

  • Снижает затраты на майнинг, более экологично.
  • Нет преимуществ у ASIC, у кого хватило денег на лучшее оборудование.
  • Снижает вероятность атаки 51%.
  • Делает невыгодным мошенничество при подтверждении.
  • Ускоряет создание новых блоков и всего процесса.

У POS-майнеров не будет платы за блок, они могут зарабатывать только за транзакционные сборы. Это стимулирует их увеличить размер блока, чтобы получить больше транзакций (посредством управления газом).

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

Однако весь этот переход не лишен проблем. Одно из самых больших опасений — майнеры могут сделать форк до IceAge.

Sharding / Шардинг

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

Шардинг разбивает транзакцию на части и распространяет ее по сети. Узлы работают на отдельных частях. Это уменьшает общее время проведения транзакции. Блоки связываются через особый протокол.

Блок перед шардингом выглядит так: заголовок и тело с транзакциями. Корень Меркля всех транзакций будет в заголовке блока.

Изначально блокчейн создавался в одном уровне взаимодействия: от блока к блоку (один блок связывается с другим и так далее). Шардинг предполагает два уровня взаимодействия.

Первый уровень: группа транзакций, у каждого осколка, шарда (shard, часть всей транзакции) есть своя группа. Группа имеет свой идентификатор, который переносится на все составные элементы, включая транзакции.

Второй уровень: простой блокчейн, которая принимает транзакционные группы, а не транзакции.

Проблемы внедрения шардинга:

  • Должен быть механизм, чтобы знать, какой узел обрабатывает каждый «осколок». Нужен безопасный и эффективный способ обеспечить параллелизма и безопасности.
  • Согласно Владу Замфиру (ответственный за Casper в Ethereum), в системе PoS это осуществить легче.
  • Если одна конкретная транзакция разбивается на осколки и распределяется по узлу А и узлу В, то узел А должен будет придумать какой-то механизм доказательства, что обработка завершена.

Оффчейн-каналы

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

Каковы требования для создания нового канала вне сети?

  • Сегмент состояния на блокчейне блокируется посредством нескольких подписей или какого-то смарт-контракта.
  • Участники взаимодействуют друг с другом, подписывая транзакции между собой, не передавая ничего майнерам.
  • Затем весь блок транзакций добавляется к блокчейну.

Главный протокол для масштабирования на данный момент lightning netwok. Подробнее механизм его работы мы описали в отдельной статье.

Plasma Ethereum

Это новый слой архитектуры Ethereum: сначала lightning, затем plasma и последним сам блокчейн.

Плазма представляет собой ряд контрактов, которые выполняются поверх основной цепной цепи Ethereum. Чтобы образно представить это явление, можно подумать о главном блокчейне как о корне, а плазме как о ветвях.

Способы масштабирования биткоина и других криптовалют

Информация с blockgeeks. Разные контракты (приватный блокчейн, децентрализованная биржа, сеть, микроплатежи и т.д.) приходит к главной цепи.

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

Плазма не только экономит место, но и увеличивает скорость транзакций по экспоненте. Если это будет правильно реализовано, это может быть одним из самых революционных изменений, когда-либо сделанных в Ethereum и криптовалюте в целом.

Могут ли эти варианты решить проблему масштабируемости? Еще увидим.

Проблемы масштабирования в блокчейне

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

Для широкого применения криптовалюты должны иметь высокую пропускную способность транзакций. В система Visa — 5K tps. Если рассматривать криптовалюту, как средство оплаты или полноценную систему для децентрализованных приложений, то надо ориентироваться на порядки в несколько тыс. транзакций в секунду.
В декабре 2017 г. Хайп на рынке привел к очень высокому повышению комиссии. Трансфер в сети биткойна стоил десятки долларов. И в данный момент большинство самых известных криптовалют имеют проблемы с масштабируемостью.

Биткойн.

Максимум 1 мб блок. В блок помещается около 2000 транзакций, что дает около 3.5 транзакций в секунду. В 2016–2017 г. было очень много разговоров о пропускной способности биткойна и в итоге было запланировано 2 апгрейда сети

  1. В Августе 2017 г. был проведен софтфорк SegWit (Segregated Witness) https://ru.wikipedia.org/wiki/Segregated_Witness , который дает возможность выносить часть информации о транзакции за пределы блока, что позволяет увеличивать пропускную способность вплоть до 2 раз.
  2. В ноябре 2017 г. планировали сделать хардфорк Segwit2x увеличив размер блока в 2 раза, но из-за отсутствия консенсуса у комюнити от хардфорка отказались.

Не все клиенты пользуются Segregated Witness (т. к. это был сотфорк, а не хардфорк, то осталась обратная совместимость и многие не используют SegWit в транзакциях), то реальная пропускная способность увеличилась лишь частично. В теории имеется на данный момент 7 tps (transactions per second) и вряд ли это значение в ближайшем будущем будет сильно увеличено. Самый вероятный сценарий — LightningNetwork (о нем ниже).

Эфир.

Количество транзакций в эфире зависит от установленного лимита газа (совокупная мощность вычислений) на 1 блок. Сейчас это 8M. Это значение несколько раз менялось, было 3M и 5M. Существенно его не увеличить, т. к. ноды итак еле справляются. Размер блокчейна составляет около 1Тб. Пропускная способность около 15 транзакций в секунду и на данный момент это предел.

Основные способы увеличения пропускной способности криптовалют.

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

2. Офф-чейн транзакции.

2.1. Платежные каналы.

Часть транзакций можно не записывать в блокчейн, а писать туда лишь итоговый результат. Пример из жизни. Большая компания отдыхает в ресторане и в процессе заказывает около 50 позиций. При этом расчет идет не каждый раз за каждый заказ, а 1 раз в конце. Таким образом записывается лишь итоговый результат, но при этом опускаем некоторые детали, которые можно хранить вне блокчейна. Lightning Network — пример такой технологии. Позволяет очень сильно увеличивать пропускную способность, если вы доверяете тем агентам, с которыми имеете дело.

Существующие криптовалюты, с высоким tps

  1. реализовавшие PoS: NXT (запущен давно), Ardor (обновление NXT), Cosmos
  2. dPos: Bitshares, Steem, Lisk (запущены давно, Steem имеет перспективы, как блоги с системой репутации), EOS, Tezos, TRX
  3. DAG — ациклический граф: IOTA, Nano
  4. Централизованная, Ripple и ее “децентрализованное” ответвление Stellar

Наиболее ожидаемые решения проблемы масштабируемости криптовалют на данный момент

  1. В сети биткойн — Lightning Network, Sidechains (?)
  2. В сети эфир комбинация п. 3 и 4, т. е. Переход на PoS (алгоритм Casper) и шардинг
  3. Другие криптовалюты — уже запущенный EOS и Tezos. Ожидаемые Cardano (алгоритм Ouroboros), Cosmos (алгоритм Tendermint), Ark, Dfinity, Algorand, Hashgraph, Telegram Open Network и т. д.

Хотите узнать больше ? Присоединяйтесь на канал GoCripto

Возможна ли идеальная масштабируемость блокчейна?

Фото - Возможна ли идеальная масштабируемость блокчейна?

Масштабируемость – это программная возможность блокчейна уравновесить спрос и предложение. Соответственно, масштабирование — это улучшение системы до уровня, где этот коэффициент близок к единице.

Масштабируемость — это способность сети или базы данных увеличивать свою производительность в условиях сверхнагрузок. Существует вертикальное (за счет улучшения аппаратного обеспечения) и горизонтальное (за счет равномерного распределения нагрузки по мелким сегментам) масштабирование системы. Первое реализуется путем наращивания мощности центральных узлов, второе — программными методами.

Что такое масштабирование простыми словами

Проще всего это объяснить на примере Св. Петра, распределяющего души умерших между раем и адом.

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

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

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

2. Существует огромное количество привратников, которым делегированы полномочия Петра, имеющих с ним равные права и возможности. Клоны не нуждаются в синхронизации действий, поскольку имеют одинаковый программный код (это называется репликация, или полный дубликат). Малейшее изменение в алгоритме личности Петра автоматически меняет его дублирующих персонажей. В этом случае мы имеем дело с горизонтальным масштабированием.

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

Вертикально или горизонтально? Сложный выбор!

Вертикально или горизонтально? Сложный выбор!

Зачем масштабировать блокчейн криптовалют

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

Учитывая высокую волатильность цифровых денег, параметр скорости проведения платежа становится критическим.

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

Масштабирование на блокчейне биткоина

Протокол биткоина подразумевает отсутствие единого управляющего узла. Поэтому ускорить обработку транзакций путем увеличения пропускной способности центрального сервера невозможно.

PoW-блокчейн BTC может обрабатывать 5-8 транзакций в секунду, что катастрофически мало для спроса со стороны пользователей сети. А все популярные платежные системы для фиатных валют оперируют цифрами от 20 тысяч платежей в секунду.

Необходимость постоянной синхронизации между нодами накладывает ограничения на количество единовременно обрабатываемой информации: ретрансляция блоков по сети критически отражается на скорости работы всей системы. Это влечет за собой увеличение затрат владельцев нод — оборудование потребляет все больше мощности и требует постоянной модернизации.

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

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

Масштабирование через увеличение блоков

Первая попытка масштабирования блокчейна биткойна путем увеличения размера блоков произошла в 2015 году. Два разработчика, Гэвин Андресен и Майк Херн, предложили поднять допустимый размер блоков с 1 Мб до 8 Мб. То есть увеличить их вместимость и уменьшить общее количество. Эта идея была реализована путем запуска софтфорка, получившего название Bitcoin XT.

Теоретически, такое решение могло разогнать скорость проведения транзакций до 25 в секунду. Но форк поддержали менее 2% валидаторов (при необходимых 75%) и он почил в бозе, не прожив и года.

В 2016 году было озвучено предложение увеличивать блоки не сразу, а постепенно,

каждые два года. Программный форк получил название Bitcoin Classic и поддержку криптосообщества, но тоже не выдержал испытания временем. Его разработчики сами предложили майнерам переключиться на более перспективный вариант – Bitcoin Cash.

Третий софт-форк давал возможность выбирать размер блока путем голосования. Он назывался Bitcoin Unlimited, но имел в коде столько багов, что сложился, как карточный домик, при первой же DDoS-атаке в 2017 году.

Неудачное масштабирование путем увеличения блоков привело к тому, что управление блокчейном BTC чуть менее, чем наполовину, перешло в руки крупных майнинговых пулов. А это — прямая угроза для открытой атаки 51%.

Масштабирование на блокчейне эфира

Блокчейн криптовалюты ETH реализован как среда для создания и функционирования смарт-контрактов и выглядит бегуном на фоне неповоротливой сети биткойна: скорость обработки платежей на старте достигала 1000 в секунду.

Его создатель, Виталий Бутерин, предполагал, что сеть эфира будет использовать алгоритм консенсуса Proof-of-Work (доказательство работы). Но низкая масштабируемость базы данных и высокая комиссия за проведение транзакций вынудила его отказаться от PoW и разработать ETH 2.0 с использованием шардинга.

Этот вариант горизонтального масштабирования увеличил пропускную способность системы в 100 раз. Такая возможность была достигнута путем разделения информационного потока на несколько частей (шардов), которые можно распределить по независимым серверам.

Алгоритм консенсуса блокчейна эфира видоизменялся в сторону доказательства доли владения (Proof-of-Stake) и изменил майнерам стимулы для валидации.

После запуска рабочей версии Beacon Chain (нового варианта блокчейна) классический майнинг ETH потерял свою актуальность. Валидаторы вынуждены концентрировать свои ресурсы в залоговых активах, которые являются разновидностью стейкинга.

Это решение негативно отразилось на безопасности блокчейна ETH.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *