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解决的问题

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

Taproot没有解决的问题

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

总结

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

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