Blast Proof of Quality
Even though the term Web3 is still relatively ambiguous, as a concept, it is meant to bring us the best of both Web1 and Web2 by decentralizing all the perks and benefits that Web2 brought to the market when it took over from Web1.
By leveraging blockchain technology and smart contracts, Web3 is supposed to give people full control of their data, and single points of authority would be eliminated.
More and more blockchain networks have emerged in the last few years. Whether they are Layer 1 or Layer 2, some of them trying to solve specific problems, others to increase performance and transaction speed or make the development of decentralized applications easier, there is still one important issue remaining, largely without a viable solution. The issue of decentralized blockchain access, within the levels of performance and reliability required to finally expand Web3 adoption beyond the trading community and into everyday use.
The Current Blockchain Infrastructure Context
In the current Web3 environment, one thing seems certain: developers don’t want to manage their own infrastructure. And why should they? It requires a tremendous amount of effort and know-how while creating a lot of responsibility. And let’s face it, it’s not the most entertaining effort for developers who, in most cases, are only interested in writing their awesome code without having to worry about the infrastructure it runs on.
Infura, followed by Alchemy and Quicknode — the traditional API providers — were the first to see the opportunity and came up with a solution for this problem. These companies host the blockchain infrastructure (blockchain nodes) needed for dApp development and provide developers with access to the blockchain in exchange for monthly subscriptions based on their level of usage. But even though they solved an urgent need at the time, they also introduced a new issue that stands to threaten the very ambitions of Web3: centralization. A decentralized application that runs on a centralized API provider is sort of nonsense, isn’t it?
This issue was soon spotted in the industry, and in 2020 the first solution to the problem of centralization was brought to the market by another project called Pokt Network. Their idea was to create a decentralized network of Pokt nodes that receive requests from decentralized applications and route them to other blockchain nodes or available public APIs. Their model is as decentralized as it can get, but it still poses a real problem: performance. It is very hard for such a model to guarantee the high level of performance that a Web3 application or platform might need in order to serve its customers efficiently.
Even though companies and developers that build dApps wish to move to a fully decentralized model, the lack of API performance might push them back to the centralized providers who are able to guarantee SLAs and provide clients with custom subscription plans based on their requirements.
Other projects have recently appeared that propose pseudo-decentralized solutions, which are nothing more than adding a load-balancing mechanism in front of a pool of blockchain nodes. Even though they created staking mechanisms for the incentivization of the nodes serving the user requests, they can hardly be considered to provide real solutions to the existing Blockchain API infrastructure challenges.
Blast Proof of Quality
So, how do we solve the problem of having both the level of performance offered by centralized providers and the whole range of benefits that come with decentralization? Well, in our opinion, this is also the main problem that Web3 itself will have to figure out eventually. When it comes strictly to Blockchain API infrastructure, we at Bware Labs believe we have found a way to bring together decentralized infrastructure and fast API performance into a concept we call Proof of Quality.
By Proof of Quality, we mean allowing node owners to join the Blast Protocol as Node Providers. This would be done in a permissionless way, provided their nodes are able to match the platform’s performance and data integrity requirements.
All nodes serving user requests are rewarded with our native BWR token under the condition they can sustain the level of quality required and enforced by our Integrity Protocol.
The process is simple. All Node Providers have to do is register their node endpoints in one of the available slots within our platform for each of the supported networks. If they pass the quality checks, they become active participants and are allowed to create Staking Pools, where they will be required to stake BWR tokens and start receiving rewards in the form of an APY. They can even accept delegations in order to increase their profitability.
After registration, all nodes are continuously verified against the preset performance indicators. If they fail any of the quality checks, the specific nodes will be jailed. Continuous failure to pass the verifications ultimately leads to node deactivation and the loss of the occupied slot within the platform.
The idea is pretty simple, right? Everyone can register without any interference from the Bware team, their participation being solely conditioned by their own level of performance. This way, all the participants within the platform — clients as well as providers — are able to get the best value for their money or work.
The API consumers are able to get the best quality API services on the market without making any trade-offs in terms of centralization, while Node Providers are able to leverage their technical skills and be rewarded through a fair incentivization mechanism.
Blast Technical Innovations
1. The Integrity Protocol
The main technical component, or, if you want, the secret ingredient behind Blast’s Proof of Quality concept, is our Integrity Protocol.
The Blast Integrity Protocol is a distributed piece of software tasked with verifying and monitoring all the nodes within the Blast platform, scoring their performance, jailing, and even deactivating them when there’s a case for that.
Blast quality is measured in 4 dimensions, and the Integrity Protocol verifies that the participant nodes meet the requirements in each of them:
- Sync state — Sync checks are done periodically at random time intervals of under one minute. If a node fails verification, it gets flagged and is verified again at 15 seconds intervals. After 3 failed verifications, it gets jailed.
- Data integrity — One of the most important quality functions of the Integrity Protocol is making sure that there are no malicious nodes serving requests inside the platform. Even though the randomized selection of nodes that will answer a particular request would make it really difficult for a malicious node to do any actual harm, our Integrity Protocol is also doing data integrity verifications and jails all non-compliant nodes instantly.
- Latency — Response time is a vital characteristic of an API provider platform. It allows decentralized applications and developers to maintain a high-level of service for their users and can, at some level, even drive Web3 adoption overall. The way Blast achieves the best-in-industry performance in terms of latency is via a distributed architecture — a custom proxy implementation that efficiently routes requests to the closest and most performant nodes available, as well as by continuously monitoring the participant nodes’ performance against the SLA thresholds established by the platform.
- Up-time — Blast’s up-time relies mostly on infrastructure decentralization and a multi-region architecture approach. But even so, all the participating nodes will have to keep a certain up-time in order to earn their rewards efficiently. Our Integrity Protocol is also in charge of this. A node that fails to meet the up-time requirements will also be jailed.
2. The Blast Proxy
The Bware team investigated all the technical solutions available on the market in order to improve the product’s offering and achieve the current state as the fastest and most reliable API platform out there. The decision was made that, for the particular case of blockchain infrastructure, we need to develop our own proxy solution.
The Blast proxy is a piece of software written in C++ that allows us to efficiently handle user requests and decide, in real-time, the most efficient path for a request so that it can get the fastest response possible.
It is able to distinguish between heavy requests such as the ones containing eth_getLogs methods and lightweight requests. It can also route them accordingly, depending on the load on each node, so that the minimum response time is guaranteed.
The proxy is also able to classify and manage the nodes based on their performance and location so that request routing is optimized to the highest possible degree, leading to the current levels of performance in Blast.
3. The Node Scoring Algorithm
Each node participating in Blast will have a score attached based on its overall performance. The score will be taken into consideration in the overall reward distribution.
The algorithm developed by the Bware team takes into account various performance indicators from sync status to latency and uptime. By applying a mathematical model, a performance score is obtained. The score is then passed to the staking smart contract and used when calculating token rewards.
The most difficult challenge when calculating the node score is actually not the algorithm itself but rather the node monitoring process as well as making sure that the performance is measured in a fair and reliable way. For this purpose, we were able to leverage our custom proxy and integrity protocol services by adding functionalities that allow us to monitor performance in real-time and make sure that the participating nodes are treated fairly but, and at the same time, that immediate actions are taken so that a misbehaving node will not impact the overall service in any way.
4. Performance Testing Using Blocust
Claiming the title of the fastest platform on the market is pretty presumptuous and bold in certain circumstances, so the Bware technical team wanted to be able to have all the necessary proof behind this claim. With this idea in mind, Blocust was born.
Blocust (Blast Locust) is an automated performance testing system based on Locust. It allows our engineers to seamlessly spin up servers across the world and send dynamic, customizable requests, with dynamic payloads emulating real production traffic, to one or multiple endpoints, testing their performance.
Blocust allows us to specify the region from where we want the traffic to be generated, the load, and the number of users. Hence, we can use it to test our platform against all competitors and upgrade or scale our architecture in a way in which we always stay above all our competitors in terms of performance.
Web3 and the future
Web3 is still in its beginning stages, struggling to define itself through all the noise created by the mirage of quick riches, FOMOs, meme coins, and other aspects that make crypto into the crazy and dynamic space that it is today.
On one hand, Web3 benefited from all this noise by being able to attract the necessary funds and liquidity required for the technology to evolve so quickly. On the other hand, all this hype has led to growth that is not necessarily sustainable and to trade-offs that the Web3 space should not be making if it is to achieve its ambitions of reaching general population adoption.
The Web3 API infrastructure challenges will not be solved by simply throwing money around and offering free services just to get enough adoption, nor will it be solved by investing huge amounts of money in infrastructure all over the world, but rather by focusing on real innovation and upgraded technical solutions.
In order for the space to evolve in a scalable and sustainable manner, permissionless and decentralized blockchain access should be paid much closer attention. It represents a hard problem and by not tackling it early on, we risk falling into the trap of losing the value that blockchain technology can bring to the entire society!