Hacker News new | ask | show | jobs
by decentralised 2829 days ago
The attacks that blockchain can protect against are:

- Fraud

- DDoS

- Censorship

The usefulness of a consensus protocol is that no one party can be trusted to have the most up-to-date AND valid blockchain. Every node has the incentive to cheat and the consensus rules define a method of evaluating the proposed chain of blocks and determine it's "trustworthiness". In PoW this is often an algorithm like Greedy Heaviest Observed Sub-Tree (GHOST) which favours the fork with the highest accumulated work.

This is why it's important that mining is an expensive activity, to discourage attackers from wasting thousands of euros in electricity and then losing the block reward payment.

1 comments

>The usefulness of a consensus protocol is that no one party can be trusted to have the most up-to-date AND valid blockchain.

Consensus protocols do not require mining. You can simply poll X random nodes and compare what they tell you. I don't understand what mining adds to the equation. Okay, instead of "I need to control 50% of all nodes" it becomes "I need to control 50% of all mining capacity". Is that the point of mining? To make inserting hordes of cheap lying nodes impossible?

I didn't say that consensus protocols needed mining, only PoW which is a consensus protocol uses it.

You can poll multiple nodes and each one will give you a different answer because of message propagation times.

Mining fulfils two roles:

- identity management: To identify who is a trustworthy block producer in an anonymous and trustless network, mining introduces a cost to the block generation process and we use a game theory assumption that it serves as a barrier for attackers. This doesn't mean there aren't validation checks performed by other nodes in the network and the consensus forming rules themselves of course.

- consensus formation: In a distributed network, nodes are bound to disagree on which is the canonical chain out of two or more competing forks. The most common algorithm calculates the accumulated computational effort of each chain of blocks and picks the "heaviest" one, ie the one with the most work done on it. This has the nice side effect of ensuring economic finality for the transactions in those blocks.

>Is that the point of mining? To make inserting hordes of cheap lying nodes impossible?

That's called a Sybil attack, and yes that's one of the reasons.

Mining also makes creating blocks have a real world energy cost. So rewriting history quickly becomes almost impossible as blocks are added. An attacker would have to have more than 50% of all mining power for a sustained period of time.

I suggest reading the Bitcoin whitepaper, it's short and sweet.

https://bitcoin.org/bitcoin.pdf