用途:本技能是 STRK20(Starknet 隐私池)的路由器与心智模型,用于在集成前选择正确路线,并准确解释其工作方式。STRK20 是已上线主网的、面向 Starknet 上任意 ERC-20 的基于 note(UTXO)的隐私池,运行在既有钱包与流动性之上,内置合规路径。与固定面额混币器不同,note 可携带任意金额并自动处理找零;用户将代币遮蔽为加密 note,在链上经 STARK 证明验证进行私密交易,需要透明时再解遮蔽。
主要能力与路线选择:面向用户钱包的私密 dapp 走 Starknet Wallet API(按状态生命周期选 invoke helper 或 shadow account,见 strk20-wallet-api);私密 DeFi 流调用的 Cairo 适配器走 Anonymizer 合约 privacy_invoke(strk20-anonymizer-contracts);自持密钥的隐私钱包或后端走 Privacy SDK 的 createPrivateTransfers(strk20-privacy-sdk);自行运行证明可选本地 Docker prover 或远程 SSH 主机。原则是先从最窄且密钥归属正确的路线开始,面向用户的 dapp 优先 Wallet API,绝不向普通 dapp 用户索取 viewing key。
关键模型:note 记录 (owner, token, u128 amount) 并加密存储,按 UTXO 语义整笔花费,找零为新 note;open note 跳过金额加密(OPEN_NOTE_SALT = 1,加密 note 盐 ≥ 2)。nullifier 为绑定 note 与持有者私密 viewing key 的 Poseidon 哈希,花费时发布,确定性、唯一、不可关联。viewing keypair 经 SetViewingKey 一次性注册且视为不可变,转账前双方都必须已注册。channel 为有向的发送方到接收方通道,接收方只扫描自己的通道。交易是固定阶段 0 到 7 的动作批次,每代币临时余额不得为负且必须以零结束。证明在虚拟 Starknet 环境执行后由 Stwo 生成 STARK 证明(12 核 / 46 GiB 约 29 秒,依赖硬件)。
合规:每笔存款经 FPI 筛查并在链上验证签名,协议级自 v0.14.3 起,任何路线包括自托管 prover 都适用;注册时 viewing key 以审计者公钥托管,仅针对合法请求的用户披露,无批量监控模式。
已知限制:开通道与资金移动在同一交易或紧邻时间内可能关联;特殊金额或快速进出会缩小匿名集;池的边缘(存取款、时间)按设计公开。
用法与校验:版本、地址等易变事实需先运行 python3 scripts/check_freshness.py(加 --quick 跳过 32 个逐页存活请求;退出码 1 表示事实已变,2 表示查询失败结果不完整)。无法核实的路线或合规问题应停下并联系 STRK20 团队,不要臆造地址或 API 形态。官方资料另见 https://strk20-by-example.org 与 https://strk20.starknet.io。