Hacker News new | ask | show | jobs
by Frogolocalypse 3296 days ago
> Satoshi from the Bitcoin white-paper chapter 12 'Conclusion' : The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism.

First, you have to understand what 'consensus' actually means :

> https://en.wikipedia.org/wiki/Consensus_%28computer_science%...

> A fundamental problem in distributed computing and multi-agent systems is to achieve overall system reliability in the presence of a number of faulty processes. This often requires processes to agree on some data value that is needed during computation. Examples of applications of consensus include whether to commit a transaction to a database (or, for example, committing blocks to a blockchain), agreeing on the identity of a leader, state machine replication, and atomic broadcasts. The real world applications include clock synchronization, PageRank, opinion formation, smart power grids, state estimation, control of UAVs, load balancing and others.

Nodes are the agents in a multi-agent system enforcing consensus.

Nodes accept incoming transactions and validate them. Miners don't. Nodes replicate transactions to other nodes. Miners don't. Miners take transactions from nodes, and order them in a block, and perform a hashing function on them (the only thing they do). Miners pass the new block to the node. The node validates the transactions in the block. Miners don't. The node validates the block. Miners don't. The node replicates the block to other nodes. Miners don't.

There is only one function that miners do. They take transactions, put them in a block, and hash them. As soon as a miner produces a block that any node determines does not obey consensus rules, it is rejected. It doesn't even matter if another node has already accepted, because consensus is aligned with all nodes. Any node that replicates non-consensus blocks or transactions is itself rejected.

So nodes accept the transactions, validate the transactions, replicate the transactions, maintain the mempools, validate the blocks, replicate the blocks, serve the blockchain, and store the blockchain. Nodes even define the PoW algorithm that miners have to employ.

Nodes maintain the protocol, not miners. It is thus. It has always been thus.

See for yourself. Download it.

https://bitcoin.org/en/download

It's currently at 0.14.2

https://bitcoin.org/en/full-node

> A full node is a program that fully validates transactions and blocks. Almost all full nodes also help the network by accepting transactions and blocks from other full nodes, validating those transactions and blocks, and then relaying them to further full nodes.

You should probably question how such a fundamental misunderstanding of how bitcoin works comes about. Is there a source for your opinion?