Link to this headingERC
Link to this headingEIP-155: Simple replay attack protection
To prevent replay attacks by adding a block_node_number to the elements
Link to this headingERC-20 Token Standard
This standard provides basic functionality to transfer tokens, as well as allow tokens to be approved so they can be spent by another on-chain third party.
Link to this headingERC-1967 Proxy
Standard: EIP-1967
Purpose: Defines standardized storage slots for proxy contracts to avoid conflicts with implementation contract data.
Common Use: Widely used in upgradeable smart contracts via the Transparent Proxy and UUPS (Universal Upgradeable Proxy Standard) patterns.
Key Features:
- Uses specific storage slots (e.g.,
0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBCfor implementation address) to avoid storage collisions. - Enables upgradeability by separating logic (implementation contract) from storage (proxy contract).
- Facilitates delegatecall to the implementation contract.
Security Considerations:
- Access control is crucial—usually combined with Ownable or AccessControl.
- Improper upgrades can brick the proxy.
In Practice:
- Used by OpenZeppelin’s
TransparentUpgradeableProxyandUUPSUpgradeable. - Compatible with EIP-1822 (UUPS) for self-upgradeability.
Link to this headingERC-1822: Universal Upgradeable Proxy Standard (UUPS)
Creates a universal way to make a proxy contract that separates the code from the proxy.