Shai Deshe - Proofs of Chain Membership (KIP5)

Shai Deshe - Proofs of Chain Membership (KIP5)

https://t.me/kaspa_news_ru

Я написал новый KIP ($kas improvement proposal): Proofs of Chain Membership [1].

Сейчас я расскажу, в чем его суть.

Решаемая проблема:

Узлы Каспы подвергаются обрезке, в результате которой отбрасываются все данные блока (за исключением последних нескольких дней). Применяя умную технику, называемую NiPoPoW, мы можем отбрасывать все достаточно старые данные блока и большинство заголовков блоков без ущерба для безопасности и целостности цепи.

В частности, набор UTXO всегда присутствует, действителен и может быть аутентифицирован. Для большинства целей этого достаточно, поскольку набор UTXO содержит следующие данные:

1. список всех непустых балансов и их адреса

2. для каждого баланса - время его создания и

3. для каждого баланса - добыт он или оплачен (т.е. является ли UTXO результатом транзакции на coinbase).


Однако для некоторых приложений набора UTXO недостаточно, требуется доказать, что транзакция была опубликована (proof-of-publication или PoP). В некоторых случаях требуется даже нечто более весомое: доказать, что транзакция была принята (то есть не только то, что она была опубликована, но и то, что она не была затенена конфликтующей транзакцией в параллельном блоке), что мы называем квитанцией транзакции или txR.


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


Как же все-таки обеспечить эту функциональность?

Прямым решением является наличие архивных узлов, хранящих весь блокдаг. Проблема заключается в том, что затраты на содержание архивных узлов растут с течением времени, внедрением и BPS, что делает их централизованной службой. Кроме того, узлы должны предоставить пользователю эффективный способ проверки подлинности предоставляемых им данных по отношению к обрезанным узлам.


Более эффективным решением является использование криптографических доказательств: данных, которые могут быть вычислены до того, как транзакция будет обрезана, и могут использоваться для доказательства того, что транзакция была опубликована/принята, неограниченное время.


Такие доказательства можно вычислить уже сегодня, но с этим есть две проблемы:

1. Доказательства имеют большой размер, их тяжело вычислять и проверять. Размер доказательства может достигать 25 мегабайт, и его размер будет увеличиваться при увеличении BPS.

2. В настоящее время эта функциональность не реализована, поэтому все, кто хочет вычислить/проверить такие доказательства, должны делать это вручную.


В KIP-5 я предлагаю немного изменить структуру заголовка блока, что значительно упростит этот процесс. В результате размер доказательства публикации уменьшится примерно до 10 килобайт. Далее я описываю алгоритмические процессы генерации и проверки таких доказательств и предлагаю реализовать их в виде вызовов API.


Я представляю, что после реализации этого изменения следующим шагом будет добавление кошельками пользовательского интерфейса для хранения и аутентификации txR. Возможно, даже добавление функции "загрузки квитанции" в проводник блоков.


Заметим, что эта функциональность также, возможно, сделает запуск узлов обрезки выгодным: пользователи, не успевшие сгенерировать квитанцию до того, как транзакция была обрезана, смогут заплатить держателю архива за генерацию txR задним числом. Еще раз подчеркну, что данные блока требуются только для генерации txR, а не для его проверки.


Затраты на производительность при таком изменении незначительны:

1. Увеличение размера заголовка с 248 байт до 280 байт. Соответственно, постоянное хранилище "вырастет" примерно на 8,5 мегабайт, а накопленное хранилище "раздуется" примерно на 12 килобайт в год.

2. Будет добавлен новый этап проверки заголовков цепочек-кандидатов, который по стоимости равен вычислению 35 хэшей (то есть практически ничего не стоит).


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


(Есть, правда, небольшая загвоздка: доказательство зависит от появления так называемого блока "потомства". Доказательство не может быть получено до появления блока "потомков". В настоящее время такие блоки появляются раз в 24 часа, так что пользователь может сгенерировать квитанцию только через сутки после включения txn. С криптографической точки зрения это не является проблемой, но для пользователей это не совсем удобно. В KIP я обсуждаю возможность увеличения плотности блоков posterity до одного раза в час. Это позволит уменьшить размеры txR примерно на 40%, а время ожидания до генерации квитанции - до одного часа. К сожалению, такое изменение требует глубокого рефакторинга чувствительной области кода консенсуса. Поэтому я предлагаю продолжить исследование этого направления и предложить его в отдельном KIP в будущем)


Перевод: https://t.me/kaspa_news_ru

Оригинал: Shai ❤️ Deshe 💜 Wybors𐤊i 💙 (大胡子) в X: «I wrote a new KIP ( $kas improvement proposal): Proofs of Chain Membership [1]. Let me tell you what it is all about. The problem to solve: Kaspa nodes are pruned, whereby all block data (except the last few days) is discarded. By applying a clever technique called NiPoPoW, we…» / X (twitter.com)

Report Page