主页 > imtoken钱包网址 > 黄金推荐读物丨SNICKER:一种无交互的比特币混币新技术

黄金推荐读物丨SNICKER:一种无交互的比特币混币新技术

imtoken钱包网址 2023-11-29 05:10:58

金色财经近期推出Hardcore栏目,为读者提供热门项目的介绍或深度解读。

匿名性是比特币的特性之一,但匿名不等于隐私,因此加密货币行业的开发者为增强比特币的隐私性做出了很多努力。 CoinJoin是其中一项技术,Wasabi、Samorai、JoinMarket等一些钱包已经在提供混币服务,但这项技术需要用户同时在线和交互。 现在 JoinMarket 贡献者 Adam “waxwing” Gibson 提出了一种名为 SNICKER 的新硬币混合技术。 本文编译自比特币杂志。

人们对比特币隐私的需求越来越大,而 SNICKER 可能是比特币隐私的下一个工具。

根据中本聪的白皮书,隐私是比特币协议的设计目标,但在今天,区块链分析往往会破坏用户隐私。 这是个问题。 例如,比特币用户可能不想让人们知道他们的钱花在哪里、他们如何赚取或拥有多少比特币,而企业可能不想将交易细节泄露给竞争对手。

幸运的是,比特币开发研究人员正在想出越来越多的解决方案来保护用户隐私。 “比特币隐私”的捍卫者之一是 Adam “waxwing” Gibson比特币混币,他以对 JoinMarket 的贡献而闻名,JoinMarket 是一种允许用户混合硬币并为此提供经济奖励的协议。

最近,Gibson 提出了一个新的想法:SNICKER(Simple Non-Interactive Coinjoin with Keys for Encryption Reused,简单的非交互式 Coinjoin with reusable encryption keys)。 现在作为比特币改进提案 (BIP) 草案提交,SNICKER 将允许在没有任何同步或交互的情况下完成硬币混合,这意味着用户将不需要同时通信或在线。

投币网

到目前为止,SNICKER 是基于著名的比特币混合技术 CoinJoin。 一些最流行的混合解决方案正在使用 CoinJoin 技术,包括 Wasabi Wallet (ZeroLink)、Samorai Wallet (Whirlpool) 和 JoinMarket。

CoinJoin 本质上是一种将多笔交易合二为一的工具。 假设爱丽丝想付给卡罗尔一个比特币,而鲍勃想付给戴夫一个比特币。 爱丽丝和鲍勃可以合作创建一个大交易,他们每人花费一个比特币(总共两个),卡罗尔和戴夫每人收到一个比特币。 区块链间谍将无法分辨哪个付款人向哪个收款人付款,从而保护每个人的隐私。

然而,在实践中,比特币交易号码的隐私经常被泄露。 如果 Alice 想付给 Carol 一个比特币,而 Bob 想付给 Dave 两个比特币,那么通过比较发送和接收的金额就可以清楚地知道谁在付给谁。

外国的比特币便宜中国的比特币贵为什么?_比特币混币_比特币分叉影响比特币总量

这就是为什么 CoinJoin 经常被用来混币的原因。 Alice 和 Bob 没有付钱给别人,而是给自己发送了一个比特币。 通过将它合并到一个交易中,区块链间谍无法分辨谁返回了哪一枚硬币:硬币是混合的,保护了爱丽丝和鲍勃的隐私。

CoinJoin 混合器现在运行良好,但它们有一个缺点:它们需要交互。 CoinJoin 交易只有在所有参与用户都签署了整个交易时才有效,但要签署整个交易,参与用户必须首先向其中添加所有比特币和一个新的接收地址。 这通常意味着他们需要多次通过交易,并且通常需要他们同时在线。

这样的要求对很多用户来说有点难,这也是为什么 CoinJoin 交易不是很普遍的原因之一。 这些需求正是 SNICKER 能够解决的。

士力架版本 1

本节中描述的协议是 SNICKER 的第一个版本。 这个版本比其他版本更容易理解,但必须注意,它实际上并不是协议的最佳版本,也不是最有可能实现的版本。 (稍后会详细介绍替代版本。)

SNICKER 版本 1 的工作原理如下:

假设 Alice 想要混合一个比特币,这反映在区块链上一个未花费的交易输出(UTXO)中。 她做的第一件事是将比特币重新发送到她的同一个地址。 没错,在这个版本的 SNICKER 中,她正在重复使用地址,这违背了比特币的最佳实践。 但这很方便:它公开地将此 UTXO 标记为(可能)用于混合。

顺便说一句,这并不意味着爱丽丝不能花这个比特币。 它仍然在她的钱包里,随时可以使用。 如果有人注意到,它只是被标记了。

Bob 也有一个比特币可以混合。 (实际上,数量不必相等,Bob 至少需要有 Alice 的数量。)Bob 不认识 Alice,但他确实知道像 Alice 这样的用户在那里将他们的 UTXO 代币化以进行混合。 所以 Bob 扫描区块链寻找潜在的匹配项。 他找到了 Alice 的 UTXO,可能还有更多匹配的 UTXO,包括误报(并非所有重复使用的地址都真正可用于混合)。 然而,现在让我们假设 Bob 只找到一个匹配项:Alice 的 UTXO。 (我们稍后会回到其他可能的匹配和误报。)

外国的比特币便宜中国的比特币贵为什么?_比特币混币_比特币分叉影响比特币总量

通过匹配,Bob 现在获得了重用地址对应的公钥。 这是完全可能的,因为地址是重复使用的:通过第一次使用它,爱丽丝在区块链上发布了那个公钥。 (一旦 UTXO 被花费,公钥在区块链上可见,而地址始终可见。)

此时,Bob 拥有 Alice 的 UTXO(因为她签名了)和她的公钥(因为她从地址中花费了一次)。

Bob 现在获取 Alice 的公钥并将其与他自己的私钥(用于他想要混合的比特币)结合以创建“共享秘密”。 这实际上是密码学书籍中最古老的技巧,因为只有 Alice 和 Bob 可以生成它:Bob 使用他的私钥和 Alice 的公钥,Alice 使用她的私钥和 Bob 的公钥(对应于他想要混合的比特币) .

所以现在 Bob 有了 Alice 的 UTXO 和她的公钥,以及一个“共享秘密”(因为他用 Alice 的公钥和他的私钥生成了它)。

Bob 以一种新的方式使用“共享秘密”。 他用它在数学上“调整”爱丽丝的公钥。 这种调整实际上创建了一个新的公钥。 除了......没有人拥有私钥。

有趣的是,得益于密码学的魔力,Alice 还可以发现与调整后的公钥对应的调整后的私钥! 如果她用相同的“共享秘密”调整原始私钥,则调整后的私钥将与调整后的公钥相对应。

换句话说,鲍勃可以为爱丽丝生成一个新的公钥,而爱丽丝又为爱丽丝生成一个新的比特币地址,只有爱丽丝可以使用。 哪怕她现在不知道!

所以,Bob 现在有了 Alice 的 UTXO 和她的公钥,一个“共享秘密”,以及一个新的 Alice 比特币地址(使用她的公钥和“共享秘密”生成)。

这几乎足以创建有效的 CoinJoin 交易。 具体来说,Bob 接受了 Alice 的 UTXO 并为他的比特币添加了 UTXO,因此有两个输入。 然后他将 Alice 的新地址和他自己的地址添加为输出(连同费用和其他一些详细信息,例如他自己的更改地址(如果需要)。 然后他签了协议。

比特币混币_外国的比特币便宜中国的比特币贵为什么?_比特币分叉影响比特币总量

现在唯一缺少的是爱丽丝的签名。

交付给爱丽丝

最后一步,到达爱丽丝,实际上比听起来容易,但需要最后的手段。

Bob 可以简单地将几乎完成的 CoinJoin 交易发布到某个地方,让 Alice 找到。 例如,在专供 SNICKER 用户使用的公告板上; 最好是使用 Tor 隐藏服务或以其他方式为发布者提供匿名服务的地方。

但是,如果使用纯文本,这仍然不理想。 如果监视器监视公告板,他们可以很容易地看到哪些输入属于提议者(在本例中为 Bob),哪些输入属于接受者(在本例中为 Alice):签名者就是提议者。 这本身可能会侵犯隐私。 但如果 Bob 提出更多混合不同比特币的建议,情况会更糟。 在这种情况下,例如,监视器可能能够将所有不同的 UTXO 连接到 Bob,因为他的一批已发布交易同时发布在公告板上。

所以,鲍勃用爱丽丝的公钥加密了 CoinJoin 交易! 这样,只有爱丽丝才能解密这笔交易,监控者什么也拿不到。

在将加密货币交易发布到公告板后,Bob 已经完成了他需要做的所有事情。 如果他愿意,他可以在网上消失。

是时候爱丽丝了

由于 CoinJoin 交易现在已加密,因此引入了最后一点复杂性。 虽然 Alice 知道在哪里寻找交易信息(在 SNICKER 公告板上),但她不知道要寻找什么:公告板上的所有 CoinJoin 交易似乎都是加密的信息块。

比特币混币_外国的比特币便宜中国的比特币贵为什么?_比特币分叉影响比特币总量

只有一种方法。 Alice 需要尝试使用她的私钥解密所有包,希望其中一个有用。

但是,当 Bob 的加密信息块变成 CoinJoin 交易时,Alice 拥有完成混合所需的一切。 她使用她的私钥和 Bob 的公钥(包含在他的输入中)生成一个共享秘密,然后她可以使用它来创建一个新的调整后的私钥。 在检查新密钥是否与她在输出中的新接收地址相对应后,她签署交易并将其广播到比特币网络。

爱丽丝和鲍勃的硬币是混合的,即使他们从不互动,他们也不需要同时在线。

尽管这个过程在纸面上看起来很费力,但请记住,所有过程都可以通过软件抽象出来,转化为笔记本电脑或手机屏幕上的几个按钮,甚至完全自动化。

士力架版本 2

到目前为止展示的 SNICKER 是该提案的第一个版本。 Gibson 提出了第二个版本,其他变体正在讨论中。

第二个 SNICKER 版本类似,但避免了重复使用地址的需要,只是稍微复杂一些。

在 SNICKER 的第二个版本中,Bob 不会从重用地址中获取 Alice 的公钥。 相反,Bob 从创建 Alice 的 UTXO 的同一笔交易的输入中获取公钥。 Bob 假设此交易中至少有一个输入是由 Alice 自己创建的,并且她仍然拥有这些输入的私钥。

Bob 做出这样的假设是因为 Alice 的 UTXO 被更明确地标记为可用于混币,只有当 Alice 控制输入对应的私钥时才会被明确标记。 SNICKER BIP 没有具体说明初始令牌化是如何完成的,但建议某些钱包(例如 JoinMarket 钱包)可以正确显示此类信息。 或者,爱丽丝可以简单地在公告板上发布一条消息来宣传她的 UTXO。

比特币分叉影响比特币总量_外国的比特币便宜中国的比特币贵为什么?_比特币混币

但更好的是,一旦您开始使用 SNICKER,寻找新的匹配项将变得更加容易。 这是因为识别 SNICKER 交易本身并不容易,现有的 SNICKER 用户可能希望重新组合。 换句话说,在最初的引导阶段之后,未混合的比特币将与之前混合的比特币混合,从而产生更多的混合,这反过来又可以用于更多的混合。

挑战与机遇

如上所述,SNICKER BIP 仍然只是一个草案,有待审查和可能的改进。 (自 Gibson 在博客文章中首次公开提出以来,这个想法在某些方面有所发展。)该提案现已提交,使其成为 BIP,因此它可以标准化并在钱包之间相互兼容。

SNICKER 还面临一些未解决的问题和挑战,尽管这些似乎都不是无法克服的。 例如,这些包括应该选择哪些 UTXO 作为匹配项,特别是如何限制误报的数量。 除了重复使用的地址之外,还可以通过按数量、UTXO 的年龄或使用的特定类型的钱包进行过滤来解决潜在的匹配问题。

但是,正如本文前面提到的,即使存在多个匹配项(包括误报),这也可能只是一个小问题。 要约人(“Bob”)可以简单地为所有要约人创建候选交易。 即使这些提议发生冲突(因为 Bob 对所有人使用相同的 UTXO),也只意味着第一个响应的 taker(第一个“Alice”)完成了混合,而其他潜在的 taker 会发现他们已经来不及了,但没有造成伤害。 在误报的情况下,不会造成实际伤害,Bob 的报价将简单地放在公告板上比特币混币,永久忽略(或直到删除)。

然而,垃圾邮件可能是一个特别严重的问题。 由于公告板将托管加密数据消息,因此无法过滤掉“虚假”提交的交易,攻击者发布乱码来破坏 SNICKER 协议。 Gibson 在他的 BIP 草案中针对这个问题提出了一些解决方案,但这引入了新的权衡,例如需要费用才能提交交易。

另一方面,SNICKER 还提供了一些迄今为止为简单起见而被忽略的优势。 这样做的好处之一是要约人可以为接受者的产出增加一些资金,从而增加接受混合货币交易的经济激励。 SNICKER 也可以同时与两个以上的用户混合使用,尽管这样做比较复杂。

正是因为该协议是非交互式的,Gibson 认为与 JoinMarket 等其他一些隐私技术相比,SNICKER 在钱包中的实现相对容易。 到目前为止,Electrum Wallet 已表示有兴趣采纳该提案,尽管实际实施可能还有很长的路要走。

有关 SNICKER 的更多信息和背景,请参阅 BIP 草案 ( ),关注比特币开发邮件列表讨论或阅读关于 Gibson 提案 ( ) 的(稍微过时的)博客文章。

原文:SNICKER:爱丽丝和鲍勃如何在没有互动的情况下混合比特币

地址: