Blockchain: Make it useful

From DevSummit
Revision as of 20:13, 11 December 2018 by Jared (talk | contribs) (Blockchain is B.S., but we can take the parts out of it that are useful!)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Jared: I have a one-liner to explain why Blockchain is B.S: It is one of the worst possible implementations of the dumbest data type.

Q: Can you expand on that?

Jared: A "chain of blocks" is just a linked list, which you learn in Computer Science 101 is one of the least useful data types. So called "Proof of Work" is really just proof of wasted work on generating hash numbers for a lottery, where the winning number selection odds are similar to betting red or black on a roulette table.

[Note taker's name here please]: I think there is something more useful that can be found about blockchains and their ability to find a global consensus.

Jared: There are useful things about blockchains we can take out and make better, starting with the "Merkle links" which have the property of confirming everything in their linked history with a single hash value; but this Merkle link property works for all linked data types from trees to Directed Acyclic Graphs (or DAG's) -- not just dumb linked lists.

[Hosue?]: Dumb as in simple which is good, or dumb as in bad?

Jared: Keep it simple would be great, but in this case I mean dumb as in the least useful choice.

The idea of a consensus protocol is also useful in distributed computing, but majority global winner-take-all votes as in Bitcoin are very inefficient, with poor partition (or network split) tolerance in almost every use case. At any time China can effectively choose to either take over 51%+ of their Bitcoin network, or split it up into uselessness, just by flipping a switch on their Great Firewall. Decentralized cloud services like Ceph and newer distributed transaction systems like Stellar already use much better consensus protocols like Paxos (parliamentary protocol) and Raft (head of committee style) systems.


Jared: There are also far better options than "Proof of Work" such as "Proof of Resources". The Inter-Planetary File System (or IPFS) developers' token system FileCoin plans to use a sort of "Proof of Replicated Data Blocks" as their general "Proof of Storage". This could be thought of as "Proof of Useful Work" or simply "Proof of Resource", which is definitely better than any "Proof of Wasted Work" like Bitcoin.

[Note taker's name here please]: It seems like there should be proofs of work that aren't so wasteful like Bitcoin.

Jared: All the "alt-coins" or "alt-chains" I know of use similar proofs of wasted work, or they call vesting in past wasted work a "Proof of Stake", similar to Ethereum. One interesting note on the history of Bitcoin's Proof of Work: it was designed to stop spammers from creating endless emails and identities, so they would have to spend so much on hardware and energy resources that it would make spamming not cost effective. Energy and resource inefficiency was built into their Proof of Wasted Work from inception, and now Bitcoin "miners" could cause Global Warming to rapidly accelerate on their own by 2030. Also "mining" is a horrible analogy for what they do, because they're not actually spending that energy on digging up anything of real value -- it's all just hash numbers for their semi-random coin-lottery entries.


It would still be better to avoid oligarchy and colonialism by allocating value to human lives in a more egalitarian fashion, rather than by whatever resources their patriarchal lineage has previously colonized. "Proof of resource inheritance" is not a valid proof of human value.


A good rule of thumb is that a "white paper" that starts off talking about blockchain is probably full of worthless marketing hype, as opposed to one that talks about "distributed ledgers" which is probably worth reading further.


We would be much better off avoiding the pseudonymous-identity Sybil attack problem entirely by using a real Web of Trust system instead. You know about PGP or Pretty Good Privacy signing keys? [Some heads nod.] If we had a key-signing party at this conference, and agreed that we would always hold to the same identity confirmation standards when we go have more key-signing parties at home and in our own travels, that would expand our personal Webs of Trust by spans and degrees very quickly. Thanks to Small World properties proven in human connection theory, we could trust nearly all human identities and reputations in the entire world within about six to twelve degrees of separation.


Remember that human equality is more important than their resources granted at birth, webs of mutually trusting humans are better than wasting work on untrustworthy pseudonyms, and anything that starts by hyping their new "blockchain" is probably full of it. Let's look for real "distributed ledger" and more direct-democratic consensus solutions instead!