Соавтор Lightning Network Тадеуш (Тадж) Драйя (Thaddeus Dryja) работал над проектом «облегченного» полного узла Биткоина с начала прошлого года. Летом 2019 года он опубликовал код для решения по масштабированию Utreexo, а на прошлой неделе команда разработчиков выпустила первую версию программного обеспечения Utreexo в рамках MIT Digital Currency Initiative (DCI).
Полные узлы проверяют соответствие новых транзакций в блокчейне Биткоина требованиям протокола и распространяют их по сети. Однако запуск полного узла требует сотни гигабайт для хранения данных. Усеченная версия полного узла, доступная в Bitcoin Core, позволяет снизить минимальный объем хранимой истории и выходов транзакций (UTXO) до нескольких гигабайт, но и такая установка требует полной «прокачки» блокчейна. Поэтому разработчики уже давно пытаются упростить развертывание и сделать возможности полного узла доступными для большего числа пользователей.
Utreexo определяет размер «состояния» полного узла, который показывает актуальную информацию о том, кому принадлежит сколько BTC. Utreexo сокращает минимальный размер этого состояния с примерно четырех гигабайт до менее килобайта.
«Utreexo - это новая технология масштабирования Биткоина, которая может сделать полные узлы меньше и быстрее без потерь для конфиденциальности и безопасности», - написал Драйя в своем блоге.
Мини-узел
Полные узлы Биткоина содержат информацию о каждой когда-либо совершенной транзакции и на сегодняшний день размер одного узла составляет 200 ГБ. Усеченный полный узел способен сократить размер истории транзакций до 500 Мб. Но это не решает проблему хранения неизрасходованных выходов (UTXO), которые имеют размер чуть менее 4 ГБ.
База данных UTXO быстро растет, и вероятно, продолжит увеличиваться, что усложнит работу полных узлов. Но Utreexo может решить эту проблему. С помощью новой, необычной криптографии можно заменить большую часть состояния UTXO одним крошечным криптографическим доказательством, которое занимает гораздо меньше места.
«Utreexo - это новый динамический аккумулятор на основе хэш-функции, который позволяет уместить миллионы неизрасходованных выходов менее чем в одном килобайте – это настолько мало, что их можно было бы записать на листе бумаги», - объясняет Драйя на веб-сайте MIT DCI.
Замена SPV?
Разработчики давно пытаются уменьшить размер полного узла. Упрощенная проверка платежей (SPV) – одна из самых популярных версий облегченного узла, используемая Electrum и другими кошельками.
Utreexo похож на SPV в том, что требует гораздо меньше места на компьютере, чем классический полный узел. Но узлы SPV не сохраняют конфиденциальность пользователя и более подвержены атакам, чем узлы Utreexo.
Поскольку Utreexo имеет преимущества в области безопасности, Драйя надеется, что он может ослабить доминирующее положение узлов SPV, если разработка Utreexo пойдет так, как планировалось.
«Я думаю, было бы замечательно, если бы Utreexo заменил SPV в некоторой степени, предоставив пользователю подобный Electrum интерфейс, но с безопасностью Bitcoin Core», - сказал он.
Однако он не думает, что Utreexo полностью заменит SPV, так как SPV все еще легче запустить.
«Узлы Utreexo тяжелее, чем SPV, но легче, чем текущие полные узлы, поэтому некоторые пользователи SPV могут переключиться на Utreexo. Кроме того, некоторые пользователи полных узлов также отдадут предпочтение новому решению», - сказал он.
Он считает, что, поскольку узлы Utreexo намного проще запускать, они будут встречаться гораздо чаще, чем обычные полные узлы.
«В долгосрочной перспективе я определенно вижу, как почти все полные узлы будут использовать дизайн, подобный Utreexo. Узлы, которые хранят все состояние и историю, будут больше похожи на текущие веб-сайты обозревателей блокчейна, или на серверы Electrum. Сохранятся и классические полные узлы, но обычные пользователи не будут их запускать», - сказал Драйя.
Дальнейшее развитие
Разработчики Utreexo выдвинули доказательство концепции, показывающее, что эту идею можно превратить в реально работающий продукт. Но им все еще предстоит проделать большую работу, включая устранение ошибок, чтобы мини-узел был пригоден для использования с настоящими биткоинами.
«Клиент пока работает в тестовой сети Биткоина и его не рекомендуется использовать с настоящими BTC. В коде уже обнаружены ошибки, но мы быстро исправляем их», - пишет Драйя.
Разработчики стремятся сделать узел Utreexo совместимым с узлами, уже работающими в сети Биткоина. Для этого потребуется модифицировать Bitcoin Core, что может быть опасно. Utreexo - это «значительное переосмысление того, как работает Биткоин, изменение критически важного кода», пишет Драйя.
«Вероятно, будет трудно внедрить код Utreexo в Bitcoin Core, и для этого есть веская причина. Мы хотим быть уверены, что не создадим проблем в системе, управляющей деньгами многих людей», - сказал Драйя.
Поэтому разработчики решили проверить, смогут ли они добавить возможности Utreexo в Btcd — альтернативный кошелек для Биткоина, потому что у него гораздо меньше пользователей. Следующим шагом станет применение наработок в Bitcoin Core.