Shielded CSV 利用了 Bitcoin 的什么特性?它只利用 Bitcoin 来解决双花问题,在 Bitcoin 上写入账户公钥,聚合签名以及交易 Hash(会合并到签名中)。由于它的隐私需求,并没有通过 Bitcoin 账户以及 UTXO 来表达所有权。 如何发送和接收交易?发送者和接收者都需要维护一个支持不存在证明的状态累加树,通过不存在证明及叶节点得到新的状态树根,从而实现增量验证和更新,而无需保存全量状态。这也是它隐私实现的基础,在 Merkle tree 证明的基础上,通过零知识证明来隐藏 Merkle 证明的原始数据。 发送方生成交易,执行交易,将聚合签名提交到 Bitcoin,然后把交易执行后的状态证明发送给接收方,利用状态树来降低接收方的验证成本,接收方不需要验证前置的历史状态。 如何解决交易排序问题?因为有全局状态树,后一个交易需要等待前一个交易上链后得到前置的状态树根才能生成新的交易。这种方案很容易造成交易冲突。所以它的方案中有一个 Publisher 的角色,承担类似排序器的作用。另外一个问题是,如果接收方发现交易执行结果不一致,可以拒绝接收,但这时候交易信息已经提交到链上了。这种情况下如何证明和回滚交易,貌似只能依赖社会共识了。 数据可用性以及网络通讯问题:Bitcoin 的 CSV 资产的方案中,交易或证明的托管需要通过链下的第三方服务来解决。发送交易也需要对方同时在线,所以需要一种异步邮箱模式的托管服务来降低交互成本。现在这些都没有标准化的解决方案,这个领域有很大的空间。\n原文链接