All the functionality of Ethereum will be available on the Bitcoin blockchain, with a port of the Ethereum Virtual Machine (EVM) announced today by Counterparty.
Bitcoin’s Capabilities Extended
This will extend Bitcoin’s capabilities to include smart contracts – allowing decentralized autonomous organizations, social networks and identity systems, programmatic escrow systems, gambling and prediction markets.
An in-development port of the EVM has actually been running on Counterparty’s testnet since Ethereum’s infancy in late 2014. Full implementation on the mainnet will occur after a one-month community discussion period.
Counterparty smart contracts are executed using Ethereum’s native programming language, called Solidity.
What is Counterparty?
For the uninitiated, Counterparty is a Bitcoin blockchain-based platform that allows developers to create and use a greater variety of decentralized financial tools – such as different digital assets and tokens for selected purposes.
Its native currency, known as XCP, is stored within Bitcoin addresses and transferred via Bitcoin transactions.
Adding Ethereum’s functionality to the Bitcoin blockchain means XCP (and thus Bitcoin itself) can be used as “gas” to power smart contracts, rather than Ethereum’s native currency ether (ETH). Smart contracts can make use of Counterparty assets, XCP, or vanilla bitcoin.
While the EVM port hopefully offers greater security thanks to Bitcoin’s more extensive global network, it will be limited by that network’s 10-minute block confirmation times.
Ethereum’s native network, by contrast, confirms new blocks roughly every 17 seconds. This has led to some concerns about blockchain storage as well as mining centralization.
The Quest for Bitcoin Smart Contracts
Another company, RSK Labs, announced in March it had raised $1m USD to also bring Ethereum-style, “Turing-complete” smart contracts with a system called Rootstock. Rootstock would connect to the Bitcoin blockchain via a sidechain (a separate blockchain with a two-way peg to Bitcoin’s).
Rootstock’s contracts are intended to be compatible with Ethereum-based ones, using a new token called RTC. Putting contracts on a sidechain instead of Counterparty’s EVM could overcome the Bitcoin blockchain’s lower maximum transactions per second issue – though the Rootstock project is still in development.
Director of the Counterparty Foundation Trevor Altpeter told Bitcoin.com that Counterparty expects to see growth in the use of smart contracts in the coming years, and it does not regard the market as a zero-sum game.
Counterparty is more interested in working with Ethereum than causing hostility. We use the exact same language for our smart contracts, known as Solidity, so developers who are able to make use of Ethereum will also be able to make use of Counterparty’s EVM.
While there is an acknowledgement by the Counterparty team that some development talent has left the Bitcoin world to focus on Ethereum, Altpeter said making it it easier to use smart contracts on the Bitcoin blockchain could appeal to “Bitcoin maximalists” – those who see Bitcoin’s massive network effect as an unassailable lead in the quest to become the world’s dominant digital currency.
Counterparty Core lead developer Ruben De Vries said the mainnet implementation of EVM had already undergone a series of tests, but that the number one priority now is to eliminate any bugs from the deeper underlying code. He added:
There’s a fair chance bugs in that code could still keep the contracts functioning for 99.999% but have some edge case where a bug might pop up.
Adding the ability to transact in Counterparty-based digital assets (other than just XCP) and ETH will be the main selling point, De Vries said. To do this on the native Ethereum network would require extra smart contracts to bind the original agreements together.
The exact cost of using XCP and XCP-based tokens as gas to execute smart contracts is still being determined – as is the possibility of a safeguard mechanism to disable the mainnet temporarily should a critical bug be found. This mechanism will be disabled six months after the release of Ethereum Metropolis.
Users and developers may begin trying out contracts on the Counterparty testnet starting now, and on the mainnet implementation immediately following the one-month discussion period to determine the “gas” cost for contracts.