The question is how best to objectively advance it over the next 10 years. Should a standard drive a reference implementation, or a reference implementation drive the standard?
As several people have pointed out, only one of these is _technically possible_ because Bitcoin is a globally consistent consensus system implemented by machines that execute implementations and not prose specifications
implementations of what? machines that communicate in a predetermined agreed language implement a specification, regardless of how that spec is defined, unless it is just one program. saying that a program implements a spec defines by solely by its own code isn't really an implementation of anything.
It's easy for me to suffer some frustration when people continue to just repeat "but standards are good!" without demonstrating an understanding of the specific technical and political considerations in the problem space, and also while retaining a very narrow definition of what can constitute a "standard", "open", or "transparent".
People who are pro-standards, or anti-standards, are both extremists. There are good standards, bad standards, and mediocre standards. We learn and improve. How did the good standards come about and avoid becoming bad standards? Bitcoin is built on many standards which, if you like Bitcoin, you hopefully agree they are good standards to have, such as TCP.
Bitcoin is broken, insecure, and worthless if the machines implementing it are not able to immediately achieve globally consistency.
True of any communications protocol. It's a good thing HTTP works, or we wouldn't be here right now discussing this.
This is a security requirement of the application domain: If the behaviour of the systems and the specification disagree, you _must_ change to match the systems or be left behind and have your funds stolen. It's not that I don't think standards are important-- I've been involved with the IETF for many years, and attend much of the meetings and contribute to a number of working groups myself; but Bitcoin has specific technical and social requirements that make standards documents weak (even, at times, counter productive) tools when talking about the behaviour of the established production system. Unlike TCP, SMTP, HTTP, etc. Bitcoin doesn't simply need to be somewhat inter-operable: when it comes to consensus behaviour all of the systems that constitute the network must behave in deeply identical ways. If an attacker can expose a widespread inconsistency in behaviour, however small or burred, the system faults globally and funds can be stolen even from people whos own systems are not having problems. If the system were not demanding of consistency Bitcoin would be insecure in other ways instead. This is just a technically harder challenge than faced by other protocols.
It is true there is greater security risk with bitcoin. But, that doesn't mean that new code preceding specification is inherently more secure than having a spec to define and discuss a change beforehand. In fact, if you really felt comfortable with the way new code is being written to create new implementations of bitcoin, you wouldn't be proposing a VM to address this concern. To be sure, I think the VM idea is a very good one. I'm just using it as an example because you clearly don't believe things are perfect the way they are today and the potential risk of new implementations. If it aint broken, don't fix it, right?
There is another layer to this-- Standards process ultimately rest on the politics of mankind....
Politics sure is a fuzzy word in any scientific conversation. Let's reverse this. Are you saying that open source projects don't have politics? Are all developers always in perfect agreement. That's why I like the early days of the IETF. That was about as minimal on the politics as you could get. It was engineers who worked together very well to create new things together. It wasn't until about the mid 90s that the culture began to change. To some extent, I think we both agree that culture is always a risk. But, I believe that risk is just as real without a standards dialog. As for some of your concerns, that's about WHO is influencing the standards, or what type of person, not the fact that the standardization process is visible and perhaps a bit formal. That said, I haven't proposed any type of process. I agree that if one were to develop a process, it might need to be a bit unique for Bitcoin to optimize the primary objectives of Bitcoin: Security, Scalability and De-centralization, with a high bar for any direct impact ability (e.g., voting) to ensure technical credibility and common ground on core principles. Yet, the non-direct impacting open discussions could prove incredibly value-able towards Bitcoin's objectives. And the visibility on the process cannot possibly hurt.
Bitcoin was created to build a system whos behaviour was more deterministic than is otherwise possible in a world where political expediency can sometimes override "constitutional" guarantees. While it's useful for people to discuss Bitcoin, and nudge it here and there, without the ability to largely elevate itself above political expediency, Bitcoin serves little purpose. I think we should all support efforts to communicate better about Bitcoin, including building better descriptive text to build an on-ramp to a more complete understanding and aid people who only need an informal view. I've contributed time to help improve the developer's guide, help publish BIPs, etc. But there is authority and autonomy risk from crossing over into the realm of proscriptive text that ultimately seeks to control the system rather than the system controlling the text. This is why, for example, the BIP process as a whole is intended to be rather descriptive and there are BIPs for a number of things that quite a few experienced engineers in the space consider to be seriously ill-advised.
+1 and I understand your concerns. Keep it scientific with the core team dedicated demonstrating technical excellence and a common vision. Note, the latter hasn't always been clear to-date, such as with anonymity and fungibility.
Another way I could present your question is "Should a human readable but inherently ambiguous definition requiring politicized interpretation and adjustment drive the definition of Bitcoin? or should Bitcoin be defined by math... even though math is not always easy to read?"
Like SSL and PKI?
You again make it sound ilke a choice between math and politics. Math and politics will always be there. The only question is HOW you manage the politics. Do you hide it and pretend it's not there, because there is so much math? Or do you limit it in your core charter with checks and balances and hopefully an agreement on guiding principles?
... in the context of Bitcoin the risk is more fundamental and so we must step carefully.
True, except the "..." part. hahaha
When someone is interested in gravity we can describe it informally, but when they want or need to really understand it-- in some way that has consequences-- we don't pretend that we can shy away from precise formal descriptions-- to do so would be to undermine engineering, and it would result in people dying.
ROFL! Not sure how you think Bitcoin is as complex as physics computations, or how you think people will die if the current political status quo has increased visibility.
We certainly don't seek to "specify" it with prose and expect the universe to obey. Nor should we with Bitcoin. Bitcoin is the physics of a virtual universe, if you will. And like actual physics there is no replacement for a precise, formal, description--- especially if you're in the business of building the machinery of that universe yourself.
Except Bitcoin isn't a virtual universe.
I'd like to help build a platform that can provide vast capabilities
What I was talking about there isn't about plug-ability or extensibility; it's orthogonal to it and wouldn't itself offer any additional flexibility. The motivation there is being able to achieve absolute consistency in the parts of the system which MUST be absolutely consistent while still allowing for multiple implementations by reducing the surface area where things could go wrong.
The kind of flexibly you're thinking of might also benefit from some of the same tools... but a consensus system like Bitcoin has some pretty incredible overheads that preclude a good bit of application space by their very nature.
I know. I was digressing a bit into a vision that in itself has nothing to do with Bitcoin. I do see a new M2M virtual currency being required to grease the wheels of trustless resource and task distribution, developed from the ground up to meet the needs of M2M. Examples of how requirements would differ from Bitcoin: transactions would be incredibly micro. Yet, because these are virtual machines in a virtual universe, they could settle debt in much larger time spans, such as once a day, decreasing the load on the primary order book. It could be a combination of trusted and trustless, as well.
I appreciate your passion for the success of Bitcoin. You do bring a lot of insight and I do empathize with your concerns even when we don't totally agree on whether or not the current political status quo is enough to ensure the success of Bitcoin over the next 10 years.