Возможна ли идеальная масштабируемость блокчейна?
Масштабируемость – это программная возможность блокчейна уравновесить спрос и предложение. Соответственно, масштабирование - это улучшение системы до уровня, где этот коэффициент близок к единице.
Масштабируемость - это способность сети или базы данных увеличивать свою производительность в условиях сверхнагрузок. Существует вертикальное (за счет улучшения аппаратного обеспечения) и горизонтальное (за счет равномерного распределения нагрузки по мелким сегментам) масштабирование системы. Первое реализуется путем наращивания мощности центральных узлов, второе - программными методами.
Что такое масштабирование простыми словами
Проще всего это объяснить на примере Св. Петра, распределяющего души умерших между раем и адом.
Известно, что этот апостол получил два ключа: золотой (от ворот рая для праведников) и серебряный (от ада для нераскаявшихся грешников). Но легенда не раскрывает тайну, как ему удается быстро просканировать новопреставленную душу и перенаправить ее по назначению, если ежесекундно к нему на суд поступают тысячи умерших. Ведь встреча души с Петром всегда происходит один на один, и им необходимо время, чтобы познакомиться поближе и заглянуть в Книгу, где записаны все хорошие и плохие поступки человека.
Если допустить, что здесь не обошлось без системного масштабирования, то мы можем предположить, что:
1. Скилл Петра прокачивается пропорционально приросту населения и, соответственно, общей смертности. Он наращивает свою пропускную способность и уменьшает время общения с душой путем какого-то неизвестного темпорального сдвига таким образом, что для умершего система временных рамок остается неизменной. Это похоже на вертикальное масштабирование.
2. Существует огромное количество привратников, которым делегированы полномочия Петра, имеющих с ним равные права и возможности. Клоны не нуждаются в синхронизации действий, поскольку имеют одинаковый программный код (это называется репликация, или полный дубликат). Малейшее изменение в алгоритме личности Петра автоматически меняет его дублирующих персонажей. В этом случае мы имеем дело с горизонтальным масштабированием.
И в одном, и в другом случае пропускная способность Св. Петра остается высокой вне зависимости от увеличивающейся нагрузки.
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.
Но для системы, где создаются популярные приложения, вызывающие ажиотажный спрос среди пользователей, такая архитектура является меньшим из зол.