Bird
Raised Fist0
Blockchain / Solidityprogramming~10 mins

Ethereum Virtual Machine (EVM) in Blockchain / Solidity - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a simple EVM bytecode sequence that stops execution.

Blockchain / Solidity
bytecode = [[1]]
Drag options to blanks, or click blank then click option'
A0x56
B0x60
C0xF3
D0x00
Attempts:
3 left
💡 Hint
Common Mistakes
Using PUSH1 (0x60) instead of STOP.
Using JUMP (0x56) which jumps to a location.
Using RETURN (0xF3) which returns data.
2fill in blank
medium

Complete the code to push the value 0x05 onto the EVM stack.

Blockchain / Solidity
bytecode = [[1], 0x05]
Drag options to blanks, or click blank then click option'
A0x60
B0x01
C0x50
D0x56
Attempts:
3 left
💡 Hint
Common Mistakes
Using JUMP (0x56) instead of PUSH1.
Using POP (0x50) which removes from stack.
Using ADD (0x01) which adds top stack items.
3fill in blank
hard

Fix the error in the code to correctly add two numbers on the EVM stack.

Blockchain / Solidity
bytecode = [0x60, 0x03, 0x60, 0x04, [1]]
Drag options to blanks, or click blank then click option'
A0x50
B0x01
C0x02
D0x56
Attempts:
3 left
💡 Hint
Common Mistakes
Using JUMP (0x56) instead of ADD.
Using POP (0x50) which removes stack items.
Using MUL (0x02) which multiplies instead of adds.
4fill in blank
hard

Fill both blanks to create bytecode that pushes 0x02 and 0x03, then multiplies them.

Blockchain / Solidity
bytecode = [[1], 0x02, [2], 0x03, 0x02]
Drag options to blanks, or click blank then click option'
A0x60
B0x01
D0x03
Attempts:
3 left
💡 Hint
Common Mistakes
Using ADD (0x01) or MUL (0x02) instead of PUSH1 for pushing values.
Mixing up opcodes for pushing and arithmetic.
5fill in blank
hard

Fill all three blanks to push 0x04 and 0x05, add them, then stop execution.

Blockchain / Solidity
bytecode = [[1], 0x04, [2], 0x05, 0x01, [3]]
Drag options to blanks, or click blank then click option'
A0x60
B0x01
C0x00
D0x50
Attempts:
3 left
💡 Hint
Common Mistakes
Using POP (0x50) instead of STOP.
Forgetting to push both values.
Using wrong opcode for addition or stop.

Practice

(1/5)
1. What is the main role of the Ethereum Virtual Machine (EVM) in the Ethereum network?
easy
A. It executes smart contract bytecode to run decentralized applications.
B. It stores user account balances and transaction history.
C. It mines new Ethereum blocks using proof of work.
D. It manages the Ethereum wallet user interface.

Solution

  1. Step 1: Understand EVM's purpose

    The EVM is a virtual computer that runs smart contracts on Ethereum.
  2. Step 2: Identify correct role

    It executes compiled bytecode from smart contracts, enabling decentralized apps to run safely and consistently.
  3. Final Answer:

    It executes smart contract bytecode to run decentralized applications. -> Option A
  4. Quick Check:

    EVM runs smart contracts = B [OK]
Hint: EVM runs code, not stores or mines [OK]
Common Mistakes:
  • Confusing EVM with blockchain storage
  • Thinking EVM mines blocks
  • Mixing EVM with wallet software
2. Which of the following is the correct way to represent a simple EVM instruction to add two numbers?
easy
A. ADD 5 3
B. PUSH1 5 PUSH1 3 ADD
C. LOAD 5 3 ADD
D. SUM 5 3

Solution

  1. Step 1: Recall EVM instruction format

    EVM uses stack operations like PUSH1 to push values, then ADD to add top stack items.
  2. Step 2: Identify correct instruction sequence

    "PUSH1 5 PUSH1 3 ADD" pushes 5 and 3, then adds them on the stack.
  3. Final Answer:

    PUSH1 5 PUSH1 3 ADD -> Option B
  4. Quick Check:

    Push values then add = C [OK]
Hint: EVM uses PUSH and then operation instructions [OK]
Common Mistakes:
  • Using invalid instructions like ADD 5 3 directly
  • Confusing LOAD with PUSH
  • Using non-EVM commands like SUM
3. Given this EVM bytecode snippet:
PUSH1 0x02
PUSH1 0x03
ADD

What is the result on the stack after execution?
medium
A. 0x05
B. 0x06
C. 0x23
D. 0x00

Solution

  1. Step 1: Understand PUSH1 and ADD operations

    PUSH1 0x02 pushes 2, PUSH1 0x03 pushes 3, ADD adds top two stack values.
  2. Step 2: Calculate addition result

    2 + 3 = 5, so 0x05 remains on the stack.
  3. Final Answer:

    0x05 -> Option A
  4. Quick Check:

    2 + 3 = 5 = 0x05 [OK]
Hint: Add pushed hex values on stack [OK]
Common Mistakes:
  • Adding hex as strings instead of numbers
  • Confusing 0x02 + 0x03 as 0x06
  • Misreading PUSH1 as PUSH2
4. Identify the error in this EVM bytecode sequence:
PUSH1 0x01
ADD
medium
A. No error; code is correct.
B. PUSH1 opcode is invalid.
C. ADD cannot be used after PUSH1.
D. Missing second operand on stack for ADD instruction.

Solution

  1. Step 1: Check stack before ADD

    PUSH1 0x01 pushes one value, but ADD needs two values on stack.
  2. Step 2: Identify missing operand

    Since only one value is pushed, ADD causes stack underflow error.
  3. Final Answer:

    Missing second operand on stack for ADD instruction. -> Option D
  4. Quick Check:

    ADD needs two stack values [OK]
Hint: ADD requires two values on stack [OK]
Common Mistakes:
  • Assuming ADD works with one operand
  • Thinking PUSH1 is invalid
  • Believing code is correct as is
5. You want to write an EVM bytecode sequence that calculates (4 + 5) * 3. Which sequence correctly achieves this?
hard
A. PUSH1 0x03 PUSH1 0x04 ADD PUSH1 0x05 MUL
B. PUSH1 0x04 PUSH1 0x05 MUL PUSH1 0x03 ADD
C. PUSH1 0x04 PUSH1 0x05 ADD PUSH1 0x03 MUL
D. PUSH1 0x04 PUSH1 0x03 MUL PUSH1 0x05 ADD

Solution

  1. Step 1: Understand operation order

    (4 + 5) * 3 means add 4 and 5 first, then multiply by 3.
  2. Step 2: Match EVM instructions to operations

    PUSH1 0x04 PUSH1 0x05 ADD pushes 4 and 5, adds them; then PUSH1 0x03 MUL multiplies result by 3.
  3. Step 3: Check other options

    Options B, C, and D change operation order or operands, producing incorrect results (B: 23, C: 35, D: 17).
  4. Final Answer:

    PUSH1 0x04 PUSH1 0x05 ADD PUSH1 0x03 MUL -> Option C
  5. Quick Check:

    Add then multiply = A [OK]
Hint: Add first, then multiply in EVM code [OK]
Common Mistakes:
  • Changing operation order incorrectly
  • Confusing MUL and ADD positions
  • Ignoring operator precedence
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard