Publication
Partagez vos connaissances.
Conseil de sécurité Sui Move : ne laissez pas tomber la patate chaude
Dans Sui, chaque actif est un objet et chaque objet est une petite machine à états.
Un modèle d'application courant est le Hot Potato : une structure sans capacité, qui doit être consommée avant la fin de la transaction ou l'interruption complète.
Les prêts flash en dépendent souvent. Un reçu est retourné à l'emprunteur et doit être renvoyé au protocole pour prouver le remboursement.
❌ Ajouter une goutte au reçu ✅ Vous venez d'introduire un vuln critique
Désormais, l'emprunteur peut laisser tomber la patate et s'en aller sans rembourser.
La capacité de largage de Move permet à quiconque de détruire l'objet, sauf si vous l'empêchez intentionnellement en omettant la capacité de largage.
Conseil de pro : auditez chaque structure de votre protocole.
🔴 Si cela représente une obligation (comme un reçu de prêt flash), supprimez Drop 🟢 S'il ne doit pas être copié, supprimez la copie 🔵 S'il ne doit pas être mondial, supprimez store
Sui Move vous permet de contrôler de bas niveau la sémantique des actifs. Abusez ne serait-ce qu'une seule capacité et l'application de la loi est interrompue.
Manipulez les objets avec soin. Ne laissez pas tomber la patate chaude
- SDKs and Developer Tools
- Transaction Processing
Réponses
1Si Hot Potato est une structure dépourvue de capacités, pourquoi en ajouterait-on une goutte ? Par définition, il ne devrait pas avoir de drop ni aucune autre capacité.:)
De plus, je pense qu'il serait préférable d'avoir des champs supplémentaires pour le reçu, comme le montant emprunté, et de le comparer plutôt que de coder en dur 10 MIST. Cela illustrerait mieux la façon dont un reçu peut être utilisé.
Connaissez-vous la réponse ?
Veuillez vous connecter et la partager.
Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.
Gagne ta part de 1000 Sui
Gagne des points de réputation et obtiens des récompenses pour avoir aidé la communauté Sui à se développer.
- Pourquoi BCS exige-t-il un ordre de champs exact pour la désérialisation alors que les structures Move ont des champs nommés ?53
- « Erreurs de vérification de sources multiples » dans les publications du module Sui Move - Résolution automatique des erreurs43
- Échec de la transaction Sui : objets réservés pour une autre transaction25
- Comment les contraintes de capacité interagissent-elles avec les champs dynamiques dans des collections hétérogènes ?05