Tumblebit采用链下解谜来代替链上支付,可以扩大比特币的交易量和交易速度。
原文标题:“硬核|理解比特币混合货币方案:tumblebit”
作者:马玉峰
Tumblebit是17年来发表在NDSS上的一篇文章。Tumblebit是一种兼容比特币的中心化式混合货币协议,是解决比特币交易可链接问题的协议。Tumblebit可以扩展区块链的交易量和区块链的交易速度。本文以一位酷爱研究的nervos合作伙伴马玉峰为例,分析了tumblebit的整体框架、解谜协议和解谜协议,并介绍了针对tumblebit不相关的一些攻击方法。学习新技能。
总体框架结构
由于tumblebit需要与比特币兼容,比特币是一个只支持非图灵完全语言的区块链,因此其链上的加密原语很少且简单。另外,虽然是中心化式协议,但即使是恶意的不倒翁也不能偷钱,在不与涉案用户串通的情况下,也找不到交易输入和输出之间的链接。与coinjoin和coinshuffle相比,tumblebit具有不需要与其他用户交互的优点。
Tumblebit可以将发送给一方的多个交易聚合成两个链上交易,这些交易不需要在区块链上存储或验证,因此可以扩大区块链的交易量,Tumblebit的离线交易可以在几秒钟内完成,这样也可以扩展区块链的交易速度。
Tumebit的主要想法很简单:它使用链外谜题,而不是链上支付。当Alice想付给Bob一笔钱时,Alice给Bob一个谜题的解决方案,这个谜题是由Bob和tumbler的交互产生的,而解谜的解是由Alice和tumbler的交互产生的。对于每个谜题,爱丽丝将一个比特币传送给tumbler,tumbler将另一个比特币传送给Bob。
图1。tumblebit协议概述
tumblebit构造协议如上图所示。Tumblebit协议以epoch周期运行。值得注意的是,tumblebit协议的所有参与者都知道每个epoch周期中每个阶段的时间。每个时代分为三个阶段
**,还有一个提款阶段,即链条上的现金提取阶段。爱丽丝取回剩下的两个比特币,然后付给tumbler一个比特币。Tumbler取回剩下的两个比特币,付给鲍勃一个比特币。
解谜协议
在介绍tumblebit的总体框架之后,介绍了刚才提到的两个重要协议。一种是运行在Alice和tumbler之间的RSA解谜协议,另一种是运行在Bob和tumbler之间的谜题获取协议:puzzle promise协议。
本文将重点讨论RSA解谜协议,它是一种公平交换协议。当且仅当tumbler为Alice提供RSA难题的解决方案时,Alice向tumbler支付比特币。该协议可以集成到tumblebit协议中,作为公平交换协议独立运行。
该协议的挑战在于如何在不使用零知识证明的情况下,让Alice验证密文是否加密到正确的值。选择和选择可以解决这个问题。挑选与抽查的理念类似。换句话说,爱丽丝选择了一些错误的谜题来解密tumbler。如果tumbler解密正确,Alice相信tumbler是诚实的。
图2。RSA解谜协议
接下来,Alice随机地对混合真假谜题集进行排序,得到一个新的集合,并写下与真假谜题相对应的下标,然后将新的集合发送给tumbler;
Tumbler解密新集合的每个元素,用不同的对称密钥对获得的明文进行加密,然后将所有新密文和新密文对应的密钥散列发送给Alice;
**,真正的钥匙被用来解决这个难题。
解决方案是:
拼图协议
接下来,我们来谈谈谜题承诺协议。该协议是一个运行在Bob和tumbler托管阶段的链外协议。我们的目标是让Bob得到一个承诺难题对(C,z)。
该协议的挑战在于,如果tumbler只向Bob发送一个(C,z),那么Bob不知道C是正确签名的加密还是z隐藏了正确的密钥。
我们仍然可以通过选择来应对这个挑战。然而,与RSA谜题求解协议不同,Bob会得到很多谜题promsie对,而cut-and-choose保证至少有一对是正确的(确保所有正确性的概率低于至少一对正确的概率),而Bob一次只能问Alice一个谜题。Tumblebit利用RSA业务链技术解决了这一问题,商链技术可以保证Bob在得到一个解后,能够得到一个谜题的所有解。
图3。谜题承诺协议
受限于篇幅,让我们简单介绍一下cut和chosse
不相关
这是完整的tumblebit协议部分。让我们来看看tumblebit的不可关联性。我们来看看tumbler的透视图,如下图所示。Tumbler无法看到交易之间的关联,但可以看到付款人何时与自己交互。因此,结合一些附加信息,我们可以分析交易之间的相关性。我们将介绍一些针对unlinkable的攻击。有些攻击是可以避免的,有些是无法避免的。
图4。不倒翁视角
天花板攻击
爱丽丝和不倒翁合谋制造了一种天花板攻击,叫做天花板攻击。它假设在某个时间,例如,Alice向Bob支付比特币,但是Bob已经达到了接收限制,所以她拒绝Alice的支付请求。Alice告诉tumbler这个消息,tumbler可以排除在瞬间之后的事务被发送给Bob的可能性。如果爱丽丝没有和tumbler合谋,tumbler就不知道Bob什么时候会达到接受极限。
对于这种攻击有几种解决方案。例如,Bob可以使其在托管阶段的接收限制远远高于预期的金额;或者他可以错开turmbbit epoch的时间,同时运行多个tumbbit epoch。如果Bob在一个epoch中用完了配额,他将使用下一个epoch的数量。
鲍勃和不倒翁合谋
Bob和tumbler共谋:Bob告诉tumbler自己发送Alice盲板,这样tumbler就能知道Alice的身份(特别适用于Alice和Bob不知道对方身份的场景,比如使用tor协议)。解决办法很简单。在对Bob发送的盲谜进行两次盲解后,Alice用tumbler运行RSA解谜协议,然后将解盲后的谜题发送给Bob。
马铃薯攻击
土豆攻击是指考虑外部信息,假设Bob在卖土豆,一个土豆有7个比特币,tumbler知道没有其他人卖7个比特币项目,tumbler可以排除一些交易(例如,如果calor总共只有6个交易,她被排除在外,而Alice在短时间内有7个交易,所以可以推断爱丽丝在买土豆)。解决方案是添加冗余事务。爱丽丝建立一个收款地址,在买土豆的同时把钱转到她的地址,或者同时买其他东西。
交叉口攻击
交叉攻击:不可链接性只在一个循环中定义,并且不排除循环之间的某些相关性。下面的停止攻击属于这种攻击。
停止攻击
中止攻击中止攻击:tumbler可以通过暂停事务来获取一些信息。例如,tumbler注意到在几个周期中:Alice一直在启动一个事务,而Bob总是达到了极限。然后在下一个周期,tumbler停止Alice的付款,发现Bob不再达到限额。不倒翁能猜到爱丽丝和鲍勃在交易。
摘要
虽然存在各种限制,但如果有足够的事务,则可以保证事务的非连通性。
作者认为tumblebit有两个缺点。首先,系统中的所有用户使用相同的“面额”货币,因此很难定义面额。如果面额定义很小,大额支付需要大量的线下交互,但可以通过在系统中运行多个tumbler来解决,每个tumbler提供不同的面额;第二个是tumbler需要提前抵押资金。这可以通过收取手续费来解决,手续费由接管人根据tumbler需要抵押的金额支付。
Tumblebit是一个**的混合货币方案,不考虑金额的隐私性。
文章标题:Hard core |深入分析tumblebit体系结构、谜题和解谜协议
文章链接:https://www.btchangqing.cn/158428.html
更新时间:2020年12月03日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。
顶
至少会涨一轮吧
大卡开始进军区块链