You’ve heard Bitcoin is a decentralized p2p system for transferring value anywhere on earth. That sounds awesome but you might be wondering:

How changes are made?
What is the process?
Who decides?

I’ve been working on Bitcoin for almost a decade, I'll break it down for you 👇
Bitcoin is free and open source software meaning that anyone can view. download, review, and run the source code.

Just like any open source project it also means anyone is welcome to propose changes as long as they follow the guidelines that the project's community defines.
Because of the scale and impact of Bitcoin, these guidelines are more formalized than most other projects you might have been involved with.

Bitcoin defines something called a Bitcoin Improvement Proposal (BIP)

The first of which is used to define the proposal process itself.
These BIPs are technical design documents for the community to review.

They must provide all of the information necessary to describe new features for Bitcoin or for standardizing processes relevant to the ecosystem.

They also act as a place to aggregate community discussion.
Okay, so you have an awesome new feature or standard you want to propose for the Bitcoin community…now what?

Well the first step is to review the BIPs to make sure it’s not something that has already been proposed and has been rejected (or is still pending acceptance).
After you’ve decided your idea is novel and worth a proposal you should first float the idea on the Bitcoin development mailing list.

This list is used by developers and other contributors to discuss all aspects of protocol development.

You’ll get great feedback on your idea.
If after discussing the idea on the mailing list it is largely agreed that the idea is worth pursuing then it’s time to write the first draft of the BIP.

Make sure to structure it according to the format described in BIP-2 and then share it on the mailing list to surface issues.
After the draft BIP has been discussed on the mailing list and has been fleshed out to address any major concerns it is time to submit a request to the repository where all the BIPs live.

Editors will review your draft and if approved will be assigned an official BIP number.
Congrats! You have created an official proposal to update Bitcoin. Now the hard part begins :)
The next phase involves getting support and consensus from the broader Bitcoin community and ecosystem that your proposal makes sense, creates value for many, and has no detrimental impacts to the core values of Bitcoin.

This is both hard to do and hard to measure directly.
There is not a singular Bitcoin community or ecosystem.

Bitcoin is distributed and discussed all over the world and the internet.

Popular communities would be the mailing list, IRC, Twitter, Reddit, etc.

Also should seek support from businesses that operate in the ecosystem.
It is extremely helpful in this phase to have a working implementation on a fork of the project so that regular review and discussion sessions can take place for those interested.

Even better would be examples or demos to showcase the value your proposal will generate.
Ok so you’ve done all the work and have broad support and consensus that your change is a good idea.

The next step is getting your changes merged into the Bitcoin repository.

This involves diligent review from people capable of performing code reviews.
Once all the kinks have been ironed out and people are satisfied with the code it will eventually get merged into the repository.

You’re almost there! If your change requires a soft fork then there needs to be discussion about how to activate it. That’s a thread for another day
If there’s no soft fork required or if the activation method is worked out then your feature will roll out with the next major release of the Bitcoin core software.

It’s activation might depend on a majority of the network upgrading to the new version.
I hope this helped you better understand how changes are introduced and eventually made to Bitcoin.

It’s an extremely important topic and not well understood.

There’s also still a lot of development and improvement to be made throughout all aspects of this process.
Please be sure to follow if you want to learn more about Bitcoin every day.

Be sure to share this with anyone you think might find it interesting.

This was a long one today so thank you for reading!

• • •

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

Jan 22
Did you know that both 12 and 24 word mnemonic phrases offer the same level of security in terms of protecting your private keys?

It’s hard to believe, I know. Let me break down why 👇
It depends how you define ‘level of security’.

I am referring to the amount of time or resources required by an attacker to get your keys.

If protocol A takes an attacker 4hrs to get your keys and protocol B takes 24hrs to access your keys then protocol B is more secure.
In Bitcoin the security is largely defined by the cryptography used.

In Bitcoin’s case we use elliptic curve cryptography to define keys and calculate signatures.

There are known algorithms that can compute a private key from a public key in roughly 2^128 operations.
Read 10 tweets
Jan 19
If you self custody your Bitcoin then you almost certainly have come across a mnemonic phrase of 12 or 24 words.

What is a mnemonic?
Why do I have one?
How does it work?

I’ve been working on Bitcoin for almost a decade, let me break it down for you 👇
A mnemonic is a tool that makes it easier to remember something.

You’ve probably used them in school to help you learn the planets (My Very Easy Method Just Speeds Up Naming Planets) or for biological classification (King Philip Came Over For Good Spaghetti).
So how are mnemonics used in Bitcoin?

They help you remember your private keys by making it easy to write down or even memorize your seed.

Why would it be hard to write down or memorize without a mnemonic?

Without it you’d have to memorize a string of 132 one’s and zero’s
Read 13 tweets
Jan 18
Did you know that it is possible to swap your on-chain Bitcoin with someone else’s lightning funds or the other way around without any trust or risk?

How does that work?
Why might you do it?

I’ve been working with lightning for years, let me break it down for you 👇
These swaps are called submarine swaps and use similar concepts to those used with regular lightning payments.

If you need a quick refresher on how HTLCs work, what hash locks are, and what time locks are then see my earlier thread here:
With swaps, let's call the person sending on-chain funds and receiving lightning funds the sender and the person receiving the on-chain funds but sending lightning funds the recipient.

So when I use the term sender and receiver I’m referring to movement of the on-chain funds.
Read 10 tweets
Jan 17
A lot of people think that Bitcoin is “too expensive” for them to get involved. That it’s a tool for the already wealthy. This is not true. You might be wondering:

Do I need to buy a whole coin?
How should I value Bitcoin?

Let me explain a bit about how I think about it 👇
First and foremost, no, you do not need to buy a whole coin.

A Bitcoin is divisible into 100M units called Satoshis (yes, after Satoshi Nakamoto, the pseudonymous creator of Bitcoin).

You can buy ANY amount you’re comfortable with. As little as $0.25 on the @ln_strike app!
There are a million ways people try to value Bitcoin and all of them will give you different results.

I try to stay away from short term price predictions and look at it as more than an investment.

Bitcoin provides a new form of digital money that is native to the internet.
Read 8 tweets
Jan 16
If you’ve done any research on the lightning network you’ve probably heard about Hash Time Locked Contracts (HTLCs):

What exactly are they?
Why do we need them?
How do they enable trustless payments?

I’ve been working with lightning for years, let me break it down for you 👇
Hash Time Locked Contracts are a way of doing conditional payments using smart contracts on Bitcoin.

As the name implies they use both a hashlock and a timelock to enable this functionality.

So what exactly are hashlocks and timelocks?
A hash refers to the output of a hash function like SHA256.

The important property to understand is that the hash provides no info about the input used to generate it.

A hashlock is a payment that is conditional on the recipient knowing the input that generates the hash
Read 12 tweets
Jan 15
Bitcoin is designed to emit a total of 21,000,000 coins with the last bits of coin to be mined in the year 2140.

What exactly is the supply schedule?
What happens after 2140?

The supply schedule is one of the most important aspects of Bitcoin, let me break it down for you 👇
Every block that is mined is allowed to produce a certain amount of bitcoin.

This amount is called the block reward and it started at 50 bitcoin per block.

Every 210,000 blocks (roughly every 4 years) this reward halves. From 50 to 25 to 12.5 to 6.25 and so on.
This is what is referred to as the supply schedule.

The exact parameters aren’t important, it’s the fact that it is known ahead of time and cannot change that makes Bitcoin so revolutionary.

Everyone can know exactly how much BTC will exist at any point in the future.
Read 9 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!

:(