Yet for technical reasons, Ethereum is often viewed as a more attractive platform for developers. This is because it offers much more flexibility in the kinds of applications and smart contracts that can be built right now. There are many platforms that have focused on advanced smart contracting capabilities over the years, but Ethereum is clearly the leader in this particular field.
While these technical developments are taking place on Ethereum, Bitcoin is emerging as a store of value. Attempts have been made to bridge the gap via projects like the RSK sidechain and the TBTC ERC-20 token on Ethereum.
But another option is for Bitcoin itself to upgrade its own scripting capabilities. That’s where Simplicity comes into play.
What is Simplicity?
Simplicity is a new programming language for Bitcoin that allows for much greater flexibility in constructing smart contracts than what is possible on the Bitcoin network today. The low-level language was created by Blockstream Infrastructure Tech Developer Russell O’Connor.
“It is a next-generation script language for Bitcoin and Bitcoin-like networks, which includes the Elements and Liquid [sidechains],” explained Blockstream CEO Adam Back in a recent webinar on the topic.
Bitcoin creator Satoshi Nakamoto limited Bitcoin Script in the early days of the project for security reasons, and Simplicity can be seen as an attempt to offer much more flexibility in Bitcoin Script while also retaining an adherence to security and, as the name suggests, simplicity.
While not Turing complete, Simplicity offers enough expressiveness for developers who want to build many of the same kinds of applications that are built on Ethereum today.
Additionally, Simplicity is intended to make it easier for developers and users to verify the safety, security, and costs of deployed smart contracts.
“We do want to be able to, for security reasons, analyze programs before we run them,” explained David Harding, a technical writer who focuses on open-source software documentation, in an episode of Noded Bitcoin Podcast. “In Bitcoin, we don’t allow Turing completeness, so that we can statically analyze programs. Simplicity would not allow Turing completeness, so that you could statically analyze programs.”
Notably, the aforementioned TBTC was quickly shut down by its creators during its recent launch on the Ethereum mainnet due to the discovery of a bug in the smart contract powering the ERC-20 token. There have been a number of serious security issues with Ethereum-based smart contracts over the years, such as the Parity multisig bug and the infamous hack of The DAO.
What Would Simplicity Mean for Bitcoin?
To gain some insight into what Simplicity would mean for Bitcoin in real terms. LongHash reached out to Paradigm Research Partner Dan Robinson, who has worked with both Simplicity and Ethereum.
“Simplicity would be a far more extensive update to Bitcoin Script’s capabilities than every Bitcoin Script upgrade in Bitcoin’s history combined,” said Robinson. “As a ‘functionally complete’ instruction set, it would basically obviate the need for future capability upgrades to Bitcoin Script (although some upgrades may still be needed to make certain functions more efficient).”
One way of looking at this is through the lens of soft forks. In the past, upgrades to Bitcoin Script were implemented via soft forks, which necessitate community consensus as a prerequisite before activation on the network. If Simplicity were enabled, anyone would effectively be able to implement these sorts of usually soft-forking changes via Simplicity without the need for nodes on the network to update Bitcoin’s consensus rules.
This has two key side effects: Bitcoin development can take place at a much faster pace than previously possible and it would be helpful in terms of the potential ossification of the Bitcoin protocol. Eventual protocol ossification in Bitcoin is desirable because it effectively means the base network rules, such as the monetary policy, will never be changed, closing a potential social attack vector on what makes Bitcoin valuable in the first place.
“Interesting implication: If Bitcoin had Simplicity scripts today, it [would become] self-extensible,” wrote Adam Back on Reddit. “Schnorr/Taproot [and] SIGHASH_NOINPUT would be implementable [directly].”
Here, Back is using proposed soft-forking changes in Bitcoin as examples of the types of additions that can be made to Bitcoin without changing the consensus rules if Simplicity were available in Bitcoin. When reached for comment directly, Back clarified, “I believe technically Taproot is not implementable with Simplicity from what Pieter [Wuille] was saying—though Schnorr is.”
From Robinson’s perspective, the first thing that would happen if Simplicity is added to Bitcoin would be improvements to things that developers are already working on in Bitcoin today, such as improved payment channel designs (like Eltoo), vaults, new signature algorithms, and perhaps some privacy enhancements.
“One major development I might expect to see eventually would be a token standard (similar to Ethereum’s ERC-20), which could enable a new class of applications like stablecoins, decentralized exchange, and leveraged trading,” added Robinson.
Differences Between Ethereum and Bitcoin with Simplicity
An obvious conclusion one might draw from the inclusion of Simplicity on Bitcoin’s mainnet is that there wouldn’t be much of a reason to continue using Ethereum. In a world where Bitcoin has Simplicity, however, there would still be a few key differences between these two platforms.
“I am interested in Simplicity not because it could make Bitcoin more like Ethereum, but because I think it could make Bitcoin better at being Bitcoin,” said Robinson.
Despite the inclusion of Simplicity, Bitcoin would still operate under a model based on unspent transaction outputs (UTXOs), as opposed to Ethereum’s account-based setup.
“The UTXO model is fantastic for validator efficiency, but one tradeoff is that it makes it difficult to build applications where multiple people might want to interact with a contract,” explained Robinson.
Additionally, Ethereum has already made a lot of progress in terms of developing network effects around its platform—at least in terms of smart contracts.
“The tooling and developer ecosystem [in Simplicity] would likely take a long time to catch up,” said Robinson. “Simplicity is not meant to be a human-readable language, so someone would probably need to develop a language that compiles to it before ordinary developers could use it. And there will be a lot of research needed to develop smart contract design patterns that are compatible with the UTXO model.”
The network effects built around Ethereum from a development perspective are why RSK, which is an Ethereum-esque Bitcoin sidechain, decided to make its platform compatible with the Ethereum Virtual Machine.
At the end of the day, it’s also unclear if Bitcoin users even want the sorts of cryptocurrency applications that have been seen on Ethereum.
“Bitcoin’s block space comes at a higher premium than Ethereum’s, and its 10-minute block time would probably rule out some applications,” said Robinson. “Relatedly, it seems unclear whether the Bitcoin community actually wants applications to be built on Bitcoin (other than simple BTC-related ones like payment channels and vaults), since they might congest the chain, or even increase the profitability of a 51% attack by introducing new kinds of miner-extractable value.”
To Robinson’s point, many Bitcoin users have been critical of Ethereum from its early stages due to the existence of the oracle problem, which has come into greater focus throughout the development of various decentralized finance (DeFi) applications.
When will Simplicity arrive?
It should be noted that we’re likely still years away from Simplicity being added to Bitcoin’s mainnet. However, the scripting language is expected to be added to the Liquid sidechain later this year.
While this will be a major first step in the usability of Simplicity with real-world value at stake, some developers, such as the ones working on Bitcoin privacy wallets, have been turned off by the federated model of the Liquid sidechain.
“I don’t think the federated nature of Liquid should be considered a dealbreaker at all,” said Robinson when asked about this point. “But I think it may make it tougher to reach a critical mass of developers or users.”
According to longtime Bitcoin Core contributor and Blockstream co-founder Greg Maxwell (aka nullc on Reddit), Simplicity could be added to Bitcoin by way of a soft fork, thanks to the script versioning system that was introduced via the Segregated Witness (SegWit) upgrade. Of course, this assumes community consensus could be built around the change to Bitcoin’s consensus rules.
“I'm not exactly sure how it would be deployed as a soft fork, but it won't replace anything on mainnet (nor on Liquid),” the pseudonymous Grubles, who works at Blockstream, told LongHash. “It will just be an additional address type you could use along with the existing types (legacy, p2sh, bech32, etc).”
Grubles added that, in his view, Ethereum has done a lot of damage to the “smart contract” term with all of the various broken smart contracts that have been deployed on the platform over the years. For this reason, they think Bitcoin users who have been paying attention to Ethereum may not be excited to see smart contracts become more flexible on Liquid.
“I think it will be an interesting discussion but a few years out,” added Back. “There are precedents for proving things out first in sidechains.”