金色荐读丨SNICKER:一种新的无需交互的比特币混币技术

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

匿名是比特币的特性之一,但是匿名不等于隐私,所以加密货币业研发人员做出了很多努力来增强比特币的隐私性。CoinJoin是其中一项技术,已经有一些钱包如Wasabi,Samorai和JoinMarket在提供混币服务,但这项技术要求混币需求者同时在线并有交互行为。现在JoinMarket贡献者Adam “waxwing” Gibson提出了一项新的混币技术SNICKER。本文编译自bitcoinmagazine。

人们对比特币隐私的需求日益增长,SNICKER可能是比特币隐私下一个工具。

按照中本聪的白皮书,隐私是比特币协议的设计目标,但如今,区块链分析通常可以破坏用户的隐私。这是一个问题。举例来说,比如比特币用户可能不希望人们知道他们的钱花在哪里,他们的收入如何或拥有多少比特币,企业可能不想将交易的详细信息泄露给竞争对手。

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

最近,Gibson提出了一个新想法:SNICKER(Simple Non-Interactive Coinjoin with Keys for Encryption Reused,可复用加密密钥的简单非交互式Coinjoin)。现在已作为比特币改进提案(BIP)草案提交,SNICKER将允许无需任何同步或交互而完成混币,这意味着用户无需沟通或同时在线。

金色晨讯 | 以太坊近84%的节点已完成伊斯坦布尔升级:1.北京市金融科技应用试点代表的最新成果包括区块链等前沿技术。

2.截至目前,以太坊近84%的节点已完成伊斯坦布尔升级。

3.俞敏洪:区块链等技术都在积极尝试跟产业结合。

4.全国已有10城发布针对区块链行业的专项优惠补贴政策。

5.BISS官方:配合相关部门的调查工作暂告一段落,会积极配合主管部门工作。

6.中科院院士郑志明:下一代区块链技术的核心是三元平衡寻优问题。

7.报告:千禧一代宁愿持有比特币,也不愿投资Netflix或迪士尼。[2019/12/9]

CoinJoin

到目前为止,SNICKER基于知名的比特币混币技术CoinJoin。一些最受欢迎的混币解决方案在使用CoinJoin技术,包括Wasabi钱包(ZeroLink),Samorai钱包(Whirlpool)和JoinMarket。

CoinJoin本质上是将多个交易混合为一个交易的工具。假设Alice想向Carol支付一枚比特币,而Bob要向Dave支付一枚比特币。Alice和Bob可以合作创建一笔大交易,在这笔交易中,他们均花了一个比特币(总共两个),而Carol和Dave则各自获得了一个比特币。区块链间谍将无法辨别是哪个付款者向哪个收款者付的款,从而使所有人的隐私受益。

然而,实际上,比特币交易数量的隐私经常被泄漏。如果Alice想向Carol支付一枚比特币,而Bob想向Dave支付两枚比特币,则很明显,通过比对发送和接收的数额很容易看出谁在向谁支付。

这就是为什么CoinJoin常被用于混币的原因。Alice和Bob不向别人付钱,而是向自己发送了一个比特币。通过将其合并为一笔交易,区块链间谍无法分辨是谁退回了哪枚代币:这些代币混合在一起,从而保护了Alice和Bob的隐私。

金色相对论| 覃文延:原生区块链项目要长存必须有足够的现金流:在本期金色相对论中,北美区块链基金会主席、核聚链创始人覃文延表示:原生区块链项目要长存必须有足够的现金流,最好的就是自己造血功能,也就是区块链要在产业落地的原因。没有产业支撑,很难有足够的现金流来支撑元素区块链的研发。在保证现金流方面的做法有下面几点:

1、谨慎面对“币改”很多早期原生态区块链项目靠输出区块链底层技术给很多传统企业发币来获得现金流,但是现在这条路其实走得很苦,融资难就陷入已经和正在发生的P2P灾难中。

2、务实推动传统产业“链改”当然这个“链改”是广义的也就是给传统产业区块链赋能,通过深度技术输出,快速现金回流,赋能实体产业健康成长。

3、创造性的实现区块链自身平台和产品的突破,商业模式的突破,类似早期的以太猫等,区块链技术本身具有很强的创新型,它可以创造新的社会刚需的产品和服务,那样企业会获得社会和市场的认可而直接从市场拿钱,投资人也会自动蜂拥而至。

回顾历史的经验,时代的独角兽都是在大势不太好的时候产生的,比如谷歌、Facebook、阿里的崛起都是发生在当初互联网“泡沫”爆破之后。在目前token市场疲软、融资受监管的环境下,区块链创新企业想要获得长存,需要做到开源节流;丰富社群运营内容;推进主链建设;坚持应用落地方向,让自己剩下来。[2018/9/7]

CoinJoin混币器如今工作的不错,但是它们有一个缺点:它们需要交互。仅当所有参与用户都签署了整个交易时,CoinJoin交易才有效,但要签署整个交易,参与用户必须首先向其添加所有比特币和新的接收地址。这通常意味着他们需要传递好几次交易,并且通常要求他们同时在线。

对于许多用户来说,这样的要求有点困难,这就是CoinJoin交易不是很常见的原因之一。这些要求正是SNICKER可以解决的。

分析 | 金色盘面:BTC期货合约持仓变化:金色盘面综合分析:OKEX的BTC期货合约持仓BTC87966,较昨晚略有下降。做多账户升至57%,提高1个百分点,做空账户39%,与前值持平,多空力量变化不大;主力多头平均持仓比例为21.8%,下降了近11个百分点,平仓明显,主力空头平均持仓比例为16.3%,上升1个百分点,基本持平,整体看多头在一波攻击后,获利了结的心态明显。截止发稿,OKEX现货价格为6413,期货合约当周BTC0817价格为6390,贴水维持在20点左右。(数据来源OKEX)[2018/8/12]

SNICKER版本1

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

SNICKER版本1的工作方式如下:

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

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

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

分析 | 金色盘面:BCH短线上涨:金色盘面综合分析:大盘回暖,BCH短线急速上涨,上方压力位709.21,第二压力位717.76,注意压力位回调风险。[2018/8/7]

通过匹配,Bob现在获取与重用地址相对应的公钥。这完全有可能,因为地址被重用了:通过第一次使用它,Alice在区块链上发布了该公钥。 (UTXO一旦被花费,公钥就会在区块链上可见,而地址始终可见。)

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

现在,Bob使用Alice的公钥并将其与自己的私钥(用于他要混合的比特币)结合起来,以创建“共享密钥”。从字面上看,这是密码学书籍中最古老的窍门,因为只有Alice和Bob可以生成它:Bob用他的私钥和Alice的公钥,Alice用她的私钥和Bob的公钥(对应于他要混合的比特币)。

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

Bob以新的方式使用“共享密钥”。他用它来数学上“调整”Alice的公钥。这种调整实际上会创建一个新的公钥。除了……没有人拥有私钥。

有趣的是,由于加密技术的魔力,Alice也可以发现经过调整的公钥对应的调整的私钥!如果她使用相同的“共享密钥”调整原始私钥,则调整后的私钥将对应于调整后的公钥。

换句话说,Bob可以为Alice生成一个新的公钥,从而为Alice生成一个新的比特币地址,只有Alice可以使用。即使她现在不知道!

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

金色财经讯:澳大利亚三家金融科技初创公司正在向澳央行提交用例,催促澳大利亚央行推出支持美元的加密货币——数字澳元。[2017/10/19]

这几乎足以创建有效的CoinJoin交易。具体来说,Bob接受了Alice的UTXO,并为自己的比特币添加了UTXO,因此有两个输入。然后,他添加了Alice的新地址和自己的地址作为输出(以及费用和其他一些详细信息,比如需要时提供自己的找零地址)。然后他签署了交易。

现在唯一缺少的是Alice的签名。

送达Alice

最后一步送达Alice,实际上比听起来容易,但需要最后一招。

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

但是,如果使用纯文本格式,这仍然不是理想的选择。如果监控者监视公告板,他们可以轻松查看哪些输入属于提议者(在此例中为Bob),以及哪个输入属于接受者(在此例中为Alice):签名者是提议者。这本身可能泄漏隐私。但是,如果Bob提出更多提案来混合不同的比特币,那就更糟了。在那种情况下,例如,监控者可能能够将所有不同的UTXO连接到Bob,因为他那批发布的交易同时发布在公告板上。

因此,Bob改为用Alice的公钥加密CoinJoin交易!这样,只有Alice可以解密交易,而监控者则无法得到任何东西。

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

该Alice了

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

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

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

Alice和Bob的币混在一起了,即使他们从未互动过,也不需要同时在线。

尽管该过程在文字上看起来有些费力,但请记住,所有过程都可以通过软件进行抽象,翻译成笔记本电脑或手机屏幕上的几个按钮,甚至完全自动化。

SNICKER版本2

到目前为止说明的SNICKER是该提案的第一个版本。Gibson已经提出了第二个版本,其他变种也在讨论中。

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

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

Bob做出这个假设是因为,Alice的UTXO甚至被更清晰地标记为可以用来混币,并且只有当Alice控制与输入相对应的私钥时,它才会被清晰地标记。 SNICKER BIP没有指定如何进行初始标记,但是建议某些钱包(如JoinMarket钱包)可以正确地显示此类信息。另外,Alice可以在公告板上简单地发布一条消息宣传她的UTXO。

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

挑战与机遇

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

SNICKER还面临一些未解决的问题和挑战,尽管这些似乎都不是无法克服的。例如,其中包括应选择哪些UTXO作为匹配项,尤其是如何限制误报的数量。除了重复使用的地址外,潜在的匹配项的解决方法有按数量、UTXO的使用期限或所用钱包的特定类型过滤。

但是,正如本文前面提到的,即使存在多个匹配项(包括误报),这也可能只是一个小问题。要约人(“Bob”)可以简单地为所有要约人创建候选交易。即使这些提议发生冲突(因为Bob对所有人都使用同一个UTXO),这仅意味着第一个做出回应的taker(第一个“ Alice”)完成混币,其他潜在的taker会发现他们为时已晚,但没有造成什么伤害。对于误报,也不会造成任何实际伤害,Bob的要约只会放在公告板上,被永久忽略(或直到被删除)。

但是,垃圾邮件可能是一个特别重要的问题。由于公告板将托管加密的数据信息,因此不可能过滤掉“伪造”提交的交易,攻击者发布乱码来破坏SNICKER协议。Gibson在他的BIP草案中提出了一些解决此问题的方法,但是这会带来新的折中,例如需要费用来提交交易。

另一方面,SNICKER还提供了一些迄今为止为简单起见而遗漏的优点。这样的好处之一是,要约人可以在taker的输出中增加一些资金,从而增加接受该混币交易的经济动机。也可以同时与两个以上的用户进行SNICKER混合,尽管这样做会更加复杂。

正是由于该协议是非交互性的,Gibson认为,与其他一些隐私技术(例如JoinMarket)相比,SNICKER在钱包中的实现相对容易。到目前为止,Electrum钱包已经对采用该提案表现出了兴趣,尽管实际实施可能还有很长的路要走。

有关SNICKER的更多信息和背景,请参阅BIP草案(https://gist.github.com/AdamISZ/2c13fb5819bd469ca318156e2cf25d79),关注bitcoin-dev邮件列表讨论或阅读Gibson提案(略过时)的博客文章(https://joinmarket.me/blog/blog/snicker/)。

原文:SNICKER: How Alice and Bob Can Mix Bitcoin With No Interaction

地址:https://bitcoinmagazine.com/articles/snicker-how-alice-and-bob-can-mix-bitcoin-with-no-interaction

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

[0:46ms0-1:666ms