I don't believe a second, compatible implementation of Bitcoin will ever be a good idea. So much of the design depends on all nodes getting exactly identical results in lockstep that a second implementation would be a menace to the network. The MIT license is compatible with all other licenses and commercial uses, so there is no need to rewrite it from a licensing standpoint.
Good idea or not, SOMEBODY will try to mess up the network (or co-opt it for their own use) sooner or later. They'll either hack the existing code or write their own version, and will be a menace to the network.
I admire the flexibility of the scripts-in-a-transaction scheme, but my evil little mind immediately starts to think of ways I might abuse it. I could encode all sorts of interesting information in the TxOut script, and if non-hacked clients validated-and-then-ignored those transactions it would be a useful covert broadcast communication channel.
That's a cool feature until it gets popular and somebody decides it would be fun to flood the payment network with millions of transactions to transfer the latest Lady Gaga video to all their friends...A second version would be a massive development and maintenance hassle for me. It's hard enough maintaining backward compatibility while upgrading the network without a second version locking things in. If the second version screwed up, the user experience would reflect badly on both, although it would at least reinforce to users the importance of staying with the official version. If someone was getting ready to fork a second version, I would have to air a lot of disclaimers about the risks of using a minority version. This is a design where the majority version wins if there's any disagreement, and that can be pretty ugly for the minority version and I'd rather not go into it, and I don't have to as long as there's only one version.
I know, most developers don't like their software forked, but I have real technical reasons in this case.I admire the flexibility of the scripts-in-a-transaction scheme, but my evil little mind immediately starts to think of ways I might abuse it. I could encode all sorts of interesting information in the TxOut script, and if non-hacked clients validated-and-then-ignored those transactions it would be a useful covert broadcast communication channel.
That's a cool feature until it gets popular and somebody decides it would be fun to flood the payment network with millions of transactions to transfer the latest Lady Gaga video to all their friends...
That's one of the reasons for transaction fees. There are other things we can do if necessary.How long have you been working on this design Satoshi? It seems very well thought out, not the kind of thing you just sit down and code up without doing a lot of brainstorming and discussion on it first. Everyone has the obvious questions looking for holes in it but it is holding up well
Since 2007. At some point I became convinced there was a way to do this without any trust required at all and couldn't resist to keep thinking about it. Much more of the work was designing than coding.
Fortunately, so far all the issues raised have been things I previously considered and planned for.
Well well well, what do we have there? Look at this amazing piece of history.
Gavin Andressen, back when he was reasonable, pointing out how people would try to flood the network with trash.
Then satoshi, pointing out how basically BU would be a disaster.
How times change. Now a post-CIA Gavin is pushing this BU trash and supporting Jihan Wu and the rest of idiots flooding the network with garbage to try to force the BU nonsense as a solution.
Gavin and BUcoiners exposed again by Gavin and satoshi himself.
Here's further exposing of Gavin in pre-CIA times, talking about the evils that he is now promoting, and pointing out how merchants and nodes control bitcoin, not Jihan Wu's monopoly:
I very much doubt that any one entity will ever have 50% of the computational power. The botnet operators will bow to the whims of the community because it's the community that ultimately gives bitcoins value. What good is a giant load of bitcoins if you don't have anyone willing to give you something in exchange for them?
Eventually the largest merchants and money exchangers will control what is "standard" bitcoin.Take the "50-coiners" scenario, and imagine that they manage to get 75% of the CPU power on their side.
But imagine that the biggest merchants and money exchangers are more conservative, and are in the 25% minority. I think they will be-- I don't think they'll be the ones in the business of generating coins (they'll be busy selling products or doing the exchange thing).
What happens?
Well, the block chain splits. Transactions using coins minted before the split will get added to both block chains, and accepted by everybody.
Transactions involving "50-coins" (generated after the split) will be accepted on the 50-coin chain, rejected on the 25-coin chain. And vice-versa.
"50-coiners" would quickly find out that they couldn't get rid of their newly minted money because who wants bitcoins that are rejected by the biggest money exchangers or merchants?
If the big merchants and money exchangers disagreed, I bet you'd see Bitcoin clients that ONLY accepted pre-split coins and did no coin generation (since those transactions would be accepted by everybody). If it was never resolved, I think the number of Bitcoins at the time of the split would become "the number of Bitcoins, period," because most people will not want to use money that is accepted some places and not others.
Replace "50-coiners" with BUcoiners and 25-coin with Core. There you have it.
Check the tweets here too:
https://medium.com/@WhalePanda/how-bitcoin-unlimited-btu-will-be-erased-169977ecb3bb#.8lzo1psxcGet ready to dump BUcoin and double your BTC stack if the unfortunate event happens.