1

From what I understand, miners secure the bitcoin network by making it very-very expensive to do a 51% attack or double spend bitcoins through the sheer amount of hash power needed to overwhelm the network.

That implies, if the hash power happens to be very low (for whatever reason), an entity could theoretically mount this attack and thus reverse transactions or double spend the coins.

So what is the role of non-mining full nodes then? Does not seems to serve any real purpose to me?

6

Non-mining full nodes cannot prevent a 51% attack, but they are essential in preventing other attacks.

In particular, full nodes verify that the chain produced by miners is valid. This means that no coins are transferred without proper authorization from their owner, that no new coins are being created out of thin air (except for those permitted by the inflation schedule), and a few other things.

Full nodes are what keeps miners honest. To anyone who verifies incoming transactions themselves using a full node ("economically relevant full node"), it guarantees that the chain is valid. Miners have no way to cheat those (apart from a 51% attack, see further), and as a result, they have no incentive to produce blocks that violate the rules, as such blocks will be dropped on the floor and ignored by full nodes. To anyone not running a node themselves, the knowledge that a sufficient number of other independent parties are running full nodes helps, because hopefully those parties are important enough that miners wouldn't want to waste their money creating an invalid block they would detect.

Bitcoin's security is based on auditability, not trust. You know the chain, in its entirety, is valid, because you're able to independently verify that it is.

Unfortunately, there is no way to verify which of two conflicting (but otherwise valid) transactions is the "real" one without a central clearinghouse that blesses one of the two. This is called the double spending problem, and it is the reason why we need miners: a decentralized clearinghouse that anyone with the right hardware, even anonymously, can join. Producing blocks costs money for them, and they're only paid if the network of full nodes accept their blocks. This is why they're incentivized (but not forced) to produce blocks that satisfy the rules, and build on top of each other's blocks.

But it is important to see that the 51% attack is the exception here. For almost every rule in Bitcoin, full nodes verify everything, and there is no way they can be fooled. The only thing that cannot be verified independently is double spends, which leads to a 51% attack if exploited (but the theory is that this would be expensive for miners so not economical; furthermore, if miners aren't doing their job well, others are incentivized to become a miner themselves).

  • 1
    Thanks for this detailed answer. Most answers I found simply says "miners keep the network secure but full nodes enforce the rules..." that statement alone confuses the hell out of me... – Rosdi Kasim Nov 29 '18 at 2:16
3

May I add the following:

An additional full-node does not automatically equal more Security

Full-nodes may validate, but if they are not validating transactions received by the node operator, they do not offer any security, in fact, they decrease it by adding latency to the network.

Only a full-node validating transactions received by a person who is offering economic value (Goods/Services etc.) in return for the received Bitcoin is securing the system, as he/she is part of the "economic majority" who is actively deciding which definition of Bitcoin is "worth" trading value for. This person has the power to reject trade (Bitcoin for Value) with his/her full-node, and therefore is protecting/enforcing the validation rules agreed upon by the economic majority (the group of people who are in agreement (consensus) what "Bitcoin definition" to trade for economic value.

So it is important to note that simply adding nodes to the network, without actively using them to validate incoming transactions, (for which you paid for with goods, services) is not a system-securing act and therefore meaningless.

0

So what is the role of non-mining full nodes then?

Relaying valid transactions. Keeping blockchain for others. Serving light clients. Nothing more.

  • 1
    ... relaying valid blocks, allowing users to validate the network state independently, allowing users to interact with higher level layers (eg LN) trustlessly... – chytrik Nov 28 '18 at 22:26
0

When Bitcoin was released, nodes and miners were the same thing, a computer which:

  • validates and relays transactions
  • validates, mines, and relays blocks. See Bitcoin Whitepaper.

When mining started being done on GPUs and eventually ASICs, it was run on separate hardware than the nodes. This is because the mining hardware was designed to be good at only 1 of the things listed above, mining. They perform trillions of hashes per second until a solution is found.

Nodes perform all of the transaction and block validation as well as relaying that information to other nodes on the network. Generally speaking, miners receive the information necessary to mine from a node, and then submits its work back to the node to be validated.

Can non mining full nodes prevent 51% attack? Does it actually strengthen the network? I am confused of its real purpose

Not without a miner, because the 51% attack refers to the hashpower or the amount of work the miners are able to do. Nodes just validate, store, and relay the blocks, but they cannot create new blocks without a miner to generate the proof of work.

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.