Assets is the new cryptographic primitive
Computer science and applied cryptography in particular, has a hierarchy of building blocks, where higher-order blocks are composed of lower-order blocks.
Roughly, the hierarchy looks like this:
- Charge and current in electric circuits
- Bits
- Bytes & words
- Data structures
- Permutations: block ciphers, hash functions
- Self-authenticated data structures (e. g. hash-trees)
- Symmetric encryption and authentication
- Public key cryptography: digital signatures, shared secrets, asymmetric encryption.
- Certificates and chains of trust (e. g. X.509, PGP web of trust)
- Timestamped append-only logs (e. g. Certificate Transparency)
Blockchain protocols are made of these building blocks in order to offer a new kind of a building block: the digital asset.
Digital assets simplify and expand some schemes that struggle with lower-level primitives such as digital signatures and certificates.
In money: digital assets are bearer instruments that can be exchanged between parties that do not trust each other, while signatures only facilitate point-to-point exchange between trusting parties.
In supply chains: digital assets represent certificates of acceptance enabling end-to-end security for each participant in the supply chain, automating provenance and improving security of payments. E. g. a payment can be locked by condition that a particular set of certificates are produced, instead of deferring it to a third party escrow, increasing the surface of vulnerability.
In consumer payments: digital assets are used to represent not only payment instruments (cash, rewards, loyalty points), but also receipts and sometimes products themselves (tickets and prepaid cards).
In things: digital assets represent access tokens to devices running tamper-resistant computers that can be efficiently delegated, used as a collateral, bought and sold. E. g. lockboxes, vending machines and cars.
What about smart contracts? Aren’t those the next higher-order primitive? Not quite. Smart contracts use formal language to describe context-specific policy, so their impact depends on that context. Smart contracts inside a public key infrastructure (e. g. certificates) enable more sophisticated signing rules, but only within limitations and assumptions of such infrastructure. Smart contracts that control digital assets take advantage of their bearer instrument nature secured by entire blockchain network that acts as very slow and very secure computer. Smart contracts are important, but play a supportive role in systems built on top of digital assets.
Whenever you wonder how could a blockchain protocol help with a given problem, reframe the question in terms of digital assets. If there is something that can be defined as a digitally transferrable thing and benefit from automation and improved security of such transfers, then you have a reason to consider blockchain as part of your design. If not, then blockchain is probably not what you need: it would be either irrelevant (e. g. health records on blockchain) or grossly inefficient (e. g. arbitrary computation environment).
Originally published on March 28, 2017