Before I go into this: big thanks to Natty for helping me condense the fundamentals. I think I finally was able to articulate the basics in a distilled form that was helpful to them.
They also got me thinking about this post.
The blockchain community is very lacking in some fundamental information that would be helpful for non-technical individuals. I hope this post does justice to the conversation I had with Natty and helps you as much as it helped them.
Fundamental Questions Are Good
For the third time in a month I got asked to distill what a blockchain is, what proof of <insert algorithm type here/> is and why there aren’t any simplified explanations floating around. All very good questions with a simple answer: programmer types tend to be very, very bad at distilling information. They also like to assume you’ll slog through dense technical/math type information and figure it out for yourself before coming for help.
Not that helpful IMHO. It took me awhile but I did manage to ‘get it’. This post is an attempt to distill the fundamentals and build a foundation for more. What I describe will be a gross simplification of a very technical topic.
This is meant to get you started only. No more, no less.
Probably the most overlooked aspect of blockchains that I’ve seen to date: People are wholly unaware that blockchains are a form of accounting system and/or don’t like to call attention to this simple fact. This is a really important aspect of blockchains and some background in double and triple entry accounting is helpful IMHO.
In ‘modern times’ we use ‘double entry accounting’ methods. Basically we manage our ‘books’ by having a ledger of debits and credits. We use this system all over the place in finance, inventory management and a bunch of other stuff. Your checkbook (you know what those are right?) has a little ledger in it: it’s a double entry system (debits/credits). The debit/credit system is also used for managing inventory (stock/sold items) and a bunch of other things.
I’ll leave you to thinking of ways debits/credits (add/subtract from ‘stuff being tracked’) as entries in a big list can be helpful. 😉
In reality, a blockchain is a form of ‘momentum accounting’ (triple entry accounting). This is really, really important if you’re trying to understand blockchain fundamentals. Wikipedia (link) has a nice simplification of what this accounting system looks like. The key quote is
In momentum accounting, changes in balances are the recognized events.
AKA: you care a lot about where you were and where you’re going with your debit/credit tracking. It’s not enough to track your debits/credits, you also care about past/present/future balances. How much did I have, how much do I have, how much can I expect to have (based on previous entries).
This was described as a paper in 1989 but is still relatively unknown outside of finance. And it’s a very different approach. You’re tracking a lot more of what’s going on with your ledger and trying to tease out patterns and larger amounts of information, potentially across multiple ledgers/accounts.
The blockchain is an immutable, public form of momentum accounting. The blockchain is a massive ledger of all accounts, balances, debits/credits, where you were, where you might be going and a LOT more data if desired. Each account, address or smart contract is a mini momentum accounting system unto itself.
The blockchain is the momentum accounting ledger and it’s PUBLIC and IMMUTABLE. That’s why people are so excited. The books are public and can’t be changed.
Change and Forward Progress
The blockchain is a HUGE change and major step forward for public good. No longer can corporations hide behind secrecy of a ledger, cook the books or any other shenanigans. Everything is public and auditable by anyone with the patience/time/desire to review the ledger (blockchain).
Wait, there’s more!
On top of that level of brilliance, you can also leverage the momentum accounting system for better forms of inventory management, debt management (loans/payments/etc) and public records. The blockchain is the first ‘at scale’ deployment of momentum accounting and the developers of various ‘crypto currencies’ (bitcoin et all) are pushing the envelope and bringing these concepts into the mainstream.
There is a lot of talk about ‘crypto currencies’ and what they can be used to accomplish. I think the better question is: ‘what can momentum/triple entry accounting accomplish?’.
Crypto + Currency
Just a quick aside.
I can’t keep myself from calling this out.
CRYPTO in ‘crypto currency’ is a bit of a misnomer. Cryptography is used by blockchains but it’s not a requirement. At present, cryptography is our best option for ensuring immutability and accountability within computer systems and data.
The only reason you see ‘crypto’ everywhere is because programmers and math people picked it as a way to enforce consensus and immutability in blockchains. It’s NOT a requirement if other methods are discovered or used within a blockchain implementation.
Proof of what now?
Now that ‘what is a blockchain’ is addressed, another big question is: ‘What the hell is proof of <insert something here/>?‘. ‘Proof of <something/>’ is a way of obtaining the ‘immutable’ property of a blockchain. It’s also necessary for the ‘public’ part which requires consensus among individuals.
Current blockchain implementations use [cryptographic] algorithms commonly labeled as ‘Proof of Work’, ‘Proof of Stake’ or something else. It’s a programmers fancy way of saying ‘we came up with some math + cryptography to achieve immutability and consensus and coded it into our blockchain software’.
The two most common are ‘Proof of Work’ and ‘Proof of Stake’. The former is generally a bunch of computers crunching numbers and coming to consensus through a shared protocol. The latter is people putting up their credits and participating in consensus through a shared protocol. Both have pros/cons and require their own post/expansion. I’d recommend starting with the FAQ of any blockchains you’re researching and doing follow up. The FAQ’s tend to distill things pretty nicely, especially for ‘Proof of Stake’ blockchains.
Example: bitcoin, monero, zcash are all proof of work: miners compute complex math that’s dependent on previous blockchain transactions to prove new transactions are legit. The result is included in the blockchain as public record. (Note: this is a gross simplification, there is nuance and more detail than I put forth here)
Hopefully the above clears up some of the confusion. The fundamentals of a blockchain are pretty straight forward once you know what they are based upon. Unfortunately, few put the time into calling attention to the fundamentals. It’s assumed you’ll ‘just figure it out’.
I hope that after reading this post you’ll be armed with those fundamentals. I also hope it’ll help with any of your research going forward.