Transcript

SKBI Cryptocurrency Technical Seminar Series

Block Mining, Verification and

the Blockchain

Zhiguo Wan

Sim Kee Boon Institute for Financial Economics

Singapore Management University

Schedule of bitcoin seminar series

•Seminar 1 – Basics: Cryptography and Transactions, 3 Dec

•Seminar 2 – Mining, Verification and the Blockchain, 8 Dec

•Seminar 3 – Wallets, Payments and Contracts, 15 Dec

OUTLINE

• Mining Blocks

• Verify a transaction

• Aggregate transactions into a block

• Mine the new block

• Validate the new block

• Assemble the new block to blockchain

• Fork resolving

• Threats against Blockchain

MINING BLOCKS

• Verify a transaction

• Aggregate transactions into a block

• Mine the new block

• Validate the new block

• Assemble the new block to blockchain

TRANSACTION VERIFICATION

• For each input, the referenced output must exist

and cannot already be spent.

• For each input, if the referenced output exists in

any other transaction in the pool, reject this

transaction.

• Reject if the sum of input values < sum of output

values.

• Reject if transaction fee would be too low to get into

an empty block.

• The unlocking scripts for each input must validate

against the corresponding output locking scripts.

AGGREGATING TRANSACTIONS

• Old and high-value inputs to be prioritized over newer and

smaller inputs.

• Prioritized transactions can be sent without any fees, if

there is enough space in the block.

• Priority = Sum (Value of input * Input Age) / Transaction

Size

• Value of an input is measured in the base unit, satoshis (1/100m

of a bitcoin)

• Age: the number of blocks that have elapsed

• High Priority > 100,000,000 satoshis * 144 blocks / 250

bytes = 57,600,000

AGGREGATING TRANSACTIONS

WITH MERKLE TREE

AGGREGATING TRANSACTIONS WITH

MERKLE TREE

AGGREGATING TRANSACTIONS

BLOCK STRUCTURE

GENESIS BLOCK

• Bitcoin-cli getblockhash 0

• Bitcoin-cli getblock 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

THE COINBASE

TRANSACTION

• Coin generation transaction

MINING A BLOCK

• SHA256(SHA256(Block_header))<Difficulty_target

• Transactions are hashed through Merkle root

Block header

Merkle root

DIFFICULTY and TARGET

• Target: E.g. 0x1903a30c

• The exponent is 0x19 and the coefficient is 0x03a30c.

• target = coefficient * 2^(8 * (exponent – 3))

• For difficulty bits value 0x1903a30c, we get:

• target = 0x03a30c * 2(0x08 * (0x19 - 0x03))

• ⇒ target = 0x03a30c * 2(0x08 * 0x16)

• ⇒ target = 0x0000000000000003A30C00000000000000000000000000000000000000000000

• Difficulty = Difficulty_1_Target/Current_Target

• New Difficulty = Old Difficulty * (Actual Time of Last 2016 Blocks / 20160 minutes)

DIFFICULTY OF MINING

MINING BLOCKS

• Chance of success is less than one in 1019.

• Harder than finding a particular grain of sand from

all the grains of sand on Earth

• Every second about 25,000,000,000,000,000

blocks gets hashed

• Total hardware used for mining cost tens of millions

of dollars

• Uses as much power as the country of Cambodia

MINING BLOCKS

• Nonce size: 4 bytes, 32-bit

• Current ASIC can exhaust all possible nonce in a second (4G Hash per second, 4 billinion).

• Use coinbase script (8 bytes more) and timestamp as nonce source

• Pool mining: Predictable return

• Successful blocks pay the reward to a pool bitcoin address

• Miners get paid periodically by pool server

• How to measure each miner’s contribution?

• Mining pool sets a lower difficulty target for earning a share, typically more than 1,000 times easier than the bitcoin network’s difficulty

VALIDATING BLOCKS

• The block data structure is syntactically valid

• The block header hash is less than the target

difficulty (enforces the Proof-Of-Work)

• The block timestamp is less than two hours in the

future (allowing for time errors)

• The block size is within acceptable limits

• The first transaction (and only the first) is a

coinbase generation transaction

• All transactions within the block are valid

ASSEMBLING BLOCKS

• Three sets of blocks:

• Blocks connected to the main blockchain,

• Blocks that form branches off the main blockchain

(secondary chains)

• Blocks that do not have a known parent in the known

chains (orphans).

• Blockchain forks

• Select the chain with higher cumulative difficulty as the

main chain

BLOCKCHAIN FORK

BLOCKCHAIN FORK

BLOCKCHAIN FORK

• The block chain fork

that occurred on 11

March 2013.

• Despite less support

from users, version

0.7 was chosen by

developers to be the

official chain.

THREATS AGAINST

BLOCKCHAIN

• 51% attack

• A group of miners, controlling a majority (51%) of the

total network’s hashing power, collude to attack bitcoin.

• Effects

• Double-spend one’s own bitcoins

• Delay others’ txn confirmations

• Cannot destroy/steal bitcoins

• 33% attack: selfish mining

THREATS AGAINST

BLOCKCHAIN

• Selfish miningBLK n

BLK n+1

BLK n+2

BLK n+1

Selfish

pool (1/3)

1/3 of the

mining

power

Another

1/3 mining

power

BLK n+2

THREATS AGAINST

BLOCKCHAIN

• Selfish mining BLK n

BLK n+1

BLK n+2

BLK n+1

Selfish

pool (1/3)

1/3 of the

mining

power

Another

1/3 mining

power

BLK n+1 BLK n+1BLK n+1

BLK n+3

REFERENCES

• Is Bitcoin a Decentralized Currency? IEEE Security

& Privacy magazine

• Mastering bitcoin, O’Reilly Publishing

• Ken Shirriff, Bitcoin mining the hard way: the

algorithms, protocols, and bytes,

http://www.righto.com/2014/02/bitcoin-mining-hard-

way-algorithms.html

• Majority is not Enough: Bitcoin Mining is

Vulnerable, Financial crypto’14.


Top Related