The LTB Network Forum


Upcoming Bitcoin Hard Fork & /r/bitcoin censorship

Back to Bitcoin & Beyond

Jump to bottom

Comments

  • Dlight

    (first posted in comments under EB94)

    I want to discuss why XT is so dangerous. First of all, this isn't a debate about the blocksize limit anymore. Everyone in the Bitcoin community would like to see Bitcoin becoming as scalable as possible - including the core devs - and most would like to see the blocksize limit increased in some manner that is agreed to by community consensus.

    In fact there is a summit coming up in Montreal specifically to discuss Bitcoin scalability. Mike and Gavin aren't the only devs wanting to solve the scalability problem - everyone does. https://scalingbitcoin.org/montreal2015/

    The real debate here is about whether or not community consensus is important. Gavin says that if Bitcoin XT is adopted then Mike Hearn will be the new "benevolent dictator" of Bitcoin. And as Gavin reaffirmed in this interview - Mike prefers to just move ahead quickly and do whatever he thinks is best without needing to waste his precious time building consensus.

    Just because people want to see Bitcoin achieve scalability doesn't mean that they want Mike Hearn as our new dictator.

    Now for some technical issues explaining why XT is so dangerous.

    1) Mike has added pages of code to XT related to the Tor network - which for those who don't know - is the "dark" network that allows shadowy activities like drug sales to occur online - by preserving the anonymity of the people using the network.

    The supposed justification for this added code is that many denial-of-service attacks against Bitcoin come through the Tor networks - so Mike had the idea to start kicking off connections that are Tor exit nodes in case of a DOS attack.

    In order to do this the Bitcoin XT code actually contains a hardcoded list of Tor nodes, as well as requesting a new list from the Tor network periodically. I have a friend who's an expert in communications and runs a datacenter in downtown LA. He texted me this the other day:

    "XT has some serious Tor problems. It downloads a blacklist from the Tor website and bans the ips during high load. People that know networking can tell you... there's a million ways to exploit that. If you hijack the connection of the Tor list download you can force the disconnect of users. XT is hard coded to download the Tor nodes from Tor's website to ban the ips during high load/flood. There are many ways to exploit that to find users and to ban users. The Gov't can easily alter and spy on the list XT connects to. Basically if you spy on the connection XT makes to Tor's website you get a list of people that use Bitcoin and Tor. A gold mine. They also can change the list to ban specific users."

    Keep in mind that a "high load" event is something that a hostile attacker can easily create with a standard DOS attack.

    If my friend is correct - then either Mike Hearn is incompetent at writing security code - or worse - is deliberately building in a backdoor for some entity to exert control. Could the whole debate about the blocksize limit actually be some kind of subterfuge - when the true goal is possibly to catch Bitcoin users on Tor or to introduce some kind of blacklisting capability? This code has not been vetted by the community or undergone any security audits. It should not become part of Bitcoin without far more review and consensus by experts.

    2) Everyone seems to be making the assumption that if XT achieves the critical 75% threshold and finally mines the first block larger than 1MB - then all the other exchanges and miners still running Bitcoin Core - even though many fervently dislike being forced to adopt XT - will immediately give up and join the new chain - thus ending the fork. This is a false assumption.

    Here's a scenario for how miners could make MORE profit by staying on the 1MB chain. Many miners have had to turn off their rigs because mining became unprofitable. So there is likely to be a large amount of mining power that could be turned back on again quickly - if it was profitable. Let's say that the first XT block larger than 1MB was mined right in the middle of the 2 week difficulty adjustment period.

    The network would immediately split into two incompatible chains. The miners left on the "1MB" chain now have 4 times the slice of the mining pie - since their competition has just dropped by 3/4's. They form a pool to bring more previously-turned-off mining power online to double it to 50% of the total before the fork - all focused on the 1MB chain.

    Blocks will be found at a slower rate of twenty minutes per block but after two weeks - the difficulty on the 1MB chain drops by about 25% or more. Suddenly their older rigs are profitable again! Blocks are coming faster now and more old mining power is brought back in. After another three weeks or so the difficulty will drop significantly again - and their profits will increase further! The difficulty will keep dropping for months until it reaches equilibrium. With the lower difficulty mining the 1MB chain will be far more profitable than mining the XT chain!

    In the meantime - huge questions as to the viability of Bitcoin itself will be occurring - because new coins are being generated on both chains that are incompatible with transactions on the opposing chain. But the miners don't necessarily care if Bitcoin dies - because they could make a fortune which they could immediately change into other alt-coins or into fiat currency. Miners could take the attitude that Bitcoin is finished anyway - so they may as well make as much profit as possible in the meantime.

    I hope it's obvious that this would be a disaster for Bitcoin. This is showing us that community consensus is actually a prerequisite for maintaining the Bitcoin consensus algorithm. The second can't exist without the first - it's simply too fragile. Changes forced down our throats by cowboys like Hearn will destroy Bitcoin - not help it.

    This is no longer about the blocksize limit - that's become a minor and unimportant issue. It's about whether Bitcoin can survive a new unelected dictator who doesn't really care about consensus. The answer is: It might not.

    Thoughts? @cryptonaut @adam @andreas

    Permalink
    0 likes
  • IvanB

    @dlight (first posted in comments under EB94)

    I want to discuss why XT is so dangerous. First of all, this isn't a debate about the blocksize limit anymore. Everyone in the Bitcoin community would like to see Bitcoin becoming as scalable as possible - including the core devs - and most would like to see the blocksize limit increased in some manner that is agreed to by community consensus.

    Agreed - the debate is not purely about block size but rather the decision making process within Bitcoin itself. Some developers feel strongly that there can be only one reference client and that all decisions must go through a core group of devs before they can be introduced into the community. Obviously there are those that disagree and believe that Bitcoin should be represented by multiple versions of Bitcoin code. Bitcoin Core, bitcoinj, btcd and BitcoinXT are examples of this process.

    The real debate here is about whether or not community consensus is important. Gavin says that if Bitcoin XT is adopted then Mike Hearn will be the new "benevolent dictator" of Bitcoin. And as Gavin reaffirmed in this interview - Mike prefers to just move ahead quickly and do whatever he thinks is best without needing to waste his precious time building consensus.

    This is not correct. Hearn would not be responsible for Bitcoin, only BitcoinXT - he would be the benevolent dictator over only one implementation of Bitcoin where people could again fork the software and vote with their feed if they don't like changes introduced.

    If you believe that something like BitcoinXT can succeed then you automatically don't believe it's possible to have a Bitcoin dictator because clearly people can fork software and leave anytime they want.

    1) Mike has added pages of code to XT related to the Tor network - which for those who don't know - is the "dark" network that allows shadowy activities like drug sales to occur online - by preserving the anonymity of the people using the network.

    The supposed justification for this added code is that many denial-of-service attacks against Bitcoin come through the Tor networks - so Mike had the idea to start kicking off connections that are Tor exit nodes in case of a DOS attack.

    In order to do this the Bitcoin XT code actually contains a hardcoded list of Tor nodes, as well as requesting a new list from the Tor network periodically. I have a friend who's an expert in communications and runs a datacenter in downtown LA. He texted me this the other day:

    "XT has some serious Tor problems. It downloads a blacklist from the Tor website and bans the ips during high load. People that know networking can tell you... there's a million ways to exploit that. If you hijack the connection of the Tor list download you can force the disconnect of users. XT is hard coded to download the Tor nodes from Tor's website to ban the ips during high load/flood. There are many ways to exploit that to find users and to ban users. The Gov't can easily alter and spy on the list XT connects to. Basically if you spy on the connection XT makes to Tor's website you get a list of people that use Bitcoin and Tor. A gold mine. They also can change the list to ban specific users."

    Keep in mind that a "high load" event is something that a hostile attacker can easily create with a standard DOS attack.

    Your friend doesn't fully understand how the feature works. The only way that anti-ddos feature is activated is when all of your incoming connections on a full node are full. Under normal operations, this never happens. I've run full nodes in highly connected data centers and in the course of months, I've never had all of my inbound connections full.

    The only way this would happen would be if someone were to intentionally attack a node and overwhelm it with connections. In this case, the anti-ddos feature drops connections from proxies and Tor first to allow for new incoming connections.

    There is no way that it can be used for blacklisting - it wouldn't work. The code has been vetted by the community - it was rejected because of a black and white response to utilizing a centralized list, namely the Tor Group's exit node list.

    If this list were compromised, literally nothing would happen - like I said, the feature isn't used unless your node is already under attack.

    2) Everyone seems to be making the assumption that if XT achieves the critical 75% threshold and finally mines the first block larger than 1MB - then all the other exchanges and miners still running Bitcoin Core - even though many fervently dislike being forced to adopt XT - will immediately give up and join the new chain - thus ending the fork. This is a false assumption.

    Here's a scenario for how miners could make MORE profit by staying on the 1MB chain. Many miners have had to turn off their rigs because mining became unprofitable. So there is likely to be a large amount of mining power that could be turned back on again quickly - if it was profitable. Let's say that the first XT block larger than 1MB was mined right in the middle of the 2 week difficulty adjustment period.

    I don't think many miners turn off their rigs - they sell them to people who have very low cost or free electricity. In short, there isn't a ton of effective mining equipment just sitting idle.

    The network would immediately split into two incompatible chains. The miners left on the "1MB" chain now have 4 times the slice of the mining pie - since their competition has just dropped by 3/4's. They form a pool to bring more previously-turned-off mining power online to double it to 50% of the total before the fork - all focused on the 1MB chain.

    Blocks will be found at a slower rate of twenty minutes per block but after two weeks - the difficulty on the 1MB chain drops by about 25% or more. Suddenly their older rigs are profitable again! Blocks are coming faster now and more old mining power is brought back in. After another three weeks or so the difficulty will drop significantly again - and their profits will increase further! The difficulty will keep dropping for months until it reaches equilibrium. With the lower difficulty mining the 1MB chain will be far more profitable than mining the XT chain!

    In the meantime - huge questions as to the viability of Bitcoin itself will be occurring - because new coins are being generated on both chains that are incompatible with transactions on the opposing chain. But the miners don't necessarily care if Bitcoin dies - because they could make a fortune which they could immediately change into other alt-coins or into fiat currency. Miners could take the attitude that Bitcoin is finished anyway - so they may as well make as much profit as possible in the meantime.

    9 companies, including Bitpay and Coinbase support BIP101. Without them on the 1MB chain, the value of 1MB coins would be very low if not worthless. The short chain would very quickly collapse, IMO.

    At this point there's no need for concern - miners have largely voted for BIP100, not surprisingly because BIP100 gives miners the ability to control max block sizes. So most of industry is for BIP101, miners are for BIP100 and developers / users are divided. This puts us at impasse with no large block size taking effect in the near future.

    Consensus is going to take shape - it's going to be messy but it will happen.

    Permalink
    0 likes
  • Cryptonaut

    @Dlight

    sorry man gonna have to debunk you on a few things here.

    I want to discuss why XT is so dangerous.

    XT is actually the opposite of dangerous. What IS dangerous is the centralization of bitcoin protocol development between a “council of 5”, and ultimately one dude who can technically make any decision they want (Wladmir) - which is the same as all projects hosted on Github. One person owns the project repository, and they can assign (or remove) others with access to merge in code changes (and also moderate issue discussion, bug tracking etc.). BitcoinXT gives us a choice, so instead of one “reference client” that everyone is using, controlled by one group of people.. now there is two independently run versions which must compete and/or cooperate to decide the future of the network. That’s called decentralization. Three competing full node clients would be even more decentralized (or 5, or 50 of them) - but hey we gotta start somewhere.

    Here’s a little story for you:

    So there was once a person (or group) identifying themselves as Satoshi Nakamoto. For the first few years of the existence of bitcoin, Satoshi made all bitcoin protocol development decisions, everything rested on him (or her, or them). Although ideas were shared and input sometimes sought from the community, there was no “consensus process”, and many variables were chosen arbitrarily (e.g the 1MB limit which is the mess we are in now). When Satoshi decided to abandon the project, he gave the reigns over the source code to Gavin Andreson, another arbitrary decision (or maybe “gut feeling” - same thing).

    When Gavin took over, one of the first things he did was create the test network (test-net), and he also attempted to decentralize development a little bit by giving commit access (able to make code changes) to 2 or 3 people which he on some degree knew, respected and trusted… but ultimately those people were chosen arbitrarily as well. There was no election, there was no “consensus process”.

    Not long after, some of Gavin’s “chosen ones” brought in a couple more people which they also knew and trusted on some degree. Thus, there was now five people with direct control over the source code of the most widely used bitcoin client. A better situation than just one person deciding everything, but as lead project maintainer and owner of the github repository... Gavin was the one who had to step in and make a final decision in the case of any disputes between the group, which has happened multiple times. This means that Gavin was still essentially the “dictator of bitcoin [Core]” from when Satoshi left in 2010 to when Gavin stepped down in 2014.

    So Gavin handed down his role as lead maintainer in April 2014 to Wladimir van der Laan. Another arbitrary decision - there was no election, no defined “consensus process”. That means that Wladmir is now the new “dictator”, and he has the final say (if he chooses to) in all decisions. Little is known about Wladmir (at least that I have been able to find), he is quiet and keeps a very low profile, so we don’t even know what his motivations are, what sort of future development roadmap he has planned out, or anything really.

    Anyway, morale of the story - there is no defined consensus process in Bitcoin Core, and all the Core devs are in the positions that they are essentially because they were at the right place at the right time. There is nothing really all that special about them, so we shouldn’t put them on a pedestal of some elite group of untouchable developers that we dare not cross or make them upset.

    The real debate here is about whether or not community consensus is important. Gavin says that if Bitcoin XT is adopted then Mike Hearn will be the new "benevolent dictator" of Bitcoin. And as Gavin reaffirmed in this interview - Mike prefers to just move ahead quickly and do whatever he thinks is best without needing to waste his precious time building consensus. Just because people want to see Bitcoin achieve scalability doesn't mean that they want Mike Hearn as our new dictator.

    I think “waste his precious time building consensus” is twisting things a bit. Nowhere has Mike said that he is just going to do whatever he wants willy nilly and not care about what anyone thinks. In fact if you look at the activity over on the BitcoinXT mailing list (https://groups.google.com/forum/#!forum/bitcoin-xt) you can see that he is actually quite open about everything, getting everyones input on changes and has been very open to including other peoples changes unless its an obvious bad idea. The narrative of “Mike the fascist dicatator” doesn’t line up with reality.

    Mike Hearn as our new dictator.

    He is only the “dictator” (owner of the repository, project maintainer) for BitcoinXT. He is not and would not be the dictator of Bitcoin itself, Bitcoin Core or any other fork or implementation. Saying this is also saying that “Wladmir is the dicator of bitcoin” - in which case I would like to hear exactly why Wladmir is a more favorable overlord than Mike (protip: neither of them really rule anything!).

    Now for some technical issues explaining why XT is so dangerous. 1) Mike has added pages of code to XT related to the Tor network - which for those who don't know - is the "dark" network that allows shadowy activities like drug sales to occur online - by preserving the anonymity of the people using the network.

    The supposed justification for this added code is that many denial-of-service attacks against Bitcoin come through the Tor networks - so Mike had the idea to start kicking off connections that are Tor exit nodes in case of a DOS attack.

    Yes, if your network connections are completely filled up (often due to a DoS attack), any connections from Tor are dropped off one by one in favour of clear-net connections. Many DoS attacks are sent through Tor, and most bitcoin nodes operate on the clear-net, so this makes sense IMO. This can also extremely easily be disabled with a simple command line option when booting up your server. It’s also important to note that the hardcoded list is meant as a temporary solution, and was added in because XT nodes were actually being attacked through Tor.

    "XT has some serious Tor problems. It downloads a blacklist from the Tor website and bans the ips during high load. People that know networking can tell you... there's a million ways to exploit that. If you hijack the connection of the Tor list download you can force the disconnect of users.

    Ok, so essentially what this is saying is “if somebody hacks the official Tor project servers, and at the same time does a DDoS attack on the bitcoin network, they could cause certain bitcoin nodes to temporarily lose connection to some other nodes”. Sorry, but if the Tor project gets hacked there is probably much worse problems that would happen, and none related to bitcoin.

    So let’s examine that attack anyway:

    • First off, it does not “blacklist” or “ban” anyone, it just de-prioritizes. If connections are maxed out, Tor connections are dropped in favour of clear-net connections trying to connect. Once the DoS goes away and network connections free up, Tor users can connect again. More of a gray list if anything :p
    • As mentioned, if the Tor project gets hacked, trying to mess with some bitcoin nodes is probably the least damaging thing you can do.
    • If the list of publicly known Tor exit nodes was suddenly changed, everyone would notice
    • A DoS attack is required to trigger the code, which would need to be highly targeted (I doubt many have the capability to attack literally the entire network), plus is difficult to maintain for an extended period of time.
    • DoS attack could be easily mitigated by simply changing IP addresses, or spoofing your client name so it looks like you are running Core instead of XT or something.
    • There is no way to tell whether or not a node is actually using these rules or not, and a large portion of the network (or all of it) would need to use the Tor deprioritzation rules in order for an attack like this to cause any sort of disruption
    • Even if you manage to cause a node to have it’s connection dropped on 20 other nodes.. what about the other 80 it might be connected to?
    • For those worried about “your node IP being leaked when you download the list” - what exactly do you think is happening when your node connects to other nodes? By running a bitcoin node you are already telling the entire world what you are doing. If you need privacy, you can run the node through Tor or through a proxy and IIRC it will disable the Tor IP deprioritization automatically (if not, it is simple to do manually).
    • The profit motive / reward for this sort of attack is extremely vague… what exactly would it accomplish?

    People freaking out about vague and questionably rewarding “attack vectors” like this are part of the reason that Bitcoin Core development is so easily stalled. There is no clear prioritization in Core of what actually is a threat, what can be dealt with and what should be dealt with... so the result is that many times when an idea is brought forth or some changes submitted, someone will always pick it apart and come up with some form of attack that could only realistically be pulled off in very specific network conditions and by some evil villain Chief of the NSA with unlimited resources. The idea is then written off as “fundamentally flawed” and gets stuck in limbo.

    In BitcoinXT, one of the first things that is already being worked on is coming up with a proper “Thread Model” for bitcoin, so the network can actually progress and become more resilient, instead of being hung up on trying to prevent attacks that would probably never happen and probably not even do much of any damage. You can check out a discussion on that here: https://groups.google.com/forum/#!topic/bitcoin-xt/zbPwfDf7UoQ

    This code has not been vetted by the community or undergone any security audits. It should not become part of Bitcoin without far more review and consensus by experts.

    No such thing exists for most things in Bitcoin Core as well. But yes I agree the more review the better. XT already has quite a few people actively reviewing all code and submitting new changes.

    2) Everyone seems to be making the assumption that if XT achieves the critical 75% threshold and finally mines the first block larger than 1MB - then all the other exchanges and miners still running Bitcoin Core - even though many fervently dislike being forced to adopt XT - will immediately give up and join the new chain - thus ending the fork.

    Raising the block size limit has been heavily talked about all year long, and with the whole XT thing already happening for the past few months. No fork will happen until January next year, so that still gives us 4 months to make sure everyone knows what is happening and is more than prepared. After January, whenever the 75% miner threshold is reached, that 75% (or more) needs to be maintained for an additional 2 weeks before anything happens, and during that time a warning message is sent out to every bitcoin nodes (Gavin and a few others have access to an emergency broadcast key) that they need to upgrade ASAP. After the two weeks, still no fork happens until the first > 1MB block is mined. IMHO all that should give everyone involved in bitcoin plenty of warning that they need to upgrade to either XT, or another equivalent client which implements BIP101. This is not the first time that node operators and miners have had to upgrade their software in order to keep themselves connected to the network and on the right blockchain, and it won’t be the last.

    If people don’t like XT for whatever reason, they can run the version which is strictly Core + big blocks (BIP101), or they can patch in BIP101 themselves, or use another client which might have it implemented. If the Bitcoin Core project wants to not be left behind, they will add in BIP101 themselves. In which case we would see a network which is 100% support for big blocks, but split say 40% XT nodes and 60% Core nodes.

    The network would immediately split into two incompatible chains. The miners left on the "1MB" chain now have 4 times the slice of the mining pie - since their competition has just dropped by 3/4's. They form a pool to bring more previously-turned-off mining power online to double it to 50% of the total before the fork - all focused on the 1MB chain.

    This is technically possible, but who exactly are they going to sell their coins to? If the majority of the network is already on the new > 1MB chain, surely all the exchanges will also be on board (they would be insane not to), in which case you have no way for miners to sell their coins and pay for hardware, electricity and bandwidth costs. Miners are interested in making money, so they are going to follow wherever the money goes. It’s kind of hard to believe that many miners would be so hardcore about specifically having 1MB as a limit that they would abandon the main chain and attempt to revive the old chain… but I guess we will have to wait and see.

    It’s certainly possible that there will be a movement of bitcoiners loading up the old chain and trying to start “Bitcoin Classic”, which would be interesting but not really any more of a threat than most alt-coins IMO. Kind of like I could also start up a “Bitcoin Original” using the very first stable client version Satoshi created (which is not compatible with the current network).

    I hope it's obvious that this would be a disaster for Bitcoin. This is showing us that community consensus is actually a prerequisite for maintaining the Bitcoin consensus algorithm. The second can't exist without the first - it's simply too fragile. Changes forced down our throats by cowboys like Hearn will destroy Bitcoin - not help it.

    This is no longer about the blocksize limit - that's become a minor and unimportant issue. It's about whether Bitcoin can survive a new unelected dictator who doesn't really care about consensus. The answer is: It might not.

    Character attacks don’t really help at all either.

    This is not a disaster, this is true consensus, decentralization and anti-fragility in action. I’m fully confident that we will come out of this stronger, even if there’s a few bumps along the way, and If the network can’t survive without everyone using the same software developed by one small group of people, then we have already lost.

    Permalink
    2 likes
  • adam

    Yeah I can't really say it much better than @cryptonaut just did, tip'd!

    Permalink
    2 likes
  • Cryptonaut

    So in relating to the /r/bitcoin censorship, here is an interesting chat log from Theymos...

    https://www.reddit.com/r/bitcoinxt/comments/3l6njq/theymos_i_know_how_moderation_affects_people/

    Permalink
    0 likes
  • OmniEdge

    /r/bitcoin censorship is minor compared to the scaling Bitcoin debate. We should not focus on the malicious denunciation or slandering of another person, especially as part of an effort to ruin the reputation.

    More interesting would be to follow the sequence of the scaling debate. "During Scaling Bitcoin, Bitcoin Core committers and notable contributors got together and chatted about where a "greatest common denominator" type consensus might be. The following is a without-attribution (Chatham House) summary. This is my own personal summary of the chat; any errors are my own; this is not a consensus statement or anything formal." Jeff Garzik http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-September/011031.html

    Permalink
    1 like
  • blockchain-db.com

    I've created a website that archives the information that theymos has tried to censor. It's available at http://blockchain-db.com/

    You cannot stop the Streisand effect.

    Permalink
    1 like
  • wanista

    I dont understnd method to search bitcoin ... and i see prize bitcoin is go down every time .

    What to search bitcoin is must be have some modalor financial pr money?

    Permalink
    0 likes
  • ivanova

    I I'm following

    Permalink
    0 likes
Jump to top

Post Reply

Please Login to post a reply to this thread.

© Copyright 2013–2016 The LTB Network. All rights reserved .