See also: web3 critique
A blockchain is a SMR protocol that has a 3-layer architecture.
- Consensus core: forms agreement over an immutable sequence of updates to a shared state: byzantine fault-tolerant. The consensus algorithm most commonly used are longest-chain consensus algorithms and solve BFT for a permissionless system model
- State-machine API: Bitcoin’s state-machine and state-updates use a limited scripting language; Ethereum expands the state-machine and state-updates with a Turing complete abstraction (whose resources are bounded using gas).
- Application Layer: In Bitcoin the application is the shared provenance tracking of digital assets, and in Ethereum, could be anything decentralized.
- Distributed: data is stored by and updates are broadcasted to everyone
- Smart Contracts: codified agreements. Once the predetermined conditions of the contract are met, the transaction and attached computation are completed and recorded on the blockchain.
- Immutable: A completed transaction can never be changed or hidden. This gives us provenance of assets (you can determine any asset’s entire history as long as all transactions happen on-chain)
- Decentralized: communal consensus rather than one party’s decisions determines access/update to the chain
Each block contains the hash of the previous block header and the Merkle root representing the hash of all the transactions in that block.
Transactions happen as follows:
- A transaction is initiated by a client
- Transactions are checked for validity to see if the state transition is legal (validation)
- Multiple transactions are packaged into a block and sent to members of the chain (block proposal)
- Consensus and approval by rest of network (either proof of work or proof of stake)
- Block is added to chain and distributed to members
Why it Matters
It feels like the level of change which blockchain impacts is huge but at the same time latent. After going through a bunch of Kernel modules, Austin came upon a name for the concept: “blockchain changes what soil is”
“The “new world” seems to look very similar to the old. i.e. isn’t a DAO just voting on how to donate money, which we could do today?”
“Back in early history, the databases were singular, existing in an atomic state with one DB per enterprise. The network existed in some relational sense between enterprises, but because DB’s were so fragile they never spoke directly to the network because then they broke. Even if you did connect DBs somewhat directly, the DB encodes the worldview of the organization and different organizations have different worldviews, so the DBs can’t speak to each other clearly.”
There were no large-scale computer-to-computer connections that allowed us to create a shared world view between lots of different organizations.
This is the promise of blockchains — to create a global ‘distributed database’
The goal is to build a single, shared story of reality, spread across all the machines simultaneously. And when it changes in one place, it changes everywhere.
Waiting for the day web3 projects get large enough to amortize and offset the gas fees that consumers pay now (much like centralized orgs nowadays front hosting costs for ‘free’ tier or the average consumer).
Act II — Smart Contracts
“First we merged the network and the database in a blockchain. Then, we take computer software and put it into the shared database. That means everyone that is connected has a copy of exactly the same program: same data, same code, same result”
Act III --- IOT
The ‘scaled blockchain’
Ideally we get to a point where we have a ‘global computing service’ (very Asiimov’s Last Question-esque) through which we can embed IOT devices. This would turn all the sensors and bits of computing power into a global unified knowledge resources that manages the infrastructure of our society
I’m curious how this relates to truth, specifically how different people have different views on ‘reality’ and ‘truth’. How do we reconcile that at a global scale? What might pluriversal computing look like?