You previously mentioned a 90% threshold for "consensus" (on reddit)
I don't think I said that.
Hmmm, I am having difficulty finding that specific quote (maybe my memory is not properly serving me on this). I was able to find several quotes in which you mentioned the bitcoin economy (and not the core devs and "experts" ) as who gets to have their options considered when determining consensus. (
here,
here,
here - the economy was discussed but not the devs/experts -).
There are two ways of doing a hardfork. The proper way is
consensus:
- Create a proposal that has no significant opposition. A proposal has significant opposition if it is strongly opposed by any of: one Bitcoin Core committer, one large exchange or company (Coinbase, etc.), a few generally-recognized Bitcoin experts, several smaller but still economically-important companies, or a large group of ordinary users who have reasonable arguments and are willing and able to exert some real economic force. (The underlined groups are the ones with clearly-significant opposition as I currently see things.) This means that it's very difficult to do controversial hardforks. That's the point. You need to get consensus -- that is, make a hardfork non-controversial -- in order to do it.
I would disagree with a Bitcoin Core committer ("core devs") or a few Bitcoin experts having this kind of veto power, especially regarding the core devs having individual veto power. I think this makes the decision making regarding Bitcoin even more centralized then that of a bank. If I were to walk into Bank of America tomorrow and tried to have some change applied to my account and was denied, then I would have the option of escalating the issue to the person who denied my request's manager (and can continue to escalate up the chain of command). However with your definition of consensus, if any
one core dev were to disagree with a proposed change then it automatically does not happen.
This brings me to the point of
potential conflict of interest. It is argued that some of the core devs (and some of the Bitcoin experts) have a conflict of interest because of their relationship with Blockstream (either because they are employed by block stream or otherwise derive some of their income from Blockstream). You argue that the core devs that are employed by Blockstream have been making the same argument for some time prior to their relationship with Blockstream. I think we can agree to disagree on this (I disagree because I believe their relationship with Blockstream gives them an incentive to not try to compromise, and does not give them an incentive to change their minds when presented with additional facts that potential discredit their believes).
Even if we were to assume there is no current conflict of interest, I can say with near certainty that there will be in the future if core devs are given veto power then they will be targeted by entities that would potentially profit when certain Bitcoin related decisions are made. With several millions (and potentially billions, or more) of dollars on the line, profit seeking entities will have great incentives to try to financially influence the core devs, and this will be made easier if it only takes
one core dev to stop a proposal from having consensus.
The way XT is attempting to push through a hard fork might be called "economic redefinition" (which is not consensus). For me to recognize an economic redefinition, both of these must be true:
- An absolutely overwhelming majority of the Bitcoin economy (99.9%, say) actively engages in the redefinition (ie. they actually exist only on the new network/currency). Verbal support is insufficient. Miners and nodes are irrelevant. Individual users have much less weight than big companies with more economic weight.
- The new currency must not break Bitcoin's absolute core principles. For example, it cannot create more bitcoins than are allowed. I currently believe that 8 MB blocks do not violate Bitcoin's absolute core principles.
I think that 99.9% is probably too high of a threshold. I think that if say 80% of the economy supports a "new" Bitcoin, and utilizes it when it does not utilize the "old" Bitcoin, then the other say 20% will naturally start to use the "new" Bitcoin as the old Bitcoin would likely lose greater then 80% of it's value.
I think that to an extent that miners to matter, and their agreement (to an extent) is necessary to reach consensus. For example if only 1% of the miners are in favor of a proposed change then there would be no one to keep the network secure that the entire bitcoin economy supports. I think that over time, the "medium to large" economic players (and the miners) will be the ones who will run a node (more on this later).
I argue that in order to have consensus, some kind of supermajority of
both the miners and the bitcoin economy must agree to a change. I am not sure what would represent a super majority though. I think that 50% would be too low (50% agreement may not even be accurate due to variance). I would say that 99.9% would probably be too high because it would be nearly impossible to achieve this all at one time. I think a 75% support level would be close to an appropriate amount of agreement, although something like 85% would probably be better. I think that anything above ~85% initial agreement will be nearly impossible in almost
every circumstance because of the diverse economic goals and incentives that various stakeholders have (for example Western Union may get involved in Bitcoin in the future, but they would probably oppose any initiate that would allow it to scale because doing so would hurt them overall).
I think the core devs and the Bitcoin experts can (and should) give advise to the various economic players and the miners, however I don't think they should make decisions for them. I don't think it is the core dev's position to prevent major stake holders from making a poor decision (this is similar to how a financial advisor would tell someone who is unemployed with only 3 weeks of unemployment insurance left, little savings and a job offer they will need to pass up because they are going on vacation that it is a bad idea to pass up the job offer and take the vacation, however they will not call Expedia to cancel the reservations).
(The above list where I even say "verbal support is insufficient" is a slightly modified version of
this comment which I wrote 14 days ago. I am not being inconsistent about this.)
I think that verbal support is necessary for major stakeholders to be able to make decisions on if they should support any particular proposal. Giving verbal support is part of the negotiating and decision making process. If 95% of the bitcoin economy and the miners were to support a particular proposal then it should be fairly obvious that it is advisable for the last 5% of the stakeholders to support such proposal unless they can make an additional significant argument against it.
The fact is that BitcoinXT has a non-zero chance of replacing Bitcoin upon implementation.
Agreed, but that doesn't make it Bitcoin. Many other altcoins could reach this point if they tried.
There is litecoin that
could have replaced bitcoin, although the debate regarding block time was won by Bitcoin, and it turns out that script can be used by ASICs just like SHA256 can. Even litecoin has an extremely low adoption rate and a large amount of litecoin trade is with bitcoin (people are trading LTC for BTC).
There are a few other alt coins that use Coin Join (or CJ-like) transactions for
every transaction in every block, however their blockchain security is virtually zero and their potential economic uses is equally worthless. Other then that, pretty much every other altcoin is, in every way significantly inferior to Bitcoin (at least IMO) to an extent that they are only good for speculation as to when the other speculators will enter and exit positions of those alt coins.
Discussion of BIP 101 itself is on-topic, it definitely should happen,
This is fair enough. Although I think it is very unlikely that BIP 101 (or any other BIP that increases the block size) will be included in Bitcoin Core, at least not by default.
Maybe/hopefully there will be a clear technical consensus as a result of the research/discussion at the
Scaling Bitcoin Conferences (sponsored by bitcointalk.org!), which would help move things along.
I was not aware of this. We should sponsor more of these types of events, and maybe even hose these types of events. I cannot see anything other then positive things from coming from this event (although it is possible that this results in nothing). Maybe we could decrease the threshold to donate for any donator perks to encourage additional donators.
Even if XT's change to the max block size was 100% objectively perfect, this sort of hostile hardfork is just amazingly, incredibly bad. Due to this, I condemn XT as strongly as possible.
I very much agree that the kind of hostile hard fork that was originally proposed in XT is very bad. Major stakeholders should not be coerced into accepting something the way that XT proposes they accept it. Although if enough support can be gathered prior to the hostility (when the network will fork without consensus) then maybe it is not so bad. Maybe if XT forces conversations to be had about what needs to happen with the network, then it might not be so bad (and maybe these conversations can lead to consensus prior to the "hostile date"). Maybe if XT forces major stakeholders to consider a single proposal to increase the block size (instead of each supporting, in smaller numbers, the 4-5 proposals), then maybe it is not so bad.
I don't like BIP 100 or 101 because they are too fast,
I think right now it would still be very cheap to run a full node. I think my
full node can
handle consistent 8 MB blocks (I only pay ~$20/month for it). Moores Law would imply that it will cost roughly the same to double capacity every 2 (or maybe, more recently 2.5) years. I don't think however that it will necessary be a bad thing if the cost to run a full node will increase over time.
In theory, over time, the people who will be running full nodes will be the people who are trusted enough for others to send money to them first. For example if I (as an average user) were to send fiat to Coinbase first then there would be little reason why I would need a full node to validate a transaction that coinbase sends me with a full node over a SPV client (if they were going to scam me then they might as well not send the transaction in the first place). Likewise, if I were to turn around and spend those bitcoin that I purchased from Coinbase at a website/company that utilizes BitPay to process their payments, then I could just give BitPay the signed transaction for them to worry about propagating throughout the network, and getting it confirmed. If I were acting as some kind of escrow service, then I would want to ensure that payments sent to me are confirmed quickly and that when I
think they are confirmed they really are, so I would want to run a full node to validate this. Ideally, a greater number of economic players will join the bitcoin economy which will result in a diverse ownership of full nodes.
The cost of running a full node (or multiple full nodes) will be added to the cost of doing business while accepting bitcoin. This is similar to how accepting credit cards cost
~2.9% + $0.30, the cost of accepting bitcoin would be
0.0001BTC + some amount to run the full node(s), and ideally the total cost of accepting bitcoin will be greater then the total cost of accepting credit cards (and other fiat).