The Fundamental Trade-Off Between Scalability and Decentralization And Why I’m Focused On Bitcoin

A core principle in Bitcoin is that every participant keeps a copy of the ledger and is able to verify every change made to that ledger. Without this we must trust someone else.
Decentralization is not a binary value but more of a sliding scale. It’s closely related to the number of participants in a system that can keep a copy of the ledger and are able to verify it. More participants, more decentralization. Less participants, less decentralization.
Like decentralization, scalability is also not a binary value. In monetary systems like Bitcoin, most people refer to scalability in terms of the number of transactions it can handle per time period. The more transactions it can process per second, the more scalable the system
So why the trade-off? Why does making a system more scalable often result in centralization? Why does making it less scalable make something more decentralized? It’s not *exactly* so cut and dry because there are different ways to achieve scaling.
We need to revisit the first tweet to really understand the problem. If every participant needs to keep a copy of the ledger and verify all changes made to the ledger then it means there is some baseline amount of storage, cpu, and bandwidth required to be a participant.
Storage is needed to keep a copy of the ever-growing ledger. Bandwidth is needed to receive all the ledger updates. Cpu is needed to verify the updates are valid. Therefore, the larger the ledger and the more updates made to it mean more resources are required to participate.
The more resources required to participate in a system translates to it being more expensive to participate. As the cost increases it excludes more and more people from being able to participate and reap the benefits of the system.
One way to scale is to simply increase the number of transactions that are allowed to be mined in each block. While this does increase overall throughput it also increases the amount of storage, bandwidth, and cpu required and thus the cost to participate in the network.
This is the fundamental trade-off between scalability and centralization. If your scaling solution requires more resources and thus more cost to its participants then fewer people will be able to participate. Fewer people participating means the system becomes more centralized
Bitcoin seeks scaling solutions that do not result in more resources being required to participate. This includes things like ledger update optimizations or minimizing the amount of duplicative tx information broadcast as part of block propagation.
This also includes solutions that move functionality to another layer. This is where the Lightning Network comes into play and why I am so excited about it. It removes the need for every update to be broadcast to and stored by every participant.
There are arguments to be made about how much decentralization is needed to maintain censorship resistance and that is another topic for another day. Bitcoin errors on the side of caution because we might only get one chance to get this right and we don’t want to screw it up.

• • •

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

Keep Current with John Cantrell

John Cantrell 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 @JohnCantrell97

7 Jan
If you’ve spent any time researching Bitcoin then you’ve probably heard about the Lightning Network but…

Why does it exist?
What is it?
How does it help Bitcoin scale?

I’ve been working with it for years, let me help explain it in simple terms 👇
Bitcoin produces blocks every 10 mins and they can hold a limited number of transactions. This limited space creates a fee market where users can bid for their transactions to be included in a block. This means transactions take at least 10 minutes and must pay fees to miners.
The Lightning Network is a p2p network of payment channels

A payment channel is a contract between two people where they commit funds using a single onchain tx. Once the funds are committed they can make an unlimited amount of instant & free payments over the channel.
Read 14 tweets
5 Jan
How Will We Onboard Earth’s 7.753 Billion People To The Lightning Network?

I ran the numbers, let’s see how we can onboard the entire population of Earth onto the Lightning Network, how long it might take, and what we can do to speed the process up 👇
To onboard onto the lightning network it requires sending btc into a 2-of-2 multisig funding transaction with your channel partner. To optimize space in this transaction we want 1 native segwit input and a single channel funding output. This produces a tx of roughly 121vbytes.
If 100% of the transactions in a block were these channel opening txs we could onboard about 8,264 people to lightning per block. With a global population of 7.753 billion people it would take roughly 938,166 blocks or 17.8 YEARS for everyone on Earth to have a channel.
Read 10 tweets
4 Jan
You probably saw the image of the Bitcoin genesis block with Satoshi’s hidden message in it over a thousand times yesterday (happy belated bday!).

If you were at all curious how Satoshi actually sent the hidden message in the genesis block then read more below 👇
The message is actually embedded in the first transaction ever made on the Bitcoin blockchain. It is part of a special transaction called a coinbase transaction (and no, nothing to do with the shitcoin casino company – though that is where their name came from!).
Every block mined *must* contain at least one transaction, the coinbase transaction, and it has the ability to generate up to the current block reward new bitcoins. Because it generates new coins, It’s the only transaction that must not spend another transaction’s output.
Read 5 tweets
3 Jan
Most of my career I worked on web tech using js and ruby. Typed, compiled languages were alien to me but I was intrigued by the reliability, performance, and usability Rust offers. The rust-bitcoin ecosystem finally motivated me to start my Rust journey. Here’s how I did it 👇
📕The Book - doc.rust-lang.org/book

The book is single handedly the best resource for starting out in Rust. I recommend reading through this at least once to get a good overview and then use it as needed as a reference when a specific topic comes up in your programming.
🧙‍♂️Rust Analyzer - rust-analyzer.github.io

The Rust compiler is known for producing errors that are actually helpful. Rust Analyzer is a plugin that brings this info to you in real time as you code. It also automatically surfaces docs, auto-completion, and so much more.
Read 6 tweets
19 Jun 20
I got a lot of great feedback and questions after posting my article about brute forcing yesterday

I wanted to address a question that came up over and over again because I think a lot of people extrapolated what I did to the false conclusion that Bitcoin isn't safe or secure /0
Q: Are my bitcoins stored in a wallet generated from a 12-word mnemonic safe?
A: Yes, just don't give out any of your words on Twitter.

Brute forcing @alistairmilne's wallet was only possible because he publicly exposed eight words from his twelve word mnemonic seed. /1
It would take the same system that brute forced the last 4 words of his mnemonic 837 quintillion millennium to brute force all possible 12 word mnemonics. /2
Read 8 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

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(