Соучредитель Ethereum опубликовал 16 августа заметку, в которой отдал должное разработчикам биткоина: их наработки по компактному хранению состояния теперь изучают для собственной сети. Речь о переносе на Ethereum модели непотраченных выходов — той самой, которую годами приводили как главное архитектурное отличие двух сетей. По приводимым оценкам, платёжная часть состояния может сжаться на 99,8%: миллиард записей уместился бы примерно в 300 мегабайт.

Коротко: что предлагается

Исследователи рассматривают гибридную модель, где рядом с привычными счетами появятся непотраченные выходы — записи о конкретных суммах, принадлежащих конкретным ключам, вместо общего баланса адреса.

Опорой служит проект Utreexo из экосистемы биткоина: узел хранит не весь набор записей, а компактный криптографический слепок, а доказательство наличия своих средств предъявляет сам владелец при трате. Оценки разработчиков биткоина говорят о сокращении локально хранимого состояния до нескольких килобайт при сохранении полной проверки транзакций.

Отдельно обсуждается связка с предложенным ранее устройством очереди транзакций, где узлы сворачивают доказательства корректности в рекурсивные конструкции — около 2 мегабайт в секунду при восьми соединениях.

Почему состояние вообще стало проблемой

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

Отсюда двойное ограничение. Техническое: рост требований к диску вымывает независимых операторов, оставляя тех, кто может позволить себе серверное оборудование. И арифметическое: разговоры о тысячекратном росте упираются не в скорость исполнения, а в то, что каждая операция навсегда добавляет запись, которую всем придётся хранить.

Поэтому исследование сместилось с ускорения на устройство хранения. Быстро считать можно научиться; вопрос в том, кто потом держит результат.

Что на самом деле заимствуется

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

Заимствуется же не бухгалтерия, а распределение издержек. В связке с криптографическим накопителем непотраченный выход позволяет переложить хранение с сети на владельца: узел держит короткое обязательство, а доказательство своих денег носит с собой тот, кому они принадлежат.

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

Спорили о том, какая модель учёта выразительнее, а взяли из чужой сети совсем другое — ответ на вопрос, кто оплачивает память. Это не про синтаксис, это про то, чья это ноша.

Цифры предложения

Показатель Значение
Сокращение платёжного состояния до 99,8% по приводимым оценкам
Миллиард записей около 300 МБ
Текущий рост состояния порядка 100 ГБ в год
Ориентир по масштабированию тысячекратный
Оценка канала для очереди транзакций около 2 МБ/с при восьми соединениях
Статус исследование, не пункт дорожной карты

Чего в сообщениях нет

Нет сроков. Заметка и обсуждение в исследовательском разделе — стадия до формального предложения, не говоря о включении в обновление. Насколько это далеко от релиза, показывает соседний сюжет: в списке ближайшего обновления сети из десятков заявок запланирована одна.

Не описано, как гибридная модель уживётся с существующими контрактами: сеть с миллионами развёрнутых программ не может сменить учёт одномоментно. Оценка в 99,8% относится к платёжной части состояния, а не ко всему объёму. И у доказательств есть цена: владелец обязан хранить и обновлять их сам, а как эта нагрузка ляжет на обычные кошельки, не разбирается.

Почему это удобно взять именно у биткоина

Причина прозаична. В сети Ethereum состояние сложное: помимо балансов там код и данные контрактов, которые ужать подобным приёмом нельзя. В биткоине состояние однородное, из-за чего компактные накопители там проработаны глубже.

Отсюда и конструкция: взять готовое решение для простой части — платежей — и оставить сложную как есть. Это не переход на чужую модель, а второй режим для операций, где он даёт выигрыш. Обмен идеями между сетями идёт постоянно: недавно разработчики отказались от одного криптографического примитива в пользу более простого — тоже решение о цене поддержки, а не о красоте.

Частые вопросы

Ethereum переходит на модель биткоина?

Нет. Обсуждается добавление второго способа учёта для платёжных операций рядом с существующими счетами, а не замена архитектуры.

Что означает сокращение на 99,8%?

Что платёжная часть состояния, сегодня измеряемая миллиардом записей, при таком устройстве занимала бы около 300 мегабайт. К состоянию сети целиком эта оценка не относится.

Почему размер состояния так важен?

Его обязан хранить каждый полный узел, и растёт он примерно на 100 гигабайт в год. Это ограничивает и число независимых операторов, и потолок пропускной способности.

Когда это может заработать?

Сроков нет. Это стадия исследования: заметка и обсуждение, без формального предложения и без включения в план обновлений.

В чём подвох для пользователя?

Доказательство наличия своих средств придётся хранить и обновлять самому владельцу. Как эта нагрузка ляжет на обычные кошельки, пока не описано.

Это заимствование у конкурента?

Скорее обмен наработками: берётся приём компактного хранения, отработанный в сети с однородным состоянием, для той части, где он применим.

Источники

Материал подготовлен на основе публикаций Blockonomi и обсуждения в исследовательском разделе Ethereum. Фотография: TBurmeister (WMF) / CC BY-SA 4.0.