摘要:区块链上的底层模型设计,实际上就是分别以比特币和以太坊为代表的两种模型比特币的模型以太坊的模型而实际上二者的差异千差万别,代表了两种思路。以太坊的模型和银行账户类似,在账户中记录用户的余额。
6 月 18 日,Facebook 加密货币项目 Libra 发布的白皮书引起了区块链业内人士的广泛关注。Nervos 团队及社区伙伴们也对 Libra 进行了大量的讨论。
Nervos 合伙人王博认为:
所有讨论 Libra 是不是一个好货币,算不算货币以及 Facebook 搞的联盟链是不是真区块链的讨论都搞错了重点。Libra 白皮书第一句写得非常清晰「...为十亿人服务的金融基础设施。」货币只是金融基础设施的基础。有了 Move 智能合约,有了用户和基础资产,Libra 上将诞生有史以来摩擦最小的金融服务。会有些什么服务呢?余额宝、花呗、借呗、工资理财,等等。区别是这些服务很有可能是由全球化的第三方提供的,而且他们之间可以互相依赖:房贷可以在链上被分割成小额理财出售给其他用户。现在,Open Banking 刚有了个概念,API Bank 刚有了文档,针对它们的降维打击就来了。
区块链发展到现在展现了两个层面的独特价值。一个是资产的去中心化发行,就是所谓的传统公链价值。一个是金融的去中心化服务,它服务的对象可以是传统金融资产,比如货币,债券等。后者对世界的价值一点不比前者小。Libra 就是定位在后者的头部公链。
Libra 定位在金融基础设施,很准确很有价值。它可以大幅降低金融摩擦,为用户提供价值。
Libra 其中的一个亮点是提到了「First-Class Resources」这个概念,在 Move 编程语言的白皮书中这样写道:「First-class Resources 是一个非常普遍的概念,程序员可以使用实现安全的数字资产(的发行),还可以编写正确的商业逻辑来包装资产和实施访问控制策略。」
First-class Resources 翻译过来是「资源是一等公民」,在 Libra 中用户可以发行自己的资产,并且可以被用户及脚本直接引用和操作。
而关于这个概念,实际上 Nervos 架构师 Jan 在去年的文章《First-class Asset》中已经对这个概念进行了深入的分析。
First-class Asset区块链上的底层模型设计,实际上就是分别以比特币和以太坊为代表的两种模型:
比特币的 UTXO 模型
以太坊的 Account 模型
而实际上二者的差异千差万别,代表了两种思路。
以太坊的 Account 模型和银行账户类似,在账户中记录用户的余额。账户是用户直接操作的对象,资产的转移是由账户作为用户的代理实现。但是当需要对用户定义的资产进行操作的时候,则需要引入第三方,即托管加密资产的智能合约执行资产转移流程。
而比特币的 UTXO 全名为「Unspent Transaction Output」,每个 UTXO 都是比特币,UTXO 中都通过一段锁定脚本(lock script)记录这个比特币的所有者,我们可以通过比特币脚本对 UTXO 进行编程实现部分业务逻辑,比特币就是一种「First-class Coin」。
而 Nervos CKB 中使用 Cell 模型进行构建,Cell 是一种通用化的 UTXO 模型,可以存储任意类型的数据,并在基于 RISC-V 指令集编写的 CKB-VM 加持下,能够实现更多的商业逻辑。Cell 可以被直接引用,作为参数传递给脚本,Cell 的所有者可以直接更新 Cell 中保存的状态,不需要经过任何的第三方。
通过 Cell 模型可以发行用户定义资产(User Defined Asset),可以这样来构造:
设计资产定义合约(Asset Definition),规定资产的主要约束(例如总数量,发行者,交易前后数量不变等)。
保存合约代码到 Asset Definition Cell 中。
在满足发行权限的情况下,发行者发行资产,并将资产状态保存在另外的 State Cell 中。State Cell 的 Type 字段引用保存了资产定义的 Code Cell,保证 State Cell 的变化受到资产定义的约束。
Asset Cell 的持有者可以通过更新 Lock 来改变 Asset Cell 的所有者。
实现 First-class Asset 之后,我们能够做什么?实现 First-class 之后,最大的区别就是:用户掌握所有权,能够对资产进行直接的操作,而不是如 Account 模型那样调用合约账户进行间接操作。
特别是,在不同区块链之间资产的迁移过程中,我们需要迁移的是资产而不是账户,这方面 Account 模型就受到了很大的阻力,比如知名的 Kelvin Fichter 提出的 EVM-On-Plasma 问题。
Asset Cell 可以被引用,可以直接作为其它合约的参数传入。只要引用 Asset Cell 的 input 有正确的用户授权,合约就可以正常的使用用户的 Asset Cell。
资产定义与资产状态分离。Asset Definition Cell 的所有者是资产的发行者,而 Asset Cell 是属于每个用户的。Asset Cell 的授权逻辑和业务逻辑分离,所有权完全由自己的 lock 决定,与 Asset Definition 的逻辑无关,这意味着 First-class Asset 不是托管在资产发行者、开发者或是资产定义合约的手中,而是真正完全属于用户的。
用户的资产相互隔离,用户资产状态独立,对经济设计问题带来了解决方案。公链的经济模型需要关注状态存储激励问题,用户在区块链上保存状态不仅需要支付写入费用,还应该承担与存储时间成正比的存储成本。在以太坊提出的状态租赁方案中,最大的痛点是针对用户的资产状态混合保存的合约(如 ERC-20)状态租赁收取,而在 Cell 模型中,只要 Asset Definition Cell 的 lock 逻辑允许,资产定义可以独立更新。
接下来我们还需要做什么?除了通过 Cell 模型实现了 First-class Asset 以外,Nervos CKB 还将计算移到了链外,链上只需要对状态进行验证的逻辑。独特的状态模型和计算验证分离,这两点决定了未来在 Nervos CKB 上会出现新的、有趣的 DApp 范式。
从 CKB 白皮书完成到现在的一年半时间里,我们看到越来越多的人开始关注和讨论 First-class State 和 First-class Asset 这两种新的思路(虽然大家用的名词各自都不一样),这些进展让我们非常兴奋。如果你有兴趣对 First-class State 和 First-class Asset 进行更多的探讨,或是在 CKB 的编程模型上有什么有趣的想法,欢迎联系我们讨论:
https://talk.nervos.org
CKB 的代码已经完全开源,这篇文章介绍的内容在代码中都已经实现。欢迎给我们的代码提出各种意见:
https://github.com/nervosnetw... (CKB 上用 Ruby 脚本编程的示例,理解 CKB 上编程模型的最佳入口)
https://github.com/nervosnetw...
https://github.com/nervosnetw...
文:Ryan
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/24759.html
摘要:使用模型的代表是比特币。每一个比特币全节点都会维护当前所有的集合,这个集合我们就称为比特币账本的当前状态即当前的账本。每一次比特币转账都是一个从集合中删除几个硬币属于付款方然后又增加几个新硬币属于收款方和或付款方的过程。 showImg(https://segmentfault.com/img/bVblzCB?w=1219&h=803); 本篇文章的作者是 Jan,文章阐述了 Cell...
摘要:使用模型的代表是比特币。每一个比特币全节点都会维护当前所有的集合,这个集合我们就称为比特币账本的当前状态即当前的账本。 本文是对前几期秘猿区块链课堂中关于 Cell 模型的总结。底层公链 CKB 的 Cell 模型是一个高度抽象的模型,事实上,你不仅可以在 Cell 上实现 First-class Asset,也可以在 Cell 上模拟 Account。通过本文的介绍我们可以看出,Ce...
摘要:无论如何,摩根对密码货币从蔑视到参与,表明传统金融体系已经高度重视这场密码革命。据悉,目前全球范围内至少家银行金融机构不同程度地涉入区块链并考虑发行自己的数字货币。 showImg(https://segmentfault.com/img/bVbuHQO); 最近,Facebook发布Libra白皮书引起全球关注,各国金融监管机构纷纷发表对Libra的态度和看法;而在几个月前,美国最大...
摘要:无论如何,摩根对密码货币从蔑视到参与,表明传统金融体系已经高度重视这场密码革命。据悉,目前全球范围内至少家银行金融机构不同程度地涉入区块链并考虑发行自己的数字货币。 showImg(https://segmentfault.com/img/bVbuHQO); 最近,Facebook发布Libra白皮书引起全球关注,各国金融监管机构纷纷发表对Libra的态度和看法;而在几个月前,美国最大...
阅读 3275·2021-11-24 09:39
阅读 2783·2021-10-12 10:20
阅读 1858·2019-08-30 15:53
阅读 3054·2019-08-30 14:14
阅读 2579·2019-08-29 15:36
阅读 1090·2019-08-29 14:11
阅读 1921·2019-08-26 13:51
阅读 3385·2019-08-26 13:23