Vector de ataque de reentrada em contratos inteligentes de Tezos?
2 respostas
- votos
-
- 2019-01-31
Michelson (e linguagem denível superior,como liquidezem cima dele)nãopermite que um contratointeligente chame outro contratointeligente sem comprometer seuestado/armazenamentoprimeiro.Faz ataques de reentrânciamenospropensos a acontecer,masnãoimpossíveis.
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.
-
Seriapossívelestender sua resposta oupelomenos se referir a outrafonte quepoderiaexplicar um casoem queisso *poderia * acontecer?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
Para ligarpara outro contratointeligente,você chama detransfer_tokens.
A semântica da avaliação do contratofoi adaptada (emtorno de Alphaanet,nãotenho certeza de quandoisso aconteceu)para quetodas astransações/operações,comotransfer_tokens,são realmenteexecutadas após os retornos de avaliação do contrato.
Issoimplica que o contratonãoestá sujeito à reentradaimediata.
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.
Eu ouvi dizer que Michelson ajuda aevitar o RE-Entrancy Bug.Por que é que?Existe algum recursona linguagem queevitaisso?