彻底理解比特币「隔离见证」技术与它的三个版本升级

CN
9 小時前

撰文:付少庆,SatoshiLab,万物岛 BTC 工作室

1. 前言

作者在学习比特币技术的时候,发现将 SegWit,Taproot,TaprootAssets 三个知识点,使用隔离见证发展史的角度来理解,会更容易学习和掌握其发展规律。并且可以更好的理解闪电网络实验室的 Taproot Assets 协议,能够很好的理解 Universe 的作用,能够很好的理解 TaprootAssets 协议能够实现的功能和未来可能的发展。有了这些理解,能够更好的设计出相关的产品给用户使 f 用。

阅读本文还需要有两个重要的思考角度:比特币的扩容与比特币的扩能。

扩容是指扩充比特币能使用与管理的数据容量,早期是局限在区块容量大小之内,后期是能够被比特币管理的全部数据能力。扩容的极限是管理无限的数据空间;

扩能是指扩充比特币的脚本指令实现功能的能力,扩能的极限是实现图灵完备的编程能力。

比特币的整个发展史,是扩容与扩能的发展史,包括各种比特币的分叉链,以及比特币的在 OP_RETURN 上的探索和隔离见证三次的版本变更。

三次版本中的细节原理图,大部分读者可以忽略,是作者为了深入理解相关技术放到文档中,忽略并不影响阅读效果。

文章中涉及到的 BIP 协议作者都标注了时间,是让阅读者能够感受到一个技术从思想产生到生产环境上线的时间周期,从而一定程度上感受到这项技术实现的难易程度。更重要的是三个隔离见证版本的协议产生时间,到上线时间,也完全可以看到这个事物大的发展规律,也便于预测之后的发展。对于基于这些技术与协议开发产品的团队有很好的参考作用,便于选择参与时机。一个新事物过早的参与经常会因为支撑技术不成熟,而成为 「先烈」;过晚的参与,会丧失先机,而成为 「看客」;作者认为在即将进入可用期之前进入是比较好的时机。这个 「即将进入可用期」 的判断经常会基于时间的判断,基于技术细节的判断。

1.1. 早期的交易(无隔离见证)

白皮书中定义的交易(最简单交易模型)

早期最基本的比特币交易,允许有多个输入和两个输出。其中一个输出的数值是给自己的找零,另外一个输出是给外部的转账。(备注:总输入与总输出之间的差额是手续费)

大部分交易都是 2 个输出,确实有只有一个输出的场景,总结如下:

为了更好的说明区别,我们使用 2 输入与 2 输出的图例。(还有一个主要的原因是我参考的资料提供了这种 2 输入与 2 输出的图片,不需要重新画图。偷懒了 ^_^)

用这样的对比图是不是更容易理解?

传统的交易示例图与隔离见证 Segwit 的交易示意图对比

1.2. 在 OP_RETURN 上的探索

为什么在讲隔离见证的时候,要谈到 OP_RETURN?因为这是比隔离见证更早期的探索,能更好的理解隔离见证产生的原因。

OP_RETURN 是一个脚本操作码,用来终止脚本并返回栈顶的值。这个操作码类似于编程语言中的返回函数。在比特币的历史上,OP_RETURN 操作码的功能被多次修改,现在它主要被用作为在账本上存储数据的一种方法。OP_RETURN 操作码的功能曾在过去发生过重大变化,现在它是一个重要的机制,使用它我们就能在链上存储任意数据。

OP_RETURN 最初是用于提前结束脚本执行的返回操作,执行结果将作为栈顶项目被呈现出来。这个操作码最初有一个容易被利用的漏洞,但中本聪很快修补了该漏洞。

对 OP_RETURN 功能的进一步更改

在 Bitcoin Core 的 v0.9.0 那次升级中,「OP_RETURN 输出」 脚本被制作成标准输出类型,允许用户将数据附加到 「不可花费的交易输出(unspendable transaction output)」 上。这类脚本中可用的数据量的上限最初被限制为 40 字节,然后提升至 80 字节。

将数据存储在区块链上

将 OP_RETURN 改为始终返回 false 造成了有趣的结果。由于在 OP_RETURN 之后不会评估任何操作码或数据,因此网络用户开始使用此操作码来存储任意格式的数据。

