@Dusk_Foundation Я пошёл выяснять, что именно происходит, когда проверка доказательства с нулевым разглашением Phoenix не проходит, — ведь большинство объяснений заканчиваются на фразе «доказательство проверяется».
Архитектура Dusk подтверждает: доказательство должно одновременно демонстрировать определённые свойства — владение нотой, которая тратится, целостность баланса между входами и выходами и отсутствие двойной траты — и всё это закодировано в одном и том же доказательстве, а не проверяется отдельными «побочными» проверками. $DUSK
Вот с этим и стоит разобраться. Если не выполняется хотя бы одно из этих свойств, всё доказательство целиком считается провалившимся как единое целое. Нельзя получить «частичные» баллы, когда проверки баланса проходят, но владение почему-то не выполняется — беззвучно.
Я проследил, что это значит на практике: отклонённое доказательство означает, что транзакция вообще не включается. Среда выполнения не пытается «спасти» транзакцию или частично обработать её. Транзакция просто не происходит, и ничего из попытки, которая не сработала, не фиксируется как изменение состояния. #dusk
То, что я не подтвердил по материалам Dusk, — остаётся ли след от проваленного доказательства в логах mempool, который оператор узла сможет потом просмотреть, или же оно отбрасывается вообще без какой-либо диагностической записи.
Следующее, что я бы проверил: всплывает ли в текущих инструментах кошелька Dusk конкретная причина неудачи при проверке доказательства, или показывается только общее «отклонено», — потому что это очень важно для тех, кто реально отлаживает транзакцию, которая так и не прошла.
#dusk $DUSK @Dusk
Архитектура Dusk подтверждает: доказательство должно одновременно демонстрировать определённые свойства — владение нотой, которая тратится, целостность баланса между входами и выходами и отсутствие двойной траты — и всё это закодировано в одном и том же доказательстве, а не проверяется отдельными «побочными» проверками. $DUSK
Вот с этим и стоит разобраться. Если не выполняется хотя бы одно из этих свойств, всё доказательство целиком считается провалившимся как единое целое. Нельзя получить «частичные» баллы, когда проверки баланса проходят, но владение почему-то не выполняется — беззвучно.
Я проследил, что это значит на практике: отклонённое доказательство означает, что транзакция вообще не включается. Среда выполнения не пытается «спасти» транзакцию или частично обработать её. Транзакция просто не происходит, и ничего из попытки, которая не сработала, не фиксируется как изменение состояния. #dusk
То, что я не подтвердил по материалам Dusk, — остаётся ли след от проваленного доказательства в логах mempool, который оператор узла сможет потом просмотреть, или же оно отбрасывается вообще без какой-либо диагностической записи.
Следующее, что я бы проверил: всплывает ли в текущих инструментах кошелька Dusk конкретная причина неудачи при проверке доказательства, или показывается только общее «отклонено», — потому что это очень важно для тех, кто реально отлаживает транзакцию, которая так и не прошла.
#dusk $DUSK @Dusk