0
0
Blockchain / Solidityprogramming~5 mins

Proxy pattern (upgradeable contracts) in Blockchain / Solidity - Cheat Sheet & Quick Revision

Choose your learning style9 modes available
Recall & Review
beginner
What is the Proxy pattern in upgradeable contracts?
The Proxy pattern is a design that separates contract logic from data storage. It uses a proxy contract to forward calls to a logic contract, allowing the logic to be upgraded without changing the contract address.
Click to reveal answer
beginner
Why do upgradeable contracts use a proxy?
Because blockchain contracts are immutable, a proxy allows changing the logic by pointing to a new implementation contract, while keeping the same address and stored data.
Click to reveal answer
beginner
What is the role of the implementation contract in the Proxy pattern?
The implementation contract contains the actual business logic and functions. The proxy delegates calls to it while storing the data itself.
Click to reveal answer
intermediate
How does the proxy forward calls to the implementation contract?
The proxy uses a special low-level function called 'delegatecall' to execute the implementation's code in the proxy's context, preserving storage and address.
Click to reveal answer
intermediate
What is a common risk when using the Proxy pattern in upgradeable contracts?
Incorrect storage layout between proxy and implementation can cause data corruption. Also, malicious upgrades can change logic unexpectedly.
Click to reveal answer
What does the proxy contract store in upgradeable contracts?
AOnly the contract data
BNeither logic nor data
CBoth logic and data
DOnly the contract logic
Which function is used by the proxy to execute the implementation's code?
Atransfer
Bsend
Ccall
Ddelegatecall
Why is the Proxy pattern important for upgradeable contracts?
AIt prevents any changes to the contract
BIt allows changing the contract address
CIt allows changing the contract logic without changing the address
DIt stores all contract data off-chain
What can happen if storage layouts differ between proxy and implementation?
AData corruption or unexpected behavior
BThe contract will run faster
CThe proxy will ignore the implementation
DThe implementation will be deleted
Which of these is NOT a component of the Proxy pattern?
AProxy contract
BStorage contract
CImplementation contract
DDelegatecall mechanism
Explain how the Proxy pattern enables contract upgrades on blockchain.
Think about separating data and logic and how calls are forwarded.
You got /4 concepts.
    Describe the risks involved in using the Proxy pattern for upgradeable contracts.
    Consider what can go wrong if data or logic changes unexpectedly.
    You got /4 concepts.