在比特币现金(BCH)的时期,即 2017 年 8 月 1 日 - 2018 年 11 月 15 日,能够附加到 OP_RETURN 输出的数据长度被扩展到 220 字节,更大的数据能够促进区块链上创新的应用,例如在区块链社交媒体上发布内容等。

在 BSV 上,220 字节的限制依然被保留了一小段时间。随后,在 2019 年 1 月,由于 OP_RETURN 操作码以节点不验证任何后续操作码的方式终止脚本,所以节点也不会检查脚本是否在 520 字节的最大脚本大小限制内。由此一来,网络上的节点运营商决定将最大交易体积提高到 100KB,从而赋予开发者有更多应用创新的自由,让新的应用可以将更大、更复杂的数据放入比特币账本。那时有一个应用例子,有人将将整个网站都放入了 BSV 帐本中。

OP_RETURN 虽然有一定的功能扩展,但总体来说能力还是有限。并且在 OP_RETURN 上面的改进并不能从架构上产生更多的技术进化(还是被限定到 1M 区块中),于是产生了隔离见证的技术。它的 3 次版本升级更好的说明了隔离见证在扩容与扩能方向上的正确性,以及产生的强大效果。

1.3. 早期交易与三次隔离见证版本变化的对比示意图

为了大家更好的理解比特币有隔离见证的整个历史,我们在文章的头部先把四个阶段的对比示意图展现给大家。

2. 隔离见证第一个版本 Segwit


2.1. 简介与相关协议

隔离见证,即 Segregated Witness(简称 SegWit),由 Pieter wuile(比特币核心开发人员、Blockstream 联合创始人)在 2015 年 12 月首次提出,后来形成了比特币 BIP141。隔离见证主要解决问题有 3 个(见后面的说明),前两项主要是增加安全性和性能,其中对新技术影响最多的是第三项,变相增加了区块的容量(见下面的概念 Block weight),从而为比特币的能力扩容打下来基础,以至于后面的 Taproot(隔离见证的第二个版本)的进一步加强。

相关协议:

BIP-141:Segregated Witness (Consensus layer) /2015-12-21

BIP-143:Transaction Signature Verification for Version 0 Witness Program /2016-01-03

BIP-144:Segregated Witness (Peer Services) / 2016-01-08

2.2. 起因与作用

隔离见证主要解决的问题:

1)transaction malleability(交易延展性)问题。

2)SPV 证明中传输交易的签名成为可选项,能够减少 Merkle proof 传输的数据量。

3)变相增加区块容量。

前两项主要是增加安全性和性能,其中对新技术影响最多的是第三项,变现增加了区块的容量,从而为比特币的能力扩容打下来基础,以至于后面的 Taproot(隔离见证的第二个版本)的进一步加强。

虽然变相扩大了区块容量,但隔离见证也受到区块大小限制。比特币的区块大小限制为 1M bytes,由于 witness 数据不包含在这个限制中,为了防止 witness 数据被滥用,仍然对总的区块大小做了限制。引入了一个新概念叫块重量(Block weight)

Block weight = Base size * 3 + Total size

Base size 是不包含 witness 数据的块大小

Total size 总大小是按 BIP144 中所述序列化交易的块大小(以字节为单位),包括基础数据和见证数据。

隔离见证限制 Block weight = 4M。

隔离见证还在技术上使得比特币的扩容可以使用闪电网络,这里不详细介绍这部分的内容。

2.3. 细节原理解析

比特币隔离见证 SegWit 技术导致了三个重要变化:

  • 交易结构的变化;
  • 区块尺寸的增加;
  • 一种新的比特币地址格式。

(1)交易结构如下图所示:

通过上图和原有的比特币交易图对比,增加了 Witness 部分的内容,这部分是的解锁代码。而且 Witness 部分的数据是存储在 1M 之外的扩展数据区里面。

更详细的 Segwit 的交易数据示意图如下:

详细的 SegWit 交易示意图

(2)交易尺寸介绍

区块大小增加

通过签名交易结构的变化介绍,以及 BIP-141 的内容,我们会看到比特币的区块实际上最大可以扩充到 4M,其中原有的 1M 是基本的交易数据区,新增的 3M 是 Witness 数据区。

(3)隔离见证的地址格式

比特币隔离见证 SegWit 使用两种新的锁定脚本 P2WPKH 和 P2WSH,于是产生了新的基于 Bech32 的新编码地址。

