值得信赖的区块链资讯!
什么是Taproot Assets?如何发行?一文读懂Taproot Assets协议
撰文:金色财经0xjs
2023年10月19日,闪电网络开发商Lightning Labs宣布Taproot Assets协议上线。Taproot Assets协议支持在比特币和闪电网络上发行资产。
什么是Taproot Assets协议?Taproot Assets协议如何发行、转移资产?本文带你一文读懂。
Taproot Assets协议
根据Taproot Assets协议BIP,Taproot Assets协议是一种构建在比特币上的Taproot原生资产(Taproot-native asset )层。Taproot资产可以在比特币链上表示任意资产,而不会导致比特币网络膨胀。该协议的设计使得与Taproot资产交互的交易与常规比特币交易没有区别。
Taproot资产使用嵌套资产脚本树(nested asset script tree,这是一个merkle-sum Sparse Merkle Tree或MS-SMT)。其扩展了基础Taproot脚本树,该脚本树将有效见证人作为结构化元数据提交,从而可以证明资产在交易图中的移动。Taproot资产转移的证明可以使用密封证明(hermetic proof )进行验证,或者使用外部维护的Universe进行验证。Universe是一个索引链上资产发行+转移的MS-SMT。
Taproot Assets支持通过闪电网络通道(基于BOLT协议套件)进行链外单跳和多跳传输,后者使用Taproot Assets独特的嵌入式资产脚本系统来体现。一系列链上和链下Merkle证明促进了链上Taproot资产传输的轻客户端验证,可以通过将信任关系委托给活动的Universe实例来压缩这些证明。
理解Taproot Assets协议需要的几个概念
Taproot交易
Taproot是BIP 341中定义的一种新交易类型,自2021年11月起在比特币主网上线。 Taproot交易与传统比特币交易的主要区别在于,控制脚本包含在称为“tapScript分支”的树结构中,该结构是私下承诺参与交易。如果使用KeySpend路径来移动比特币,则不需要透露这些脚本。
虽然传统交易需要公开整个脚本,但Taproot交易可以使用密钥来避免公开脚本,如果密钥花费路径不可行,则仅在区块链上公开脚本的执行部分。所有其他脚本路径都可以保持私有,或者有选择地在链外公开。
这使得创建更复杂的脚本成为可能,而无需增加在keySpend路径中向区块链提交额外数据的成本,以及对修剪后的脚本数据进行有效验证。在Taproot Assets的背景下,它允许人们将任意数据可证明地附加到交易中,而无需在链上泄露这些数据。
Taptweak:承诺哈希
将包含此类任意数据的交易称为承诺。一旦交易被包含在区块中,我们就已经承诺了该数据,并且不能再更改或修改它。
为了承诺数据,人们使用称为“Taptweak”的技巧来调整Taproot支出密钥的公钥。它允许人们有选择地暴露数据而不泄露私钥,或者在不泄露承诺的情况下花费输出。
该技术在Taproot交易中用于提交到Taproot脚本树,并且可用于提交任何任意数据。
Q= P+H(P|c)G
Q = 最终的Taproot公钥;P = 内部公钥;H(P|c) =内部公钥和承诺的哈希值
要使用我们的私钥签署交易,需要使用与公钥和承诺相同的哈希值 H(P|c) 来调整私钥。
Sparse Merkle Tree
Sparse Merkle Tree是一种可以证明Merkle树中不存在特定数据的数据结构。SMT是经过验证的键值存储,这意味着叶的键或位置和叶的内容相互绑定。
为了实现此属性,对叶子的内容进行哈希处理并创建默克尔树,其中叶子的位置对应于哈希摘要的位图(bitmap)。这必然需要一棵 256 层和 2^256 个叶子的树。树的生成是高效的——尽管尺寸明显很大——因为绝大多数分支包含空叶子并且可以用零哈希来表示。

构造一个Sparse Merkle Tree
例如,我们可以使用虚构的哈希函数sha002构造一棵Sparse Merkle Tree,其结果为 0 到 3 之间的数字。我们生成一棵具有 4 个叶子的Sparse Merkle Tree:0、1、2 和 3。只有叶子 2 是已填充,所有其他叶子都是空的。为了找到叶子 2(用二进制写为 10),我们在第一个分支 (1) 处向右移动,然后在第二个分支 (0) 处向左移动。

识别Sparse Merkle Tree中的叶子
为了验证叶子 2,我们现在只需要揭示该叶子的值,加上叶子 3 的哈希值和分支 0 的哈希值。
在Sparse Merkle Tree中,当以二进制形式表示时,每个叶子都可以通过映射来描述为自身的指南。地图就是Sparse Merkle Tree本身,指南由在每个岔路口左转还是右转的指示来表示。例如,2^4 大型 Sparke Merkle 树中的第 9 个叶子用二进制表示为 1001,这意味着我们通过左转、右转、右转、最后左转来找到合适的叶子。
这个属性对于构造和重构Sparse Merkle Tree非常有用,因为它准确地描述了我们必须重构Sparse Merkle Tree的哪些部分。更重要的是,现在可以通过每个叶子中的数据在树中的位置来描述它们。
使用稀Sparse Merkle Tree,我们可以将数据与公钥关联起来,并以一种易于验证的方式证明我们已经删除了这些数据,而无需透露整个树。

在Sparse Merkle Tree中插入一个item
由于每个项目都有其预定位置,因此树的根哈希不依赖于项目插入的顺序。
Merkle sum trees(默克尔和树)
Merkle sum树是Merkle树的一种,每个叶子都包含数值,每个节点还包含其下面的值的总和。Merkle 求sum树的根部是树中总值的总和。
Merkle Sum 树可以通过承诺与叶子相关的数量来有效验证守恒(非膨胀)。
Taproot、tapweak、Sparse Merkle树和Merkle sum树大组合
Taproot Assets结合使用上述概念来发行比特币原生资产。Sparse Merkle树和Merkle sum树组合成Sparse Merkle sum树。
Sparse Merkle sum树的根被添加到Taproot Tapscript中,并一起创建Taproot地址。
Taproot Assets发行者没有自己的区块链,而是将Sparse Merkle sum树存储在链下,并向资产持有者发出证明。此类资产的所有者可以独立验证他们的帐户是否包含在树中,是否填充了适当的金额以及相应的Taproot交易是否存在并在比特币区块链上得到确认。
怎么发行Taproot资产
资产ID
要发行Taproot Assets ,必须首先创建它的标识符。资产ID大小为32 字节,它是通过对三个元素进行哈希处理而生成的:用于铸造资产的出点(outpoint)、铸造者选择的资产标签(例如品牌名称的哈希值)以及与资产相关的元信息,例如链接、图像或文档。
asset_id = sha256(genesis_outpoint || asset_tag || asset_meta)
资产脚本
资产脚本可以有输入和输出,类似于比特币交易。新创建的资产不包含任何Taproot资产输入,而资产转移则包含。
资产脚本的输出定义了新创建的资产将发行给谁。更准确地说,这是通过Sparse Merkle sum树来完成的,其中每个账户都由一个 256位密钥标识,并且与该密钥对应的每个叶子都包含有关该账户持有金额的信息。
可以在一笔交易中发行多个资产,但每个资产都有自己的资产脚本,并在其中包含Sparse Merkle 树。资产可以是唯一的,也可以是非唯一的。
资产叶
每个叶子都包含一个 TLV(类型、长度、值)blob,类似于闪电网络中使用的 TLV。它包含版本、资产 ID、金额等信息,以及与该资产之前传输相关的数据(例如签名)。
Commit to tree root
一旦我们生成了Sparse Merkle sum树和资产脚本,我们就可以调整我们的内部公钥并获取合约的地址并完成交易。
发布交易
一旦我们发布此交易并在比特币区块链上确认,我们就不可逆转地创建了该资产。对于观察者来说,该交易看起来就像任何其他标准Taproot交易一样。
资产证明
资产发行者现在可以有选择地披露创建了哪些资产以及分配给了谁。最重要的是,发行者可以通过揭示特定的资产证明来向接收者证明资产已转移给他们,其中包含资产脚本以及以接收者帐户为密钥的Sparse Merkle sum树的路径。
接收者可以验证部分Sparse Merkle sum树以重新创建脚本,调整发行者的公钥并验证创世交易是否存在于区块链上,而部分 Merkle 树为他们提供了对发行给他们的资产的保证,以及已发行资产总数。

证明有没有包含在Sparse Merkle树中
怎么转移Taproot资产
Taproot资产可以在链上转移,也可以用于打开闪电网络通道。本文这里仅讨论链上交易。
Taproot Assets并未规定个人账户持有人之间的具体交互方式,但可以是特定于应用程序的。发行人可以灵活地定义其资产或打算如何限制这些资产。
资产根承诺承诺树内持有的所有资产及其总和。asset_id是全局唯一的,因为它取决于其创世输出的标识符。总根可以包含多个asset_id,其资金保存是通过验证asset_tree_root来提供的。
asset_tree_root = sha256(asset_id || left_hash || right_hash || sum_value)
Taproot资产地址
Taproot资产地址是资产ID、资产脚本哈希、Sparse Merkle sum树的内部密钥和金额的bech32m编码标识符,前缀为Taproot资产或taptb1(testnet)。
bech32(hrp=TapHrp, asset_id || asset_script_hash || internal_key || amt)
发行人或资产持有者可以使用 Taproot 资产地址中的信息来创建或修改Sparse Merkle sum树。此地址格式还可用于请求该地址所持有金额的具体证明。
在树内移动资产
要转移Taproot资产,接收者将其地址传达给当前持有者,当前持有者可以发起转移。目前,账户持有人和发行人之间的确切互动尚未严格定义。它可以由每个应用程序甚至资产发行者来指定。
资金发送者需要生成反映新余额的新Sparse Merkle sum树。这是通过减少某些叶子的余额并增加其他叶子的余额来完成的。Sparse Merkle sum树保证在此类交易中不会创建新资产,并且之前对资产的索取权将被完全放弃。

