潘志彪:简析 Taproot 如何降低比特币合约交易成本并改善隐私

Taproot 对比特币合约来说,实现了交易成本极小化与隐私极大化,但仍无法做到资金流向和数额隐匿。

原文标题:《Taproot 简介之二》
撰文:潘志彪,币印创始人

之前写过一篇从技术层面解读 Taproot:《Taproot 简介》,这次再多啰嗦解读几句(不带公式的)。

生活中的合约、合同通常有以下一些特征:

  • 通常,合约是双方或多方的。
  • 合约的双方并不绝对信任对方,如果可以绝对信任对方,则不需要合约。
  • 合约的双方一般假设对方大概率会履约:如果还没交易就已经认为对方不会履约,可能会选择不交易,或使用一些合约条款(如惩罚)保证对方履约。
  • 设计正确的合约,应该让双方在履约的情况下均会得到较大利益(或较少损失)
  • 因此在绝大部份情况下,合约都不会有争议,双方都会合作实行合约条款。在这种情况下,合约条款一般会得到保密,不为第三方所知。
  • 若过程中出现争议(不合作)的情况,需要由第三方机构(如法院)进行仲裁。在这种情况下,合约条款需要公开,提供给律师、法官等。

比特币链上是可以写简单合约的,例如 n/m 式的多重签名机制、闪电网络等。区块链的合约通常称为智能合约。

  • 所有合约的特性都适用于智能合约,只是区块链规则担当了仲裁的角色,换言之 Code is Law。
  • 但现在比特币的智能合约,不论是 2009 年中本聪的原始设计,2012 年出现的 P2SH,还是 2017 年的隔离见证 (P2WSH),都有一个共同的问题:无论立约双方是否合作,合约内容必须完全公开,即合约脚本必须公开。当花费时必须提供合约脚本全部内容才能进行校验。
  • 公开合约内容主要带来两个问题:
    • 交易成本:智能合约一般都需要多个签名,加上合约内容脚本本身,占用更多区块空间,令交易手续费上升。
    • 隐私问题:第三方可以监控区块链数据,通过合约内容的特征,追踪资金的流向和推断合约参与者的身份。

ECDSA

ECDSA 是比特币诞生到现在唯一的签名验证机制。

  • 数字签名是比特币认证交易合法性的最重要手段,确权的唯一标准。
  • 自 2009 年以来,比特币均使用 ECDSA 为数字签名标准,包括 P2PK 和 P2PKH,以及 2012 年的 P2SH,2017 年的 P2WPKH 和 P2WSH。
  • 比特币的公 / 私钥系统是线性的,因此我们可以把多个私钥相加,也可以把对应的多个公钥相加,这样产生的新私钥和新公钥仍然是一对。这是 HD 钱包的理论基础。
  • 但 ECDSA 的签名是非线性的,因此简单的把多个签名结果加起来,则不再是有效的签名。
  • 因此一直以来,比特币的多签交易均需要在区块链公开多个签名,问题和智能合约相同(交易成本,隐私问题)。
  • 201 方的多方签名人数的理论极限(P2SH 大概只容许最多 16 方)。

Schnorr

再说一下 Schnorr 签名算法。

  • Schnorr 签名的专利于 2008 年才失效,当时没有广泛的开源实现及应用,所以 2009 年诞生的比特币也没有使用,中本聪还是比较谨慎的。签名算法通常是需要深厚的数学理论基础才能设计。一个小的理解偏差、编码错误则可能导致严重问题。
  • Schnorr 签名使用的公 / 私钥系统和 ECDSA 相同,因此现有的私钥管理 (如 BIP32) 可以继续使用。
  • Schnorr 和 ECDSA 的区别在于:Schnorr 签名是线性的。对于同一内容 X,如果用多个私钥各自签名,然后把对应的多个公钥相加,再把多个签名相加,得出的新签名会是新公钥对内容 X 的有效签名。
  • 利用这个特性,签名人数没有理论极限。只要各方一致合作,就可以把签名相加起来,看起来和单方签名无异。
  • Schnorr 签名算法的安全性于 2012 年得到数学证明。

Taproot 解决的问题

Taproot 以 Schnorr 签名算法为基础。

  • 以 Taproot 进行的智能合约,如果双方合作,不但无需公开合约内容,而且交易会和最简单普遍的单方签名交易看起来没有分别。即交易成本极小化及隐私极大化。
  • 如果双方不合作,申诉方仍需要公开合约脚本内容以供区块链仲裁,暴露脚本全部或部分内容,由节点验证执行之。
  • 通过使用 MAST (Merklized Alternative Script Trees),申诉方只需要公开合约的相关部分,而非所有合约条款,也因此尽量降低交易成本和对隐私的影响。合约可能有多条执行路径,仅公布即将执行的路径即可。

Taproot 没有解决的问题

Taproot 没有把交易金额隐藏,因此仍可以通过分析输入和输出金额估计资金流向。
Taproot 地址和旧式地址一样,会在区块链公开。如果使用者重复使用 Taproot 地址,那和重复使用旧式地址有相同的隐私问题:太多交易信息集中在一个地址上。

总结

比特币在隐私方向上,有两大待攻克的难题。一是流向隐匿,这在 UTXO 系统里是比较棘手的;二是金额隐匿,可以通过类似 Grin 的技术来解决,需要扩展区块或分叉来实现。

即使上述两大难点并没有解决掉,但 Taproot 对于比特币合约来说,即实现了交易成本极小化,又使得隐私极大化。还是一个显著的进步。

来源链接:card.weibo.com

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发