EY has released a new set of tools for privately managing transactions on the Ethereum blockchain. The project, known as Nightfall 3 (Nightfall is the EY project name for the contribution made to the public domain in April 2019), combines zero-knowledge proofs (ZK or ZKP) with a new model for handling transaction verification. The objective is both to increase efficiency and reduce transaction costs via what EY calls ‘an optimistic rollup’. The combined protocol is known as a ZK-Optimistic Rollup.
Paul Brody, EY Global Blockchain Leader commented: “Based on EY experience, ZK-Optimistic roll-ups are currently among the most effective in balancing of security incentives and mathematical efficiency for running private transactions on the public Ethereum network. As we have in the past, we are again contributing this code into the public domain to speed up enterprise adoption of this technology.”
EY’s Nightfall 3
Nightfall 3 is an application for transferring ERC20, ERC721 and ERC1155 applications under Zero Knowledge which:
- abstracts away the need to deal directly with ZKP artefacts
- provides a simple token-transfer API.
When used correctly, it will hide the recipient and the token being transferred.
Nightfall_3 operates optimistically to counter the high ‘gas costs’ of direct ZKP transactions. It can complete a ZKP transfer for approximately 10 kGas (this will reduced by a further 20%, to 8 kGas, with a forthcoming update). The key comparison is with the 700 kGas that the original Nightfall application needed. Using Nightfall 3 mean a private transfer costs less than half of a public ERCx transfer – with no loss of decentralisation.
Nightfall 3, Optimistic Rollups and developers
Nightfall 3 aggregates ZKP transactions into groups, called rollups. Known as ‘optimistic’ rollups, the system assumes transactions to be valid unless proven otherwise. This advantage is that this eliminates the process of having all participants verify all transactions.
To ensure that the final blockchain record only incorporates correctly-formed layer 2 blocks, users have an economic incentive to challenge incorrect blocks. When a challenge happens, a smart contract arbitrates the accuracy of the challenge – rewarding correct challenges (and removing the incorrect layer 2 block).
Using ZK-Optimistic Rollups, Nightfall 3 can achieve a cost of approximately 8.2 kGas per transaction, while also maintaining privacy. This is almost one-eighth of the cost to make a conventional, public ERC20 token transfer.
EY has, it says, designed Nightfall 3 to reduce the learning curve required by developers to implement privacy. It achieves this by offering developers a standardised application programming interface (API), one that appears similar to other token transfer tools.
As Dr Duncan Westland, Associate Director, Head of Global Blockchain Research and Development, Ernst & Young LLP puts it: “When developing a new ZKP protocol, developers need to be able to interact directly with low level ZKP constructs. If the user only requires private token transfers, it’s possible to have the application manage the ZKP interactions.
“In that case, provided the user is careful about how Layer 1 to Layer 2 transfers are made, a ZKP transaction can be considered a conventional token exchange, albeit with added privacy. Having an API that allows users to work that way can speed up development.”
Enterprise Times: what does this mean
The Nightfall 3 application (prototype code is available on Github) runs in Docker containers. In practical terms users will need Docker installed with at least 4 cores allocated to Docker plus the allocation of 14 GB of RAM and 4 GB of swap.
In essence Nightfall 3 offers:
- a protocol for enabling private transfer of Ethereum tokens
- improved efficiency and, EY claims, developer friendliness
- integrated rollup technologies for conducting transfers at an affordable price.
Of all of these it is probably the last which matters most, though EY making Nightfall 3 available in the public domain does simplify access. As with driving, gas costs are a constant issue.