Rethinking Blockchain — by Tim Bansemer Q3'19
After working over 28 months in the Blockchain industry it’s time to reflect on the current state of Blockchain and the motivation to join the industry in the first place.
While working in the Ethereum ecosystem I had a deeper dive into two projects. RChain (2018) and Ethereum Swarm (2019). Both of them had a significant impact on my current way of thinking about the future of distributed ledger technologies.
Reminder — Why do I care about Blockchains?
They provide transaction security in a permission-less setting. This is itself a groundbreaking innovation. What does it enable? Network governance, computational platforms which are owned and governed by the commons. A basic infrastructure layer for a sovereign digital society. A new way to coordinate and to collaborate — a way which allows us to rethink institutions as we know them today. Banking without a Bank, online shopping without Amazon, ride sharing without Uber, flat sharing without Airbnb.
Highly automated distributed platforms where protocols define the service and the market place. The rule of code. All those new markets can exist as commons — as public infrastructure with zero margin approaches.
That’s why I joined. I joined because I believe this technology will give us an open “Web 3”; a Web for the people. A web with digital sovereignty and fair market-places by default. But this is not where we are.
Enablers / Blockers
While Ethereum delivered the first distributed ledger technology with smart contract capabilities, it does not provide the required scalability we need to run applications with mainstream adoption. At the present time it provides currently ‘only’ the computational layer. Important enablers, such as a distributed identity layer as well as distributed storage and communication layers, are still missing. While Swarm promises to be the storage and communication infrastructure, we still wait to see this promise being fulfilled. The same applies for the identity applications which require a standardization pushed forward by the “Decentralized Identity Foundation” and the W3C but also yet to be seen in broader adoption.
Those layers need to come together to provide us a complete Web3 stack with good tooling (SDK’s) and a strong developer focus that allows easy build and deployment. This includes all tooling required to build the infrastructure itself as well as deploying software on top of it. Therefore a “distributed github” and all the other tools we currently consume from companies like Microsoft, Google and Amazon. We need those tools to be part of the Web3 stack.
Starting with the Goal
I personally believe, that you don’t build a rocket which flies to the moon by accident. You don’t build this rocket while taking the requirements for an orbital flight target. You start with setting the goal clear — like Kennedy did it. “We go to the moon, not because it is easy but because it is hard.”
We don’t rebuild the internet to recreate the old one. We rebuild it to create a new one. So that said — what’s this new internet?
A global fabric for a sovereign digital society
We have a coordination crisis. Our economic and political system is incapable of managing the resources we have available on this planet in a sustainable way. While we are standing by and watching it, the current incentive structures lead us to massive extinction in wild-live and ecosystems. Furthermore we accept, tolerate and support human suffering as a consequence of our current exploitative economic-political system. It’s neither acceptable from a humanistic stand point of view, nor is it sustainable.
A recreation of coordination and collaboration infrastructure is needed to rebuild our organisational bodies to make wiser decisions in an increasingly complex and dynamic environment. This is why we created DGOV and why we organise events like the II DGOV Council.
While DGOV supports the wet code and the path to actualize our human OS this does not answer the need for a free digital space to connect the new emerging network societies.
This is why we need a global permission-less infrastructure which provides us with the innovation ground to create these new organisations existing in parallel to the institutions of today. This is not possible in the existing web. And the reason is straightforward misalignment of interests. Any evil-corp and evil-gov will buy or fight weaker organisations which are challenging their existence.
We require a permission-less, scalable, highly resilient, commonly owned Web3 stack which provides services for everyone on this planet.
Permission-less networks level the field to allow for open competition to existing power monopolies and for this they are absolutely required. These permission-less distributed ledger technologies provide an infrastructure for a democratized identity management, money creation and policies as well as creation of digital institutions. All those realms have been the domain of governments in the past and are newly captured also by evil-corps. E.g. identity by Facebook and Google or money projects like Libra.
What is the rocket we need to build to fly to the moon and beyond? What is the Web3 we need as a fabric for a global digital society?
Certainly it is a protocol stack which allows for distributed trustless computation with a high transaction security and censorship resistance.
Furthermore, I personally believe that an economically effective and dominant distributed computational model will have the following properties:
- Dynamic Security Properties
- Dynamic Computational Resource Allocation
- Highly secure computation
Well — That’s impossible. Is it?
Let’s dive into every one of them. I strongly believe that a globally shared state is not desirable for every transaction but only a very few in the end. If we look into the analogue world, we work with witnesses to create high transaction security. Therefore a dynamic security model would follow this approach. Every transaction is evaluated by a security parameter which will set the desired security level. The higher the security level, the more witnesses will be involved. Lower security levels lead to only a few witnesses. Unrelated transactions can therefore be executed in parallel and do not require a shared state. Detected logical proximity of transaction is key to verify if two transaction had been executed correctly and concurrently or if they actually belong to a different total order.
The same goes with the allocation of computational resources. This is the second parameter which is key for an economically viable scalable solution. Every instance of a smart contract would greatly benefit from a dynamic resource allocation model. This would allow the use of smart contract logic with various inputs. Furthermore this impacts price and execution speed.
Last but not least we require a high degree of predictability of code execution. Which means that such a model would greatly benefit from additional reflection layers provided by a logic framework which allows you to test code before it’s execution in a simulation.
All those things which are listed so far are impossible to do with Ethereum and any other platform which I’m aware of to the present day. There are approaches which would allow for those properties to be available and I’ll share them here.
Building the new generation of distributed ledgers
I believe that the right computational model for us to build such a ledger is known as the “Actor Model”[10min read up on Actor models][5min video]. In combination with a math-based programming language (rholang) which is more accurately based on a pi-calculus system, this allows various new capabilities, including the merging of two actors, the spawning of new actors and much more. Using routing and deterministic address and naming schema like Kademlia (Naming in RChain, Routing in Swarm) actors actually become addressable based on personal address spaces. Every transaction starts (like in ethereum) with a “Supervisor actor” — an actor which is controlled by a human who has the “Keys” to authorize transactions with and through the supervisor actor. This includes spawning new actors.
While the actor model is compelling, it becomes very interesting if those approaches are combined with the work which was done in the early 2000’s with the so called “Agent Web” which I was lucky to stumble over while finishing off school as the “Friedrich Schiller University” has led the research about this topic. You can think about the Agent as an actor which lives in a “space”. This space is the computational realm which provides the agent with computation and storage and allows the agent to act. Those spaces could be seen as “Hotels” with addresses in which agents operate. Every agent is paying for their “hotel rooms” until they run out of cache and leave the hotel to do their final journey back to their origin.
Every agent has a wallet and a history of its creation back to it’s supervisory agent. Every “hotel” has a lobby which allow for agents to pass through, based on a “net-neutrality” agreement that every hotel has an open lobby to be able to receive paying agents in return. This approach is something which I’ll invest time in to validate approaches and see how this relates to existing partially successful projects like Swarm and RChain.
One thing Swarm and RChain shared is the Kadelmia overlay network to provide a deterministic address-schema for the nodes. This is something we need to consider in addition to a unified name-space system for every single agent.
There is an existing consensus algorithm I would like to see implemented and tested with Rholang called Crisis [Link to Paper] [Website] which actually favors actor model based consensus.
Systems like Swarm would and could exist as supported protocols on top of an actor based distributed computational platform while greatly benefiting from it’s emergent properties.
This is a starting point for more thoughts I intent to share publicly and discuss over the upcoming time. Please contact me via Twitter @tim_bansemer if you have ideas and questions to discuss.