
硬核 | 深入分析比特币混币方案 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
比推快讯
更多 >>- ETH/BTC 短时跌至 0.03042,24 小时跌超 2%
- 巨鲸先定 10 个大目标空单止盈,累计获利 749.4 万美元
- 数据:ETH 当前全网 8 小时平均资金费率为 0.0048%
- 某地址平仓 ETH 多单,过去 5 日利润损失超 1700 万美元
- 数据:BONK 已累计销毁 11.55T 代币,按当前价格计约 3 亿美元
- 美联储威廉姆斯:5 月和 6 月就业增长的异常大幅下调才是周五非农报告中的真正新闻
- 香港稳定币发行人监管制度生效,警惕虚假持牌诈骗
- 库格勒意外辞职或加速特朗普选定下任美联储主席人选
- 上市公司 Bitmax 增持 56.0445 枚 BTC,总持仓量突破 500 枚
- 数据:“内幕巨鲸”加仓 1.8 万枚 ETH 空单,空单已浮盈 641 万美元
- 特朗普关税重创巴菲特旗下伯克希尔消费品业务
- 伯克希尔 Q2 现金储备三年来首降,股市投资更趋谨慎
- 数据:ETH 全网合约持仓量 24h 减少 7.53%
- RootData:Rhea Finance 代币(RHEA) 24 小时涨幅 38%
- 数据:监测到 4,590.84 万 USDT 转入 Binance
- 数据:“内幕巨鲸”再度开启 XRP 与 SOL 空单,总仓位价值逾 2.21 亿美元
- Tether 7 月份共增发 60 亿枚 USDT,年初至今总流通量增加 200 亿美元
- 财新:香港或把首批稳定币牌照范围缩小为三到四家
- 香港稳定币进入合规时代:牌照角逐和场景探路
- 内部人士:建议国家级公链由央国企主导建设
- 以太坊财库公司 Bitmine 董事长:若按基本面估算 ETH 价格应为 1.5 万美元
- 下周宏观展望:新关税红线引爆“最后一战
- Bitdeer 增持 38 枚 BTC,总持仓量达 1,675.9 枚
- 特朗普次子 Eric Trump:再说一次,逢低买入 BTC 和 ETH
- 特朗普媒体科技集团发布 Q2 财报:金融资产规模达 31 亿美元,同比增长约 800%
- 以太坊日活地址数一度突破 84 万,创一年以来新高
- 某地址过去三个月内增持 3.31 亿枚 PI,价值约 1.485 亿美元
- 过去 24 小时 CEX 净流出 705.12 枚比特币
- Golden Goose 平台 Diamond Egg NFT 即将结束销售
- 鲸鱼 0xF436 过去 8 小时再度增持 10,245 枚 ETH,价值约 3600 万美元
- 交易员 Eugene:已再次做多 ETH,不宜过快转向看空
- 币安:持有至少 200 Alpha 积分的用户可领取 750 枚 AIO 代币的空投
- 分析师:交易者自 7 月 31 日起积极平仓多单,卖方目前仍在增加空单头寸
- 某地址因 458 天前签署过钓鱼批准而损失 90.8 万美元
- ARK Invest 昨日增持约 3576 万美元 COIN 和 1873 万美元的 BMNR 股票
- 加密恐慌与贪婪指数降至 55,市场贪婪情绪大幅回落
- Arthur Hayes:三季度关税法案或影响加密市场,BTC 测试 10 万美元关口
- ATA Creativity Global 获 Baby BTC Strategic Capital 1 亿美元控股,转型 BTCFi 上市平台
- 数据:当前加密恐慌贪婪指数为 54,处于中性状态
- 比特币 ETF 单日净流出创近 5 个月新高,为历史第二高单日净流出
- 昨日美国比特币现货 ETF 净流出 8.123 亿美元
- 以太坊财库公司 Fundamental Global 成立信托基金 FG CVR Trust
- 某鲸鱼地址过去 8 小时向 CEX 转移 10.8 万枚 SOL
- 最高检 2025 年 234 项研究课题中 10 项涉及虚拟货币法律处置与监管研究
- Project Hunt:代币化 T-Bill 保险库 OpenEden 为过去 7 天新增 Top 人物关注者最多的项目
- RootData:MOVE 将于一周后解锁价值约 651 万美元的代币
- Coinbase 将于 8 月 16 日暂停 Function X (FX) 交易
- 疑似 Anchorage Digital 地址于今日凌晨抄底买入 14933 枚 ETH
- 数据:过去 24 小时全网爆仓 7.27 亿美元,多单爆仓 6.4 亿美元,空单爆仓 8690.3 万美元
- 特朗普称希望公布所有爱泼斯坦案相关文件
比推专栏
更多 >>观点
比推热门文章
- ETH/BTC 短时跌至 0.03042,24 小时跌超 2%
- 巨鲸先定 10 个大目标空单止盈,累计获利 749.4 万美元
- 数据:ETH 当前全网 8 小时平均资金费率为 0.0048%
- 某地址平仓 ETH 多单,过去 5 日利润损失超 1700 万美元
- 数据:BONK 已累计销毁 11.55T 代币,按当前价格计约 3 亿美元
- 美联储威廉姆斯:5 月和 6 月就业增长的异常大幅下调才是周五非农报告中的真正新闻
- 香港稳定币发行人监管制度生效,警惕虚假持牌诈骗
- 库格勒意外辞职或加速特朗普选定下任美联储主席人选
- 上市公司 Bitmax 增持 56.0445 枚 BTC,总持仓量突破 500 枚
- 数据:“内幕巨鲸”加仓 1.8 万枚 ETH 空单,空单已浮盈 641 万美元