CBSE Blockchain System Testing 3 — Questions and Answers
Question 1: Which consensus-layer test verifies that a Byzantine node cannot force honest nodes to accept an invalid block?
- Byzantine fault tolerance (BFT) test (Correct answer)
- Sybil resistance test
- Throughput benchmark
- Peer discovery test
Correct answer: Byzantine fault tolerance (BFT) test
BFT testing injects nodes that send conflicting or invalid messages and checks whether honest nodes still reach correct consensus.
Question 2: What is the primary goal of 'state explosion testing' in blockchain smart contract analysis?
- Measuring transaction throughput under high load
- Identifying all reachable contract states to uncover hidden execution paths (Correct answer)
- Testing that contract storage is wiped after self-destruct
- Verifying EVM opcode gas costs
Correct answer: Identifying all reachable contract states to uncover hidden execution paths
State explosion testing enumerates all possible contract states to find execution paths that lead to unintended or insecure behavior.
Question 3: During a blockchain node stress test, which metric best indicates the onset of a memory exhaustion denial-of-service condition?
- Block propagation latency
- Mempool size growing unbounded while node RAM utilization spikes (Correct answer)
- Peer count dropping below minimum
- Hash rate fluctuation
Correct answer: Mempool size growing unbounded while node RAM utilization spikes
An unbounded mempool combined with spiking RAM indicates the node cannot evict or process transactions fast enough, leading to memory exhaustion.
Question 4: A smart contract allows the owner to withdraw all Ether with a single function call with no time-lock. Which test case best captures the associated risk?
- Call the withdraw function as a non-owner and verify it reverts
- Test that the contract balance matches expected deposits
- Test that the owner can drain all funds instantly, simulating a rug-pull scenario (Correct answer)
- Verify that the function emits a Transfer event
Correct answer: Test that the owner can drain all funds instantly, simulating a rug-pull scenario
Simulating an owner-initiated full drain reveals the rug-pull risk that users face when a contract has unrestricted withdrawal authority.
Question 5: In blockchain interoperability testing, what does a 'cross-chain replay attack' test verify?
- That signed transactions on one chain cannot be rebroadcast and executed on a different chain (Correct answer)
- That bridge contracts correctly validate Merkle proofs
- That relayer nodes forward messages within acceptable latency
- That chain IDs are correctly embedded in block headers
Correct answer: That signed transactions on one chain cannot be rebroadcast and executed on a different chain
Cross-chain replay attack testing confirms that transaction signatures are chain-specific and cannot be reused on a different network.
Question 6: Which testing approach is most appropriate for validating that a permissioned blockchain's access control policies are correctly enforced at the network layer?
- Unit testing of smart contract modifiers
- Network-level penetration testing with unauthorized node identities (Correct answer)
- Gas profiling of transactions
- Merkle root verification
Correct answer: Network-level penetration testing with unauthorized node identities
Network-level penetration testing using unauthorized node certificates or identities directly tests whether the permissioning layer rejects unauthorized participants.
Question 7: What does 'differential testing' between two Ethereum client implementations (e.g., Geth and Nethermind) primarily detect?
- Performance regressions in a single client
- Consensus bugs where clients disagree on the canonical chain (Correct answer)
- Memory leaks in JSON-RPC handlers
- Differences in default gas price settings
Correct answer: Consensus bugs where clients disagree on the canonical chain
Differential testing feeds identical inputs to both clients and flags discrepancies that indicate consensus or EVM execution bugs.
Which consensus-layer test verifies that a Byzantine node cannot force honest nodes to accept an invalid block?