<p>No, there wouldn't. The point of mining is to solve the <a href="https://en.wikipedia.org/wiki/Consensus_(computer_science)" rel="nofollow noreferrer">consensus problem</a>. Taking your logic further, if everybody believes in your god-machine, it might as well just clear the transactions itself.</p>

CC BY-SA 3.0
2017-11-30T16:08:31.017Z
Agreed; if the "god machine" can solve the blocks itself there would be no need for miners. But if the "god machine" only selects miners to compile the next block, the 51% attack would theoretically be possible. Only it wouldn't be called that..
Monstrum
CC BY-SA 3.0
2017-11-30T16:30:25.463Z
@Adam That machine is not a singularity, it's a distributed machine made of 10000 full nodes - there are no miners since there's no mining anymore. The consensus problem can conceivably be solved without mining once every 10 minutes or so, even in the presence of many byzantine nodes, provided all good nodes use the exact same algorithm for it (which happens right now with bitcoin if no hard forks) and are somehow incentivized to behave. Electing a leader in short time is impossible with that many nodes and frequent node failures, but once every 10 minutes is easier (with restrictions).
coinjoe
CC BY-SA 3.0
2017-11-30T16:06:24.917Z
2017-11-30T16:06:24.917Z
Adam Millerchip
<p>Yes. You are not understanding the purpose of a miner.<br /><br />
Let us imagine this.<br /><br />
If someone wanted to broadcast a fraudulent transaction (Alice pays Bob <code>100 BTC</code> without Alice's explicit approval), they would need to find the block before anyone else, place the fraudulent transaction in the block (very hypothetical), and broadcast the block to the rest of the network. Some people may accept this block, and some people may not depending on propagation time. At this point we will assume that due to conflict in block acceptance, there are two competing chains of blocks being mined simultaneously. If this malicious someone wanted to keep his/her blockchain authentic to all Bitcoin clients, he/she would need to find the following blocks before everyone else, again, each time.<br/><br/> Bitcoin clients will, by default, trust the longest chain available to them. The chances of a malicious user finding all the blocks before everyone else until there are <code>6 confirmations</code> on the malicious transactions is <em>very</em> unlikely.<br /><br />
<a href="https://www.youtube.com/watch?v=bBC-nXj3Ng4" rel="nofollow noreferrer">3blue1brown has constructed a great, informative explanation to Bitcoin mining.</a></p>

CC BY-SA 3.0
2017-11-30T17:18:31.873Z
"Finding a block before anyone else" means "solving the hash puzzle before anyone else", which is just a way to randomly select a miner. If there is a "god-like" machine, then the chances of a malicious user solving the hash puzzle before anyone else 6 times consecutively are theoretically the same as the "god-like" machine selecting the same malicious user 6 times consecutively. Remember the assumptions that 1) every miner has equal hashing power, and 2) the "god-like" machine is completely fair. So I do not see the need for mining if such a machine is available.
Ajoy Bhatia
CC BY-SA 3.0
2017-12-02T22:18:02.633Z
If you are using the god-like machine to select miners to compile blocks, everyone is going to trust that block even if someone who randomly got selected put some fraudulent data in it. If, however, someone solves the block before everyone else, there is conflict in block acceptance. There will be two instances of the chain and the longest one will be accepted by the network. Watch the video I put in the answer.
Monstrum
CC BY-SA 3.0
2017-12-04T13:28:27.630Z
No. Not everyone is going to trust that block. After the block is broadcasted, everyone else checks that block. That's what happens now, with any block, even in the absence of competing blocks. There is no trust just because you've found a good hash. EVERYONE checks your block in bitcoin. Just because you got lucky doesn't mean you are trustworthy. Just because some machine chose you doesn't mean you can be trusted. They all check the new block. The occasional splitting of the chain has nothing to do with verifying every transaction in every published block.
coinjoe
CC BY-SA 3.0
2017-12-10T23:38:01.273Z
The malicious miner will, of course, have to match the block hash before broadcasting the transaction. Any exploits I mentioned are entirely speculative and have never been successful. But in the case that there is a malicious block, the presence of competitive miners can prevent the block from being accepted. Temporary chains won't be created globally, but locally. If, as a bitcoin client, you are listening for blocks and receive two different variations of the same block, you will accept the most extended chain available to you. Again, this is all theoretical.
Monstrum
CC BY-SA 3.0
2017-11-30T15:52:36.790Z
2017-11-30T15:52:36.790Z
Monstrum
<p>Mining adds a certain level of commitment to the process.</p>

