Move.

Пост

Поделитесь своими знаниями.

Bolke .
Apr 02, 2025
Экспертные Вопросы и Ответы

Можно ли использовать случайность в публичных функциях, не связанных с входом, в Move?

Я новичок в использовании случайности в программировании Move. В документации предлагается использовать случайное значение только в функциях ввода. Однако я рассматриваю возможность использования случайности для задания значений, а не для разветвления кода. Можно ли таким образом использовать случайность в публичной функции?

  • Move CLI
  • Move
1
1
Поделиться
Комментарии
.

Ответы

1
Ramirez.
Apr 2 2025, 22:45

Не обязательно. Например, если вы определяете публичную функциюfoo(Random, SharedObj, ...), злоумышленник может воспользоваться ею, создав функцию, напримерattack(Random, SharedObj, ...), вызывающую вашу функцию. Затем злоумышленник может проверить изменения в общем объекте и решить, следует ли прервать транзакцию в зависимости от ее нового состояния. Эта атака похожа на атаку, описанную в документации Sui по случайности, но включает в себя совместное состояние. Даже если конфиденциальные поля не будут раскрыты, злоумышленник может сериализовать и анализировать состояние объекта. Таким образом, они всегда могут «выиграть» или «прервать», но никогда не проиграть. Если это приемлемо для вашего варианта использования, вы можете использовать общедоступную функцию и отключить предупреждение.

0
Лучший ответ
Комментарии
.

Знаете ответ?

Пожалуйста, войдите в систему и поделитесь им.

Мы используем файлы cookie, чтобы гарантировать вам лучший опыт на нашем сайте.
Подробнее