Спор о масштабируемости Биткойна: контекст, решения и будущее

0
ПОДЕЛИТЬСЯ

Всем известный аргумент о «невозможности масштабировать биткойн» состоит в том, что в текущем воплощении сеть биткойна не способна поддерживать работу в режиме глобальной платежной системы с пропускной способностью в несколько тысяч операций в секунду. На сегодняшний день такая критика справедлива. Биткойн может обрабатывать не более 7 транзакций в секунду – сравните с Visa, которая обычно выполняет 2 000 транзакций в секунду (а потенциально способна выполнять до 56 000).

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

  • Можно ли «разогнать» биткойн до скорости выше 7 транзакций секунду?
  • Если это возможно, то как этого достичь?
  • Если существует несколько решений проблемы масштабирования, то какое из них оптимально?

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

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

Контекст

За годы работы сети биткойна было предложено множество решений проблемы масштабируемости. Одно из самых популярных и часто предлагаемых – увеличение размера блоков, который сегодня равен 1MB. Транзакции объединяются в блоки и подтверждаются узлами сети. Это означает, что более крупные блоки позволят «упаковывать» и единовременно обрабатывать больше транзакций (один блок проходит регистрацию в сети примерно каждые 10 минут). Размер блока биткойна в 1MB был установлен для ограничения спам-транзакций и DDoS атак (хотя этому не существует четких подтверждений, считается что Сатоши запрограммировал ограничение размера блока без предупреждения пользователей; он объяснил свое решение лишь позднее, отвечая на недоумение биткойн-сообщества). Тем не менее, вопрос об изменении размера блока долго был предметом жарких споров, поскольку больший размер сокращает количество майнеров, способных конкурировать за подтверждений транзакций). Как объясняют авторы BitcoinWiki, «Более крупные блоки делают содержание полных узлов более дорогостоящим. Поэтому увеличение размера приведет к снижению числа операторов полных клиентов и дает преимущество централизованным майнерам. Это, в свою очередь требует большего уровня доверия, что противоречит базовым ценностям Биткойна». Поэтому часть сообщества считает, что увеличение лимита на размер блока – это угроза для децентрализации сети.

Чуть позднее биткойн реализовал софт-форк (объяснение механизма форков тут) для активации перехода на обновление Segregated Witness (SegWit), способное устранить уязвимость Биткойна, известную как «проблема пластичности транзакций». SegWit отделяет данные подписи от других данных о транзакции. SegWit так же должна была облегчить масштабирование за счет двух факторов. Во-первых, она изменяла систему хранения данных в каждом блоке биткойна. Обновление позволило увеличить пропускную способность сети, сохранив совместимость с предыдущими версиями программного обеспечения биткойна. Во-вторых, она решала проблему эластичности транзакции, которая препятствовала внедрению других проектов на базе биткойна и «сети второго уровня» Lihtning Network.

Продолжающийся спор о размере блока биткойна привел к хард-форку в августе 2017 и созданию Bitcoin Cash, являющимся копией оригинального протокола, но с большими блоками (8MB).

Возможные решения

SegWit / Lightning

Как описано выше, обновление Segregated Witness (SegWit) было реализовано как софт-форк биткойна в июле 2017 и позволило удвоить количество информации, хранящейся в каждом блоке. Что ещё более важно для долгосрочного потенциала масштабируемости биткойна – SegWit сделало возможным создание сетей второго уровня, таких как Lightning Network. Как описано в «белой книге» Lightning Network:

«Lightning Network – это децентрализованная система для реализации мгновенных платежей в больших объёмах, способная устранить риск, связанный с делегированием ответственности за хранение средств доверенным третьим лицам. … Микро-платежи, или платежи размером менее нескольких центов, сейчас не могут стабильно подтверждаться, а размер комиссионных делает такие платежи невозможными. Lightning Network решает эти проблемы. Это одно из первых применений многосторонних смарт-контрактов (программируемых денег) с использованием встроенных сценариев Биткойна. Lightning Network – лидирующий технологический продукт в области многосторонних финансовых расчетов с использованием биткойна.»

Lightning Network решает проблему масштабируемости Биткойна, позволяя осуществлять транзакции «вне блокчейна», что снимает нагрузку с сети. Как сказано в «белой книге», это достигается следующим образом:

«Средства помещаются в двусторонний «канал» – биткойн-кошелёк, защищенный мульти-подписью. Этот канал представлен в виде записи в публичном реестре Биткойна. Для того, чтобы потратить хранящиеся в канале средства, обе стороны должны договориться о новом балансе. Текущий баланс сохраняется как самая последняя транзакция, подписанная обеими сторонами, имеющими право тратить средства, размещённые в канале. Чтобы провести платеж, обе стороны подписывают новую исходящую транзакцию и тратят средства из канала. Это аннулирует все предыдущие исходящие транзакции. Lightning Network не требует сотрудничества стороны-контрагента для выхода из канала. Обе стороны имеют возможность в одностороннем порядке закрыть канал, прекратив тем самым свои взаимоотношения. Поскольку все стороны имеют множество защищённых мульти-подписью каналов с разными пользователями сети, платеж можно послать любому участнику сети.»

Фактически Lightning Network дает сети Биткойна инструмент с функционалом смарт-контракта, делая возможными транзакции вне блокчейна.

Хотя Lightning всё ещё находится на ранней стадии развития, она уже продемонстрировала потенциал в области сокращения нагрузки на сеть Биткойна. Lightning Network также даёт технологическую основу для «внеблокчейновых решений второго уровня», таких как Plasma (аналогичная сеть платёжных каналов для Эфириума). Эти сети второго уровня демонстрируют вполне конкретный прогресс на пути к увеличению скорости транзакций в Биткойне.

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

Увеличение размера блоков предлагается в качестве решения проблемы масштабируемости уже много лет и неизбежно будет снова предлагаться в будущем. Споры о том, насколько увеличение блоков рискованно с точки зрения потери децентрализации, продолжатся. С практической точки зрения важно иметь в виду, что увеличение размера блока приведёт лишь к линейному увеличению числа транзакций в секунду. «Раздувание» блока Биткойна до 8MB (как сделали разработчики Bitcoin Cash) позволит увеличить пропускную способность лишь до 56 транзакций в секунду (7 тр/сек * 8), в то время как международные платежные сети типа Visa рутинно обрабатывают 2 000 транзакций в секунду. Это значит, что увеличение блока – это лишь временное решение важной структурной проблемы, которую, вероятно, лучше решать другими способами (такими как сети второго уровня).

Будущее

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

Источник

 

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here