Why developers are excited about Web3
Ethereum smart contracts let us do things that were previously impossible using REST and GraphQL APIs.
A new kind of database
Everyone is writing to the same database
Every smart contract is writing to and reading from the same blockchain. All the data that has ever been stored, is stored here. This has previously never been possible. Imagine Facebook and Twitter using the same database.
This means that it is in the best interest of all the users to improve the database performance and speed in a collaborative way. There are 100s of DBs in the world — MySQL, MongoDB, Cassandra etc. But each company, each set of opensource developers are contributing to make that one DB better. If Facebook uses Cassandra, Facebook is investing in making Cassandra faster. It doesn’t help Twitter using Postgres. Twitter and Facebook don’t have an incentive to work together to make the database system they’re working on more performant together.
Whereas, on Ethereum the best minds from around the world are working on ways to make this DB faster. Everyone no-matter which company they work in, no-matter which country they live in, are making the DB faster and efficient. When this DB becomes faster, 100% of the users of Ethereum benefit.
Every single row in the database is public. You can download all the data that has been ever written to this DB. Every write, every update, every delete — is accessible.
This means that data is no longer a moat. Projects can use data generated by other projects. This is like Facebook having access to Twitter’s data. The moat will be a great service by (d)apps that are built on top of this database. If the service is not good, people can fork off and run a new instance of the app without losing any data.
The creator of the data schema defines what operations are possible on the data. This is what keeps the database sane even though everyone has read write access to it. When the dapp owner defines the data schema, they define the rules that need to be satisfied to make an update to a row in the database. For example, a user can withdraw an NFT only if they have won the auction. If this condition is not satisfied, it is impossible to update the row in the DB.
This means that the people using the data can be 100% sure that the data has always been updated using the rules that have been defined. These rules are public too. For the first time ever, we’re able to trust a database to be a single source of truth. The trust that this data is always true, allows a new set of applications to be built on top of this layer without having to worry about the underlying data security. The closest we’ve gotten before this is probably Wikipedia. All the data on Wikipedia is open and widely trustworthy. But every once in a while the data is corrupted by malicious actors or kids having fun. If you’re writing a mission critical application (eg. Google Search Answers that relies on Wikipedia data), you need to build a layer of fact checking before data enters your pipeline. You never have to worry about such data on Ethereum. All the data has passed all the rules.
A new kind of API language
Everybody is using the same programming language
For the first time ever, everyone on the planet is using the same language to write APIs. This enables a new kind of collaboration. All the smart folks are writing these APIs in Solidity. And by design, these programs are extensible. Anyone can use a program written by someone else and build on top of it. Imagine all the Go programmers could use all the Python libraries.
This means that collaborations are almost forced. Standards are being set up. Unlike the standards of the web2 world (RFCs) which were implementation agnostic, Ethereum’s standards (ERCs) are implementation dependent too. The existence of these standards makes it super simple to collaborate across projects, across various layers of the stack. Projects can use the contracts or programs written by other projects, and at the same time extend the contracts written by other projects to make it better and specific to their own application.
A smart contract like Compound can interact with NFTs (ERC721) issued by Foundation App to enable DeFi applications, whereas a wallet like MetaMask can rely on the same standard to make sending and receiving tokens easier.
Machines talking to machines
Rate limiting is Web2’s biggest antipattern. You’d have surely seen “Verify you’re not a robot” popups all over the internet. Ethereum’s real unleash is that computer programs should interact more and more with each other, potentially without any human intervention. Extending from the previous section on programming languages, a computer can talk to any other API without having to go through the API registration process for each. Today if your application needs to use Twitter’s APIs, you need to register on the developer dashboard and wait for the Twitter team to approve your application before you can start calling the APIs.
This means that you can call the required APIs as need be. This enables microtransactions. At run time your program can decide which API it needs to call. Imagine you’re building an application for stock prices. Each country would have an exchange. If you want APIs for each country, you need to register with the stock exchange of each country — following all their application and compliance processes. With machines talking to machines, you can call the UK stock price provider when a request for a UK stock comes in, you can hit the Nigerian stock price provider when a request for a Nigerian price comes in. All of this without having to pre-register. This will unleash a lot of small APIs to be set up, which might not have traffic at the scale of Twitter to mandate developers to go through the API access application process, but are still valuable enough that some developers use these APIs to build interesting tooling by integrating with them only when the need arises.
You have a copy of the Database always, so it is impossible to block read queries. The writes are also unblockable if the rules defined in the schema are met.
This means that the APIs will never shut down. Twitter and Facebook have famously shutdown their APIs killing multi million dollar companies. This can’t happen on Ethereum. That means hundreds of applications can be built with confidence, attracting more developers to build more applications, making the ecosystem even richer. Because, after all, more applications means more data written to the database, more code that can be extended and more apis that are exposed. This is a wild fire waiting to be unleashed.
Pay to update database
For the first time ever, it is possible to calculate the cost of making an update to the database deterministically. For the first time there is a competition to bring the price down.
Wikipedia has to run a fundraiser every year to fund it’s opensourced encyclopedia. So many companies depend on Wikipedia’s existence and data availability, notably the search engines. What if Wikipedia never needs to pay? Anyone who is updating the database as per the predefined rules, pays. This amount is well known upfront.
This means that anybody can run an API endpoint to the database, without ever having to run into losses. This means there will be people who will always be competing to make their API calls cheaper giving more incentive for developers to develop on top.
This is first time that the person defining the data schema, the person defining the api endpoints, the person running the API server, and the person developing the application can all be different people. The collaboration and financial incentives are perfectly aligned. This enables an across-the-stack-collaboration.
The cryptocurrencies are a side effect.