Publicación
Comparte tu conocimiento.
¿Se puede usar la aleatoriedad en las funciones públicas de Move que no son de entrada?
Soy nuevo en el uso de la aleatoriedad en la programación de Move. La documentación sugiere usar el azar solo en las funciones de entrada. Sin embargo, estoy considerando usar la aleatoriedad para establecer valores, no para el código de bifurcación. ¿Está bien usar la aleatoriedad en una función pública de esta manera?
- Move CLI
- Move
Respuestas
1No necesariamente. Si defines una función pública, por ejemplofoo(Random, SharedObj, ...)
, un atacante puede aprovecharla creando una función, por ejemploattack(Random, SharedObj, ...)
, que llame a tu función. A continuación, el atacante puede inspeccionar las modificaciones del objeto compartido y decidir si aborta la transacción en función de su nuevo estado. Es similar a un ataque descrito en la documentación de Sui sobre la aleatoriedad, pero implica un estado compartido. Incluso si los campos sensibles no están expuestos, un atacante podría serializar y analizar el estado del objeto. Por lo tanto, siempre podían «ganar» o «abortar», pero nunca «perder». Si esto es aceptable para su caso de uso, puede continuar con el uso de una función pública y suprimir la advertencia.
Sabes la respuesta?
Inicie sesión y compártalo.
Move is an executable bytecode language used to implement custom transactions and smart contracts.