比特币二层网络可行性探讨(上):Ordinals vs Taro

OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载   官网注册

作者:3P Labs

一、引言

Bitcoin 作为最早、最安全的区块链,所使用的 UTxO 账户模型导致它很难支持像 Ethereum 的智能合约功能,只能支持一些有限的基于脚本语言的功能。所以自 Bitcoin 诞生的 15 年间,它没有被用来实现像 Ethereum 上的各种让人眼花缭乱的 DeFi 协议、NFT,通常被用于点对点转账和价值存储。

2022 年 12 月 14 日被正式启动的 Ordinals 协议改变了这一切,它将使用者所需要存放到链上的元数据放入交易输入中,并基于序数理论[^1]实现了一套程序来追踪并记录这些“铭文 (Inscriptions)”。这样的“铭刻”所实现的是记录了静态的元数据,而不是如 Ethereum 智能合约一样的可动态执行的链上程序。这也使得“铭文”天然地成为了 Bitcoin 上的 NFT。而基于序数理论,人们也能够构建交易来实现这些铭文之间的转移、交易。

此后,在 2023 年 3 月 6 日,基于 Ordinals 的 BRC-20 协议被提出,它被用于实现 Bitcoin 上的同质化代币,对应了 Ethereum 上的 ERC-20 协议。而这样基于 Ordinals 的协议很简单,以 Json 的格式将代币的铸造、转移的过程写到铭文上,最为形象的比喻就是一张张写上转账记录的纸,而记账的事情交给第三方机构去做。

比特币二层网络可行性探讨(上):Ordinals vs Taro

比特币二层网络可行性探讨(上):Ordinals vs Taro

这样的 BRC-20 协议颇有暴力美学的美感,也是一种在各种因素下的妥协。在此前 Bitcoin 也曾出现过像彩色币的同质化代币,这不能证伪 BRC-20 是失败的应用,但似乎也能说明它或许不是一种长久的协议。至此,进入本文的主题,基于闪电网络的主根资产(Taproot Assets)。

二、闪电网络

闪电网络是建立在 Bitcoin 上的 Layer 2 解决方案,其目的是在 Bitcoin 的支付场景下帮助用户节省成本、提高效率。而闪电网络所依赖的思想也很简单,即构建资金池,这样的资金池也被称为交易双方的微支付通道。更具体一点,涉及到两个核心概念:

·Revocable Sequence Maturity Contract(RSMC):序列到期可撤销合影

· Hashed Timelock Contract(HTLC):哈希时间锁定合约

RSMC 假定了交易双方之间存在一个微支付通道,双方先存放一部分资金到这个通道中,初始情况下双方的分配方案就是预先存放的金额。在每一次发生交易时,双方都需要对交易后产生的分配结果进行确认,同时把原有的分配方案作废。这个过程涉及到的概念较多,而且比较巧妙,具体可参阅 [A Dive into Lightning Network (Part One)][^14],而它在闪电网络中的作用是构建双方之间的支付通道。

HTLC 是一种带事件的哈希锁定,它要求某一方在一定时间内提交某个哈希值 $h=H(m)$ 的原像 $m$ 以取得使用某一笔 UTxO 使用权。它在闪电网络中被用于构建支付路由,具体的实现过程见 [Lightning network in depth, part 2: HTLC and payment routing][^15]。

闪电网络整合了这两种机制,使得交易可以在闪电网络中的任意两个节点间能够在链下完成。

三、Taproot 升级

Taproot 是三个比特币改进提案(Bitcoin Improvement Proposal, BIP)BIP-0340 (Schnorr 签名)、BIP-0341 (Taproot)和BIP-0342 (TapScript)的汇编,它也是 Taro 资产能够实现的基础。在这里,对 Taro 资产的实现中所涉及到的 MAST 进行说明:

MAST

BIP-0341 中引入了默克尔抽象语法树(Merklized Abstract Syntax Tree, MAST)[^7][^8][^9],其目的是隐藏 UTxO 的支出条件,并且减少信息的大小。这是 Taproot 升级的一部分,Taproot 升级将原有的 P2SH(Pay-to-Script-Hash) 和 P2PKH(Pay-to-Public-Key-Hash)结合在一起,使得一笔数输出可以直接通过私钥使用,也可以提供花费输出的脚本和默克尔证明来使用。

