Nervos 吕国宁:通过链外扩容与分层思想打造下一代区块链基础设施

目前扩容的两条主要路线分别是链上扩容和链外扩容,这两条路线中均有实力不俗的代表团队。每种代表路线中都有很多值得学习了解的设计思路和哲学,本文中,区块链项目 Nervos 联合创始人及 COO 吕国宁为大家讲述如何通过链外扩容和分层思想打造下一代区块链基础设施。

目前扩容的两条主要路线分别是链上扩容和链外扩容,这两条路线中均有实力不俗的代表团队。每种代表路线中都有很多值得学习了解的设计思路和哲学,本文中,区块链项目 Nervos 联合创始人及 COO 吕国宁为大家讲述如何通过链外扩容和分层思想打造下一代区块链基础设施。

Nervos 吕国宁:通过链外扩容与分层思想打造下一代区块链基础设施

吕国宁,Nervos 联合创始人及 COO

区块链扩容是业内长期以来的焦点,区块链最为人诟病的点也是性能的低下,而扩容是解决区块链性能问题的重要一环。

以太坊相比比特币在性能上有所进步,然而远远不够,以太坊之后诞生的大多数公链,无不把解决性能问题作为主要解决方向,以期能够打造出性能强悍、可商用的区块链系统,成为区块链大规模落地的基础平台,成为下一代区块链的代名词。

不同公链团队提出了不同的解决方案,然而现在一切都还未定,各立场方也为不同的解决方案展开了激烈辩论。

目前扩容的两条主要路线分别是链上扩容和链外扩容,这两条路线中均有实力不俗的代表团队。

每种代表路线中都有很多值得学习了解的设计思路和哲学,本期问道区块链请来了知名区块链项目 Nervos 联合创始人及 COO 吕国宁为大家讲述如何通过链外扩容和分层思想打造下一代区块链基础设施。

Nervos 吕国宁:通过链外扩容与分层思想打造下一代区块链基础设施

5 月 6 日晚,区块链研习社社群专访栏目 ——《问道区块链》邀请了Nervos 联合创始人、COO 吕国宁(前 imToken 联合创始人兼 CTO,EthFans 以太坊爱好者社区发起人,前云币交易所 CTO,国内最大的线上技术社区 RubyChina 创始人)为大家讲述 Nervos 独特的分层设计思想及链下扩容相关知识。

本次活动在「问道区块链创世群」进行,并在区块链研习社所有社群及合作伙伴社群进行直播。活动得到了链闻、星球日报、COINVOICE、耳朵财经、深链财经、Coin4A 及各大媒体的大力支持。

吕国宁及 Nervos 团队在业内深耕超过 5 年,在交易所、钱包、矿池、联盟链等方面都取得了杰出成绩,参与创立的项目在领域内均为头部项目,具有丰富的区块链开发实践经验。

一、链上扩容方案的取舍和妥协

吕国宁指出 ,目前区块链的性能扩展方式有两条路,一条路为链上扩容,另外一条路是链外扩容。

链上扩容是指从区块链本身特性出发,解决影响性能的特性,从而提高区块链性能。

比如共识算法不够高效,就选择更高效的 POS 及其变种算法;比如链式存储结构效率不够高,就使用可以并行打包的 DAG 方案;再比如网络处理交易和验证是串行的,一次只能处理一笔交易,就使用可以给节点分组的分片技术,不同的组处理不同的交易,提升性能。

链上扩容的技术都在实现一个目标,即做一条更强的链。每一种技术方案在具体实现的时候都要面临各种不同的取舍,每一种方案在带来更好的性能提升的同时,其实都会在其他方面做出一些妥协。

比如分片方案能否高效的解决跨链计算,DAG 在双花检测上是否能够做到比较低的延迟,而 PoS 共识算法的安全性能否保证,所有基于 PoS 的攻击方式是否已知并且有针对性的方案,且能带来如 PoW 在真实环境中长达十年的检验给我们带来的信心?

这些问题都是当下各个链上扩容团队在积极努力和试图解决的,虽然在过去的一两年链上扩容的研究有了很多进展,但是这些都不是 Nervos 尝试解决问题的方向。

Nervos 不是为了做出一条更强的链

实现链上扩容是不是我们要解决的核心问题?

我们的看法是扩容不是唯一核心要解决的问题,比如说,如果我们把性能的瓶颈问题解决了,存储可能会马上变成瓶颈,这就是前段时间被热议的状态爆炸问题。由于交易量的提升,那么对存储的需求也会同步提升,而节点的存储资源其实是有限不可回收资源,所以这个问题可能要比性能问题还要严重,甚至它直接影响到了去中心化这一区块链的本质特性,且这类问题还无法通过分叉能方便得解决。

进一步深入思考,会发现在一层中要把所有的事情全部都做到最好,其实要权衡的东西很多,并且做取舍非常难,很多东西甚至是互相矛盾,导致无论做出怎样的取舍,在保证去中心化和安全性的前提下,很难做到很好的性能。

Nervos Network 的设计思想的出发点不是为了做出一条更强的链,Nervos Network 的目标是去实现一个丰富繁荣的加密经济生态,并为这个生态提供底层基础设施服务。

区块链在这个生态中的角色是提供最高效率达成全球共识的工具,并以最低的成本来构建信任。所以 Nervos 的方案是链外扩容,并提出了设计一个分层的加密经济网络设计,并且带来一个全新的公链架构设计思路:如果我们认为分层是未来的发展方向,我们应该从一开始就考虑到上层协议和分层网络的需求,在分层的大框架下去设计区块链协议。

基于分层的思想,Nervos 的底层 Layer 1 网络只需要关注到安全和去中心化,Layer 2 层追求极致的性能,并且在业务实现上去满足各类商业场景的需求,然后由 Layer 1 来对 Layer 2 提供保证。

三、分层思想和技术创新下的繁荣生态

Layer 2 的兴起,是源于我们发现公有链的性能不足,很难扩容到满足整个加密经济体需求的水平,因此慢慢演化出了一系列可以由区块链来保证安全的 Layer 2 协议,例如支付通道(Payment Channel),Plasma 等等方案。

Layer 2 方案共同特点是牺牲共识范围来换取性能,因此作为 Layer 1 的区块链,关注点显然不应该是性能,因为 Layer 2 会承担这个职责。Layer 1 是保障上层协议参与者的最后防线,它的关注点应该是安全和去中心化。

Layer 1 负责的是状态共识(存储),Layer 2 负责的是状态生成(计算)。

Layer 1 需要一个安全的共识协议,并且范围越大越好。基于 PoW 的 Nakamoto Consensus 正是这样一个协议,这是唯一一个在现实环境中经过验证的全球共识,于是我们针对 Layer 1 设计了一套性能优化的给予 PoW 的共识协议,这套共识协议可以在不牺牲安全性的基础上,压榨初网络带宽的所有潜能,目前我们没有给我们的 PoW 取正式的名字,暂定名字为 NC-Max。

Layer 1 需要验证各种 Layer 2 的状态,需要拥有一个强大的可编程能力的虚拟机,以支持各种状态验证逻辑,这意味着我们需要一个强大的编程模型(状态模型+虚拟机),我们引入了基于 RISC-V 指令集实现的虚拟机,来满足 Layer 1 的各种需求。

