Publication
Partagez vos connaissances.
Pouvez-vous utiliser le caractère aléatoire dans les fonctions publiques sans entrée dans Move ?
Je suis novice en matière d'utilisation du hasard dans la programmation de Move. La documentation suggère d'utiliser le hasard uniquement dans les fonctions de saisie. Cependant, j'envisage d'utiliser le hasard pour définir des valeurs, et non pour le code de branchement. Est-il acceptable d'utiliser le hasard dans une fonction publique de cette manière ?
- Move CLI
- Move
Réponses
1Pas nécessairement. Si vous définissez une fonction publique, par exemplefoo(Random, SharedObj, ...)
, un attaquant peut l'exploiter en créant une fonction, par exempleattack(Random, SharedObj, ...)
, qui appelle votre fonction. L'attaquant peut ensuite inspecter les modifications apportées à l'objet partagé et décider d'annuler la transaction en fonction de son nouvel état. Ceci est similaire à une attaque décrite dans la documentation Sui sur le caractère aléatoire, mais implique un état partagé. Même si les champs sensibles ne sont pas exposés, un attaquant peut sérialiser et analyser l'état de l'objet. Par conséquent, ils pouvaient toujours « gagner » ou « abandonner » mais ne jamais « perdre ». Si cela est acceptable pour votre cas d'utilisation, vous pouvez continuer à utiliser une fonction publique et supprimer l'avertissement.
Connaissez-vous la réponse ?
Veuillez vous connecter et la partager.