This is a learning project to simulate and visualize various blockchain operations.

Proof of Work

Input a statement and click on the button. The miner must compute the hash with random nonce to obtain a sufficient number of leading zeros in the SHA256 hash. (For demonstration purposes we require 3 zeroes.)

Basic Block Chain Operations.

Click the button to initialize the genesis block to start a new chain.



Input a statement and click on the button to add a new block to the chain. This operation is expensive: we must find enough leading zeros in the hash to show proof of work.


At any time, click on the Verify Chain button to verify the integrity of the chain. It walks the entire chain to check the following:

  • The hash value of each block is correct, and includes the previous hash, content, and nonce
  • The hash value has enough number of leading zeros.
  • The chain terminates at the genesis block.
Verification output:

Forking can happen either due to "racing conditions" (when multiple miners discover a new hash at about the same time), or due to malicious action (someone intentionally adds new blocks based on a historical block, e.g. to attempt to spend the same coin twice). To simulate forking, first highlight a non-head block in the blockchain, then input a statement and click on the Fork button.

Digital Signatures

Click to randomly generate a random key pair.

Input a statement and click on the button to generate an associated signature with the current key pair.

At any point, click here to verify the signature with the current key pair. If you generated a new key, the signature will read as invalid.

Verification output: