As a professional software developer this may be an opportune time to point out that the bitcoin code is an amateur production.
I have the greatest respect for Gavin and others that have donated untold hours to make bitcoin into a reality and I know from experience how tough self-funded development is.
Nevertheless, make no mistakes, the current incarnation of Bitcoin has a lot of ill-conceived design points and implementation weaknesses (as we have seen from the events of the last 24 hours).
Aside from the blunder that just resulted in a blockchain fork, there is a much larger, related issue looming on the horizon, which is the inability of the design to process large numbers of transactions. It is ludicrous we have people whining about "Satoshi Dice" creating numerous transactions. I could sit down and write a software component that could easily generate billions of transactions without breaking a sweat once it is deployed to a few thousand boxes, if I so chose, and yet you are concerned about Satoishi Dice generating a few million transactions. The problem of high-volume transaction handling needs to be answered at a new level which is, unfortunately, way above the paygrade of the current development team.
@Blinken: ty for the BC.
@all: Do people actually disagree with the 4 paragraphs written above, or do you just disagree with the person who made the comments?
It's sad that the vast majority of posts on these forums are attacking the person, rather than critiquing the message. And it's not just this message, its virtually every posting to every topic on this board. And I suspect that is part of the reason there is an insufficiency of developers. [Name any successful open source project where those who offer constructive criticism are attacked like this.]
While I may be guilty, too, in my handful of posts, I have tried to object to the action or the process or the result, rather than the person. Earlier in this thread, I referred to "Blinken's Bloatware". Fact is, given the algorithm he was using, it was good. But compared to a different algorithm, it was bloatware. Blinken manned up and acknowledged with cold hard bitcash.
I happen to think SD is spamming the blockchain, and I happen to think their traffic should be blocked. But I also know anybody else can spam the blockchain in a similar way. [Blinken: just clone SD *and* provide your customers with a highly customizable bot to place their bets. Several forms of Martingale. Charts and stats on recent numbers chosen by your Oracle. And a single "spin" button or "auto" button to start things rolling. Etc. When you are rich, send me some more BC.
] Blocking SD is just a way of buying some time, while the development team works out a solution. I know it isn't a permanent fix. My longer-term idea is to have the client analyze the blockchain in a crude attempt to determine common ownership. [It is very hard to maintain anonymity for a regular user. It's even harder for a commercial enterprise who must advertise their address(es) to receive business.] The first few transactions between any pair of users is free or cheap. But if A and B keep exchanging coins, that becomes spam, and the price should go up. [More precisely, if there's a cycle that rotates coins, that's spam.] This lets Sister Theresa's charities receive their tiny donations. This lets commercial clearinghouses exchange BC with their 10000 customers per day. But mainly, this makes SD hire a programmer to rework their model, and the rework might as well be something that's easy on the blockchain. I'm not going to suggest this, because I know what kind of attacks will come my way.
If Bitcoin is going to be a currency of the future, many problems need to be addressed. Blinken's ideas are generally sound.
If Goldman Sachs, D B Shaw, and others are paying their "quants" upwards of $10M per year, how much should the Bitcoin community be paying its best thinkers and developers, eh?
It is very difficult to understand the nuances of the BC protocol, because it is poorly documented. "The code is the standard." Despite this, the Bitcoin community has been given at least two scholarly papers (one from a University and one from Microsoft). High-quality research. Free. But little action. When someone does make a reasonable suggestion, the response is often "That's coin protocol XXX. That's not Bitcoin. Go invent your own protocol." Those kinds of responses are completely unproductive.
About 2.5 days ago, the blockchain forked. A few centralized miners were able to put Bitcoin back on track. But they left an orphan chain *25 blocks long*. Let me repeat: "A handful of miners orphaned a chain of 25 blocks." If a few miners can do this, what do you think the NSA could do? Or any other major corporation or government? If Bitcoin becomes a real global currency, and if some nefarious outfit starts to manipulate the blockchain, I can easily see the US Government joining in the mining "to stabilize" the currency. But, I can just as easily see the US Government determining Bitcoin addresses used by the Taliban or WikiLeaks, and saying "no spend transactions from those addresses". If someone mines a block that includes such a transaction, Uncle Sam mines two blocks that make the first one an orphan. If anybody doesn't think this could happen you have *no idea* of the NSA's capabilities. They could do this tomorrow. I don't know how to solve this problem. It may be the fatal flaw in Bitcoin.
The heroic action 2.5 days ago was not in the best short-term interests of the miners who switched, but I reckon they were both benevolent and they thought it was in their best long-term interests. Next time, they might not be so heroic. Or next time, the centralized mining pool operators might decide their self-interest overrides the interest of the community. Centralized mining may be a fatal flaw in Bitcoin.