IntroductionA blockchain is a type of distributed ledger where transactions grouped into blocks are shared across a network of participants. Blockchains are decentralized and do not rely on any central authority or trusted 3rd party for validation of transactions. All participants in the peer-to-peer network, known as nodes, maintain a full record of all transactions on the blockchain and communicate directly following a protocol to form a distributed consensus on the next valid block in the chain. ?Each block in the blockchain contains a timestamp, some transactional data, and cryptographic hash link to the previous block. This creates a time-ordered chain of links from the genesis block to the most recent block that cannot be altered retroactively without alteration of all subsequent blocks, requiring a majority collusion of the network. ???HistoryEarly work on cryptographically secure chains with timestamps was done by Haber and Stornetta including their 1991 paper “How to Time-Stamp a Digital Document”. Building upon their previous work, Haber, Stornetta and Bayer published “Improving the Efficiency and Reliability of Digital Time-Stamping”, which incorporated consideration of costs and benefits of three methods of digital timestamping including linear linking, random witness, and merkle trees. Massias, Avila, and Quisquater extended this work to reduce the trust requirements for these digital timestamps. ?In 2004, Hal Finney combined ideas from Wei Dai’s b-money and Adam Back’s hashcash to create his reusable proof of work tokens. Nick Szabo’s utilizes these ideas for timestamped proof of work to create a string of distributed property title registry for Bit gold. Finally in 2008 an individual or group of individuals released the bitcoin whitepaper under the name Satoshi Nakamoto. Bitcoin was the first successful implementation of a secure decentralized blockchain solving the double spend problem for a digital currency. ??CharacteristicsBlockchains are decentralized peer-to-peer networks with a shared append-only ledger maintaining a consensus through a protocol. The unique characteristics of blockchains make potentially them transformative for a variety of industries requiring secure online transactions. They have the potential to solve a fundamental problem of digital trust whereby two individuals can perform almost any arbitrary transaction without a centralized trusted authority approving that transaction. Financial transactions are a natural starting place for blockchain technology however with the development of smart contract technology numerous a wide variety of applications such as voting, supply chain, electronic health records, estate and property records, and much more. ?Hash functionsCryptographic hash functions are a key component of every blockchain. Common hash functions are MD5, SHA1, SHA2, SHA3. Hash functions convert data of any size into a digital string of a specific length called a hash. An example MD5 hash:?MD5(“Golden”) = 7d2b88f5977b8a31c6193b4c81a43daf?Cryptographic hash functions have special properties that differentiate them from other hash functions like one way computation. This means the computation of the hash from the input data is trivial, but finding an input from the hash function is extremely difficult and practically impossible with current computational technology (based on a mathematical difficulty of factoring very large numbers). The hash value obtained could then be fed into the hash function again and produce a new valid hash. This practice allows various structures of hashes with useful properties including the linear linked chains that connect the blocks in blockchains. ??The hash of a block is calculated on the entire data included in the block. Thus a change to any bit of data in the block will hash that is output. That altered hash is now included in the next block, which changes the output hash of the next block and so on until all blocks post alteration are altered. This is a crucial aspect of the immutability property of the blockchain. ?Public key cryptographyWhile chains of cryptographic hashes maintain the immutability of the blockchain, an additional cryptographic method called public key cryptography is needed to ensure that only those who own an entity on the blockchain such as a cryptocurrency token are able to initiate a transaction. Public key cryptography is based on a pair of keys called the public and private key (digital signature key). The public key is open and widely distributed while the private key is kept secret and only know to the owner. Access to private keys represent full ownership over a something of value, typically a token or coin, on the blockchain. As shown in the figure below the holding both the public and private keys allows for the creation of a digital signature. The digital signature proves that the transaction came from the private key owner; no one without the key could impersonate the signature, and if the private key remains confidential to the owner they could not deny having processed the transaction.Transaction signature scheme from the bitcoin whitepaper.Nodes verify valid transactions by checking that the digital signature was generated by the private key and the owner has enough value in their account to complete the transaction. This is simple for blockchains like bitcoin where nodes simply need to verify that the sender has enough unspent coins. Turing complete smart contract platforms such as Ethereum require nodes to re-run smart contract code and verify that sufficient resources to run the computations are available. ReplicationEach full node on the network replicates a history of all transactions on the blockchain. In addition to full nodes some blockchains allow for other type of nodes like lightweight or spv nodes which may contain only specific portions of the blockchain. The size of the blockchain increases over time increasing the capacity requirements to run a full nodes. This an important parameter for decentralized blockchain networks as increasing blockchain size comes with increased cost of storage for each user. The implications of trade-offs between blockchain size and numerous other factors has been a topic of significant debate within the bitcoin and cryptocurrency communities.ConsensusBlockchains use a variety of methods to determine consensus or agreement on the current state of the blockchain. At their core all consensus mechanisms rely on financial incentives based on game theory and the assumptions that users will act in their own monetary self interest. ?Currently, most blockchains currently utilize consensus protocols with proof-of-work. Proof-of-work requires nodes to compete for a financial reward by solving complex computational puzzles and win the privilege of mining the next block in the chain. The Proof-of-work protocol was originally developed to deter denial of service attacks and is designed such that the majority of computation power or hashrate controls has control of the network. Adversarial nodes must compete against the totality of hashrate of all non colluding nodes in order to defraud the system. An adversarial majority node would also potentially favor generating new coins over attempting to undermine the system and the validity of their proportion of the network. ?Consensus emerges from independent verification of each transaction by each full node on the network. Blocks are added to blockchains by mining nodes at different intervals depending on the how the protocol determines validity of blocks and the participants ability to create those new blocks. Nodes then verify the new blocks and construct the chain. Nodes then select which blockchain they prefer, typically based on cumulative proof of work demonstrated on the longest chain, and a consensus emerges. Note that there are many alternative consensus mechanisms under active development that result in blockchains or distributed ledgers with vastly different properties. Some of these consensus mechanisms rely on differing protocols like proof-of-stake (dPoS, Casper, Ourobouros, etc), proof-of-capacity, proof-of-coin age, proof-of-burn, proof-of-authority and many more. Transactional logic and smart contractsTransactional logic on blockchains can be simple, such as the transactions of value in bitcoin, to arbitrarily complex code called smart contracts employed in Ethereum and other blockchains. Public blockchainsThe history of transactions on the blockchain, including all transactions made by each address, is permanently open and visible to everyone. However the identity of person operating a particular node is pseudo-anonymous. New addresses can be easily created on the blockchain without necessarily linking to an individual’s name. For example if the Bitcoin or Ethereum address of an individual is discovered it becomes trivial to find all transactions performed with that address with for example tools such as Bitcoin block explorer or Etherscan. Private & permissioned blockchainsPermissioned & permissioned blockchains are different from public blockchains in that the nodes allowed to participate in the network are restricted in some way. Projects developing permissioned or private blockchains include JPMorgan’s Quorum, Multichain, R3, EWF, B3i, and many others. ?Blockchain Forks Blocks may be added to two separate chains causing a fork. There are hard forks & soft forks. Hard forks cause a split in the blockchain resulting in two separate and different permanent blockchains. These blockchains share the blocks prior to the fork and have different blocks and data after the fork. A soft fork is a change to the protocol which does not result in different versions of the blockchain.?Disagreements within blockchain communities on changes to the blockchain protocol have resulted in significant controversy, most famously the bitcoin block size debate resulting in the Bitcoin Cash hardfork. Other controversial hard forks include the Ethereum hard fork due to The DAO vulnerability and hack, resulting in the blockchain Ethereum Classic blockchain. ?IdentityIn September 2017 the Swiss city of Zug announced intent to release an app to secure its citizens personal identity on the blockchain and associate it with a crypto address. Citizens would register independently on the app and then would be verified by city officials. The linking of a traditional personal centralized identity with a decentralized crypto-address is one initiative intended to improve digital identity. It is intended as a digital passport on the blockchain that could be used for various services such as e-voting. Zug is part of what is known as crypto valley, a region in Switzerland known for attracting decentralized and crypto entrepreneurship due to its crypto-friendly legislation. National cryptocurrenciesThe Monetary Authority of Singapore released a report announcing project Urbin, a report outlining plans for increased usage of blockchains in Singapore.Russia has released plans to release a cryptographic version of their national currency called a cryptoruble. The cryptoruble cannot be mined and will be controlled and maintained by central Russian authorities.The IMF and Christine Lagarde have spoken publicly about the potential of cryptocurrency and the possibility for an IMF based coin.?Academic researchThe first peer-reviewed journal focused on blockchain and cryptocurrency Ledger released its inaugural issue in 2016. It contained 10 articles ranging in topics like game theory, scaling techniques, anonymous transactions, governance, probabilistic analysis and more. ?Research examining the role of blockchain in healthcare, conservation, and other biological fields is increasing as shown by the increasing academic papers being released.