@Dusk Je me suis demandé ce qui se passe réellement lorsqu’une preuve à connaissance zéro Phoenix échoue à la vérification, car la plupart des explications s’arrêtent à « la preuve est vérifiée ».
L’architecture de Dusk confirme que la preuve doit démontrer des propriétés spécifiques à la fois — la propriété de la note dépensée, l’intégrité du solde entre les entrées et les sorties, et l’absence de double dépense — le tout encodé dans la même preuve, sans être vérifié via des contrôles séparés. $DUSK
C’est le point qui vaut vraiment d’y réfléchir. Si l’une quelconque de ces propriétés n’est pas respectée, l’ensemble de la preuve échoue en tant qu’unité. Il n’existe aucun chemin permettant d’obtenir une partial credit où les vérifications de solde passent mais où la propriété échoue silencieusement.
J’ai tracé ce que cela implique concrètement : une preuve rejetée signifie que la transaction n’est simplement jamais incluse. L’exécution ne tente pas de la “sauver” ni de la traiter partiellement. La transaction n’a tout simplement pas lieu, et rien de la tentative échouée n’est enregistré comme changement d’état. #dusk
Ce que je n’ai pas confirmé à partir des documents propres à Dusk, c’est si une preuve échouée laisse une trace dans des journaux de mempool qu’un opérateur de nœud pourrait inspecter a posteriori, ou si elle est simplement écartée sans aucun enregistrement de diagnostic.
Prochaine chose que je vérifierais : si les outils actuels du wallet de Dusk affichent une raison précise pour une preuve échouée, ou s’il s’agit juste d’un rejet générique, car cette distinction compte énormément pour quiconque débogue réellement une transaction qui n’est pas passée.
#dusk $DUSK @Dusk
L’architecture de Dusk confirme que la preuve doit démontrer des propriétés spécifiques à la fois — la propriété de la note dépensée, l’intégrité du solde entre les entrées et les sorties, et l’absence de double dépense — le tout encodé dans la même preuve, sans être vérifié via des contrôles séparés. $DUSK
C’est le point qui vaut vraiment d’y réfléchir. Si l’une quelconque de ces propriétés n’est pas respectée, l’ensemble de la preuve échoue en tant qu’unité. Il n’existe aucun chemin permettant d’obtenir une partial credit où les vérifications de solde passent mais où la propriété échoue silencieusement.
J’ai tracé ce que cela implique concrètement : une preuve rejetée signifie que la transaction n’est simplement jamais incluse. L’exécution ne tente pas de la “sauver” ni de la traiter partiellement. La transaction n’a tout simplement pas lieu, et rien de la tentative échouée n’est enregistré comme changement d’état. #dusk
Ce que je n’ai pas confirmé à partir des documents propres à Dusk, c’est si une preuve échouée laisse une trace dans des journaux de mempool qu’un opérateur de nœud pourrait inspecter a posteriori, ou si elle est simplement écartée sans aucun enregistrement de diagnostic.
Prochaine chose que je vérifierais : si les outils actuels du wallet de Dusk affichent une raison précise pour une preuve échouée, ou s’il s’agit juste d’un rejet générique, car cette distinction compte énormément pour quiconque débogue réellement une transaction qui n’est pas passée.
#dusk $DUSK @Dusk