Bech32 地址编码格式定义如下:

针对锁定脚本 P2WPKH 和 P2WSH 的格式如下说明,在这里也加上了隔离见证第二个版本 Taproot 的地址样例。

锁定脚本

P2WPKH

这里 20Byte 的公钥哈希实际上就是算法中的最初的比特币地址形式。

P2WSH

wTXID Commitment

见证区中所有的交易 ID(wTXID)会通过哈希树形成一个根哈希提交到 coinbase 中,具体值的组合见示意图。

单个见证交易的交易 ID(wTXID)的形成原理示意图

wTXID

2.4. 发展情况与总结

隔离见证技术在 2015 年 12 月份提出,到真正的激活是 2017 年,在 481824 区块高度激活。区块查看链接。详细的学习与分解介绍

隔离见证技术是比特币历史上非常重大的一次变更,开启了比特币扩容与扩能的辉煌发展史。隔离见证在扩容与扩能的角度,主要完成了扩容功能。所以顺着这个方向思考,下一个版本的发展就会是扩能。

3. 隔离见证的第二个版本 Taproot

从扩容与扩能的角度,我们应该可以预测到隔离见证第二个版本的功能。

3.1. 简介与相关协议

如果直接使用 Taproot 这个单词,很多人以为是一个新概念,但如果告诉你这是隔离见证 SegWit 的第二个版本,大部分人都会明白其中的关联性。与 Taproot 相关的 BIP 是 340,341,342,他们的名称是:BIP340(Schnorr Signatures for secp256k1),BIP341(Taproot: SegWit version 1 spending rules),BIP342(Validation of Taproot Scripts)。

相关协议:

BIP-341: Taproot: SegWit version 1 spending rules /2020-1-9

BIP-342: Validation of Taproot Scripts /2020-1-19

BIP-340:Schnorr Signatures for secp256k1 /2020-1-19

2021 年 11 月,Taproot 以软分叉的形式正式生效。此次升级由 BIP340、BIP341 和 BIP342 组合。其中 BIP340 引入了可以同时验证多个交易的 Schnorr 签名,取代了椭圆曲线数字签名算法(ECDSA),再一次扩大了网络容量并加快了批量交易的处理速度,为部署复杂的智能合约提供了可能性;BIP341 实现了默克尔化抽象语法树(MAST)来优化区块链上的交易数据存储;BIP342(Tapscript)采用比特币的脚本编码语言扩充的比特币原生脚步能力的不足。

由隔离见证 Segwit 与 Taproot 的空间扩大,导致了 Schnorr、MAST 树和 Taproot Scripts 的产生,他们要完成的使命是比特币主网的功能扩大。

3.2. 起因与作用

因为有了隔离见证 SegWit 技术,事实上把比特币的区块容量增加了。但 SegWit 技术还遗留了一些问题:

(1)在 SegWit 版本中底层加密算法仍然使用的是 ECDSA。(新的发展需要更好的非对称加密算法,以支持更丰富的功能和特效。于是开始采用新的 Shnorr 签名)

(2)空间增加了,但解锁脚本还是一对一的简单结构。(于是出现了 MAST 树这样的复杂条件结构)

(3)SegWit 没有增强比特币脚本的功能。(于是产生了 Tapscript)

于是隔离见证的第二个版本 Taproot 技术非常好的解决了上述问题,使得隔离见证技术有了更好的发展,以至于可以实现更多的功能。BIP340 解决了(1)中的问题;BIP341 实现了默克尔化抽象语法树(MAST)解决了(2)中的问题;BIP342(Tapscript)采用比特币的脚本编码语言扩充的比特币原生脚步能力的不足,解决了(3)中的问题。

3.3. 细节原理解析

Taproot 技术的几个重要的新特性:

  • 引入 Schnorr 签名
  • P2TR 的两种锁定脚本:Key Path Spend(类似与 P2WPKH);Script Path Spend(类似与 P2WSH)
  • 脚本树(MAST 默克尔抽象语法树)
  • Taproot Script

Schnorr 签名

Taproot 的发展,在扩充能力的同时,对签名算法有了一定的要求,于是 Schnorr 签名开始出现,并用来替代椭圆曲线数字签名算法(ECDSA)。Schnorr 签名是一种数字签名方案,可以高效且安全地对交易和消息进行签名。它最早由克劳斯・施诺尔(Claus Schnorr)在 1991 年的一篇论文中描述。Schnorr 因其简单性、可证明的安全性和线性性而受到赞誉。

