This page is incomplete. It is a work in progress. Contact me if you want to collaborate.
What do I want to build?
- I want to build a decentralized computing platform that can be trusted to be running the right code and produce correct results
- Should be decentralised not distributed.
- Decentralized: run by the society
- Distributed: run by many separate systems, which can still be owned by the same group
- It should avoid waste; Proof of Work protocols involve solving a mathematical puzzle which uses a lot of electricity but does not useful work.
What problems will this solve?
- It will prevent fraud whereby a service says it is doing something or not doing something but then lies and there is no way to audit it to ensure compliance. For example, Google and other large data harvesting companies regularly claim to not be exploiting our data for purposes beyond those in the ToS, they also claim to not be sharing data with law enforcement or governments. However, governments with secret courts and gag orders are able to access this information without the public being aware
- It will allow organizations, people and groups to collaborate and trust each other to execute functions because the entire chain is auditable
- It will allow us to make use of currently wasted computing resources; such as old phones and laptops
What are the use cases?
- Cheaper cloud computing
- Audit and compliance of software services
- Deploy applications
What solutions currently exist in this space? What are their limitations?
|Name||Description||What does it solve?||What is missing?|
|Name||Description||What does it solve?||What is it missing?|
Who will want to pay for this?
Who will want to use this?
- organizations wanting to host computation but not willing to pay for cloud hosting
- distributed app developers
- organizations that want to increase their trust levels by the public, because all of their systems will be auditable and in the public
- hobbyists and everyday content creators who are okay with “slower” systems at lower cost -> nearing free.
What are some challenges in building this?
- We need a distributed consensus algorithm that validates computation
- The network speed affects data transfer and the overall performance of the system
- If the network is too slow then messages between programs that are geographically distributed will be slow and the overall system performance will be slow
- Network discovery affects performance
- Finding devices that have the program or data we are looking for needs to be fast
- different computers have different performance characteristics
- Need to be able to run untrusted code on user machines without being vulnerable to attack
- We need more resources to work on research, development, design, marketing, creating educational resources and documentation
- We need partners/users to work closely with to test and validate use cases
- We need people who are interested in participating in the network by contributing their computational resources
- The unit of deployment needs to be something that can be targetted by existing programming languages
- Solidity is a new language and runtime
- Webassembly is also a new target, but existing code such as c code can be ported with relatively little work
- Much of the development tooling is built for the centralised web, we will need to build most of this from scratch
What this does not aim to be?
- A bitcoin/distributed currency replacement: We may have something similar to gas that is used to determine the fees of computation, but the idea is that this currency is not to be used to purchase goods and services. Instead, it is like a credit that can be purchased by currency or sold for currency
- Applications can be built on top of this that act as trading platforms, exchanges or banks
Things to look into
- Multi party computation, Secure multiparty compuation
- Ethereum Virtual Machine: aims at distributed computation in some manner
- Consensus Algorithms: Proof of Work, Proof of Stake, Paxos
- Sharding chains
- Smart contracts
- Trusted Execution Environments: TPM, Intel SGX, AMD Platform Security Processor
- Cryptographic hashes
- Solana: High transaction speed
- What are the challenges of running a blockchain node on a consumer device: computational power, storage, network speed, memory, security
- The halting problem