如何使用 Taproot Assets 发行资产?
比特币
以太坊
数据
Taproot Assets 发行代币的创世交易,是构造一个 Taproot 交易。
撰文:黄世亮
让我们来思考更高级一点的东西,如何使用 Taproot 交易发行资产?这就是 Taproot assets 协议。
这个协议还是挺复杂的,今天先简单理解下,先有个印象就够了。
资产,或者叫代币,如果有人发行了 100 个记有某个符号的数字,并且可以保证无论这 100 个玩意怎么转发,大家都能确信这些玩意就是来自最初那 100 个数字,这就是成功的资产发行技术。
Taproot 交易(P2TR)本来是用来锁定和花费比特币的,P2TR 可以使用 n(1)脚本 ( 即总共有 n 个脚本,任一都可以花费)来花费比特币,在 P2TR 交易里所有这些 n 个脚本是使用二叉树来保存。
二叉树是一个非常牛逼的算法,将二叉树的叶子节点写一些数据来填充代币信息。整个算法是可以保证追踪这些代币是不可伪造的。
以太坊的世界状态就是使用二叉树来保存和更新。
Taproot assets 发行代币的创世交易,是构造一个 Taproot 交易,解锁条件如下:
1.私钥签名解锁,这对代币发行来说是次要的,甚至应该是直接删除掉,否则可能会意外将币花掉。
2.脚本路径解锁,这个脚本是一个 2^256 个叶子节点的二叉树,创世交易里在第一个叶子节点里写好了以下信息:
1)代币的符号、总量,小数点等信息
2)创世币的收款地址,然后其他叶子节点全为空(如果创世交易即发给多个地址也可以),然后叶子节点两两哈希,中间节点再两两哈希……一路哈希到根节点。
这个哈希根会被保存到交易数据结构里,最终上链。但整棵二叉树是不会被上链的。
3.而脚本路径解锁的条件,代币收款地址的签名,以及提交自己叶子节点在整棵二叉树的路径。
而矿工节点验证脚本路径解锁时,验证签名,以及验证提交的路径计算出来的树根是否和原来保存的二叉树的根一致。
代币转账时,持有代币的地址使用脚本路径解锁,构造交易时,input 包含了代币信息,自己叶子节点的路径;output 包括了代币收款地址和找零地址,这由此形成两个新的叶子节点,
转账交易就是删除掉一个(或多个)叶子节点,并新建两个(或多个)叶子节点,
然后拿自己的私钥签名整个交易。
矿工拿到代币转账交易时,会核实 input 信息计算出来的树根是否和原来的一样,并且根据 output 计算出新的树根。
这样,就实现了在比特币链上发行本地资产,这些资产是接受比特币矿工节点的安全验证的。
更详细的技术细节,太难了,我还没办法通俗地讲明白。以后再讲
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表Bi123的观点或立场