Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via...
Transcript of Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via...
![Page 1: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/1.jpg)
Lecture 8Bitcoin mining
![Page 2: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/2.jpg)
Mining Bitcoins in 6 easy steps
1. Join the network, listen for transactions a. Validate all proposed transactions
2. Listen for new blocks, maintain block chain a. When a new block is proposed, validate it
3. Assemble a new valid block 4. Find the nonce to make your block valid 5. Hope everybody accepts your new block 6. Money!
![Page 3: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/3.jpg)
Mining Bitcoins in 6 easy steps
1. Join the network, listen for transactions a. Validate all proposed transactions
2. Listen for new blocks, maintain block chain a. When a new block is proposed, validate it
3. Assemble a new valid block 4. Find the nonce to make your block valid 5. Hope everybody accepts your new block 6. Money!
Useful to Bitcoin network
![Page 4: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/4.jpg)
Finding a valid block
H( ) H( )
H( ) H( ) H( ) H( )
12.5→A coinbase:
0x0000...00
transaction transaction transaction
mrkl_root: H( )prev: H( )
mrkl_root: H( )
hash: 0x0000nonce: 0x7a83
prev: H( )
hash: nonce: 0x0000...
![Page 5: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/5.jpg)
Finding a valid block
H( ) H( )
H( ) H( ) H( ) H( )
12.5→A coinbase:
0x0000...00
transaction transaction transaction
mrkl_root: H( )prev: H( )
mrkl_root: H( )
hash: 0x0000nonce: 0x7a83
prev: H( )
hash: hash: 0x3485...nonce: 0x0000...
![Page 6: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/6.jpg)
Finding a valid block
H( ) H( )
H( ) H( ) H( ) H( )
12.5→A coinbase:
0x0000...00
transaction transaction transaction
mrkl_root: H( )prev: H( )
mrkl_root: H( )
hash: 0x0000nonce: 0x7a83
prev: H( )
hash: hash: 0x3485...hash: 0x6a1f...nonce: 0x0000...nonce: 0x0001...
![Page 7: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/7.jpg)
Finding a valid block
H( ) H( )
H( ) H( ) H( ) H( )
12.5→A coinbase:
0x0000...00
transaction transaction transaction
mrkl_root: H( )prev: H( )
mrkl_root: H( )
hash: 0x0000nonce: 0x7a83
prev: H( )
hash: hash: 0x3485...hash: 0x6a1f...nonce: 0x0000...nonce: 0x0001...hash: 0xc9c8...nonce: 0x0002...
![Page 8: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/8.jpg)
Finding a valid block
H( ) H( )
H( ) H( ) H( ) H( )
12.5→A coinbase:
0x0000...00
transaction transaction transaction
mrkl_root: H( )prev: H( )
mrkl_root: H( )
hash: 0x0000nonce: 0x7a83
prev: H( )
hash: hash: 0x3485...hash: 0x6a1f...nonce: 0x0000...nonce: 0x0001...hash: 0xc9c8...nonce: 0x0002...hash: 0x300c...nonce: 0xffff...
![Page 9: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/9.jpg)
Finding a valid block
H( ) H( )
H( ) H( ) H( ) H( )
12.5→A coinbase:
0x0000...00
transaction transaction transaction
mrkl_root: H( )prev: H( )
mrkl_root: H( )
hash: 0x0000nonce: 0x7a83
prev: H( )
hash: hash: 0x3485...hash: 0x6a1f...nonce: 0x0000...nonce: 0x0001...hash: 0xc9c8...nonce: 0x0002...hash: 0x300c...nonce: 0xffff...hash: nonce: 0x0000...
![Page 10: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/10.jpg)
Finding a valid block
H( ) H( )
H( ) H( ) H( ) H( )
12.5→A coinbase:
0x0000...00
transaction transaction transaction
mrkl_root: H( )prev: H( )
mrkl_root: H( )
hash: 0x0000nonce: 0x7a83
prev: H( )
hash: hash: 0x3485...hash: 0x6a1f...nonce: 0x0000...nonce: 0x0001...hash: 0xc9c8...nonce: 0x0002...hash: 0x300c...nonce: 0xffff...hash: nonce: 0x0000...
12.5→A coinbase:
0x0000...01
![Page 11: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/11.jpg)
Finding a valid block
H( ) H( )
H( ) H( ) H( ) H( )
12.5→A coinbase:
0x0000...00
transaction transaction transaction
mrkl_root: H( )prev: H( )
mrkl_root: H( )
hash: 0x0000nonce: 0x7a83
prev: H( )
hash: hash: 0x3485...hash: 0x6a1f...nonce: 0x0000...nonce: 0x0001...hash: 0xc9c8...nonce: 0x0002...hash: 0x300c...nonce: 0xffff...hash: nonce: 0x0000...
12.5→A coinbase:
0x0000...01
All changed
![Page 12: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/12.jpg)
Finding a valid block
H( ) H( )
H( ) H( ) H( ) H( )
12.5→A coinbase:
0x0000...00
transaction transaction transaction
mrkl_root: H( )prev: H( )
mrkl_root: H( )
hash: 0x0000nonce: 0x7a83
prev: H( )
hash: hash: 0x3485...hash: 0x6a1f...nonce: 0x0000...nonce: 0x0001...hash: 0xc9c8...nonce: 0x0002...hash: 0x300c...nonce: 0xffff...hash: nonce: 0x0000...
12.5→A coinbase:
0x0000...01
hash: 0xd0c7...
![Page 13: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/13.jpg)
Finding a valid block
H( ) H( )
H( ) H( ) H( ) H( )
12.5→A coinbase:
0x0000...00
transaction transaction transaction
mrkl_root: H( )prev: H( )
mrkl_root: H( )
hash: 0x0000nonce: 0x7a83
prev: H( )
hash: hash: 0x3485...hash: 0x6a1f...nonce: 0x0000...nonce: 0x0001...hash: 0xc9c8...nonce: 0x0002...hash: 0x300c...nonce: 0xffff...hash: nonce: 0x0000...
12.5→A coinbase:
0x0000...01
hash: 0xd0c7...nonce: 0x0001...hash: 0x0224...
![Page 14: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/14.jpg)
Finding a valid block
H( ) H( )
H( ) H( ) H( ) H( )
12.5→A coinbase:
0x0000...00
transaction transaction transaction
mrkl_root: H( )prev: H( )
mrkl_root: H( )
hash: 0x0000nonce: 0x7a83
prev: H( )
hash: hash: 0x3485...hash: 0x6a1f...nonce: 0x0000...nonce: 0x0001...hash: 0xc9c8...nonce: 0x0002...hash: 0x300c...nonce: 0xffff...hash: nonce: 0x0000...
12.5→A coinbase:
0x0000...01
hash: 0xd0c7...nonce: 0x0001...hash: 0x0224...
12.5→A coinbase:
0x3df5...65
hash: 0x0000...nonce: 0xf77e...
![Page 15: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/15.jpg)
Mining difficulty “target”
0000000000000000003AAEA20000000000000000000000000000000000000000
![Page 16: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/16.jpg)
Mining difficulty “target”
0000000000000000003AAEA20000000000000000000000000000000000000000
256 bit hash output
![Page 17: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/17.jpg)
Mining difficulty “target”
0000000000000000003AAEA20000000000000000000000000000000000000000
256 bit hash output
72+ leading zeroes required
![Page 18: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/18.jpg)
Mining difficulty “target”
0000000000000000003AAEA20000000000000000000000000000000000000000
256 bit hash output
72+ leading zeroes required
Current difficulty ~ 272
![Page 19: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/19.jpg)
Setting the mining difficulty
next_difficulty = previous_difficulty * (2 weeks)/(time to mine last 2016 blocks)
Every two weeks, compute:
![Page 20: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/20.jpg)
Setting the mining difficulty
next_difficulty = previous_difficulty * (2 weeks)/(time to mine last 2016 blocks)
Expected number of blocks in 2 weeks at 10 minutes/block
Every two weeks, compute:
![Page 21: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/21.jpg)
CPU mining (numbers from 2014)while (1){
HDR[kNoncePos]++; IF (SHA256(SHA256(HDR)) < (65535 << 208)/ DIFFICULTY)
return; }
![Page 22: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/22.jpg)
CPU mining (numbers from 2014)while (1){
HDR[kNoncePos]++; IF (SHA256(SHA256(HDR)) < (65535 << 208)/ DIFFICULTY)
return; }
Throughput on a high-end PC = 10-20 MHz ≈ 224
![Page 23: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/23.jpg)
CPU mining (numbers from 2014)while (1){
HDR[kNoncePos]++; IF (SHA256(SHA256(HDR)) < (65535 << 208)/ DIFFICULTY)
return; }
139,461 years to find a block!
Throughput on a high-end PC = 10-20 MHz ≈ 224
![Page 24: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/24.jpg)
Evolution of mining
CPU GPU FPGA ASIC
![Page 25: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/25.jpg)
Evolution of mining
CPU GPU FPGA ASIC
Huge energy consumption (in 2017, annual rate nearly as high as Denmark)!
![Page 26: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/26.jpg)
The future
● Can small miners stay in the game? ● Would we be better off without ASICs? ● Should we implement consensus without proofs
of work?
![Page 27: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/27.jpg)
The future
● Can small miners stay in the game? ● Would we be better off without ASICs? ● Should we implement consensus without proofs
of work?
Motivation for Altcoins
![Page 28: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/28.jpg)
Mining pools
![Page 29: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/29.jpg)
Economics of being a small miner
● In 2014, expected revenue: ≈$1,000/month ● High probability (~50%) of not mining a
block within a year
![Page 30: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/30.jpg)
Mining pools● Goal: pool participants all attempt to mine
a block with the same coinbase recipient ○ send money to key owned by pool manager
● Distribute revenues to members based on how much work they have performed ○ minus a cut for pool manager
![Page 31: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/31.jpg)
Mining pools● Goal: pool participants all attempt to mine
a block with the same coinbase recipient ○ send money to key owned by pool manager
● Distribute revenues to members based on how much work they have performed ○ minus a cut for pool manager
How do we know how much work members perform?
![Page 32: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/32.jpg)
Mining shares
4AA087F0A52ED2093FA816E53B9B6317F9B8C1227A61F9481AFED67301F2E3FB D3E51477DCAB108750A5BC9093F6510759CC880BB171A5B77FB4A34ACA27DEDD 00000000008534FF68B98935D090DF5669E3403BD16F1CDFD41CF17D6B474255 BB34ECA3DBB52EFF4B104EBBC0974841EF2F3A59EBBC4474A12F9F595EB81F4B 00000000002F891C1E232F687E41515637F7699EA0F462C2564233FE082BB0AF 0090488133779E7E98177AF1C765CF02D01AB4848DF555533B6C4CFCA201CBA1 460BEFA43B7083E502D36D9D08D64AFB99A100B3B80D4EA4F7B38E18174A0BFB 000000000000000078FB7E1F7E2E4854B8BC71412197EB1448911FA77BAE808A 652F374601D149AC47E01E7776138456181FA4F9D0EEDD8C4FDE3BEF6B1B7ECE 785526402143A291CFD60DA09CC80DD066BC723FD5FD20F9B50D614313529AF3 000000000041EE593434686000AF77F54CDE839A6CE30957B14EDEC10B15C9E5 9C20B06B01A0136F192BD48E0F372A4B9E6BA6ABC36F02FCED22FD9780026A8F
Idea: prove work with “near-valid blocks” (shares)
![Page 33: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/33.jpg)
Mining shares
4AA087F0A52ED2093FA816E53B9B6317F9B8C1227A61F9481AFED67301F2E3FB D3E51477DCAB108750A5BC9093F6510759CC880BB171A5B77FB4A34ACA27DEDD 00000000008534FF68B98935D090DF5669E3403BD16F1CDFD41CF17D6B474255 BB34ECA3DBB52EFF4B104EBBC0974841EF2F3A59EBBC4474A12F9F595EB81F4B 00000000002F891C1E232F687E41515637F7699EA0F462C2564233FE082BB0AF 0090488133779E7E98177AF1C765CF02D01AB4848DF555533B6C4CFCA201CBA1 460BEFA43B7083E502D36D9D08D64AFB99A100B3B80D4EA4F7B38E18174A0BFB 000000000000000078FB7E1F7E2E4854B8BC71412197EB1448911FA77BAE808A 652F374601D149AC47E01E7776138456181FA4F9D0EEDD8C4FDE3BEF6B1B7ECE 785526402143A291CFD60DA09CC80DD066BC723FD5FD20F9B50D614313529AF3 000000000041EE593434686000AF77F54CDE839A6CE30957B14EDEC10B15C9E5 9C20B06B01A0136F192BD48E0F372A4B9E6BA6ABC36F02FCED22FD9780026A8F
Idea: prove work with “near-valid blocks” (shares)
![Page 34: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/34.jpg)
Mining shares
4AA087F0A52ED2093FA816E53B9B6317F9B8C1227A61F9481AFED67301F2E3FB D3E51477DCAB108750A5BC9093F6510759CC880BB171A5B77FB4A34ACA27DEDD 00000000008534FF68B98935D090DF5669E3403BD16F1CDFD41CF17D6B474255 BB34ECA3DBB52EFF4B104EBBC0974841EF2F3A59EBBC4474A12F9F595EB81F4B 00000000002F891C1E232F687E41515637F7699EA0F462C2564233FE082BB0AF 0090488133779E7E98177AF1C765CF02D01AB4848DF555533B6C4CFCA201CBA1 460BEFA43B7083E502D36D9D08D64AFB99A100B3B80D4EA4F7B38E18174A0BFB 000000000000000078FB7E1F7E2E4854B8BC71412197EB1448911FA77BAE808A 652F374601D149AC47E01E7776138456181FA4F9D0EEDD8C4FDE3BEF6B1B7ECE 785526402143A291CFD60DA09CC80DD066BC723FD5FD20F9B50D614313529AF3 000000000041EE593434686000AF77F54CDE839A6CE30957B14EDEC10B15C9E5 9C20B06B01A0136F192BD48E0F372A4B9E6BA6ABC36F02FCED22FD9780026A8F
Idea: prove work with “near-valid blocks” (shares)
![Page 35: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/35.jpg)
Mining poolsPool manager
![Page 36: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/36.jpg)
Mining poolsPool manager
Hey folks! Here’s our next block to work on
![Page 37: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/37.jpg)
Mining poolsPool manager
mrkl_root: H( )prev: H( )
nonce: hash:
![Page 38: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/38.jpg)
Mining poolsPool manager
mrkl_root: H( ) coinbase: 12.5→pool
prev: H( )
nonce: hash:
![Page 39: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/39.jpg)
Mining poolsPool manager
![Page 40: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/40.jpg)
Mining pools
0x00000000000490c6b00...
0x00000000000000003f89...0x000000000001e8709ce...
0x0000000000007313f89... 0x0000000000045a1611f...
0x00000000000a877902e...
Pool manager
![Page 41: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/41.jpg)
Mining pools
0x00000000000490c6b00...
0x00000000000000003f89...0x000000000001e8709ce...
0x0000000000007313f89... 0x0000000000045a1611f...
0x00000000000a877902e...
Pool manager
![Page 42: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/42.jpg)
Mining pools
0x00000000000490c6b00...
0x00000000000000003f89...0x000000000001e8709ce...
0x0000000000007313f89... 0x0000000000045a1611f...
0x00000000000a877902e...
Pool manager
$$$ $$$
![Page 43: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/43.jpg)
Mining pool history● First pools appear in late-2010
○ Back in the GPU era! ● By 2014: around 90% of mining pool-based ● June 2014: GHash.io exceeds 50%
![Page 44: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/44.jpg)
Mining pools
![Page 45: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/45.jpg)
Are mining pools a good thing?● Pros
○ Make mining more predictable ○ Allow small miners to participate ○ More miners using updated validation software
● Cons ○ Lead to centralization ○ Discourage miners from running full nodes
Question: Can we prevent pools?
![Page 46: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/46.jpg)
Mining incentives and strategies
![Page 47: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/47.jpg)
Game-theoretic analysis of miningSeveral strategic decisions ● Which transactions to include in a block
○ Default: any above minimum transaction fee ● Which block to mine on top of
○ Default: longest valid chain ● How to choose between colliding blocks
○ Default: first block heard ● When to announce new blocks
○ Default: immediately after finding them
![Page 48: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/48.jpg)
Game-theoretic analysis of mining
Assume you control 0 < α < 1 of mining power
Can you profit from a non-default strategy?
![Page 49: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/49.jpg)
Game-theoretic analysis of mining
Assume you control 0 < α < 1 of mining power
Can you profit from a non-default strategy?
For some α, YES!
![Page 50: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/50.jpg)
Forking attacks
M→B
![Page 51: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/51.jpg)
Forking attacks
M→M’
M→B
![Page 52: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/52.jpg)
Forking attacks
M→M’
M→B
![Page 53: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/53.jpg)
Forking attacks
M→M’
M→B
M→M’
M→B
![Page 54: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/54.jpg)
Forking attacks● Certainly possible if α >0.5
○ may be possible with less
![Page 55: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/55.jpg)
Forking attacks● Certainly possible if α >0.5
○ may be possible with less● Attack is detectable
![Page 56: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/56.jpg)
Forking attacks● Certainly possible if α >0.5
○ may be possible with less● Attack is detectable● Might be reversed
![Page 57: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/57.jpg)
Forking attacks● Certainly possible if α >0.5
○ may be possible with less● Attack is detectable● Might be reversed● Might crash exchange rate
![Page 58: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/58.jpg)
Forking attacks
Goldfinger Attack
● Certainly possible if α >0.5○ may be possible with less
● Attack is detectable● Might be reversed● Might crash exchange rate
![Page 59: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/59.jpg)
Forking attacks
Goldfinger Attack
● Certainly possible if α >0.5○ may be possible with less
● Attack is detectable● Might be reversed● Might crash exchange rate
I expect you to die, Mr. Bitcoin
![Page 60: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/60.jpg)
Forking attacks via bribery● Idea: building α > 0.5 is expensive. Why
not rent it instead?
● Payment techniques: ○ Out-of-band bribery ○ Run a mining pool at a loss ○ Insert large “tips” in the block chain
![Page 61: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/61.jpg)
Selfish Mining (a.k.a. Block-withholding attack)
![Page 62: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/62.jpg)
Selfish Mining: Strategy ● Form a pool. ● Secretly fork the chain. ● Don’t announce blocks right away. Try to get ahead!
![Page 63: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/63.jpg)
Public Chain
![Page 64: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/64.jpg)
Public Chain
Current Public Head
![Page 65: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/65.jpg)
Public Chain
Honest Miners
Selfish Miner Pool
• The honest miners and the selfish miner pool start mining at the current public head.
![Page 66: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/66.jpg)
Honest miners find a new block first.
Selfish pool finds a new block first.
Case 1
Case 2
![Page 67: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/67.jpg)
Honest miners find a new block first.
Selfish miner pool adopts the main branch and starts mining on the new current public head.
New Current Public Head
Case 1
![Page 68: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/68.jpg)
Selfish pool finds a new block first.
Selfish pool keeps this branch private, and starts mining on this private branch.
New Current Private Head
Case 2
![Page 69: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/69.jpg)
Public Head
Block mined by selfish pool and kept private
Let’s focus on the case where selfish pool mines a block and keeps it private
![Page 70: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/70.jpg)
Honest miners discover a new block on the public branch.
Selfish pool finds a second block.Case 2Case 1
Block mined by honest miners
Public Head
Block mined by selfish pool and kept private
![Page 71: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/71.jpg)
Honest miners discover a new block on the public head.
The selfish pool publishes its private branch.
Case 2Case 1
Block mined by honest miners
Public Head
Block mined by selfish pool and kept private
Block mined by selfish pool and made public
![Page 72: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/72.jpg)
Honest miners discover a new block on the public head.
The selfish pool publishes its private branch.
Case 2Case 1
• There are 2 competing chains of the same length now.
• The selfish pool mines to extend its branch. • Honest miners choose to mine on either branch.
![Page 73: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/73.jpg)
Honest miners discover a new block on the public head.
The selfish pool publishes its private branch.
Selfish pool mines a second block and publishes it.
Revenue = 2
Case 2
Case 1
Case 1
![Page 74: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/74.jpg)
Honest miners discover a new block on the public head.
The selfish pool publishes its private branch.
Revenue = 2
Case 2
Case 1
Case 1
Case 2
Honest miners mine a block after the pool’s revealed block.
Revenue = 1
![Page 75: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/75.jpg)
Honest miners discover a new block on the public head.
The selfish pool publishes its private branch.
Revenue = 2 Revenue = 1
Case 2
Case 1
Case 1
Case 2 Case 3
Honest miners mine a block after their own block.
Revenue = 0
![Page 76: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/76.jpg)
Revenue = 2 Revenue = 1 Revenue = 0
Selfish pool finds a second block.Case 2
Case 1
Case 1
Case 2 Case 3
![Page 77: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/77.jpg)
Revenue = 2 Revenue = 1 Revenue = 0
Selfish pool finds a second block.Case 2
Case 1
Case 1
Case 2 Case 3
![Page 78: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/78.jpg)
Revenue = 2 Revenue = 1 Revenue = 0
Selfish pool finds a second block.
• Honest miners mine a block on the public branch.
• Selfish pool has a lead of 1 block.
Case 2
Case 1
Case 1
Case 2 Case 3
Case 1
![Page 79: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/79.jpg)
Revenue = 2 Revenue = 1 Revenue = 0
Selfish pool finds a second block.
• Honest miners mine a block on the public branch.
• Selfish pool has a lead of 1 block.
Selfish Pool publishes the entire chain.
Revenue = 2
Case 2
Case 1
Case 1
Case 2 Case 3
Case 1
![Page 80: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/80.jpg)
Revenue = 2 Revenue = 1 Revenue = 0
Selfish pool finds a second block.
• Selfish pool mines a block on their private chain
• Selfish pool gets a lead of >2 blocks.Revenue = 2
Case 2
Case 1
Case 1
Case 2 Case 3
Case 1 Case 2
![Page 81: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/81.jpg)
Selfish Pool gets a lead of >2 blocks●Selfish pool continues to mine on its private branch. ●For each subsequent block mined by an honest party, it
publishes one block from its private chain. ●Tries to maintain a lead of 2 blocks for as long as
possible. ● If the lead reduces to 1, it publishes its private branch.
Earns revenue for all its blocks.
![Page 82: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/82.jpg)
Selfish Pool gets a lead of >2 blocks
If the selfish pool is in minority, then with a very high probability this lead will eventually reduce to one block.
Case 1
Case 2
![Page 83: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/83.jpg)
Analysis
●
![Page 84: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/84.jpg)
Analysis: Revenue Rate (Ideal Case)
●
![Page 85: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/85.jpg)
Analysis: Revenue Rate (Selfish Mining)
●
![Page 86: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/86.jpg)
Analysis: Revenue Rate Ratio
●
![Page 87: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/87.jpg)
●
![Page 88: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/88.jpg)
![Page 89: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/89.jpg)
●
![Page 90: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/90.jpg)
●
![Page 91: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/91.jpg)
![Page 92: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/92.jpg)
Selfish-mining attacks● Surprising departure from previous
assumptions ● Not yet observed in practice! ● Plausible reason: selfish-mining is
detectable, could lead to a crash in exchange rates for Bitcoin
![Page 93: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/93.jpg)
Punitive forking● Suppose you want to blacklist transactions
from address X ○ Freeze an individual’s money forever
● Extreme strategy: announce that you will refuse to mine on any chain with a transaction from X
![Page 94: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/94.jpg)
Punitive forking● Suppose you want to blacklist transactions
from address X ○ Freeze an individual’s money forever
● Extreme strategy: announce that you will refuse to mine on any chain with a transaction from X
With α < 0.5, you’ll soon fall behind the network
![Page 95: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/95.jpg)
Feather-forking strategy● To blacklist transactions from X, announce
that you will refuse to mine directly on any block with a transaction from X ○ but you’ll concede after n confirming blocks
● Chance of pruning an offending block is α2
![Page 96: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/96.jpg)
Response to feather forking● For other miners, including a
transaction from X induces an α2 chance of losing a block
● Might be safer to join in on the blacklist ● Can enforce a blacklist with α < 0.5!
![Page 97: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/97.jpg)
Response to feather forking● For other miners, including a
transaction from X induces an α2 chance of losing a block
● Might be safer to join in on the blacklist ● Can enforce a blacklist with α < 0.5!
Success depends on convincing other miners you’ll fork
![Page 98: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/98.jpg)
Feather-forking: what is it good for?● Freezing individual bitcoin owners
○ ransom/extortion ○ law enforcement?
● Enforcing a minimum transaction fee ● Current transaction fees are low (about 2% of
revenue) ● But may become significant when mining
reward becomes low
![Page 99: Lecture 8 - Department of Computer Scienceabhishek/classes/CS601-641-441... · Forking attacks via bribery Idea: building α > 0.5 is expensive. Why not rent it instead? Payment techniques:](https://reader035.fdocuments.us/reader035/viewer/2022070821/5f21b8d57cf040069954db7b/html5/thumbnails/99.jpg)
Summary● Miners are free to implement any strategy ● Very little non-default behavior in the wild ● Game-theoretic analysis necessary ● Very recent work: [Badertscher-Garay-
Maurer-Tshudi-Zikas, EUROCRYPT’18]