Schnorr 签名的优势:

Schnorr 签名具有多种优势,包括高效性、增强的隐私性,同时保留了 ECDSA 的所有功能和安全假设。Schnorr 签名可以实现较小的签名大小、更快的验证时间,并且对某些类型的攻击具有改进的抵抗能力。

Schnorr 签名最显著的优势是密钥聚合(key aggregation),将多个签名聚合为一个签名,该签名对其密钥的总和有效。换句话说,Schnorr 使得多个合作方能够生成一个对他们的公钥总和有效的签名。签名聚合使得多个签名者的签名可以合并为一个单一的签名。密钥聚合能够降低交易费用并提高底层可扩展性,因为来自多签名设置的电子签名在区块中占用的空间与来自单方交易的签名相同。Schnorr 的这个特性可以用于减小多重签名支付和其他与多重签名相关的交易的大小,例如,闪电网络通道交易。

Schnorr 签名的另一个重要特性是不可篡改性。

Schnorr 还提供了很多隐私优势。它可以让多重签名方案与传统的单一公钥无法从外部区分,Schnorr 使得观察者在链上活动中更难区分多重签名的支出和单一签名的支出。此外,在 n-of-m 多重签名设置中,Schnorr 使得外部观察者更难通过查看链上信息来确定哪些参与者在交易中签名,哪些没有签名。

Schnorr 签名被实现在 BIP-340 中,作为 Taproot 软分叉升级的一部分,并于 2021 年 11 月 14 日在区块高度 709,632 上激活。Schnorr 使 BTC 的数字签名更快、更安全、更易处理。值得注意的是,Schnorr 签名与 BTC 的密码学算法向后兼容,这样就可以通过软分叉升级引入它们。

2.基础原理图与 Key Path Spend、Script Path Spend

3.MAST 默克尔抽象语法树

了解了上面的 Key Path Spend 与 Script Path Spend,最重要的是这些脚本可以组织到一个树形结构中。

这棵树是语义树 AST 与默克尔树的集成。如下图所示:

AST 树

将上面的语义树构建成一颗默克尔树,如下:

4.Taproot Scripts

在 BIP342 协议中入 Tapscript 脚本,Taprootscript 是原始比特币脚本的升级版,也可以被称为一种语言,但它实际上是带有命令的操作码的集合,这些命令为另两个 BIP 的实施助力。Taprootscript 还取消了 10000 字节的脚本大小上限,为在比特币网络创建智能合约提供了更好的环境。(该升级也为后来 Oridnals 的诞生埋下基础,因为 Ordinals 协议就是利用的 Taproot 的 script-path spend scripts 脚本来实现的附加数据)。详细资料可以查阅官方网址

当前 TaprootScript 的能力还没有被充分发挥,后期的更多建设会体现出其威力。例如,比特币一层网络与二层网络的连接技术,应该更多的使用 Taproot、MAST 与 TaprootScripits。

注:其实在 Taproot 一层,TaprootScript 的能力还比较受限制,因为还需要比特币的虚拟机来支持。在隔离见证中的第三个版本中 TaprootAssets 协议中有专门针对 TaprootScript 的专用虚拟机 TAP-VM,使得能力的扩充更强大,与比特币的主网运行环境隔离更好。

3.4. 发展情况与总结

Taproot 技术在 2020 年 1 月份提出,2021 年 11 月,Taproot 以软分叉的形式正式生效。在比特币的生态有了 Taproot 技术之后,新的应用就开始产生了。开始阶段的应用是那些轻量级,简单的应用。

典型的应用包括:

(1)Ordinals 序数协议、铭文、BRC20

(2)其他协议 - Atomicals,ARC20

(3)其他协议 - Rune

SegWit 与 Taproot 技术完成了第一次扩容与扩能的探索,但局限在现有结构下,这种扩容和扩能都有局限性。

比特币的第一次扩容实现了从 1M 区块到 4M 区块的扩容,如果延续这种思路继续扩容,即使技术支持,是不是也和其它比特币的分叉链一样,导致区块变得十分巨大?这会导致比特币中心化等严重的问题,会破坏区块链的安全性。因此下一步的扩容需要一种不同的技术实现原理。