<p>If mining were free, a corrupt user could create thousands or millions of corrupt miners (for free) that would publish invalid blocks that made itself rich, and try to get even one of these blocks accepted.</p>

<p>The same is true of your "god-like" random selector:<br>
Publish blocks, and hope you get randomly selected!  </p>

<p>But mining is intensive: it costs money to setup a miner, and it costs electricity and networking to run a miner. You cannot fake thousands or millions of miners; each of them costs real money.</p>

<p>So the only way you can publish invalid blocks and hope to get rich is via a substantial investment.   The hash power of the network is so big now, that it is virtually impossible to setup a "evil" mining pool.  <em>(If you succeeded, that would be a >51% attack)</em></p>

<p>The costs associated with mining ensure that there is a barrier to entry, and that "evil" miners cannot easily hope to overcome "honest" miners.  It ensures the integrity of the entire system.</p>

CC BY-SA 3.0
2017-11-30T17:26:43.200Z
Good answer. For the "god-like" machine to be able to replace mining, _another_ assumption (besides the ones listed in the question) is necessary - that each mining node be owned by a separate entity and these entities not _collaborate_ with each other (or equivalently, that each separate entity own an equal number of mining nodes, and not collaborate). Without this condition (which is very unrealistic... well, even a "god-like" machine is unrealistic), the "god-like" machine does **not** eliminate the need for mining.
Ajoy Bhatia
CC BY-SA 3.0
2017-11-30T17:37:36.803Z
@Ajoy LOL This is actually one of the worst answers possible. I don't think Mr. abelenky even understood the question. If there is no mining, nobody "publishes blocks that try to get accepted" since they would certainly be rejected - it's futile if you were not elected. It would be just spam. First you are elected, then you publish a block, not the other way around. The same way it happens now in bitcoin: first you find a small enough hash, then you publish the block. Otherwise you're just creating spam, easily rejected.
coinjoe
CC BY-SA 3.0
2017-11-30T17:52:25.680Z
That's true. Thanks, @coinjoe. But the need to ensure that a single entity cannot set up any number of nodes and increase its chances of being selected, still remains. I guess the OP's assumption that "all miners are about equal in hashing power" should actually instead be that "any two or more publishing nodes (not calling them "miners") do not collaborate with each other".
Ajoy Bhatia
CC BY-SA 3.0
2017-11-30T17:55:51.023Z
Yes, that is a requirement. And there are various solutions to it. I didn't mention it intentionally because I didn't want to complicate the constraints set. Dash is very popular and they have masternodes, with reputations and with a lot of coins being deposited by each. And being rewarded (incentivized) to run those nodes. And with a voting system in place. And the coin is very popular. In these conditions, why they are still mining is beyond me... Probably because people are so used to mining as "something to do to get those coins" that they can't see a coin without it.
coinjoe
CC BY-SA 3.0
2017-11-30T18:07:05.447Z
The idea that "the universal master rolls a dice and if it hits our number we win 12.5 coins" seems unthinkable to most people, because it seems completely out of their control. It's much more comforting to think that you're actually doing something to win that prize, spending some effort, working, putting some money down, and when you win it's because of that effort, not because of some random dice rolling. And thus, we mine...
coinjoe
CC BY-SA 3.0
2017-12-03T06:21:45.227Z
See @Monstrum's comment under his answer. If a single "god-like" machine selects a node and then that node publishes a block, it could publish a fraudulent transaction, too. We forgot that the nodes are not necessarily honest. There **need** to be competing blocks and competing branches. Only then will fraudulent blocks be shut out of the main chain.
Ajoy Bhatia
CC BY-SA 3.0
2017-12-04T13:23:24.673Z
No. There is no such need. If there was, Cardano would not work. Have you seen their market cap? In fact no PoS based coins would work if there was such a need. And there are too many of them to list here. What you call "fraudulent transaction" is probably a double spending transaction, otherwise you would have to define it more clearly. Double spending can and has been solved in non-mining blockchains. Branching of the chain and acceptance of the longest one THAT IS CORRECTLY FORMED does not need mining, it just needs an honest majority, which is a requirement for any blockchain.
coinjoe
CC BY-SA 3.0
2017-11-30T15:49:09.787Z
2017-11-30T15:49:09.787Z
abelenky
<p>I know it's not really a completely random selection because some miners have more hashing power so their odds are increased.</p>

