I’ve received many questions about full nodes. What is a full node, what it does, and what’s so important about it? So here’s a thread for anyone wondering why they should run their own #Bitcoin full node? 🧵👇
1/ Let's start with what is a full node? In simple terms, it's not very different from a database, mapping bitcoins to their owners. Every #Bitcoin transaction updates the current state of the database, deleting the old owners and assigning the new ones.
2/ To stay up to date with the latest changes, the node communicates in a "peer to peer network" with other nodes and asks them for new transactions and blocks.
3/ When a new block arrives, the node will validate that it complies with a certain set of rules (the "consensus rules") and if this validation process pass, the node will update its database with the changes in ownership caused by the new transactions in the block.
4/ These "consensus rules" can be of a wide range, from the limit of the size of the block, to the check that no transaction (excluding the initial subsidy awarded to miners) can spend bitcoin which do not come from a current owner in the database.
5/ This database of the current state is called the "UTXO set". Every node in the network must maintain a full copy of this set to be able to verify new blocks and transactions, since without this, it won’t know who are the current owners of each bitcoin.
6/ The blocks themselves, however, can be discarded after used for updating the UTXO set (in rare cases they might be needed, but we will ignore this here for simplicity), this is what differentiates archival nodes - which keep old blocks, from pruned nodes - which discard them.
7/ Now that we have some idea what a full node is - a copy of the current "list of owners" of all bitcoins - we can continue to the bigger question, why should I run a full node?
8/ In some cases, when a node is maintained and configured for that purpose, running a node might help maintain the network's connectivity and reliability. Yet this is NOT why people should run a node, since for this task, even a small portion of the network users would suffice.
9/ Another common fallacy is that just running your node helps securing the network, because it is validating all transactions. However, this validation has no direct effect on the rest of the network. You could run a million nodes, yet it’ll do nothing to improve security.
10/ The only reason you should run your own #Bitcoin full node is to use it to verify your own transactions, the transactions you receive. Your node is verifying all transactions, and the entire transactions history, only since it’s necessary for validating your own transactions.
11/ But why is verifying your own transactions so important? Because without that, you cannot know if what you received are "real" bitcoin. That is, bitcoin that others will accept from you as valid when you spend them.
12/ When you receive a new transaction, what you should ask yourself is: "when I decide to spend the #bitcoin I received, would other people accept my transaction as valid? or would they reject it, leaving me with coins no one wishes to accept?"
13/ If you cannot know that, you cannot tell whatever other people will later accept this transaction, or reject it for not complying with the rules of the network. Let's consider how it could play in practice:
14/ Suppose you are using a #Bitcoin wallet app, and that app gets information about your transactions from the company's servers. The question is, how can you know if the company did not provide you with transactions other #Bitcoin users will consider invalid.
15/ One could say it is possible to verify by comparing information across multiple sources, like verifying your transactions on multiple block explorers. This, however, leads us to 2 possible scenarios.
16/ Either those other sources are not used by many other people, in which case the assurance you can get is quite small.
Or these sources are indeed so popular that a significant majority of other users is also trusting them to verify their transactions.
17/ But while this "solves" your individual problem for validating a transaction will be accepted by others, it introduces a much bigger risk to all #Bitcoin users.
18/ In such a case, where a few popular services serve as the "source of truth" for validating transactions for most of the #Bitcoin network, it becomes possible for those services to plan and execute a change in the consensus rules without most users even knowing it.
19/ For example, they can decide that from now on, every block must include a 10 #Bitcoin "fee", created out of thin air, to an address they control.
20/ Miners would have to comply, or those "big nodes" will reject their blocks, making them spend money on producing blocks most users will not accept, and so making their block reward worthless. (or the nodes could even eliminate the role of miners altogether)
21/ And the small minority who do run their own nodes will have to face the choice between accepting the new rules the big nodes have dictated, or continue with the old rules which will reject those new rules blocks, but will leave them using a network most people no longer use.
22/ So what we end up with is a system where the rules of the network can be dictated by a handful of businesses, who now yield a nearly unlimited power over the consensus rules of #Bitcoin - since the majority on economic activity on the network is blindly following them.
23/ Going back to the main question, when you don't run your own node, you either risk getting stuck with “fake” coins no one will accept, or you end up in a centralized system no different from the banking system of today.
24/ Verifying your own transactions, which requires using your own node, is the only way you can influence the rules of the #Bitcoin network.
25/ By refusing to accept a transaction which do not comply with your rules, you can discourage others who may want to do business with you from accepting such transactions themselves. When a large part of the network does the same, this influence becomes stronger.
26/ #Bitcoin is not a democracy. Even with the whole world is telling you to comply with their chosen rules they cannot force you to. But on the other hand, you cannot force anyone else to agree to your rules.
27/ #Bitcoin is a collection of individual choices and preferences. Would I rather use a certain set of rules and be able to transact only with those other people who chose the same? Or would I rather switch to another set and be able to transact with those who chose that one?
28/ This absolute freedom in reaching consensus may sound unstable and chaotic, as "everyone can do as they pleases", but by also making it impossible to coerce others, it has actually proven to be the most stable and carefully balanced mechanism ever used.
29/ While anyone *could* decide they will only accept blocks which reward them a fee, for example, nobody would do so, since they know well that if they do, they'll find themselves alone stuck with their “fee coins" nobody is will accept, rendering them worthless.
30/ Running your own node then is important first of all because of the personal interest of ensuring the #Bitcoin you receive are "real", and will be accepted by others.
31/ But secondly, it is also your way to protect the value of the network, not because you verify everyone's transactions, but because you verify your own, increasing the economic network effect your rules have.
32/ To summarise, running your node is important to protect yourself - and helping others use their own nodes is important to protect the value of the network as a whole.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Ben Kaufman