在 Layer 1 这一层,基于 Cell 编程模型的灵活的状态存储能力,结合 Nervos CKB-VM 虚拟机,可以方便的支持各种密码学证明,让Layer 1 充当 Layer 2 的「法院」的角色,并且可以非常灵活的增加新的密码学算法而无需硬分叉。

最后,一个合理设计的经济模型,对齐网络上参与的各方价值和利益,才能保证网络长久安全可靠运行。

最后总结一下创新点:

  • Cell 模型,支撑灵活的状态存储和验证

  • CKB-VM 虚拟机,基于 RISC-V 指令集实现

  • NC-Max PoW 共识算法,压榨网络带宽的所有潜能

  • 灵活的新增各种加密算法,而无需硬分叉

  • 经济模型,针对 Layer 1 定制的,保障网络长久安全可靠运行

四、开发进度和近期目标

5 月 18 日,我们的测试链将正式发布。大概会有不短于 6 个月的测试阶段,然后才是主网上线。测试链运行期间,我们会继续修复各种问题。当测试链比较稳定后,我们会引入第三方安全审计团队从渗透测试到白盒测试进行多轮审计,基于审计结果我们会开展一系列的安全问题修复。以及在保障安全性的前提下做到尽可能的性能调优。

当安全方面的工作达到一个稳定阶段后,我们会开始压力测试,我们的目标是希望当压力测试达到一个稳定的状态持续一段时间,比如 30 天后,届时我们会开启主网络发布计划。

从测试链到主链,可能有长达半年的迭代时间,在这个期间,我们会针对社区和开发者开展一系列的基于测试链的技术活动,包括系列的 Hackathon,Demo 大赛,漏洞悬赏等等,希望能借此吸引到更多的开发者早期参与到我们的测试链的测试和完善工作中。

五、访谈实录

Q1:Higer (区块链研习社创始人):Nervos 一直在强调「价值捕获」以及 Token 的内在价值,比如我们的 CKB Token 可以去换取 Layer1 上的存储空间。EOS 采取的也是抵押 Token 换取资源的方式来解决存储瓶颈问题,那我们和 EOS 的思路有什么本质上的区别吗?这种模型是否会面临由于 Token 价格上涨而带来的开发者成本过高问题?

吕国宁:这是一个非常好的问题。我们可以从 EOS 资源模型的异同来解释 CKB 的资源模型。

首先从所有公链的基础共性上看,每一条基础公链设计其 Token 时,都需要考虑运行时的资源消耗,并且通过需要解决资源的消耗付费问题,并且 Token 的定价必须绑定到资源本身,尤其是稀缺资源,Token 的价格才能保持稳定。不同的链的定价模型不同,绑定的资源也不同。

比特币绑定的是交易带宽,即交易打包权,因为区块大小受限,每 10 分钟出一个块,所以矿工会优先选择打包手续费较高的交易。

以太坊绑定的是计算资源,由于计算资源有限,每个块限定了总的计算量即 gas limit,当前约 800 万左右,所以矿工优先计算 gas price 较高的交易。

Nervos CKB Token 绑定的资源是状态的存储空间,开发者要质押 Token 换取一定量的空间用于存储状态数据。

EOS 则绑定三种资源,CPU,RAM,Net,并且在使用中要为这三种资源付费。

从表现上看,CKB 和 EOS 的资源模型的使用方法很类似,尤其是跟 EOS 中的 RAM 资源非常类似。EOS 中的 RAM 资源和 CPU/Net 资源不同,CPU/Net 你需要质押一些 Token 就可以换取到,并且使用完毕后,被质押的 Token 可以自动退回,因为 CPU/Net 是瞬时,或者可再生资源,而 RAM 是持久占用资源,账号的创建,合约的执行,都需要占用一定的内存空间,所以必须消耗一定量的 RAM。RAM 需要向系统购买获得,而非质押获得,未消耗掉的 RAM 还可以卖回给系统,且 RAM 总供给会不断增发。

在很多方面,CKB 和 RAM 的区别很大:

RAM 和 CKB 的设计目标不同。RAM 锚定的是计算节点的内存资源,而 CKB 锚定的是持久状态存储空间占有,CKB 的消耗跟节点内存消耗无关。

RAM 和 CKB 的增发方式不同。RAM 的增发主要依赖 EOS 的社区治理决定(我们假设 EOS 的社区治理是正常的 ),而 CKB 的增发方式是经济模型设计的一部分,并且由协议实现,是确定性的。

RAM 和 CKB 的获取方式不同。RAM 的定价基于 Bancor 模型,由 RAM 供应量和稀缺性决定价格,只能向系统购买。而 CKB 完全通过二级市场定价,并且可以通过多种渠道获得,包括挖矿模式。

RAM 和 CKB 的消耗方式不同。RAM 被使用掉即消耗,而 CKB 的状态空间使用不消耗 CKB 本身,只是让 CKB 失去了流动性,如果释放掉 CKB 空间中的数据,那么 CKB 可以重新流通。

RAM 和 CKB 的主要使用策略不同。RAM 的使用是强制性的,只要合约执行就必须占用内存状态,而状态的占用跟合约的应用规模正相关,而 CKB 具体用来存什么则由开发者决定,CKB 是分层设计,鼓励尽可能将计算和存储放到成本更低的 Layer 2 上,而将最重要的关键数据,比如资产存储在 CKB 上。

所以总结一下,CKB 和 EOS 的资源,尤其是 RAM 表象上很像,其实内核非常不同,具体解释 Nervos 的 CKB Token 的内生功能,以及围绕 Nervos CKB 设计的经济模型,希望有机会单独做一次分享,才能讲清楚 。

关于 Token 价格上升是否会带来开发者成本过高的问题?

EOS 的 RAM 消耗需要开发者支付,最终是要转嫁给用户承担,所以开发者需要考虑如何能更高效的使用 RAM 并开发高价值的 DApp 给用户,而 CKB 的主要考虑是存储的价值密度,Layer 2 项目部署到 CKB 上,可以有效的降低对 CKB 的存储需求,但是 CKB 的存储由矿工提供算力保护,并且提供全局共识,所以 CKB 会倾向于存储资产以及 Layer 2 的 Merkel Proof。

Merkel Proof 意味着 Layer 2 应用只要每隔一段时间,向 Layer 1,也就是 CKB 提交一份 32 字节的哈希字符,就能证明 Layer 2 的一致性和准确性,这样的话,这 32 字节的字符就代表了整个 Layer 2 的经济体量,那么这 32 字节就是高价值密度数据。

在 CKB 上,当 Token 价格上升时,由于自由市场调节,会导致矿工更大的投入,带来更多的算力保障网络的安全性。而安全性作为 Layer 1 向 Layer 2 提供的最主要的价值,会帮助 Layer 2 扩展其信用规模,从而帮助 Layer 2 层发展出更好的经济生态,并且将价值沉淀到 CKB 本身,这是 CKB 的经济模型的核心,即捕捉 layer 2 产生的价值到 layer 1 的 token 上。

为了解决 Token 价格上升带来的成本问题,CKB 底层灵活的编程模型可以方便的把所有权和使用权分离,这样会刺激产生一个完全市场化条件的 CKB 租赁市场,我们认为租赁 CKB 可以有效的解决 Token 价格带来的开发成本过高问题。

