Juraj Bednar Profile picture
13 Nov, 19 tweets, 4 min read
How easy it is to "fork-off" from censors in #bitcoin? People commenting on my previous thread seem to think it's easy. Not so fast.

threadreaderapp.com/thread/1327206…
Let's start by explaining various types of consensus rules changes. You can make them more strict (also called a soft fork). A soft fork can be introduced by majority of hashpower, nodes have absolutely no say in a soft fork.
A successful continuous transaction censorship is a form of soft fork. A miner would never mine a block with a blacklisted transaction. If you run a verifying (full) node, you just see blocks that confirm to consensus rules and you don't know that someone is censoring.
To repeat how nodes know they are on the best chain: They verify all the consensus rules (transactions are signed, block size is below limit, mining difficulty met, ...) and then they verify they are on the longest chain (there is no longer chain that also validates).
Another type of fork is a hard fork - relaxing rules. For example increasing block size is a hard fork. In order for nodes to follow a hard fork, you need to upgrade all the nodes, because they need to validate the blocks that were not valid under the last rule.
Censorship is a soft fork. It can be introduced by miners. They are valid blocks that just do not contain transactions that miners consider tainted. A node does not know or choose that they want to be on the censored chain.
If you want to punish miners for censoring, it is harder to do, because it requires consensus - and that's what mining is for. If you have previous consensus on what is censorship, you can refuse censoring transaction. But how do you make sure?
One approach would be to fork based on orphaned blocks. If a valid block contains a censored transaction and the best chain goes around it, orphaning it, you punish the miner. But how? Miners don't need to identify their blocks. Each block can be unique.
Also, you would need consensus on which block was first. We have a way to do it - it's called mining. You cannot tell what happened before anything else if it is not in Bitcoin timechain. So how do you know if the block was orphaned because of censorship or it was just late?
You also need to agree on what is censorship. Two ways: Either you agree on blacklist - how? Do you include a government signed blacklist in the block to decide what was censorship at the block time?
Another way would be to prefer block with higher fees. Not mining a transaction with a high fee in the block could be censorship. But how do you know if the miner saw the transaction? We have a consensus on what are known valid transactions - it's called mining.
So really you have to agree on what is censorship before you can punish it (and fork off of it). If you can agree on it beforehand (know which block, which tx, which blacklist), you already reached consensus and don't need mining. Please write a paper, that would be huge!
Then you need to identify censors. But they can change their identity every time, while still proving to the government/censorship body that they are censoring. They submit their partial proof of work to the government API, why making their blocks random - new address every time.
Please note, that all nodes need to reach this this conclusion at the same (block)time. Also note, that if this happens, nothing is won. You did not fork off, the censors can (and will) come to your fork and do it again. Do you fork twice a day?
The fundamental problem with punishing censors is reaching consensus about who the censor is, in a decentralized and fair way and punishing the censor long term (assuming they can be and stay identified).
In conclusion: Soft fork is a bitch. It can be enforced by miners and the nodes can do very little about it. They can "fork off", but the soft fork enforcing miners can come back.

Your full node does not help in this in any way.
Side note: When you have two blocks at the same height, it is rational to continue from the one that has lower block reward. Why?

1. you want your competitors to have as little money as possible, otherwise they could buy more hashrate and lower your profit.
2. because the lower block reward, it means that the transactions with higher fees were not included and you can increase your profit by including them.

Thus in a two block same height situation, it is profitable to follow the censor's chain, especially if you are not a censor.

• • •

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

Keep Current with Juraj Bednar

Juraj Bednar 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 @jurbed

13 Nov
A small thread about Bitcoin censorship and why it probably does not need >50% hashrate.

Imagine you are a honest miner that likes Bitcoin. You create your own blocks, with transactions you choose (Stratum v2 for example).
You _know_ for sure that 10% of hashrate is censoring transactions according to publicly available blacklist of UTXOs. And they also orphan blocks that include censored transactions.
There is a new block ahead, with a blacklisted UTXO with high enough fee that you would include it in a block. The fee is 5 USD (~30k sats) higher than the next transaction that does not make it into the block. You would love to be a good Bitcoiner and include the tx. However...
Read 11 tweets
16 Sep
So you want to be free(er). There are a few stages of what people do when they realize this. It starts by being this in forefront of your consciousness. First stage is despair - I live in a non-free world. This law and that law limits my freedom. And often not only laws.
Then you start looking for ways out. Second stage is usually looking for loopholes. Yes, I have to pay custom duty if I import coffee, but if I roast it inside, the duty is lower. If I move my business somewhere else, the taxes are lower and so on.
Then you realize that these loopholes take a lot of time and they are constantly changing. Navigating them becomes as difficult as sailing from Europe to North America in a stormy night without stars. You are blind to the future.
Read 15 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!