Your team wants to deploy the same protocol to five EVM chains, including L2s. What can go wrong and how do you prepare?
What the interviewer wants to hear
- EVM version and opcode differences (PUSH0, transient storage), precompiles
- Different block times, block.number meaning, gas pricing and L1 data fees
- Sequencer downtime, oracle availability and sequencer uptime feeds
- Token differences: bridged versions, decimals, addresses
- Cross-chain messaging trust, consistent addresses, per-chain testing and monitoring
Model answer
Chains that look EVM-compatible still differ. Some lag on opcodes like PUSH0, MCOPY or transient storage, so I set the EVM version per chain and test deployments on each. Block times and block.number differ, so time logic uses block.timestamp. Gas pricing differs too: L2s add an L1 data fee, which changes gas trade-offs. Oracles may not exist for every asset, and on rollups I check the sequencer uptime feed and plan for sequencer outages, such as giving users grace periods before liquidations. Tokens differ: USDC may be native on one chain and a bridged version on another, with different addresses and sometimes decimals, so I keep a per-chain config that is reviewed and tested. If chains talk to each other, I validate the source chain and sender of every message. I use CREATE2 for consistent addresses, run fork tests per chain, and set up monitoring on all of them.
Can you answer it under time pressure?
Take a timed hard round and get scored on every answer.
More hard Blockchain Developer questions
- You are designing a new lending protocol. What are the biggest security risks and how do you address them?
- Why have cross-chain bridges been a common target for large hacks, and how would you design a safer cross-chain system?
- What is MEV, and how would you protect your protocol's users from harmful MEV?
- How do you prepare a codebase for a security audit, and what happens after the audit?
- How do you decide what logic and data should live on chain versus off chain in a dApp?
- Your protocol is being exploited right now on mainnet. What do you do in the first hour and afterwards?
- How does EIP-7702 change assumptions that smart contracts and dApps make about EOAs, and what would you change in your code?
- How do you make sure an upgrade to a proxy-based contract does not corrupt storage or break the system?
- You are building an ERC-4626 yield vault. What design and security issues do you consider?