tezos 스마트 계약에 대한 재진입 공격 벡터?
2 대답
- 투표
-
- 2019-01-31
Michelson (및 그 위에있는 Liquidity와 같은 고급 언어)은 상태/저장을 먼저 커밋하지 않고 스마트 계약이 다른 스마트 계약을 호출하는 것을 허용하지 않습니다.재진입 공격이 발생할 가능성이 적지 만 불가능하지는 않습니다.
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.
-
답변을 확장하거나 적어도 이것이 * 가능 * 한 경우를 설명 할 수있는 다른 출처를 참조 할 수 있습니까?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
다른 스마트 계약을 호출하려면 TRANSFER_TOKENS로 전화하세요.
계약 평가의 의미 체계가 조정되어 (알파넷 주변에서 이것이 언제 발생했는지 정확히 모르겠습니다) TRANSFER_TOKENS와 같은 모든 트랜잭션/작업이 실제로 계약 평가가 반환 된 후에 실행됩니다.
이것은 계약이 즉각적인 재진입의 대상이 아님을 의미합니다.
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.
Michelson이 재진입 버그를 방지하는 데 도움이된다고 들었습니다.왜 그런 겁니까?언어에이를 방지하는 기능이 있습니까?