Bitcoin 减半,Runs 协议爆火,看到大家在推上讨论 Bitcoin 上的资产协议如何实现跨层。链上资产如何跨层跨层迁移是我一直在思考的一个问题,主要因为两个原因:
而当前这种在一边锁定,然后在另外一边映射的跨链模式,并不能解决这个问题,尤其是 NFT,SFT 这种未来数量会非常大,资产类型以及数据结构又在快速演进的资产,给跨链增加了许多难度。
EVM 以及类 EVM 的智能合约虚拟机上表达资产,是通过智能合约内部的一个账本(mapping 结构)来表达,给每个用户记录一个数字(FT)或者编号(NFT)。资产本身并不能跨合约移动,而只能通过合约间的调用,互相记账来实现组合。直到 Move 出现,它通过类型体系,真正实现了资产在不同合约之间的移动,我把这种模式叫做“自由状态”。以前的智能合约资产都是锁在合约内部的,而 Move 让资产变成自由状态。
于是我就有了一个想法,既然能实现资产在不同的合约之间移动,那也应该可以在不同的网络之间移动。如果提供一个方法,可以让资产 move_to(L2) 或者 move_to(XChain),那将会释放出多少可能。我先尝试设计的是 Move 的 L1 和 L2 如何实现状迁移。也在一次 Ethereum 黑客松上尝试通过 Solidity 来表达 Object,实现 Solidity 的 Object 模式的 NFT 到 L1 的迁移。
https://github.com/rooch-network/rollup-nft/blob/main/README_zh.md
但这些尝试最后都会遇到一个结算困境,如果要链来保证数据迁移的安全性,就会让方案变的非常复杂,最后可能无法把状态从原链清除(逃生舱难题)。
直到 RGB 以及 Ordinals 这样的客户端(Client-Side Validation or CSV)验证资产提供了新思路。那如果资产只在 L1 表达所有权,防止双花,而让资产的合法性验证在 Offchain(客户端或者 Indexer,Indexer 可以理解成一种胖客户端),这个问题其实就可以简化了。这点上 RGB++ 的跳跃(leap)机制已经初步验证了。
这个机制背后的逻辑是资产的价值共识是人的共识,或者叫社会共识,区块链的网络共识以及安全机制,只是协助社会共识降低验证成本,社会共识不需要被它局限住。
举个例子,如果一个艺术家,用自己的一件作品在 Bitcoin 上铭刻了一个 Ordinals Inscription,然后想把它迁移到另外一个网络中。他把 Ordinals Inscription 给燃烧了,在另外一个网络中重新发布。它们是同一件作品,但是可以理解成是同一个资产吗?我觉得如果艺术家能证明自己在两个网络中账户的关系,它们就可以理解成同一个资产。
当然,艺术作品有点特殊,它纯粹是艺术家背书,但道理是相通的。资产的所有者是用户,用户有权利选择把这个资产“登记”在哪个链上。只要设计一种协议,让资产的迁移可追踪验证,本身就满足 CSV 类资产的要求。当然,这种模式要求链的状态表达模式便于追踪所有权,UTXO 和 Move Object 会有优势。
这种协议比当前的桥模式有几个优点:
当然,这种协议需要不同链的资产协议本身内置迁移机制,如何设计,如何和已有的资产协议兼容,依然存在挑战,但我觉得这可能是唯一的一条路。后面 Rooch 会通过 Move 智能合约容器,结合 Bitcoin 上的 SFT 协议 Bitseed,以及和各公链的铭文协议合作,尝试探索一种基于 CSV 的资产迁移协议。
探讨比特币生态协议和应用,为 Web3 领域带来新视角,投资新机遇。