以太坊至今仍处于成长的初期,而且,它的安全漏洞与可否扩容至今仍是最大的议题,尤其是2016年2017年疯起的IXO,有些项目已夸大了以太坊目前网络能力,知道以太坊亟需扩容,增加多条交易通道,因此,很多团队就分片,扩容埋下伏笔,提出很多解决方案。
尤其是以太坊的扩容方案层出不穷,有plasma,状态通道,雷电网络,Truebit虽然其中每个解决方案都在解决各自不同主题,但它们都通过执行“链下”操作而且能够不在以太坊区块链上运行的同时,仍然保证足够的安全及权威。
鉴于早前分享过以太坊上雷电网络,今天的主题主要分享以太坊系列现用的扩容方案,尤其是先从plasma 与 Nervos CKB的区别。同时,具体与Nervos CKB扩容相比,有哪些不同之处?
Plasma,是基于激励机制下,强制性执行智能合约的框架提案,该框架可扩容,交易次数可提高到每秒数十亿次,创始人希望plasma是一个可以让计算在链下发生但最终可在链上执行的系统。白话解释是,链下多方状态通道发起计算,链上执行并验证计算结果。
Plasma 由五个主要组件构成:一个激励层,以经济高效的方式持续计算合约;
一个结构, 将子链部署成树结构从而最大限度地优化成本效率和交易净额结算;
一个 MapReduce 计算框架,用于在这些嵌套链内构建状态转变欺诈证明,以令其与树结构兼容,同时重建状态转变以令其高度可扩容;
一个共识机制,此机制依赖根区块链,后者试图复制中本聪共识激励;
一个基于UTXO 的结构,它的作用是确保根区块链下的状态转变准确,实现集中退出成本最小化;
Plasma运行机制的一个关键设计点是允许遇到数据不可用或出现其他拜占庭行为时退出。
Plasma 允许根区块链内拥有的众多区块链是一系列智能合约。根区块链以状态的方式在Plasma 的区块链中生效。根链负责执行全局范围内的所有计算,只有在欺诈证明的情况下,才被计算并且受处罚。Plasma内的区块链可与自己的业务逻辑和智能合约条款共存。在以太坊中, Plasma 会由在以太坊上直接运行的 EVM 智能合约组成,但只处理微小承诺,这些承诺可以反映数量极为庞大的计算和非拜占庭用例中的财务账项。
大白话解释:
Plasma运用子区块链的逻辑建立运行系统,举例,要想查看以太坊的历史,用户就需要获得整个区块链的副本、他们自己的交易和计算历史的完整记录。但是,一台“全球性计算机”需要大量数据,而大多数用户很明显目前无法将所有这些数据都存储在自己的设备上。
请看下图:

Plasma以根链将作为私有区块链,去中心化交换,社交网络及智能合约统一的出入口。
整体的逻辑是,整个系统是计算在链下发生但最终可在链上执行,只需要最低限度的链上更新,实现目标。
再如下图:
对于 Plasma 链中持有的资金而言,这个框架允许Plasma 链中存入和提取资金,通过欺诈证明执行状态转变。因为支持资金存取,所以可以保证可执行状态和可替代性,Plasma 区块中的账目与根链持有资金一致(Plasma 的设计与部分准备金银行制度不兼容)。
Plasma 创始人之一Poon曾表示,有可能把世界上所有东西都放在区块链上运行。
个人理解,poon的概念很难实现。因为,白皮书里介绍的理论终归是理论,始终还需要大量的验证与实践。倘若真如所介绍的,能够将各种功能,如社交网络,微支付,去中心化交换,以及私有区块链统一由根链一个出口,相当容易出现状态不一而导致的无法对应验证,出块困难。因此,个人觉得,Plasma实践难度很大。
那我们再来看一下,Nervos CKB 的特点。
Nervos CKB是改变了传统区块链的架构,虽然与Plasma相似,仍然使用UTXO的模型,但做了很多优化。
Plasma 采用 自主的智能合约扩容方式,链下多方状态通道发起计算,链上执行并验证计算结果。
而Nervos CKB,底层设计上将区块链范式从“世界计算机”改变为“共识自动机”,链上存储共识结果,链外执行计算过程,从根本上解决了区块链的扩展性问题。
Nervos 与Plasma 同样采用了 5个基本架构但与Plasma 完全不一样的是自创的基础范式。
NervosCKB 的基础范式由如下5个结构组成:
Nervos 运用分布式思维提出一种全新的分布式应用范式(分布式架构)
• Cell (分布式数据单元)
• Type (分布式数据单元的数据类型)
• Validator (验证程序)• Generator (生成程序)• Identity (身份验证程序)五种元素组成组成Nervos CKB 范式。
其中的General(暂且通俗翻译:通用管道)代替了UTXO的功能,与UTXO不同的是,计算进一步分化为生成(Generator)和验证(Validator)两个步骤。
我们看下 Nervos CKB与bitcoin ethereum 的对比
Nervos CKB的底层设计架构内部运作
Nervos CKB 中的分布式应用,可以使用 Type (分布式数据单元的数据类型)定义合适的数据结构,将应用数据存放在多个 Cells (分布式数据单元)中;应用的执行逻辑由 Generator (生成程序)实现,状态验证逻辑由 Validator (验证程序)实现;Generator(生成程序)在客户端运行,用户进行操作时生成新的应用状态,新状态被打包在交易中发送到全网;网络中的节点先验证交易发送者的身份,然后使用 Validator 对交易中新状态的有效性进行验证,验证通过后将新状态保存到 CKB 中(CKB 只的是共同知识 )。
客户端与节点的工作关系如下图:

Nervos改变了原有的逻辑,将上图中涉及的五个元素的运作过程装在common knowledge base中,在链上存储共识结果的状态,链外执行计算过程。
Nervos 的 General (暂且通俗翻译:通用管道)充当Trustware(信任件)作用,与Software(软件)、Hardware(硬件)对应,其中所适用场景与智能合约一致,但不完全等价于智能合约,可通过validator(验证程序)实现图灵完备的可编程性。
记账节点使用Validator对该交易进行验证,如果认证成功,则更新P1CS(即:删除Inputs的Cells,增加outputs中的cell),删除过后的Cells被保存在P2CS(第二阶段的多个数据单元的组合)中。记账节点记录所有的P1 P2(第一阶段&第二阶段),非记账全节点只需要记录所有的P1,轻节点则只需要对P1中自己感兴趣的部分Cell记录。不论是哪个类型的节点,他们在P2P网络上是等价的,均使用区块同步协议,也不存在地位上的区别。这一点也与以太坊的轻节点依赖全节点提供状态更新有区别。
因此,从逻辑上分析,因Nervos CKB从底层架构起,做了分布式思维的扩容,也因此与Plasma相比,更容易经得起不同类型的验证。
从技术架构而言,Nervos CKB将每对UTXO的交易输入及交易输出转变成,以链上客户端内存储Cell数据的状态的输入及输出为基础,链下用Generator(生成程序)计算共识过程,减轻链上存储负载,提升全网工作效率。
结论
经过上述内容,个人得出结论是,Nervos CKB在执行过程中,由于分布式思路,将计算与验证拆分,大大减少链上负载,增加了很多的可行性。因为,我觉得 Nervos CKB 是真实可落地的底层区块链。
网友评论