Skip to main content

ZK Rollup on Polkadot/Substrate

  • Proposer: NoCtrlZ, akru, and SotaWatanabe
  • Payment Address: 1DJTSPajRFCjdfn5UgPXGRo6Di8EE1Dzox

Project Overview 📄​

We have been working on off-chain scalability solutions aka layer2 solutions. After tremendous research, we have come to believe that ZK Rollup would be the killer layer2 solution because of its data availability. Currently, rollup is one of the potentially interesing topics of Web3 Foundation and Vitalik announced the rollup centric Ethreum roadmap last month. According to Vitalik, the Ethereum ecosystem is likely to be all-in on rollup (plus some plasma and channels) as a scaling strategy for the near and mid-term future. We know that Polkdot has a different technical architecture and tech stack but Rollup is still important because of severtal reasons.

  1. Bringing vertical off-chain scalability without sacrificing on-chain data availability, security and privacy (×3-10 scalability).
  2. Handling smart contracts on layer2.
  3. Sharding plus Rollups will be the future. Polkadot has the sharding ish architecture but it doesn't have Rollups yet.
  4. Currenntly, a lot of Ethereum projects are interested in migrating from Ethreum to Polkadot. And some of the great Ethereum projects have already started using Rollups. If we could build Rollups on Substeate/Polkadot, we would help these projects migrate smoothly.

Through this grant, we will make a ZK Rollup pallet for Parachain builders to get zero-knowledge vertical scalability.

Overview​

Throught this grant, we are going to make a ZK Rollup pallet for potential Parachains like Plasm. Our initial goal is to implement ZK Rollup on Plasm but we aim to make it public and adoptable for all Substrate based chains.

The following diagram is the architecture we will implement.

Screen Shot 2020-11-10 at 23 03 01

There are four components we implement as a substrate pallet and these components allow substrate-based chain to do following things.

  • Prover: Create proof which verifies the block validity.
  • Operator: Collect transactions, create a block and submit the block to mainchain contract.
  • User Wallet: Send transaction to operator and deposit token on the mainchain contract.
  • Mainchain Contract: Hold user's desposit, verify block and update state.

Ecosystem Fit​

According to Web3 Foundation, there are at least 2 different teams that work on ZK technologies.

In our understanding, Glacier is building a Distaff VM for zk-STARK proof generation and verification that are used to make private smart contracts and private credential verifications. The difference between us is that we are making a ZK Rollup pallet and they are making a VM which supports STARKs. In terms of Zeropool, we couldn't find their info on Web3 Foundation's github.

Team 👥​

Team members​

  • Shinsaku Ashizawa
  • Alexsandr Krrupenkin
  • Sota Watanabe

Team Website​

  • Incorporated in Japan
  • Address: 1-30-3 Minamiaoyama Minato-ku Tokyo Japan

Team's experience​

We have been making Plasm Network, a scalable multi-virtual machines smart contract platform on Polkadot supporting cutting edge layer2 solutions. Curretly, another team at Stake techologies is working on the Optimistic Virtual Machine, an unification for all layer2 solutions and a subset of Optimistic Rollup. We have already delivered 4 milestones out of 6. In addition to that, we have already delivered several grants such as Plasma, ECDSA, and ink! playground.

We are also participating in Substrate Builders Program and Substrate Delivery Partners and we have done some PoCs with clients.

Team Code Repos​

Team LinkedIn Profiles​

Development Roadmap 🔩​

Summary​

We plan to provide a ZK Rollup pallet that allows Substrate-based blockchain to execute ZK Rollup on its evm environment.

Overview​

  • Total Estimated Duration: 3 months
  • Full-time equivalent (FTE): 1 FTE
  • Total Costs: 0.2 (rate: 23 Nov, 10:27am UTC)

Milestone 1​

Prepare ZK Rollup Contracts On Substrate​

  • Estimated Duration: 0.75 months
  • FTE: 1
  • Costs: 0.20 BTC

Our first step is to deploy matter-labs solidity contracts and test overall on substrate-based chain.

NumberDeliverableSpecification
1.Deploy ZK Rollup Contract To SubstrateDeploy matter-labs solidity contracts on substrate evm
2.Integration Test On SubstrateTest for all contracts and sidechain network actors
3.DocumentationDocument which describes how to test ZK Rollup on substrate

Gantt Chart​

There are three parts in the following gantt chart and it describes how long it takes to get things done for each milestone. First of all we implement ZK Rollup contracts and sidechain components on ropsten network to check whether it works correctly. And second, we implement sidechain components pallet that allow us to build ZK Rollup on substrate-based chain. At last, we prepare Dockerfile and tutorial that allow developer to user this pallet and build their own ZK Rollup.

gantt_chart

Detail​

The following list describes our detail for each components.

detail_tasks

Additional Information ➕​