摘要:秘猿科技区块链小课堂第期的技术目标是设计一个分层的加密经济网络。换句话说,从分层的角度来看,现有的区块链设计方式都是过时的。
从分层的角度来看,现有的区块链在设计时考虑的是特定的功能(例如支付,或者是运行 DApp),并希望在运行一段时间后,让上层协议来适应自己。然而区块链并不天然是 Layer 1,Layer 1 是需要设计的。在分层的大框架下,上层协议和分层网络分别有着怎样的需求?Layer 1 和 Layer 2 应该分别对应着怎样的角色,承担怎样的职能?Layer 1 应该做什么?Nervos 架构师 Jan 给出了他的答案。
秘猿科技区块链小课堂第 13 期
Nervos Network 的技术目标是设计一个分层的加密经济网络。这样一个出发点带来的是一个与众不同的设计思路,我们自己把它称为「Nervos Approach」:
如果我们认为分层是未来的发展方向,我们应该从一开始就考虑到上层协议和分层网络的需求,在分层的大框架下设计区块链协议。
换句话说,从分层的角度来看,现有的区块链设计方式都是过时的。现有的区块链在设计时考虑的是特定的功能(例如支付,或者是运行 DApp),并希望在运行一段时间后,让上层协议来适应自己。然而如果我们阅读互联网的历史就知道,今天互联网的协议分层不是这样打补丁打出来的,相反是在吸收过去经验之后基于分层的思路重新设计出来的[1](是的,互联网协议也是分层的,我们说的 TCP/IP 实际上是两个协议的名字)。Nervos Approach 是向互联网学习的产物。
这是为什么区块链并不天然是 Layer 1,Layer 1 是需要设计的。这也是为什么我们选择设计 CKB 这样一个新的区块链协议的原因。
Layer 1 vs. Layer 2要弄清 Layer 1 应该做什么,首先要弄清楚它和上层协议的区别。Layer 2 起源于我们发现公有链(这里指 Permissionless Blockchain)的性能不足,很难扩容到满足整个加密经济体需求的水平,同时我们又非常迷恋公有链提供的可用性和极大的服务范围,因此慢慢演化出了一系列可以由区块链来保证安全的 Layer 2 协议,例如支付通道(Payment Channel),Plasma,etc.
这些协议的共同特点是牺牲共识范围来换取性能。公有链最让人惊艳的地方是通过开放网络,提供不间断的覆盖全球的服务,这意味着全球共识,也意味着性能低下。解决这个问题的最好方式是将大部分交易转移到共识范围更小,但是性能更好的上层协议中,并且保证上层协议的参与者总是可以在不满意的时候退回到区块链上来解决问题[2],代价仅仅是一些时间成本。
因此作为 Layer 1 的区块链,关注点显然不应该是性能,因为 Layer 2 会承担这个职责。Layer 1 是保障上层协议参与者的最后防线,它的关注点应该是安全和去中心化(安全和去中心化是两个东西,有时间再展开)。如果我们观察 Layer 2 协议与 Layer 1 交互的模式,我们还会发现,Layer 1 负责的是状态共识(存储),Layer 2 负责的是状态生成(计算)。
计算与状态程序员的世界中有一个流传甚广的公式:程序 = 算法 + 数据结构[3]。这个等式指出了程序设计的两个核心关注点,计算(算法,即计算的步骤)与数据(计算的对象)。而数据又可以分为两种,程序输入(外部数据)和状态(内部数据)。
计算机科学中的「状态」一词可以理解为程序在运行时,某个特定时刻可访问的一切数据。程序中有变量,变量通常代表着内存中的一个可以存放数据的位置,这个位置的内容就是程序的状态。一段程序的输出完全取决于它的输入和其开始执行时的状态。计算(CPU)、输入/输出(IO)与状态(内存)构成了完整的冯诺依曼体系[4],今天最流行的计算架构。
以支付通道为例在支付通道中,Layer 2 的共识范围缩小到两人之间,这是最小范围的共识。参与通道的两人进行的操作如下:
向 Layer 1 发送交易建立通道,锁定特定的状态,锁定的状态只有用 Alice 和 Bob 双方的签名才能更新
例如,Alice 锁定 1 BTC,Bob 锁定 1 BTC,我们用(1, 1)表示在 Layer 1 锁定的状态
双方通过链外的网络连接(Layer 2),产生并交换新的状态,各自签名
Alice → Bob 0.5 BTC,Alice/Bob 在本地保存的新状态为(0.5, 1.5)
Bob → Alice 0.1 BTC, Alice/Bob在本地保存的新状态为(0.6, 1.4)
…
最后一次交换后,Alice/Bob 在本地保存的新状态为(0.2, 1.8),而且双方都对该状态进行了签名
向 Layer 1 发送最终的状态,Layer 1 验证最终提交的状态有 Alice/Bob 双方的签名,更新锁定的状态为(0.2, 1.8)并解锁
从这个例子我们很容易看到,在整个过程中,我们通常讨论的计算分成了两个部分进行:新状态的生成,新状态的验证。前者发生在 Layer 2,而后者发生在 Layer 1。如果我们观察其他的 Layer 2 协议,例如 Plasma 或者是 TrueBit,很容易得到类似的结论。正因为 Layer 1 会验证 Layer 2 产生的状态,我们才能够做到通过 Layer 1 保证 Layer 2 的安全,因为 Layer 2 的用户在遇到问题时,总是可以请求 Layer 1 来做某种形式的验证(这是为什么 Layer 1 可以看作是「Crypto Court」,因为它是一个能识别密码学证明的「法院」)。
因此在分层架构下,Layer 1 的关注点应该是状态的验证(和存储),Layer 2 的关注点应该是状态的生成。通过将状态的生成转移到 Layer 2,将生成和验证分离,我们的分层网络兼顾了性能(Layer 2)、安全和去中心化(Layer 1)。
任何程序都有计算和状态,区块链上运行的程序(DApp)自然也不例外,在分层架构上构建应用时,需要考虑在哪里产生状态,在哪里验证状态,在哪里保存状态。由于状态的生成和验证分离,状态生成的方法可以和验证解耦,状态生成不必被 Layer 1 的编程模型绑定,具有更大的自由度。只要能通过 Layer 1 验证,状态的生成甚至可以是中心化的(事实上大部分 Plasma 协议中只有一个 Operator!)。
Layer 1 应该做什么我们在说「计算」的时候,实际上说的是「状态生成」。在一般的计算模型里面,不存在信任和安全问题(我的 CPU 不会用假的结果骗我),所以生成就好,不考虑验证;但是在区块链网络里面,我们不仅需要生成,还需要验证。Layer 1 的关注点应该是状态的验证和存储,而不是状态生成(希望你没有被绕晕……)。
由此我们终于可以推出 Layer 1 应该做什么:
需要一个安全的共识协议,范围越大越好。基于 PoW 的 Nakamoto Consensus 正是这样一个协议,这是唯一一个在现实环境中经过验证的全球共识。
需要可编程能力,以支持各种状态验证逻辑,这意味着我们需要一个强大的编程模型(状态模型+虚拟机)。
需要能够理解各种密码学证明,因为区块链协议是基于密码学构建的,Layer 1 与 Layer 2 之间传递的证明是密码学证明。
需要管理好状态,因为经过验证的状态会留在 Layer 1 上。这意味着我们需要一个关注状态的经济模型。
[1]https://en.wikipedia.org/wiki...
[2]https://en.wikipedia.org/wiki...
[3]https://en.wikipedia.org/wiki...
[4]https://en.wikipedia.org/wiki...
Nervos Network 由 Nervos 基金会推动,通过分层设计,兼顾性能、安全以及去中心化的特性,满足多样化的商业场景需求,为未来加密经济提供基础设施。
关于 CKBNervos Common Knowledge Base(CKB)是一个无需许可链,它是 Nervos Network 的基础层,并在设计上提出了一些理念:
CKB 共识协议 NC-MAX 使用两阶段提交节约带宽,并根据网络情况调整自身参数,提升了 Nakamoto Consensus 的可扩展性
CKB 虚拟机采用底层 CPU 指令集架构 RISC-V 开发,提供更高的开发弹性与运行的稳定性
CKB Cell Model 是比特币 UTXO 模型的通用化,能够验证和存储任何类型的数据
CKB 经济模型用货币政策限制状态存储的增长,并实现智能合约平台的价值存储功能
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/24730.html
摘要:对于什么是区块链,每个人都有自己的看法。不是将区块链技术神化,就是一味的宣传区块链无用论。如果网络是一辆汽车,区块链就是发动机。没有流动性就不是资产那么区块链首先将会颠覆游戏行业。 对于什么是区块链,每个人都有自己的看法。但是,如何通俗易懂的理清楚、说明白区块链到底是什么?真正能够做什么?恐怕少之又少。不是将区块链技术神化,就是一味的宣传区块链无用论。秘猿科技从事区块链基础技术与工具研...
摘要:在年,我们正式作为公链的实现者,开启了加密经济生态的构造中。来保证安全和去中心化,绝对可靠可信它能做到全球共识,并作为加密法院,通过智能合约设计的规则进行仲裁,以经济激励的形式将信任传递到上。 在 2016 年秘猿科技成立之初,我们就认为共识是分层的,最下面最基础、最昂贵、最慢的,是全世界范围的共识。但是我们一层一层往上看的话,共识范围会越来越小,那么上面共识范围更小的地方,是不是要用...
摘要:会议中,来自全国各地的近千名区块链爱好者齐聚一堂,共同探讨最新的区块链技术发展。吕国宁在开放日活动中,做了下一代区块链底层基础设施的主题分享。区块链的核心价值是什么我们认为,区块链的核心价值是提供信任。 showImg(https://segmentfault.com/img/bVbsM64?w=1080&h=720); 5 月 16 日,由杭州市金融办指导,巴比特主办的 2019 杭...
摘要:张韧的论文被顶级安全会议接收这是安全顶会上第一篇来自中国大陆区块链团队的论文,来自研究员张韧发表的。感谢韩国小伙伴的热情,期待后续更多更深入的交流。 showImg(https://segmentfault.com/img/bVbpMG9?w=1080&h=460); 3 月9 日凌晨 Nervos 联合创始人及研究员 Kevin Wang 在 GitHub 上提交了 CKB 经济模型...
摘要:因为安全扩展性去中心化这个不可能三角问题的存在,在不牺牲安全和去中心化的前提下,要在上解决扩展性问题几乎是不可能完成的任务,因此我们只能绕道而行,选择分层方案。 在上一篇《小白都能看懂的 Cell 模型》中,我们用大白话简单介绍了 Cell 模型。在这篇文章中,我们将会从「验证模型」和「状态存储」两个方面来介绍 Cell 模型——一个适合分层架构的区块链设计 秘猿科技区块链小课堂第 2...
阅读 828·2019-08-30 15:55
阅读 1409·2019-08-30 13:55
阅读 1985·2019-08-29 17:13
阅读 2841·2019-08-29 15:42
阅读 1332·2019-08-26 14:04
阅读 1017·2019-08-26 13:31
阅读 3273·2019-08-26 11:34
阅读 830·2019-08-23 18:25