diff --git a/content/vac/acz/consulting/codex/proxy-re-encryption.md b/content/vac/acz/consulting/codex/proxy-re-encryption.md new file mode 100644 index 000000000..ec61e99e8 --- /dev/null +++ b/content/vac/acz/consulting/codex/proxy-re-encryption.md @@ -0,0 +1,37 @@ +## `vac:acz:consulting:codex:proxy-re-encryption` +--- + +```mermaid +%%{ + init: { + 'theme': 'base', + 'themeVariables': { + 'primaryColor': '#BB2528', + 'primaryTextColor': '#fff', + 'primaryBorderColor': '#7C0000', + 'lineColor': '#F8B229', + 'secondaryColor': '#006100', + 'tertiaryColor': '#fff' + } + } +}%% +gantt + tickInterval 1month + dateFormat YYYY-MM-DD + section Status + Proxy Re-Encryption: , 2024-05-27, 2024-09-30 +``` + +- status: 0% +- CC: Ramses + 1 + +### Description + +To embed and assist codex with their proxy re-encryption primitive. +### Justification + +Proxy re-encryption is necessary to provide plausible deniability to storage providers. + +### Deliverables + +TBD \ No newline at end of file diff --git a/content/vac/acz/consulting/nescience/zk-consulting.md b/content/vac/acz/consulting/nescience/zk-consulting.md new file mode 100644 index 000000000..c98d0ced3 --- /dev/null +++ b/content/vac/acz/consulting/nescience/zk-consulting.md @@ -0,0 +1,40 @@ +--- +title: Nescience ZK Consulting +--- +## `vac:acz:consulting:nes:zk-consulting` +--- + +```mermaid +%%{ + init: { + 'theme': 'base', + 'themeVariables': { + 'primaryColor': '#BB2528', + 'primaryTextColor': '#fff', + 'primaryBorderColor': '#7C0000', + 'lineColor': '#F8B229', + 'secondaryColor': '#006100', + 'tertiaryColor': '#fff' + } + } +}%% +gantt + tickInterval 1month + dateFormat YYYY-MM-DD + section Status + Nescience ZK Consulting: , 2024-01-01, 2024-12-31 +``` + +- status: 30% +- CC: Ugur + +### Description + +To assist the Nescience team with their ZK needs. +### Justification + +Ugur has the expertise to assist Nescience with their zk research tracks. + +### Deliverables + + diff --git a/content/vac/acz/cryptography-consulting/nomos/init.md b/content/vac/acz/consulting/nomos/init.md similarity index 100% rename from content/vac/acz/cryptography-consulting/nomos/init.md rename to content/vac/acz/consulting/nomos/init.md diff --git a/content/vac/acz/cryptography-consulting/codex/init.md b/content/vac/acz/cryptography-consulting/codex/init.md deleted file mode 100644 index a5b84b91a..000000000 --- a/content/vac/acz/cryptography-consulting/codex/init.md +++ /dev/null @@ -1 +0,0 @@ -init cryptography consulting for codex diff --git a/content/vac/acz/index.md b/content/vac/acz/index.md index 1fa3bed1c..7538970cb 100644 --- a/content/vac/acz/index.md +++ b/content/vac/acz/index.md @@ -1,10 +1,10 @@ --- title: Applied Cryptography and Zero-knowledge Service Unit tags: -- acz -- vac + - acz + - vac date: 2023-09-12 -lastmod: 2024-04-20 +lastmod: 2024-05-13 --- ## `vac:acz:` @@ -18,23 +18,39 @@ lastmod: 2024-04-20 * [[vac/acz/rlnp2p/waku/rln-relay-erc20|rln-relay-erc20]] - [x] [[vac/acz/rlnp2p/waku/rlnv2-relay-integration|rlnv2-relay-integration]] * [x] [[vac/acz/rlnp2p/waku/rln-multi-epoch-constraints|rln-multi-epoch-constraints]] +* [ ] [[vac/acz/rlnp2p/waku/rlnv2-e2e|rlnv2-e2e]] ### `rlnp2p:vac:` * [x] [[vac/acz/rlnp2p/vac/rln-doc-and-outreach|rln-doc-and-outreach]] +* [x] [[vac/acz/rlnp2p/vac/light-rln-verifiers|light-rln-verifiers]] +* [x] [[vac/acz/rlnp2p/vac/rln-light-clients|rln-light-clients]] + +### `rlnp2p:status:` +* [ ] [[vac/acz/rlnp2p/status/rln-usage|rln-usage]] ### `zerokit:vac:` * [x] [[vac/acz/zerokit/vac/zerokit-v0-4|zerokit-v0.4]] -* [[vac/acz/zerokit/vac/zerokit-v0-5|zerokit-v0.5]] +* [ ] [[vac/acz/zerokit/vac/zerokit-v0-5|zerokit-v0.5]] * [[vac/acz/zerokit/vac/maintenance|maintenance]] ### `secure-channels:waku:` -* [[vac/acz/secure-channels/waku/mls-design|mls-design]] -* [[vac/acz/secure-channels/waku/mls-poc|mls-poc]] -* [[vac/acz/secure-channels/waku/fd-design|fd-design]] -* [[vac/acz/secure-channels/waku/fd-poc|fd-poc]] +* [ ] [[vac/acz/secure-channels/waku/mls-design|mls-design]] +* [ ] [[vac/acz/secure-channels/waku/mls-poc|mls-poc]] +* [ ] [[vac/acz/secure-channels/waku/fd-design|fd-design]] +* [ ] [[vac/acz/secure-channels/waku/fd-poc|fd-poc]] -### `cryptography-consulting:codex` -* [[vac/acz/cryptography-consulting/codex/init|init]] +### `consulting:codex:` +* [[proxy-re-encryption|proxy-re-encryption]] -### `cryptography-consulting:nomos` -* [[vac/acz/cryptography-consulting/nomos/init|init]] +### `consulting:nomos:` +* [[vac/acz/consulting/nomos/init|init]] + +### `consulting:nes:` +* [ ] [[vac/acz/consulting/nescience/zk-consulting|zk-consulting]] + +### `stealth-address-kit:vac:` +* [ ] [[vac/acz/stealth-address-kit/maintenance|maintenance]] +* [ ] [[vac/acz/stealth-address-kit/research|research]] + +### `validator-privacy:nimbus:` +- [ ] [[vac/acz/validator-privacy/nimbus/productionize-tor-push|productionize-tor-push]] \ No newline at end of file diff --git a/content/vac/acz/rlnp2p/status/rln-usage.md b/content/vac/acz/rlnp2p/status/rln-usage.md new file mode 100644 index 000000000..52c89b427 --- /dev/null +++ b/content/vac/acz/rlnp2p/status/rln-usage.md @@ -0,0 +1,41 @@ +--- +title: Status RLN Usage +--- +## `vac:acz:rlnp2p:status:rln-usage` +--- + +```mermaid +%%{ + init: { + 'theme': 'base', + 'themeVariables': { + 'primaryColor': '#BB2528', + 'primaryTextColor': '#fff', + 'primaryBorderColor': '#7C0000', + 'lineColor': '#F8B229', + 'secondaryColor': '#006100', + 'tertiaryColor': '#fff' + } + } +}%% +gantt + tickInterval 1month + dateFormat YYYY-MM-DD + section Status + RLN Usage: , 2024-05-13, 2024-06-13 +``` + +- status: 0% +- CC: Aaryamann + +### Description + +To describe an end-to-end user flow for a new user of the status app on how they can acquire an RLN membership. +### Justification + +Status will use RLN in the future, and we must first consult them on how to use it for seamless integration. + +### Deliverables + +- [ ] Document describing end-to-end user flow + diff --git a/content/vac/acz/rlnp2p/vac/light-rln-verifiers.md b/content/vac/acz/rlnp2p/vac/light-rln-verifiers.md new file mode 100644 index 000000000..efe18e867 --- /dev/null +++ b/content/vac/acz/rlnp2p/vac/light-rln-verifiers.md @@ -0,0 +1,45 @@ +--- +title: Light RLN Verifiers +--- +## `vac:acz:rlnp2p:vac:light-rln-verifiers` +--- + +```mermaid +%%{ + init: { + 'theme': 'base', + 'themeVariables': { + 'primaryColor': '#BB2528', + 'primaryTextColor': '#fff', + 'primaryBorderColor': '#7C0000', + 'lineColor': '#F8B229', + 'secondaryColor': '#006100', + 'tertiaryColor': '#fff' + } + } +}%% +gantt + tickInterval 1month + dateFormat YYYY-MM-DD + section Status + Light RLN Verifiers: done, 2024-03-01, 2024-05-01 +``` + +- status: 100% +- CC: Aaryamann + +### Description + +Make use of cryptography techniques to improve trust assumptions and reduce off-chain complexity while verifying RLN proofs. +### Justification + +A node attempting to verify RLN proofs takes nearly ~10 minutes to sync all the leaves. We should explore cost-effective solutions to make the root of the tree accessible onchain. + +### Deliverables + +- [x] PoC using tiered commitment trees: https://github.com/vacp2p/rln-contract/pull/37 +- [x] Deployed to sepolia and load tested: https://sepolia.etherscan.io/address/0xE7987c70B54Ff32f0D5CBbAA8c8Fc1cAf632b9A5 +- [x] Ethresearch post: https://ethresear.ch/t/tiered-commitment-trees-to-reduce-gas-costs-and-offchain-complexity/19484 +- [x] Vac forum post: https://forum.vac.dev/t/light-rln-verifiers-using-a-tiered-commitment-tree/290 +- [x] Vac blog post: https://vac.dev/rlog/rln-light-verifiers/ + diff --git a/content/vac/acz/rlnp2p/vac/rln-doc-and-outreach.md b/content/vac/acz/rlnp2p/vac/rln-doc-and-outreach.md index 8516e06ad..bc3a25f80 100644 --- a/content/vac/acz/rlnp2p/vac/rln-doc-and-outreach.md +++ b/content/vac/acz/rlnp2p/vac/rln-doc-and-outreach.md @@ -44,7 +44,7 @@ gantt * [x] talk at progcrypto on RLN: https://www.youtube.com/watch?v=7xDxv8F70Jg&pp=ygUOcHJvZ2NyeXB0byBybG4%3D * [x] presented rln: zero to hero to nwaku+chatsdk team @ status all hands, explained all versions of rln and their trade-offs -- [ ] blog post/RFC on Light RLN verifiers: https://github.com/vacp2p/vac.dev/pull/136 +- [x] blog post/RFC on Light RLN verifiers: https://github.com/vacp2p/vac.dev/pull/136 - [x] updated docs for rln-relay in nwaku-compose: [https://github.com/waku-org/nwaku-compose/pull/52](https://github.com/waku-org/nwaku-compose/pull/52) - [x] Present rln-v2 and v3 at logos research call: https://docs.google.com/presentation/d/1lcE5E3WKenueIULR_rhjtZU8Tdqv-7sPr6lpXPTaQSk/edit?usp=sharing - [x] RLN rlog on vac.dev: https://vac.dev/rlog/rln-anonymous-dos-prevention diff --git a/content/vac/acz/rlnp2p/vac/rln-light-clients.md b/content/vac/acz/rlnp2p/vac/rln-light-clients.md new file mode 100644 index 000000000..9e3102416 --- /dev/null +++ b/content/vac/acz/rlnp2p/vac/rln-light-clients.md @@ -0,0 +1,51 @@ +--- +title: RLN Light Clients +--- +## `vac:acz:rlnp2p:vac:rln-light-clients` +--- + +```mermaid +%%{ + init: { + 'theme': 'base', + 'themeVariables': { + 'primaryColor': '#BB2528', + 'primaryTextColor': '#fff', + 'primaryBorderColor': '#7C0000', + 'lineColor': '#F8B229', + 'secondaryColor': '#006100', + 'tertiaryColor': '#fff' + } + } +}%% +gantt + tickInterval 1month + dateFormat YYYY-MM-DD + section Status + RLN Light Clients: done, 2024-04-01, 2024-05-01 +``` + +- status: 100% +- CC: Aaryamann + +### Description + +Make use of zk-kit's [LazyIMT](https://github.com/privacy-scaling-explorations/zk-kit/blob/12447adf0bca1f752b1bd6b7acf5b87e0cadccc6/packages/imt.sol/contracts/LazyIMT.sol)to have the merkle proof of a leaf accessible onchain, and the root as well, to allow for light rln provers and verifiers. +### Justification + +A node attempting to verify RLN proofs takes nearly ~10 minutes to sync all the leaves. We should attempt to see if it is cheap *enough* to use the LazyIMT structure so that we can have the merkle proof accessible onchain. + +### Deliverables + +- [x] PoC (rln-v1): https://github.com/vacp2p/rln-contract/pull/31 +- [x] Deployed to cardona zkevm testnet: https://cardona-zkevm.polygonscan.com/address/0x16abffcab50e8d1ff5c22b118be5c56f801dce54 +- [x] PoC (rln-v2): https://github.com/vacp2p/rln-contract/pull/39 +- [x] Downstreamed to waku-rln-contract to estimate gas: https://github.com/vacp2p/rln-contract/pull/38 + + +| RLN Version | Gas estimate for insertion | +| ---------------- | -------------------------- | +| rln-v1 | 90k | +| rln-v1 (lazyIMT) | 130k | +| rln-v2 | 135k | +| rln-v2 (lazyIMT) | 210k | diff --git a/content/vac/acz/rlnp2p/waku/rlnv2-e2e.md b/content/vac/acz/rlnp2p/waku/rlnv2-e2e.md new file mode 100644 index 000000000..cb937691e --- /dev/null +++ b/content/vac/acz/rlnp2p/waku/rlnv2-e2e.md @@ -0,0 +1,42 @@ +--- +title: RLN v2 E2E integration +--- + +## `vac:acz:rlnp2p:waku:rlnv2-e2e` +--- + +```mermaid +%%{ + init: { + 'theme': 'base', + 'themeVariables': { + 'primaryColor': '#BB2528', + 'primaryTextColor': '#fff', + 'primaryBorderColor': '#7C0000', + 'lineColor': '#F8B229', + 'secondaryColor': '#006100', + 'tertiaryColor': '#fff' + } + } +}%% +gantt + dateFormat YYYY-MM-DD + section Status + RLN v2 e2e Integration : , 2024-05-20, 2024-06-20 +``` +- due: 2024-06-20 +- status: 0% + +### Description +- [ ] Come up with final gas estimation after the optimizations (RLN v2 + RLN in resource-restricted) +- [ ] Deliver end-to-end PoC working in The Waku Network showcasing the new features. +- [ ] Bug fixes found along testing +- [ ] New smart contract with both RLNv2 and RLN in resource-restricted clients changes. +- [ ] Deploy and consider using a L2 testnet. + +#### Goal +Run RLN relay v2 on TWN. + +### Deliverables + +- [ ] https://github.com/waku-org/pm/issues/168 diff --git a/content/vac/acz/secure-channels/waku/mls-poc.md b/content/vac/acz/secure-channels/waku/mls-poc.md index 4bb79cc3c..854b76e88 100644 --- a/content/vac/acz/secure-channels/waku/mls-poc.md +++ b/content/vac/acz/secure-channels/waku/mls-poc.md @@ -31,13 +31,17 @@ gantt ### Description * proof of concept implementation of [[vac/acz/secure-channels/waku/mls-design|mls-design]] -* todo: link repo +* repo: https://github.com/vacp2p/de-mls +* issues: + * https://github.com/vacp2p/de-mls/issues/1 + * https://github.com/vacp2p/de-mls/issues/2 + * https://github.com/vacp2p/de-mls/issues/3 ### Justification ### Deliverables -* specification (RFC) of a secure Ethereum-based chat protocol +* Engineers implementing the researchers advice on how to proceed with the PoC diff --git a/content/vac/acz/stealth-address-kit/maintenance.md b/content/vac/acz/stealth-address-kit/maintenance.md new file mode 100644 index 000000000..cc998ed49 --- /dev/null +++ b/content/vac/acz/stealth-address-kit/maintenance.md @@ -0,0 +1,41 @@ +--- +title: Stealth Address Kit Maintenance +--- +## `vac:acz:stealth-address-kit:maintenance` +--- + +```mermaid +%%{ + init: { + 'theme': 'base', + 'themeVariables': { + 'primaryColor': '#BB2528', + 'primaryTextColor': '#fff', + 'primaryBorderColor': '#7C0000', + 'lineColor': '#F8B229', + 'secondaryColor': '#006100', + 'tertiaryColor': '#fff' + } + } +}%% +gantt + tickInterval 1month + dateFormat YYYY-MM-DD + section Status + Stealth Address Kit Maintenance: , 2024-02-01, 2024-12-31 +``` + +- status: 50% +- CC: Aaryamann + +### Description + +Continue supporting and maintaining the [stealth-address-kit](https://github.com/vacp2p/erc-5564-rs) repo. +### Justification + +This will be a viable privacy solution for status (private transfers) and waku (rln membership insertion) + +### Deliverables + +- [ ] rename erc-5564-rs to `stealth-address-kit` + diff --git a/content/vac/acz/stealth-address-kit/research.md b/content/vac/acz/stealth-address-kit/research.md new file mode 100644 index 000000000..373995c36 --- /dev/null +++ b/content/vac/acz/stealth-address-kit/research.md @@ -0,0 +1,16 @@ +--- +title: Stealth Address Kit Research +--- +## `vac:stealth-address-kit:research` +--- + +> note: there is no gantt chart for this milestone + +### Description + +Further the research of the [stealth address scheme](https://eips.ethereum.org/EIPS/eip-5564) and collaborate with EF researchers to do so. +### Justification + +This will be a viable privacy solution for status (private transfers) and waku (rln membership insertion) +### Deliverables + diff --git a/content/vac/acz/validator-privacy/nimbus/productionize-tor-push.md b/content/vac/acz/validator-privacy/nimbus/productionize-tor-push.md new file mode 100644 index 000000000..2dd473cc7 --- /dev/null +++ b/content/vac/acz/validator-privacy/nimbus/productionize-tor-push.md @@ -0,0 +1,39 @@ +--- +title: Productionize Tor Push in Nimbus +--- +## `vac:acz:validator-privacy:nimbus:productionize-tor-push` +--- + +```mermaid +%%{ + init: { + 'theme': 'base', + 'themeVariables': { + 'primaryColor': '#BB2528', + 'primaryTextColor': '#fff', + 'primaryBorderColor': '#7C0000', + 'lineColor': '#F8B229', + 'secondaryColor': '#006100', + 'tertiaryColor': '#fff' + } + } +}%% +gantt + tickInterval 1month + dateFormat YYYY-MM-DD + section Status + Productionize tor push: , 2024-05-13, 2024-08-13 +``` + +- status: 0% +- CC: Aaryamann + +### Description + +To make the tor push feature as accessible as running `--tor-push:true` while running a nimbus validator. +### Justification + +Improved privacy guarantees for ethereum validators +### Deliverables + +- [ ] TBD diff --git a/content/vac/acz/zerokit/vac/zerokit-v0-5.md b/content/vac/acz/zerokit/vac/zerokit-v0-5.md index 1478a332e..33d295c45 100644 --- a/content/vac/acz/zerokit/vac/zerokit-v0-5.md +++ b/content/vac/acz/zerokit/vac/zerokit-v0-5.md @@ -20,22 +20,21 @@ title: Zerokit v0.5 Release gantt tickInterval 1month dateFormat YYYY-MM-DD - section zerokit - v0.5 Release: 2023-10-01, 2024-02-29 + section Status + v0.5 Release: 2023-10-01, 2024-06-01 ``` -- status: 5% -- CC: Aaryamann - +- status: 70% +- CCs: + - Ekaterina + - Aaryamann ### Description -* Release Planning issue: - -* main focus: RLN performance improvements - - explore using kzg proofs +* Release Planning issue: https://github.com/vacp2p/zerokit/issues/237 ### Deliverables - -### Info - -* We have a benchmarking suite done +- [x] https://github.com/vacp2p/zerokit/pull/239 +- [x] https://github.com/vacp2p/zerokit/pull/242 +- [x] https://github.com/vacp2p/zerokit/pull/243 +- [x] https://github.com/vacp2p/zerokit/pull/245 +- [x] https://github.com/vacp2p/zerokit/pull/246