paraloom-labs/paraloom-core

GitHub: paraloom-labs/paraloom-core

Paraloom Core 是一个基于 Groth16 zk-SNARKs 的 Solana 隐私 Layer 2,提供 shielded 转账和隐私计算能力,验证节点可在普通硬件上运行。

Stars: 9 | Forks: 8

Paraloom Logo

Paraloom Core

Solana 上的隐私 Layer 2 — shielded pool、zkSNARKs,运行于普通硬件

CI Programs CI Release Rust Anchor License

文档快速开始问题

## Paraloom 是什么? Paraloom 是一个 **专注于隐私的 Solana Layer 2**:SOL 被桥接到一个 shielded pool 中,转账在该池内私密进行,提现则结算回 Solana —— 这一切都由基于 BLS12-381 的 Groth16 zkSNARKs 提供锚定。验证者网络专为普通硬件(笔记本电脑、家用 PC、单板计算机)设计,运行仅验证的角色;proof 的生成由用户完成,而验证的成本足够低,使得普通现成机器也能参与共识。 **核心功能:** - **zkSNARK 隐私** — Poseidon hash、电路内 u64 range proofs、Groth16(192 字节 proofs,约 10 ms 验证时间) - **Solana 桥接** — 双向 SOL 充提,通过 expiration slots 实现链上重放保护 - **拜占庭共识** — 可配置的 BFT 阈值(默认 10 个中的 7 个),基于声誉的投票门控,equivocation slashing 证据 - **运维** — `/health`、`/ready`、`/metrics` 端点,基于 RocksDB 的崩溃一致性存储,使用 Kademlia DHT 进行 peer 发现,配合 libp2p ping 存活检测,主动/被动 coordinator 故障转移 - **隐私计算 (alpha)** — 带有加密 I/O 的 WASM 执行,受所有权证明约束;更小、更简单的节点可以选择退出 ## 状态 | 组件 | 状态 | 备注 | |-----------|--------|-------| | zkSNARK 隐私层 | ✅ 运行中 | Groth16 + BLS12-381,192 字节 proofs,已在 devnet 测试 | | 电路内 range proofs | ✅ 运行中 | deposit / transfer / withdraw 中的 u64 位分解 (v0.4.0) | | Solana 桥接 (Anchor) | ✅ 运行中 | 已部署在 devnet;重放受 `expiration_slot` 约束 (v0.4.0) | | Shielded 转账 (private→private) | ✅ 运行中 | 2-in/2-out `TransferCircuit`,客户端 proof,BFT 结算,加密 note 交付 + 接收方扫描 (v0.5.0) | | 程序版本握手 | ✅ 运行中 | L2 拒绝与错误的链上程序版本通信 | | 拜占庭共识 | ✅ 运行中 | 可配置的 BFT 阈值;默认 7/10;已在 10 节点 localnet 上验证 | | 声誉门控 + slashing | ✅ 运行中 | Equivocation + 持续不可用证据 (v0.4.0) | | Merkle + nullifier set | ✅ 运行中 | 已验证双花防护;热写入执行 fsync | | 运维端点 | ✅ 运行中 | 独立端口上的 `/health`、`/ready`、`/metrics` (Prometheus) | | Peer 发现 | ✅ 运行中 | Kademlia DHT,bootstrap 刷新,libp2p ping 存活检测,注册表反馈的缓慢/离线区分 | | 发布流水线 | ✅ 运行中 | 多平台二进制文件,SHA-256 校验和,CycloneDX SBOM,Sigstore 签名 | | Poseidon hash | ✅ 运行中 | 域分离;原生↔电路等价性由测试固定 | | Coordinator HA | ✅ 运行中 | 主动/被动故障转移,RTO 场景测试在 30s 以下 | | MPC 可信设置工具 | ✅ 运行中 | BGM17 贡献 + verifier,transcript 链,contributor / verifier / finalize CLI | | 隐私计算 (WASM) | 🚧 Alpha | 引擎 + 所有权证明已就位;输出 note 管道待定;明确不在 v0.5.0 仪式的范围内 | | MPC 仪式执行 | 🟡 进行中 | 工具在 rc2 发布;20–30 名贡献者的运行是 v0.5.0 final 的日历关卡 | | 主网启动 | 🟡 预发布 | Devnet 在 `8gPsR…TWrP` 上稳定;等待仪式完成 + 外部安全审计 | ### 已知限制 (devnet,主网前) 当前 devnet 里程碑的客观范围。这些项处于跟踪状态并作为主网的关卡,而不是 devnet 发布的关卡;它们均不影响 devnet 上的资金安全。 - **ZK proofs 由 L2 quorum 验证;链上重新验证已推迟。** 每一笔提现和 shielded-transfer 的 proof **都**经过了验证 —— 每个验证者都运行真正的 Groth16 verifier(`verify_withdrawal_parts` / `verify_transfer_parts`),并且只有当 BFT quorum 投票认为有效时,转账/提现才会结算。推迟的是*冗余的*链上重新检查:Solana 程序会记录 proof 并受共识权限控制,但其本身不会在链上重新运行 Groth16(受阻于 Solana SIMD-0388,~Q3'26 — #165)。转账后的 Merkle root 由共识 leader 设置,同样未在链上重新验证。 - **可信设置是一个开发仪式。** MPC 工具已经发布(BGM17 contribution/verifier/transcript,rc2),但当前使用的 proving/verifying keys 来自单方开发设置;运行多方仪式是通往 v0.5.0 final 的剩余关卡 (#64)。 - **Transfer note 的交付由 L2 提供且基于内存。** 加密的输出 notes 通过节点的 `/transfer/scan` 端点交付(在内存中,重启后不持久化;该入口默认禁用,旨在用于环回/管理接口)。接收方在客户端进行扫描和尝试解密。 - **每笔转账的池收敛是不完全的。** 结算节点将转账的输出 commitments 追加到其 shielded pool 中;接收方依赖该节点 / 链上 tree 进行花费。 这些是主网前里程碑与主网启动之间的工作,此外还正在等待外部安全审计。 ## 经济模型 Paraloom 的定位是无须许可的验证者运行基础设施,而不是创始人费用产品。链上程序收集的提现费用将记入主导验证的验证者名下 —— 而不是单一收款账户。 目前接入的链上指令(`programs/paraloom/src/lib.rs`): - `register_validator` — 任何满足 `MIN_VALIDATOR_STAKE` (1 SOL) 的人均可加入验证者集 - `distribute_fee` — 将奖励记入 leader 的 `ValidatorAccount` 上的 `pending_rewards` - `claim_rewards` — 验证者将累积收益提取到自己的钱包 - `slash_validator` — 针对违规行为销毁 1–100% 的质押,记录在 `times_slashed` 中 验证者仅执行验证操作;proof 的生成由用户完成。单个 CPU 核心在大约十毫秒内即可验证 Groth16 proof,因此参与共识不需要 GPU 或托管硬件。该角色旨在由笔记本电脑运行。 在共识后自动调用 `distribute_fee` 的验证者 quorum daemon 路径正在 [#164](https://github.com/paraloom-labs/paraloom-core/issues/164) 中跟踪。在该功能发布之前,费用分配需要手动执行指令;链上机制本身保持不变。 ## 快速开始 ``` # 克隆与构建 git clone https://github.com/paraloom-labs/paraloom-core.git cd paraloom-core cargo build --release # 运行测试 cargo test --all # 尝试 compute demo cargo run --bin compute-demo ``` ## 项目结构 ``` paraloom-core/ ├── src/ │ ├── privacy/ # zkSNARK circuits, Poseidon hash, shielded pool │ ├── compute/ # WASM engine, job distribution, private compute │ ├── consensus/ # Byzantine consensus, reputation system │ ├── bridge/ # Solana program interface │ └── bin/ # CLI tools ├── programs/ # Anchor program (Solana) ├── tests/ # Integration tests └── scripts/ # Localnet/devnet scripts ``` ## 文档 完整文档:**[docs.paraloom.io](https://docs.paraloom.io)** **入门** - [快速开始](https://docs.paraloom.io/docs/quickstart) — 在 devnet 上运行节点 - [安装](https://docs.paraloom.io/docs/installation) — 从源码构建及前置条件 **核心概念** - [架构](https://docs.paraloom.io/docs/architecture) — 系统层和模块结构 - [愿景](https://docs.paraloom.io/docs/vision) — 设计目标和威胁模型 - [用例](https://docs.paraloom.io/docs/use-cases) — shielded 转账和隐私计算能解锁什么 **层** - [隐私层](https://docs.paraloom.io/docs/privacy-layer) — Groth16 电路、Poseidon、nullifiers、Merkle tree - [计算层](https://docs.paraloom.io/docs/compute-layer) — WASM 执行、BFT 验证、加密 I/O - [共识](https://docs.paraloom.io/docs/consensus) — BFT 阈值、声誉门控、equivocation slashing - [网络](https://docs.paraloom.io/docs/networking) — libp2p mesh、Kademlia DHT、ping 存活检测 - [Solana 桥接](https://docs.paraloom.io/docs/solana-bridge) — 链上 Anchor 程序、桥接状态、nullifier PDA **运维** - [验证者指南](https://docs.paraloom.io/docs/validator-guide) — 在普通硬件上运行验证者 - [Coordinator HA](https://docs.paraloom.io/docs/coordinator-ha) — 主动/被动故障转移 - [监控](https://docs.paraloom.io/docs/monitoring) — `/health`、`/ready`、`/metrics` 端点 - [性能](https://docs.paraloom.io/docs/performance) — proof 生成、验证、吞吐量 - [故障排查](https://docs.paraloom.io/docs/troubleshooting) — 常见错误与恢复 **参考** - [API 参考](https://docs.paraloom.io/docs/api-reference) — RPC 和库接口 - [MPC 仪式](https://docs.paraloom.io/docs/ceremony) — BGM17 可信设置工作流 - [安全](https://docs.paraloom.io/docs/security) — 威胁模型、已知限制、审计状态 - [发布](https://docs.paraloom.io/docs/releases) — 版本说明和迁移指南 - [开发者指南](https://docs.paraloom.io/docs/developer-guide) — 贡献 paraloom-core - [常见问题](https://docs.paraloom.io/docs/faq) ## CLI 用法 ``` # 隐私操作 paraloom wallet deposit --amount 1.0 paraloom wallet withdraw --amount 0.5 --to
# Compute 操作 paraloom compute submit --wasm ./program.wasm --input ./data.json paraloom compute submit --wasm ./program.wasm --input ./data.json --private ``` ## 在 devnet 上运行验证者 无须许可。任何拥有 ≥ 2 SOL 的 devnet 钱包的人都可以质押进入 注册表并加入共识 mesh。 ``` # 1. system deps (Debian/Ubuntu;完整列表请参见 release.yml) sudo apt-get install -y build-essential pkg-config libssl-dev \ protobuf-compiler clang libclang-dev cmake \ libc++-dev libc++abi-dev libstdc++-12-dev # 2. 构建 unified CLI git clone https://github.com/paraloom-labs/paraloom-core.git cd paraloom-core cargo build --release --bin paraloom # 3. 在 devnet 上为一个 Solana keypair 提供资金 (faucet.solana.com 每 8 小时提供 2 SOL) solana-keygen new --no-bip39-passphrase -o ~/.config/solana/paraloom-validator.json solana airdrop 2 $(solana-keygen pubkey ~/.config/solana/paraloom-validator.json) \ --url https://api.devnet.solana.com # 4. 质押 1 SOL 并在链上注册 # (devnet RPC 和 canonical program ID 是默认的 — 你只需要 keypair) ./target/release/paraloom validator register \ --keypair ~/.config/solana/paraloom-validator.json # 5. 根据模板编写 validator.toml (连接 bootstrap + bridge),然后启动 cp scripts/devnet/validator.toml.example ~/.paraloom/validator.toml # 编辑文件中标记的路径,然后: ./target/release/paraloom validator start --config ~/.paraloom/validator.toml ``` 随时使用 `paraloom validator status --keypair ~/.config/solana/paraloom-validator.json` 检查您的注册状态, 或使用 `paraloom validator list` 查看整个实时集合。 模板的 `bootstrap_nodes` 指向 paraloom-labs 锚点: ``` /ip4/67.205.142.8/tcp/9300/p2p/12D3KooWFf8xfNz77E9Ve4HnpyZkAHKAcUdw4LmagpFCYQD6R7WK ``` 一旦拨号成功,Kademlia DHT 会自动扇出扩展到其余的验证者集 —— 锚点仅仅是第一跳。其 libp2p 身份已被 持久化 (#206),因此这个 multiaddr 是稳定的;如果您缓存了它, 即使在锚点重启后它也会一直保持解析。 完整指南(systemd 单元、日志监控、常见陷阱)位于 [docs.paraloom.io/docs/validator-guide](https://docs.paraloom.io/docs/validator-guide)。 ## 开发历史 `main` 目前使用 **merge commit**,因此每个 PR 的原子提交历史 都能端到端保留。早期开发 (v0.1) 在六个长期存活的 feature 分支上 使用了 **squash-merge**,整合了最初的隐私 / 桥接 / 计算 / CLI 工作; 该历史在这些分支上仍然可读: - [`feature/privacy-layer`](../../tree/feature/privacy-layer) — zkSNARK 电路、Pedersen commitments、shielded pool - [`feature/solana-bridge`](../../tree/feature/solana-bridge) — Anchor 程序、PDA 设计、充提 - [`feature/zksnark-verification`](../../tree/feature/zksnark-verification) — proof 生成、verifier 集成 - [`feature/compute-layer`](../../tree/feature/compute-layer) — WASM 引擎、任务分发 - [`feature/compute-privacy-integration`](../../tree/feature/compute-privacy-integration) — 加密 I/O 粘合代码 - [`feature/cli-tool`](../../tree/feature/cli-tool) — `paraloom` CLI ## 许可证 MIT 许可证 — 详见 [LICENSE](LICENSE)。

使用 Arkworks、libp2p 和 Anchor 构建

标签:Layer 2, Rust, Solana, 便携式工具, 区块链, 可视化界面, 网络流量审计, 自定义请求头, 通知系统, 隐私计算, 零知识证明