硬核 | 深入分析比特币混币方案 TumbleBit 架构、谜题与解谜协议
TumbleBit 使用链下解谜来替代链上支付,可扩展比特币的交易量和交易速度。
原文标题:《硬核 | 一起了解比特币混币方案:TumbleBit》
撰文:马宇峰
TumbleBit 是 17 年发表在 NDSS 的文章, 是一个兼容比特币的中心化混币协议,是解决比特币交易可链接问题的协议,TumbleBit 可以扩展区块链的交易量,也可以 扩展区块链的交易速度。在本篇文章中,热爱研究的 Nervos 小伙伴马宇峰详细分析了 TumbleBit 的总体框架结构,它的解谜协议和谜题协议,并且介绍了针对 TumbleBit 不可关联性的一些攻击。快来 Get 新技能吧。
总体框架结构
由于 TumbleBit 需要兼容比特币这种仅支持非图灵完备语言的区块链,它的链上部分需要的密码学原语很少也很简单。此外虽然是中心化的协议,但即使是恶意的 Tumbler 也不能偷币,并且在不和参与用户共谋的情况下也不能找到交易输入和输出的链接关系。和 coinjoin、coinshuffle 这种区中心的混币协议相比,TumbleBit 的优点在于不需要交易方与其他用户交互,交互只发生在交易双方和 Tumbler 之间。
TumbleBit 可以将发给一方的许多交易聚合为两笔链上交易,并且这些交易不需在区块链上存储或验证,因此可以 扩展区块链的交易量 ,并且 TumlbeBit 的链下交易可以在秒级时间内完成,因此也可以 扩展区块链的交易速度 。
TumbeBIt 的主要思想很简单: 它使用链下解谜来替代链上支付 。当 Alice 想要给 Bob 支付一笔钱时,Alice 给 Bob 一个谜题的解,这个谜题是 Bob 和 Tumbler 交互产生的,这个谜题的解是 Alice 和 Tumbler 交互产生的。每解一个谜,Alice 转给 Tumbler 一个比特币,Tumbler 再转给 Bob 一个比特币。
图 1. TumbleBit 协议概览
TumbleBit 协议构造如上图所示。TumbleBit 协议以 epoch 为周期运行,需要注意的是所有参与 TumbleBit 协议的人都知道每个 epoch 周期内各个阶段的时间。每个 epoch 分为三个阶段:
最后是 Cash-out 阶段,这个是链上进行的提现阶段。 Alice 拿回剩余的 2 个比特币,支付 Tumbler 一个比特币,Tumbler 拿回剩余的 2 个比特币,支付 Bob 一个比特币。
解谜协议
关于 TumbleBit 的总体框架结构介绍完了,下面介绍一下刚才提到的两个重要的协议,一个是 Alice 和 Tumbler 之间运行的 解谜协议:RSA-puzzle-solving 协议 ,一个是 Bob 和 Tumbler 间运行的获得 谜题协议:Puzzle-Promise 协议 。
本文会重点介绍一下 RSA-puzzle-solving 协议,这是一个公平交换协议。当且仅当 Tumbler 给 Alice 一个 RSA puzzle 的解时,Alice 支付给 Tumbler 一个比特币,这个协议除了可集成在 TumbleBit 协议上以外,也可以在其他场景中作为公平交换协议独立运行。
这个协议面临一个挑战,就是 不使用零知识证明的条件下找到一种办法能够让 Alice 验证密文 是对正确值的加密 。cut-and-choose 可以解决这个问题,cut-and-choose 的思想类似于抽查,即 Alice 选择一些假谜题让 Tumbler 解密,如果 Tumbler 解密正确,那么 Alice 就相信 Tumbler 是诚实的。
图 2. RSA-puzzle-solving 协议
接下来 Alice 对混合真假 puzzle 的集合进行随机排序,得到一个新的集合,并记下真 puzzle 和假 puzzle 所对应的下标,然后将这个新集合发送给 Tumbler;
Tumbler 对新集合的每个元素都解密,然后将得到的明文用不同的对称密钥加密得到新密文,之后将所有的新密文以及新密文所对应的密钥的哈希发送给 Alice;
最后 Alice 通过真 puzzle 密钥来解谜。
解决方法是:
谜题协议
接下来讲一下 puzzle-promise 协议,这个协议是在 escrow 阶段运行在收款人 Bob 和 Tumbler 之间的链下协议,目标是让 Bob 获得一个 promise-puzzle 对 (c,z)。
这个协议的挑战是如果 Tumbler 仅仅发送一个 (c,z) 给 Bob,那么 Bob 就不知道 c 是否是正确签名的加密,也不知道 z 是否隐藏了正确密钥。
我们仍然可以通过 cut-and-choose 来应对这个挑战。但是和 RSA-puzzle-solving 协议不同的是 Bob 会得到许多 puzzle-promsie 对,而 cut-and-choose 保证的是至少有一对是正确的(保证全部正确的概率低于至少一对是正确的概率),而 Bob 一次只能问 Alice 一个谜题,TumbleBit 通过 RSA 商链的技术来解决这个问题,通过使用 RSA 商链技术可以保证 Bob 拿到一个谜题的解后能得到所有的谜题的解。
图 3. Puzzle-promise 协议
篇幅所限,下面我们简单地介绍一下 cut-and-chosse :
不可关联性
到这里完整的 TumbleBit 协议部分就介绍完了,接下来看一下 TumbleBit 的不可关联性。我们先看一下 Tumbler 的视角如下图所示,Tumbler 看不到交易间的关联性 ,但是能看到付款人在哪个时间和自己交互的,因此结合一些额外信息,可以对交易间的关联性进行分析。我们下面介绍一些针对 Unlinkable 的攻击,这些攻击中有些是能避免的,有些是没有很好的方法避免的。
图 4. Tumbler 视角
天花板攻击
Alice 和 Tumbler 共谋可以制造 ceiling attack,ceiling attack 被称为 天花板攻击 。它假设在某时刻比如,Alice 向 Bob 支付一个比特币,但是 Bob 已经达到的接收上限,因此拒绝了 Alice 的付款请求。Alice 把这个消息告诉 Tumbler,Tumbler 可以排除 时刻后的交易是发给 Bob 的可能。如果 Alice 不与 Tumbler 共谋的话 Tumbler 是不知道 Bob 啥时候达到接受上限的。
这种攻击是有好几种解决办法的,比如:Bob 在 escrow 阶段让自己的接收上限远高于这个预期内能接收的钱;或者可以错开 TumbleBit epoch 的时间,同时运行几个 TumbleBit epoch,Bob 一个 epoch 内的额度用完的话,就用下一个 epoch 的额度。
Bob 和 Tumbler 共谋
Bob 和 Tumbler 共谋:Bob 告诉 Tumbler 自己发给 Alice 盲化 puzzle, 这样 Tumbler 可以知道 Alice 的身份(尤其适用于 Alice 和 Bob 不知道对方身份的场景,比如使用 tor 协议)。解决方法很简单,Alice 对 Bob 发给自己的盲化 puzzle 做二次盲化后再和 Tumbler 运行 RSA-Puzzle-solving 协议,然后将解去盲发给 Bob 即可。
Potato 攻击
Potato 攻击是指考虑外界信息,假设 Bob 是卖土豆的,一个土豆 7 比特币,且 Tumbler 知道没有其他人卖 7 比特币的东西,那么 Tumbler 就可以排除一些交易(比如 Calor 总共只有 6 笔交易,则她被排除,而 Alice 在短期内刚好有 7 笔交易,那么可以推测 Alice 在买土豆)。解决方法有添加冗余交易,Alice 建立一个收款地址,买土豆的同时给自己的地址转一笔钱,或者买土豆的同时再买些其他东西。
Intersection attacks
Intersection attacks:unlinkability 仅仅定义在一个周期内,并不能排除周期之间的一些关联。下面要讲的中止攻击就属于这种攻击。
中止攻击
Abort attacks 中止攻击:Tumbler 可以通过中止交易获得一些信息。比如 Tumbler 注意到在几个周期里:Alice 一直在发起单笔交易而 Bob 一直达到额度上限,然后在下一个周期里,Tumbler 中止 Alice 的支付并发现 Bob 不再达到额度上限,那么 Tumbler 能猜测 Alice 在和 Bob 交易。
小结
虽然存在种种限制,但是如果交易足够多,那么交易的不可连接性还是可以保证的。
笔者认为 TumbleBit 的缺点主要是两个,第一是系统中所有用户都使用同一「面额」的钱,怎样定义面额就些困难。如果面额定义的很小,大额支付需要很多线下交互,不过可以通过在系统内多运行几个 Tumbler,每个 Tumbler 提供不同的面额来解决;第二是需要 Tumbler 事先抵押钱。这个可以通过收取手续费来解决,接收方按照要求 Tumbler 抵押的额度来付手续费。
如果不考虑金额的隐私性, TumbleBit 是一个非常优秀的混币方案。
来源链接:eprint.iacr.org
比推快讯
更多 >>- Tether与Chainalysis 合作开发用于监控二级市场活动的可定制解决方案
- 价值超7600万美元ETH从未知钱包转移到Coinbase Institutional
- Magic Eden宣布其BTC Diamond Retro申领已上线
- 以太坊 NFT 4 月份销售额 2.41 亿美元,为2023 年 10 月以来最低
- Jito 成为 Solana 上TVL最大的协议, 达 14 亿美元
- 摩根大通:加密市场抛售是由散户投资者推动的
- USDC Treasury新增铸造5000万枚USDC
- 一巨鲸以0.051美元价格购买193万枚SC,SC 上涨约 200%
- Coinbase国际交易所将增加对 Arweave、Hedera 和 Theta 永续合约的支持
- 某以太坊ICO参与者在休眠8.8年后转出1,960枚ETH,价值587万美元
- 今日美国9只现货比特币ETF净减持8107枚BTC,约4.7亿美元
- 法国巴黎银行持有约4.1万美元的贝莱德现货比特币ETF敞口
- RWA 平台 Untangled 在 Celo 上开设其首个 USDC 借贷池
- MoonPay 集成 PayPal,允许美国用户通过 PayPal 买卖 110 多种加密货币
- RWA市场Ironlight完成1200万美元的融资,拟在美SEC注册
- 截至4月1日Yield Guild Games财库持有资产总规模约6700万美元
- 彭博ETF分析师:需要重新调整对香港虚拟资产ETF市场的看法
比推专栏
更多 >>- 每月动态 | Web3 安全事件总损失约 9081 万美元
- 脱水大字报:牛市行情或延迟类似2016年
- 矿工日收入突破亿创纪录,比特币符文能否接力铭文?
- 获比特大陆投资且被币安首个接入的BTC L2项目BEVM有何亮点?
- 为什么这轮牛市无法复制 2021 年的山寨季?
- 独家!种子轮融资200万美金+AI叙事的项目
- IOSG Weekly Brief|MKR的涅槃重生:新公链和RWA稳定币与Spark借贷独角兽 #223
- Kusama 上的 Coretime 交易已开始,平行链时代谢幕
- 100亿美元开发投资,红杉资本入局,特斯拉要搞波大的…
- Chainlink Q1产品更新;CCIP正式进入全面可用阶段;Consensus2024来啦|Chainlink 周报
观点
项目
比推热门文章
- Tether与Chainalysis 合作开发用于监控二级市场活动的可定制解决方案
- 价值超7600万美元ETH从未知钱包转移到Coinbase Institutional
- Magic Eden宣布其BTC Diamond Retro申领已上线
- 以太坊 NFT 4 月份销售额 2.41 亿美元,为2023 年 10 月以来最低
- Jito 成为 Solana 上TVL最大的协议, 达 14 亿美元
- 摩根大通:加密市场抛售是由散户投资者推动的
- USDC Treasury新增铸造5000万枚USDC
- 一巨鲸以0.051美元价格购买193万枚SC,SC 上涨约 200%
- Coinbase国际交易所将增加对 Arweave、Hedera 和 Theta 永续合约的支持
- 某以太坊ICO参与者在休眠8.8年后转出1,960枚ETH,价值587万美元