主页 > 苹果版imtoken钱包官网 > 比特币挖矿是如何运作的

比特币挖矿是如何运作的

苹果版imtoken钱包官网 2023-11-17 05:11:59

TumbleBit 使用链下解谜代替链上支付,可以扩大比特币的交易量和速度。

原标题:《硬核|一起来学比特币混币方案:TumbleBit》

作词:马玉峰

TumbleBit 是 2017 年发表在 NDSS 上的一篇文章,它是一个兼容比特币的中心化混币协议。 它是一种解决比特币交易可链接性问题的协议。 TumbleBit 可以扩大区块链的交易量,也可以扩大区块链。 交易速度。 在这篇文章中,Nervos 研究员马宇峰详细分析了 TumbleBit 的整体框架、解谜协议和解谜协议,并介绍了一些针对 TumbleBit 不可链接性的攻击。 快来学习新技能吧。

整体框架结构

由于 TumbleBit 需要兼容比特币这种只支持非图灵完备语言的区块链,其链上部分需要的加密原语很少且简单。 另外,虽然是中心化协议,但即使是恶意的Tumbler也无法盗币,也无法在不与参与用户串通的情况下找到交易输入输出之间的链接关系。 与coinjoin和coinshuffle相比,TumbleBit的优势在于不需要交易方与其他用户进行交互,交互只发生在交易方与Tumbler之间。

TumbleBit 可以将发送给一方的多笔交易聚合成两笔链上交易,这些交易不需要在区块链上存储或验证,因此可以扩展区块链的交易量,TumlbeBit 的链下交易可以是done in seconds 可以在一个级别的时间内完成,所以区块链的交易速度也可以得到扩展。

TumbeBIt 的主要思想很简单:用链下解谜代替链上支付。 当 Alice 想付给 Bob 一笔钱时,Alice 给了 Bob 一个由 Bob 和 Tumbler 交互产生的谜题的解决方案。 每解决一个谜题,Alice 就将一个比特币转给 Tumbler,Tumbler 将一个比特币转给 Bob。

硬核 | 一起了解比特币混币方案:TumbleBit

比特币挖矿原理_比特币的密码学原理_比特币 挖矿 原理 hash

图 1. TumbleBit 协议概述

TumbleBit协议的结构如上图所示。 TumbleBit 协议以纪元为周期运行。 需要注意的是,所有参与 TumbleBit 协议的人都知道每个纪元周期中每个阶段的时间。 每个epoch分为三个阶段:

硬核 | 一起了解比特币混币方案:TumbleBit

最后是Cash-out阶段,也就是链上的退出阶段。 Alice取回剩余的2个比特币并支付给Tumbler 1个比特币,Tumbler取回剩余的2个比特币并支付给Bob 1个比特币。

拼图协议

介绍完了TumbleBit的总体框架结构,下面介绍一下刚才提到的两个重要的协议,一个是Alice和Tumbler之间运行的解谜协议:RSA-puzzle-solving protocol,一个是Bob和Bob之间运行的解谜协议。 Tumbler 获取 Puzzle Protocol:Puzzle-Promise 协议。

本文将重点介绍 RSA-puzzle-solving 协议,它是一种公平交换协议。 当且仅当 Tumbler 为 Alice 提供了 RSA 难题的解决方案时,Alice 才向 Tumbler 支付比特币。 该协议不仅可以集成在TumbleBit协议之上,也可以作为公平交换协议独立运行在其他场景中。

硬核 | 一起了解比特币混币方案:TumbleBit

该协议的挑战是找到一种方法让爱丽丝在不使用零知识证明的情况下验证密文是正确值的加密。 剪切和选择可以解决这个问题。 cut-and-choice的思路类似于抽查,即Alice选择一些假拼图让Tumbler解密。 如果 Tumbler 解密正确,则 Alice 认为 Tumbler 是诚实的。

比特币 挖矿 原理 hash_比特币挖矿原理_比特币的密码学原理

硬核 | 一起了解比特币混币方案:TumbleBit

图 2. RSA 解谜协议

硬核 | 一起了解比特币混币方案:TumbleBit

接下来,Alice 将真假混合拼图的集合随机排序得到一个新集合,并记下真拼图和假拼图对应的下标,然后将这个新集合发送给 Tumbler;

Tumbler对新集合的每一个元素进行解密,然后用不同的对称密钥对得到的明文进行加密,得到新的密文,然后将所有的新密文和新密文对应的密钥的哈希值发送给Alice;

硬核 | 一起了解比特币混币方案:TumbleBit

最后比特币的密码学原理,爱丽丝用真正的谜题钥匙解开了谜题。

硬核 | 一起了解比特币混币方案:TumbleBit

解决办法是:

比特币挖矿原理_比特币的密码学原理_比特币 挖矿 原理 hash

硬核 | 一起了解比特币混币方案:TumbleBit

拼图协议