MAST 结合了抽象语义树和默克尔树,默克尔树作为一种在区块链中常见的数据结构,在这里不再进行赘述。而抽象语法树(AST)是一种把程序分割为独立的小块以描述程序的方法,这样会让程序变得容易分析和优化,具体可查阅[Abstract syntax tree]。MAST 结合了 AST 的将程序划分为多个小块的思想,再把程序每个小块进行哈希,利用默克尔哈希树的思想把这些哈希结果构建为默克尔树。

比特币二层网络可行性探讨(上):Ordinals vs Taro

考虑这样一个脚本[^9]:Alice 希望可以随时花费她的比特币,但是如果她连续三个月没有花费,那么她的兄弟姐妹 Bob 和 Charlie 就可以花费这笔 UTxO,其脚本实现如下

OP_IF

OP_CheckSig

OP_ELSE

"3 months" OP_CSV OP_DROP

2 2 OP_CHECKMULTISIG

OP_ENDIF

在 P2SH 下,这样的脚本是需要在花费时完全暴露在交易中的,Alice 在花费这笔 UTxO 的同时需要提供该脚本,以及包含在其中的 Bob 和 Charlie 的公钥。

而在有了 MAST 后,对该脚本的两个条件进行划分,得到一个简单的 MAST

比特币二层网络可行性探讨(上):Ordinals vs Taro

此时,Alice 在花费的时候只需要选择提供她的公钥验证脚本和 Hash2 作为默克尔证明即可,而不需要暴露 Hash 2 下的具体脚本,这部分信息不会上链。而这样也进一步降低了类似交易的开销,这是很自然的,提供完整的脚本总是比提供脚本的哈希值的数据量少。而这样的结构也给智能合约的实现提供了可能,这样的方式正如 EVM 中的字节码一样,在运行前可以根据输入数据的前 4 个字节来选取将要调用的函数。不同地方在于,这样的脚本调用需要用户提供具体的脚本,以及默克尔证明来证明脚本是合法的。

四、主根资产

主根资产(Taproot Assets,后续简称为 Taro)[^2][^3][^5]是一种还在提议阶段的协议,它可以实现在 Bitcoin 上发行资产,这样的资产可以通过链上的交易通过比特币网络转移(对 NFT 的交易、转移已经被 Ordinals 实现)。特别地,同质化的 Taro 资产可以在存入闪电通道后在闪电网络上以更低的手续费、更为隐私地转移,类似的还有尝试在闪电网络上运行智能合约的 RGB 协议[^4]。

Taro 可以在 Bitcoin 主网或二层的闪电网络上流通。先考虑在 Bitcoin 网络的情况,Taro 是附加在交易上的哈希化元数据形式,使用哈希化的目的在于降低交易的占用空间以节省手续费。而这样的哈希化元数据形式则是 Taro 的核心,这样的一条哈希值甚至可以代表实际上的几百万次交易,它的原理会在后续进行介绍。

其次是 Taro 在闪电网络上的情况,使用闪电网络可以让同质化的 Taro 资产实现更快的交易速度,这类似于使用闪电网络可以更快、成本更低地转移比特币。在 Taro 的提议中,闪电网络自身不需要改变,为了实现一笔某种 Taro 资产的交易,只需要整条支付路径的第一条通道和最后一条通道可以识别 Taro 资产即可,而中途的路由通道则是正常的闪电网络转账方法,它们转账等价的比特币,这也导致 Taro 资产通常会在网络的边缘和其他资产交换。

Taro 协议

既然了解了 Taro 所能带来的好处,那么接下来需要介绍的是,它是什么?以及如何实现?正如需要了解 BRC-20 就是一堆写好转账记录需要第三方机构来记账的纸片,ERC-20 是智能合约所记录和维护的一串余额信息一样。Taro 又是如何实现资产的发行、转移的?

资产树

资产树是 Taro 中的一种两级默克尔树结构,它被用来代表 Taro 资产。第一级是由 Taro 信息作为叶子节点而构成的默克尔树,而第二级则是通过 MS-SMT 构成的表示每个账户所具有的该资产的树,MS-SMT 的思想较为简单,它在默克尔哈希树基于哈希来构成树形结构的同时,每个节点还存放了左右两个子节点的和来实现(进行哈希运算本身也算一种求和),这样的资产树和 MS-SMT 树被用来构建 Taro 的 UTxO。

