Back

Supply privilege abuse and restrictive transfers

P13-L04 · P13 · P13-M01

Identify observed privileged changes and remaining uncertainty

ILLUSTRATIVE · needs_review

Prerequisites: P13-L03

Learning objectives

  • Identify observed privileged changes and remaining uncertainty
  • Identify a privileged state change and bound selective-transfer conclusions to the tested scenario.

Why this matters

A mint or restriction can materially change user capabilities, but neither code presence nor one failed transfer independently proves malicious use across every wallet.

Explanation

Separate reachable capability, observed invocation, state effect and attributed intent. A function named mint is not enough: inspect its implementation, authorization and any alternative path. An observed privileged mint needs exact token identity, event/state reconciliation, block and amount. A cap slogan may be limited by upgrades or alternate roles. A restriction function may have legitimate stated purposes, but its actual effects must be tested at a defined state.

For selective transfers, name sender class, recipient, route, amount, block and execution method. A passing privileged sender does not prove ordinary users can exit; a failing ordinary scenario does not prove universal failure. Reverts can arise from balance, allowance, route, deadline, state or policy. Economic output loss also differs from nominal fees. Keep competing explanations and unresolved dependencies visible.

This fixture uses paper execution rows, not live simulations or transactions. Radar context is named by the curriculum but produces no real output here. Report each technical change within the stipulated scope and decline human/intent attribution without independent evidence.

Key terms

Capability: reachable privileged behavior.

Invocation: recorded use of that behavior.

Selective restriction: different outcomes under stated sender/route conditions.

Test scope: exact state and parameters for an execution observation.

Historical example

ILLUSTRATIVE at block B: role M stipulated mint adds 200 to supply 1000, producing 1200. At B+1, ordinary sender W fails a 10-unit transfer on route R with reason POLICY; privileged sender P passes the same stated amount/route. Balances and allowances are stipulated sufficient. Implementation and broader route coverage are absent.

Visual specifications

Contract-permissions matrix with M mint and W/P transfer rows, exact paper parameters and outcomes. Add untested-route/amount gaps rather than a universal honeypot badge.

Caption: Fictional privileged change and selective outcomes; no universal exit or intent conclusion.

SPECIFICATION_ONLY — the rendered visual has not been produced or independently reviewed.

What the evidence proves

Within the fiction, the supply arithmetic increases by 20%, and two sender scenarios have different policy outcomes. Those are bounded paper observations.

What the evidence does not prove

No actual mint, code deployment, universal transfer failure, harmful intent, controller identity or independent Radar result is established. One route and amount do not cover every exit path.

Common mistakes

Calling code presence an observed invocation; assuming privileged success proves public exit; generalizing one route to all transfers; treating a restriction as automatic fraud.

Practical exercise

Calculate supply change, write a scenario table and classify “everyone can exit,” “nobody can transfer,” and “policy differs by sender.” Name two missing tests.

Show worked correction

Supply=1000+200=1200; relative increase 200/1000=20%. Rows:W/10/R/B+1/fail POLICY;P/10/R/B+1/pass. The stipulated difference is supported for these rows. Both universal statements are not established. Missing tests include another amount and another route/state with ordinary senders; inspect implementation and authorization before attributing mechanism beyond the provided reason. Intent and identity remain insufficiently evidenced.

Checklist

  • Separate capability, invocation and effect.
  • Reconcile supply using compatible raw units.
  • Bound sender/amount/route/state.
  • Retain alternate explanations and unknown intent.

Summary

Observed privileged effects and bounded execution differences need specific records and must not become universal or criminal claims.

Summary

  • A reachable function is not proof of its use.
  • Privileged success does not establish ordinary-user exit.
  • One tested scenario cannot settle all execution paths.

Next lesson

P13-L05

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.
  • PROXY: ERC-1967 proxy storage slots — Standardized implementation/admin slots; renouncing one role does not establish all upgrade paths disabled. 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-L04-V01

SPECIFICATION_ONLY · ILLUSTRATIVE

Identify observed privileged changes and remaining uncertainty

Fictional privileged change and selective outcomes; no universal exit or intent conclusion.

Contract-permissions matrix with M mint and W/P transfer rows, exact paper parameters and outcomes. Add untested-route/amount gaps rather than a universal honeypot badge.

Contract-permissions matrix with M mint and W/P transfer rows, exact paper parameters and outcomes. Add untested-route/amount gaps rather than a universal honeypot badge.

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-L04-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
Open primary source
https://eips.ethereum.org/EIPS/eip-20

PROXY · PRIMARY_DOCUMENTATION

ERC-1967 proxy storage slots

Supported claim
Standardized implementation/admin slots; renouncing one role does not establish all upgrade paths disabled.
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
Open primary source
https://eips.ethereum.org/EIPS/eip-1967

Dataset provenance

id: P13-L04-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.

Test your reasoning

P13-L04-Q1 · Supply 1000 plus 200 produces what relative increase?
P13-L04-Q2 · Privileged P passes while W fails on R. What does that establish?
P13-L04-Q3 · A mint function exists in source. What remains needed for an actual mint claim?
P13-L04-Q4 · Why record sufficient balance/allowance assumptions?
P13-L04-Q5 · What should the next test vary?