Ce qui m’a finalement fait comprendre quelque chose à propos de Moonlight et Phoenix sur DuskVM, c’est que des modèles d’état différents n’ont pas besoin de modèles de finalité différents.

Moonlight arrive avec une piste de compte publique : soldes, expéditeur, destinataire, montant, nonce.

Phoenix arrive via des notes chiffrées, des sorties masquées et des nullifiers.

Je continuais à supposer que ces deux formes nécessiteraient d’une manière ou d’une autre deux façons différentes d’atteindre la finalité après DuskVM.

Mais ce n’est pas vraiment le rôle de DuskDS.

Moonlight peut rester sous forme de compte. Phoenix peut rester sous forme de note. DuskVM peut accepter les deux sans forcer l’une à devenir l’autre, tandis que Dusk L1 donne tout de même à l’état résultant une frontière de finalité déterministe.

Donc l’erreur a été de supposer que des représentations d’état différentes doivent forcément avoir des fins différentes.

Ce n’est pas le cas.

Dusk peut permettre à Moonlight et Phoenix de rester fondamentalement différents en dessous, tout en donnant aux deux la même réponse à la seule question qui compte à la fin :

quand cet état est-il final ?
#dusk $DUSK @Dusk