Cette fois, j’ai compris quelque chose de différent : un vote en comité fonctionne comme la plupart des votes. un membre, une voix, tout le monde compte de la même façon une fois qu’il est choisi. ce n’est pas comme ça que ça marche.
Quand j’ai d’abord regardé ça, je me suis dit que 64 sièges signifiaient 64 prestataires différents à chaque tour. la vraie raison pour laquelle c’est construit ainsi a frappé plus fort.
voici pourquoi. Dusk découpe chaque comité en 64 crédits, pas en 64 personnes. la sélection par tirage au sort attribue ces crédits selon le poids de la mise. un prestataire ayant assez de mise peut s’en aller en détenant plusieurs crédits dans le même comité. ce n’est pas le nombre de personnes qui décide de votre voix, c’est le montant que vous avez mis.
Le système de récompenses le reflète exactement. les récompenses des votants sont réparties en 64 quotas, un quota par crédit qui vous a été attribué, et non une part fixe juste pour le fait de se présenter. le quorum est identique : le poids décide, pas qui siège dans la salle.
Dusk ne cache pas ça. ils ont volontairement conçu le système ainsi, en liant le pouvoir de vote à la mise exposée au risque plutôt qu’au nombre de nœuds qu’une personne peut déployer.
Ce qui empêche quelqu’un de truquer le système avec un millier de petits nœuds, c’est la même pondération par mise qui permet à un prestataire fortement misé de détenir six sièges dans le même comité.
Je n’ai toujours pas trouvé de limite documentée sur le nombre de crédits qu’un prestataire peut détenir dans un seul comité. rien de ce que j’ai trouvé pour l’instant ne précise de limite. Pour une chaîne qui se présente aux institutions en misant sur la confiance, ce n’est pas une petite question à laisser ouverte.
La partie intéressante n’est pas que la mise affecte le pouvoir de vote. c’est explicite.
La vraie question est : quelle concentration le système des 64 crédits permet en pratique.
@Dusk $DUSK #dusk J’ai compris qu’une blockchain soit finalise un bloc, soit n’avance plus du tout. Il s’avère que Dusk a construit un troisième état complet entre les deux : un état qui n’apparaît qu’après que le réseau a échoué seize fois de suite au même tour.
Quand je l’ai regardé pour la première fois, j’ai littéralement pensé que le délai croissant après chaque tour échoué n’était qu’un mécanisme de patience, destiné à lisser les lenteurs des nœuds. La vraie raison est bien plus intéressante.
Voici pourquoi. Chaque tour échoué fait attendre la tentative suivante deux secondes de plus, à partir de sept et jusqu’à un maximum de quarante. C’est conçu pour de petits accrochages : un vote lent ici, une signature manquée là. Mais rien dans cette conception n’empêche le réseau d’échouer encore et encore pour une raison réellement mauvaise ; et une chaîne qui reste là, à attendre indéfiniment, est un résultat pire qu’à peu près n’importe quel bloc isolément “mauvais”.
Ainsi, Dusk est construit autour d’une structure rigide : la durée maximale pendant laquelle un tour est autorisé à lutter. Seize tentatives échouées d’affilée et le système passe en ce qu’ils appellent le mode d’urgence. Cinquante tentatives constituent le plafond absolu pour n’importe quel tour. Et il existe un créneau spécifique, l’itération 255, réservé uniquement aux blocs d’urgence.
Ce qui a rendu cela plus intéressant pour moi, c’est que Dusk n’a pas essayé de cacher combien de temps un tour qui échoue peut encore paraître normal. Il a simplement tracé une limite nette : à partir de quand le “normal” cesse d’être compté.
Ce qui rend ce consensus patient est exactement ce qui lui permet de rester “bien” sur une longue période alors qu’il est en réalité bloqué. Dusk n’a pas raccourci cette fenêtre : il a seulement construit un mur à la fin.
Je ne sais toujours pas ce qui change réellement une fois que le mode d’urgence s’enclenche. Le même comité vote-t-il encore de la même manière ? Est-ce qu’un bloc finalisé là-bas apporte la même garantie que celui issu d’un tour “propre”. Pour une chaîne conçue autour du règlement institutionnel, ce n’est pas quelque chose que je voudrais laisser dans le flou.
Je pensais que les actions tokenisées sur chaîne étaient surtout là pour le trading : acheter une part enveloppée, la revendre plus tard, rien de plus. En fait, TermMax les utilise désormais comme garantie de prêt.
Quand j’ai lu l’annonce pour la première fois, j’ai littéralement supposé que c’était juste une autre blockchain qui ajoutait son support aux actions tokenisées, une cotation, rien de structurel. La raison réelle derrière tout ça était plus intéressante.
Les institutions ne veulent pas de taux flottants sur un capital sérieux : elles veulent connaître le coût exact de l’emprunt avant de s’y engager, comme elles le font déjà avec de vrais prêts d’actions hors chaîne. Donc @TermMax a mis en place un marché d’emprunt à taux fixe où les actions tokenisées d’Ondo peuvent servir de garantie, et on emprunte sur celles-ci avec un taux verrouillé avant même de signer, pas un taux qui dérive avec l’utilisation comme dans la plupart des prêts DeFi.
Ce qui ressort, c’est le timing. Le lancement a eu lieu en janvier, au beau milieu d’une période volatile, quand l’attrait d’un chiffre fixe plutôt que d’un chiffre variable est à son apogée. Ce n’est pas un hasard : c’est précisément le moment où un crédit à taux fixe est censé démontrer sa valeur.
Le plus drôle, c’est qu’un marché conçu pour ressembler à la finance traditionnelle tourne encore entièrement sur chaîne : pas de bureau, pas de paperasse, juste un smart contract qui conserve les actions tokenisées de quelqu’un comme garantie de la dette.
Malgré tout, je n’arrive pas à savoir ce qui se passe si le titre sous-jacent est suspendu ou radié pendant qu’un prêt est encore opEn : TermMax a-t-il prévu quelque chose, ou sommes-nous dans un territoire encore non éprouvé.
@Dusk Je me suis dit que trancher au crépuscule signifiait perdre ta mise si quelque chose tournait mal. En fait, pour la plupart des fautes, rien ne t’est réellement retiré.
Quand j’ai regardé ça pour la première fois, je pensais littéralement que le slashing doux, c’était juste un slashing dur avec un délai, une façon plus lente de perdre de l’argent. Sauf que ce qui est dessous n’a rien à voir avec l’argent.
Voici pourquoi. La plupart du temps, quand un provisionneur se tait, ce n’est pas parce qu’il attaque le réseau, c’est parce que son nœud a planté ou a manqué une mise à jour. Brûler une mise pour punir ce type de panne honnete revient à punir la même chose qu’une attaque réelle, et ça fait peur aux gens de faire tourner des nœuds. Du coup, Dusk l’a séparé en deux voies.
Le slashing dur brûle des tokens et ne concerne que des choses vraiment malveillantes, comme le double vote. Tout le reste, par exemple simplement ne pas produire un bloc quand on est sélectionné, c’est du slashing doux, et ça ne touche pas ta mise. La première faute donne un avertissement. Ensuite, après ça, 10 % fois le nombre de fautes enchaînées se fait retirer de ta mise active et déplacé vers des récompenses à la place : toujours à toi, juste exclu de la sélection pendant un certain nombre d’époques.
Donc la vraie punition n’est pas de perdre l’argent, c’est de perdre tes chances. Tu es toujours là, simplement invisible à la sélection pendant un moment.
Ce que je n’arrive pas à comprendre, c’est quand le compteur d’avertissements se réinitialise. La mise à jour de Dusk mentionne que ça se réinitialise dans certaines conditions, puis elle s’arrête sans expliquer lesquelles. Si tu as une semaine mauvaise, je ne sais pas si ça te suit pendant des mois ou si ça disparaît rapidement. Ça compte beaucoup si tu fais réellement tourner un nœud sur ce système.
@TermMax J’ai compris que tirer parti d’un protocole de prêt signifiait que je devais faire la boucle moi-même : emprunter, échanger, déposer, puis emprunter à nouveau, en quatre ou cinq transactions distinctes. Il s’avère que TermMax ne fonctionne pas comme ça.
Quand j’ai regardé ça pour la première fois, je pensais littéralement que le flash loan était surtout là pour la vitesse, un moyen de sauter quelques étapes et de gagner du temps. Le vrai problème lié au risque de timing, lui, était plus intéressant.
Faire la boucle manuellement te rend Exposé entre chaque étape : le prix peut bouger pendant ta boucle et tu ne peux rien faire tant que la transaction suivante ne se confirme pas. TermMax a dû supprimer complètement cette lacune, pas simplement l’améliorer.
Du coup, il utilise le flash loan dans la même transaction. Tu fournis ton montant de départ, le protocole emprunte le reste instantanément, achète la garantie, verrouille tout dans un seul GT, le tout avant même que la transaction ne soit réglée. Soit la position complète s’exécute au prix que tu as vu, soit rien ne se passe.
La partie ironique, c’est que le même protocole qui te construit une position à levier possède aussi une fonctionnalité appelée Smart Unwind qui la clôture automatiquement une fois que ta cible est atteinte, sans aucune intervention de ta part à ce moment-là.
La seule chose que je n’arrive pas à déterminer, c’est ce qui se passe si le prix franchit directement ta cible entre deux blocs : Smart Unwind s’exécute-t-il encore à ton chiffre, ou bien à n’importe quel prix au moment où il se déclenche enfin.
Il existe une version du staking où vous n’êtes pas celui qui stake.
Je me suis souvent dit que le staking était une opération que seul un portefeuille pouvait faire. connexion, délégation, attente. c’était le modèle partout où je l’ai utilisé auparavant.
Mais quand j’ai lu la section « abstraction du staking » @Dusk , j’ai supposé qu’il s’agissait simplement d’une délégation avec un nouveau nom. il m’a fallu quelques lectures des documents avant de comprendre que ce n’est pas ça.
En fait, tout dépend de la façon dont Dusk traite les contrats : ils peuvent détenir et gérer un état comme un portefeuille, et pas seulement exécuter une logique. Ainsi, un contrat peut staker, pas uniquement un portefeuille.
Voici la séquence. le contrat n’appelle pas directement la fonction de staking. les fonds vont d’abord dans le contrat, puis il effectue un transfert de contrat à contrat vers le contrat de stake. le désinvestissement et les récompenses fonctionnent en repassant par des callbacks. le minimum reste à 1 000 DUSK, mêmes règles d’activation que pour le staking normal.
Ce que l’on appelle « abstraction » ici ne veut pas dire moins de complexité : ça déplace simplement qui s’en charge. le staking via un portefeuille est simple parce qu’une personne prend les décisions. le staking via un contrat signifie que le code doit prendre toutes les décisions correctement, de lui-même. un seul mauvais callback et les récompenses se retrouvent bloquées.
Je ne suis toutefois pas sûr de l’endroit où se situe la responsabilité quand quelque chose casse. le contrat possède le workflow, mais le protocole conserve l’éligibilité au consensus. donc si un contrat de staking en pool se trompe, est-ce un bug de contrat ou un risque protocolaire ? je n’ai pas encore trouvé la réponse.
Une fois, un coffre DeFi a modifié ses paramètres à mon insu, sans le moindre avertissement.
Je me suis réveillé un jour : les règles d’allocation avaient changé, et ma position s’est retrouvée soudain exposée à un marché auquel je n’avais jamais accepté d’être associé. Aucun signal. Juste un vote de gouvernance passé pendant que je dormais.
Cela m’a rendu prudent face à tout ce que pourrait toucher un conservateur ou un administrateur une fois que vous avez déjà déposé.
En observant la façon dont TermMax aborde la configuration des coffres, j’ai commencé à envisager le même problème différemment. Ses contrats V2 disposent de contrôles explicites du conservateur et de changements de configuration avec délai (timelock), avec des paramètres en attente qui peuvent être soumis avant de devenir exécutables.
Cette distinction compte.
Si quelqu’un peut modifier instantanément les règles autour de votre capital déposé, vous acceptez, de fait, un nouveau profil de risque sans forcément avoir la possibilité de réagir.
Un timelock modifie cette dynamique. Vous avez un délai pour voir ce qui est proposé et décider si vous voulez toujours rester.
Mais ce qui me revient sans cesse, c’est que la confiance n’est jamais nulle.
Un timelock vous laisse du temps. Il ne vous donne pas un droit de veto.
Si un conservateur veut faire passer un changement que vous n’aimez pas, vous recevez un avertissement avant qu’il ne se produise, pas forcément la capacité de l’arrêter.
Donc la vraie question n’est pas seulement de savoir si un coffre possède un timelock.
C’est de savoir si les déposants surveillent réellement ces avertissements de suffisamment près pour faire quelque chose du temps qui leur est accordé.
@Dusk Je me suis dit qu'une conception de consensus de blockchain ne pouvait pas fonctionner contre elle-même. En réalité, Dusk a dû mettre en place quatre correctifs distincts pour que ses propres générateurs de blocs ne se sabotent pas entre eux.
Quand j'ai regardé ça pour la première fois, j'ai littéralement pensé que le calendrier prévisible des générateurs de blocs était principalement là pour l'efficacité. Le problème d'incitation en dessous était bien plus intéressant.
Voici pourquoi. Dusk sait déjà, à l'avance, qui est programmé pour générer le bloc si la tentative en cours échoue. ce n'est pas un bug, c'est ainsi que le système reste rapide. mais cela signifie que celui qui est programmé pour le deuxième tour a une raison concrète de simplement se tenir en retrait et de laisser le premier tour échouer : si ça arrive, c'est lui qui reçoit la récompense.
Dusk a donc intégré quatre correctifs directement dans le système de récompenses. Les pourvoyeurs sont payés simplement pour voter, même pour un bloc qui finit par échouer, ce qui réduit les raisons de se retenir. Une partie de la récompense du générateur dépend du nombre de votes qu'ils ont pris la peine d'inclure : ignorer des votes leur coûte donc aussi de l'argent. Le générateur programmé pour le tour suivant est banni de la possibilité de voter dans le tour en cours entièrement : ils ne peuvent donc pas aider discrètement à faire échouer. Et il y a un plafond strict sur le nombre de tours qu'une tentative de bloc peut traverser, ce qui donne un plafond à tout le jeu.
Ce qui me rend ça plus intéressant, c'est que Dusk n'a pas essayé de dissimuler la prévisibilité. il a plutôt modifié les incitations autour.
Ce qui rend ce consensus équitable est exactement ce qui le rend exploitable : en sachant qui passe ensuite. Dusk n'a pas supprimé cette prévisibilité ; ils ont simplement rendu la triche plus coûteuse que ce qu'elle rapporte.
Je ne suis encore pas sûr que cela tienne si deux générateurs programmés se retrouvent dos à dos dans le même tour, tous deux avec la même incitation au même moment. Un seul acteur malveillant, c'est une chose. Deux qui travaillent sur le même angle, c'est un test différent.
Au départ, je pensais que la liquidation sur TermMax fonctionnait comme partout ailleurs : votre garantie est vendue, le prêteur est payé, et vous récupérez le reste.
Mais en regardant TermMax de plus près, j’ai réalisé qu’il existe une autre possibilité que je n’avais pas envisagée.
La raison, c’est la liquidité. Si votre garantie est quelque chose de peu liquide, comme un RWA ou un token qui ne s’échange pas beaucoup, il pourrait ne pas y avoir assez d’acheteurs au moment où une liquidation doit avoir lieu. La vendre rapidement pourrait faire chuter le prix et laisser le prêteur avec un manque à gagner.
Ainsi, plutôt que de forcer une vente, TermMax peut se rabattre sur la livraison physique. S’il n’y a pas assez de liquidité pour liquider correctement, le prêteur ne reçoit pas de cash en retour. Il reçoit la garantie réelle de l’emprunteur, remise directement à lui. Pas de vente forcée, pas de dérapage qui grignote le Paiement.
C’est un échange assez étrange, honnêtement. Vous prêtez des stablecoins en vous attendant à récupérer des stablecoins, et selon les conditions de marché, vous pourriez finir par détenir de l’ETH… ou un token RWA que vous n’aviez jamais choisi de posséder.
Ça me fait me demander comment on évalue même ce risque au départ. Les prêteurs acceptent-ils simplement l’idée qu’ils pourraient être payés avec un autre actif, ou existe-t-il une manière de se désengager de la livraison physique avant qu’elle n’ait lieu ?
La crypto a un drôle de problème de confidentialité : dès qu’on a besoin de vérifier votre argent, vous leur donnez généralement trop d’accès.
C’est justement ce qui a attiré mon attention dans la « view key » (clé de consultation) de Phoenix.
Phoenix sépare la consultation de la dépense. une clé permet à quelqu’un d’analyser le réseau et de retrouver les transactions qui vous sont destinées. une autre clé, c’est ce qui vous donne réellement le contrôle sur les fonds.
Ainsi, vous pouvez donner à quelqu’un de la visibilité sans lui donner la capacité de dépenser.
Ce qui m’intéresse, c’est jusqu’où va cette séparation.
@Dusk utilise aussi des nœuds Prover dédiés pour le travail de calcul intensif nécessaire à la génération des preuves ZK requises par les transactions Phoenix. le calcul peut être délégué sans pour autant transmettre l’autorité qui contrôle les fonds.
C’est une distinction importante par rapport au modèle de portefeuille habituel, où l’accès à l’information et l’accès aux actifs ont tendance à se rapprocher beaucoup.
La vraie question pour moi, c’est à quel point ce pouvoir de consultation est granulaire.
que peut exactement reconstituer un détenteur de clé de consultation à partir des transactions protégées, et quelle quantité d’informations le propriétaire peut-il choisir de révéler ?
J’en ai vu assez de projets de tokenisation pour savoir que créer le token est généralement la partie facile, mais le vrai test commence après qu’il a été frappé.
C’est ce qui m’a frappé dans dusk trade. D’après la documentation de dusk, dusk trade est la couche applicative des actifs financiers tokenisés sur le réseau. Il se place au-dessus du protocole de base et transforme l’infrastructure de marché de dusk en véritables parcours orientés utilisateurs : découverte des actifs, onboarding des investisseurs, connexion au portefeuille, coordination des paiements et règlement.
Ce qui m’intéresse, c’est à quel point la pile est superposée de manière délibérée.
duskds gère le règlement, la finalité et la disponibilité des données. duskevm exécute la couche d’exécution compatible avec Solidity pour les développeurs qui ne veulent pas quitter leurs outils existants. duskvm exécute des contrats natifs en Rust/wasm directement sur la couche L1. Citadel gère l’identité, les identifiants et la divulgation sélective. dusk connect gère la découverte du portefeuille. Cinq couches distinctes, chacune fait un travail, plutôt qu’un seul contrat qui essaie de tout faire.
Il y a aussi une vraie différence avec un front-end defi typique.
Dusk trade n’est pas une interface utilisateur simplement ajoutée à un standard de token générique. Elle est construite autour de contrôles d’éligibilité, de règles de divulgation, et de la coordination de la partie « actif » avec la partie « paiement », les mécanismes concrets dont les marchés régulés ont besoin avant que quiconque n’autorise le transfert de vrais fonds.
La question la plus difficile n’a jamais été de savoir si vous pouvez frapper un token de sécurité. La question, c’est si la couche avec laquelle les gens interagissent réellement peut porter la même logique de marché que l’actif sous-jacent répond déjà. C’est cette couche que dusk trade cherche à maîtriser.
Votre banque n’a jamais vu votre solde. Pourtant, elle sait que chaque chèque que vous émettez est bon. C’est étrange et ça semble impossible !
C’est fondamentalement ce que fait @Dusk avec Hedger : il combine le chiffrement homomorphe et des preuves à divulgation nulle de connaissance (zero-knowledge proofs). Il chiffre les avoirs et les montants des transactions tout en permettant au réseau de vérifier que tout est correct, sans révéler les valeurs sous-jacentes. Et il le fait en moins de deux secondes, directement dans votre navigateur. Comme DuskEVM est compatible avec l’EVM, il fonctionne avec les outils Solidity que les développeurs connaissent déjà.
La partie intéressante, c’est aussi ce qu’il ne cherche pas à faire. Zedger a été conçu autour d’un modèle UTXO et peut offrir une anonymité plus forte, tandis que Hedger est pensé pour l’environnement EVM : il met l’accent sur les transactions et les soldes confidentiels plutôt que sur une anonymité complète. Je ne dis pas que c’est un défaut. C’est le compromis pour intégrer la confidentialité à un environnement EVM, plutôt que de demander aux développeurs de migrer vers une pile entièrement différente. Dusk explique aussi que Hedger est entièrement auditable par conception et prend en charge la divulgation sélective lorsque des participants réglementés ont besoin de preuves. Ce qui mérite encore d’être creusé, c’est la façon dont cette divulgation fonctionne concrètement : qui peut la demander et quelle autorisation est requise avant que les données chiffrées ne deviennent visibles. C’est là que « privé mais auditable » devient plus qu’un slogan.
La plupart des crypto fonctionnent selon une seule règle : personne d’autre que vous ne peut déplacer vos fonds. Dusk brise volontairement cette règle pour un type d’actif. Zedger, le protocole de Dusk pour les actifs réglementés, gère les éléments habituels, y compris l’émission et la gestion du cycle de vie des actifs. mais il apporte aussi quelque chose que la plupart des standards de tokens n’ont pas : des transferts forcés, permettant à un émetteur d’effectuer un transfert forcé d’un token de sécurité. ce que demande l’émission native, c’est précisément cela. l’intérêt de faire tourner le cycle de vie d’un actif on-chain plutôt que de simplement l’encapsuler, c’est que les opérations sur titres et l’application de la conformité doivent fonctionner de la même manière qu’en dehors de la blockchain : gels, récupérations, transferts ordonnés par un tribunal. un token qui ne peut jamais être touché par l’émetteur ne peut pas reproduire intégralement les contrôles exigés par les valeurs mobilières réglementées. je ne dis pas que c’est un défaut. c’est simplement une hypothèse différente de celle sur laquelle la crypto fonctionne d’habitude : la self-custody comme quelque chose qui peut être outrepassé dans des conditions définies, plutôt que comme un principe absolu.
ce que j’aimerais savoir, c’est ce qui autorise concrètement un transfert forcé, quelles conditions le déclenchent, et si l’émetteur seul peut l’exécuter ou si une autre partie doit aussi signer. dusk documente la capacité. le point intéressant, c’est le modèle d’autorisation exact qui la sous-tend.