Taproot 技术虽然完成了比特币的第一次扩能,同样这种扩能也有一定的局限性。在比特币主网,执行 BTCScript 的虚拟机和 TapScript 的虚拟机是同一个虚拟机(比特币的堆栈计算)。使得这种扩能受到很多限制,也会影响原有比特币主网的稳定性与安全性。如果新的扩能隔离开比特币主网的虚拟机,形成一个符合分层协议的独立虚拟机与比特币主网的虚拟机一起工作是一种更合理的发展思路。这个隔离出来的虚拟机还有可能从非图灵完备发展到图灵完备。

4. 隔离见证的第三个版本 TaprootAssets 协议

在比特币的主网有了第一次的扩容与扩能技术之后,为后面的扩容与扩能提供了非常好的技术参考与实现思想。可以预见的比特币的下一次发展,应该主要解决进一步扩容的问题。当然如果能一起解决扩容与扩能更好,但同时支持两个重大的变更是非常危险的,会让工程实现的难度会变得非常大。于是比特币主网的再一次扩容技术产生了(同时也有了一些比较小的扩能技术出现)。

4.1. 起因与作用

因为 Taproot 的发展,使得比特币的生态有了更多的可能性。这种可能性表现在几个方面:

(1)是否可以不占用比特币的区块空间,完成更进一步的隔离见证,即,见证区的数据存储比特币区块之外,只把证明存储在比特币的主网;

(2)见证区的数据是否可以具有更丰富的结构,能满足更多的业务功能。

(3)进一步扩充 TaprootScript 的能力,使用一个单独的虚拟机来完成相关的计算。

如果上述目标可以实现,在完全保证比特币主网特性的情况下,可以实现非常丰富的功能。

有了隔离见证的第二个版本 Taproot 技术是否就满足了比特币技术的发展?是否还有进一步的升级与扩展空间?

4.2. 简介与相关协议

闪电网络实验室正是在上述的原因和背景下,在 2021 年年底,产生的 Taproot Assets 协议。Taproot Assets 协议(曾用名 「Taro」)。Taproot Assets 协议比 Taproot 具有更强大的能力,其设计结构也非常精妙。(在此要非常感谢协议的设计人,闪电网络实验室的 CTO,Olaoluwa Osuntokun)

Taproot Assets 协议由 7 个重要的 BIP(当前还未获得 BIP 编号)组成:

BIP-TAP-ADDR:Taproot Asset On Chain Addresses Draft /2021-12-10

BIP-TAP-MS-SMT:Merkle Sum Sparse Merkle Trees Draft /2021-12-10

BIP-TAP-PROOF:Taproot Asset Flat File Proof Format Draft /2021-12-10

BIP-TAP-PSBT:Taproot Assets PSBT Draft /2023-02-24

BIP-TAP-UNIVERSE:Taproot Asset Universes Draft /2021-12-10

BIP-TAP-VM:Taproot Asset Script v1 Draft /2021-12-10

BIP-TAP:TAP: Taproot Assets Protocol Draft /2021-12-10


TaprootAssets 协议把比特币的扩容与扩能几乎发挥到了极致。空间因为 Universe 的存在,几乎可以是不受限制(理论上是无限空间);能力的上限是 TaprootScript 的脚本能力和其 VM 的特性。(当前 TAP 的 VM 还不是图灵完备)

4.3. 细节原理解析

Taproot Assets 协议的几个重要的新特性:

数据完全存在比特币主网之外,链外数据的证明存在在了比特币主网的区块上;
链外数据有了更加完整的结构,设计结构非常精巧,会有更好的扩展性;
链外数据有了更强大的虚拟机 VM 的支持与比特币主网的虚拟机开始分离,可以完成超越比特币主网的更多功能;

链外数据的存储与链上的证明

Taproot Assets 协议使用了 Universe 这样的方式来存储链外数据,这种设计有非常大的好处,既可以将需要公开的数据提供给访问者,也可以不公开这些数据,提供更加隐私的方式保存数据。

在当前的 Taproot Assets 协议中,使用稀疏默克尔求和树来解决资产相关的需求。

这张图是使用 MS-SMT 发行的多种资产的示意图

这张图是 TaprootAssets 传输资产,持有资产的示意图。

2.完整的数据结构 - MS-SMT(稀疏默克尔求和数)

