Одна из характерных тенденций современно мира – консолидация власти и ресурсов в пределах какой-либо одной институции. С одной стороны, это позволяет более эффективно достигать поставленного результата, но с другой – ценой ущемления свободы человека в целом и ограничения ему доступа к важной информации.
И технологии #блокчейн – одни из немногих способов эффективно этой тенденции противостоять. Хотя бы на базовом уровне – финансовом взаимодействии. Но чем активнее эти технологии использовались – тем чётче вырисовывалась основная проблема – не слишком эффективная масштабируемость.
Проблема масштабируемости
Сеть блокчейн, по своей сути – децентрализованная учётная #книга, в которой каждый элемент сети хранит всю имеющуюся в ней информацию. Это гарантирует, что утрата одного из узлов не повлияет на общую функциональность, а постоянные проверки на достоверность – предотвращают несогласованное внесение изменений в хранимую информацию.
Но чем больше компьютеров, тем больше времени тратится на эти проверки и на передачу данных каждому из них. Скорость падает, пропускная способность уменьшается. И чтобы как-то это контролировать, началась повышаться стоимость каждой транзакции, чтобы не «забивать канал» мелкими переводами. Однако это было лишь временное решение.
Собственно, это и есть проблема масштабирования – чем больше в сети узлов, тем хуже её пропускная способность и медленнее работа в целом. Именно с такой ситуаций и столкнулись пользователи #Bitcoin в 2017 году и позднее, когда рост популярности криптовалют привёл к значительному увеличению количества активных узлов.
Начались активные дебаты на тему того, как с данной ситуацией справиться. И было разработано два разных подхода.
Первый – увеличение размеров блока и оптимизация хранимой в нём информации. Чем больше транзакций в блоке – тем меньше нужно блоков в целом. Решение эффективное, но только в короткой перспективе, поскольку давало линейное улучшение, а количество пользователей росло экспоненциально. И очень скоро понадобилось бы увеличивать блоки снова и снова. Не говоря о том, что увеличение блоков привело бы к усложнению процесса #майнинга и снижению конкурентоспособности машин с малыми вычислительными мощностями.
Второй – внедрение дополнительных внешних протоколов и оптимизация хранения информации. То есть – сначала некоторое количество транзакций собирается в одном внешнем блоке, затем – вместе с несколькими такими же блоками кодируется в протоколе Биткойн. Обратная дешифровка тоже возможна – для привычной проверки достоверности информации. То есть, данные кодируются дважды, что не только повышает пропускную способность, но и увеличивает безопасность в целом.
Именно второй подход и лёг в основу сети Lightning, позволившей резко увеличить пропускную способность сети Биткойн. Однако эксперты полагают, что это тоже только временное решение, поскольку дальнейший рост числа активных пользователей может ещё сильнее увеличить нагрузку на сеть. И понадобятся новые улучшения для масштабирования - Schnorr signatures, Liquid sidechains и другие подходы, которые пока только тестируются.
Однако какое-то время, прежде чем пропускная способность сети прекратит соответствовать потребностям, у нас есть. И эти годы лучше потратить на заблаговременный поиск возможных решений проблемы масштабирования.
Альтернативные алгоритмы консенсуса
В сети Биткойн используется алгоритм консенсуса #PoW, основанный на доказательстве проделанной работы. Это надёжно, но медленно и требует серьёзных вычислительных мощностей. Однако это не единственный возможный подход. Как минимум, есть два довольно перспективных альтернативных варианта.
Первый – делегированное доказательство доли или DPoS. Более продвинутая версия «доказательства ставки», в которой пользователи подтверждают достоверность информации собственными деньгами. В данном варианте, они могут делегировать свои полномочия избранным представителям, которые уже и будут подтверждать истинность транзакций. А сами пользователи при этом будут получать часть вознаграждения, пропорционально вложенным суммам. Систему придумал некто Daniel Larimer, и она являет собой что-то типа голосования в реальном времени плюс сложную систему социальной репутации.
Второй вариант – Практическая Византийская отказоустойчивость (pBFT), разработанная в 1999 году Barbara Liskov и Miguel Castro, которая позволяет добиться безошибочного консенсуса на основе взаимных подтверждений, даже при наличии узлов, распространяющих заведомо ложную информацию.
Оба этих подхода довольно перспективны, особенно – для блокчейнов нефинансового использования, но и некоторые недостатки у них тоже имеются. Заключаются они в следующем.
Делегированное доказательство ставки – это, с одной стороны, пример классической демократии. Люди выбирают депутатов, голосуют за них (в нашей ситуации – своими деньгами), а «избранники» приносят пользу своим поручителям. Но, как и в реальной жизни, это не всегда работает так, как задумано. Уменьшение количества верификаторов до нескольких «доверенных делегатов» снижает децентрализацию сети. А вместе с ней – способность противостоять «сговору доверенных лиц». Простой пример имел место – блокчейн #EOS оказался под контролем 11 держателей токенов из Китая, которые сговорились между собой и полностью контролируют информацию внутри сети.
Практическая Византийская отказоустойчивость работает за счёт того, что все узлы периодически проверяют достоверность системы в циклическом формате. То есть – по очереди, а не одновременно. Это не совсем классический блокчейн, но функции и результаты во многом совпадают. Плюс у данного принципа ниже потребление ресурсов и выше пропускная способность.
Однако данный алгоритм уязвим против атак типа «sybil», в процессе которых создаётся множество новых «злонамеренных» узлов сети. Достаточно 33 процентов, чтобы полностью перехватить контроль над всей сетью. В сети Биткойн, например, это невозможно, поскольку новые узлы всё равно должны провести доказательство работы, чтобы атаковать систему. А в системах, работающих на основе #PoS, каждый узел для работы должен внести некоторую сумму в криптовалюте.
Выводы
Существующего алгоритма консенсуса PoW недостаточно, чтобы эффективно справляться с проблемами масштабирования. Это означает, что у широкого внедрения блокчейна в, допустим, выборные процессы или транспортный сектор, не произойдёт из-за необходимости работы со слишком большим объемом информации. Нужны новые решения.