I run a small Python script on my laptop in Islamabad that does heavy hashing for a side project, and I once tried moving it into a sandboxed environment thinking it would run just as fast since the logic didn't change. It ran noticeably slower, and until I read about Dusk's Piecrust VM I never actually understood why that happens at a technical level.
I assumed all smart contract execution inside a WASM virtual machine runs at roughly native speed, since WASM is usually marketed as near native performance. That's not accurate for cryptographic operations specifically. Research cited in the whitepaper shows WASM execution can run 45 to 255 percent slower than native code for complex applications, mainly from virtualized memory management and extra instruction handling inside the sandbox.
That's exactly why Piecrust doesn't run things like ZK proof verification, hashing, or signature checks inside the WASM sandbox at all. It exposes host functions instead, direct native calls for operations like hash, verify_plonk, verify_groth16_bn254, verify_schnorr, and verify_bls. The contract calls out to native code for the expensive cryptographic work, then comes back into WASM for everything else. That's a deliberate architectural split, not a workaround.
What the whitepaper admits directly is that Dusk hasn't quantified actual power savings from this setup yet. So I can't tell you a real efficiency number, because Dusk itself hasn't published one.
The real test for DUSK is whether this host function approach keeps holding up as contract complexity grows on mainnet.
Has anyone benchmarked Piecrust's host function calls against pure WASM execution themselves? @Dusk #dusk $DUSK
Je garde un rouleau de reçus de caisse ancien de la boutique de mon père à Sialkot : chaque entrée est empilée les unes après les autres, et rien n’est jamais effacé une fois imprimé. C’est l’image que j’avais des systèmes UTXO : les notes s’accumulent chronologiquement et restent là. Lire Phoenix a quelque peu bousculé cette hypothèse.
Phoenix utilise bien une structure UTXO, mais les appelle des notes, stockées dans un arbre de Merkle plutôt que dans un registre plat. Quand vous dépensez une note, vous ne la supprimez pas : vous générez à la place un nullifiant, une valeur dérivée de la clé secrète de la note, qui prouve qu’elle a été dépensée sans révéler quelle note, dans tout l’arbre, a été utilisée. Le réseau se contente de suivre la liste des nullifiants déjà utilisés. Les notes restent physiquement dans l’arbre pour toujours, qui ne cesse de grossir à chaque transaction, qu’elle soit dépensée ou non.
C’est ce détail qui a réellement remodelé ma façon de voir les choses. La confidentialité ne vient pas de la dissimulation des transactions hors chaîne : elle vient du fait que chaque note devient indiscernable de toute autre note non dépensée dès qu’un nullifiant apparaît. Personne, y compris les validateurs, ne peut pointer l’arbre et dire quelle feuille précise vient d’être dépensée. La propriété et le solde sont prouvés entièrement par une preuve à connaissance nulle ; le réseau vérifie donc les calculs plutôt que des montants visibles.
Ce que le livre blanc ne me dit pas, c’est comment la taille de l’arbre influe sur le temps de génération des preuves lorsque le nombre de notes augmente au fil des années d’activité sur le mainnet. C’est une vraie question d’évolutivité à laquelle je ne peux pas répondre à partir du contenu source.
Le véritable test pour DUSK est de savoir si Phoenix reste rapide à utiliser une fois que l’arbre de notes devient vraiment volumineux.
Quelqu’un sait quelle est la taille actuelle de l’arbre de notes de Phoenix sur Dusk mainnet ? @Dusk #dusk $DUSK
I sent a bank transfer to a supplier in Gujranwala yesterday and the receipt showed everything, my account, his account, the exact amount, nothing hidden. I assumed Dusk being a privacy chain meant every single transaction on it worked the opposite way, everything obfuscated by default, no exceptions.
That assumption doesn't hold once you look at Moonlight. It's a fully transparent, account based model, closer to how Ethereum works than to Zcash. Every account has a public key acting as an identifier, and the network tracks a visible nonce and balance for it directly. Ownership gets proven with a straightforward digital signature, the network checks the sender has enough funds, and the nonce has to be exactly one higher than the account's current count to stop replay attacks.
What actually reframed this for me is realizing Dusk isn't a privacy chain that happens to allow transparency as an afterthought. It runs Moonlight and Phoenix side by side as two equally supported transaction models, and only Phoenix handles the obfuscated side. That means Dusk is deliberately built for a world where financial institutions need both, a public audit trail for some transactions and shielded details for others, not one universal privacy default. That's a more mature design choice than a lot of privacy coins even attempt.
What the whitepaper doesn't say is how much of actual network usage runs through Moonlight versus Phoenix in practice. I have no real transaction split to point to.
The real test for DUSK is whether institutions actually use Moonlight for the compliant side of their operations once real volume shows up.
Does anyone know the current Moonlight versus Phoenix transaction split on Dusk mainnet?@Dusk #dusk $DUSK
Consolidation après le mouvement — le prix évolue maintenant en range sur le plus petit timeframe. La liquidité du week-end est faible, donc attendez-vous à une action plutôt discrète.
Deux niveaux clés indiqués sur le graphique. Un simple touché sur l’un ou l’autre pourrait déclencher un balayage vers le côté opposé.
🔍 À surveiller : une impulsion directionnelle une fois les bornes du range testées.
My electricity meter reader in Rawalpindi got a warning notice last month for skipping our street on his rounds, nothing severe, just a formal note in his file. I assumed Dusk treats provisioner misbehavior the same flat way, one warning system, penalties scale up the same regardless of what you actually did wrong.
That's not how it works. Dusk splits faults into two clearly separate categories with completely different consequences. A minor fault, like failing to broadcast a candidate block when you were chosen as generator, results in suspension and soft slashing. A major fault, like broadcasting an invalid block, double voting, or putting out two different candidate blocks for the same iteration, triggers hard slashing instead.
The distinction that actually reframed this for me is what soft slashing versus hard slashing actually does. Soft slashing just locks a portion of your stake, which lowers your weight in future sortition rounds but doesn't destroy anything. Hard slashing straight up burns part of your stake, permanently, with the burned amount increasing based on how severe or repeated the fault is. One is a timeout. The other is a real financial loss with no way back.
What the whitepaper doesn't specify is the exact percentage or DUSK amount burned per major fault tier. Without that number I can't tell anyone how costly a specific violation actually is in real terms.
The real test for DUSK is whether hard slashing stays severe enough to actually deter double voting once stake concentration grows.
Does anyone know the real burn percentages Dusk applies for major faults? #dusk $DUSK @Dusk
Mon tailleur à Lahore partage ses revenus avec ses deux apprentis sur un pourcentage fixe à chaque mission, la même coupe indépendamment de la quantité de travail réellement fournie par les apprentis ce jour-là. J’ai supposé que le partage de récompense du bloc 80/10/10 de Dusk fonctionnait de la même manière : des parts fixes remises, sans tenir compte de quoi que ce soit. Seuls les 10 % destinés à Dusk et la structure de base sont fixes. Les 80 % du générateur se divisent en deux parties : 70 % verrouillés et 10 % variables qui dépendent entièrement du nombre de votes inclus dans le certificat de bloc. On laisse des votes de côté, et cette tranche variable diminue. On inclut tous les votes connus, et le générateur obtient alors les 80 % au complet. Ce détail a changé ma façon de voir ce système. Ce n’est pas vraiment un partage 80/10/10 : c’est une incitation à la conformité présentée comme un partage de récompense. Le générateur est financièrement poussé à recueillir autant de signatures de validateurs que possible avant de finaliser un bloc, ce qui renforce directement les chances que les électeurs obtiennent eux aussi leur tranche de 10 %. Le pool de récompenses des votants est distribué en fonction des crédits détenus, ce qui renvoie au système de comité pondéré que j’ai couvert auparavant. Ce que le livre blanc ne précise pas, c’est à quelle fréquence, en pratique, les générateurs soumettent des blocs avec des ensembles de votes incomplets : est-ce rare, ou est-ce un comportement réellement récurrent ? Je ne peux pas répondre à partir du matériel source.
Le vrai test pour DUSK est de savoir si cette structure d’incitation pousse les générateurs à continuer d’inclure des ensembles de votes complets une fois que l’activité du réseau augmente. Quelqu’un sait si Dusk publie quelque part des taux réels d’inclusion des votes par les générateurs ? #dusk $DUSK @Dusk
A customs clearance I was tracking in Karachi port sat in "under review" for three days before jumping straight to "cleared" with no stages in between shown on the portal. I expected Dusk block finality to work the same way, pending then final, one jump. That's not how rolling finality operates at all.
There are four distinct states a block moves through, and the jump between them depends entirely on what happened in the iterations before it. A block starts as attested if zero prior iterations in that round failed, meaning no other candidate could have possibly beaten it to consensus. If any prior iterations did fail without a fail attestation, it starts as accepted instead, meaning a lower iteration block could still theoretically replace it.
The part that actually reshaped my thinking is how confirmed and final aren't really about the block itself. An attested block becomes confirmed once a single successor is attested or confirmed. But an accepted block needs 2 times n consecutive attested or confirmed blocks stacked on top of it, where n is the count of non attested prior iterations. So two similarly aged blocks can take completely different amounts of time to reach the same confidence level, depending purely on how clean their iteration history was.
What the whitepaper doesn't give me is a real average timeframe, in seconds or blocks, for something to go from accepted to final on live Dusk infrastructure. I can't manufacture that number.
The real test for DUSK is whether this variable path to finality still feels fast enough for everyday users moving funds.
Has anyone tracked how long a real transaction took to hit final status on Dusk? #dusk $DUSK @Dusk
$BTC est fortement haussier, mais la bougie actuelle est étendue après un mouvement très brusque de ~62,7K$ à ~79,5K$. Je n’irais pas poursuivre un long à 77,9K$.
Niveaux clés selon votre graphique :
🟢 Résistance
79 555$ : plus haut récent
80 400$ : prochaine résistance visible
🟡 Support
76 700$ : zone de repli immédiat
74 300$ : EMA 7 et support dynamique plus solide
72 975$ : support structurel important
69 400$ : zone EMA 25
Indicateurs
EMA 7 > EMA 25 > EMA 99 = structure haussière solide
Le MACD est fortement positif et en expansion
Le volume augmente avec le mouvement
Le prix est nettement au-dessus de l’EMA 7, donc une phase de refroidissement serait normale
Mon plan de trade
LONG préféré : attendre un repli vers 76,7K$ à 74,3K$ et chercher une confirmation haussière en 4H.
Objectifs possibles : 79,5K$ → 80,4K$ → plus haut si 80,4K$ est franchi
LONG en cassure : si BTC clôture proprement en 4H au-dessus de 80,4K$ avec un fort volume, un scénario de continuation devient plus attrayant.
SHORT : je ne shorterais pas simplement parce que BTC semble surétendu. Un short devient plus intéressant seulement si 74,3K$ est cassé de manière décisive et que la structure en 4H commence à devenir baissière.
En résumé : 🔥 Tendance = haussière. ⚠️ Entrée à 77,9K$ = mauvais ratio risque/rendement après ce mouvement vertical. La patience pour un repli ou une cassure confirmée à 80,4K$ est plus sûre que de courir après le prix.
Deux vendeurs du marché Saddar à Karachi ont chacun affirmé m’avoir vendu le même étui de téléphone, et le commerçant s’est contenté de suivre celui qui a d’abord attrapé le carnet de reçus. J’ai conclu que Dusk gère aussi les blocs concurrents de la même façon, en laissant gagner le premier que le réseau voit. C’est l’inverse de la façon dont fonctionne vraiment le fallback. Lorsque deux blocs candidats parviennent tous les deux à un consensus au cours de la même manche — ce qui peut arriver à cause de messages retardés ou perdus lors de congestion du réseau — Dusk ne privilégie pas celui qui est arrivé en premier. Il privilégie celui qui a atteint le consensus au plus petit numéro d’itération. Un bloc à l’itération 5 peut être remplacé par un autre à l’itération 2 si le bloc à itération plus basse atteint aussi le quorum. La procédure de fallback ramène la chaîne locale juste avant le bloc à itération plus élevée, accepte le bloc à itération plus basse à la place, puis supprime tous les successeurs qui avaient été construits au-dessus du bloc écarté. Ce qui a réellement changé ma façon de penser, c’est l’exception de l’itération 0. Un bloc qui atteint un consensus à l’itération 0 ne peut jamais être remplacé par un bloc d’itération inférieure, puisqu’il n’y en a pas. Il peut tout de même être annulé plus tard, mais seulement si quelque chose en amont de celui-ci — l’un de ses ancêtres — est annulé en premier. Donc, la finalité sur Dusk n’est pas vraiment liée au statut d’un seul bloc : elle est héritée de tout ce qui se trouve dessous. Ce que le livre blanc ne quantifie pas, c’est la fréquence à laquelle des forks comme celles-ci se produisent réellement lorsque le réseau est en congestion réelle à grande échelle, pas seulement en théorie.
Quelqu’un a déjà vu un vrai événement de fallback se produire sur un bloc Dusk ? #dusk $DUSK @Dusk
$HEMI prend une pause après cette poussée massive 😬 📉 HEMI est à 0.009006$ (+37.02%) — des replis étaient inévitables après avoir balayé le plus haut local à 0.009750$. ⚠️ Niveaux clés à surveiller : * Zone de support : 0.00829$ - 0.00850$ (coïncide avec la 7 EMA). Le fait de rester au-dessus permet de conserver la structure parabolique. * Résistance : Reprendre 0.00975$ ouvre la porte à un test du seuil psychologique à 0.010$. * Zone de risque : Perdre 0.0082$ pourrait déclencher une correction plus profonde vers la 25 EMA, autour de 0.00715$. L’histogramme du MACD montre un léger refroidissement sur le 4H, donc cette prochaine bougie donnera le ton. La question : Consolidation rapide avant de casser 0.010$, ou repli plus profond d’abord ? 👀 $VELVET $ACE
D’après le graphique, $0.65 à $0.66 constitue la zone de décision clé.
Support
$0.64 à $0.65 : support immédiat
$0.60 à $0.62 : support plus solide
$0.57 : support majeur en baisse
Résistance
$0.68 à $0.70 : première résistance
$0.73 à $0.75 : résistance plus forte, proche de la EMA25
$0.90+ : résistance majeure
Indicateurs
Prix : ~ $0.658
EMA7 : $0.655, presque directement sous le prix
EMA25 : $0.728, encore bien au-dessus du prix
EMA99 : $0.657, presque exactement au niveau du prix actuel
Le MACD reste négatif, mais l’histogramme s’améliore.
Biais de trading
Pour l’instant, je dirais que c’est neutre à légèrement haussier pour un rebond, mais pas un retournement confirmé.
Configuration Longue : Une clôture sur 4H au-dessus de $0.68 à $0.70, avec un volume en hausse, donnerait une confirmation plus claire. Les objectifs pourraient être $0.73 à $0.75, puis plus haut.
Configuration Courte : Si le prix perd $0.64, surtout avec une clôture sur 4H en dessous, la configuration s’affaiblit et $0.60 à $0.62 devient la prochaine zone à surveiller.
La plus grosse erreur ici serait de poursuivre le récent mouvement de +32% alors que le prix reste autour de l’EMA99 et sous l’EMA25. $VELVET
Nous avons connu une coupure de délestage à Islamabad la semaine dernière : le réseau continuait de tomber en panne, encore et encore. Et à chaque retour, le système de secours devait redémarrer depuis le début au lieu de reprendre là où il s’était arrêté. J’ai supposé que le mode d’urgence de Dusk fonctionnait de la même manière : les blocages réseau se répètent, il ne fait que retenter le même délai fixe jusqu’à ce que quelque chose fonctionne. Mais ce n’est pas ce qui se passe. Le mode d’urgence ne se déclenche qu’après 16 itérations consécutives échouées, et une fois activé, toute la structure du délai est supprimée. Les itérations n’expirent plus : elles s’exécutent indéfiniment jusqu’à ce qu’un bloc candidat soit effectivement proposé et atteigne le quorum à la fois en validation et en ratification. Les votes NoCandidate et NoQuorum sont également désactivés, de sorte que chaque étape doit réussir correctement avant que la suivante ne démarre. Ce qui a vraiment clarifié les choses pour moi, c’est que plusieurs de ces itérations ouvertes peuvent tourner en même temps. Ce n’est pas un défaut : c’est intentionnel, cela augmente la probabilité qu’au moins une produise un bloc valide. Le compromis, c’est davantage de risque de fork, lequel est résolu en choisissant systématiquement le candidat qui a atteint le consensus au plus petit numéro d’itération. Il y a aussi un dernier recours dans le dernier recours. Si même la toute dernière itération se bloque, les pourvoyeurs qui détiennent la majorité de la mise totale peuvent demander un bloc d’urgence : un bloc spécial vide, signé par Dusk et sans transactions, juste pour faire avancer le tour. Ce que la note technique (whitepaper) ne dit pas, c’est à quelle fréquence cela s’est réellement déclenché sur l’infrastructure Dusk jusqu’à présent. Je n’ai aucune donnée pour étayer une affirmation de fréquence.
Le vrai test pour DUSK, c’est à quel point le mode d’urgence doit se déclencher rarement une fois que le mainnet tourne à une échelle réelle. Quelqu’un a-t-il déjà assisté au déclenchement du mode d’urgence sur Dusk ? @Dusk #dusk $DUSK
J’ai passé une heure aujourd’hui à faire des allers-retours avec un greffier du tribunal à Lahore au sujet de ce qui compte réellement comme preuve d’un résultat d’audience, par opposition à une simple note dans un dossier. Cette image mentale m’est restée quand j’ai atteint le système d’attestation de Dusk. Je pensais qu’une attestation n’était qu’un mot sophistiqué pour un bloc confirmé, un seul statut, c’est réglé.
J’avais tort. Une attestation est la preuve qu’un quorum a été atteint lors d’une itération précise, et elle existe sous deux formes. Une attestation de succès prouve une supermajorité, les deux tiers des crédits du comité, avec un vote Valide. Une attestation d’échec prouve une majorité, la moitié plus un, avec un vote Invalide, NoCandidate, ou NoQuorum. Les deux constituent des preuves tout aussi valides : elles prouvent seulement des résultats opposés.
Voici la partie qui m’a fait changer d’angle. Comme davantage de votes peuvent arriver après qu’un quorum est techniquement atteint, il est possible d’obtenir plusieurs attestations valides pour la même itération. Ainsi, chaque bloc porte en réalité une attestation du bloc précédent, appelée certificat de bloc, qui fixe un ensemble précis d’électeurs comme registre officiel. C’est ce certificat qui détermine les récompenses et les pénalités, et pas n’importe quelle attestation qui traîne.
Ce que le livre blanc ne me dit pas, c’est à quelle fréquence plusieurs attestations concurrentes apparaissent réellement en pratique, plutôt que de n’être qu’un cas marginal rare. Je ne peux pas simuler la certitude.
Le vrai test pour DUSK est de savoir si les certificats de bloc restent non ambigus lorsque les conditions réseau deviennent chaotiques à grande échelle.
Quelqu’un a-t-il déjà vu un cas réel d’attestations concurrentes sur un bloc Dusk ? @Dusk #dusk $DUSK
Mon oncle à Peshawar siège dans un petit comité de mosquée où chaque membre obtient exactement un vote, quelle que soit la somme qu’il a donnée au fonds de construction. J’ai supposé que les comités de vote de Dusk fonctionnaient de la même manière : un provisioner choisi équivaut à un vote comptabilisé, un simple décompte des personnes pour le quorum.
Cette hypothèse s’est effondrée quand j’ai lu comment les votes sont réellement pondérés au sein d’un comité. Chaque membre détient un certain nombre de crédits, et ces crédits proviennent directement du processus de sélection déterministe dont je parlais plus tôt. Un comité dispose d’un total fixe de 64 crédits répartis entre les provisioners sélectionnés. Lors du comptage des votes, le vote d’un membre n’est pas compté une seule fois : il est multiplié par le nombre de crédits qu’il détient. Quelqu’un qui a 3 crédits équivaut à 3 votes vers le quorum.
Cela redéfinit ce que signifie même le quorum ici. Atteindre une supermajorité des deux tiers ne dépend pas des deux tiers des personnes présentes qui sont d’accord, mais des deux tiers des 64 crédits qui sont d’accord. Un comité pourrait théoriquement compter moins de provisioners individuels, tout en atteignant rapidement le quorum si quelques-uns détiennent un poids de crédits important. Les votes sont aussi agrégés à l’aide de signatures BLS, avec un bitset qui indique précisément quels membres sont inclus, ce qui rend la vérification efficace même avec des votes pondérés.
Ce que la note blanche ne précise pas, c’est à quelle fréquence la distribution des crédits devient réellement déséquilibrée dans un comité donné, plutôt que de rester assez régulière. Sans données réelles, je ne peux pas dire à quel point c’est fréquent que certains membres aient un poids élevé.
Le vrai test pour DUSK est de savoir si le vote pondéré par les crédits reste équitable quand, avec le temps, moins de gros détenteurs commencent à dominer les crédits du comité.
Quelqu’un sait-il quelle est l’écart moyen en crédits observé dans les comités Dusk réels jusqu’à présent ? @Dusk #dusk $DUSK