Q2 Higer:Nervos 的分层设计方案,并没有像其他公链那样从某个角度去寻找「单点突破」,而是完全重构了一套全新的底层基础公链 CKB 去更好的配合 Layer2,这是出于非常长远的考虑。那么您觉得目前对于开发者来说,公链的用户规模和易用程度,哪个会是他们首要考虑的因素呢?除了做好技术本身,Nervos 还会从哪些方面来提高整个生态的价值?

吕国宁:用户规模和易用程度,这两个概念放在一起类比非常有趣,但是在我的理解,这两个概念可以相关,但是也可以独立看待。

我可以广义的去理解关于用户规模,用户类型和角色可以是很多种,有开发者,有 DApp 用户,有 Token holder 投资用户,有矿工。有人提供信息服务,有人提供技术培训,有人在多种不同的角色中切换,公链背后的社区应该是多元的,存在不同类型的角色,并且角色之间可以互动,交流,彼此服务,并产生价值,最后价值能以各种形式沉淀到社区当中。所以用户的规模,可以等同于社区的规模。

公链平台的运营者如果希望更多的用户进来,短期策略可以做各种类型的活动,如同电商打折让利促销,这样的确可以短期抓住大量以套利为目标的用户,但是这种类型的用户切换成本也低,如果模式不能持续,则用户很快会流失掉。

如果公链平台能证明自己的价值,并且有可持续的建设和发展社区,并且能把价值沉淀下来,那么这些沉淀的价值是无法低成本切换走的,并且这些价值支撑了用户规模和为未来持续发展提供保障。开发者看待一个平台,不能仅仅看单一 DApp 用户数量这一个指标,应该去看这条链背后的社区状态,以及发展趋势。

易用程度取决于平台定位和技术迭代,或者换句话说,易用程度是技术领域的问题,我们可以观察到一个事实,想要把一个平台的进入门槛做到足够的低,开发体验足够的好,跟其难度和背后需要付出的努力呈反比,看起来越简单的平台,背后可能付出的努力越大。

但是技术层面的问题,只要有足够的人力,资源,时间,总会方法和手段可以做到更好。问题是公链项目的开发团队,任何一家都不是资源无限,时间无限的条件下去做开发的。在资源有限的情况下,最好的策略是想办法通过社区的力量帮助开发,而事实证明做的最好的公链,大部分工作主要依靠的是社区的力量协作实现的。所以开发者首先应该考虑的,依然是公链平台背后的社区,以及发展趋势。

关于除了做好技术本身,Nervos 还会从哪些方面来提高整个生态的价值 ?

Nervos 首先是一个开源项目,并且目标是把 Nervos 发展成一个强社区驱动的开源开放区块链平台。把社区和生态的发展放在了优先级非常高的位置,我们主要做的几个核心工作大概分为三点。

第一,尽可能让更多的人接触,了解 Nervos,然后参与进来。

我们光去年就做了接近 40 多场的线下 Meetup,而且不仅仅在国内,我们在北美,欧洲,亚太等地区。在这个过程中我们直接跟社区成员面对面交流,传播我们对当前区块链的认知,对未来区块链发展的观点。包括我们宣传的基于分层的未来区块链基础设施架构,以及各种 Layer 2 项目的概念,发展趋势等。

为此我们还在 github 上成立了 awesome-layer2 项目,目的也是为了更好的方便大家理解 Layer 2 作为未来区块链发展的一个重要方向。努力的结果,让我们获得了全世界范围内,来自区块链技术圈头部专业人士的一致认可。

第二,开源,并尽可能拥抱开源社区。

Nervos CKB 的底层用的是 Rust 语言开发,我们有超过 30 名 Rust 工程师,所以我们深度参与到了国内 Rust 社区和生态的建设当中,帮助把国内的 Rust 社区发展到一个新的 Level,在刚刚过去的四月二十号,我们联合国内另外一家 Rust 的公司 PingCAP 一起为 Rust 社区做了一场非常成功的 RustCon Asia。

我们希望联合所有跟我们相关的开源社区,争取来自其他各个开源社区的支持和帮助,所以我们必须先尽量想一切方法去 contribute 我们的努力到开源社区,效果是非常显著的,现在 Nervos 取得了非常好的开源社区的品牌形象,以及认同感。除了 Rust 社区,还有 RISC-V 社区,Ruby 社区,区块链相关的各种技术社区等等。

这是 RustCon Asia 的官网 https://rustcon.asia。

这个大会非常的成功,但是这是一个区块链企业为 Rust 技术社区所做的力所能及的贡献,而这场技术大会跟区块链完全无关,但是意义非凡。

第三,我觉得也是我们做的最重要的一点,就是教育。

现在还处于社区早期发展阶段,还有大量的潜在的社区贡献者,我们需要创建尽可能多的内容去教育大家,跟大家共同学习,成长,帮助潜在的社区贡献者成为真正的社区贡献者,为此我们在教育资源的投入上做了很多努力。包括通过线上,线下媒体发表了大量的技术文章,以及社区分享,比如今天这种形式的分享就是我们的工作的一部分。

我们还赞助了很多内容创作者去产生跟 Nervos 有关的内容,比如 learning.nervos.org,haoqicat.com,orange.xyz 等等。并且把我们的内容通过国内所有我们能接触到的平台,渠道进行传播,推广,并且我们维护了超过 100 个微信群,Telegram 群,以及其他各种可以接触到社区成员的渠道。并且在各地想办法建设当地的 Nervos 社区,比如 NervosFans,Nervos 北京社区,Nervos 成都社区,Nervos 台北社区等等,以及我们的 talk.nervos.org 已经成为国内非常有特色的交流区块链技术和加密经济学的在线社区。

通过这些努力,我们已经帮助很多人成长为优秀的社区贡献者,我们相信会有更多的人在将来会成长起来并且贡献价值到社区,同时我们还会做更多的尝试来提高整个生态的价值。

Q3 Higer:随着菠菜应用热度的消退,到目前为止,曾被很多人寄以厚望的 DApp,还远没有发展到大家理想中的状态。请问 Daniel 如何看待目前的公链和 DApp 发展现状?到底怎样的 DApp 应用才能真正被用户所需要?也许您的回答可以为社群的一些从业者和开发者提供更好的思路。

吕国宁:关于如何看待目前公链的发展,我只能从 Nervos 的角度回答,只能代表一家之言。

先谈愿景,Nervos 的目标是为繁荣的加密经济生态提供底层基础设施服务,我们对未来的判断,是基于密码学构建的加密经济生态。

加密经济是一个全新经济体。这个经济体不同于其他的虚拟经济体,它可能创造出一个非常活跃的市场。它能发展出多大的规模,现在无从知晓,但是它依托于互联网,发展规模可以平齐于互联网规模,跨越不同的国家和地区,吸引了成千上万来自不同国家的市场参与者。它将个人创造和交易数字资产的成本降到极低,它汇聚了前所未有的流动性,永不停转,7*24 小时不间断的为用户提供服务。

公链在未来的加密经济生态中,扮演的应该是底层基础设施和信任的引擎。我们认为目前公链的发展,仍然受限于基础设施的发展。区块链的基础设施并不完善,以太坊 20+ 的 TPS 和比特币 5-7 的 TPS,对比支付宝 27 万笔 / 秒的交易创建速度,所以大家就都把关注点放到了做性能更好的公链。我们也看到新的公链比如 EOS 将 TPS 提升了一个数量级,就会带来新的应用类型的 DApp 应用流行起来,那么随着底层性能继续提升一到两个量级,一定会催生出一个非常丰富的 DApp 生态。