比特币二层网络可行性探讨(上):Ordinals vs Taro

资产叶(Aseet Leaft)是资产树中的最底层结构,它表现为资产树示意图中的淡蓝色节点,它以 assetScriptKey (assetScriptKey 可以类比 P2SH 交易中对交易脚本的哈希值)作为键。每个资产叶表示 Taro 资产的一个 UTxO,资产叶中包含的可选项可参见 [Understanding Taproot Assets Protocol]。

MS-SMT

默克尔总和稀疏树(Merkle Sum Sparse Merkle Tree)[^11]是在 [bip-tap-ms-smt] 中定义的数据结构,它是稀疏默克尔树的增强版本,目前是 bips 中一个仍未被接收的提案。由于键(key)是 256 bits 长的,所以这样的 MS-SMT 有 $2^{256}$ 个叶子节点,其中的大部分是空的,所以它是稀疏的默克尔树。

每个叶子包含了一个数量,每个分支向上提交叶子中的总量,这样可以在不知道每个子树的内容的情况下知道分支中包含的总和。而和一般的默克尔树一样,包含任何叶子的被修剪过的树可以提供成员存在证明(这是密码累加器中的一个概念,它是一种“证明”用于证实一个元素在一个集合中)。而 MS-SMT 也支持成员不存在证明(它通过显式地指示不存在的键的叶子为 None 来实现),即证明这样的键在树中为 None 来证实它不存在,这样的结构可以高效地验证树上存储的数值和分布是否存在改变。

下图是一个默克尔总和树以及它发送改变后的结构,而默克尔总和稀疏树则是结合了稀疏树的特点,将空元素节点修建掉,只存放有意义的信息,空节点使用 None 表示。

比特币二层网络可行性探讨(上):Ordinals vs Taro

Taro 资产发行

Taro 资产的发行需要一个标识符,正如 ERC-20 代币的智能合约会拥有一个地址一样,Taro 协议定义了标识符的生成方式:ID = SHA256(genesisPoint||assetTag||assetMeta) ,它将铸造资产所使用的交易输出信息、资产标签(例如资产名称的哈希值)以及资产的元数据(图片、链接或文档)进行哈希,从而得到一个标识符。

Taro 资产的转移脚本可以有类似比特币交易的输入输出,而创建资产的交易不需要包含任何的 Taro 资产的输入,由此可见,Taro 资产沿用了比特币的 UTxO 模型,资产的发行就是发布一笔 Taro 资产的交易,它没有输入,只有输出。

Taro 的输入和输出是基于资产树来实现的,正如前文所述,资产树的第一级代表了该笔 UTxO* (后面会继续沿用这种写法,* 表明这样的结构是在 Taro 资产中而非 Bitcoin 中)中存放的 Taro 资产有哪些,而 Taro 资产 ID 所对应的 MS-SMT 中所存放的是该笔 UTxO* 输出的 Trao 资产的信息。

构建一笔 Taro 资产的发行交易如下图所示,以一笔 Bitcoin 的 UTxO 作为输入,输出一笔正常的 Bitcoin UTxO 以及附加的 Taro 资产 A 的 UTxO*。这样的 UTxO* 在 Bitcoin 上表现为一个默克尔根的形式,而它在链下表现为资产树的形式,资产树中记录了 Taro 资产 A 的 assetId 以及资产 A 对应的 MS-SMT 中的记录。

比特币二层网络可行性探讨(上):Ordinals vs Taro

Taro 资产转移

如果能理解上一小节中资产的创建,那么就可以更快地理解资产的转移过程。资产的转移和 Bitcoin 中的一笔交易是类似的,选择一系列的可用 UTxO 作为输入,然后再输出一系列的 UTxO。在 Taro 资产中则是选择一系列可用的 UTxO* 作为输入,并输出一系列的 UTxO*。

比特币二层网络可行性探讨(上):Ordinals vs Taro

在这笔交易中,A 将自己的 Trao 资产 X 全部转移给 B,并且不进行拆分。在 B 接收到该交易时,需要验证资产是否满足支付条件且没有产生多余的输出来确认收到资产。

所需要验证的条件包括但不限于:

