I like to paint on a large rhetorical canvas, but I do have a focus on a tiny corner of it. Hopefully, this explains it. Jump to The Work if you want to get to the details.
I got my hands on my first personal computer in 1980 - it was a Sinclair ZX80 that was loaned to me by my science teacher who didn't know what to do with it. It only ran BASIC programs, but it was part of the personal computer revolution because it was designed for use by an individual rather than being designed to support multiple users in an organisation that controlled how it was to be used. There were various other personal computers used on the way including MicroBees and C64s in school labs, but my first, owned by me, personal computer was bought second hand from a family friend when I was at university. My car that was stolen from a street near the university was unexpectedly found and returned to me - but I was so broke that I couldn't afford to register and insure it. I had got used to trains and buses and so I sold the car and bought the computer with the money - an original IBM PC/XT. Now I've had a personal computer of one kind or another ever since - but alas, not for much longer because you see, the Personal Computer is dead. Every device you buy now is again a multi user computer where the first and most important user is the one that an organisation such Microsoft or Apple or Google installs on the device to make sure it serves them and their goals. The transition from a personal computer with a personality created by you to a device controlled by organisations is all but complete as it joins your phone, tablet and motor car as being a device owned by the organisation and leased to you under their terms. The personal bit in “personal computer” has been killed off as it is not as profitable as giving you a computer that removes your personal control of your own computer and the data you create with it. It is now an impersonal “device” back under organisational control.
Meanwhile, in liberal democratic societies the law still tries to find the balance within the triumvirate of government, individuals and corporations to try to ensure that each can perform their function but not get such a great advantage that they can control the whole rather than serve within the whole. However the law is slow while technology is fast, and so it is easy to see that governments and corporations able to deploy capital can rapidly get the advantage over the individual in that triumvirate leaving the unrepresented personal technology space to die on the vine without a lot of organised collective support. And so the same dynamic that applied to the personal computer has been applied to the internet. The internet was supposed to be a network of peers where no one was able to exert control of the whole, but today we have the “splinternet” where the network designed to be a whole has been splintered into domains controlled by large corporate and government interests. And I don't say those words as breathless socialist hyperbole - I say them as a pragmatist who sees corporations like Facebook and Google who can colonise whole aspects of online life, Apple and Microsoft controlling devices, and countries like China who (in an ironic inversion of the issues of the natural environment) can simultaneously control the the doctrinal “purity” of their own online colony while they push political pollution into those of the “other”. Again, this is just a simple observation that large entities in my world are attempting to find their optimal version of the gilded technological cages we will inhabit in the centre of the panopticon defined by their various collective or personal visions.
An oft overlooked irony of our times is that while the cryptocurrency community talks about how cryptocurrencies enabled by networks and cryptographic techniques can increase personal freedom and control, it was networks and cryptography that allowed our freedom to own and control our devices to be locked away from our reach so the personal could be removed from our personal computers. It is the very same networks, cryptographic tools, and hardware keystores implemented into corporate owned hierarchies that control our devices that crypto advocates say can undo them by being organised into a flat peer to peer model of individual agency. They are both correct, which means that cryptographic tools and techniques do no more than support the way humans want to organise themselves and their technology to achieve theirs and their collective goals. Some groups want to use technology to seek control, while others want to use it to be free from control.
The problem with cryptocurrencies though, is that they don't deliver the full promise. The blockchain does deliver the ability for a peer to peer network to be the trusted third party that achieves consensus over time about messages sent among adversaries; but it doesn't deliver much else. There is no encryption in cryptocurrencies, which means all data is public, and the way that people interact with cryptocurrencies today is the antithesis of the way it is presented. Instead of being a peer to peer network where each individual is a node on the network and empowered with freedom from control and censorship; what crypto is today is a concentrated client-server model where users use browsers to talk to intermediary servers that talk to cryptocurrency nodes controlled by protocol owners and fiat service providers. The crypto nodes managed by these providers are now so large and cumbersome that the monolith needs to be split into functional parts such as mining/validating, smart contract execution, and trust beacons. And the only way you can interact with the whole edifice is across the networks and servers run by companies that are within the control of governments and regulators, and on devices with the same control structures of app stores, plugin gatekeepers, and device censorship that killed the Personal Computer. We need to stop the collective delusion - crypto cannot pretend to work in a whole new way when it lives within the same system using the same design principals which we know allows for the removal of the personal and facilitates the imposition of corporate and government network control models.
This essay is not leading to a grand manifesto railing against the machine, or worse, a whitepaper informally describing a definitive solution to it all. I am glad that I live in a liberal democratic society where the government, individuals and corporations are in a rough and tumble to find the balance between the individual and the collective. Rants against one or the other are tiresome and counterproductive; as is the shouting of a crypto denouement. But what is productive to me is to ensure that technology keeps getting created that helps the discussion and the reality of what can be done for individual freedom within collective pursuits. If a fully personal and individually managed computer can be created and kept under the control of an individual in the same way that they are in control of their own body and mind - then I'd like to see that done for no other reason than it would be cool to see it done. If that computer can be “global” so that a user controls their space and also shares with others across a global address space in a personal and unmediated way, then I'd like to see that done for no other reason than I think it would be useful for others. But what people do with these tools is of no interest to me any more than what they do with the tools of their own body and mind. What interests me is progressing the technology to get it done for no other reason that I believe it can be done and it will be useful. That is neither a thought crime, a revolutionary manifesto, nor making gold from lead - it's just following an idea and signing up to do some work. And I also do it for fun, so if it just ends up being an art project, so be it.
So with all that said, let's do some work.
My ultimate goal is to make a virtual computer - the 4th Energy Virtual Machine (4EVM) - that lets a User interact with web3 services anonymously and without intermediaries. The way I describe the 4EVM is that it is an Ethereum virtual, virtual machine (EVVM) because it is a VM that embeds other VM instances such as the Ethereum Virtual Machine (EVM) operating on an Ethereum blockchain node. Why can we create this second level of virtual machine? Because the address space of any EVM is 2^160 bits which to all intents and purposes is an infinite address space where the address of code libraries (smart contracts in ethereum speak) on multiple blockchains can co-exist within that large address space and never clash in the EVVM address space. This means that with some networking and code magic to tie them together, you can create a single EVVM connected to many blockchain based virtual machines, and address all of their onchain libraries (smart contracts) as if they are local libraries within the EVVM. As the User interface for web3 apps is always a browser, and given the emerging standards to put HTML and javascript onchain accessible as browser loadable NFTs through Web3 mechanisms; I can see a way to have NFTs loaded from the Ethereum blockchain that can be used as the web3 clients that can access an EVVM with an address space which can also talk to the Ethereum blockchain and other EVM compatible blockchains. If we then put the EVVM on a distributed kademlia network, we have replaced the need for web2 intermediary web servers with a fully decentralised web3 based EVVM that can take over the glue and business logic functions required to drive Ethereum blockchain smart contract transactions.
So, what is the work I have to do to create this magical machine? Well, I have to start with creating a new EVM that is a standard EVM (ie. faithfully implements the Ethereum rules) but also allows me to add in all the node and address space magic so that the EVVM address space includes the existing Ethereum code library (smart contract) address space and also allows its own libraries to be built to use them and control the operating environment. Once that is done I now have an EVM ready to support the goals, but it doesn't have an operating system (OS); the EVVM sits there waiting to be programmed in EVM asesmbler - which is fine for virtual chip level programmers - but not particularly productive for community development efforts. So, I need an intermediate language that can work at the low level of assembler, but it also has to be able to grow user level programmer interactions and support OS command development. This is where the 4th.Energy language comes in as the next work task.
My first foray into language development in this domain was to create a Forth type compiler that worked in NFTs. This was a fun way to start and an interesting science experiment and performative art project, but it was not particularly useful in the long run as the market learnt to bring HTML and javascript libraries into NFTs. This latter approach is much more fruitful and aligned with current web development. What this process did teach me, however, was EVM assembly language and how to put libraries on the Ethereuem chain. I also developed a workable pattern for implementing a web3 based interpreter/compiler, albeit with the wrong deployment model (If I've learnt anything it's that if you work in tech you have to pivot or die defending a dead end - but your failures always pop up in what ultimately works). And so, I have a pattern and I can also go back to the future and find out how to do these things at the (virtual) machine level. Using the patterns of 4th.Energy Mk1 and studying the grandfather of all Forth implementations - the Threaded Interpretive Language (or TIL) method of chip level programming, (Threaded Interpretive Languages - Their Design and Implementation. R.G. LOELIGER. 1981), I now have a tractable plan for how to create a TIL for our EVVM which I can also use to create our operating system. Yay - I can now define an initial plan with measurable deliverables.
I love delivering my proof of concepts (POCs) as they are a good way to get feedback and engagement into the next stages. So, the POC plan at this time is:
Pete. (twit:[at]p[underscore]s[underscore]horne)
|Home|