识别账户
创建资产需要一次链上Taproot交易,其中可以铸造多少资产或可以有多少帐户可以持有这些资产没有限制。如上所述,要转移资产,需要重新组织Merkle树并发布新的链上交易。在这笔链上交易中反映多少内部Taproot Assets交易是没有限制的。
使用这种方法,资金被分配给帐户持有者,以Sparse Merkle sum树中的叶子表示,但进行此类内部转移的能力仅限于内部Taproot私钥的所有者。

Universe
Universe是一项为资产持有者提供资产信息以及证明的服务。它类似于比特币区块浏览器,展示了Taproot Assets交易数据,该数据与Taproot Assets客户端一起存储在链下。主要区别在于,由于大多数与Taproot Assets相关的信息都是链下的,因此更容易隐藏。
Universe可以由资产发行人自己运行,也可以由发行人指定。也可以想象,社区运营的Uniserve会汇总资产持有者提交的信息。
例如,给定一个已知的资产 ID,Universe可以提供有关其创世输出的信息,以及当前的元信息,例如文档、资产脚本或流通中的总代币。服务还可能了解多资产(Multiverse)或仅了解单个输出(Pocket Universe)。
Universe 在 Taproot 资产协议中没有任何特权。它生成针对比特币区块链进行验证的交易数据。敌对Universe只能避免返回客户请求的数据。Taproot Assets 交易数据不绑定到 Universe。Universe 提供的数据可用性产品是由那些希望对其Taproot资产进行快速、廉价验证的实体所推动的。
Taproot资产的合并或分割
如上所述,资产可以在资产的Sparse Merkle树内部转移,或者可以发送到另一个Taproot密钥持有者。这称为资产分割。
在资产分割中,发送者首先需要更新自己的Taproot输出的Sparse Merkle sum树,调整余额并重新计算 Merkle 根。在合并的情况下,根和也会改变。
此外,还将有第二个Sparse Merkle sum树致力于新的Taproot输出。第二个 Merkle 树是由资产的接收者计算的,其行为与上例中的发行者类似,不同之处在于这些资产不是从无到有,而是从之前的输出中分离出来,例如资产的创世输出。
资产证明
为了能够验证资产分割是否已经发生,新universe的运营者需要证明
-
资产是在交易零 (t0) 时创建的
-
资产在 t0 时存在于原始 Merkle 树的叶子上
-
该叶子的余额在 t1 时设置为零
-
资产在 t1 时存在于新 Merkle 树的叶子上
一旦资产被分割,资产所有者就可以像发行人一样进行内部交易。分割之前的每个证明始终需要包含发行证明以进行出处验证。
资产证明随着每笔新的链上交易线性增长。每笔资产交易都需要审计回溯至其创世输出。仅当其引用的输出未在区块链上花费时,资产证明才有效。
Taproot资产的销毁或失效
一旦资产的输出被花费而没有提交到新的Sparse Merkle sum树,资产就会被视为无效。
这对于第三方观察者来说并不明显,在某些情况下,最好将输出花费到新的空Merkle树上,以证明资产已被销毁、失效或“烧毁”。
比推快讯
更多 >>- 数据:Coinbase Prime 流入 2.71 万枚 ETH,价值约 1.76 亿美元
- 下周宏观展望:美联储定调之周!美联储面临终极摊牌
- 数据:4 亿枚 SUN 从 SUN.io 转入 Justin Sun,价值约 839 万美元
- 数据:过去 24 小时全网爆仓 2.11 亿美元,多单爆仓 1.24 亿美元,空单爆仓 8,670.55 万美元
- 特朗普:股票市场和 401k 计划达到历史新高
- 澳大利亚 Monochrome 现货比特币 ETF 的 BTC 持仓升至 1158 枚
- 纳斯达克上市公司 Prenetics 比特币总持有量增至 504 枚
- 分析师:比特币短期已筑底,10 万美元反弹行情或将出现
- 麻吉大哥加仓以太坊多单至 8400 枚 ETH 并挂出多笔 HYPE 和 ETH 卖单
- Vantage 基金会捐赠 100 万港元支援香港火灾受灾居民
- 稳定币协议 STBL 宣布奖励领取功能已上线
- 数据中心过热致芝商所中断交易超 10 小时,备用数据中心未启用
- 北京商报:炒币导流乱象已渗透到小红书、淘宝、闲鱼等平台
- RootData 首席产品经理 Ye Wang 确认出席迪拜 RootData融合、增长与新加密周期主题论坛
- 比特币充币情绪加剧,过去 24 小时 CEX 净流入 22,781.88 枚 BTC
- 潘渡以太币 ETF 将于 12 月 3 日在港交所上市,可直接持有 ETH
- Alliance DAO 联创:不认为 L1 代币一定是糟糕的投资,也不会去做空它们
- 美国努力斡旋之际,俄罗斯和乌克兰相互发动袭击
- 数据:某巨鲸购入 2024 个 ETH,目前持有 7066 个 ETH
- 巴塞罗那足球俱乐部因与加密公司 ZKP 达成 2200 万美元赞助协议而受到批评
- 瑞典支付巨头 Klarna 旗下首个稳定币 KlarnaUSD 已提前上线
- 比特币 OG 开立 5 倍 ETH 空单,价值 1504 万美元
- 打击虚拟货币交易炒作工作协调机制会议召开
- 1011 内幕巨鲸新开设 5 倍 ETH 空单,仓位规模达 1500 万美元
- Binance:至少拥有 256 分的用户可申领 400 枚 GAIX 空投
- 赵长鹏:最好在市场贪婪顶峰时卖出,恐惧顶峰时买入
- CZ:在极度贪婪时卖出,在极度恐惧时买入会更好
- 2025 年投资机构已向加密公司投入近 250 亿美元,远超市场预期
- 天风证券遭证监会立案,子公司已在香港获批提供虚拟资产交易服务
- Hyperliquid 团队地址今日将 260 万枚 HYPE 解除质押
- 数据:435.91 枚 BTC 从 Binance 转出,价值约 771 万美元
- 昨日美国比特币现货 ETF 净流入 7140 万美元,贝莱德 IBIT 净流出 1.13 亿美元
- 微众银行与富融银行在港落地区块链数据验证信用报告并发放首笔无抵押贷款
- Bitdeer 本周挖矿产出 122.4 枚 BTC,比特币总持有量增至 2,141.1 枚
- 分析师:当前宏观环境与疫情期间类似,比特币仍有上涨空间
- 以太坊支持者 Anthony Sassano:以太坊 gas 上限明年或提高 3-5 倍
- Synbo Protocol 吉隆坡链上一级市场高峰论坛圆满落幕,活动现场分享了其最新产品进展和未来愿景
- 数据:多个代币出现冲高回落,EGLD 触及本周新低
- 数据:监测到 3,230 万 USDT 转入 Binance
- Índico Capital Partners 推出 1.25 亿欧元风投基金,投资范围覆盖 AI、区块链/Web3 等领域
- 某以太坊 OG 地址 8 小时前向 Bitstamp 存入 18,000 枚 ETH,仍持有 66,252 枚 ETH
- 去中心化就业市场 WorkQuest 完成 116 万美元种子轮融资
- Cango 比特币总持仓量突破 6900 枚,本周挖矿产出 129.1 枚 BTC
- 某地址向币安充值 5000 枚 ETH,过去两周累计充值超 1.34 万枚
- Coinbase 比特币溢价指数时隔 29 天后由负转正
- 数据:245.33 枚 BTC 从匿名地址转出,经中转后转至另一匿名地址
- 数据:Hyperliquid 平台鲸鱼当前持仓 43.95 亿美元,多空持仓比为 0.9
- 加密恐慌指数回升至 28,摆脱极度恐慌区间
- 某鲸鱼地址过去 4 日买入 2556 万枚 ENA,仍持有 578 万 U 以继续买入
- Coinbase 上币路线图新增 Rayls (RLS)
比推专栏
更多 >>观点
比推热门文章
- 数据:Coinbase Prime 流入 2.71 万枚 ETH,价值约 1.76 亿美元
- 下周宏观展望:美联储定调之周!美联储面临终极摊牌
- 数据:4 亿枚 SUN 从 SUN.io 转入 Justin Sun,价值约 839 万美元
- 数据:过去 24 小时全网爆仓 2.11 亿美元,多单爆仓 1.24 亿美元,空单爆仓 8,670.55 万美元
- 特朗普:股票市场和 401k 计划达到历史新高
- 澳大利亚 Monochrome 现货比特币 ETF 的 BTC 持仓升至 1158 枚
- 纳斯达克上市公司 Prenetics 比特币总持有量增至 504 枚
- 分析师:比特币短期已筑底,10 万美元反弹行情或将出现
- 麻吉大哥加仓以太坊多单至 8400 枚 ETH 并挂出多笔 HYPE 和 ETH 卖单
- Vantage 基金会捐赠 100 万港元支援香港火灾受灾居民
比推 APP



