at least one pair of keys • no coins or banknotes per se • transactions ◦ describe the money flow ◦ cryptographically signed logs • account balance computes the network
Signature of Alice Bob pays 10 BTC to Eve Owned by Eve 10 BTC Bob’s PK hash Signature of Alice Owned by Bob Eve’s PK hash Signature Of Bob Signature Of Bob Bob’s SK
send to the network • participants collect TAs for the block they are currently computing • when a block was computed: all TAs are welded in (confirmed)
expensive • s.t. impossible for 1 node • will be attempted by many nodes • once a next block found - broadcasting! • the new broadcasted block will be validated by other nodes
Hash(Block i,...) Block i+1 Transactions i+1 Block i Goal: Hash(Block i, TAs i+1, Nonce i+1 ...) < Target Hash ... 0 n-1 Target almost random mapping Nonce i Nonce i+1
Hash(Block i,...) Block i+1 Transactions i+1 Block i Goal: Hash(Block i, TAs i+1, Nonce i+1 ...) < Target Nonce i Nonce i+1 • Target will be adapted by the network automatically, s.t. holds: about 1 new block every 10 minutes! • the growth pace of the blockchain depends on the computational power of the network
a block inside the chain (-> recomputation of all subsequent blocks) • branching of the block chain ◦ 2 valid new blocks are possible! ◦ maintaining of the branching until one branch gets longer
Each node collects new transactions into a block 3. Each node works on finding a difficult proof-of-work for its block 4. When a node finds a proof-of-work, it broadcasts the block to all nodes 5. Nodes accept a block only if all TAs in it are valid and not confirmed yet 6. Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash