[[alloc] init] 发布针对私人比特币交易的屏蔽比特币提案
核心要点
- 要使用此协议,您只需要一个比特币节点和一个屏蔽比特币索引器。
- 注释输出使用此共享秘密进行加密,并且临时 sk_eph 未加密,因此接收者可以生成共享秘密。
- Shielded Bitcoin 的计划以及他们的下一部分工作是一种挂钩机制,允许用户使用 PIPE 加密控制密钥将资金存入 Shielded Bi
![[[alloc] init] 发布针对私人比特币交易的屏蔽比特币提案](/cover-default.webp)
屏蔽比特币是由 [[alloc] init] 研究人员 Clara Shikhelman、Misha Komarov 和 Aleksei Moskvin 提出的一项提案,旨在在比特币基础层上建立一种新颖的隐私元协议,以实现屏蔽比特币交易,而不需要运营商、软分叉或对比特币共识进行其他更改。您可以在此处找到白皮书并在此处找到博客公告。
该协议定义了交易结构和索引协议,以实现强大的隐私保护交易,同时依靠比特币 PIPE 将资金进出系统。有关 PIPE 机制的更多信息请参见文章末尾。
它的设计很大程度上是比特币的一面镜子;有一个相当于UTXO(票据)的东西,交易像普通比特币交易一样消耗票据作为输入,证人证明消耗的输入是经过适当授权的,节点(元协议情况下的索引器)解析交易历史并构建已花费和未花费的硬币的当前状态等。
然而,所有细节都截然不同。
屏蔽比特币交易只是使用 OP_RETURN、见证字段或其他数据携带方法包含在比特币交易中的带有前缀(类似于“shbtc:”)的数据块。它对比特币没有任何意义,比特币网络不会验证它,也不会对其执行任何规则。无效的屏蔽比特币交易完全有可能在链上结束,这是屏蔽比特币索引器的工作,它被动地监视区块链(读取:节点)以在验证失败时忽略这些交易,并拒绝将它们应用于更新网络余额的状态。
索引器不会像比特币对 UTXO 那样从未使用的票据集中删除票据。它使用无效符集。这是用户公开发布加密证明和废止符的一种方式,表明票据已被花费,而无需透露哪张票据已被花费。这个想法是,您不是查看注释是否在“未使用的注释集中”,而是检查并查看是否已使用无效符。索引器构建一棵永远生长的默克尔树,并且只能添加到创建的每个音符输出中,然后添加到无效器集。
要使用此协议,您只需要一个比特币节点和一个屏蔽比特币索引器。不需要服务提供商、协调员或任何链下状态来收回资金。它的工作原理就像链上比特币一样,您所需要的只是您的节点/索引器和密钥。
每个用户钱包都会派生一个主密钥,并从中创建所涉及的所有其他密钥组。
可以用与比特币中的 HD 钱包非常相似的方式来思考这一点。您可以利用这种关系生成许多地址集。 sk_spend 是您的私钥,sk_nf 用于无效票据输出,vk_in 用于解密和查看传入票据,vk_out 用于查看您的传出交易,sk_view 用于生成接收地址。
当用户想要向某人提供一个地址以向他们发送资金时,他们会生成一个类似于派生值的分散器值 d,然后将该值与其 sk_view 键相乘。生成的公钥、pk_d 和 d 是用户的地址。
然后,发送者生成一个随机值,即 r_seed,这是票据输出加密和无效所必需的(我们稍后会介绍)。交易输出只包含三个加密的东西,输出的值、接收者给发送者的 d 值以及发送者的 r_seed 值。发送者使用秘密临时密钥对和接收者的公钥来创建共享秘密。双方可以通过将自己的私钥乘以对方的公钥来生成相同的秘密。注释输出使用此共享秘密进行加密,并且临时 sk_eph 未加密,因此接收者可以生成共享秘密。
在图的输入端,有效交易需要两件事:消耗的票据输出的公共无效器,以及零知识证明,证明 1) 票据输出包含在票据的 merkle 树中,2) 交易由适当的 sk_spend 密钥授权,3) 正确导出无效器,4) 没有发生通货膨胀。
如果您注意到上图中,无效器使用 sk_nf 键、从 r_seed 派生的 ρ 值以及音符在音符输出的 merkle 树中的位置。零知识证明确保了所有这些,这就是为什么您可以简单地计算重复的无效符,而不是删除用过的笔记。即使您永远不知道无效符对应的票据输出,每个交易中的零知识证明也保证添加到集合中的每个无效符都来自有效的票据输出。只要您没有重复,它就提供相同的双花保证。
就这样,该协议使您能够在比特币区块链上嵌入加密的元协议交易,但仍然保证没有任何东西被双花,并且硬币不会凭空膨胀。
这实际上是一个在隐私属性方面设计得非常好的系统,并且与 Zcash 屏蔽池之类的东西不相上下。在进入和退出元协议时需要考虑隐私因素,这些因素将在即将发布的论文中详细说明。不存在像coinjoins那样测量隐私或定期重新混合的问题。
所以,挂钩。目的是使用 PIPE v2(一种见证加密方案)构建挂钩。 PIPE 允许您使用不会泄露密钥的程序/机制来加密私钥,除非您可以提供满足特定条件的 ZK 证明(即某些 UTXO 的状态、交易已被确认等)。这将允许挂钩在没有运营商、联盟或任何第三方托管资金的情况下发挥作用。
这不需要对比特币进行软分叉或协议更改,并且完全发生在链下。
Shielded Bitcoin 的计划以及他们的下一部分工作是一种挂钩机制,允许用户使用 PIPE 加密控制密钥将资金存入 Shielded Bitcoin,然后通过生成链上确认的合法挂钩交易的 ZK 证明来“解锁”该密钥。
目前正在制定定义系统这方面的论文,并将在不久的将来发布。
