Rationale
Love it or hate it, Ethereum indisputably remains the digital assets hub where most of the DeFi activity takes place. Despite the strong decentralization ethos that characterizes the platform, Ethereum lacks a properly decentralized algorithmic stablecoin that’s proven to work at scale and is instead mostly relying on centralized solutions. For this reason, Ethereum protocols and its user base could represent a huge source of demand for Terra stablecoins. Furthermore, once Terra stablecoins are on Ethereum it becomes much easier for them to get on secondary venues such as layer-2s.
You can already find wrapped UST on Ethereum, but it’s controlled by a centralized custodian and hence makes the entire decentralization aspect vain.
Instead, we want for the trust assumptions of using UST on Ethereum to be the same as when on Terra; i.e. the bridge should be entirely controlled by Terra validators. This requires the implementation of a native Terra↔︎Ethereum bridge at the node’s software level.
To clarify, this doesn’t take away from Terra’s own protocols such as Anchor and Mirror. It makes perfect sense to have core DeFi protocols within Terra itself, but what we really care about is demand for stablecoins and that can come from any platform. In fact we’ll be implementing IBC to bridge to other chains that are compatible with the standard, but this solution can’t be applied to Ethereum for obvious reasons.
Implementation
On a high level, there would be a contract on Ethereum controlled by a multisig that can mint and burn ERC20s that represent Terra’s stablecoins. The multisig is made up of the current Terra validator set and it’s weighted according to their stake.
Bridging UST on Ethereum would be as straightforward as making an ad-hoc transaction on Terra specifying the Ethereum destination address, the amount of UST that one wants to bridge and the allocated fee paid to process the transfer (as it requires gas for making the contract call on Ethereum). The transaction is then processed and if valid the UST is withheld on Terra side and an Ethereum tx is signed by Terra validators instructing the bridge contract to mint UST and allocate it to the specified address. For the other direction of the bridge, the user calls a function on the bridge contract while depositing UST which is burned on Ethereum and then released back on Terra to the communicated address.
I used UST as example but the process would be the same with any other Terra stablecoin, of course.
While all of this would be rather complex to build from scratch, luckily there already are working implementations of bridges between Ethereum and CosmosSDK-based chains, such as the Gravity bridge. One would only have to start from those and do the necessary tweaking to get the desired result.
Summary
Ethereum lacks a properly decentralized and capital efficient stablecoin and UST would offer just that. Given the massive Ethereum userbase and money flow, the bridge could represent a black hole of demand for Terra stablecoins. In order for it to make sense, the bridge should have the same securities guarantees as the platform that issues the stablecoins, and this requires implementing the bridge at the VM level.
Implementing a native bridge isn’t trivial but there already are working designs of bridges between Ethereum and Cosmos zones that can be forked and used as starting point.