Block withholding
Also covering Oblivious shares
Block withholding is an attack against pooled mining where a miner submits and receives payment for shares that are not eligible to become full blocks but doesn’t submit shares that are eligible to become full blocks. This allows the miner to earn 99.9% of their expected revenue without the pool earning anything from the miner’s work. Oblivious shares is a proposed solution to block withholding.
In pooled mining, there are two types of shares: those that have enough work to be a valid block and those that don’t. In a pure pay-per-share (PPS) scheme, the pool pays the same amount for both types but the pool only earns rewards from the Bitcoin system for producing valid blocks. This can allow a pool member to forfeit a small amount of income in order to deny the pool a large amount of income.
For example, imagine the ratio between the network proof-of-work (PoW) target and the pool share target is 1,000, so for every 1,000 shares submitted by pool members, the pool would be expected to find one block on average. Malicious pool member Mallory submits each share she finds except those that have enough proof of work to be valid blocks. On average, Mallory gets paid for 999 shares out of every 1,000 she generates, reducing her income by 0.1% but costing the pool 100% of a block reward for every 1,000 shares generated by Mallory.
If Mallory operates a pool, she might be motivated to use block withholding attacks against other pools, significantly reducing their profitability and potentially driving them out of business to Mallory’s advantage.
We are unaware of any deployed method that fully addresses this problem. A common mitigation is for pools to pay more for shares that have enough work to be a valid block (which implies paying less for other shares). Some pools also restrict who can join their pools and use techniques from statistical analysis to attempt to detect block withholders.
A proposed solution is oblivious shares, which prevents the miner creating the share from determining whether it meets the network PoW target. Only the pool can make that determination, preventing the miner from being able to selectively withhold shares that would benefit the pool. Adding support for oblivious shares to Bitcoin requires a hard fork and may create other problems.
Primary code and documentation
Optech newsletter and website mentions
2024
See also
Previous Topic:
Block explorers
Next Topic:
BLS signatures