@Dusk_Foundation ‎Я пошёл выяснять, что именно происходит, когда проверка доказательства с нулевым разглашением Phoenix не проходит, — ведь большинство объяснений заканчиваются на фразе «доказательство проверяется».

‎Архитектура Dusk подтверждает: доказательство должно одновременно демонстрировать определённые свойства — владение нотой, которая тратится, целостность баланса между входами и выходами и отсутствие двойной траты — и всё это закодировано в одном и том же доказательстве, а не проверяется отдельными «побочными» проверками. $DUSK

‎Вот с этим и стоит разобраться. Если не выполняется хотя бы одно из этих свойств, всё доказательство целиком считается провалившимся как единое целое. Нельзя получить «частичные» баллы, когда проверки баланса проходят, но владение почему-то не выполняется — беззвучно.

‎Я проследил, что это значит на практике: отклонённое доказательство означает, что транзакция вообще не включается. Среда выполнения не пытается «спасти» транзакцию или частично обработать её. Транзакция просто не происходит, и ничего из попытки, которая не сработала, не фиксируется как изменение состояния. #dusk

‎То, что я не подтвердил по материалам Dusk, — остаётся ли след от проваленного доказательства в логах mempool, который оператор узла сможет потом просмотреть, или же оно отбрасывается вообще без какой-либо диагностической записи.

‎Следующее, что я бы проверил: всплывает ли в текущих инструментах кошелька Dusk конкретная причина неудачи при проверке доказательства, или показывается только общее «отклонено», — потому что это очень важно для тех, кто реально отлаживает транзакцию, которая так и не прошла.

#dusk $DUSK @Dusk