Poseidon(POS币)是一个基于Solana区块链的零知识保护交易系统。它使用Groth16
zkSNARKs和Merkle树形式的票据承诺来提供私密的存款、转账和取款服务。与依赖API服务的中心化隐私解决方案不同,Poseidon是一个完全去中心化的链上程序,无需信任即可在Solana区块链上运行。链上观察者可以看到资金流入和流出资金池,但无法可靠地将具体的存款与取款关联起来。
设计目标
不可关联的资金流。断开存款和取款过程中发送方和接收方之间的关联。
金额保密。将确切的转账金额隐藏在承诺和密文背后。
严格的偿付能力。确保资金池始终有充足的资金支持;任何价值都不能通过证明来创造。
支持第三方转发。允许第三方代表用户提交交易,而无需获取敏感信息。
核心组件
全球状态。
存储默克尔树根、其最近历史记录、会计总计、配置和管理密钥。
泳池管理。
管理存放所有屏蔽端口的PDA池。只有程序指令才能转移这些资金。
证据核实。
使用硬编码的验证密钥验证BN254上的Groth16证明。
无效化跟踪。
记录已使用无效器的音符,阻止任何重复使用同一音符的尝试。
两阶段提款。
将提现操作拆分为准备和执行两个步骤,以便用户可以在链下生成复杂的证明,而中继者可以提交简单的执行交易。
零知识电路(Circom)
该电路会检查所有隐藏的算术和成员资格规则:
合并-拆分逻辑。
允许最多六个输入和六个输出,强制它们构成有效的保值变换。
数量不变性。
确保投入总额加上公共存款等于产出总额加上公共取款。
Merkle会员资格。
证明每个笔记都存在于全局承诺树中,且位于已知的根节点下。
无效化绑定。
将无效化符绑定到密钥,因此只有音符所有者才能生成它们。
收件人绑定。
承诺向证明中的收款人地址付款,防止程序被欺骗而向其他收款人付款。