Bridging the Gap: Tanssi Makes Appchains as Developer-Friendly as Smart Contracts
Following an extensive exploration of Substrate's unique capabilities in the previous blog post, "Why Building Appchains in a Substrate Environment is Your Best Choice," it becomes clear why the future belongs to dApps developed on this framework. Substrate provides unparallel control and unique features that are unrivaled in the industry, with Polkadot providing very interesting examples of appchains built on this framework.
However, deploying appchains isn’t an easy task. The process requires dealing with bootstrapping security, infrastructure management, and maintenance, bridging integrations, developer tooling, and many other features that require a deep understanding of this complex landscape.
In contrast, deploying an EVM smart contract can be as simple as typing “npx hardhat deploy” in a terminal. Sure, some configuration work is necessary, but even consulting with ChatGPT can offer essential guidance. With Tanssi, the extra complexity associated with deploying appchains will soon be a thing of the past.
While the primary responsibility for the core application logic lies with the developer, everything else is often regarded as, at best, a necessary evil. Deploying appchains includes many of these additional steps, and Tanssi’s goal is to simplify nearly all of them as much as possible.
But, once this gap is bridged, there are numerous benefits to be reaped from switching from smart contracts to deploying an appchain with Tanssi. Let’s dive deep into a few of them!
Effortless, Hassle-Free Upgradeability
For a developer working with EVM smart contracts, a tough choice awaits:
Make your contracts immutable, implying that everything must be impeccable the first time around (spoiler alert: it's unlikely to be), or
Use an upgradability pattern, allowing for the correction of minor (or significant) errors post-production deployment.
This is, ironically, a conundrum of “security vs. security.” Immutable contracts are great, but very few developers have been able to deploy perfect code immediately, and it’s very difficult to manage critical errors in this code. Some protocols are forced to “self-hack” if they find bugs, which is a highly disruptive procedure, and it usually shakes a bit of confidence in the protocol.
On the flip side, the issue with upgrading EVM smart contracts is their inherent design for immutability. Upgradability systems are external to the chain and the contracts and often feel hacky. Plus, they introduce a huge amount of potential errors — admin key management being the most dangerous.
Every type of upgradability implementation carries risks and drawbacks. Proxies utilizing delegate_call can be hacked if implemented incorrectly, and they’re difficult to work with. Manual migration contracts are one typo away from irretrievably breaking everything, while just telling users to move to the new version is likely to get quite a few of them lost on the way.
In contrast, with Substrate, Runtime upgradability is easy to implement, and it’s quite sturdy, as the framework has been developed with mutability in mind. For example, Polkadot has been updated approximately once a month for over two years without ever disrupting activity. This is the equivalent of running one Shanghai-level hard fork every month, which is a massive coordination undertaking for Ethereum. With Substrate, it’s routine.
With Polkadot.js' intuitive Graphical User Interface (GUI), upgrading a Runtime on Substrate is a breeze. Simply follow these four straightforward steps:
By uploading the new Runtime code as a Wasm blob and migrating the storage to meet your application's needs, the transition process is seamless. It merely entails proposing and enacting a governance decision to transition to the new Runtime after block X. Thanks to Polkadot.js, managing your Runtime upgrades is streamlined and straightforward.
With Tanssi, Polkadot.js is supported automatically by your ContainerChain. This is the most popular dev tool for Polkadot. While it’s been offered as a MetaMask-like wallet for Polkadot, the truth is that it has way too many features for the average user.
But when viewed as a GUI-based admin tool, Polkadot.js shines bright, providing significant assistance when working on a ContainerChain.
Tanssi Gives Developers Independent Block Space — But Still Connected and Composable
Tanssi streamlines the appchain deployment process with its innovative infrastructure protocol, offering a suite of essential tools and services. Developers can focus more on building their runtime logic and less on managing the intricacies of the appchain infrastructure.
This is made possible by Tanssi's ContainerChains. When an appchain connects to Tanssi, it becomes a ContainerChain, allowing it to access many infrastructure management services. These include block production, data availability, cross-chain messaging, and bridges to external networks, to name a few. Tanssi also provides developers with essential management tools, templates, and key integrations like wallets, indexers, RPC endpoints, block explorers, and oracles.
Each appchain offers at least roughly one Ethereum's worth of throughput. While this may not sound impressive at first, remember that you will be the only user of this block space. Each appchain has its own allocated space, reducing congestion and increasing efficiency. Moreover, further improvements done at a protocol level will increase throughput by a factor of 4x.
As the sole user of your appchain, the costs remain minimal. Substrate's flexible design even allows for the creation of custom gas rules, offering the possibility to bypass fees altogether or set them as a percentage of the transaction's worth.
An independent chain isn’t very useful on its own — it must also effectively communicate with the broader blockchain ecosystem. This requires liquidity, infrastructure, and the ability for cross-chain composability. With Substrate's XCM framework, ContainerChains can trustlessly exchange arbitrary messages with other appchains, opening avenues to global liquidity from Moonbeam, DOT, and other native tokens from Statemint or even automation with projects like the OAK Network.
Moreover, with services like Moonbeam's Routed Liquidity, ContainerChains can seamlessly interact not just with other Polkadot appchains but with virtually any blockchain in the wider ecosystem. This significantly enhances its versatility and reach, extending its influence far beyond the bounds of its own blockchain.
Looking ahead, Tanssi is set to launch a generalized bridging interface. This feature will provide simplified bindings to streamline interaction with XCM. Coupled with integrations with generalized bridges, ContainerChains will have the capacity to connect directly with Ethereum's mainnet and other major networks.
Ready-Made Decentralization with Tanssi Governance Modules
Tanssi makes several modules available that can help developers easily implement this custom governance logic. Substrate’s native pallets combined with Tanssi’s bindings make implementing governance a breeze.
This governance functionality can be used to easily validate Runtime upgrades with the community, disburse treasury grants and select delegates and community stewards for strategic guidance. Compared to doing this in an EVM environment, everything is already available out of the box and can be meaningfully decentralized.
Many projects in DeFi, for instance, use a form of loose governance based on a Multisig protocol controller and non-binding votes on Snapshot. Although protocols like Compound do feature direct governance changes through proposals that execute pre-defined code, this is an incredibly complex task that can go wrong in many ways (including secretly malicious proposals like with Tornado Cash).
With Tanssi, governance is clean and decentralized from the start, which makes for smooth iterations and growth.
There is also a unique benefit to governance in Substrate: its significant amount of power over the chain’s state. This can be a huge boon for security, and it has already been successfully used to thwart hacks.
The reason why hacks are so impactful in crypto is not because the developers are worse than average, or that developing with blockchains is so much harder. Indeed it’s quite rare for successful hacks to be caused by obscure VM interactions — the vulnerabilities can be remarkably simple.
It’s just that writing secure software is insanely difficult, and Web3 developers are penalized because the consequences of making mistakes are huge. The funds, once stolen, are nearly impossible to trace, block or return.
Despite the potential for attacks and hacks in the world of blockchains, the flexible of governance on Substrate-based chains can play a significant role in safeguarding the system. For instance, swift governance action on Kusama successfully averted a potential multi-million dollar hack. Tanssi, building upon this foundational strength, provides additional layers of safeguards compared to traditional smart contracts.
It's crucial to note, however, that governance isn't a silver bullet and doesn't eliminate the need for robust security practices. Savvy attackers can still launch sophisticated attacks, sometimes even in a single block. Yet, the combination of Tanssi's architecture, responsive governance, and the independence of appchains creates a strong defense line. As these projects mature, they may gradually decentralize more aspects, fostering an environment of both security and decentralization.
Tanssi Offers All The Benefits of Appchains, and None of the Deployment Complexity
The discussion so far has highlighted reasons developers may want to switch to deploying their own appchains with Tanssi. Appchains, when compared to smart contracts, offer greater customizability, increased security, simpler upgrades, and lower costs.
Many of these benefits for Tanssi are inherited from the underlying Substrate framework, which is easily a generation ahead of everything else out there. It’s battle-tested, flexible and incredibly powerful.
But while appchains are amazing, and are unquestionably the future of the blockchain ecosystem, they are much, much more complex to launch than smart contract dApps.
As we’ve mentioned, deploying a smart contract app can be as easy as spending 5 minutes in a terminal. But the traditional deployment of an appchain will include many more infrastructure efforts, such as:
Recruiting validators (or collators) to produce blocks for your chain. This is a major coordination challenge that also requires a significant amount of money.
In the case of Polkadot, joining the parachain auction and campaigning for the community’s attention.
Enlisting bridge support and connecting your chain to the major liquidity arteries
Ensuring block explorer support so that users can see what’s happening.
Securing indexers and RPC providers to support efficient frontend operations
Thankfully, Tanssi streamlines nearly all of these complexities. By launching a ContainerChain, developers gain access to comprehensive infrastructure management, including bridges, validators, explorers, indexers, and more.
Even when migrating from EVM environments, Tanssi and Substrate make it very easy to set up fully compatible EVM space. This maintains many of the additional benefits of Substrate but without requiring a full rewrite of the core logic, allowing gradual iterations with forkless Runtime upgrades.
Tanssi is committed to making the appchain landscape more approachable, enabling blockchain developers to focus on code innovation, improved user experiences, community growth, and broadening their ecosystem impact. By mitigating infrastructure complexities, Tanssi equips developers with the essential tools and resources needed to bring their ambitious ideas into reality more quickly. Join the Tanssi Community as we continue advancing the future of appchains!