An Infrastructure Vision for Web3
Have we lost the decentralization war to an inevitable but insidious prioritization exercise?
I started writing about what we are going to spend the money from Gitcoin Grants Round 5 because people should know what they are contributing to. But I realized that a busy skimmer, as most of us are at times, wouldn’t have the time to piece together why this is the best course of action for our vision. So I put together this piece with the team, which is also the most concise definition of DAppNode and the reason of its existence. If you only want to know what exactly the money will be spent on, scroll down until the “ what can we do NOW?” section.
“I have heard of DAppNode… but why is it cool?”
Quick recap: DAppNode is self-sovereign decentralized infrastructure.
It provides the full decentralization stack in one neat package:
- Blockchains / On-chain Computation and logic through their own State Machines, consensus and transport protocols
- Storage: IPFS, Swarm, Storj…
- Off-chain computation through the ability to run any Docker-based DAppNode Package.
For the user, it is a fat client that includes all pieces that one can use to never connect to a central server that can capture its data, sell it or breach it. It allows the user to be completely independent of 3rd parties. Anyone can use Decentralized Apps or cryptocurrencies without fears of censoring, blocking or restriction by governments or other forces. Locally, but accessing a decentralized global network.
How does this work? Let’s have a look below:
For the developer, imagine putting your app into the protocol (Smart Contracts in EVM + Front-end in IPFS) and knowing your app is unstoppable, uncensorable and not reliant on the big cloud providers. That was the original promise of DApps… Cool, huh?
“But wait, my DApp needs off-chain computation too!”
Got you covered. Our docker-based SDK means that you can create a DNP (DAppNode Package) out of pretty much anything. For anything that needs computation or a layer 2, this is how it looks:
I wanted to start with a quick overview of DAppNode to ground the base of the discussion. Let me now explain what problem is it solving:
DApps are not really decentralized
Most DApps nowadays are not decentralized. Nobody is to blame for that.
To begin with, DApps need to be as usable and accessible as any other app — which means that they need to go through the distribution channels users are used to: a website, an app store, etc. Considering that accessing decentralized websites requires extra steps from the user (like using an IPFS gateway to access decentralized front-ends, for example), sensible developers that want to make it easier for that user will reach the conclusion that it is just easier to use a standard hosting service that most likely ends up in AWS, GC or Azure.
Secondly, DApps need access to nodes to work: that means either maintain your own node at a considerable cost and headache, or go to another player that does that at scale and is more efficient but also has more power over the data — Infura or other Node-as-a-Service providers. A DApp developer does not necessarily want to be an infrastructure provider, so it seems normal that it would pay someone to do so.
Notable mention goes to the DNS, a well-known weak link where data can be captured, websites censored and just generally pretty shitty in terms of security. But practical, of course.
Here’s the typical flow for a DApp:
So… have we lost the decentralization war to an inevitable but insidious prioritization exercise?
Nah, it’s just that teams must prioritize to survive. We have solutions for that!
In the long run, the solution is making decentralized infrastructure another option that doesn’t come at the expense of User eXperience, and makes use of one of the native features of blockchains: transfer of value (for incentivization).
DAppNode’s vision is:
To enable decentralized infrastructure by shifting the value captured by current cloud giants to participants at the edges with minimal barriers of entry: that is, to enable anyone to get paid by maintaining the infrastructure of the internet.
Yes, the astute reader will have noticed that one important difference between Figures 1 and 2 versus Figure 3 is that in the first ones the developer does not have to use any other services (doesn’t have to pay for infrastructure), whereas in Figure 3 there’s at least a website hosting and a node provider to pay for.
Decentralization means resilience and trustlessness, but not necessarily free lunch. We can’t expect users to be hosting people’s businesses (sustainable, revenue-generating DApps) for free, so in the long run we should find a way to transfer that value now captured by the cloud cartel towards a protocol, an open-source, low-barriers-of-entry cryptonetwork. (I dive deep into what needs to happen for this in this talk)
Sounds cool but not built yet… what can we do NOW?
I’m glad you asked.
In the short to mid term, we have pinpointed two tracks that will revitalize decentralization:
1. Knowledge, dissemination and creation of TRUE DApps.
Let open source come to the rescue. We will spend most of the Gitcoin Grant Round 5 on Gitcoin Bounties targeted at decentralizing commonly used DApps:
- Reward DApps to maintain their own decentralized front end (IPFS/.eth domain)
- Reward Developers to include the option for users to connect to their own node (it’s unbelievable how this is NOT a default in all DApps!)
- Reward Developers to create DAppNode packages of their DApps.
- Reward Open Source contributors to develop and maintain packages, (like Nate Gentile’s light & local block explorer DNP).
2- Ethereum 2.0 validation
You might have seen some parallels between the mission of lowering barriers of entry to ensure decentralization and the design goals of Ethereum 2.0. ETH2.0 has the potential of greatly increasing decentralization for the Ethereum Network and ensure that a lot more people are running nodes, if for nothing else then for the validation rewards (incentivization again!).
We hope that DAppNode will be the easiest way to deploy and maintain a validator with minimal effort! And to this end, we are devoting the other part of the resources.
So if you share the vision, contribute with as little as 1 DAI to our Gitcoin Grant. You know exactly where the money is going to go.
“Decentralize until it hurts, centralize until it works”, said someone that I really don’t remember (if it was you who told me, let me know because I quote you incessantly).
It is not the DApps mission to solve infra problems. They have enough finding a product, business model and product-market fit. So we are taking responsibility and we are engaging the Open Source community to help us do so.
If you have a DApp and you can, offer the option to use local nodes in your DApp. Put it in IPFS. Give it an .eth domain.
If you are a developer, join us. We’ll be posting bounties to decentralize commonly used DApps, but you’re free to suggest your own packages, what you would need to have fully decentralized.