行业洞察

Bitcoin Taproot 升级后,对交易隐私性带来的变化

By Kane Wang - 2021-11-17

Bitcoin Taproot 软分叉已于区块高度 709632 激活并生效, 本次软分叉通过引入 Schnorr 签名算法、 MAST(Merkelized Alternative Script Tree)与 TapScript 提升比特币智能合约的灵活性,通过统一锁定脚本为交易提供更多的隐私性。

Taproot 隐私性简介

Taproot 通过将单签脚本、多签脚本、复杂合约、开启闪电网络通道等操作统一为相同形式的锁定脚本为交易提供更多的隐私性。

Alt text
P2TR 锁定脚本示意图图

针对 P2TR(Pay-to-Taproot) 锁定脚本,我们可以选择两种解锁方式:
(1)key-path 方式:通过 P2TR 脚本中 scriptPubkey 对应的私钥进行解锁。
(2)script-path 方式:通过包含在 MAST 中的脚本进行解锁。

针对同一个 P2TR 锁定脚本,我们即可以选择 key-path 方式,又可以选择 script-path 方式进行解锁。得益于 Schnorr 签名算法,我们可以通过 key-path 方式在链下进行 n-n 多签或者单签,将合并后的签名结果作为 witness 对 P2TR 锁定脚本进行解锁。通过 Schnoor 进行多签保护了交易的隐私性;通过 script-path 进行解锁时,MAST 中未使用的脚本依然保持隐私性,并且使用 MAST 我们可以构造 m-n 多签。

Taproot 隐私性分析

Taproot 真的可以保护隐私吗?答案是确定的,通过 Taproot 这种精巧的设计,我们单从 P2TR 地址类型上无法判断背后是个人单签还是多签或者是其他复杂合约!不过,Taproot 短期内未必可以有效提升交易的隐私性。

我们知道区块链数据追踪和分析软件通常采用启发式方法对 UTXO(钱包)进行分类,并尽可能地将具有相似特征的 UTXO 匿名集合归为同一类别,同时增加不同类 UTXO 匿名集合之间的差异,对于同一类特征的 UTXO 匿名集合而言,UTXO 匿名集合越大(UTXO 越多),该匿名集合的隐私性越强。

Taproot 引入了一种新的地址类型 P2TR,可以轻松地与已有地址类型区分开来。因此,当 Taproot 被激活时,由于大多数 UTXO 依然是其他地址类型,所以第一批 P2TR 用户将会与其他使用 P2TR 的用户一起进入一个很小的 UTXO 匿名集合,较小的匿名集合让区块链分析者更容易追踪区块链上的资金。

举个例子,比如在 Taproot 激活后,只有市面上常见的 A 平台率先支持了 P2TR 地址,而其他 HD 钱包和平台均不支持 P2TR 地址,当我们分析链上交易时,某个交易中的 P2TR 地址 X 大概率为 A 平台的地址,通过分析 A 平台 P2TR 地址的链上行为,并且与 P2TR X 地址行为进行对比,我们可以进一步确认该地址与 A 平台的关系,进而通过 A 平台我们可能获取更多关于该地址的信息。而对于 P2PKH 地址而言,就无法轻而易举地进行分析。

当然,当支持 P2TR 的基础设施和用户逐步增多时,P2TR 匿名集合逐渐变大,P2TR 将进一步提升隐私性。不过值得注意的是,自 2017 年 8 月份激活 Segwit V0 以来,Segwit V0 交易在链上的占有率并没有想象中的那么高。我们通过最近一年的 BTC 交易记录分析可知,P2WPKH 输出占总交易输出的 18.724%,P2WSH 输出占总交易输出的 1.682%,而 P2PKH 和 P2SH 输出分别占总交易输出的 37.568% 和 41.035%。

Alt text
最近一年 BTC Output 分布饼图

因此我们也呼吁钱包等基础设施尽可能的支持 P2TR 地址,共同为比特币的生态做出贡献。安全鹭已经计划尽快支持 P2TR 地址。

MPC 隐私性分析

P2TR 是比特币区块链系统的一种提升隐私性的探索,那么有没有一种更加通用的并且支持多种不同区块链系统交易隐私性保护的解决方案呢? MPC 除了是一种通用多签解决方案,同时也是一种隐私解决方案。

通过 MPC 协议实现 Secp256k1 签名算法,不仅能够去除单点私钥风险,而且可以实现 m-n 的多签钱包管理。MPC 多签流程如下,通过在签名算法层面解决多签以带来更好的多签通用性和隐私性。如果区块链系统采用 Secp256k1 签名算法,使用 MPC 协议便可以实现该区块链系统的多签钱包,而且在钱包形式上,MPC 钱包和单私钥对应的钱包地址格式相同,无法进行区分。

Alt text
MPC 多签流程

针对 BTC,在隐私性上,我们可以通过 MPC 协议管理 P2PKH 和 P2WPKH 地址,P2PKH 和 P2WPKH 在最近一年的交易输出中共占比 56.292%,较大的 P2PKH 和 P2WPKH UTXO 匿名集合带来了更好的隐私性。而且针对 ETH,MPC 多签钱包地址与普通 EOA 账户地址相同,相比于 ETH 合约多签钱包具有更好的隐私性和更低的手续费等优势。

目前安全鹭已经实现了 Secp256k1 和 Ed25519 签名算法的 MPC 协议,已经支持绝大多数公链的钱包通用多签管理, 配合安全鹭强大的策略引擎,可保证每一笔资产的流向都在您的掌控之中。

Taproot 与 MPC 管理钱包隐私性对比

对比项 Taproot MPC
地址类型 P2TR P2PKH, P2WPKH
支持多签 m-n m-n
多签匿名性 满足 满足
UTXO 匿名集合大小 ~0% 56.292%

匿名集合越大,该匿名集合的隐私性越强。

参考文献