Computer Science
The durable ideas underneath the rest of the wiki – the ones that keep resurfacing in different clothes. Not a survey: each page exists because the concept turned out to matter somewhere concrete, and the theory is easier to write down once than to re-derive every time it comes up.
Cryptographic theory lives here; the operational business of handling keys and secrets on a real machine is in Security.
Structure and representation#
Directed acyclic graphs get a section of their own: acyclicity is a single constraint that buys topological ordering, memoisation, and incremental rebuilds, which is why build systems, schedulers, version control, and distributed ledgers all converge on the same shape.
Entity addressing names a tension that runs through databases, domain modelling, language design, and web architecture: are entities rows inside a container, or first-class objects with their own identity? The mismatch between layers that answered differently is what object-relational mapping (ORM) impedance and REST-over-RPC adapters are made of.
IPFS is what content addressing looks like when it is the whole design: name data by the hash of its contents rather than by where it sits, and a Merkle DAG follows necessarily. It sits here rather than under DeFi because the durable idea is the addressing scheme, not the storage market built on it – though most of the pages that link here are on the DeFi side, and Arweave is its natural sibling. The section covers the addressing scheme itself (CIDs, UnixFS, routing) and then the retention layer that had to be bolted on top of it, because a hash names bytes without obliging anyone to keep them: pinning and the services that sell it.
Homoiconicity is the property of a language whose programs are written in its own data structures – code and data sharing one form, so the language can rewrite itself with ordinary tools.
Cryptography#
Zero-knowledge proofs let a prover convince a verifier that a statement is true while revealing nothing else. This is the theory behind Groth16 and, more broadly, behind the ZK-rollups that most Ethereum scaling now runs through.
Canonicalization#
Two pages on one class of bug. A canonicalization attack exploits two components disagreeing about what an input means – one normalises, the other doesn’t, or they normalise differently, and an attacker crafts something that reads as safe to the checker and dangerous to the executor. Canonicalization attacks on signed XML is the worked case, and the reason so many SAML (Security Assertion Markup Language) implementations have been broken the same way: the signature covers what the canonicaliser saw, and the application acts on what the parser produced.