Taproot Assets 协议在发行资产方面使用了和比特币主网相同的 UTXO 模型,称为 vUTXO。其中 vUTXO 总量的控制,vUTXO 的分割、合并、转移操作,使用了 MS-SMT 稀疏默克尔求和树。求和保证总量不变,稀疏默克尔树完成了所有 vUTXO 的状态记录,

(从 SegWit 中的 Virtual Byte 到 TA 中的 Virtual UTXO,是多么相似的演化路径呀!)

「稀疏默克尔求和树」(以下将缩写为 「MS-SMT」)是默克尔树的一个变种,由 bip-tap-ms-smt 定义。因为其关键字是 256 比特的,所以它有 2^256 个叶子。绝大部分叶子是空的。

每个叶子都包含一个数量,而每个分支节点都承诺其子树上的叶子所表示的数量之和。即使一棵子树的内容不可知,只需检查分支节点,就可以知道该子树所包含的总数量。树根则承诺所有叶子所表示的总数量。

就像通用的默克尔树,只需一棵修剪过的、包含目标叶子的树,就可以提供这些目标叶子在树上的证明(默克尔证明)。但 MS-SMT 还支持 「不包含证明」。这是通过一种限制来实现的:表示不存在的关键字的叶子所包含的数量必须显式设定为一个表明其不存在(None)的值(因此,证明 「None」 的存在就构成了一种不包含证明)。因此,默认的 MS-SMT 会由 2^256 个表示 「None」 的叶子。

资产叶子(资产 UTXO)

资产树的低层 MS-MST 以 asset_script_key 作为关键字,以资产叶子作为值。每一个资产叶子都代表着该资产的一个 UTXO(为简洁,下文就直接表述为 「UTXO」—— 不是比特币的 UTXO),并且下列属性(包括可选的一个)会被序列化为 「类型 - 长度 - 数值」 格式。

taproot_asset_version

asset_genesis

asset_id

asset_type

amt

lock_time

relative_lock_time

prev_asset_witnesses

- prev_asset_id

- asset_witness

- split_commitment_proof

split_commitment

asset_script_version

asset_script_key

asset_group_key

canonical_universe

asset_genesis 就是推导出 asset_id 的原像。

asset_script_key 既是资产叶子的关键字,也是一个 Taproot 形式的公钥(以一个独立于比特币的 tap-vm 定义),并且是花费由该资产叶子表示的 UTXO 的条件。

在花费一个 UTXO 时,首先要满足(外部的)比特币花费条件,然后是(内部的)TAP 花费条件,由 asset_script_key 指定,并且 asset_script_key 应该被 prev_asset_id 和 asset_witness 满足。举个例子,asset_witness 是被花费的 UTXO 的 asset_script_key 的签名。

如果在一次资产转移中分割了 UTXO,也需要 split_commitment 和

split_commitment_proof。split_commitment 是一棵 MS-SMT,指代分割之后的所有 UTXO(在这个意义上,资产树其实有三层),而根中的和值是被转移的所有数量。

split_commitment_proof 是 split_commitment 的一个默克尔证据,证明一次分割的存在。

在所有分割中,只有一个会有 prev_asset_id、asset_witness 和 split_commitment。所有其它分割只有 split_commitment_proof。所有的分割共享 prev_asset_id 和 asset_witness。

Taproot Assets 协议的虚拟机 TAP-VM

在 BIP-TAP-VM:Taproot Asset Script v1 中,开始定义专门为这个协议使用的虚拟机。前期主要基于 BIP-341 和 BIP-342(Taproot 的两个主要 BIP)的少量调整,主要还是 BTCScript 和 TaprootScript 的轻微扩展。

但作者相信,在这样的设计结构下,TAP-VM 的执行环境已经与比特币主网分离了,可以通过闪电网络实验室的 tapd 应用发展出一个功能更加强大的虚拟机,只是出于安全与稳定性的考虑,这个过程比较缓慢,这样符合比特币生态应用的特点。

TrustlessSwap 是 TaprootAssets 协议很重要的一个初级功能,依托此功能已经能够开发出比较复杂的比特币原生应用。

在我们项目团队的开发中,已经感受到了一些强大功能。例如,TrustlessSwap 已经可以完成比特币与其上发行的资产进行比较复杂的功能设计。

