Launched early last year, Coinbase Commerce is an app for online vendors wanting to accept payments in crypto and integrate these purchases into existing business cash flows.
As reported by CoinDesk in May, over $50 million in transactions have been processed through Coinbase Commerce by 2,000 merchant clients, including e-commerce giant Shopify.
Recently, the application added support for ethereum-based stablecoin USDC. On Wednesday, Coinbase Commerce software engineer Bojan Joveski released a blog post discussing the new ethereum feature that makes USDC payments possible.
“CREATE2 is very recent addition to the ethereum ecosystem and it’s very important because it enables workflows that were impossible or at least very impractical before,” said Joveski. “Now, developers can simulate interactions with the blockchain without deploying their [smart] contracts on there.”
“This is very neat because it enables huge savings for cost.”
CREATE2 was activated on the ethereum blockchain in February as part of a larger systemwide upgrade known as Constantinople.
According to Joveski, the implications of his report suggest a cost-effective and secure way for Coinbase Commerce to support virtually any ethereum-based ERC-20 token, not just USDC. What’s more, it’s not only payments on the ethereum blockchain that Joveski suspects can benefit from the CREATE2 feature.
“The same structure of how we architected these smart contracts can be used for a number of uses cases that go beyond payments,” said Joveski. “Any interaction where some service provider needs to eagerly offer some items for sale or tokens related to gaming they can re-apply the same principles we’ve used here.”
How CREATE2 works
Originally proposed by the founder of ethereum, Vitalik Buterin, Ethereum Improvement Proposal 1014, or “CREATE2,” adds a new operation code enabling developers to deploy a smart contract on ethereum in the future tense.
Rather than committing every interaction to a smart contract on the blockchain, CREATE2 allows for what Hubert Ritzdorf, CTO of smart-contract audit firm Chain Security, calls “deterministic deployment.”
“When you deploy a new smart contract on ethereum, what happens is that [the network] computes the address to where the contract will be deployed. You know this ahead of time but it depends on a lot of variables,” Ritzdorf told CoinDesk in February. “CREATE2 makes it easier to say, ‘We will deploy in the future a contract to this particular address.’”
As such, on Coinbase Commerce, smart contracts facilitating the payment and receipt of USDC tokens only have to interact and pay fees to the ethereum blockchain for final settlement. Initial smart-contract interactions such as address confirmations happen off-chain thanks to CREATE2, according to Joveski.
“Without CREATE2 … we would need to deploy to the blockchain in order to show you the address you can pay to,” said Joveski, adding:
“[With CREATE2] I can show you an address that doesn’t exist on the blockchain but that you can pay to.”
This not only saves Coinbase Commerce on gas costs but also, as Joveski highlights, discourages the initiation of fake payments since these are only committed to the blockchain upon final settlement.
For now, initiating payments of USDC on Coinbase Commerce is free for all customers. This may change into a paid feature, according to a Coinbase representative, once smart-contract-based payments on the application are sufficiently streamlined.
This being the first design and deployment by Coinbase of a commercial payments system on ethereum, Joveski said:
“What is novel about this is that the ethereum ecosystem is releasing all these new features. This is essentially one of the first tries to use those features and build a secure [payments] system on the platform.”
Brian Armstrong image via CoinDesk archives