status

Why Open-source Matters

Published 23.1.2024

The source code of blockchain projects must be open-source. This means it is open and publicly available to all. People can see how the protocol works and make sure there are no critical bugs or even backdoors. There was (and still is) a debate in the Cardano community about whether DeFi projects should also be open-source. Let's think about it.

Transparency Is One Of The Principles Of Decentralization

Decentralization is based on the assumption that no third party retains control over the assets of users. The approach is that people should trust code, not people. Trusting people is considered a risk.

This is why Cardano is open source, all academic work from the IOG team is publicly available and nothing is patented. Anyone can use anything IOG has produced. It is possible to take the source code of the protocol and run a project that will be almost identical to Cardano.

In the Polkadot protocol, you will find a modified Ouroboros PoS. The Ethereum team is excited about the One-shot Signatures system. The IOG team used Parity's Substrate to create a partner chains framework.

Open source accelerates the development of the crypto industry, as teams can use the work of other projects.

Decentralization and the open-source nature of projects are very close to each other. Blockchain is open (everyone can use it without the permission of a third party), transparent (all transactions are traceable in the ledger), and users primarily trust the source code. It is not necessary to trust the middleman.

The team has (should have) limited control over the blockchain network, as most of those who run their full node must agree to changes in the source code.

Should teams building apps approach development the same way teams building blockchain? That is a logical expectation.

If the team retains control of the source code and does not open it to the public, it becomes an intermediary that users must trust. This can be seen as a violation of the principles of decentralization.

If the source code of the application (smart contract, script, etc.) is not published, the project is non-transparent. Users don't have a chance to trust the code, so they have to trust the team.

Critics might say this is similar to trusting a financial institution or bank. Although it is possible to trust the Cardano protocol, it is not possible to have the same control over the operation of closed-source applications.

Advantages Of Open-source Applications

A blockchain is a trust machine. The same goes for apps. Or rather, users expect it.

The goal of decentralization is peer-to-peer (P2P) interaction. It is necessary to ensure trust between participants who do not know each other and/or do not trust each other.

The Cardano protocol ensures P2P interaction through transactions. These transactions are unconditional.

As soon as a more complex, i.e. conditional interaction is required, a smart contract must be used. DEXs, lending platforms, NFT marketplaces, and other services represent a more complex interaction between users.

The heart of every DeFi application is a smart contract or multiple smart contracts that ensure interaction between users.

Smart contracts can be seen as agreements between participants on what will happen and under what conditions. In the physical world, the participants would read and sign the contract. If there was a disagreement between the participants, the legal system would ensure that everything happens as it is written in the contract.

A smart contract is therefore an agreement that both participants must agree to. But how do you want to agree to a contract that can't be read?

Instead of the participants reading the contract, they have to trust the team that the application will behave as promised.

Interaction between participants is ensured by a promise, i.e. trust in the team.

Plutus scripts usually lock assets and release them only if a defined condition is met. For example, 1000 ADA can only be released if 500 Y tokens are sent to X address.

Users have the right to know that only they can cancel the operation and that the interaction will only take place after a clearly defined condition has been met. There must be no other hidden condition that would allow an unexpected operation to be performed on the assets.

If the source code of the script is not publicly available and cannot be inspected, such a hidden condition may exist.

Transparency is a big advantage of open-source projects. Users can preview the agreement they want to commit to. If they are not technically equipped enough, other people can do it and they can point out the problems.

Even if any source code is audited, there can always be bugs and vulnerabilities hidden in it. If the code is open source, experts from all over the world can look at it and discover what the audit missed.

Open-source projects can be considered more secure.

Why Don't Teams Want To Publish The Source Code of Smart Contracts?

There can be many reasons why teams do not publish the source code of smart contracts and scripts. Sometimes only some parts of applications are published.

One of the biggest reasons is the competitive environment. Teams invest money, time, and effort into app development, and they don't want their work to be easily and freely used by someone else. This is completely logical and understandable.

Developing an application on Cardano can take teams more than a year of work involving a dozen people. They build the app with the expectation that the app will be successful and that people will pay usage fees. The initial investment will be repaid and the project will be profitable.

This expectation may not be fulfilled if a competing team takes the source code and makes an identical application that differs only in name and marketing. A competing team can invest more in marketing and paradoxically be more successful than the team that built the application.

The principles of decentralization collide with real business. The teams are in an awkward situation and have to decide which way to go.

Some users insist on open source and demand it as a necessary condition for using the application. However, some users are interested in other aspects of the application (UX, fees, etc.) and are willing to trust the team.

It is difficult to estimate which group of users is larger. In a specific case, it can be difficult for the team to estimate whether it is more advantageous to open the source code or to remain non-transparent.

Some teams may decide to open source later when the development is paid off and the number of satisfied users is large enough.

Team communication always matters whether the source code is open source or not. However, if the source code is closed and the team is behaving suspiciously, that's a red flag.

Conclusion

The success of an application is always decided by the users. They should be well-informed about what they use and what they trust. I can imagine that a well-made app with a transparent team can be commercially successful even though the source code is closed.

I believe that the crypto industry has a better chance of success if the community adheres to the principles of decentralization. In my view, open-source projects should be preferred by the community. On the other hand, each team has the right to decide under what conditions they will build on Cardano. Let users choose the level of trust.

Featured:

Related articles

Did you enjoy this article? Other great articles by the same author