-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Cumulus MultiBlock Prover #2603
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
base: master
Are you sure you want to change the base?
Conversation
I have read and hereby sign the Contributor License Agreement. |
@keeganquigley requesting your review |
Hey @MrishoLukamba , |
@MrishoLukamba sry for the delay here, we have a bit of a backlog currently. I'll review by tomorrow EOD. Thanks for your patience! |
Any updates @takahser ? |
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.
@MrishoLukamba Apologies, I thought I replied already here. 😅
Generally, it looks interesting. Would you mind clarifying on the following points?
-
Ecosystem Demand / Fit
- Can you provide concrete examples of parachain teams or use cases that would adopt a zk-proof based validation layer?
- How do you see this complementing Polkadot’s existing shared security and para-validation model?
-
Technical Feasibility
- Embedding the SP1 RISC-V zkVM into Cumulus sounds computational intense. Have you benchmarked its overhead on block production and validation?
- Can you outline what proof format will be generated (e.g. size, verification cost, latency expectations)?
- Will it be possible for para-validators tp verify proofs efficiently without significantly delaying inclusion?
-
Future Plans
- You mention “realtime cryptographic proving on Polkadot SDK standalone chains.” Do you envision this becoming a maintained subsystem within Cumulus, or an optional add-on maintained by your team?
Despite of these questions, I think the application is structurally sound, so I'm going to open it up to other reviewers to avoid further delays.
Apologies for taking 5 days to reply.
With all this still the security comes from the polkadot relay chain but the securing mechanism doesnt restrict parachain teams on their computation and size of their exportation for verification. And with the experimentation paradigm exploration on polkadot ecosystem, even setting up kusama as the zk playground this can speed up the experimentation on parachains.
But I have done a demo for this: https://github.com/MrishoLukamba/succinct-summer-2.5. The proof formats can be 2, groth16 scheme and Stark, with groth16 is a constant size but for this grant will focus on STARK which scale logarithmically and its fast in verification speed. And all of this done to make sure the size of POV which is the proof should be lesser than traditional merkle proof. Future Plans Realtime proving will be focused on standalone chains, but also mid plan is to even allow parachain to produce proof from ethereum based succinct network and be secured by polkadot relay chain. But the current grant will focus on enabling N collators to split the workload and allow paralle proving. |
@takahser any follow up question? |
@takahser any updates |
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.
@MrishoLukamba Thx for the detailed reply.
I have a few follow-up questions:
-
Ecosystem Fit / Demand
- It would help to have actual examples of parachains currently struggling with large PoV sizes or async-backing constraints. Otherwise we risk creating solutions for problems that don't exist.
-
Benchmarks / Proof Characteristics
- Could you provide some numbers from your demo project that compare the current system (PoV block with Merkle-based witness data) against your proposed zk-proof system? In particular:
- Size of the data submitted (bytes).
- Time and hardware needed to generate it.
- Time required for a validator to verify it.
- A simple comparison table like this would make the potential value of your solution much clearer.
- Could you provide some numbers from your demo project that compare the current system (PoV block with Merkle-based witness data) against your proposed zk-proof system? In particular:
-
Validator Impact
- How do you expect verification to fit into the current backing/approval checking budgets?
- Even if STARKs are fast, para-validators operate under tight constraints. Is it possible to show that inclusion latency won’t be negatively affected?
-
Downsizing the grant
- Before the full distributed proving system, would you consider reducing this initial grant to an initial milestone that just demonstrates a zk proof replacing a PoV for a small parachain block, with logs/metrics on proof size and verification cost?
- That would derisk the complexity and give reviewers confidence in feasibility before scaling to collator distribution and aggregation.
I am preparing all the metrics, and okey we can start with the first milestone |
Please change the application document to reflect this, @MrishoLukamba. |
Yes Samuel, This week with all metrics, Apologies for delaying |
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.
Thank you for submitting the proposal. It indeed seems interesting and I assume a parachain provable by ZK would become useful one way or another. So I'm generally happy with the concept, I just left some requests for few changes that I think are essential.
struct ExtendedHeader { | ||
proofs: Vec<Vec<u8>>, | ||
proof_root: [u8; 32], | ||
execution_cycles: u64, |
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.
I don't understand why you need to change the block header. This could be included as an extra transaction or as a header digest. I don't think you need to change the block header structure for this.
|
||
* **Runtime-Level Modifications (pallet-parachain-system)**: | ||
|
||
* Modify the `fn validate_block` function to: |
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.
You don't need to modify validate_block. It is just the runtime that you submit at the parachain registration is the proof validation function instead of the original non-zk runtime of the parachain. It is actually essential that the parachain works with the current relay chain without requiring any change to the relay chain.
|
||
* **Block Execution API** | ||
|
||
* Embed an SP1 RISC-V zkVM shell for executing parachain functions with specified inputs |
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.
Could you submit some benchmark and estimation on how long it takse for the SP1 RISC-V zkVM to prove a typical block of a parachain?
2. Enables higher transaction throughput by distributing proof generation across multiple collator nodes in parallel. | ||
3. Preserves and complements Polkadot's shared economic security model. | ||
|
||
## 5. Team Members |
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.
Could you point me out to any previous zk programming experience that team members had?
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.
Yes I will too, you can check also the demo I did in my application I have attached it
@MrishoLukamba please note that the grants guidelines have recently changed |
I am preparing the document for benchmarks and showing how polkadot validators can take up extra proof verifying task even for other network that requires a verifier. The computational cost for verifying is minimum while the users must pay in DOT. While at the same time new parachain can opt into using proving system to achieve larger block size and validators perfoming less working in verifying the parachains blocks Apologies for taking time |
Project Abstract
Grant level
Application Checklist
project_name.md
).@_______:matrix.org
(change the homeserver if you use a different one)