2 月 17 日,CKB Co-founder/Khalani Network CEO Kevin、CKB 生态基金 CMO/SeeDAO 发起人 Baiyu 以及 CKB 社区大使 CyberOrange,在 X Space 直播时分享了他们对 UTXO 模型及其生态的看法。
这场直播持续了 1 小时 40 分钟,信息量非常大,欢迎还没有收听的小伙伴点击链接收听音频回放:
https://twitter.com/CKB_CN/status/1758421279361945602
以下是根据音频整理的重点内容:
1. UTXO 模型和账户模型的区别
关于 UTXO 模型,主持人 Baiyu 用了一个非常通俗易懂的比喻:你走在大街上,你是无法知道这条街上的人他们口袋里一共有多少钱,除非你挨个去翻他们的口袋。相比之下,使用账户模型的以太坊,有世界状态树,它保存了全球所有以太坊账户的状态(比如账户余额、合约信息等)。
Kevin 补充说,在以太坊出来之前,其实只有 UTXO。最早期的时候,无论是 UTXO 还是账户模型,都是围绕着资产来进行解读的。即便发展到现在,UTXO 仍然是一个更纯正的以资产为核心的一种理念或者说编程意图, 因为每个 UTXO 都是一种资产,一种可携带的资产,用 script 定义了它完全属于谁。账户模型发展到后来,转变成资产为合约服务, 而且从根本上也不再是 UTXO 那样的点对点,而是点对池,智能合约从资产的角度看就是 smart custody(智能托管),所有的人和这个智能托管进行交互。
CyberOrange 接着介绍了 UTXO 模型的几大优势:首先,UTXO 天然支持并行交易处理,所以它的性能上限更高。其次,在 UTXO 链上发行的资产,其安全等级和原生 coin 的安全等级是一样的,因为它也是在一个 UTXO 里面。作为对比,以太坊上发行的其他资产(比如 ERC-20),全部都被托管在智能合约里,其安全等级远不如原生代币 ETH。第三,UTXO 的隐私性会更好,钱包每用一次就可以换一个地址(账户模型这样做的成本很高),还可以借助 Mimblewimble 等协议进一步提升隐私性。第四,账户模型会在链上同时做计算和验证,而 UTXO 模型在链上只做验证,更适合成为结算层。此外,性能最高的扩容方案是通道网络(Channel),它必须基于 UTXO 模型来做,如果在账户模型上做会极其困难。
2. Cell 模型
CKB 对 UTXO 模型进行了一般化处理,并取名为 Cell 模型。跟 UTXO 一样,Cell 也是交易输出,只不过 Cell 把 UTXO 中的 amount 进行了一般化处理,对应出了 capacity 和 data 两项内容,这样就把原本的一个存放整数的空间变成一个可以存放任意数据的空间。
同时,Cell 的数据结构中还有 LockScript 和 TypeScript,前者主要体现所有权,而后者可以自定义很多丰富的功能,甚至是绝大部分 BIP(比特币改进提案)所提到的功能。在 Cell 的脚本中,开发者还可以根据自己的需求指定密码学原语,非常灵活。
简而言之,Cell 模型延续了比特币 UTXO 的基本哲学,让 CKB 这条链很容易去继承比特币的简单和安全的特性,同时通过巧妙的修改,让 Cell 有了支持智能合约的能力。
3. 为何 UTXO 生态发展缓慢?
Kevin 认为,区块链发展了这么多年,核心还是为资产服务的一种去中心化技术,大家围绕着资产做应用。
UTXO 是一种可编程的资产,用 script 来定义这个资产的用途和转让条件,但在 UTXO 模型的链上做 DeFi 应用,如何解决链上流动性是一个相对比较困难的点,因为 UTXO 是一种可携带的资产,大家点对点交易,找到正好可以满足需求的交易对手不太容易。
采用账户模型的区块链,大家把资产放到智能合约里,DeFi 应用通过智能合约来聚合链上流动性,解决了交易对手的问题。当然,这样做也带来了一些风险,比如智能合约有 bug 可能会导致整个资金池被 rug。
Kevin 认为,流动性就是怎么针对未来去编程,是时间轴上的一个概念,所以 UTXO 也需要这种能跨越时间的编程范式。UTXO 是一种 sovereign asset,即持有者完全掌控其所有权,那如何保持 UTXO 这个特性的同时,能够跨越时间,解决流动性问题呢?Kevin 认为,这就需要 UTXO 的资产表达不仅仅只是 ownership,而且还可以表达比如未来怎么撮合或者把资产带去哪里。他认为 Partially Signed Transactions 就是一种解决方案。目前,比特币社区也在研究 Partially Signed Bitcoin Transactions (PSBT,部分签名的比特币交易)。
另外,UTXO 的编程模型要比账户模型更复杂。账户模型的编程方式非常友好,开发者只要把链上的逻辑理清楚,部署好智能合约,就不用管了,链下的部分都是标准接口去对接智能合约。所以,账户模型的区块链生态发展比较快,应用多,而 UTXO 模型或者泛 UTXO 模型的区块链生态发展缓慢。
4. Partially Signed Transactions
Partially Signed Transactions 可以帮助 UTXO 模型的区块链实现以太坊上那些金融类应用的功能。
以兑换为例,用户持有 UTXO 资产,然后通过 Partially Signed Transactions 拼出一个还没有上链的交易,这个交易表达了他的意图,比如说想用 1 BTC 换取 10 ETH 和 59 BNB。只有当他的这个意图得到满足时,交易才会上链;没满足之前,资产(这个例子中是 1 BTC)永远在自己的手里。
CyberOrange 提到,Partially Signed Transactions 允许用户的交易在链下想怎么拼就怎么拼,而且还可以实现全链的意图。
在 CKB 上,用的是名为 Open Transaction 的方案,它是一种构建交易的链外协调机制,交易发起人可以通过链外协作完成有趣且复杂的任务,还可以将交易的结构分成多个小步骤,每个步骤都对应不同的模块化解决方案。点此阅读 Open Transaction 的科普介绍。
5. “链上验证,链下计算” 的好处
关于 “链上验证,链下计算”,Baiyu 给了一个非常通俗易懂的比喻:你去商店买 20 块钱的东西,你兜里有一张 10 块钱、2 张 5 块钱、5 张 1 块钱的纸币,你自己算好 20 块钱(可以是一张 10 块钱,2 张 5 块钱;也可以是一张 10 块钱,一张 5 块钱,5 张 1 块钱)递给老板,老板核对一下是否总计 20 元。
链上验证其实很简单,但链下计算要复杂得多,消耗的资源也更多。Kevin 认为,UTXO 模型链上只做验证,链下去计算和解决问题,这样做至少有三点好处:
1、应用可以实现非常简洁的清算逻辑或者验证逻辑,而且因为简洁,实现起来也容易得多。
2、应用不需要在链上(协议层)考虑优化的事情。 这个世界总有更聪明的人提出更好的交易撮合机制、更适用的价格曲线等,由于寻找交易对手和撮合交易等步骤都是链下计算实现的,链上只做验证,所以应用不需要在链上考虑优化的事情。如果是在账户模型上,使用优化版的交易撮合机制或者价格曲线,就需要重新部署一个智能合约,同时让用户把资产迁移过去(比如从 Uniswap v2 迁移到 Uniswap v3)。换句话说,在 UTXO 模型上只做验证的应用,是 future proof(防过时)的。
3、不需要考虑互操作性的问题。 因为链上只管验证,计算都在链下,而这里的 “链下” 既可以是其他区块链的链上,又可以是非区块链。不管一笔交易的计算来自哪里,提交到链上,应用就会去做验证。
另外,Kevin 还提到,最新一代的应用,很多也在转向链上以验证为主的范式,在链下做撮合,有协议平台化的趋势。
6. 泛 UTXO 生态大有前景
在直播的过程中,Kevin 提到,目前以太坊生态最火的几个创业赛道(比如隐私、意图、账户抽象、并行处理等),如果从 UTXO 的角度来看,这些创业机会其实都是账户模型的弊端带来的。 而 UTXO 模型本身就拥有这些特性,或者是在 UTXO 模型上很容易实现。
在直播的最后,Kevin 表达了他对泛 UTXO 生态的强烈看好。 铭文火了之后,大家把目光重新聚焦到比特币上,开发者也开始涌入,大家开始琢磨如何在 UTXO 模型上做开发。无论是 Cardano 还是 CKB,其记账模型都是在 UTXO 模型的基础上做的改进,所以很容易和比特币打通,打通之后,这些泛 UTXO 区块链将会迎来非常多的机会,泛 UTXO 生态也会更加繁荣。
P.S.
这场直播持续了 1 小时 40 分钟,信息量非常大,欢迎还没有收听的小伙伴点击下方链接收听音频回放: