<p>For 1. And 2. check <a href="https://bitcoin.stackexchange.com/questions/61385/how-proof-of-work-prevents-double-spend">How proof of work prevents double spend</a>. Removing the solving of difficult problems would allow double spending attacks as per cited thread.</p>

<ol start="3">
<li><p>I don't know but seems like an interesting idea.</p>

<p>EDIT: I thought of the same idea before. But the problem miners solve must have some specific properties. </p>

<p>In my opinion it must:</p>

<ul>
<li><p>be randomly chosen (unpredictable) so that miners don't know the problem until previous one is solved (otherwise they would mine some block in advance and get a coin ahead of others). This is solved by including hash of previous block in the problem.</p></li>
<li><p>Be linked somehow to transactions it confirms so that transactions cannot be altered afterwards. This is solved by including hash of transactions (Merkle root) in the problem.</p></li>
</ul>

<p>I think it is hard (or impossible) for the problem with these properties to be useful somewhere else.</p>

<p>Check also: <a href="https://bitcoin.stackexchange.com/questions/331/is-there-a-way-to-set-up-proof-of-work-systems-so-they-would-be-even-more-useful">Is there a way to set up proof-of-work systems so they would be even more useful?</a></p></li>
</ol>

CC BY-SA 3.0
2017-10-30T10:50:29.923Z
Thanks croraf, PoW essentially makes it difficult to do double-spends and/or rogue attacks, [but is not immune to it](http://poseidon.it.usyd.edu.au/~gramoli/web/doc/pubs/balance_attack_long_version.pdf). I see a lot of opportunity to utilize miners compute power for solving real compute problems, and not just limited to adding a difficulty step for miners.
CᴴᴀZ
CC BY-SA 3.0
2017-10-30T13:40:26.090Z
Adding my opinions about 3. in the edit.
croraf
CC BY-SA 3.0
2017-10-30T13:52:13.623Z
answer should also add a reference to https://bitcoin.stackexchange.com/questions/331/is-there-a-way-to-set-up-proof-of-work-systems-so-they-would-be-even-more-useful for the 3rd item
rny
CC BY-SA 3.0
2017-10-27T17:11:35.893Z
2017-10-30T13:53:02.177Z
2017-10-30T13:53:02.177Z
croraf
<ol>
<li><p>The "consensus algorithm" you are referring to is predicated on the "hash guessing" you are trying to eliminate.</p></li>
<li><p>If we skipped "hash guessing," the resiliency and reliability of the blockchain would be completely destroyed.</p></li>
<li><p>This question assumes at least 2 false premises and cannot be meaningfully answered.</p></li>
</ol>

CC BY-SA 3.0
2017-10-27T17:05:07.313Z
2017-10-27T17:05:07.313Z
Luke Mlsna
<p><a href="http://cointext.com/2013/05/16/what-problem-is-solved-by-bitcoin-miners/" rel="nofollow noreferrer">This post</a> on CoinText explains <strong>Purpose of Hashing in Bitcoin Mining</strong>:</p>

<blockquote>
  <p>The purpose of all the extra work is to prevent the traitors from sending false messages but serves no other purpose.</p>
</blockquote>

<p>The idea seems to make the false/rogue attempts of Byzantinian nodes more <em>difficult</em>.</p>

<p>Since I am researching on this, would like the community's view(s) on:</p>

<ol>
<li>We have Consensus algorithm in place to deal with false/rogue messages, then why is there a need to make the process more <em>difficult</em> by adding <code>hash guessing</code> work?</li>
<li>If we skip <code>hash guessing</code> work, how will it impact the resiliency or reliability of Blockchain?</li>
<li>Since <code>hash guessing</code> tries to make further rogue attempts costly and there is no value-add from the computation, can we route some other <em>difficult</em> problems to Miners to keep the message attempt difficult and still utilize resources to compute something of value?</li>
</ol>

CC BY-SA 3.0
2017-10-27T15:33:20.460Z
*"we have consensus algorithm"*... what algorithm?  I know of no algorithm without a central trust, with the kind of resilience against bad actors that Blockchain has.
abelenky
CC BY-SA 3.0
2017-10-27T17:13:18.223Z
He means consensus rules for rejecting invalid (already spent) transactions.
croraf
CC BY-SA 3.0
2017-10-30T13:22:29.883Z
@abelenky Blockchain has inherent rule/algorithm for invalidating transactions if consensus is not reached. This is being referred in the question.
CᴴᴀZ
<blockchain><bitcoin-core><hash><block-hash>
Why Bitcoin Mining requires "Hash Guessing" problems, even though Consensus algorithm exists to tackle BFTP?
CᴴᴀZ
# Why Bitcoin Mining requires "Hash Guessing" problems, even though Consensus algorithm exists to tackle BFTP?

(Asked by: username_0 on 2017-10-27)

[This post](http://cointext.com/2013/05/16/what-problem-is-solved-by-bitcoin-miners/) on CoinText explains **Purpose of Hashing in Bitcoin Mining**:

> The purpose of all the extra work is to prevent the traitors from sending false messages but serves no other purpose.

The idea seems to make the false/rogue attempts of Byzantinian nodes more *difficult*.

Since I am researching on this, would like the community's view(s) on:

1. We have Consensus algorithm in place to deal with false/rogue messages, then why is there a need to make the process more *difficult* by adding `hash guessing` work?
2. If we skip `hash guessing` work, how will it impact the resiliency or reliability of Blockchain?
3. Since `hash guessing` tries to make further rogue attempts costly and there is no value-add from the computation, can we route some other *difficult* problems to Miners to keep the message attempt difficult and still utilize resources to compute something of value?

**Tags:** blockchain, bitcoin-core, hash, block-hash

> **Comments:**
> **username_1**: *"we have consensus algorithm"*... what algorithm?  I know of no algorithm without a central trust, with the kind of resilience against bad actors that Blockchain has.  
> **username_2**: He means consensus rules for rejecting invalid (already spent) transactions.  
> **username_0**: @username_1 Blockchain has inherent rule/algorithm for invalidating transactions if consensus is not reached. This is being referred in the question.  

---

## 2 answers

### Answer by username_2 on 2017-10-27. Score: 0 | Accepted answer

For 1. And 2. check [How proof of work prevents double spend](https://bitcoin.stackexchange.com/questions/61385/how-proof-of-work-prevents-double-spend). Removing the solving of difficult problems would allow double spending attacks as per cited thread.

3. I don't know but seems like an interesting idea.

   EDIT: I thought of the same idea before. But the problem miners solve must have some specific properties.

   In my opinion it must:

   * be randomly chosen (unpredictable) so that miners don't know the problem until previous one is solved (otherwise they would mine some block in advance and get a coin ahead of others). This is solved by including hash of previous block in the problem.
   * Be linked somehow to transactions it confirms so that transactions cannot be altered afterwards. This is solved by including hash of transactions (Merkle root) in the problem.

   I think it is hard (or impossible) for the problem with these properties to be useful somewhere else.

   Check also: [Is there a way to set up proof-of-work systems so they would be even more useful?](https://bitcoin.stackexchange.com/questions/331/is-there-a-way-to-set-up-proof-of-work-systems-so-they-would-be-even-more-useful)

> **Comments:**
> **username_0**: Thanks username_2, PoW essentially makes it difficult to do double-spends and/or rogue attacks, [but is not immune to it](http://poseidon.it.usyd.edu.au/~gramoli/web/doc/pubs/balance_attack_long_version.pdf). I see a lot of opportunity to utilize miners compute power for solving real compute problems, and not just limited to adding a difficulty step for miners.  
> **username_2**: Adding my opinions about 3. in the edit.  
> **username_3**: answer should also add a reference to https://bitcoin.stackexchange.com/questions/331/is-there-a-way-to-set-up-proof-of-work-systems-so-they-would-be-even-more-useful for the 3rd item  

---

### Answer by username_4 on 2017-10-27. Score: 1

1. The "consensus algorithm" you are referring to is predicated on the "hash guessing" you are trying to eliminate.
2. If we skipped "hash guessing," the resiliency and reliability of the blockchain would be completely destroyed.
3. This question assumes at least 2 false premises and cannot be meaningfully answered.


---