关于到底怎样的 DApp 应用才能真正被用户所需要 ?

我认为最符合区块链的基因和逻辑的 DApp 应用,才能创造出独特的价值,并且服务有需要的用户,才能做出符合用户需要的 DApp。

所以关键在于清楚的理解区块链到底给我们带来什么样的价值,想清楚了就比较容易做出真正被用户需要的 DApp。

我举个实际的例子,我比较关注去中心化金融服务,也就是 DeFi 类应用,这类 DApp 的关键是如何合理的利用好区块链提供的安全和强去中心化锚定。

其实金融类的 DApp 已经部分落地了,很多钱包服务内置的去中心化理财,借贷等功能,我们认为这已经是典型的落地案例,而且也被证明了符合用户的需求,所以发展非常迅速。

Q4 Higer:近有关 PoS 和 Staking Economy 的话题很多,也有一些人认为效率更高的 PoS 机制是行业未来不可逆转的趋势,以太坊的下一步计划也将转为 PoS。而 Nervos 项目从一开始就将 Layer1 的共识机制确定为 PoW,我们是基于哪些方面考虑的呢?您又是如何看待 PoS 的未来的呢?

吕国宁:好的,好问题,我先回答为什么 Nervos 的 CKB 选择 PoW?

这要从 Nervos CKB 自身的定位来解释,Nervos 提出的是分层架构。分层架构相对于使用其他扩展方案的区块链,其核心是底层把计算尽量放到链外,放到上层,而底层主要负责的是验证,以及通过验证的状态的持久化存储,这里的状态主要就是资产。所以在我们的设计中,Layer 2 用于承载业务,而 CKB 作为 Layer 1 则用于保障安全和信任,所以 Layer 1 会变成一个安全层,它上面的 Layer 2 去做 Scalability 的事情。

PoW 的另外一个特点是简单,简单其实是一个特别,特别,特别关键的特性,因为简单意味着更安全,复杂是安全的敌人!

因为 PoW 模型足够的简单,对于 PoW 我们可以方便的建模分析,定量分析其安全性,并且我们可以非常有信心的说,我们对 PoW,或者 Nakamoto Consensus 算法的所有攻击方式和解决方案都是已知的,是可以在实际生产环境中去提前做好准备和预防的。