·为 B 所创建的资产树是否包含满足付款条件的新 UTxO?

·输入 UTxO 是否已经从已经更新了的 A 的资产树中删除?

·如果交易中还有其他的输出,那么它们是否包含另外的资产树?

这些信息可以由 MS-SMT 的成员 / 非成员证明以及 Trproot 输出的前像以及证明来进行验证。对资产的合并、拆分不再进行赘述,它们的过程和资产转移的过程类似,但是在输出的 UTxO* 中包含了拆分证明或合并证明。

Taro Universe

Universe 是一种为资产的持有人提供有关资产信息以及证明的服务 [^6],其作用类似于比特币区块浏览器[^13],但是它会展示与 Taro 资产客户端一起存储在链下的 Taproot 资产的交易数据。Universe 可以由资产的发行人自己运营,也可以由发行人任命某个运营商,可以想象的是由社区运营的 Universe 汇总来资产持有者提交的信息。

五、结束语

上篇到此为止,我们简单地介绍了 Taro 资产实现所基于的技术,以及它本身的实现原理。在下篇中,我们将会介绍 Ordinals 及 Taro 资产发展现状 。

本站所有软件信息均由用户上传发布,版权归原著所有。如有侵权/违规内容,敬请来信告知邮箱:764327034@qq.com,我们将及时撤销! 转载请注明出处:https://czxurui.com/zx/90435.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年10月10日
下一篇 2023年10月10日

相关推荐

  • 数字化财产有哪些,数据资产的特点有哪些

    一、数据资产的特点有哪些数据要素的鲜明特点包括可共享可复制,无限增长。数据资源具有可复制、可共享、无限增长和和供给的秉性,打破了自然资源有限供给对增长的制约。数据要素是推动经济增长的新引擎:数据要素作为数字经济最核心的资源,具有可共享、可复制、可无限供给等

    2024-12-22 01:30:01
    5 0
  • 锚定资产是什么意思,什么是锚定资产

    一、人民币的锚定物是什么为什么人民币锚定物是中国的国民财富,人民币是信用货币,是以国家信用为担保发行,不过这个信用可不是一个虚拟的名词,是以实打实的财富抵押发行的,人民币的发行主要是通过银行系统,包括央行和各级商业银行,这个过程是通过负债完成的,政府,企业

    2024-12-20 19:00:01
    6 0
  • 如何锚定资产,什么叫做资产锚定

    一、人民币的锚定物是什么为什么人民币锚定物是中国的国民财富,人民币是信用货币,是以国家信用为担保发行,不过这个信用可不是一个虚拟的名词,是以实打实的财富抵押发行的,人民币的发行主要是通过银行系统,包括央行和各级商业银行,这个过程是通过负债完成的,政府,企业

    2024-12-11 21:30:01
    19 0
  • 海南数字资产是什么,海交所是海南数字资产交易所吗

    一、海数所是什么平台可靠吗官方回答:海数所是一家基于数字经济背景与数字金融发展,以数字资产流转交易为核心,助力实体经济的数字资产化进程,打造面向全球的可信任的数字资产交易平台。首先,海数所的注册地在海南——一个交易所合规化的必争之地。我们都知道,海南一直都

    2024-12-09 03:30:02
    27 0
  • 加秘数字资产是什么,什么是加密数字资产

    一、区块链加数字资产是什么(区块链上的数字资产)什么是数字资产数字资产是指企业拥有或控制的,以电子数据的形式存在的,在日常活动中持有以备出售或处在生产过程中的非货币性资产,现在的数字资产,更多的和区块链技术联系在一起,比如数字货币比特币、瓦特币。数字资产的特

    2024-12-05 14:30:01
    24 0
  • 虚拟资产官网什么,中国的虚拟资产是什么意思

    一、什么虚拟资产虚拟资产虚拟资产是一种非实物形式的资产,主要存在于电子设备或网络中。详细解释:1.定义与特性:虚拟资产是一种没有实物形态,以电子数据形式存在于计算机、服务器或云端的资产。它具有高度的灵活性和便捷性,可以通过网络进行快速传输和交换。与传统的实物

    2024-12-03 23:00:02
    29 0

发表回复

8206
验证码

评论列表(0条)

    暂无评论

ok交易所
已有100万用户加入ok交易所

立即下载