Таддеус Дрия, соавтор whitepaper протокола микроплатежей Lightning Network, в понедельник опубликовал новый исследовательский документ, в котором изложено предлложение по масштабированию биткоина, над которым он работал в течение прошлого года.
Решение под названием Utreexo сделает часть полной нод биткоина, называемой «состоянием» (или «набором UTXO») меньше и проще в использовании с помощью криптографических доказательств. Мы уже освещали это предложение в январе, а опубликованная статья подводит итоги исследования и описывает идею более подробно с технической точки зрения.
Суть Utreexo сводится к тому, чтобы сделать полные ноды биткоина более легкими. Для их настройки и использования требуются определённые ресурсы, но они являются наиболее безопасным и анонимным способом использования биткоина без необходимости доверять посреднику. «По мере увеличения числа пользователей системы набор UTXO увеличивается вместе с количеством ресурсов, которые поддерживают работу ноды. Это привело к тому, что доля пользователей, использующих полную ноду, постепенно уменьшается, поскольку все больше пользователей полагаются на легкие клиенты для получения информации о состоянии сети», — поясняется в документе.
Далее описывается, каким образом ноды могут использовать криптографические доказательства для хранения меньшего количества данных без ущерба для безопасности. «Нодам нужно только хранить логарифмическое представление набора UTXO, что значительно сокращает объем памяти», — говорится в документе.
В документе также раскрываются результаты моделирования, которые показывают преимущества такой модели, но и она имеет свой компромисс: хотя требования к памяти в целом уменьшаются, проверка данных увеличивает нагрузку на пропускную способность сети. «В наших симуляциях загрузки блокчейна биткоина до начала 2019 года с 500 МБ оперативной памяти, выделенной для кэширования, доказательства добавляют около 25%», — поясняется в документе.
Дрия пообещал в ближайшее время выложить в открытый доступ код предложения, чтобы разработчики смогли самостоятельно его протестировать.