接下来,让我们谈谈puzzle-promise协议。 该协议是在托管阶段在收款人 Bob 和 Tumbler 之间运行的链下协议。 目标是让 Bob 获得一个 promise-puzzle 对 (c,z)。

该协议的挑战在于,如果 Tumbler 只是将 (c,z) 发送给 Bob,那么 Bob 不知道 c 是否是经过正确签名的加密,也不知道 z 是否隐藏了正确的密钥。

我们仍然可以通过剪切和选择来应对这一挑战。 但与 RSA-puzzle-solving protocol 不同,Bob 会得到很多 puzzle-promsie 对,cut-and-choose 保证至少有一对是正确的(确保全部正确的概率低于至少一对是正确的),鲍勃一次只能问爱丽丝一个谜题。 TumbleBit 使用 RSA 业务链技术来解决这个问题。 通过使用RSA商链技术,可以保证Bob在得到一个谜题的解后,可以得到所有谜题的解。 .

硬核 | 一起了解比特币混币方案:TumbleBit

图 3. Puzzle-promise 协议

篇幅有限,简单介绍一下cut-and-chosse:

硬核 | 一起了解比特币混币方案:TumbleBit

比特币的密码学原理_比特币挖矿原理_比特币 挖矿 原理 hash

非关联的

完整的TumbleBit协议介绍完了,我们再来看看TumbleBit的非关联性。 我们先来看下图Tumbler的视角。 Tumbler 看不到交易之间的相关性比特币的密码学原理,但它可以看到付款人何时与自己进行交互。 因此,结合一些附加信息,可以分析交易之间的相关性。 分析。 下面我们介绍一些针对Unlinkable的攻击,这些攻击有的是可以避免的,有的是没有好的办法避免的。

硬核 | 一起了解比特币混币方案:TumbleBit

图 4. 不倒翁透视图

天花板攻击

Alice 和 Tumbler 之间的勾结可以创建天花板攻击,称为天花板攻击。 它假设在某个时刻,例如,Alice 支付给 Bob 一个比特币,但是​​ Bob 已经达到了接收的限制,所以 Alice 的付款请求被拒绝了。 Alice 将消息告诉 Tumbler,Tumbler 可以排除时间后的交易发送给 Bob 的可能性。 如果 Alice 不与 Tumbler 串通,Tumbler 将不知道 Bob 何时达到接受上限。

针对这种攻击有几种解决方案,例如: Bob 将他的接收限额设置得比他在托管阶段可以接收到的钱要高很多; 或者他可以错开 TumbleBit epoch 的时间,同时运行几个 TumbleBit epoch,Bob 如果一个 epoch 的配额用完了,就会使用下一个 epoch 的配额。

鲍勃和不倒翁密谋

Bob 和 Tumbler 合谋:Bob 让 Tumbler 给 Alice 发一个盲谜,这样 Tumbler 就可以知道 Alice 的身份(特别是在 Alice 和 Bob 不知道对方身份的场景下,比如使用 tor 协议)。 解决方法很简单。 Alice 将 Bob 发给她的盲谜解盲两次,然后用 Tumbler 运行 RSA-Puzzle-solving 协议,然后将非盲解发送给 Bob。

比特币的密码学原理_比特币挖矿原理_比特币 挖矿 原理 hash

马铃薯攻击

土豆攻击是指考虑外部信息,假设Bob卖土豆,一个土豆要7个比特币,而Tumbler知道没有其他人卖7个比特币,那么Tumbler可以排除一些交易(比如Calor一共只有6笔交易,那么她被排除在外,Alice 短期内刚好有 7 笔交易,则可以推定 Alice 在买土豆)。 解决方案是添加冗余事务。 爱丽丝创建一个收款地址,在买土豆的同时转一笔钱到她的地址,或者在买土豆的同时买其他东西。

路口攻击

交集攻击:不可链接性只定义在一个循环内,不能排除循环之间的一些关联。 下面介绍的中止攻击就属于这种攻击。

中止攻击

中止攻击:Tumbler 可以通过中止交易来获取一些信息。 例如,Tumbler 注意到在几个周期中:Alice 一直在做单笔交易,Bob 一直在达到限额,然后在下一个周期,Tumbler 暂停了 Alice 的支付,发现 Bob 不再达到限额,那么 Tumbler 可以猜测 Alice 是在与鲍勃的贸易中。

概括

虽然有各种限制,但是如果交易量足够多,还是可以保证交易的不可链接性的。

笔者认为,TumbleBit 主要有两个缺点。 首先是系统中的所有用户都使用相同的“面额”货币,因此很难定义面额。 如果面额定义的很小,一笔大额的支付需要大量的线下交互,但是可以通过在系统中多运行几个Tumbler来解决,每个Tumbler提供不同的面额; 二是不倒翁需要提前抵押钱。 这可以通过收取手续费来解决,接收方根据Tumbler需要抵押的金额支付手续费。

如果不考虑金额的隐私,TumbleBit 是一个非常好的混币解决方案。