Vecteur d'attaque de réentruisance sur les contrats intelligents Tezos?
2 réponses
- votes
-
- 2019-01-31
Michelson (et un langage deniveau supérieur comme la liquidité de lapart de celui-ci)ne permetpas à un contratintelligent d'appeler un autre contratintelligent sansengager d'abord son état/son stockage.Cela rend les attaques de réentrancementmoins susceptibles de seproduire,maispasimpossible.
Michelson (and higher level language like Liquidity on top of it) does not allow a smart contract to call another smart contract without commmitting its state/storage first. It makes reentrancy attacks less likely to happen, but not impossible.
-
Serait-ilpossible d'étendre votre réponse ou dumoins se référer à une autre source quipourraitexpliquer un cas où cela *pourrait * arriver?Would it be possible to extend your answer or at least refer to another source that could explain a case where this *could* happen?
- 0
- 2019-02-01
- latte_jed
-
- 2019-02-03
Appeler un autre contratintelligent,vous appeleztransfert_tokens.
La sémantique de l'évaluation des contrats a été adaptée (autour de l'alphanet,je ne suispas vraiment sûr lorsque cela s'estproduit) de sorte quetoutes lestransactions/opérationstelles que Transfer_Tokens soient réellementexécutées après la déclaration d'évaluation du contrat.
Celaimplique que le contratn'estpas soumis à la réentruisanceimmédiate.
To call another smart contract, you call TRANSFER_TOKENS.
The semantics of contract evaluation has been adapted (around alphanet, I'm not exactly sure when this happened) so that all transactions/operations such as TRANSFER_TOKENS are really executed after the contract evaluation returns.
This implies that the contract is not subject to immediate reentrancy.
J'aientendu dire que Michelson aide à éviter lesbugs de re-entrancy.Pourquoi donc?Y a-t-il unefonctionnalité dans la langue qui l'empêche?