<p>But let's assume for a moment that all miners are about equal in hashing power.</p>

<p>The way I see it, whoever solves the current block is (almost) completely unpredictable and thus mining is just a way to randomly select a winning miner.</p>

<p>I understand about decentralizing and the need for a decentralized way of selecting this winner without trusting a higher authority for this random selection.</p>

<p>Let's imagine for a moment that there was this "god-like" machine somewhere, completely trustworthy and incorruptible, impossible to bring down or shutdown and completely fair.
Let's say this machine would select the winning miner that would create and sign the next block and get the reward and fees.</p>

<p>Would there still be a need for mining in that case?</p>

<mining-theory><decentralization>
Is mining essentially just a way to randomly select the next winning miner?
coinjoe
# Is mining essentially just a way to randomly select the next winning miner?

(Asked by: username_0 on 2017-11-30)

I know it's not really a completely random selection because some miners have more hashing power so their odds are increased.

But let's assume for a moment that all miners are about equal in hashing power.

The way I see it, whoever solves the current block is (almost) completely unpredictable and thus mining is just a way to randomly select a winning miner.

I understand about decentralizing and the need for a decentralized way of selecting this winner without trusting a higher authority for this random selection.

Let's imagine for a moment that there was this "god-like" machine somewhere, completely trustworthy and incorruptible, impossible to bring down or shutdown and completely fair.
Let's say this machine would select the winning miner that would create and sign the next block and get the reward and fees.

Would there still be a need for mining in that case?

**Tags:** mining-theory, decentralization


---

## 3 answers

### Answer by username_1 on 2017-11-30. Score: 1

No, there wouldn't. The point of mining is to solve the [consensus problem](https://en.wikipedia.org/wiki/Consensus_(computer_science)). Taking your logic further, if everybody believes in your god-machine, it might as well just clear the transactions itself.

> **Comments:**
> **username_2**: Agreed; if the "god machine" can solve the blocks itself there would be no need for miners. But if the "god machine" only selects miners to compile the next block, the 51% attack would theoretically be possible. Only it wouldn't be called that..  
> **username_0**: @username_1 That machine is not a singularity, it's a distributed machine made of 10000 full nodes - there are no miners since there's no mining anymore. The consensus problem can conceivably be solved without mining once every 10 minutes or so, even in the presence of many byzantine nodes, provided all good nodes use the exact same algorithm for it (which happens right now with bitcoin if no hard forks) and are somehow incentivized to behave. Electing a leader in short time is impossible with that many nodes and frequent node failures, but once every 10 minutes is easier (with restrictions).  

---

### Answer by username_2 on 2017-11-30. Score: 1

Yes. You are not understanding the purpose of a miner.  
  
Let us imagine this.  
  
If someone wanted to broadcast a fraudulent transaction (Alice pays Bob `100 BTC` without Alice's explicit approval), they would need to find the block before anyone else, place the fraudulent transaction in the block (very hypothetical), and broadcast the block to the rest of the network. Some people may accept this block, and some people may not depending on propagation time. At this point we will assume that due to conflict in block acceptance, there are two competing chains of blocks being mined simultaneously. If this malicious someone wanted to keep his/her blockchain authentic to all Bitcoin clients, he/she would need to find the following blocks before everyone else, again, each time.  
  
 Bitcoin clients will, by default, trust the longest chain available to them. The chances of a malicious user finding all the blocks before everyone else until there are `6 confirmations` on the malicious transactions is *very* unlikely.  
  
[3blue1brown has constructed a great, informative explanation to Bitcoin mining.](https://www.youtube.com/watch?v=bBC-nXj3Ng4)

> **Comments:**
> **username_3**: "Finding a block before anyone else" means "solving the hash puzzle before anyone else", which is just a way to randomly select a miner. If there is a "god-like" machine, then the chances of a malicious user solving the hash puzzle before anyone else 6 times consecutively are theoretically the same as the "god-like" machine selecting the same malicious user 6 times consecutively. Remember the assumptions that 1) every miner has equal hashing power, and 2) the "god-like" machine is completely fair. So I do not see the need for mining if such a machine is available.  
> **username_2**: If you are using the god-like machine to select miners to compile blocks, everyone is going to trust that block even if someone who randomly got selected put some fraudulent data in it. If, however, someone solves the block before everyone else, there is conflict in block acceptance. There will be two instances of the chain and the longest one will be accepted by the network. Watch the video I put in the answer.  
> **username_0**: No. Not everyone is going to trust that block. After the block is broadcasted, everyone else checks that block. That's what happens now, with any block, even in the absence of competing blocks. There is no trust just because you've found a good hash. EVERYONE checks your block in bitcoin. Just because you got lucky doesn't mean you are trustworthy. Just because some machine chose you doesn't mean you can be trusted. They all check the new block. The occasional splitting of the chain has nothing to do with verifying every transaction in every published block.  
> **username_2**: The malicious miner will, of course, have to match the block hash before broadcasting the transaction. Any exploits I mentioned are entirely speculative and have never been successful. But in the case that there is a malicious block, the presence of competitive miners can prevent the block from being accepted. Temporary chains won't be created globally, but locally. If, as a bitcoin client, you are listening for blocks and receive two different variations of the same block, you will accept the most extended chain available to you. Again, this is all theoretical.  

