Previously, I talked about why I think open and closed source are like Yin and Yang, they balance with each other in the long run. And as of today, open source needs to come back.
Decentralized Computing
Recognizing that cloud computing paradigm has given closed source platform competitive advantage over the open source ones, in order to save the open source movement, decentralizing the cloud computing naturally comes to a lot of people’s mind: that is to have a public decentralized computing platform. In a public decentralized computing platform – DFINITY calls it “The Internet Computer”, SONM calls it “Decentralized Fog Computing Platform” and Ethereum used to call it “The World Computer” – computing powers distributed across the Internet form a single logical computer which can be used by anyone in the world.
The three main challenges facing any decentralized computing platform are: trusted computing, incentive and privacy. We need trusted computing, because we use computing powers managed by anonymous people. And these people also need incentive to plug their computing power to the platform. Lastly if these people could sniff data from others in their computers during the process, applications requiring privacy would not be possible.
The evolution of blockchain technology increasingly suggests that it is a good candidate for building a decentralized computing platform. Because it provides trusted computing, through different consensus protocols, where the likelihood of a trust-breaking attack is as low as possible. It usually also builds an internal accounting system on top of its consensus protocol, where the accounting unit is then become its own cryptocurrency. The blockchain implementation then can add some mining process to incentivize people contributing their computing powers by earning the cryptocurrency (sellers), while requiring the users of the computing powers having those cryptocurrency (buyers), hence the equilibrium could be achieved between buyers and sellers.
But when it comes to privacy, it is still far from reality. While limited privacy computing has been achieved in cryptocurrency space, such as zk-SNARK 1) https://en.wikipedia.org/wiki/Non-interactive_zero-knowledge_proof , more generic privacy computing will require technologies such as homomorphic encryption 2) https://en.wikipedia.org/wiki/Homomorphic_encryption and multi-party-computatin 3) Sharemind MPC Platform to mature.
Another limitation of blockchain technology is its scalability. If we were to call Bitcoin blockchain or Ethereum blockchain world computers, they would be the terribly slow ones, with roughly only 15 transactions per second can be calculated. There are many projects trying to address this issue, through sharding (taken from database terminology), sidechains (think of running “plugins” to the main blockhain) and even completely different concensus protocols such as Hashgraph and IOTA. I will not reference more articles related to blockchain scalability, since there will be new articles every week about it and anything referenced here would get out dated very soon too.
There are also permission-ed blockchain systems that promise very high scalability, but as Vitalik Buterin described as a “Scalability Trilemma” 4) Scalability Tradeoffs: Why “The Ethereum Killer” Hasn’t Arrived Yet : we may not be able to get all decentralization, scalability and security in one system.
An important question then is, do we need to wait for the next better technology to address all those issues before we can save the open source movement? I believe the answer is no and we already have enough tools in our box to transform the way how we do open source.
Open Source Organization
Definition
The computer programs on a decentralized computer are often called smart contracts. It is helpful to think that smart contracts programs are traditional computer programs + trusted computing. As a result, as long as we agree on using the same smart contract program, we can also agree on its computational results – just like a contract. Without a decentralized computer, we would need a third-party to host the computer programs and we would both need to trust that third-party. That is what gave closed source software space to grow without much contention from open source software.
Now with smart contracts, because of their trust-less nature, we have a new way of doing open source that is what I call “Open Source Organization“:
The key components of a open source organization are governance and collaborators. Governance program is written in smart contracts, and its input and output is handled by the collaborators. Collaborators can be another smart contract based program, or it can be a program running outside the decentralized computer. There are multiple reasons of having collaborators instead of implementing everything in the governance:
- Practically speaking, on current decentralized computer implementations, smart contracts have scalability issues and limitations: amount of code you could store on it is small, the amount of operations you can do per second is little and the ability of interacting with existing centralized services.
- Interacting with third-party systems. It is like “plugins” on desktop applications.
In a smart contracts program, the program that provides input to it is usually called an oracle 5) https://blockchainhub.net/blockchain-oracles/ , and the program that acts on the its output is usually called an agent. A program might be either an oracle or an agent or both, that’s the reason I will simply call them collaborators.
DAO & New Paradigm for Open Source
An open source organization is also a DAO 6) https://en.wikipedia.org/wiki/Decentralized_autonomous_organization . But to call a DAO organization open source organization, there are several criteria.
Firstly, its governance must be open source. This is the case for public blockchains, since all code are recorded on the public ledgers.
Secondly, the governance must allow any program to join as collaborator under the same rule. And the reference implementations of the collaborators must also be open source. Closed source collaborators may be allowed to join the organization. In fact there is no easy technical way to detect if the software is a unmodified copy of the open source version of the collaborator software, a difficult problem that occurs in other area of trusted computing too 7) Prevent cheating in online games .
This is significant to the open source movement, since it is a new pattern of creating open source software. Before we can only share the source code, then people would need to download to their own hardware to use. In this new paradigm, the open source software core is running on a decentralized computer such as blockchain as a governance system. And other open source software components are collaborators to the governance to achieve service that relies less on the centralized cloud platform.
Design Patters for Governance
Since humans and collaborators interact with the governance, in order to deal with the uncertainty brought by them, there are couple of design pattern we could have in the governance. Because each design pattern deserves a full article in itself, here I will just briefly touch each topic.
Marketplace
A common problem with decentralized computing is ensuring quality of service and its evil twin – fraud detection. Through a marketplace, where service collaborators provide their services for rewards, users or rating collaborators could rate their services.
Certain smart contract could be created to make ratings effective:
- Rating collaborators could issue “certificates” to service collaborators, and certificates manifest level of quality of service acknowledged by the rating collaborators.
- Similarly, an experience system could be created like in RPG games: the more the service collaborator work, the higher experience it gets. And higher experience means higher lever quality of service.
Dispute Resolution
It is unavoidable that, after the transaction, users could disagree on the expected result of the service. The marketplace could keep track of the historical disputes, but to provide proper dispute resolution, one could refer to https://kleros.io/ – The Blockchain Dispute Resolution Layer – for more inspirations.
Regulation
In cloud applications development, we have already developed a collection of methodologies including continuous integration, staging, devops etc, where a development organization have control in the decision making process. But in a open source organization, we are facing an unique challenge that to control access and upgrade the system, we need approval from all stakeholders.
A well thought-out regulation built-in in the production governance from version 1 is the key to ensure the sustainability of the whole organization. There are 3 choices in general:
- An absolute monarchy: the open source organization designates one person or group that holds the sole control of the governance update process and its own succession rules.
- A council: a group of people could vote on deciding the governance update process and its admission and discharge rules.
- Direct democracy: every participants in the organization could vote on the update process. Note that, the weight of the individual votes need not to be based on real world identity, in fact it is still a new area to integrate real world identity into a decentralized system. A different mechanism could be, the weight of the vote could be based on the statistics how many activity each account generates in certain period – the level of running statistics calculation even current Ethereum blockchain can already handle.
Next up…
In next article, I will put the theory into practice, we will see some examples how we can build an useful open source organization.
Miao is a convert to the vision of a better world where the spread of information, social organization and the way we construct systems, are all enhanced and optimized through decentralization. Having worked in the software industry for more than 10 years, most notably at Skype for 5 years (where he looked after its peer-to-peer network stack), Miao has the knowledge to build decentralized software systems. With the rise of Blockchain, IoT, AI, etc., Miao believes the time is ripe for his vision of a decentralized world to be put further into effect through technologies.
References