Ben Kaufman Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @_benkaufman

14 Apr
1/ When using #Bitcoin, there are generally 3 components involved:

- Private keys

- Signing device

- Wallet software

The differences between these can be confusing, but knowing them is important in order to understand the best practices in self-custody (🧵thread).
2/ Your private keys, often represented as a list of 24 words, are the secret information you need to prove that you know in order to sign transactions.

Anyone holding your private keys can spend your coins, which is why you must handle them as securely as possible.
3/ The private keys are used to derive #Bitcoin addresses, which the user can receive funds to.

Then, they're used again to produce a digital signatures for these derived addresses, when the user wants to spend the coins received.
Read 17 tweets
8 Jan
I've received many questions lately, but by far the most common question is “What's the best way to secure #Bittcoin?”

🧵So here’s a thread with my opinion on securing #Bitcoin
The first thing to understand is that there’s no "best way", but always a tradeoff.

You can always find ways to make it harder for someone to get your #Bitcoin, but if you over-complicate it, you could end up making it even too hard for yourself - many lost their funds this way.
Your goal should be to balance usability and security the way which works best for you.

This means very different things for different people, depending on your technical experience, understanding of Bitcoin, how much you are holding, etc.
Read 18 tweets
7 Jan
Secure your #Bitcoin like it’s worth 10x more than today.
Need help? Reach out! DMs open
Oh wow you guys are really reaching out 😅

Trying to keep up with all the messages, but will get to them all!
Read 4 tweets
7 Jan
“Early in life I have noticed that no event is ever correctly reported in a newspaper, but in Spain, for the first time, I saw newspaper reports which did not bear any relation to the facts, not even the relationship which is implied in an ordinary lie. I saw great
battles reported where there had been no fighting, and complete silence where hundreds of men had been killed. I saw troops who had fought bravely denounced as cowards and traitors, and others who had never seen a shot fired hailed as heroes of imaginary victories; and
I saw newspapers in London retailing these lies and eager intellectuals building emotional superstructures over events that never happened. I saw, in fact, history being written not in terms of what happened but of what ought to have happened according to various party lines.”
Read 4 tweets
6 Jan
👻Specter v1.0.0 is out!!!

Highlights (1/3)

- Massive refactoring of the history and UTXO tabs!
- Export transactions, UTXO, and addresses to CSV
- Address labeling from anywhere
- New Tor configurations page
- New testing framework
github.com/cryptoadvance/…
Highlights (2/3)

- Search, sort, and more in the transactions and UTXO tables
- Export historical prices of transactions to CSV
- Support all Tor features by having the Tor Browser open
- Tor-only option for any external requests
- Add UTXO tab to wallets overview
Highlights (3/3)

- Option to automatically generate a self-signed SSL certificate
- Fix Electrum export for signing with Coldcard
- Lots more bug fixes and improvements
Read 5 tweets
31 Dec 20
I've received many questions from people considering to set up a #Bitcoin multisig wallet but confused about the backup process, what should be backed up, and why.

🧵So here's a thread on backing up multisig wallets - what, why, and how.
The main caveat in a multisig wallet is that, while you need only a threshold of devices (ie. 2 of 3, 3 of 5, etc.) to sign a transaction, losing access to even a single device could potentially prevent you from being able to spend the funds - if you don't back up properly!
The reason is that (usually) in order to make a Bitcoin transaction, it is not enough to be able to sign it, but you also need to provide the "terms for spending", that is, the Script (code) that is used to lock the coins.
Read 20 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(