Blockchain

This space contains links to research papers, event sources and useful resources on blockchain and distributed ledger. Before we get much further, it's worth pointing out that even the term blockchain is itself the subject of intense debate; with descriptions such as distributed ledger, distributed database, notary (and even world computer) all being used seemingly interchangeably.

To keep it simple let's assume that a blockchain is a cryptographic construction with some fundamental properties. A blockchain made up of data structures called blocks and chains. Chains are used to link blocks in an append-only manner, with new blocks added to the end of a chain. Chains should be constructed using cryptographic data structures (such as Merkle trees) that ensure unforgeable integrity once blocks are appended. In short, these chains ensure that you cannot rewrite history.

It's confusing (especially to potential consumers of blockchain) to refer to blockchains as distributed databases. Most people have some conception of what a database is: a place to store data. If we assume the fundamental properties above, how we preserve ledger 'transactions' and associated user data over this framework are largely down to implementation. For a number of reasons (mostly to do with scale and performance), blockchains are not designed to store lots of user data, any such bulk storage is likely to be stored off-chain, with hashes or indexes to that data from the chain.

We purposely skipped over some of the wide implications of this technology, and important concepts in how it is used in practice; concepts such as consensus, trust, permission, anonymity, and privacy. It's also worth noting that all of the key components of blockchain have been around for decades: the brilliance is in how these components have been orchestrated in such an elegant manner to create a decentralised cryptocurrency, first described here. You can find out more by following the links below.



Resources

Anybody new to blockchain will initially find it a confusing space to get a clear handle on. There are very few books, and a great deal of flowery rhetoric. Below are a number of links to places you might want to start exploring. This list is still being collated so it is not necessarily representative of every important initiative in this field. That said it's a useful point to pivot from.



Fundamentals

'Blockchain' | Wikipedia | For an edited version with improved accessibility see here

'Cryptography' | Wikipedia

'Hash Function' | Wikipedia

'Merkle Tree' | Wikipedia

'Hash Calendar' | Wikipedia

'Trusted timestamping' | Wikipedia

'Byzantine Fault Tolerance' | Wikipedia

'Cryptocurrency' | Wikipedia

'Introduction to Smart Contracts' | Solidity docs



Video Tutorials

These are arranged with introductory material first and more complex material later.

'Bitcoin explained and made simple' | Guardian Animations | June 24 2014

'3 BCU Christopher Allen - Intro Bitcoin Part 1' | Blockchain University | June 9 2015

'How Bitcoin Works in 5 Minutes (Technical)' | CuriousInventor | April 13 2014

'How Bitcoin Works Under the Hood' | CuriousInventor | July 14 2013

'Programming Bitcoin' | YouTube Channel

'Bitcoin 101 - Multi-Signature Addresses pt1 - Coding This Major Security Improvement' | CRI | March 14 2014



Articles

'Blockchain Introduction... Blockchain, Hyperledger, Ethereum, Smart contracts' | Jeroen De Prest, Kevin Leyssens | May 10 2017

'How the Bitcoin protocol actually works' | Michael Nielsen | Dec 6 2013

'Money, Blockchain, and Social Scalability' | Nick Szabo | Feb 9 2017

'Developers Introduction to Bitcoin' | Vitalik Buterin | Jan 1 2014

'Introduction to Sidechains and Blochain 2.0' | Zubair Muadh | Jun 26 2014



White Papers & Technical Reports

'Blockchain Enigma. Paradox. Opportunity' | Deloitte | White Paper | 2016

'The Stellar Consensus Protocol: A Federated Model for Internet-level Consensus' | Mazieres | Stellar Development Foundation

'Blockchain Technology and Applications from a Financial Perspective' | Unicredit | Technical Report | 2016

'BlackCoin’s Proof-of-Stake Protocol v2' | Vasin | White Paper | 2014



Books

'Mastering Bitcoin' and code | Andreas M. Antonopoulos | June 2017

'Ethereum: Blockchains, Digital Assets, Smart Contracts, Decentralized Autonomous Organizations' | Henning Diedrich | 2016

'Blockchain Revolution: How the Technology Behind Bitcoin Is Changing Money, Business, and the World' | Don Tapscott, Alex Tapscott | May 10 2016



Blockchain Explorers

BlockchainInfo | Bitcoin Explorer

BlockchainIo | Bitcoin Explorer

Etherscan.io | Ethereum Explorer



Research Materials

I have started to consolidate a list of some key references and interesting papers below.

'Bitcoin: A peer-to-peer electronic cash system' | Satoshi Nakamoto | 2008

'On Provably Secure Time-Stamping Schemes' | Buldas & Saarepera | 2004

'Anonymous Byzantine consensus from moderately-hard puzzles: A model for Bitcoin' | Miller & LaViola | 2009

'Practical Byzantine Fault Tolerance and Proactive Recovery' | Castro & Liskov | ACM Transactions on Computer Systems | 2002

'Bitcoin-NG: A Scalable Blockchain Protocol' | Eyal et al| 2016

'In Search of an Understandable Consensus Algorithm (Extended Version)' | Ongaro & Ousterhout | Stanford University | 2014

'Verifiable Data Structures' | Eijdenberg, Laurie, Cutter | Nov 2015

'Elliptic Curve Digital Signature Algorithm and its Applications in Bitcoin' | Malvik & Witzoee | Dec 2015

'Some Simple Economics of the Blockchain' | Catalini & Gans | MIT Sloan School Working Paper | 2017

'The Truth About Blockchain' | Iansiti & Lakhani | Harvard Business Review | Jan–Feb 2017

'Blockchains and Distributed Ledgers in Retrospective and Perspective' | Lipton | arXiv | 2017

'Bitcoin mining and its energy footprint' | O’Dwyer & Malone | 2014

'Zerocash: Decentralized anonymous payments from bitcoin' | Sasson et al | IEEE Security & Privacy | 2014

'Enigma: Decentralized computation platform with guaranteed privacy' | Zyskind, Nathan, Pentland | arXiv | 2015

'Tendermint: Byzantine Fault Tolerance in the Age of Blockchains' | Buchman | Msc Thesis | June 2016



Open Source Frameworks

Below are a number of links to open source code spaces you might want to start exploring. Most code related to blockchain is available on GitHub.

Ethereum.Org: source code | Open Source project | GitHub

Jpmorganchanse: source code | Open Source fork of Ehereum with Raft consensus, from J P Morgan | GitHub

Hyperledger: source code | Open Source project | GitHub

R3 Corda: source code | Open Source project, Notary style | GitHub

Tendermint: source code | Open Source project, Simplified BFT consensus | GitHub

Guardtime: source code | Client-side Java and C SDKs for KSI blockchain integration, mirrors of R3 Corda, Hyperledger Fabric etc. | GitHub



Other Useful Sources


Below are several useful resources from specific aspects of blockchain and DLT, some experimental.

'Mastering Bitcoin' | Andreas M. Antonopoulos | GitHub

'ElementsProject.Org' | Open source project experimenting with bitcoin sidechain concepts | GitHub

'Trillian' | Open source implementation of verifiable data structures | GitHub