Trustless Token Transfers with zkSNARKs

This article was first published on Loom Network - Medium
-----

Photo by Thought Catalog on Unsplash

Loom Network was one of the first to implement Plasma Cash to secure token transfers between Ethereum and side-chains built with the Loom protocol. Unfortunately Plasma Cash required end users to do far too much work in order to prevent fraud, and the resulting user experience turned out to be too tedious to be useful in practice. In lieu of Plasma Cash we decided to build our own Transfer Gateway that relied on multiple signatories to secure funds.

Recently there’s been some interesting research on using zero knowledge proofs to secure token transfers between Ethereum and side-chains, and there’s now a practical implementation of this research in the form of zkSync from Matter Labs. This is quite an exciting development because zero knowledge proofs (specifically zkSNARKs) will allow us to upgrade our Transfer Gateway to be completely trustless, while retaining a fairly simple user experience.

We won’t go into the gnarly details of knowledge proofs in this article, but if you’d like to learn more about how they work the list of resources at Awesome Zero Knowledge Proofs is a great starting point. Let’s take a look at what a Transfer Gateway based on the ZK Rollup architecture would look like.

Depositing from Ethereum to Basechain

Deposit Flow

Similarly to the current Transfer Gateway there will be a smart contract on Ethereum mainnet that accepts deposits of ETH and ERC20 tokens from users, this contract will retain custody of the tokens while they’re in circulation on Basechain. An Oracle will forward deposit events from the smart contract on Ethereum to the ZK Rollup contract on Basechain. The ZK Rollup contract will credit the tokens to the corresponding Basechain user accounts, and will add the deposits to the next rollup block. The Prover will continuously fetch rollup ...

-----
To keep reading, please go to the original article at:
Loom Network - Medium

Comments (No)

Leave a Reply