Hi everyone! We're blockchain developer and auditor Alexander Mazaletsky and Metalamp product manager Nikolay Bordunenko. We based this article on speech at a meetup titled "How to make DEcisions about the architecture for your blockchain project?" (watch the recorded meeting here). We hope that after reading it, the crypto industry will become clearer and closer to the founders, making architectural decisions on Web3 projects easier.
The advent of blockchain signified the start of a decentralized era. The decentralized internet is an ideal destination for creativity and freedom. Decentralization ensures that the Internet is open and accessible to all; neither governments nor corporations can control it. Decentralized applications run on blockchain nodes and are stable and independent.
Many of the blockchain's declared values turn out to be mythical. We discuss how decentralization, security, and other processes in the crypto-projects work in practice.
Table of content:
- Smart contracts cannot be changed.
- To maintain the product, dApp does not require paid infrastructure or a team of programmers.
- Everyone can see and copy the source code.
- Blockchain technology is both anonymous and decentralized.
Code is law, and smart contracts are immutable
Some of our clients thought that once a smart contract was written and deployed to the network, the project's work was done. The product is already on the blockchain, and the code cannot be changed, so no further development is possible. Furthermore, users have trust in us and anticipate that the product will perform exactly as promised in 2018 and that nothing will change.
What's the problem with this viewpoint?
Without a doubt, immutability makes smart contracts trustworthy and resistant to fraud. However, an immutable smart contract does not allow you to correct serious errors or improve software performance. To make effective updates to smart contracts, Upgradeable technology was invented, which allows you to include the ability to change at any level at any time in the contract code. With its assistance, you can optimize smart contracts, fix bugs, and make applications more user-friendly, allowing the product to compete fully in today's market. The use of blockchain does not limit the project's flexibility, but rather alters the way it is provided. You can experiment with and customize the ability to change a few selected smart contract features. Users will be able to see which dApp functions are subject to updates once the smart contract code has been verified, and auditors will indicate this in their report.
Infrastructure is provided for free
One of the primary advantages of blockchain is its large and ready-made infrastructure. You don't need to spend money on it because blockchain allows you to write and read data from even the most basic computer because applications run on powerful nodes.
It is easy to conclude that the launch of the fattest smart contract is a one-time payment for a deployment, which can cost both $100 and $1000, but will not further require any support costs and the smart contract will work on its own.
This isn't entirely correct. Deploying a smart contract without access to the blockchain's archived data is not the largest part of expenses, but product analytics is also impossible without archived data. You must either deploy your own node or pay a provider like Infura or GetBlock to gain access to it. Infura will therefore cost $225 per month for 1,000,000 requests. And the cost of your own node in the Ethereum network will be the same as the cost of more than 12 terabyte server according to information on 2022.
Other tools will be useful to your product in addition to accessing archived data.
To index blockchain data, you must create and deploy a subgraph. For example, in The Graph Network, you must pay indexers in GRT tokens. Each 100,000 requests will cost around $50. Oracles for business are also not free: 1 request to the Сhainlink costs 0.1 LINK, which is 7 cents at the time of publication.
And all of this infrastructure necessitates the supervision of specialists. It is important to keep in mind when calculating your expenses.
Users' identities are kept private
By using a dApp, you believe you are attracting an audience that seeks anonymity and decentralization — and that you are providing these opportunities to them.
Is this correct?
Surprise! The blockchain infrastructure is not entirely decentralized, and users are not always anonymous.
Following The Merge and the transition to Proof-of-Stake, Ethereum has become more centralized than ever: more than 60% of network validators comply with US law and do not miss transactions involving money laundering and other financial crimes, according to OFAC.
Anonymity is not always valued in business. There is no analytics to help improve the user experience if there is no user data. For example, Uniswap analyzes a large amount of data to provide users with optimal exchange slippage and also collects user wallet data from external compliance sources.
One inch openly announced that they were expanding and adding new servers. They analyze hundreds of other protocols, liquidity pools, and other off-chain data sources to provide users with the lowest price slippage and best routing.
As a result, the largest DEXs use servers (read: centralization) to analyze data, and the backend to create limit orders and RFQ orders.
Open source guarantees dependability
An experienced user will understand that your product is reliable and effective if you verify contracts and write detailed documentation of how it works. And, of course, spread the word.
This is merely a fine refrain. Without a doubt, the community requires the code and white paper. But, most importantly, they require validation from reputable sources that confirms your product's safety and performance. These individuals are auditors.
The rule of good manners dictates that an audit be ordered from 2-3 offices. As a result, when planning the budget, don't forget to budget for this. Prices range from $5,000 to $10,000, depending on the auditor's workload and reputation. You give him the code and all the documentation, and you wait for several weeks for him to study the materials, make comments that you correct, and finally give you feedback on your product. And, while the audit does not guarantee complete security, your project will be perceived as a dummy without the auditors' approval.
If, after debunking the main blockchain development myths, you still don't want to get involved, that's fine. Blockchain is idealized: it is frequently overused and could be replaced by more traditional solutions.
Despite this, it's difficult to deny that web3 projects are still alive and well. They are becoming more convenient, less expensive, and safer by the day. People learn to work with this by improving development tools.
If you don't get hung up on the difficulties described above, but instead look for the strengths of these technologies, you can gain an advantage in the form of cool products in the end. And we're not just talking about crypto products here, but also traditional projects.