今后的很长一段时间,在初步的资产发行稳定与成熟的情况下,TaprootAssets 协议的重点都会在 TAP-VM 的功能发展上。

题外话:我有个疑问?如果不断发展下去,TAP-VM 是否可以发展成一个图灵完备的虚拟机?我判断如果发展时间足够长,最终是可以实现图灵完备的。那么接着就有第二个问题,长期看,在 TaprootAssets 的协议下,是否需要一个图灵完备的虚拟机?

4.4. 发展情况与总结

Taproot Assets 协议从 2021 年底诞生协议的初始文件,到 2023 年 Taro 的版本发布,完成了初始的探索阶段。但 Taro 的版本还有很多设计上的不完善,导致上层的应用没有得到很好的支持,应用的发展一度陷入停滞。到了 2024 年 tapd0.3.0 版本的发布,使得 Taproot Assets 协议有了比较好的探索发展,直到 2025 年的 6 月份之后,tapd0.6.0 版本的发布,协议进入稳定可用状态。基于 Taproot Assets 协议开发更丰富应有了比较好的基础。

对比 Taproot 技术之后产生的 Ordinals,铭文,BRC20,ARC 等协议,在 TaprootAssets 协议上产生的应用会比隔离见证第二版本产生的协议更加丰富,更加稳定,更加可用。

像 TA 资产的发行,TA 新资产的钱包,TrustlessSwap 这样的应用,以及稳定币,更复杂的 BTCFi 应用都已经成为可能,并且会逐渐实现。

TaprootAssets 协议初始阶段是主要完成了比特币的扩容,通过 Univese 理论上把比特币可以使用的空间扩展到了无限。TAP 的 VM(Taproot Asset Script v1)也有了初步的模型,重要的是产生了一个隔离的,可以独立发展的 VM。在可以预见的发展后期,比特币都会在扩能方向上发展。

5. 总结

通过比特币发展史中的隔离见证技术的三次重大升级,使得比特币的主网在扩容与扩能方面得到了极大的提升。在扩容上,Universe 从理论上已经可以把空间做到无限大,如果能够结合闪电网络那么应该可以把交易的 TPS 扩充到无限大;在扩能上,TAP-VM 如果可以发展到图灵完备,那些也将扩能发展到极致。这些基础设施成熟会需要很长的时间。

隔离见证三次重大升级形成了比特币生态发展的强大协议与技术基础。从 SegWit 到 Taproot,到 TaprootAsset 协议,几乎完成了大部分应用需要的基础设施。我相信 TaprootAssets 会迎来一波重要的产品生态爆发。

需要注意的是:三次隔离见证之后的脚本语言仍然是非图灵完备的。

这三次隔离见证的版本升级使得比特币的结构发生了彻底的变化,未来会发展到什么阶段?TaprootAsset 协议看起来有一点点像 Layer2 技术,但又不符合完全的 Layer2 标准。它与比特币一层的特性与机制非常相同,又不完全是比特币一层的直接发展。作者认为比特币将会发展到了 BTC2.0 阶段,期望今后能和更多的高手交流相关思想。如果可以梳理清楚思路,稍后找时间描述一下 BTC2.0 的具体发展可能性与理论基础。

如果是 BTC2.0,那么 TaprootAsset 协议的 7 个 BIP 是不是使用 BIP2 开头来命名更好?BTC1.0 与 2.0 协议的审核标准,设计原则是不是能够规划的更清晰?而且开发资源是不是可以更好的分工与合作?原有的 BitcoinCore 团队除了维护 BTC1.0 的比特币主网,还可以加入到 BTC2.0 的发展中来持续做出贡献?这样 BTC2.0 是不是可以建设的更快与更好?……

非常感谢闪电网络的 YY,给本文很多反馈和指导。

参考文献

1.https://mp.weixin.qq.com/s/nllcI-QEJhzxtCBTzi0-Iw

2.https://learnmeabitcoin.com/

3.https://github.com/Roasbeef/bips/blob/bip-tap/bip-tap.mediawiki

4.https://docs.lightning.engineering/lightning-network-tools/taproot-assets/

5.https://medium.com/nayuta-engineering-blog-en/understanding-taproot-assets-protocol-e2dfe3fc1e07

免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。

分享至:
APP下載

X

Telegram

Facebook

Reddit

複製鏈接