-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ZkWasm Rollup Grant Amendment #2077
ZkWasm Rollup Grant Amendment #2077
Conversation
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
I have read and hereby sign the Contributor License Agreement. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the amendment @ashWhiteHat. If milestones 3 & 4 are being removed completely, I believe that the Total Costs for the grant would be $20k now instead of $40k. Can you adjust this? Thanks!
Hi @keeganquigley I would appreciate it if you could confirm. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @ashWhiteHat looks good. I will mark it as ready for review and ping the rest of the committee.
Could we pend this PR? |
65dfd5b
Hi there I changed This PR is ready. I would appreciate it if you could confirm. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No worries @ashWhiteHat thanks for the explanation, much appreciated. LGTM.
Hi there
We would like to amend our grants.
The main changes are as follows.
We tried to estimate how the ZkWasm Rollup reduces gas costs by benchmarking a similar scheme ZkRollup in advance.
However, the overhead was larger than the reduced computation amount by Rollup.
Rollup
Rollup is a technology to collect a bunch of transactions on an off-chain single node and applies the changes on the on-chain. The off-chain computation is executed by a single node but zero knowledge proof causes overhead during proof generation.
The on-chain computation is executed by network participating nodes and the Polkadot has about 297 nodes.
https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.polkadot.io#/staking
If the zero-knowledge overhead is more than 297 times the computation amount than usual execution, Rollup wouldn't work as a scaling solution.
Benchmark results suggested that zero-knowledge proof caused a million to a hundred million overhead than normal execution. Moreover, the Polkadot has a significant scaling roadmap including coretime. We think the Polkadot is already scalable so we should focus on extending functionalities with zero knowledge.
Nova
We did some research about the latest zero-knowledge proof to reduce the cost of Rollup or support new blockchain functionalities as follows.
Brief Introduction of Latest Zero Knowledge Proof such as ZKVM, Recursion and Lookup
As a conclusion, the Rollup is not reasonable even if we use the latest zero knowledge scheme because we need to pay other costs for ZKVM such as security, development cost and so on. We think it’s better to use zero-knowledge for extending blockchain functionalities instead of scaling.
We would like to support Recursive Snarks with Nova folding. Nova folding is the latest zero-knowledge proof and far more efficient than Plonk that we supported. There is no Polkadot compatible Recursive Snarks pallet thus it’s beneficial for the community to support it. It can use zero-knowledge proof with cheap cost and help to extend blockchain functionality.
We did experiment implementation as follows.
https://github.com/ashWhiteHat/nova
Milestones
In recursive Snarks, provers generate the proof for proof recursively on an off-chain and need to verify the validity of the process on zero knowledge circuit. Proving and verification are done in different fields and it causes 100 times overhead. To avoid that overhead, we are going to support a curve which supports the cycle of curves.
To verify the off-chain verifier circuit, we are going to implement Groth16. And finally, we are going to implement Nova folding pallet and allow developers to use recursive Snarks on the Substrate.
Really sorry for the amendment and inconvenience.
I would appreciate it if you could confirm.