1
区块链
区块链扩容是业内长期以来的焦点,区块链最为人诟病的点也是性能的低下,而扩容是解决区块链性能问题的重要一环。
以太坊相比比特币在性能上有所进步,然而远远不够,以太坊之后诞生的大多数公链,无不把解决性能问题作为主要解决方向,以期能够打造出性能强悍、可商用的区块链系统,成为区块链大规模落地的基础平台,成为下一代区块链的代名词。
不同公链团队提出了不同的解决方案,然而现在一切都还未定,各立场方也为不同的解决方案展开了激烈辩论。
目前扩容的两条主要路线分别是链上扩容和链外扩容,这两条路线中均有实力不俗的代表团队。
每种代表路线中都有很多值得学习了解的设计思路和哲学,本期问道区块链请来了知名区块链项目Nervos联合创始人及COO吕国宁为大家讲述如何通过链外扩容和分层思想打造下一代区块链基础设施。
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 大赛,漏洞悬赏等等,希望能借此吸引到更多的开发者早期参与到我们的测试链的测试和完善工作中。
全部0条评论
快来发表一下你的评论吧 !