Я снова прочитал zerocoin белой бумаги и пытаясь понять, динамический аккумулятор [1] использовал их, я подумал, что это может быть использовано для решения проблемы UTXO. Интересно, если кто-то уже предложил эту идею (возможно, это кажется очевидным для меня), и какие проблемы есть. Моя идея не имеет ничего общего с Zerocoin, так что это не решение, чтобы удалить псевдонимность из Bitcoin.
Динамический аккумулятор способ компактно хранить практически неограниченное количество данных, например, активные UTXOs в один номер, например, в 3072 битное число. В принципе все blockchain могут храниться в этом номере и шахтер может проверить, если сделка только тратит UTXOs, используя только этот единственный доверенный номер и некоторый ненадежный данные транзакции, которые могли бы обеспечить отправитель сделки. Это звучит немного как магия, но это на самом деле работает.
Недостаток заключается в том, что каждый обладая UTXO должен следить за свидетеля (еще 3072 бит числа), что доказывает, что аккумулятор содержит его UTXO. Свидетель может быть вычислен из списка всех сделок, которые имели место между UTXO и сделками, которые затрачивают его. Мы, вероятно, все еще нуждаются узлы, которые хранят всю blockchain, так что пользователи могут найти их UTXO и вычислить свидетельство от сделок, которые следуют за ним. Свидетель может быть вычислена с приращением, так что если вы обновите ваш клиент один раз в неделю он может обновить свидетельство для всех его UTXOs, просто прочитав список сделок, которые произошли на этой неделе.
Еще одним недостатком является время вычисления. Обновление аккумулятора вычислительно участие, вероятно, гораздо больше, чем проверка подписи ECDSA, и это должно быть сделано для каждого входа и каждого выхода в каждой транзакции, чтобы проверить, что блок действует (в дополнение к обычным проверкам, что подписи в сделках правильны). Хуже это должно быть повторено каждым, кто хочет обновить свой кошелек с помощью полного клиента. На самом деле, обновление свидетеля является немного более сложным, чем проверка аккумулятора. Клиенты, которые полагаются на сервере, чтобы получить их UTXO и соответствующие свидетельства все еще возможны, но работа то просто сдвинута к поставщику услуг. В основном служба должна обновить свидетель для каждого пользователя отдельно.
Безопасность динамических аккумуляторов в [1] опирается на безопасность RSA (точнее сильный RSA предположение). Ключ 3072 бит должен дать нам о безопасности 256-битного ECDSA. Однако, если кто-то ломает этот ключ, что он может чеканить монеты. В принципе это может быть обнаружено, если кто-то еще имеют полный blockchain поскольку блок генеза, но цель этой схемы, чтобы избежать проверок полной blockchain. Другая проблема заключается в генерации ключа RSA таким образом, что изобретатель не подозревается в сохранении закрытого ключа чеканить свои собственные монеты позже. Кажется, что все опубликованные аккумуляторы основаны на RSA (или на Merkle деревьев, но это требует гораздо больше свидетелей).
Конечно, что-то вроде этого требует, по крайней мере, жесткой вилки, более вероятно altcoin.
[1] J. Camenisch и А. Lysyanskaya, Динамические Аккумуляторы и приложение к эффективному отзыву анонимных полномочий, CRYPTO 2002