P13-L02 · P13 · P13-M01
Reconstruct a sanitized malicious approval sequence
Prerequisites: P13-L01
Learning objectives
- Reconstruct a sanitized malicious approval sequence
- Reconstruct a sanitized approval and spending sequence while separating authorization, movement and deception claims.
Why this matters
An approval can authorize a spender without itself moving funds. Confusing approval with loss conceals which later record would establish an actual asset transfer.
Explanation
Separate the proposed sequence into records: user-facing representation, authorization change, attempted spend and observed movement. ERC-20 allowance is a technical spending permission; an approval event does not alone show a completed transfer. A successful transferFrom-style movement requires the relevant execution/receipt and state reconciliation. A signature-based authorization has its own scheme and scope; do not generalize ordinary approve semantics to every signed message.
Preserve exact asset, owner, spender, amount, network and time basis for a real case. Here use non-executable paper labels only. If a displayed page promises one action while a stipulated authorization grants another, report that inconsistency. Deception or coercion claims require admissible evidence about representation and context; a broad allowance is a control exposure, not automatic criminal intent.
Never ask a learner to connect a wallet, sign, grant approval, send funds or provide a seed/private key to demonstrate the mechanism. Work from sanitized records. Real incident response can require context-specific expertise; this lesson is an evidence-reading exercise, not a transaction procedure.
Key terms
Allowance: technical spending authorization for a spender.
Approval: permission update, distinct from actual movement.
Spending event: execution evidence that assets moved under a capability.
Representation conflict: promised action differs from granted control.
Historical example
ILLUSTRATIVE: a paper page P promises “claim 10 units.” Record R1 stipulates that owner W grants spender S allowance 1000 for asset T. Record R2 stipulates that S successfully moves 400 T from W to D; receipt R2 exists only as an invented exercise row. The page capture does not identify a human operator.
Visual specifications
Contract-permissions timeline P→R1 authorization→R2 movement with separate amounts 10/1000/400 and an unknown-identity lane. No active URLs or executable approval instruction.
Caption: Fictional sanitized approval sequence; authorization and completed movement are distinct records.
SPECIFICATION_ONLY — the rendered visual has not been produced or independently reviewed.
What the evidence proves
Within the fixture, R1 changes permission and R2 records a 400-unit movement. The 10-unit claim text conflicts with the 1000-unit permission scope.
What the evidence does not prove
It proves no real phishing site, live signature, actual wallet loss, operator identity or criminal intent. R1 alone would not establish any movement; a later revocation would not undo R2.
Common mistakes
Calling approval itself a transfer; using an unlimited permission label as proof of fraud; inventing a missing receipt; asking a learner to sign to test the scenario.
Practical exercise
Build a four-column sequence for P,R1,R2 and identity. Calculate remaining stipulated allowance under the exercise’s simple reduction assumption and state how the conclusion changes if R2 is absent.
Show worked correction
P: attributed fictional 10-unit claim representation. R1: fictional permission 1000 T to S. R2: fictional successful movement 400 T to D. Identity:unknown. Under the stipulated ordinary allowance reduction assumption, remaining=1000−400=600; actual implementations may differ and require inspection. Without R2, only authorization exposure and representation mismatch are supported, not completed loss. Even with R2, technical movement does not identify the operator or independently establish intent. No wallet interaction is needed.
Checklist
- Separate representation, approval and movement.
- Bind each row to asset/owner/spender/network.
- Do not invent absent execution records.
- Use sanitized offline inputs with no signatures or funds.
Summary
Approval abuse analysis needs both the permission record and movement evidence, with representation and identity claims assessed separately.
Summary
- Approval is not a transfer.
- A later spending record can establish movement within its scope.
- Technical authorization does not identify a human or prove intent.
Next lesson
P13-L03
Tools
Use the named ZECOIN tool only as an evidence-reading context. This lesson creates no tool output, account session or entitlement. Offline exercise; do not sign, deploy, approve or fund anything.
Sources & claim boundaries
- ERC20: ERC-20 standard — Token interface and allowance semantics; the standard does not establish issuer identity or safe permissions. Boundary: Mechanism documentation only; original illustrative values are stipulated, not observations. Historical records have separately frozen provenance and explicit collection gaps.
Evidence classifications
ILLUSTRATIVE — entirely fictional offline inputs; no current observation.
Observation date
null — no real observation
Content version
1
Review date
null
Review status
needs_review
Visual specifications
P13-L02-V01
Reconstruct a sanitized malicious approval sequence
Fictional sanitized approval sequence; authorization and completed movement are distinct records.
Contract-permissions timeline P→R1 authorization→R2 movement with separate amounts 10/1000/400 and an unknown-identity lane. No active URLs or executable approval instruction.
Contract-permissions timeline P→R1 authorization→R2 movement with separate amounts 10/1000/400 and an unknown-identity lane. No active URLs or executable approval instruction.
Stack observations, assumptions, gaps and conclusion at 390 px; retain full IDs and a complete text equivalent. Any wide table scrolls locally.
Prose may follow RTL; IDs, quantities and time axes remain LTR. Preserve dependency direction.
P13-L02-ILLUSTRATIVE-v1
Sources & claim boundaries
ERC20 · PRIMARY_DOCUMENTATION
ERC-20 standard
- Supported claim
- Token interface and allowance semantics; the standard does not establish issuer identity or safe permissions.
- Verification boundary
- Mechanism documentation only; original illustrative values are stipulated, not observations. Historical records have separately frozen provenance and explicit collection gaps.
- Checked at
- 2026-10-02
https://eips.ethereum.org/EIPS/eip-20
Dataset provenance
id: P13-L02-ILLUSTRATIVE-v1
dataStatus: ILLUSTRATIVE
observedAt: null
source: Original offline scenario in realOrHistoricalExample
scope: Fictional stipulated labels and values. No wallet, deployment, transaction, token launch or production observation.