Zeto is a new Hyperledger Lab aiming to introduce an open source solution for Ethereum confidentiality. Enterprise blockchains such as R3’s Corda and Digital Asset’s Canton were designed for privacy. By contrast, Ethereum’s roots are in the permissionless blockchain space, where transparency is a feature. Given many believe the future will shift more towards permissionless blockchains, institutions are increasingly interested in permissioned versions of Ethereum. However, they have privacy concerns.
One high profile example is Brazil’s central bank digital currency (CBDC) project, DREX, which aims to support asset tokenization. Ethereum-based Hyperledger Besu is the chosen blockchain technology. The central bank has experimented with various privacy solutions, but recently delayed the launch of DREX to provide more time for the solutions to evolve and mature.
Another example is the recent proofs of concept for Germany’s Commercial Bank Money Token (CBMT) project. Two of the three proofs of concept used Ethereum compatible blockchains. The third used Corda where the key advantage was privacy.
Hence, Zeto is another potential solution to the Ethereum privacy challenge. It was introduced by Kaleido, a Swift partner, and the developer of a Blockchain as a Service solution.
At its heart, Zeto presents a new type of token. It uses zero knowledge proofs (ZKP), a special type of cryptography that hides the content. However, ZKP is notoriously computationally intensive and slow.
Hence, it provides optional levels of privacy. The least intensive is to make the sender and receiver anonymous. A second level is to add confidentiality around the transaction value, the asset identity and metadata. The ultimate step is to add privacy around the transaction history and related tokens.
The most distinctive aspect of Zeto is the token design is different from the ERC-20 token standard and similar to Bitcoin.
UTXO: Zeto tokens are not account based
If one compares Bitcoin to Ethereum ERC-20 tokens, they have different coin designs. Bitcoin is similar to cash, where you hand over a note and get change. It uses the unspent transaction output (UTXO) model where the input is the equivalent of the note, and the output splits into two – the amount the recipient receives and the payer’s change. Like cash, if you have many transactions you end up with a lot of change.
Notably, both Corda and Canton enterprise blockchains use UTXO (or quasi-UTXO) rather than account based tokens
Ethereum ERC-20 tokens work like a bank account. There’s always a single sum as a balance.
There are pros and cons for each. Having a lot of change (UTXO) is relatively messy. However, it can be good for scalability. If I had three pieces of change worth $1000, $200 and $50 and I want to make two transactions for $100 at precisely the same time, it’s possible to execute them in parallel using two separate tokens as inputs. However, two simultaneous transactions of $600 would be problematic – I’d have to wait for change from the $1000 token.
Turning to account based tokens, if you have a single balance in an ERC-20 token, you need to perform the transactions in sequence. For zero knowledge proofs, that can be challenging. You give each transaction a set time limit, but that means you can’t perform transactions faster than that, effectively throttling the transaction rate.
However, by moving away from account balances means a lot of other typical code needs tweaking. Hence, Zeto supports transfers and other functionality, such as delivery versus payment and payment versus payment.
In another sign of the importance of Ethereum privacy solutions, this week Brazil’s Parfin announced a funding round. It provides one of the solutions, Rayls, being tested by Brazil’s central bank.