As communities get larger and want to secure their assets, roles and elections, they will need to find secure solutions. Earlier this year we wrote an article about the ways to bring about a secure smart contract ecosystem:
However, it’s also important to have a word about the immutability of smart contracts, and why it is desirable. When a smart contract factory is audited, and subsequently battle-tested, more and more people come to trust the code behind it. However, if the code can be changed, it might get changed to something that totally subverts all that trust which was earned over time, and now all the funds powered by that ecosystem can be at risk. This is exactly what happened with Tornado Cash recently:
Earlier this year, a similar issue occurred with SafeMoon’s “upgradeable” contract:
This leads us to point out another important aspect of smart contract security: immutability. The Intercoin ecosystem has been designed to avoid this kind of problem, by having immutable smart contract factories. Once a factory is deployed to the blockchain, you can trust that its code will never change. Intercoin’s ReleaseManager is used to group factories into releases, which are then finalized. Once a release is finalized, it can be audited and battle-tested by many users and communities around the world.
In the Intercoin ecosystem, the code remains the same – all smart contracts come from the same factories. What’s different is just the initial parameters when the contract is produced. From then on, parameters and state can be collectively managed according to that code and parameters, that together make up the “constitution” of the community. People’s roles can change, ownership of assets can change, but only according to the rules all community members can rely on.
Democracy is good for managing parameters (like how much UBI to give out in the community’s coin), but it can’t be used to change the underlying code of the software. Even if a community or DAO votes on a proposal, the majority of the voters might have no technical expertise or may miss something. The immutable code should accrue trust over time, but instead, if it can be switched out at any time, that trust is undermined. In another article, we will a similar issue for web-based dapps on the front end, and how the Intercoin Wallet is going to solve it.
The other thing that sets Intercoin apart is our desire to empower smaller communities to have the same software as the big boys, without having to use someone else’s platform. Some Intercoin smart contracts do allow some limited superpowers to “owners”, including being able to add “hooks” – i.e. external smart contracts that might be called and consulted in limited ways, at certain times. But even in this case, any damage is limited to a specific community, not the entire ecosystem. Intercoin communities are laboratories of democracy, and each can experiment with the governance and economics that’s best for them.