---

### Answer by username_4 on 2017-11-30. Score: 1

Mining adds a certain level of commitment to the process.

If mining were free, a corrupt user could create thousands or millions of corrupt miners (for free) that would publish invalid blocks that made itself rich, and try to get even one of these blocks accepted.

The same is true of your "god-like" random selector:  
Publish blocks, and hope you get randomly selected!

But mining is intensive: it costs money to setup a miner, and it costs electricity and networking to run a miner. You cannot fake thousands or millions of miners; each of them costs real money.

So the only way you can publish invalid blocks and hope to get rich is via a substantial investment. The hash power of the network is so big now, that it is virtually impossible to setup a "evil" mining pool. *(If you succeeded, that would be a >51% attack)*

The costs associated with mining ensure that there is a barrier to entry, and that "evil" miners cannot easily hope to overcome "honest" miners. It ensures the integrity of the entire system.

> **Comments:**
> **username_3**: Good answer. For the "god-like" machine to be able to replace mining, _another_ assumption (besides the ones listed in the question) is necessary - that each mining node be owned by a separate entity and these entities not _collaborate_ with each other (or equivalently, that each separate entity own an equal number of mining nodes, and not collaborate). Without this condition (which is very unrealistic... well, even a "god-like" machine is unrealistic), the "god-like" machine does **not** eliminate the need for mining.  
> **username_0**: @username_3 LOL This is actually one of the worst answers possible. I don't think Mr. username_4 even understood the question. If there is no mining, nobody "publishes blocks that try to get accepted" since they would certainly be rejected - it's futile if you were not elected. It would be just spam. First you are elected, then you publish a block, not the other way around. The same way it happens now in bitcoin: first you find a small enough hash, then you publish the block. Otherwise you're just creating spam, easily rejected.  
> **username_3**: That's true. Thanks, @username_0. But the need to ensure that a single entity cannot set up any number of nodes and increase its chances of being selected, still remains. I guess the OP's assumption that "all miners are about equal in hashing power" should actually instead be that "any two or more publishing nodes (not calling them "miners") do not collaborate with each other".  
> **username_0**: Yes, that is a requirement. And there are various solutions to it. I didn't mention it intentionally because I didn't want to complicate the constraints set. Dash is very popular and they have masternodes, with reputations and with a lot of coins being deposited by each. And being rewarded (incentivized) to run those nodes. And with a voting system in place. And the coin is very popular. In these conditions, why they are still mining is beyond me... Probably because people are so used to mining as "something to do to get those coins" that they can't see a coin without it.  
> **username_0**: The idea that "the universal master rolls a dice and if it hits our number we win 12.5 coins" seems unthinkable to most people, because it seems completely out of their control. It's much more comforting to think that you're actually doing something to win that prize, spending some effort, working, putting some money down, and when you win it's because of that effort, not because of some random dice rolling. And thus, we mine...  
> **username_3**: See @username_2's comment under his answer. If a single "god-like" machine selects a node and then that node publishes a block, it could publish a fraudulent transaction, too. We forgot that the nodes are not necessarily honest. There **need** to be competing blocks and competing branches. Only then will fraudulent blocks be shut out of the main chain.  
> **username_0**: No. There is no such need. If there was, Cardano would not work. Have you seen their market cap? In fact no PoS based coins would work if there was such a need. And there are too many of them to list here. What you call "fraudulent transaction" is probably a double spending transaction, otherwise you would have to define it more clearly. Double spending can and has been solved in non-mining blockchains. Branching of the chain and acceptance of the longest one THAT IS CORRECTLY FORMED does not need mining, it just needs an honest majority, which is a requirement for any blockchain.  

---

