From c4d1c5e0298c3ad80110d4a6379df60bec10c166 Mon Sep 17 00:00:00 2001 From: Marti Gorny Date: Sun, 10 Aug 2025 11:08:34 +0000 Subject: [PATCH 1/5] chore: m1 delivery draft --- deliveries/nullifier-prime-milestone_1.md | 30 +++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 deliveries/nullifier-prime-milestone_1.md diff --git a/deliveries/nullifier-prime-milestone_1.md b/deliveries/nullifier-prime-milestone_1.md new file mode 100644 index 0000000000..9736dd9e93 --- /dev/null +++ b/deliveries/nullifier-prime-milestone_1.md @@ -0,0 +1,30 @@ +# Milestone Delivery :mailbox: + +**The delivery is according to the official [milestone delivery guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md).** + +* **Application Document:** [Nullifier Prime](https://github.com/NP-Eng/Grants-Program/blob/90c5079c9f84b436991d215f9429682eda2cc659/applications/np-compliant_and_programmable_privacy.md) +* **Milestone Number:** 1 + +**Context** + +Milestone 1 focuses on implementing core protocol-level data structures and transaction types to enable privacy primitives within an EVM-compatible Substrate chain. Concretely, we introduce Merkle trees for deposit commitments, define a new Shield transaction type, extend block headers with a commitment root, and integrate these with a fork of the EVM execution engine (SputnikVM). We also provide a node template and baseline benchmarks for the primitive data types. + +Primary code branches for this milestone: + +- Frontier fork (Substrate EVM integration): [NP-Eng/frontier (Add-shielding)](https://github.com/NP-Eng/frontier/tree/Add-shielding) +- EVM engine fork (SputnikVM): [NP-Eng/evm (v0.x)](https://github.com/NP-Eng/evm/tree/v0.x) + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- | ------------- | +| 0a. | License | [Frontier — LICENSE](https://github.com/NP-Eng/frontier/blob/master/LICENSE-APACHE2) · [EVM — LICENSE](https://github.com/NP-Eng/evm/blob/v0.x/LICENSE) | | +| 0b. & 0c. | Documentation and testing guide | [Frontier — SHIELDING_POOL.md](https://github.com/NP-Eng/frontier/blob/m1/docs/SHIELDING_POOL.md), [Frontier — SHIELDING_INTEGRATION.md](https://github.com/NP-Eng/frontier/blob/m1/docs/SHIELDING_INTEGRATION.md) | | +| 0d. | Docker | [Dockerfile](https://github.com/NP-Eng/frontier/blob/f2af5fd64315dab1fea7c1074c6403943ada4cf9/Dockerfile), [Docker instructions](https://github.com/NP-Eng/frontier/blob/0b6c6842177251dce730bf77420a3b8c7522b150/README-Docker.md)| | +| 1. | Merkle tree implementation | [Merkle trees backend](https://github.com/NP-Eng/evm/blob/m1/src/backend/merkle_tree.rs) | | +| 2. | Shield transaction type | [EVM](https://github.com/NP-Eng/evm/blob/m1/src/backend/mod.rs#L57) | | +| 3. | Block header modification | ? | | +| 4. | Modified EVM engine (SputnikVM) | [EVM — v0.x](https://github.com/NP-Eng/evm/tree/v0.x) | | +| 5. | Benchmarks | [EVM](https://github.com/rust-ethereum/evm/blob/414aecf69988ec320c4ae66c7c57b30dc0fab2f3/benches/loop.rs) | | +| 6. | Node template | ? | | +| 7. | Tests | [Frontier — Shielding tests](https://github.com/NP-Eng/frontier/blob/m1/examples/test-shielding.js) | | From 217e23080eb95e93d0c92b05a687c09f3a8fb5d2 Mon Sep 17 00:00:00 2001 From: parsa Date: Thu, 14 Aug 2025 12:57:22 +0000 Subject: [PATCH 2/5] complete the deliverables chart --- deliveries/nullifier-prime-milestone_1.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deliveries/nullifier-prime-milestone_1.md b/deliveries/nullifier-prime-milestone_1.md index 9736dd9e93..723c65f4f8 100644 --- a/deliveries/nullifier-prime-milestone_1.md +++ b/deliveries/nullifier-prime-milestone_1.md @@ -23,8 +23,8 @@ Primary code branches for this milestone: | 0d. | Docker | [Dockerfile](https://github.com/NP-Eng/frontier/blob/f2af5fd64315dab1fea7c1074c6403943ada4cf9/Dockerfile), [Docker instructions](https://github.com/NP-Eng/frontier/blob/0b6c6842177251dce730bf77420a3b8c7522b150/README-Docker.md)| | | 1. | Merkle tree implementation | [Merkle trees backend](https://github.com/NP-Eng/evm/blob/m1/src/backend/merkle_tree.rs) | | | 2. | Shield transaction type | [EVM](https://github.com/NP-Eng/evm/blob/m1/src/backend/mod.rs#L57) | | -| 3. | Block header modification | ? | | +| 3. | Block header modification | - | No change to the block header. The Merkle tree holding the shielding pool is stored in the state so it is represented in the block header as part of the state root hash | | 4. | Modified EVM engine (SputnikVM) | [EVM — v0.x](https://github.com/NP-Eng/evm/tree/v0.x) | | | 5. | Benchmarks | [EVM](https://github.com/rust-ethereum/evm/blob/414aecf69988ec320c4ae66c7c57b30dc0fab2f3/benches/loop.rs) | | -| 6. | Node template | ? | | +| 6. | Node template | - | No change to the node template. The "shielding" functionality follows the normal transaction templates | | 7. | Tests | [Frontier — Shielding tests](https://github.com/NP-Eng/frontier/blob/m1/examples/test-shielding.js) | | From 588258fd490e7dafb777245264108dcd50b4911a Mon Sep 17 00:00:00 2001 From: parsa Date: Thu, 14 Aug 2025 13:04:34 +0000 Subject: [PATCH 3/5] adjust context --- deliveries/nullifier-prime-milestone_1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deliveries/nullifier-prime-milestone_1.md b/deliveries/nullifier-prime-milestone_1.md index 723c65f4f8..d28609471b 100644 --- a/deliveries/nullifier-prime-milestone_1.md +++ b/deliveries/nullifier-prime-milestone_1.md @@ -7,7 +7,7 @@ **Context** -Milestone 1 focuses on implementing core protocol-level data structures and transaction types to enable privacy primitives within an EVM-compatible Substrate chain. Concretely, we introduce Merkle trees for deposit commitments, define a new Shield transaction type, extend block headers with a commitment root, and integrate these with a fork of the EVM execution engine (SputnikVM). We also provide a node template and baseline benchmarks for the primitive data types. +Milestone 1 focuses on implementing core protocol-level data structures and transaction types to enable privacy primitives within an EVM-compatible Substrate chain. Concretely, we introduce Merkle trees for deposit commitments, define a new Shield transaction type and integrate these with a fork of the EVM execution engine (SputnikVM). We also provide a node template Primary code branches for this milestone: From 393073c3ec70dbb54ebb11ce9b6d0177207ac711 Mon Sep 17 00:00:00 2001 From: Parsa Date: Thu, 28 Aug 2025 08:39:17 +0200 Subject: [PATCH 4/5] Replace application document with w3f link Signed-off-by: Parsa --- deliveries/nullifier-prime-milestone_1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deliveries/nullifier-prime-milestone_1.md b/deliveries/nullifier-prime-milestone_1.md index d28609471b..508faf87eb 100644 --- a/deliveries/nullifier-prime-milestone_1.md +++ b/deliveries/nullifier-prime-milestone_1.md @@ -2,7 +2,7 @@ **The delivery is according to the official [milestone delivery guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md).** -* **Application Document:** [Nullifier Prime](https://github.com/NP-Eng/Grants-Program/blob/90c5079c9f84b436991d215f9429682eda2cc659/applications/np-compliant_and_programmable_privacy.md) +* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/np-compliant_and_programmable_privacy.md * **Milestone Number:** 1 **Context** From 44004565a42ed66ca39916a42788a7f36e782f21 Mon Sep 17 00:00:00 2001 From: M Berger <76954195+tessico@users.noreply.github.com> Date: Sat, 25 Oct 2025 22:57:32 +0200 Subject: [PATCH 5/5] Apply suggestions from code review Co-authored-by: Robert Hambrock --- deliveries/nullifier-prime-milestone_1.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deliveries/nullifier-prime-milestone_1.md b/deliveries/nullifier-prime-milestone_1.md index 508faf87eb..177a2dbf4e 100644 --- a/deliveries/nullifier-prime-milestone_1.md +++ b/deliveries/nullifier-prime-milestone_1.md @@ -19,12 +19,12 @@ Primary code branches for this milestone: | Number | Deliverable | Link | Notes | | ------------- | ------------- | ------------- | ------------- | | 0a. | License | [Frontier — LICENSE](https://github.com/NP-Eng/frontier/blob/master/LICENSE-APACHE2) · [EVM — LICENSE](https://github.com/NP-Eng/evm/blob/v0.x/LICENSE) | | -| 0b. & 0c. | Documentation and testing guide | [Frontier — SHIELDING_POOL.md](https://github.com/NP-Eng/frontier/blob/m1/docs/SHIELDING_POOL.md), [Frontier — SHIELDING_INTEGRATION.md](https://github.com/NP-Eng/frontier/blob/m1/docs/SHIELDING_INTEGRATION.md) | | -| 0d. | Docker | [Dockerfile](https://github.com/NP-Eng/frontier/blob/f2af5fd64315dab1fea7c1074c6403943ada4cf9/Dockerfile), [Docker instructions](https://github.com/NP-Eng/frontier/blob/0b6c6842177251dce730bf77420a3b8c7522b150/README-Docker.md)| | -| 1. | Merkle tree implementation | [Merkle trees backend](https://github.com/NP-Eng/evm/blob/m1/src/backend/merkle_tree.rs) | | -| 2. | Shield transaction type | [EVM](https://github.com/NP-Eng/evm/blob/m1/src/backend/mod.rs#L57) | | +| 0b. & 0c. | Documentation and testing guide | [Frontier — SHIELDING_POOL.md](https://github.com/NP-Eng/frontier/blob/Add-shielding/docs/SHIELDING_POOL.md), [Frontier — SHIELDING_INTEGRATION.md](https://github.com/NP-Eng/frontier/blob/Add-shielding/docs/SHIELDING_INTEGRATION.md) | | +| 0d. | Docker | [Dockerfile](https://github.com/NP-Eng/frontier/blob/Add-shielding/Dockerfile), [Docker instructions](https://github.com/NP-Eng/frontier/blob/Add-shielding/README-Docker.md)| | +| 1. | Merkle tree implementation | [Merkle trees backend](https://github.com/NP-Eng/evm/blob/Add-shielding/src/backend/merkle_tree.rs) | | +| 2. | Shield transaction type | [EVM](https://github.com/NP-Eng/evm/blob/Add-shielding/src/backend/mod.rs#L57) | | | 3. | Block header modification | - | No change to the block header. The Merkle tree holding the shielding pool is stored in the state so it is represented in the block header as part of the state root hash | | 4. | Modified EVM engine (SputnikVM) | [EVM — v0.x](https://github.com/NP-Eng/evm/tree/v0.x) | | | 5. | Benchmarks | [EVM](https://github.com/rust-ethereum/evm/blob/414aecf69988ec320c4ae66c7c57b30dc0fab2f3/benches/loop.rs) | | | 6. | Node template | - | No change to the node template. The "shielding" functionality follows the normal transaction templates | -| 7. | Tests | [Frontier — Shielding tests](https://github.com/NP-Eng/frontier/blob/m1/examples/test-shielding.js) | | +| 7. | Tests | [Frontier — Shielding tests](https://github.com/NP-Eng/frontier/blob/Add-shielding/examples/test-shielding.js) | |