Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Detect calls to Precompiled Contracts #10

@acuarica

Description

@acuarica

The Yellow Paper defines[1] a set of precompiled contracts when sending messages to a set of predefined addresses

these are so-called ‘precompiled’ contracts, meant as a preliminary piece of architecture that may later become native extensions. The contracts in addresses 1 to 9 execute the elliptic curve public key recovery function, the SHA2 256-bit hash scheme, the RIPEMD 160-bit hash scheme, the identity function, arbitrary precision modular exponentiation, elliptic curve addition, elliptic curve scalar multiplication, an elliptic curve pairing check, and the BLAKE2 compression function F respectively.

Detect whether there is a call to any of these contracts and use symbols to represents these calls.

See [2,3] for a definition of these precompiled contracts, their inputs and outputs.
Moreover, to see Geth's implementation, check[4,5].


[1] https://ethereum.github.io/yellowpaper/paper.pdf#section.8
[2] https://ethereum.github.io/yellowpaper/paper.pdf Appendix E. Precompiled Contracts
[3] https://www.evm.codes/precompiled?fork=merge
[4] https://github.com/ethereum/go-ethereum/blob/v1.10.18/core/vm/contracts.go#L45-L93
[5] https://github.com/ethereum/go-ethereum/blob/v1.10.18/core/vm/evm.go#L214-L231

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or request

    Projects

    Status

    Todo

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions