Beitrag
Teile dein Wissen.
Können Sie Zufälligkeit in öffentlichen Funktionen ohne Zutritt in Move verwenden?
Ich bin neu in der Verwendung von Zufälligkeit in der Move-Programmierung. In der Dokumentation wird vorgeschlagen, Random nur in Eingabefunktionen zu verwenden. Ich erwäge jedoch, Zufälligkeit zu verwenden, um Werte festzulegen, nicht für Verzweigungscode. Ist es in Ordnung, Zufälligkeit in einer öffentlichen Funktion auf diese Weise zu verwenden?
- Move CLI
- Move
Antworten
1Nicht unbedingt. Wenn Sie beispielsweise eine öffentliche Funktion definierenfoo(Random, SharedObj, ...)
, kann ein Angreifer dies ausnutzen, indem er beispielsweise eine Funktion erstelltattack(Random, SharedObj, ...)
, die Ihre Funktion aufruft. Der Angreifer kann dann Änderungen am gemeinsamen Objekt überprüfen und anhand des neuen Zustands entscheiden, ob die Transaktion abgebrochen werden soll. Dies ähnelt einem Angriff, der in der Sui-Dokumentation zum Thema Zufälligkeit beschrieben wird, beinhaltet jedoch einen gemeinsamen Status. Selbst wenn sensible Felder nicht offengelegt werden, könnte ein Angreifer den Zustand des Objekts serialisieren und analysieren. Daher könnten sie immer „gewinnen“ oder „abbrechen“, aber niemals „verlieren“. Wenn dies für Ihren Anwendungsfall akzeptabel ist, könnten Sie mit der Verwendung einer öffentlichen Funktion fortfahren und die Warnung unterdrücken.
Weißt du die Antwort?
Bitte melde dich an und teile sie.
Move is an executable bytecode language used to implement custom transactions and smart contracts.