|
| 1 | +--- |
| 2 | +title: Block withholding |
| 3 | + |
| 4 | +## Optional. Shorter name to use for reference style links e.g., "foo" |
| 5 | +## will allow using the link [topic foo][]. Not case sensitive |
| 6 | +# shortname: foo |
| 7 | + |
| 8 | +## Optional. An entry will be added to the topics index for each alias |
| 9 | +title-aliases: |
| 10 | + - Oblivious shares |
| 11 | + |
| 12 | +## Required. At least one category to which this topic belongs. See |
| 13 | +## schema for options |
| 14 | +topic-categories: |
| 15 | + - Mining |
| 16 | + |
| 17 | +## Optional. Produces a Markdown link with either "[title][]" or |
| 18 | +## "[title](link)" |
| 19 | +primary_sources: |
| 20 | + - title: "Analysis of Bitcoin Pooled Mining Reward Systems (section 6.2: block withholding)" |
| 21 | + link: https://bitcoil.co.il/pool_analysis.pdf |
| 22 | + |
| 23 | +## Optional. Each entry requires "title" and "url". May also use "feature: |
| 24 | +## true" to bold entry and "date" |
| 25 | +optech_mentions: |
| 26 | + - title: Block withholding attacks and potential solutions |
| 27 | + url: /en/newsletters/2024/08/09/#block-withholding-attacks-and-potential-solutions |
| 28 | + |
| 29 | +## Optional. Same format as "primary_sources" above |
| 30 | +see_also: |
| 31 | + - title: Pooled mining |
| 32 | + link: topic pooled mining |
| 33 | + |
| 34 | +## Optional. Force the display (true) or non-display (false) of stub |
| 35 | +## topic notice. Default is to display if the page.content is below a |
| 36 | +## threshold word count |
| 37 | +#stub: false |
| 38 | + |
| 39 | +## Required. Use Markdown formatting. Only one paragraph. No links allowed. |
| 40 | +## Should be less than 500 characters |
| 41 | +excerpt: > |
| 42 | + **Block withholding** is an attack against pooled mining where a miner |
| 43 | + submits and receives payment for shares that are not eligible to |
| 44 | + become full blocks but doesn't not submit shares that are eligible to |
| 45 | + become full blocks. This allows the miner to earn 99.9% of their |
| 46 | + expected revenue without the pool earning anything from the miner's |
| 47 | + work. **Oblivious shares** is a proposed solution to block |
| 48 | + withholding. |
| 49 | +
|
| 50 | +--- |
| 51 | +In [pooled mining][topic pooled mining], there are two types of shares: |
| 52 | +those that have |
| 53 | +enough work to be a valid block and those that don't. In a pure |
| 54 | +pay-per-share (PPS) scheme, the pool pays the same amount for both types |
| 55 | +but the pool only earns rewards from the Bitcoin system for producing |
| 56 | +valid blocks. This can allow a pool member to forfeit a small amount of |
| 57 | +income in order to deny the pool a large amount of income. |
| 58 | + |
| 59 | +For example, imagine the ratio between the network proof-of-work (PoW) |
| 60 | +target and the pool share target is 1,000, so for every 1,000 shares |
| 61 | +submitted by pool members, |
| 62 | +the pool would be expected to find one block on average. Malicious |
| 63 | +pool member Mallory submits each share she finds except those that have |
| 64 | +enough proof of work to be valid blocks. On average, Mallory gets |
| 65 | +paid for 999 shares out of every 1,000 she generates, reducing her |
| 66 | +income by 0.1% but costing the pool 100% of a block reward for every |
| 67 | +1,000 shares generated by Mallory. |
| 68 | + |
| 69 | +If Mallory operates a pool, she might be motivated to use block |
| 70 | +withholding attacks against other pools, significantly reducing their |
| 71 | +profitability and potentially driving them out of business to Mallory's |
| 72 | +advantage. |
| 73 | + |
| 74 | +We are unaware of any deployed method that fully addresses this problem. |
| 75 | +A common mitigation is for pools to pay more for shares that have enough |
| 76 | +work to be a valid block (which implies paying less for other shares). |
| 77 | +Some pools also restrict who can join their pools and use techniques |
| 78 | +from statistical analysis to attempt to detect block withholders. |
| 79 | + |
| 80 | +A proposed solution is _oblivious shares_, which prevents the miner |
| 81 | +creating the share from determining whether it meets the network PoW |
| 82 | +target. Only the pool can make that determination, preventing the miner |
| 83 | +from being able to selectively withhold shares that would benefit the |
| 84 | +pool. Adding support for oblivious shares to Bitcoin requires a hard |
| 85 | +fork and may create [other problems][news315 oblivious]. |
| 86 | + |
| 87 | +{% include references.md %} |
| 88 | +{% include linkers/issues.md issues="" %} |
| 89 | +[news315 oblivious]: /en/newsletters/2024/08/09/#block-withholding-attacks-and-potential-solutions |
0 commit comments