Research, upstream references, protocol analysis, and primary sources for the Shielded CSV protocol that zkCoins is built on.
research/
├── shieldedcsv-paper.pdf # The paper (ePrint 2025/068, 914 KB)
├── glock-paper.pdf # Glock: Garbled Locks for Bitcoin (ePrint 2025/1485, Aug 2025)
├── argo-mac-paper.pdf # Argo MAC: Garbling with Elliptic Curve MACs (ePrint 2026/049, Jan 2026)
├── bitvm-paper.pdf # BitVM: Quasi-Turing Complete Computation (ePrint 2024/1995)
├── bitvm2-bridge-paper.pdf # BitVM2: Bridging Bitcoin to Second Layers
├── bitvm-bridge-research.md # Historical Glock-path note (superseded: zk-BTC/zkbtc, BitVM2 + R-09)
├── primary-sources/ # Archived full-text articles
│ ├── blockstream-blog.md # "Bitcoin's Shielded CSV Protocol Explained" (Dec 2024)
│ ├── mailing-list.md # Bitcoin-Dev thread: Nick, Riard, Chen (Sep 2024)
│ ├── eliel-blog.md # "My Thoughts on the Shielded CSV Protocol" (Apr 2025)
│ ├── bitcoin-optech.md # Bitcoin Optech: Client-Side Validation
│ └── da-paper.md # ePrint 2025/569: Data Availability in CSV
├── upstream/ # Git submodules of original repositories
│ ├── ShieldedCSV/ # Paper reference code (Rust, MIT)
│ ├── ZeroSync-ZKCoins/ # Functional prototype (our primary upstream)
│ ├── rust-bitcoincore-rpc/ # Bitcoin Core RPC fork for ZKCoins
│ └── BitVM-zkCoins/ # Historical Plonky2 experiments
├── zkcoins-design/ # Design drafts archived from zk-coins/node (see its README)
├── benchmarks/ # Plonky3 spike benchmark results archived from zk-coins/node
├── spikes/ # Throwaway research crates
│ └── plonky3-recursion-spike/ # Plonky3 recursion feasibility spike (from node staging, PRs #212/#214)
├── community-content/ # Community/research pages archived from zk-coins/docs
├── operations/ # Backend/deployment ops notes archived from zk-coins/docs
└── audit/ # Dated internal cryptographic reviews
└── 2026-06-06.03.md # Pass-3 v1 spec review (snapshot; do not rewrite)
This repository is the catch-all for everything research-, design-, and ops-flavoured
across the zkCoins project. As part of a repo-hygiene pass, design drafts, the Plonky3
recursion spike, benchmark write-ups, and community/ops documentation were moved here out
of zk-coins/node and zk-coins/docs so those repos can stay focused (node = shippable
software only; docs = the target-design specification only). Each imported directory has a
README.md documenting its exact provenance and where any relocated cross-references now
live. Nothing was rewritten — the files are archived verbatim.
See PROTOCOL_STATUS.md for a detailed comparison of the Shielded CSV paper against our current implementation, including what's done, what's missing, and the roadmap.
Shielded CSV: Private and Efficient Client-Side Validation
- Authors: Jonas Nick (Blockstream), Liam Eagen (Alpen Labs), Robin Linus (ZeroSync)
- Published: January 2025
- ePrint: 2025/068
- Local copy: shieldedcsv-paper.pdf
Normative zkBTC is zk-BTC/zkbtc (spec §1.1.1), not this archive. The works-today verifier is BitVM2; the token standard lives in that repo. The operator set is cumulative and growth-only (R-09). zkBTC is effectively trustless there: the holder registers as an operator before the first mint; nobody else is trusted with their bitcoin; a gatekeeper is optional and only gates new mints. The June-2026 Glock-only / "no BitVM2 intermediate" note in bitvm-bridge-research.md is historical and superseded. Glock / BitVM3 remain possible future efficiency upgrades in that specification, not the launch path. There is no federation V0.
| Paper | Authors | Date | Local copy |
|---|---|---|---|
| Glock: Garbled Locks for Bitcoin | Liam Eagen (Alpen Labs) | Aug 2025 | glock-paper.pdf · ePrint 2025/1485 |
| Argo MAC: Garbling with Elliptic Curve MACs | Liam Eagen, Ying Tong Lai | Jan 2026 | argo-mac-paper.pdf · ePrint 2026/049 |
| BitVM2: Bridging Bitcoin to Second Layers | BitVM team | 2024 | bitvm2-bridge-paper.pdf · bitvm.org/bitvm_bridge.pdf |
| BitVM: Quasi-Turing Complete Computation | Lukas Aumayr et al. | 2024 | bitvm-paper.pdf · ePrint 2024/1995 |
Glock and Argo are kept side by side because Robin Linus co-authored Argo and the two constructions are sister directions in the same research line. They remain a research / efficiency track. BitVM2 is the launch verifier in zk-BTC/zkbtc; BitVM papers stay as the comparison baseline.
| Directory | Source | Description |
|---|---|---|
upstream/ShieldedCSV/ |
ShieldedCSV/ShieldedCSV | Paper reference code. PCD Compliance Predicate in Rust — the protocol specification in code form. All crypto primitives are unimplemented!(). 44 stars, MIT. |
upstream/ZeroSync-ZKCoins/ |
ZeroSync/ZKCoins | Our primary upstream. Functional prototype: SP1 zkVM proofs, WASM client, Axum server, Taproot Inscriptions. Our server/shared/program crates are derived from this. |
upstream/rust-bitcoincore-rpc/ |
ZeroSync/rust-bitcoincore-rpc | Fork with submitpackage RPC for Bitcoin Core integration. |
upstream/BitVM-zkCoins/ |
BitVM/zkCoins | Historical Plonky2 recursive circuit experiments. Predecessor to ZeroSync. Last commit: "Recursive proving kinda works" (Feb 2024). |
Full-text copies of key articles, archived locally for reference:
| File | Source | Date |
|---|---|---|
| blockstream-blog.md | Blockstream Blog | Dec 2024 |
| mailing-list.md | Bitcoin-Dev Mailing List | Sep 2024 |
| eliel-blog.md | Eliel Blog | Apr 2025 |
| bitcoin-optech.md | Bitcoin Optech | Ongoing |
| da-paper.md | ePrint 2025/569 | Mar 2025 |
| Resource | URL |
|---|---|
| Shielded CSV paper | eprint.iacr.org/2025/068 |
| shieldedcsv.org | shieldedcsv.org |
| zkCoins original gist | gist.github.com/RobinLinus |
| DA paper (2025/569) | eprint.iacr.org/2025/569 |
| Jonas Nick announcement | x.com/n1ckler |
| Bitcoin Takeover Podcast S15 E58 | podtail.com |
| Blockstream YouTube | youtube.com |
| Robin Linus "Make Bitcoin Cypherpunk Again" | youtube.com |
| TABConf 6 Slides | slides.com |
| Stacker News AMA (Robin Linus) | stacker.news |
git clone --recurse-submodules https://github.com/zk-coins/research.git
# Or if already cloned:
git submodule update --init --recursive| Repo | Purpose |
|---|---|
| zk-coins/app | Web application (zkcoins.app) |
| zk-coins/node | Rust backend / node (api.zkcoins.app) |
| zk-coins/docs | Documentation (docs.zkcoins.com) |
MIT