Допис

Діліться своїми знаннями.

Допис

Діліться своїми знаннями.

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, щоб гарантувати вам найкращий досвід на нашому сайті.
Детальніше