(我们的研究员张韧博士三月份发表了一篇关于 PoW 定量分析模型的论文,投中了安全领域的国际顶级协会 https://www.chainnews.com/news/251905511704.htm)

换个角度来看,因为共识创造信任,但是信任的创造只有通过锚定稀缺性资源,才会更加稳定可靠。PoS 是用系统自己发行的 Token 作为押金保证系统的安全,信任自己创造自己其实是难以自洽的。

这个点其实可以从经济学角度稍微展开解释,如果区块链的共识算法创造了一个完全竞争市场,提供多少安全,就需要多少生产成本,那么「攻击成本 = 安全程度 = 生产成本」,想要提供多少边际安全,就需要付出多少边际成本。而 PoS 的设计让我们可以提供等量的安全,但是只需要 10% 甚至 1% 的成本,对于这一点我们觉得还需要真实环境下长期的检测才能证明。

PoW 的竞争来自于外部性,因为你总是可以通过市场行为来避免算力集中产生 51% 攻击,但是 PoS 的 Stake 如果过于集中,目前并没有比较好的办法能解决这个问题。我们观察目前的所有已经在运行的 PoS 系统,看到一个趋势是 Stake 的集中程度越来越高,那么会不会产生相对集中的共识群体联合审查交易的情况呢?我还没有看到能在 PoS 共识协议中解决这个问题的方案。

Nervos 的 CKB 的角色必须是一个无需许可的网络,因为 CKB 必须是全球共享的、中立的设施,而「需要许可」则意味着它是受到某一群人控制的,与这个目标是根本冲突的。如果我们希望 CKB 尽可能的去中心化和安全,目前的 Nervos CKB 就只有 PoW 一个选项。PoS 不是不能用,只是不适合。

我们对 PoS 的未来的态度是谨慎乐观。我们也看到很多项目采用 PoS,并且在 PoS 的理论和工程实践方面又了长足的进步。我们希望看到 PoS 能在更多的生产环境下经历更多来自各个层面的攻击验证其安全性,以及在理论层面上能提出更好的分析框架来深度分析 PoS 的各种攻击角度和应对策略。

Q5 Higer:可能是更多普通用户所关心的,非开发者未来可以通过哪些方式参与到 Nervos 网络从而获益?比如挖矿,我看到 Nervos CKB 白皮书里把节点分成存储节点、共识节点和轻节点,他们有什么不同?哪些节点会有收益?矿工应该如何选择?

吕国宁:好的,我想先从 Token 获取角度来谈这个问题,我们是一个经过机构 Private Sale,但是没有公开发币的项目,这个问题我们被反复问过。

区块链的生态是通过大家持有 Token,分享社区和平台的成长红利,并且共同承担风险。所以如何参与到 Nervos 的问题变成了如何获得 Nervos CKB Token 的问题。

这是一个开放性问题,首先大比例的 Token 一定会通过 PoW 的方式挖矿分散出去,所以挖矿会获得,二级市场可以直接购买获得,以及各种交易的方式获得。我认为这个跟其他类型的平台,尤其是基于 PoW 的平台 Token 获取方式并无本质区别。

同时我们认为非技术开发者在这个社区中依然扮演非常重要的角色,依然有很多方式可以帮助这个社区,参与任何类型的社区建设,比如帮忙测试,提交评论,产生文档内容,做线上线下活动,解答其他人的疑惑,传播 Nervos 的技术等等,这些都是在为这个社区创造价值。

而如何激励为社区创造价值的用户,尤其是在早期阶段通过激励去快速发展社区,是 Nervos 基金会的职责。在我们的规划中,Nervos 基金会持有一定比例的 Token,用于激励社区的贡献者,我们在不断的探索实践如何更有效的利用手中有限的资源去产生最大的效用,去助力 Nervos 构建一个更好更良性的社区。三月初我们发布了 CKB 的经济白皮书,然后我们在 talk.nervos.org 论坛上发起了评论有奖的活动,就取得了非常好的效果,类似的活动我们还会继续开展,并且会更加的多元化。

关于存储节点、共识节点和轻节点,他们有什么不同?哪些节点会有收益?矿工应该如何选择?

轻节点:不参与共识,也不存储历史数据,主要存储有限的数据,所以可以在移动设备或者终端设备上运行,主要是为了方便客户端交互。

存储节点:存储全网的全部数据,并且对所有的交易进行验证,并对外提供数据查询检索服务,全节点是网络中非常重要不可或缺的部分,只有维持一定数量的存储节点,才能保障网络是可靠的,健壮的。

共识节点:主要职责是参与共识和出块,共识节点不必要保留全部历史数据,也不用提供对外提供数据查询服务。

矿工应该选择并运行共识节点,也只有矿工通过共识节点能获取到出块的基础发型,二级发型奖励以及交易手续费收入。

轻节点有应用场景支持,一般 DApp 开发者,或者钱包等场景需要部署轻节点,用于给用户提供更好的数据查询和区块链交互服务。而全节点的激励则需要通过社区治理来解决,我们希望看到最后产生一个比较好的机制能激励更多的全节点来维护网络的安全性。

生成图片
4

发表评论

Nervos 吕国宁:通过链外扩容与分层思想打造下一代区块链基础设施

星期四 2019-05-09 20:00:48


目前扩容的两条主要路线分别是链上扩容和链外扩容,这两条路线中均有实力不俗的代表团队。每种代表路线中都有很多值得学习了解的设计思路和哲学,本文中,区块链项目 Nervos 联合创始人及 COO 吕国宁为大家讲述如何通过链外扩容和分层思想打造下一代区块链基础设施。

Nervos 吕国宁:通过链外扩容与分层思想打造下一代区块链基础设施

吕国宁,Nervos 联合创始人及 COO

区块链扩容是业内长期以来的焦点,区块链最为人诟病的点也是性能的低下,而扩容是解决区块链性能问题的重要一环。

以太坊相比比特币在性能上有所进步,然而远远不够,以太坊之后诞生的大多数公链,无不把解决性能问题作为主要解决方向,以期能够打造出性能强悍、可商用的区块链系统,成为区块链大规模落地的基础平台,成为下一代区块链的代名词。

不同公链团队提出了不同的解决方案,然而现在一切都还未定,各立场方也为不同的解决方案展开了激烈辩论。

目前扩容的两条主要路线分别是链上扩容和链外扩容,这两条路线中均有实力不俗的代表团队。

每种代表路线中都有很多值得学习了解的设计思路和哲学,本期问道区块链请来了知名区块链项目 Nervos 联合创始人及 COO 吕国宁为大家讲述如何通过链外扩容和分层思想打造下一代区块链基础设施。

Nervos 吕国宁:通过链外扩容与分层思想打造下一代区块链基础设施

5 月 6 日晚,区块链研习社社群专访栏目 ——《问道区块链》邀请了Nervos 联合创始人、COO 吕国宁(前 imToken 联合创始人兼 CTO,EthFans 以太坊爱好者社区发起人,前云币交易所 CTO,国内最大的线上技术社区 RubyChina 创始人)为大家讲述 Nervos 独特的分层设计思想及链下扩容相关知识。

本次活动在「问道区块链创世群」进行,并在区块链研习社所有社群及合作伙伴社群进行直播。活动得到了链闻、星球日报、COINVOICE、耳朵财经、深链财经、Coin4A 及各大媒体的大力支持。

吕国宁及 Nervos 团队在业内深耕超过 5 年,在交易所、钱包、矿池、联盟链等方面都取得了杰出成绩,参与创立的项目在领域内均为头部项目,具有丰富的区块链开发实践经验。

一、链上扩容方案的取舍和妥协

吕国宁指出 ,目前区块链的性能扩展方式有两条路,一条路为链上扩容,另外一条路是链外扩容。

链上扩容是指从区块链本身特性出发,解决影响性能的特性,从而提高区块链性能。

比如共识算法不够高效,就选择更高效的 POS 及其变种算法;比如链式存储结构效率不够高,就使用可以并行打包的 DAG 方案;再比如网络处理交易和验证是串行的,一次只能处理一笔交易,就使用可以给节点分组的分片技术,不同的组处理不同的交易,提升性能。

链上扩容的技术都在实现一个目标,即做一条更强的链。每一种技术方案在具体实现的时候都要面临各种不同的取舍,每一种方案在带来更好的性能提升的同时,其实都会在其他方面做出一些妥协。

比如分片方案能否高效的解决跨链计算,DAG 在双花检测上是否能够做到比较低的延迟,而 PoS 共识算法的安全性能否保证,所有基于 PoS 的攻击方式是否已知并且有针对性的方案,且能带来如 PoW 在真实环境中长达十年的检验给我们带来的信心?

这些问题都是当下各个链上扩容团队在积极努力和试图解决的,虽然在过去的一两年链上扩容的研究有了很多进展,但是这些都不是 Nervos 尝试解决问题的方向。

Nervos 不是为了做出一条更强的链

实现链上扩容是不是我们要解决的核心问题?

我们的看法是扩容不是唯一核心要解决的问题,比如说,如果我们把性能的瓶颈问题解决了,存储可能会马上变成瓶颈,这就是前段时间被热议的状态爆炸问题。由于交易量的提升,那么对存储的需求也会同步提升,而节点的存储资源其实是有限不可回收资源,所以这个问题可能要比性能问题还要严重,甚至它直接影响到了去中心化这一区块链的本质特性,且这类问题还无法通过分叉能方便得解决。

进一步深入思考,会发现在一层中要把所有的事情全部都做到最好,其实要权衡的东西很多,并且做取舍非常难,很多东西甚至是互相矛盾,导致无论做出怎样的取舍,在保证去中心化和安全性的前提下,很难做到很好的性能。

Nervos Network 的设计思想的出发点不是为了做出一条更强的链,Nervos Network 的目标是去实现一个丰富繁荣的加密经济生态,并为这个生态提供底层基础设施服务。

区块链在这个生态中的角色是提供最高效率达成全球共识的工具,并以最低的成本来构建信任。所以 Nervos 的方案是链外扩容,并提出了设计一个分层的加密经济网络设计,并且带来一个全新的公链架构设计思路:如果我们认为分层是未来的发展方向,我们应该从一开始就考虑到上层协议和分层网络的需求,在分层的大框架下去设计区块链协议。

基于分层的思想,Nervos 的底层 Layer 1 网络只需要关注到安全和去中心化,Layer 2 层追求极致的性能,并且在业务实现上去满足各类商业场景的需求,然后由 Layer 1 来对 Layer 2 提供保证。

三、分层思想和技术创新下的繁荣生态

Layer 2 的兴起,是源于我们发现公有链的性能不足,很难扩容到满足整个加密经济体需求的水平,因此慢慢演化出了一系列可以由区块链来保证安全的 Layer 2 协议,例如支付通道(Payment Channel),Plasma 等等方案。

Layer 2 方案共同特点是牺牲共识范围来换取性能,因此作为 Layer 1 的区块链,关注点显然不应该是性能,因为 Layer 2 会承担这个职责。Layer 1 是保障上层协议参与者的最后防线,它的关注点应该是安全和去中心化。

Layer 1 负责的是状态共识(存储),Layer 2 负责的是状态生成(计算)。

Layer 1 需要一个安全的共识协议,并且范围越大越好。基于 PoW 的 Nakamoto Consensus 正是这样一个协议,这是唯一一个在现实环境中经过验证的全球共识,于是我们针对 Layer 1 设计了一套性能优化的给予 PoW 的共识协议,这套共识协议可以在不牺牲安全性的基础上,压榨初网络带宽的所有潜能,目前我们没有给我们的 PoW 取正式的名字,暂定名字为 NC-Max。

Layer 1 需要验证各种 Layer 2 的状态,需要拥有一个强大的可编程能力的虚拟机,以支持各种状态验证逻辑,这意味着我们需要一个强大的编程模型(状态模型+虚拟机),我们引入了基于 RISC-V 指令集实现的虚拟机,来满足 Layer 1 的各种需求。

在 Layer 1 这一层,基于 Cell 编程模型的灵活的状态存储能力,结合 Nervos CKB-VM 虚拟机,可以方便的支持各种密码学证明,让Layer 1 充当 Layer 2 的「法院」的角色,并且可以非常灵活的增加新的密码学算法而无需硬分叉。

最后,一个合理设计的经济模型,对齐网络上参与的各方价值和利益,才能保证网络长久安全可靠运行。

最后总结一下创新点:

  • Cell 模型,支撑灵活的状态存储和验证

  • CKB-VM 虚拟机,基于 RISC-V 指令集实现

  • NC-Max PoW 共识算法,压榨网络带宽的所有潜能

  • 灵活的新增各种加密算法,而无需硬分叉

  • 经济模型,针对 Layer 1 定制的,保障网络长久安全可靠运行

四、开发进度和近期目标

5 月 18 日,我们的测试链将正式发布。大概会有不短于 6 个月的测试阶段,然后才是主网上线。测试链运行期间,我们会继续修复各种问题。当测试链比较稳定后,我们会引入第三方安全审计团队从渗透测试到白盒测试进行多轮审计,基于审计结果我们会开展一系列的安全问题修复。以及在保障安全性的前提下做到尽可能的性能调优。

当安全方面的工作达到一个稳定阶段后,我们会开始压力测试,我们的目标是希望当压力测试达到一个稳定的状态持续一段时间,比如 30 天后,届时我们会开启主网络发布计划。

从测试链到主链,可能有长达半年的迭代时间,在这个期间,我们会针对社区和开发者开展一系列的基于测试链的技术活动,包括系列的 Hackathon,Demo 大赛,漏洞悬赏等等,希望能借此吸引到更多的开发者早期参与到我们的测试链的测试和完善工作中。

五、访谈实录

Q1:Higer (区块链研习社创始人):Nervos 一直在强调「价值捕获」以及 Token 的内在价值,比如我们的 CKB Token 可以去换取 Layer1 上的存储空间。EOS 采取的也是抵押 Token 换取资源的方式来解决存储瓶颈问题,那我们和 EOS 的思路有什么本质上的区别吗?这种模型是否会面临由于 Token 价格上涨而带来的开发者成本过高问题?

吕国宁:这是一个非常好的问题。我们可以从 EOS 资源模型的异同来解释 CKB 的资源模型。

首先从所有公链的基础共性上看,每一条基础公链设计其 Token 时,都需要考虑运行时的资源消耗,并且通过需要解决资源的消耗付费问题,并且 Token 的定价必须绑定到资源本身,尤其是稀缺资源,Token 的价格才能保持稳定。不同的链的定价模型不同,绑定的资源也不同。

比特币绑定的是交易带宽,即交易打包权,因为区块大小受限,每 10 分钟出一个块,所以矿工会优先选择打包手续费较高的交易。

以太坊绑定的是计算资源,由于计算资源有限,每个块限定了总的计算量即 gas limit,当前约 800 万左右,所以矿工优先计算 gas price 较高的交易。

Nervos CKB Token 绑定的资源是状态的存储空间,开发者要质押 Token 换取一定量的空间用于存储状态数据。

EOS 则绑定三种资源,CPU,RAM,Net,并且在使用中要为这三种资源付费。

从表现上看,CKB 和 EOS 的资源模型的使用方法很类似,尤其是跟 EOS 中的 RAM 资源非常类似。EOS 中的 RAM 资源和 CPU/Net 资源不同,CPU/Net 你需要质押一些 Token 就可以换取到,并且使用完毕后,被质押的 Token 可以自动退回,因为 CPU/Net 是瞬时,或者可再生资源,而 RAM 是持久占用资源,账号的创建,合约的执行,都需要占用一定的内存空间,所以必须消耗一定量的 RAM。RAM 需要向系统购买获得,而非质押获得,未消耗掉的 RAM 还可以卖回给系统,且 RAM 总供给会不断增发。

在很多方面,CKB 和 RAM 的区别很大:

RAM 和 CKB 的设计目标不同。RAM 锚定的是计算节点的内存资源,而 CKB 锚定的是持久状态存储空间占有,CKB 的消耗跟节点内存消耗无关。

RAM 和 CKB 的增发方式不同。RAM 的增发主要依赖 EOS 的社区治理决定(我们假设 EOS 的社区治理是正常的 ),而 CKB 的增发方式是经济模型设计的一部分,并且由协议实现,是确定性的。

RAM 和 CKB 的获取方式不同。RAM 的定价基于 Bancor 模型,由 RAM 供应量和稀缺性决定价格,只能向系统购买。而 CKB 完全通过二级市场定价,并且可以通过多种渠道获得,包括挖矿模式。

RAM 和 CKB 的消耗方式不同。RAM 被使用掉即消耗,而 CKB 的状态空间使用不消耗 CKB 本身,只是让 CKB 失去了流动性,如果释放掉 CKB 空间中的数据,那么 CKB 可以重新流通。

RAM 和 CKB 的主要使用策略不同。RAM 的使用是强制性的,只要合约执行就必须占用内存状态,而状态的占用跟合约的应用规模正相关,而 CKB 具体用来存什么则由开发者决定,CKB 是分层设计,鼓励尽可能将计算和存储放到成本更低的 Layer 2 上,而将最重要的关键数据,比如资产存储在 CKB 上。

所以总结一下,CKB 和 EOS 的资源,尤其是 RAM 表象上很像,其实内核非常不同,具体解释 Nervos 的 CKB Token 的内生功能,以及围绕 Nervos CKB 设计的经济模型,希望有机会单独做一次分享,才能讲清楚 。

关于 Token 价格上升是否会带来开发者成本过高的问题?

EOS 的 RAM 消耗需要开发者支付,最终是要转嫁给用户承担,所以开发者需要考虑如何能更高效的使用 RAM 并开发高价值的 DApp 给用户,而 CKB 的主要考虑是存储的价值密度,Layer 2 项目部署到 CKB 上,可以有效的降低对 CKB 的存储需求,但是 CKB 的存储由矿工提供算力保护,并且提供全局共识,所以 CKB 会倾向于存储资产以及 Layer 2 的 Merkel Proof。

Merkel Proof 意味着 Layer 2 应用只要每隔一段时间,向 Layer 1,也就是 CKB 提交一份 32 字节的哈希字符,就能证明 Layer 2 的一致性和准确性,这样的话,这 32 字节的字符就代表了整个 Layer 2 的经济体量,那么这 32 字节就是高价值密度数据。

在 CKB 上,当 Token 价格上升时,由于自由市场调节,会导致矿工更大的投入,带来更多的算力保障网络的安全性。而安全性作为 Layer 1 向 Layer 2 提供的最主要的价值,会帮助 Layer 2 扩展其信用规模,从而帮助 Layer 2 层发展出更好的经济生态,并且将价值沉淀到 CKB 本身,这是 CKB 的经济模型的核心,即捕捉 layer 2 产生的价值到 layer 1 的 token 上。

为了解决 Token 价格上升带来的成本问题,CKB 底层灵活的编程模型可以方便的把所有权和使用权分离,这样会刺激产生一个完全市场化条件的 CKB 租赁市场,我们认为租赁 CKB 可以有效的解决 Token 价格带来的开发成本过高问题。

Q2 Higer:Nervos 的分层设计方案,并没有像其他公链那样从某个角度去寻找「单点突破」,而是完全重构了一套全新的底层基础公链 CKB 去更好的配合 Layer2,这是出于非常长远的考虑。那么您觉得目前对于开发者来说,公链的用户规模和易用程度,哪个会是他们首要考虑的因素呢?除了做好技术本身,Nervos 还会从哪些方面来提高整个生态的价值?

吕国宁:用户规模和易用程度,这两个概念放在一起类比非常有趣,但是在我的理解,这两个概念可以相关,但是也可以独立看待。

我可以广义的去理解关于用户规模,用户类型和角色可以是很多种,有开发者,有 DApp 用户,有 Token holder 投资用户,有矿工。有人提供信息服务,有人提供技术培训,有人在多种不同的角色中切换,公链背后的社区应该是多元的,存在不同类型的角色,并且角色之间可以互动,交流,彼此服务,并产生价值,最后价值能以各种形式沉淀到社区当中。所以用户的规模,可以等同于社区的规模。

公链平台的运营者如果希望更多的用户进来,短期策略可以做各种类型的活动,如同电商打折让利促销,这样的确可以短期抓住大量以套利为目标的用户,但是这种类型的用户切换成本也低,如果模式不能持续,则用户很快会流失掉。

如果公链平台能证明自己的价值,并且有可持续的建设和发展社区,并且能把价值沉淀下来,那么这些沉淀的价值是无法低成本切换走的,并且这些价值支撑了用户规模和为未来持续发展提供保障。开发者看待一个平台,不能仅仅看单一 DApp 用户数量这一个指标,应该去看这条链背后的社区状态,以及发展趋势。

易用程度取决于平台定位和技术迭代,或者换句话说,易用程度是技术领域的问题,我们可以观察到一个事实,想要把一个平台的进入门槛做到足够的低,开发体验足够的好,跟其难度和背后需要付出的努力呈反比,看起来越简单的平台,背后可能付出的努力越大。

但是技术层面的问题,只要有足够的人力,资源,时间,总会方法和手段可以做到更好。问题是公链项目的开发团队,任何一家都不是资源无限,时间无限的条件下去做开发的。在资源有限的情况下,最好的策略是想办法通过社区的力量帮助开发,而事实证明做的最好的公链,大部分工作主要依靠的是社区的力量协作实现的。所以开发者首先应该考虑的,依然是公链平台背后的社区,以及发展趋势。

关于除了做好技术本身,Nervos 还会从哪些方面来提高整个生态的价值 ?

Nervos 首先是一个开源项目,并且目标是把 Nervos 发展成一个强社区驱动的开源开放区块链平台。把社区和生态的发展放在了优先级非常高的位置,我们主要做的几个核心工作大概分为三点。

第一,尽可能让更多的人接触,了解 Nervos,然后参与进来。

我们光去年就做了接近 40 多场的线下 Meetup,而且不仅仅在国内,我们在北美,欧洲,亚太等地区。在这个过程中我们直接跟社区成员面对面交流,传播我们对当前区块链的认知,对未来区块链发展的观点。包括我们宣传的基于分层的未来区块链基础设施架构,以及各种 Layer 2 项目的概念,发展趋势等。

为此我们还在 github 上成立了 awesome-layer2 项目,目的也是为了更好的方便大家理解 Layer 2 作为未来区块链发展的一个重要方向。努力的结果,让我们获得了全世界范围内,来自区块链技术圈头部专业人士的一致认可。

第二,开源,并尽可能拥抱开源社区。

Nervos CKB 的底层用的是 Rust 语言开发,我们有超过 30 名 Rust 工程师,所以我们深度参与到了国内 Rust 社区和生态的建设当中,帮助把国内的 Rust 社区发展到一个新的 Level,在刚刚过去的四月二十号,我们联合国内另外一家 Rust 的公司 PingCAP 一起为 Rust 社区做了一场非常成功的 RustCon Asia。

我们希望联合所有跟我们相关的开源社区,争取来自其他各个开源社区的支持和帮助,所以我们必须先尽量想一切方法去 contribute 我们的努力到开源社区,效果是非常显著的,现在 Nervos 取得了非常好的开源社区的品牌形象,以及认同感。除了 Rust 社区,还有 RISC-V 社区,Ruby 社区,区块链相关的各种技术社区等等。

这是 RustCon Asia 的官网 https://rustcon.asia。

这个大会非常的成功,但是这是一个区块链企业为 Rust 技术社区所做的力所能及的贡献,而这场技术大会跟区块链完全无关,但是意义非凡。

第三,我觉得也是我们做的最重要的一点,就是教育。

现在还处于社区早期发展阶段,还有大量的潜在的社区贡献者,我们需要创建尽可能多的内容去教育大家,跟大家共同学习,成长,帮助潜在的社区贡献者成为真正的社区贡献者,为此我们在教育资源的投入上做了很多努力。包括通过线上,线下媒体发表了大量的技术文章,以及社区分享,比如今天这种形式的分享就是我们的工作的一部分。

我们还赞助了很多内容创作者去产生跟 Nervos 有关的内容,比如 learning.nervos.org,haoqicat.com,orange.xyz 等等。并且把我们的内容通过国内所有我们能接触到的平台,渠道进行传播,推广,并且我们维护了超过 100 个微信群,Telegram 群,以及其他各种可以接触到社区成员的渠道。并且在各地想办法建设当地的 Nervos 社区,比如 NervosFans,Nervos 北京社区,Nervos 成都社区,Nervos 台北社区等等,以及我们的 talk.nervos.org 已经成为国内非常有特色的交流区块链技术和加密经济学的在线社区。

通过这些努力,我们已经帮助很多人成长为优秀的社区贡献者,我们相信会有更多的人在将来会成长起来并且贡献价值到社区,同时我们还会做更多的尝试来提高整个生态的价值。

Q3 Higer:随着菠菜应用热度的消退,到目前为止,曾被很多人寄以厚望的 DApp,还远没有发展到大家理想中的状态。请问 Daniel 如何看待目前的公链和 DApp 发展现状?到底怎样的 DApp 应用才能真正被用户所需要?也许您的回答可以为社群的一些从业者和开发者提供更好的思路。

吕国宁:关于如何看待目前公链的发展,我只能从 Nervos 的角度回答,只能代表一家之言。

先谈愿景,Nervos 的目标是为繁荣的加密经济生态提供底层基础设施服务,我们对未来的判断,是基于密码学构建的加密经济生态。

加密经济是一个全新经济体。这个经济体不同于其他的虚拟经济体,它可能创造出一个非常活跃的市场。它能发展出多大的规模,现在无从知晓,但是它依托于互联网,发展规模可以平齐于互联网规模,跨越不同的国家和地区,吸引了成千上万来自不同国家的市场参与者。它将个人创造和交易数字资产的成本降到极低,它汇聚了前所未有的流动性,永不停转,7*24 小时不间断的为用户提供服务。

公链在未来的加密经济生态中,扮演的应该是底层基础设施和信任的引擎。我们认为目前公链的发展,仍然受限于基础设施的发展。区块链的基础设施并不完善,以太坊 20+ 的 TPS 和比特币 5-7 的 TPS,对比支付宝 27 万笔 / 秒的交易创建速度,所以大家就都把关注点放到了做性能更好的公链。我们也看到新的公链比如 EOS 将 TPS 提升了一个数量级,就会带来新的应用类型的 DApp 应用流行起来,那么随着底层性能继续提升一到两个量级,一定会催生出一个非常丰富的 DApp 生态。

关于到底怎样的 DApp 应用才能真正被用户所需要 ?

我认为最符合区块链的基因和逻辑的 DApp 应用,才能创造出独特的价值,并且服务有需要的用户,才能做出符合用户需要的 DApp。

所以关键在于清楚的理解区块链到底给我们带来什么样的价值,想清楚了就比较容易做出真正被用户需要的 DApp。

我举个实际的例子,我比较关注去中心化金融服务,也就是 DeFi 类应用,这类 DApp 的关键是如何合理的利用好区块链提供的安全和强去中心化锚定。

其实金融类的 DApp 已经部分落地了,很多钱包服务内置的去中心化理财,借贷等功能,我们认为这已经是典型的落地案例,而且也被证明了符合用户的需求,所以发展非常迅速。

Q4 Higer:近有关 PoS 和 Staking Economy 的话题很多,也有一些人认为效率更高的 PoS 机制是行业未来不可逆转的趋势,以太坊的下一步计划也将转为 PoS。而 Nervos 项目从一开始就将 Layer1 的共识机制确定为 PoW,我们是基于哪些方面考虑的呢?您又是如何看待 PoS 的未来的呢?

吕国宁:好的,好问题,我先回答为什么 Nervos 的 CKB 选择 PoW?

这要从 Nervos CKB 自身的定位来解释,Nervos 提出的是分层架构。分层架构相对于使用其他扩展方案的区块链,其核心是底层把计算尽量放到链外,放到上层,而底层主要负责的是验证,以及通过验证的状态的持久化存储,这里的状态主要就是资产。所以在我们的设计中,Layer 2 用于承载业务,而 CKB 作为 Layer 1 则用于保障安全和信任,所以 Layer 1 会变成一个安全层,它上面的 Layer 2 去做 Scalability 的事情。

PoW 的另外一个特点是简单,简单其实是一个特别,特别,特别关键的特性,因为简单意味着更安全,复杂是安全的敌人!

因为 PoW 模型足够的简单,对于 PoW 我们可以方便的建模分析,定量分析其安全性,并且我们可以非常有信心的说,我们对 PoW,或者 Nakamoto Consensus 算法的所有攻击方式和解决方案都是已知的,是可以在实际生产环境中去提前做好准备和预防的。

(我们的研究员张韧博士三月份发表了一篇关于 PoW 定量分析模型的论文,投中了安全领域的国际顶级协会 https://www.chainnews.com/news/251905511704.htm)

换个角度来看,因为共识创造信任,但是信任的创造只有通过锚定稀缺性资源,才会更加稳定可靠。PoS 是用系统自己发行的 Token 作为押金保证系统的安全,信任自己创造自己其实是难以自洽的。

这个点其实可以从经济学角度稍微展开解释,如果区块链的共识算法创造了一个完全竞争市场,提供多少安全,就需要多少生产成本,那么「攻击成本 = 安全程度 = 生产成本」,想要提供多少边际安全,就需要付出多少边际成本。而 PoS 的设计让我们可以提供等量的安全,但是只需要 10% 甚至 1% 的成本,对于这一点我们觉得还需要真实环境下长期的检测才能证明。

PoW 的竞争来自于外部性,因为你总是可以通过市场行为来避免算力集中产生 51% 攻击,但是 PoS 的 Stake 如果过于集中,目前并没有比较好的办法能解决这个问题。我们观察目前的所有已经在运行的 PoS 系统,看到一个趋势是 Stake 的集中程度越来越高,那么会不会产生相对集中的共识群体联合审查交易的情况呢?我还没有看到能在 PoS 共识协议中解决这个问题的方案。

Nervos 的 CKB 的角色必须是一个无需许可的网络,因为 CKB 必须是全球共享的、中立的设施,而「需要许可」则意味着它是受到某一群人控制的,与这个目标是根本冲突的。如果我们希望 CKB 尽可能的去中心化和安全,目前的 Nervos CKB 就只有 PoW 一个选项。PoS 不是不能用,只是不适合。

我们对 PoS 的未来的态度是谨慎乐观。我们也看到很多项目采用 PoS,并且在 PoS 的理论和工程实践方面又了长足的进步。我们希望看到 PoS 能在更多的生产环境下经历更多来自各个层面的攻击验证其安全性,以及在理论层面上能提出更好的分析框架来深度分析 PoS 的各种攻击角度和应对策略。

Q5 Higer:可能是更多普通用户所关心的,非开发者未来可以通过哪些方式参与到 Nervos 网络从而获益?比如挖矿,我看到 Nervos CKB 白皮书里把节点分成存储节点、共识节点和轻节点,他们有什么不同?哪些节点会有收益?矿工应该如何选择?

吕国宁:好的,我想先从 Token 获取角度来谈这个问题,我们是一个经过机构 Private Sale,但是没有公开发币的项目,这个问题我们被反复问过。

区块链的生态是通过大家持有 Token,分享社区和平台的成长红利,并且共同承担风险。所以如何参与到 Nervos 的问题变成了如何获得 Nervos CKB Token 的问题。

这是一个开放性问题,首先大比例的 Token 一定会通过 PoW 的方式挖矿分散出去,所以挖矿会获得,二级市场可以直接购买获得,以及各种交易的方式获得。我认为这个跟其他类型的平台,尤其是基于 PoW 的平台 Token 获取方式并无本质区别。

同时我们认为非技术开发者在这个社区中依然扮演非常重要的角色,依然有很多方式可以帮助这个社区,参与任何类型的社区建设,比如帮忙测试,提交评论,产生文档内容,做线上线下活动,解答其他人的疑惑,传播 Nervos 的技术等等,这些都是在为这个社区创造价值。

而如何激励为社区创造价值的用户,尤其是在早期阶段通过激励去快速发展社区,是 Nervos 基金会的职责。在我们的规划中,Nervos 基金会持有一定比例的 Token,用于激励社区的贡献者,我们在不断的探索实践如何更有效的利用手中有限的资源去产生最大的效用,去助力 Nervos 构建一个更好更良性的社区。三月初我们发布了 CKB 的经济白皮书,然后我们在 talk.nervos.org 论坛上发起了评论有奖的活动,就取得了非常好的效果,类似的活动我们还会继续开展,并且会更加的多元化。

关于存储节点、共识节点和轻节点,他们有什么不同?哪些节点会有收益?矿工应该如何选择?

轻节点:不参与共识,也不存储历史数据,主要存储有限的数据,所以可以在移动设备或者终端设备上运行,主要是为了方便客户端交互。

存储节点:存储全网的全部数据,并且对所有的交易进行验证,并对外提供数据查询检索服务,全节点是网络中非常重要不可或缺的部分,只有维持一定数量的存储节点,才能保障网络是可靠的,健壮的。

共识节点:主要职责是参与共识和出块,共识节点不必要保留全部历史数据,也不用提供对外提供数据查询服务。

矿工应该选择并运行共识节点,也只有矿工通过共识节点能获取到出块的基础发型,二级发型奖励以及交易手续费收入。

轻节点有应用场景支持,一般 DApp 开发者,或者钱包等场景需要部署轻节点,用于给用户提供更好的数据查询和区块链交互服务。而全节点的激励则需要通过社区治理来解决,我们希望看到最后产生一个比较好的机制能激励更多的全节点来维护网络的安全性。