We need to consider any ideas about ‘standards’ in blockchain, and that there are many. PoW (proof of work) in Bitcoin and Ethereum is a good way to understand the fundamentals of blockchain architecture. PoS (proof of stake) uses architecture in a lot of similar ways. But there are other fundamentally different concepts used where for example Ethereum has a concept of an account attached to an address, Bitcoin uses UTXO (unspent transaction outputs) to determine what any user owns. Thanks to the Merge with Ethereum and so many other L1s utilising PoS and other more environmentally friendly consensus mechanisms, maybe we should consider what we normalise and what is more acceptable to use as models for teaching and building upon, as these principals will be embedded in those that follow in our footsteps. After all, R&D with these digital consensus mechanisms started in the early ‘70s and we don’t feel compelled to choose any other particular event as a genesis block for education.

What makes a distributed network work?

The blockchain trilema is a fundamental concept: scalability, decentralisation, security.

Concepts to decentralise are: identity; file integrity; intent to sign; coordination of consensus.

Understanding how a protocol works (here based loosely on proof of work consensus mechanism):

Security to decentralisation to trustlessness:

Identity. The power of public key cryptography and how it had to fight for its own survival. Yes, there’s a lot of history here!

Integrity. Cryptographic hash functions (deterministic = must give same result). It’s worthwhile to have a look at a couple of other use cases for context e.g. PDFs, Git, hash tables. and also look at different hash functions e.g. KECCAK-256, SHA-256 and also hexidecimals

Why do we need hash functions? To prevent someone lying about their balance = double-spend!!

Intent. Digital key signing: encrypting with the private key and the interaction of the keys and hashes with multiple users proves identity integrity and intent.

Read about the Crypto Wars and know why there is real integrity in building your systems securely. Watch Devcon4 Cory Doctorow on this.

Coordination. Consensus through decentralisation. Everyone must have the same ledger and agree on the consistency of data. An economic mechanism can be used to encourage consensus. Different algorithms can be used PBFT, PoW, PoS, PoA, etc

The adversarial challenge within consensus - Byzantine Generals’ Problem. can illustrate this really well and simply. We need to realise that consensus mechanisms are purposely designed to expect adversarial behaviour and therefore designed to make it as close to impossible to let this happen by making networks Byzantine fault tolerant, giving them trustless consensus.

State:

Understanding the need for consensus protocols on nodes to maintain state machines. e.g. the sum of an airplane’s parts (consensus needed), phone network, our web1, web2 protocols

see: http://thesecretlivesofdata.com/raft/ a simplistic visual tool to see leader-led consensus in action n.b. this protocol blindly accepts the leader, until the leader stops sending state.

So we have seen how the network can capture and hold the memory of its own state utilising messages(transactions), roles of nodes, time/periods

Blocks:

Composition of and how a block is validated. e.g. with PoW is block below difficulty threshold and finding a suitable nonce? A node can hash another’s ‘valid’ block. Block difficulty always altered to ensure regular production of blocks