Let us start with an assertion made before by Stanislav Datskovskiy:
The computers we now use are descended from 1980s children’s toys. Their level of bedrock abstraction is an exceedingly low one. This would be acceptable in a micro with 64K of RAM, but when scaled up to present proportions it is a nightmare of multi-gigabyte bloat and decay. Witness, for instance, the fabled un-debuggability of multi-threaded programs on today’s architectures. It stems purely from the fact that truly atomic operations can only exist at the bedrock level, and to fully comprehend what is going on in the entire machine requires wading though a vast sea of binary soup, boiled and stirred continuously by an asynchronous world. The futility of this task is why programmers aren’t usually given even a sporting chance – observe the lack of a hardware debugger in any modern computer
I take this largely to reflect on the failings of the dominant x86 architecture and its derivatives, but this principles carries through SPARC, PowerPC, DEC Alpha, ARM, and nearly every other architecture used today. Some minor exemptions might exist in incredibly restricted embedded systems like smart cards or the Zilog 80 and its derivatives embedded in nearly everything that needs a bit of computing. Even the exceptions are beginning to become less common now as low power ARM chips become more economical substitutes to previous embedded systems. Your coffee maker or breathalyser may not need or benefit from the additional computational power a multi core gigahertz class ARM CPU provides, but as the gigahertz class ARM chips drop in price they are replacing the simple enough to accomplish the task at hand chips of the previous age. The exceptions are cases in which the cost of regulatory compliance exceeds savings from switching to cheaper chips.
The first thing this reminds me of is Clojure, the attempt to rebuild LISP inside of the Java Virtual Machine with all of Java's native libraries and all of Java's native limitations. Now, many useful things have been written in Java. Now with respect to Bitcoin I do admire some things written in Jave like the BitcoinJ library that powers MultiBit and SatoshiDice. As of this writing there simply is not any better implementation of Simplified Payment Verification2 in Bitcoin than those written in Java. The problem with these things, Clojure and BitcoinJ, however is not they way they work now, but how they work into the future. Java exploits, with respect to the browser plugin and local Java Virtual Machines, are nothing new and frighteningly common.
The failure of Node.JS to either allow security or attract people who can create security is a fatal flaw. With Urbit a corresponding failure is that Urbit actually did attract people capable of creating things and did nothing more than waste their time. The primary social contract that has existed between people and computing technology has been that computing automates tasks and prevents people from having to repeat the brute work behind tasks to free people from the drudgery of having to focus on developing mastering of such wasteful tasks as making palatable coffee.4
A best endgame5 for Bitcoin and computing, whether it happens next year or twenty years from now is going to be computing hardware that interacts directly with high level computer programming languages. First steps towards this goal might be simple reimplementation of CPython in a hardware description language running off of common FPGA development boards. More advanced implementations might involve LISP machines in the MIT tradition running off of ASICs developed with fealty towards their masters as their primary imperative.
More than any new "Payment Protocol", that abortion of a thing implemented in Bitcoin's first release or any new mining hardware could add to Bitcoin. The future, will not be some abortus offered by Intel under the guise of "Trusted Computing" but an actually trustworthy computer. A computer for which intelligibility is offered for anyone who cares to know is offered all of the way down to the silicon.
A primary challenge to Bitcoiners and people who use Bitcoin over the next year to next several decades will be that of choosing the straw in which they would like to lay verus the bedrock in which they actually can. No blockchain, not Bitcoin, not Litecoin, and not DogeCoin will be able to tell who made their beds in which foundation now will they care. In this future Edward Snowden was little more than a swift kick in the ass. If you want Bitcoin you choices going forward are going to be to either make your bed in the bedrock or to lay out your bed in the straw.
Half measures will survive into the future for some time I imagine. Still! People who wish to remain hostile. People who wish to steal, and people who demand central control.6 The commimg movements in computing are going to make Richard Stallman himself seem conservative with respect to the definition of open source.
- In spite of much progress made in hiding the structural deficiencies in modern Unix operating systems, a large amount of this criticism remains as biting as ever. On the other hand don't take this criticism of Unix as a license to continue running Window, OS X, or some other even more brain dead thing system which merely escapes criticism here through having already been gutted too many times before. [↩]
- Also referred to as SPV [↩]
- In this case strip poker. [↩]
- Making coffee in the morning necessarily comes before inventing a sane framework for the web capable of serving dynamically generated pages. [↩]
- By endgame I mean in the literal sense. The classic Bobby Fischer Teaches Chess is primarily a text on the mastery of endgame tactics. The text remains a classic in spite of having not actually been written by Bobby Fischer and is commonly referred to as the Rook book and is a classic in that niche. For people seeking a general overview and introduction to chess I can think of no better introduction than Edward Lasker's Chess for Fun and Chess for Blood. A book I was blessed sufficiently by entropy to find for sale at a tournament years ago and which I had since given away to someone who has to my knowledge found no use for it. [↩]
- Oh, shit we go back to Urbit!. Dukedoms, empires, and limited key changes, Oh! My! [↩]