hollov (OP)
Newbie
Offline
Activity: 2
Merit: 6
|
Hi there, I'd like to understand BTC's censorship resistance. Why it is not a possibility that the same can happen to BTC what happened on ETH regarding Tornado Cash? ETH validators obeyed the sanctions and the don't include transactions that interact with TC addresses. That's basically address blacklisting... So I guess BTC miners can decide as well to not include certain transactions from the mem pool (fearing punishment for going against the law or sanctions). I admit I first chatted with ChatGPT about this before coming here ![Cheesy](https://bitcointalk.org/Smileys/default/cheesy.gif) It said: in order to ignore certain addresses the miners would need to modify the code and hence it would become incompatible with the current version of the network. Is this true? Can't I make modifications and keep compatibility? Do miners have to run the EXACT same code? I mean is it checked by the hash of the codebase or something? I'm just a tech guy who'd like to learn ![Wink](https://bitcointalk.org/Smileys/default/wink.gif) Cheers
|
|
|
|
BitcoinGirl.Club
Legendary
Offline
Activity: 2884
Merit: 2762
Bitcoingirl 2 is downloading 💓
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 19, 2022, 12:50:26 PM |
|
It said: in order to ignore certain addresses the miners would need to modify the code and hence it would become incompatible with the current version of the network. Is this true? Can't I make modifications and keep compatibility?
Do miners have to run the EXACT same code? I mean is it checked by the hash of the codebase or something?
I am not very knowledgeable in mining and bitcoin core handling but something is telling me that you do not need to wait for other miners to include your transaction for broadcasting. If you are running a full node then you can do it by your own or something. I really hope I did not give a wrong hope to you.
|
|
|
|
pooya87
Legendary
Offline
Activity: 3556
Merit: 10807
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 19, 2022, 02:06:10 PM |
|
It said: in order to ignore certain addresses the miners would need to modify the code and hence it would become incompatible with the current version of the network. Is this true? Can't I make modifications and keep compatibility?
Do miners have to run the EXACT same code? I mean is it checked by the hash of the codebase or something?
This is incomplete/incorrect. There are two things that are being confused here. First is consensus rules that dictate what block, etc. is valid and what isn't and second is the miners' preference to include a certain transaction in their block or not. The consensus rules is something that the miners can't change on their own because if they do that their blocks would become invalid hence rejected by the entire network. That means they can run different "code" but they have to enforce the same exact rules. But for censorship (refusing to include a certain transaction in their block) they do not need to change consensus rules. It is pretty much the same as how they treat different transaction with different fees (they refuse to include a tx with low fee as long as there are more txs with higher fee). The way to fight censorship is very similar to the fee situation too. For example if one miner/mining-pool decides to not include any tx with fee rate below 10 sat/vbyte the rest of the world won't follow. There is no way to prevent miners from censoring transactions but what we can do and have done so far is to have the most decentralized mining system by spreading the miners around the globe. That means if a government in one jurisdiction enforced censorship laws on the miners in their own jurisdiction (eg. US government forcing MARA pool to censor transactions) all the rest of the miners in the rest of the world won't follow that. It is the same with nodes. Individuals around the world are each running their own nodes and are under different jurisdictions so there is no way to force any kind of laws on all of them regarding which transaction they relay and which they don't.
|
|
|
|
jackg
Copper Member
Legendary
Offline
Activity: 2856
Merit: 3071
https://bit.ly/387FXHi lightning theory
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 19, 2022, 03:04:19 PM |
|
I'd guess the possibility chatgpts bot was getting onto was an idea that miners would "hate" and try to orphan blocks that were mined with transactions they wanted to censor - this would be possible at 50% hashing power and would be stabler (/more effective) the higher it got.
Realistically, you're not doing that without killing the network off in some way (as you've proved it's pretty insecure). It'd take a huge budget to pull off something on that scale though.
It's more likely certain miners would just choose to not include transactions they don't like and leave the rest to be mined by someone else as mentioned above.
|
|
|
|
bitmover
Legendary
Offline
Activity: 2408
Merit: 6188
Crypto Swap Exchange🈺
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 19, 2022, 03:19:02 PM |
|
Hi there,
I'd like to understand BTC's censorship resistance. Why it is not a possibility that the same can happen to BTC what happened on ETH regarding Tornado Cash? ETH validators obeyed the sanctions and the don't include transactions that interact with TC addresses. That's basically address blacklisting...
The way to fight censorship is very similar to the fee situation too. For example if one miner/mining-pool decides to not include any tx with fee rate below 10 sat/vbyte the rest of the world won't follow. There is no way to prevent miners from censoring transactions but what we can do and have done so far is to have the most decentralized mining system by spreading the miners around the globe. That means if a government in one jurisdiction enforced censorship laws on the miners in their own jurisdiction (eg. US government forcing MARA pool to censor transactions) all the rest of the miners in the rest of the world won't follow that.
It is the same with nodes. Individuals around the world are each running their own nodes and are under different jurisdictions so there is no way to force any kind of laws on all of them regarding which transaction they relay and which they don't.
Additionally to what pooya87 said, I believe miners are also more censorship resistant than eth validators because they are not so easily identified. Eth validators are individuals and companies (such as exchanges) holding millions of usd worth in ETH. While bitcoin miners are much more decentralized and grouped in pools, they are also not so easily identified. So it is not so easy to enforce regulations to them
|
|
|
|
hollov (OP)
Newbie
Offline
Activity: 2
Merit: 6
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 19, 2022, 04:25:39 PM |
|
Thanks guys, Yeah, that was exactly my way of thinking too: A miner in a sanctioned jurisdiction can validate all the blocks (even ones with blacklisted addresses) but it wont include transactions with blacklisted addresses when producing new blocks. So yeah, basically the protocol itself doesn't protect from blacklisting, right? I get your point bitmover that because of stronger privacy the BTC network can be more resilient to censorship. But still it means that miners need to be brave / freedom fighters and undertake the risk of being illegal under their own jurisdiction. There is no way to prevent miners from censoring transactions but what we can do and have done so far is to have the most decentralized mining system by spreading the miners around the globe. That means if a government in one jurisdiction enforced censorship laws on the miners in their own jurisdiction (eg. US government forcing MARA pool to censor transactions) all the rest of the miners in the rest of the world won't follow that.
It is the same with nodes. Individuals around the world are each running their own nodes and are under different jurisdictions so there is no way to force any kind of laws on all of them regarding which transaction they relay and which they don't. OK. So let's assume that regulators want to blacklist certain addresses and a lot of BTC believers and freedom fighters join the BTC network in response... What I don't get: does that even matter if I spin up a node as an individual? In POW the strongest get to mine, right? So following this, the lot of freedom fighter, average Joes never get to mine a single block, so they won't be able to include the blacklisted txs. What do I miss here? And yeah, even an 51+% attack can occur what jackg mentioned. In the Tornado Cash situation US created the sanction, but they also threatened other countries that they'll get punished if they don't comply. So let's say if a law is enforced on multiple countries by a powerful enough country then theoretically even a 51% attack scenario is not out of the question. But ofc it can be counterattacked by spinning up more and more nodes across the world; and so I ask the same question as above: how small fish can help this situation in POW?
|
|
|
|
bitmover
Legendary
Offline
Activity: 2408
Merit: 6188
Crypto Swap Exchange🈺
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 19, 2022, 04:50:10 PM Last edit: December 19, 2022, 05:56:23 PM by bitmover |
|
So let's say if a law is enforced on multiple countries by a powerful enough country then theoretically even a 51% attack scenario is not out of the question. But ofc it can be counterattacked by spinning up more and more nodes across the world; and so I ask the same question as above: how small fish can help this situation in POW?
Small miners can join pools which are not censoring transactions. This is a hashrate battle. In the end, if there are still pools/miners not censoring transactions and mining blocks, those transactions will go thorough .
|
|
|
|
NotATether
Legendary
Offline
Activity: 1708
Merit: 7188
In memory of o_e_l_e_o
|
So I guess BTC miners can decide as well to not include certain transactions from the mem pool (fearing punishment for going against the law or sanctions).
Any mining pool that attempts to do something like that will go out of business quickly because outraged miners will no longer point their miners at their pool. Just ask Marathon how that experiment went for them I admit I first chatted with ChatGPT about this before coming here ![Cheesy](https://bitcointalk.org/Smileys/default/cheesy.gif) It said: in order to ignore certain addresses the miners would need to modify the code and hence it would become incompatible with the current version of the network. Is this true? Can't I make modifications and keep compatibility? Talking to ChatGPT is like talking to Wikipedia with performance-enhancing drugs. I would not trust its output as technically detailed most of the time (if it is even correct it is an AI after all).
|
|
|
|
BlackHatCoiner
Legendary
Offline
Activity: 1624
Merit: 7972
Bitcoin is a royal fork
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 19, 2022, 06:15:34 PM |
|
So yeah, basically the protocol itself doesn't protect from blacklisting, right? The protocol does protect from blacklisting as long as there's incentive. Bitcoin mining is sufficiently more resistant to such regulatory attacks than staking, because staking doesn't embrace free market competition. In popular Proof-of-Stake based cryptocurrencies such as Ethereum, most validators are known. It doesn't matter that some are anonymous, because most staked coins come from identified entities. To put it this way: a Bitcoin transaction, even if 90% of Bitcoin miners consider it "malicious" and deny to include it to their candidate block, will at some point in the future be confirmed by that 10% left, because they upload blocks as well. The fact that the majority wants to blacklist doesn't mean that the blacklisting will pass. On the other hand, if 90% of the stakers (or holders that own the 90% of staked coins) vote for blacklisting, there's no way for the transaction to pass forward.
|
|
|
|
o_e_l_e_o
In memoriam
Legendary
Offline
Activity: 2268
Merit: 18697
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 19, 2022, 08:02:53 PM |
|
What I don't get: does that even matter if I spin up a node as an individual? In POW the strongest get to mine, right? I think you are a little confused about nodes and miners. Running a node does not make you miner. Running a node helps to keep the network running, helps to keep it decentralized, and provides you with security and privacy by allowing you independently verify the blockchain without having rely on third parties. But nodes do not mine blocks. It is not the strongest who get to mine, but rather, anyone who chooses to mine by purchasing some mining hardware and turning it on. So following this, the lot of freedom fighter, average Joes never get to mine a single block, so they won't be able to include the blacklisted txs. True, but similarly there are plenty of average Joes who do mine. They can choose to lend their hashrate to any pool operator, so can choose ones which do not censor transactions and move to a new one if their current one starts to enforce such censorship. Or they can even choose to mine solo. And yeah, even an 51+% attack can occur what jackg mentioned. In the case of a sustained 51% attack against bitcoin, the censorship of a handful of UTXOs would be the least of our concerns. So let's say if a law is enforced on multiple countries by a powerful enough country then theoretically even a 51% attack scenario is not out of the question. But ofc it can be counterattacked by spinning up more and more nodes across the world The number of nodes is pretty much irrelevant to the difficulty or otherwise of a 51% attack. It is the amount of hashrate that matters. and so I ask the same question as above: how small fish can help this situation in POW? Run a node, run some mining equipment.
|
|
|
|
hosseinimr93
Legendary
Offline
Activity: 2506
Merit: 5572
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 19, 2022, 08:25:43 PM |
|
To put it this way: a Bitcoin transaction, even if 90% of Bitcoin miners consider it "malicious" and deny to include it to their candidate block, will at some point in the future be confirmed by that 10% left, because they upload blocks as well.
If 90% of miners agree with censoring transactions, it's possible that the 90% don't add any block to the chain including blocks mined by the 10% and since their chain will be the longest chain, the 10% will have to join the 90% to have a profitable business. Of course, I don't think this will ever happen.
|
|
|
|
BlackHatCoiner
Legendary
Offline
Activity: 1624
Merit: 7972
Bitcoin is a royal fork
|
If 90% of miners agree with censoring transactions, it's possible that the 90% don't add any block to the chain including blocks mined by the 10%
The reasons why this is not going to happen, are two. - Miners follow profit. If regulators want to censor certain transactions, they ought to pay more for censoring than for the confirmation of the transaction. But fees are abrupt. Regulators can't intervene if they don't know the cost.
- Mining is anonymous. Sure, top pools are known, but if they're leaning towards censorship, they are going to disappear from the top before tomorrow morning, because they're dependent on individuals who are not in favor of censorship (and neither are their users, who're creating mining demand, which is parameter for profit, which as said previously is key to miners' guidance).
|
|
|
|
shahzadafzal
Copper Member
Legendary
Offline
Activity: 1652
Merit: 3006
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 20, 2022, 04:04:00 AM |
|
I admit I first chatted with ChatGPT about this before coming here ![Cheesy](https://bitcointalk.org/Smileys/default/cheesy.gif) It said: in order to ignore certain addresses the miners would need to modify the code and hence it would become incompatible with the current version of the network. I don't understand why the ChatGPT answer is considered wrong (technically)?... Technically speaking that's how you will "blacklist" certain addresses. Of course that's not how bitcoin works but since it's open source and considering this big WHAT IF scenario, if I update the source code to exclude certain addresses and let suppose this source code gets accepted and shipped it's all done. Those addresses will not be included in any future transactions. That's what ChatGPT said, it can be translated to "No it's not possible to ignore certain addresses unless bitcoin core source code is modified." To me it's a correct answer. Do miners have to run the EXACT same code? I mean is it checked by the hash of the codebase or something?
That's a very interesting question. I'm not sure how it works but I think there should be some check that all miners should be running the same version of the source code? For example, the latest version is 24.0.1. What if as a miner I'm still running Bitcoin Core 23.0 I guess I should not have any problem running this. Am I right?
Referring to https://bitcoincore.org/Bitcoin Core 22.1 released was published on December 15, 2022.Bitcoin Core 24.0.1 released was published on December 12, 2022.How? and why 22.1 is released after 24.0.1? which one is latest? Clearly 24.0.1 should be the latest code, but 22.1 was released after the version 24.0.1 that means someone can still be running 22.1. I think that answers the above question.
|
|
|
|
pooya87
Legendary
Offline
Activity: 3556
Merit: 10807
|
That's what ChatGPT said, it can be translated to "No it's not possible to ignore certain addresses unless bitcoin core source code is modified." To me it's a correct answer.
AI is too literal which is why the technical answers it gives are both right and wrong. Technically one way to censor transactions is to modify the "is_spendable" method that is used on outputs before they are added to UTXO database and return false for the censored transaction. But that is not the way that will be practical and not to mention that this is modifying consensus rules which is impossible without reaching consensus. For example, the latest version is 24.0.1. What if as a miner I'm still running Bitcoin Core 23.0 I guess I should not have any problem running this. Am I right?
It depends on the version and what it changed. - Some changes don't affect consensus rules are just improvements like changing the wallet layer, changing UI, optimizing cryptography, fixing small bugs, etc. In these cases you can continue running the older version and don't miss on much specially as a miner
- Some changes are bug fixes that could be important like 0.3.10 back in 2010 which fixed the value overflow bug. In this case it is very risky to continue running the older version because the bug that would be known after fixing could be exploited.
- Some changes could affect consensus rules in a backward incompatible way (aka a hard fork), this is the only case that remaining on an older version becomes impossible.
- Some changes are affecting consensus rules but in a backward compatible way (aka a soft fork), in this case you could stay on an older version but as a miner you would miss out on newer transactions. For example if you run a version that doesn't support Taproot you can not mine Taproot transactions and you could miss out on their fee or even run the risk of not being able to fill your block.
AFAICT version 24 falls under the first category.
|
|
|
|
witcher_sense
Legendary
Offline
Activity: 2422
Merit: 4393
🔐BitcoinMessage.Tools🔑
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 20, 2022, 05:32:37 AM |
|
I admit I first chatted with ChatGPT about this before coming here ![Cheesy](https://bitcointalk.org/Smileys/default/cheesy.gif) It said: in order to ignore certain addresses the miners would need to modify the code and hence it would become incompatible with the current version of the network. I don't understand why the ChatGPT answer is considered wrong (technically)?... Technically speaking that's how you will "blacklist" certain addresses. Of course that's not how bitcoin works but since it's open source and considering this big WHAT IF scenario, if I update the source code to exclude certain addresses and let suppose this source code gets accepted and shipped it's all done. Those addresses will not be included in any future transactions. That's what ChatGPT said, it can be translated to "No it's not possible to ignore certain addresses unless bitcoin core source code is modified." To me it's a correct answer. As a miner, I can decide to exclude certain addresses from the blocks I construct and send to the network, and no one in this world can prevent me from doing that. That is the power of Bitcoin: I can do whatever I want as long as I am acting within consensus rules. For example, I can install software that will filter all undesirable addresses and ban misbehaving nodes from connecting to my mining software. Essentially, I can build my own network with local rules, the only constraint is that I can't change "global" rules. The moment I attempt to modify global rules by installing incompatible software, I transform them to local rules of my isolated network, but this time I become truly isolated because I have "blacklisted" myself from the rest of the world and lost significance. In short, as long as I am a part of the bitcoin network, I have the power to ignore transactions. But I lose it immediately if decide to change consensus rules.
|
|
|
|
PrimeNumber7
Copper Member
Legendary
Offline
Activity: 1652
Merit: 1899
Amazon Prime Member #7
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 20, 2022, 06:49:27 AM |
|
So I guess BTC miners can decide as well to not include certain transactions from the mem pool (fearing punishment for going against the law or sanctions).
Any mining pool that attempts to do something like that will go out of business quickly because outraged miners will no longer point their miners at their pool. Just ask Marathon how that experiment went for them Any pool will follow the laws of the jurisdiction it is subjected to. If it doesn’t, it will quickly get shut down by the authorities and outraged miners will be the least of their concerns. With that being said, the sanctions against tornado cash are likely invalid and unconstitutional for a number of reasons. I think miners willingness to censor addresses will depend on the allegations against those who control the addresses and the evidence available. Even if miners were to include transactions associated with sanctioned addresses, when the coin ends up in exchanges, the exchange will be unwilling to convert the coin to fiat due to the sanctions.
|
|
|
|
ABCbits
Legendary
Offline
Activity: 2982
Merit: 7832
Crypto Swap Exchange
|
I admit I first chatted with ChatGPT about this before coming here ![Cheesy](https://bitcointalk.org/Smileys/default/cheesy.gif) It said: in order to ignore certain addresses the miners would need to modify the code and hence it would become incompatible with the current version of the network. I don't understand why the ChatGPT answer is considered wrong (technically)?... Technically speaking that's how you will "blacklist" certain addresses. Of course that's not how bitcoin works but since it's open source and considering this big WHAT IF scenario, if I update the source code to exclude certain addresses and let suppose this source code gets accepted and shipped it's all done. Those addresses will not be included in any future transactions. That's what ChatGPT said, it can be translated to "No it's not possible to ignore certain addresses unless bitcoin core source code is modified." To me it's a correct answer. It's not correct since there are multiple Bitcoin full node implementation (such as Bitcoin Core, gocoin and bcoin) out there and people doesn't always update their software.
|
|
|
|
shahzadafzal
Copper Member
Legendary
Offline
Activity: 1652
Merit: 3006
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 21, 2022, 05:51:19 AM |
|
It's not correct since there are multiple Bitcoin full node implementation (such as Bitcoin Core, gocoin and bcoin) out there and people doesn't always update their software.
Thank you so much... This is interesting and new info for me. That answers the OP and my question too so it means bitcoin miners or for a full node you don't need to have the same source code you can run any version of bitcoin core or it could be your own re-written source code based on the rules and standards defined by "Bitcoin". You just need to strictly follow the Bitcoin protocols and Bitcoin standards and must qualify Bitcoin consensus conformance to be part of the network irrespective of your source code. Last but not the least Bitcoin standards are still maintained by Bitcoin Core any community agreed changes in bitcoin core will force all other implementations to follow the same. Assuming bitcoin core will always be the most used bitcoin full node implementation.
|
|
|
|
o_e_l_e_o
In memoriam
Legendary
Offline
Activity: 2268
Merit: 18697
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 21, 2022, 12:59:37 PM |
|
Last but not the least Bitcoin standards are still maintained by Bitcoin Core any community agreed changes in bitcoin core will force all other implementations to follow the same. Assuming bitcoin core will always be the most used bitcoin full node implementation. That's a bit more of a nuanced question. It depends on what changes we are discussing. To take a recent example - RBF. Bitcoin Core has used opt-in RBF as its standard mempool policy for several years. Other full node software such as Bitcoin Knots has allowed users to use full RBF. Now Bitcoin Core is allowing the use of full RBF too. But that doesn't stop yet another piece of software from sticking to opt-in RBF, if they want. These kind of changes make no difference to what is considered a valid transaction or a valid block, and so there is no direct impact on other clients. To take another recent example - Segwit. These kind of changes do affect other clients. In a soft fork like this, it would be possible for alternative clients (or outdated Core clients) to accept blocks which the majority of the network was rejecting. In this case, the alternative clients could fork themselves out of the network and start running a minority chain, or alternatively experience frequent reorgs until they upgrade. I would also say that the consensus rules are not enforced by Core, but are enforced by the community. If the community refuse to implement some new change or download new software, then the rules don't change, regardless of what code is published in Bitcoin Core.
|
|
|
|
ABCbits
Legendary
Offline
Activity: 2982
Merit: 7832
Crypto Swap Exchange
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 22, 2022, 11:10:00 AM |
|
That answers the OP and my question too so it means bitcoin miners or for a full node you don't need to have the same source code you can run any version of bitcoin core or it could be your own re-written source code based on the rules and standards defined by "Bitcoin". You just need to strictly follow the Bitcoin protocols and Bitcoin standards and must qualify Bitcoin consensus conformance to be part of the network irrespective of your source code.
Additionally, it's likely some exchange and mining pool create their own full node software. --snip--
I would also say that the consensus rules are not enforced by Core, but are enforced by the community. If the community refuse to implement some new change or download new software, then the rules don't change, regardless of what code is published in Bitcoin Core.
Although in reality people who took part on Bitcoin Core development have bigger influence than many people/group. Major update (such as SegWit and Taproot).
|
|
|
|
|