Does a Blockchain Need Altruism? Roger Wattenhofer ETH Zurich – Distributed Computing Group
Do You Trust the Miners?
Modeling Distributed Systems A ltruistic R ational C rash B yzantine
Modeling Distributed Systems C rash R ational A ltruistic B yzantine Who are the Miners?
“The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes.”
Mining is a Rational Business
Mining is a Rational Business
Selfish Mining Timeline 2009 2010 2013 2018
What is Selfish Mining Tx_0 Tx_0 Tx_1 Tx_1 … … Tx_0 Tx_0 Tx_0 Tx_0 Tx_1 Tx_1 Tx_1 Tx_1 … … … …
Simpler Analysis
Original Algorithm
Somewhat Simpler Algorithm
𝑒 𝑞 > 𝑒 𝑡 Tx_0 Tx_0 Tx_1 Tx_1 … …
Somewhat Simpler Algorithm
𝑒 𝑞 = 𝑒 𝑡 − 1 Tx_0 Tx_0 Tx_1 Tx_1 … … Tx_0 Tx_0 Tx_0 Tx_0 Tx_1 Tx_1 Tx_1 Tx_1 … … … …
Somewhat Simpler Algorithm
𝑒 𝑞 = 𝑒 𝑡 Tx_0 Tx_0 Tx_1 Tx_1 … … Tx_0 Tx_0 Tx_1 Tx_1 … …
State Machine (Original & Simpler) = 1 − 𝛽 𝛽 : probability that selfish miner finds a block
Stationary Distribution
Computation…
All 𝛾 Transitions 0 → 0 : Block for honest miners 𝑗 + 1 → 𝑗 : Block for selfish miner (for 𝑗 > 2 ) 2 → 0 : Two blocks for selfish miner 1 → 0 : Race who wins next block with probability 𝛽 two blocks for selfish miner with probability 𝛾(1 − 𝛿) two blocks for honest miners with probability 𝛾𝛿 one block each 𝛿 : probability that honest miners append block to selfish miner’s block (in race)
Ratio of Selfish Blocks in Chain 𝛿 : probability that honest miners append block to selfish miner’s block (in race)
Selfish Miner Share
Selfish Miner Share 𝛿 = 0 : break even at 𝛽 = 1/3 𝛿 = 0.5 : break even at 𝛽 = 1/4 𝛿 = 1 : break even at 𝛽 > 0
A Blockchain Without Altruism? [Joint Work with Jakub Sliwinski]
Simple Chains Are Too Simple
Better: Expose Competition
Our Rational Blockchain
Always Refer to All Childless Blocks
Only One Type of Reference (Heaviest Reference is Your “Parent”)
Block Ordering is Recursive 5 3 1 2 4 6
Incentives
Why Miners Should Always Refer to All Childless Blocks?
Because of our Block Rewards!
It’s Somewhat Complicated…
Motivating Block Rewards I Reward = 0.34 Reward = 0.71 Reward = 1 Reward = 1 Reward = 1 Reward = 0.71
Motivating Block Rewards II Reward = 0.72 Reward = 0.91 Reward = 0.45 Reward = 0.69
Our Solution
Block Penalty Example 1 1
Block Penalty Example 1 0.5 0.5
Block Penalty Example 1 1 1 0.66 0.66 0.5 0.5 0.66
The Penalty Algorithm
The Penalty Algorithm
The Penalty Algorithm 1 1 1 1 0.66 1 1 0 0.66 0.33 0.33 0.66 1 1 0.66 0.66
Transaction Fees
A B fee = 10 A B fee = 10
A B A B fee/2 = 5 fee/2 = 5
“The system is secure as long as rational honest nodes collectively control more CPU power than any cooperating group of attacker nodes.”
Thank You! Questions & Comments? Thanks to Jakub Sliwinski www.disco.ethz.ch
Recommend
More recommend