Chapter 3 — Web3, blockchain and cryptoasset security: systems, data and dependencies
Lesson map
Lesson 03 published. Map, example, EX027.
flowchart TD
N0["Learning outcomes"]
N1["3.1 Mapping the system"]
N2["3.2 Data on and off the ledger"]
N3["3.3 Dependencies and their risks"]
N4["Synthesis"]
N0 --> N1 --> N2 --> N3 --> N4
N4 --> EX["Worked example"]
EX --> Q["Exercise EX027"]
Logical drawing
flowchart LR
N0["Learning outcomes"]
N1["3.1 Mapping the system"]
N2["3.2 Data on and off the ledger"]
N3["3.3 Dependencies and their risks"]
N4["Synthesis"]
N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX027"]
[Learning outcomes]
|
v
[3.1 Mapping the system]
|
v
[3.2 Data on and off the ledger]
|
v
[3.3 Dependencies and their risks]
|
v
[Synthesis]
|
v
[Worked example] --> [Exercise EX027]
Learning outcomes
You will (1) map the loyalty system and its data; (2) decide what belongs on the ledger; (3) identify dependencies and their risks.
3.1 Mapping the system
Elena and the contractor map the proposed system: customers' app wallets, the café tills, the vendor's points service that converts purchases into point awards, the points contract, three ledger nodes run by the vendor, and Copperleaf's customer database. They draw arrows showing data and points moving between parts and mark who controls each. The map shows that the vendor's points service decides how many points are created, and that the vendor also runs all three nodes. Elena realises this concentrates control in one company, which she must weigh against the convenience.
3.2 Data on and off the ledger
Mr Otieno explains that ledger data is copied to every node and is hard to delete, so personal data should stay off it. Elena requires that customer names, emails and purchase details stay in Copperleaf's database, with only pseudonymous addresses and point balances on the ledger. She also asks whether customers can be linked to addresses through patterns, and the vendor agrees to issue a new address if a customer requests it. Keeping personal data off the ledger makes it possible to correct or delete it under privacy law when customers ask.
3.3 Dependencies and their risks
The system depends on the vendor's service and nodes, the wallet app, the cloud provider and the contract's code and compiler. Elena lists each with its owner and what happens if it fails. If the vendor stops trading, Copperleaf needs a copy of balances and a way to honour points; she asks for a monthly balance export and a contractual exit plan. The SWC registry lists weaknesses from outdated compilers, so she asks the vendor to state its compiler version and review history. Dependencies are risks Copperleaf cannot control directly but must plan for.
Worked example
Elena finds the vendor controls both point creation and all three nodes, keeps personal data off-ledger and requires a monthly balance export and exit plan.
Synthetic case. The system map and requirements are synthetic; the SWC registry is a real source.
Errors and limits
Accepting a vendor's full control of points and nodes without an exit plan leaves the business exposed.
Exercises
- EX027 — Point creator. Which component decides how many points are created? Rubric: 3 = the vendor's points service;; 2 = points service;; 1 = the tills;; 0 = none.
- EX028 — Node operator. Who runs the three nodes? Rubric: 3 = the vendor;; 2 = vendor, hedged with another option;; 1 = Copperleaf;; 0 = none.
- EX029 — Concentration concern. What concentration worries Elena? Rubric: 3 = one company controls points and nodes;; 2 = vendor control;; 1 = too many cafés;; 0 = none.
- EX030 — Off-ledger data. What stays off the ledger? Rubric: 3 = names, emails and purchase details;; 2 = personal data;; 1 = balances;; 0 = none.
- EX031 — Linkage remedy. What does the vendor offer against linkage? Rubric: 3 = a new address on request;; 2 = new address;; 1 = vague;; 0 = none.
- EX032 — Deletion reason. Why keep personal data off the ledger? Rubric: 3 = so it can be corrected or deleted under privacy law;; 2 = deletable;; 1 = cost;; 0 = none.
- EX033 — Exit requirement. What exit protections does Elena ask for? Rubric: 3 = a monthly balance export and contractual exit plan;; 2 = export and exit plan;; 1 = vague;; 0 = none.
- EX034 — Compiler question. What does she ask about the compiler? Rubric: 3 = its version and review history;; 2 = version;; 1 = its price;; 0 = none.
- EX035 — Dependency example. Name one dependency of the system. Rubric: 3 = the wallet app;; 2 = the cloud provider;; 1 = the coffee supplier;; 0 = none.
- EX036 — Wallet location. Where do customers hold their points? Rubric: 3 = in app wallets;; 2 = wallets;; 1 = on paper;; 0 = none.
- EX037 — Dependency stance. How should uncontrollable dependencies be treated? Rubric: 3 = planned for;; 2 = plan;; 1 = ignored;; 0 = none.
- EX038 — Map purpose. What did the map make visible? Rubric: 3 = who controls each part;; 2 = control;; 1 = prices;; 0 = none.
Synthesis
Mapping systems, placing data carefully and planning for dependencies keep control where it belongs.
Continue studying — chapter 03 of 04
← Chapter 02 (draft) · Course chapter index · Chapter 04 (draft) →