Difficult Concepts Made Simple
Blockchain technologies are filled with buzz words that can be very confusing, starting with the phrase blockchain (or "block chain") itself. Terms like cryptographic hash, Merkel tree, nonce, distributed ledger, wallet and coins/tokens can be confusing. Good people have published lots of prose and illustrations to try to explain these concepts. I have found that a gentleman named Anders Brownworth set up a very clear and useful web site to help illustrate these concepts, along with a series of Youtube videos that show how to use the web site.
Blockchain Demo web site
SHA256 Hash
The first working illustration on the Demo web site is about SHA256 hashes. Hashes are the algorithm that creates a unique, fixed length fingerprint for electronic data. A SHA256 hash produces a 64 character long string that is easily reproduceable. You can use a desktop application, a web-based tool (Anders' tool lets you type in text; others wil also let you upload a file), or programmatic means to calculate the hash. It is a one-way algorithm; although you can reproduce the same result from the same input, you cannot recreate the input from the hash. In that way, a hash differs from encryption, which is lets someone who knows the right secret recover the original content from the ciphertext. When people say Bitcoin or Ethereum use encryption, there is nothing (other than the digital signatures involved) that is encrypted.
You can see from the above illustrations that the paragraph above, when hashed with a SHA256 hash, returns the same 64 character result - ef09ab0338b8152910e805d1c806062f4edbeb40d7c79e21a0d4417c7befbcb4 - whether calculated in the demonstration hash tool or a desktop tool (here, the DigitalVolcano Hash Tool).
Block
Now that we understand a hash, next we can understand the basics about blocks, nonces and mining. Ander's Block demo demonstrates the mathematical puzzle miners go through when competing for the mining fee for adding a block to a blockchain.
The block displayed has information that will be hashed - in this case, a block number, a "nonce", and the content in the block, and then shows the resulting hash. The Bitcoin white paper speaks to the challenge: "we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits".
In the example, pressing the blue Mine button changes the Nonce value so the hash of the combined information results in a Hash that starts with four zeros.
Additional demos
The web site has additional visual demonstrations that show:
Blockchain: How attempting to change the content in a prior block impacts the results of the chain throughout
Distributed: How the duplication of the chain on multiple peers provides even more integrity
Tokens: How to expand from generic content to structured transactions with values being transferred from user to user (address to address) - not about balances, and
Coinbase: How new coins/tokens can be given (such as with the miner's fee) and dispersion is controlled.
Another demo is available for demonstrating the use of public and private keys, signatures and signing transactions. More on that in another posting.
Open Source Code
If you teach about blockchain, all of this code is available and open sourced from Anders' Github, and can be found here: https://github.com/anders94/blockchain-demo
I am not associated with Anders in any way, but have been looking for a resource just like this, for my own teaching and working with the academic profession as they seek easy to use tools for their students.