1

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?

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.

  • 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 Nov 30 '17 at 17:26
  • 1
    @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 Nov 30 '17 at 17:37
  • 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 Nov 30 '17 at 17:52
  • 1
    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 Nov 30 '17 at 18:07
  • 1
    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 Dec 3 '17 at 6:21
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.

  • "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 Nov 30 '17 at 17:18
  • 1
    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 Dec 2 '17 at 22:18
  • 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 Dec 4 '17 at 13:28
  • 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 Dec 10 '17 at 23:38
1

No, there wouldn't. The point of mining is to solve the consensus problem. Taking your logic further, if everybody believes in your god-machine, it might as well just clear the transactions itself.

  • 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 Nov 30 '17 at 16:08
  • @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 Nov 30 '17 at 16:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.