← IGCSE Computer Science Paper 1

Why records that cannot be altered matter

A record that cannot be changed once saved, so no one can cheat by editing an amount or deleting a payment, and everyone can trust the ledger.

Understanding Why records that cannot be altered matter in IGCSE Computer Science Paper 1

What it does: If no one can change past records, users can rely on the ledger. That builds trust in the currency. The cheat fails because the edited record does not match the other copies, so it is rejected and the original record remains. Immutable means it cannot be changed by anyone, including the person who made the transaction. Because saved records cannot be removed, Leo cannot pretend the payment never happened. The mistake is thinking a saved amount can be edited. Unalterable records stop people changing an amount to cheat.

Common mistakes: The ledger should only reject a delete request when the record is locked (cannot be altered). Checking for an empty record does not stop anyone removing a payment. The line should be IF record IS LOCKED THEN. The saved record cannot be altered, so the cheat of changing 20 to 5 fails. The message should say the change is blocked, not allowed.

Class: _____________________  ·  Name: _____________________  ·  Date: _________

Free printable worksheet with full answer key — or add this module to a class and your students practise it interactively.

This module's key terms are also in a printable crossword (Modules 510–519) and word search (Modules 510–546).

Take this worksheet further — free with Cloodit

Each concept is reinforced from every angle — learned, then applied, then tested.

Learning
Duo
Why does a ledger that cannot be altered build trust in a digital currency?
Nobody can secretly change past records, so everyone can rely on the ledgerIt makes every transaction happen faster than before
Matches
Ben edits his old payment from 20 to 2 and the ledger accepts it
↓
In a ledger with unalterable records, the edit would be rejected. Saved amounts cannot be changed afterwards.
Applying
Meanings
Term
immutable record
Meaning
A record that cannot be changed once saved, so no one can cheat by editing an amount or deleting a payment, and everyone can trust the ledger.
Practice
saved_hash ← HASH(record)
Testing
Gaps
IF newAmount record.amount THEN
Check Answer
Spots
1IF record IS EMPTY THEN
2 REJECT delete request

Cloodit turns curriculum-aligned coding content into journeys students work through one biome at a time.

The 'Armadillo' badge — Shield Bearer, one of Cloodit's 106 collectible badges
Students earn collectable badges

Over 100 of them, across seven natural biomes.

Study Buddy
Students build a real study resource

Turns their work into revision material ready for Flash Cards and Exam study.

Diamond Dash — one of Cloodit's live, competitive Sprint games
Students lock in with Sprints

Live, competitive practice for the start of the lesson or a teacher-led lesson finisher.

A Cloodit certificate of achievement, ready to personalise and print
Custom printable certificates

Honour your top performers, or encourage a student who's trying hard — ready to print in seconds.

Quick Questions

1. Why does a ledger that cannot be altered build trust in a digital currency?
A. It makes every transaction happen faster than before
B. Nobody can secretly change past records, so everyone can rely on the ledger ✓
Trust comes from knowing the past records are fixed. Speed is a different feature and is not the reason for trust.
2. Ava paid Ben 50 coins. Later Ava tries to edit the record to say 5 coins. What happens on a ledger that cannot be altered?
A. The change is rejected and the record still says 50 coins ✓
B. The record changes to 5 coins and Ben loses money
An unalterable record cannot be edited after it is saved, so Ava's cheat fails.
3. Which cheat does an unalterable ledger stop?
A. Choosing which digital wallet to use
B. Deleting a payment you made so it looks like you never paid ✓
Removing a payment would change the past. An unalterable ledger stops this, so the payment stays on record.
4. What is the main danger if a ledger records CAN be altered?
A. People could cheat by changing amounts or removing payments ✓
B. The ledger would use too many time-stamps
If records can be edited, dishonest users could change the past, and nobody could trust the ledger.
5. Zoe says: 'I will change the amount in an old transaction to get more money.' Will this work on an unalterable ledger?
A. No, the old amount is fixed and cannot be changed afterwards ✓
B. Yes, as long as she changes it before anyone checks
An unalterable record cannot be changed once saved, no matter when or who tries. Timing does not help the cheat.

Match the Pairs

amount = 50 -> amount = 5 → A cheat that tries to change a saved payment amount afterwards, which an unalterable record stops
delete payment #204 → A cheat that tries to remove a payment from the ledger, which cannot work if records cannot be altered
Because saved records cannot be changed, everyone can trust the ledger and the currency → trust = records_unchanged
A cheat fails when the changed record no longer matches the shared copies → if edited_copy != shared_copies: reject
Ben edits his old payment from 20 to 2 and the ledger accepts it → In a ledger with unalterable records, the edit would be rejected. Saved amounts cannot be changed afterwards.
Records can be altered, so everyone can trust the ledger → If records could be altered, no one could trust the ledger. Trust exists because records cannot be altered.

Key Term

immutable record
A record that cannot be changed once saved, so no one can cheat by editing an amount or deleting a payment, and everyone can trust the ledger.

Fill in the Blanks

1. IF newAmount != record.amount THEN OUTPUT "Change rejected" ENDIF
Hint: Type the operator that checks the two amounts are not equal.
2. IF action = "DELETE" THEN OUTPUT "Payments cannot be removed" ENDIF
Hint: Type the keyword that displays a message to the user.
3. ledgerChanged ← FALSE trusted ← NOT ledgerChanged
Hint: Type the logic operator that reverses a TRUE or FALSE value.
4. savedAmount ← 50 newAmount ← 500 cheatFailed ← newAmount != savedAmount
Hint: Type the variable that holds the original amount stored in the record.
5. ledger.add(payment) payment.locked ← TRUE
Hint: Type the Boolean value that shows the saved record is locked.

Spot the Error

Question 1
A IF record IS EMPTY THEN
B REJECT delete request
C ENDIF
Line A — The ledger should only reject a delete request when the record is locked (cannot be altered). Checking for an empty record does not stop anyone removing a payment. The line should be IF record IS LOCKED THEN.
Question 2
A SAVE 20 TO ledger
B TRY TO CHANGE 20 TO 5
C OUTPUT "Change allowed"
Line C — The saved record cannot be altered, so the cheat of changing 20 to 5 fails. The message should say the change is blocked, not allowed.
Question 3
A IF payment NOT IN ledger THEN
B REJECT delete request
C ENDIF
Line A — A delete request must be rejected when the payment IS in the ledger. A saved payment cannot be removed afterwards. The condition should be IF payment IN ledger THEN.
Question 4
A FOR EACH payment IN ledger
B LOCK payment
C NEXT payment
D trusted ← FALSE
Line D — Every payment has been locked so none can be changed or removed, which means everyone can trust the ledger. trusted should be set to TRUE.
Question 5
A SAVE payment TO ledger
B UNLOCK payment
C TRY payment.amount ← 5
D OUTPUT "Edit failed"
Line B — The payment must be locked after saving so that its amount cannot be changed later. UNLOCK would let a cheat edit the amount. The line should be LOCK payment.

Student with a class code? Join your class →