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

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

Важнейшим достижением блокчейна является то, что он решает вопрос о том, как гарантировать доверие между двумя несвязанными сторонами без необходимости в централизованной третьей стороне. Это было то, для чего он был создан. Однако у блокчейна нет волшебной пули, когда дело доходит до обработки транзакций. PayPal может обрабатывать около 200 транзакций в секунду (tps). VISA считает себя способной обрабатывать 56 000 т/с, хотя среднесуточные нагрузки близки к 2 000. Биткойн способен на ~ 7 транзакций в секунду, Ethereum 15–20 (меньше, если это токены, а не ETH). Это ставит сети намного ниже простого копирования результатов одного платежного процессора, оставляя мечту о массовом внедрении (для чего потребуются не десятки, а сотни тысяч транзакций в секунду) недосягаемой.

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

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

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

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

Все решения для масштабирования блокчейна, включая увеличение размера блока, сегментирование, каналы вне сети и решения для конкретных протоколов, такие как Lightning Network, должны оцениваться по трем критериям:

  • Остается ли сеть децентрализованной?
  • Сохраняется ли сеть в безопасности?
  • Позволит ли это или, по крайней мере, подготовить сеть к масштабированию до уровней, необходимых для массового внедрения?

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

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

Биткойн был в центре битвы за размеры блоков, но если мы хотим подготовиться к будущему, в котором блокчейн будет в центре «Web 3.0», то эти дебаты неуместны. Средний размер транзакции 500 байт при 2000 транзакций в секунду приведет к размеру блока 1 ГБ. Не существует подходящего размера блока, который мог бы обработать необходимый объем информации, не сталкиваясь с той же проблемой; в определенный момент размеры блоков становятся слишком большими для поддержания децентрализованной сети.

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

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

Шардинг

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

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

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

Поскольку сеть сегментирована, вычислительная мощность, необходимая для атаки каждой дочерней цепочки, значительно снижается, что увеличивает вероятность атаки 51%. Переход на Proof of Stake из Proof of Work призван помочь с сегментированием и, следовательно, масштабированием, но это, вероятно, приведет к объединению групп и той же проблеме, что и централизация майнеров.

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

Каналы состояния вне сети

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

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

Масштабирование без централизации

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

Распределенные системы можно масштабировать двумя способами:

  1. По горизонтали (добавить больше узлов);
  2. Вертикально (увеличьте ресурсы для каждого узла).

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

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

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

Альтернатива - продолжить путь, по которому невозможно будет добраться до желаемого пункта назначения.