Sunday, November 10, 2019

[uncensored-r/Bitcoin] Why use your own full node? Answered by Pieter Wuille

The following post by TheGreatMuffin is being replicated because some comments within the post(but not the post itself) have been silently removed.

The original post can be found(in censored form) at this link:

np.reddit.com/r/ Bitcoin/comments/duaq1o

The original post's content was as follows:


One of Bitcoin's strengths - the most important in my opinion even - is the low degree of trust you need in others.

If you use a full node for your incoming transactions, you know that there was no cheating anytime in the history of your coins:

  • Nobody ever created money out of nothing (except for mimers, and only according to a well-defined schedule).

  • Nobody ever spent coins without holder their private key.

  • Nobody spent the same coins twice (but see further).

  • Nobody violated any of the other tricky rules that are needed to keep the system in check (difficulty, proof of work, DoS protection, ...).

... with one exception: because there is a need to pick a winner in presence of multiple competing valid versions of the ledger, (a majority of) miners have the authority to pick the version of the block chain that wins. This means their power is limited to choosing the order in which otherwise valid transactions occur, up to and including the right to delay them indefinitely. But they cannot make invalid transaction look valid to a full node.

If you are not running a full node, the amount of trust you're placing in others increases.

SPV nodes (such as some mobile clients, and Multibit) place a blind trust in the majority of miners, without checking validity of the blockchain they produce. It still requires a majority of miners to mislead an SPV node, but they can make it believe anything (including "You received 10000000 BTC!"). The reason why this does not happen is because full nodes would not accept such blocks, and assuming a large portion of the ecosystem does rely on full nodes, miners who do this would not see their blocks accepted by the larger economy, resulting in them wasting money.

Centralized services (most webwallets) make the user trust whatever the site says. They can claim anything.

So I hope you now see the importance of full nodes in this model. If you run a full node somewhere on the network, and nobody looks at the transactions it validates, it is indeed contributing to the network, but it is not helping with the reduction of trust.

Look at it another way: if only a few large players in the Bitcoin ecosystem were running full nodes, it only requires a malicious intent, or an attack/threat against them, to change the system's rules, as nobody else is validating.

Doing transactions in the Bitcoin ecosystem helps the Bitcoin currency. Running a full node helps the network. Using a full node helps you and the ecosystem reduce the need for trust.

https://www.reddit.com/r/BitcoinBeginners/comments/3eq3y7/full_node_question/ctk4lnd/


Adding to that answer myself:

Running (and using) your own full node gives you the benefit of increased privacy, because you don't leak information about your UTXOs to the default node of your wallet, which can link your UTXOs together, perhaps even link them to your real world identity.

There are different ways how to set up a node (from simply installing the Bitcoin Core software on your computer to getting a plug'n'play solution such as Casa or Nodl), but to connect a (hardware) wallet to it is a little more tricky for now.

One of the projects I frequently recommend myself is https://stadicus.github.io/RaspiBolt/. It's somewhat cheap (~$150 for hardware, as compared to other plug'n'play nodes which are around $300) but can run 24/7 and includes guides how to set up Tor on the device, and how to use your hardware wallet with the node.



No comments:

Post a Comment