目前针对layer2主要方案有: Plasma 系列方案、状态通道方案、链外计算方案、多链跨链方案等。
要点速览
1. 公有链技术则相对发展遇到瓶颈,以以太坊今年数次修改、推迟Casper方案为标志,公有链技术最近一年可以说并没有特别大的突破。
2. 从2017年初开始,联盟链的概念逐渐得到突破,演变为“开放许可链”、“公有联盟链”等概念。
3.目前公链的 Layer2 的设计主要集中在状态通道、类Plasma子链、多链跨链等方案。
4.就目前来说,状态通道业务场景相对受限,Plasma 尚在早期研究阶段,多链跨链方案是较容易落地的。
近日,秘猿科技首席产品官Cipher王博做客「火星财经创始学习群」,做了主题为“Nervos Layer2 架构分享”的分享,同时与群主DappReview CEO牛凤轩进行了深度对话。
王博表示,如何在保持系统足够去中心化基础上提高性能成为了最近一年区块链技术升级的热点,layer2+layer1被寄予希望。
目前,layer2+layer1的双层架构方案可以将系统性能提高几个数量级,甚至理论上可以无限提高系统的吞吐量和性能。其主要思路是将需要大量运算的高吞吐量交易放到局部共识的layer2上,一定时间或一定状态后再到layer1全球基础公链上进行“结算”。这样即能够享受layer2上高性能的优势,又能够利用到layer1上的高安全性和高去中心化的优势。
王博进一步指出,最近还有个趋势就是新的公链已经意识到必须通过layer1+layer2一起协作才能解决区块链技术不可能三角难题,因此从这些公链从开发的第一天起就开始同步进行两层的开发,Nervos 就是这类方案的代表。
以下为王博分享内容,由火星财经(ID:hxcj24h)整理:
大家好,我是秘猿科技首席产品官 Cipher 王博,很荣幸能有这次机会与大家做这样一个针对公链 Layer2 扩展的分享。我本人在金融行业大型区块链产品设计领域有超过两年的经验。目前在公司主要负责Nervos AppChain 产品线的设计开发、区块链应用落地以及 Nervos与各种 Layer 2 项目的对接工作。
首先对现在区块链技术的发展现状做个简单的概述。区块链是一种共识技术,自08年比特币出现后至今已经发展了十个年头,目前区块链的技术分类与发展方向已经逐渐清晰。大的方面区块链分为公有链和联盟链两种,之前还短暂出现过私有链的概念,但现在已经逐渐被废弃不用了。前者以比特币、以太坊为代表,特点是无准入,共识全球化;后者以 Hyperledger 等产品为代表,特点是带准入和权限管理机制,以及共识局部化。
从2017年初开始,联盟链的概念逐渐得到突破,演变为“开放许可链”、“公有联盟链”等概念。本质上是将过去联盟链的准入机制放开,其中不少开放许可链开始增加链上激励机制,因此除了记账节点受限之外,各方面变得更像公有链。
而公有链技术则相对发展遇到瓶颈,以以太坊今年数次修改、推迟Casper方案为标志,公有链技术最近一年可以说并没有特别大的突破。区块链在扩展性方面的不可能三角已成为社区共识:即区块链的可扩展性(性能)、去中心化、安全性三者最多同时取其二。
比特币、以太坊选择的是安全性和去中心化,所以其性能非常低下,仅在20tps以内,相对于传统的中心系统更像一个极客玩具。EOS等链选择的是安全性和可扩展性,EOS尽管没有达到最初声称的10万tps,但仍然获得了远超过以太坊的性能(据说最新的测试峰值达到4000tps以上)。还有一些区块链项目牺牲了全局共识特性(可以认为是牺牲了安全性),以获得去中心化和高性能,例如IOTA等。
性能对于一个区块链系统来说显然至关重要,每秒不到20笔交易的系统几乎做不了任何事情。例如去年cryptokitties火爆的时候造成以太坊严重拥堵,交易费用高昂。类似的情况在ICO 火爆的那段时间也经常发生。不解决性能问题,区块链从本质上是无法实现其改变世界的理想的。
然而,去中心化特性对区块链世界同样重要。完全失去去中心化特性的区块链系统将蜕变成一个高性能的中心化服务器,这将导致一个区块链应用落地的日常扎心问题:这和我使用古典互联网服务有什么区别?
所以如何在保持系统足够去中心化基础上提高性能成为了最近一年区块链技术升级的热点。目前主要有三大主流的技术方案:
其一是降低公网共识节点的非工作负载,利用PoS等出块人确定机制代替耗费大量资源和运算时间的PoW机制。这种方案至多将系统性能提高一个数量级,而且其安全性尚未得到验证。
其二是采用sharding的思路,即将系统分为多个区域,分别实现共识,然后再在全网实现共识。以太坊目前有将后续的共识思路结合sharding的计划。但这种方案技术难度较大,且不可避免地引入了系统的安全风险。
第三个方案就是layer2+layer1的双层架构方案。这种方案可以将系统性能提高几个数量级,甚至理论上可以无限提高系统的吞吐量和性能。其主要思路是将需要大量运算的高吞吐量交易放到局部共识的layer2上,一定时间或一定状态后再到layer1全球基础公链上进行“结算”。这样即能够享受layer2上高性能的优势,又能够利用到layer1上的高安全性和高去中心化的优势。
目前针对layer2的研究主要由各种layer2团队在完成。比如以Omisego(OMG)为代表的Plasma 系列方案,以 Celer 为代表的状态通道方案,以 Truebit为代表的链外计算方案,以Cosmos/Polkadot为代表的多链跨链方案等。
最近还有个趋势就是新的公链已经意识到必须通过layer1+layer2一起协作才能解决区块链技术不可能三角难题,因此从这些公链从开发的第一天起就开始同步进行两层的开发,Nervos 就是这类方案的代表。
接下来主要对 Nervos Network 做一个简单的介绍。Nervos Network 是 Nervos 基金会发起的区块链公链项目,投资人包括红杉和 Polychain 等国内外知名VC。
它的基础是一条以改进的 Nakamoto 共识(即BTC、ETH用的基于PoW的共识算法)和 Cell 模型为特征的全球公链 Nervos CKB。
我们认为全球共识必然即慢又昂贵,大量的应用需求应该折叠到高性能的局部共识中。因此,CKB会专门为 Layer 2 设计并优化,以便适应未来区块链网络的总体架构。预计下个月基金会将开源 CKB 的早期代码,明年一季度会上线测试链。
关于 CKB 我们可以后面专门找时间再介绍,今天重点介绍 Layer 2 的相关设计。
目前公链的 Layer2 的设计主要集中在状态通道、类Plasma子链、多链跨链等方案。CKB 对各种 Layer2 方案持完全开放的态度,目前与各类型的 Layer2 团队都已经接触和合作,以便在 CKB 设计的早期即对各类 Layer 2 进行针对性优化。
接下来简单介绍一下三种方案的优缺点。
高性能是 Layer 2的共性,就不单独提出了。状态通道具有高安全性、高隐私性的优点,缺点是参与方要求相对固定,业务类型不灵活,且参与方需要自行维护状态。
类 Plasma 子链的优点是高安全性,自由加入退出,但缺点是结构复杂,仅支持有限功能智能合约,且资产需要从主链进出,目前还没有大规模商用的案例。
多链跨链方案的优点是结构简单,支持完整智能合约,支持侧链部署资产和状态合约,缺点则是主链仅负责侧链的资产和状态交互,但无法保证其安全性。
就目前来说,状态通道业务场景相对受限,Plasma 尚在早期研究阶段,多链跨链方案是较容易落地的。
Nervos AppChain 是Nervos 官方推出的一套完全免费开源的多链跨链方案(在 CKB 正式上线之前仅包含多链部分),它包括区块链内核 CITA,区块链浏览器,区块链数据缓存服务,移动端多链钱包 ,浏览器钱包,全平台SDK以及完整的开发和生态组件。
其中 CITA 是秘猿科技一直在开发和维护的开源区块链内核,它早期作为联盟链支撑了多项国家级区块链金融产品。
目前随着经济模型、治理模型和权限开放的功能加入,CITA 目前已经可以自由配置成符合开放访问、有限共识的开放许可链以满足 Layer2 高性能的需求。
用大家更加熟悉的语言来讲,CKB 更像以太坊、比特币这种全球共识(概率出块)网络,CITA 更像 EOS 这种确定出块人的有限共识网络。其优点就是在牺牲部分去中心化特性的前提下大幅地提高系统性能。
Nervos AppChain 复用了CITA 的核心功能,增加了多链协议、激励机制和治理机制并完善了其周边生态组件。对于以太坊开发者来说,AppChain的上手是非常简单的。它采用以太坊的 EVM 虚拟机,支持主流合约语言,并与以太坊的签名算法和地址生成规则一致。
Nervos AppChain 与以太坊最大的区别有以下几点:
首先 CITA 采用改进的 PBFT 共识协议,具备单块确定性和高性能的特点,CITA 的实测交易性能可以达到15000tps。
其次,CITA 采用微服务架构,将共识、虚拟机计算、通讯、签名验签等拆分为微服务,并通过消息总线连接,这样当系统遇到性能瓶颈时可以将每个微服务分配给一台服务器,由多台服务器组成集群构成逻辑节点。
此外,CITA 还支持系统合约,可以将高复杂度的计算通过原生合约实现。下面聊聊 DApp 在 Nervos AppChain 上的呈现。
Nervos AppChain 从诞生开始即针对 DApp 场景进行设计。我们设计了完整的移动端钱包和DApp 环境,开发者只需要制作简单的 H5 页面即可引导用户访问 AppChain。
这是我们的 Neuron 手机钱包,目前只有安卓版本,iOS版本也在开发之中,预计下月会上线 testflight。Neuron 同时支持 NervosAppChain 和以太坊两种区块链,很快会支持 Nervos CKB 测试链。
Neuron 的特点是我们把用户在AppChain 上的资产和以太坊上的资产,包括 ERC20 和原生代币甚至 ERC721 资产都统一进行展示。用户对自己的资产存在哪条链上是无感的。这样就打破了Layer1 / 2 的界限。
Neuron 天然支持多链。运营方可以自己部署一条 AppChain 并用随机生成的 chainID 来进行标识(CKB 上线后可以在 CKB 上注册以防止 chainID冲突)。 DApp 开发者需要在自己的 H5 网页中放置一个多链描述文件告诉 Neuron 自己运行的链的情况,Neuron就会自动访问对应的链。
由于 AppChain 的签名算法和地址生成算法与以太坊一致,用户迁移成本非常小。运营方甚至可以在 AppChain 上为以太坊用户进行空投。对于用户来说,他打开 Neuron 看到的就是自己当前账户下的所有资产,无需区分在哪条链上,最大程度地复用了以太坊生态。
这两张图是 Neuron 上 DApp浏览器以及用户操作界面的展示。我们做了一个 DApp 推荐列表,包含以太坊和 Nervos AppChain 上的一些应用,透过web3.js 和 appchain.js 用户可以唤起钱包的 native 界面进行签名发送交易。目前我们已经有5、6款 AppChain 应用上线。下面展示一下 Microscope,这是一个 AppChain 多链区块链浏览器。
它支持常见的区块信息、交易信息、账户交易列表等信息查询。同时支持出块情况统计等信息查询。Microscope 是纯前端的项目,不包括后端服务器。但与我们推出的区块链数据服务组件可以无缝组合,大幅提高性能并提供账户交易历史等功能。
值得提出的是,Microscope 也是自设计伊始即支持【多链架构】的。Microscope 的链信息切换页面中允许用户输入不同的链地址,可以一键切换不同的链进行访问。
关于链上资金来源,我们提供一个开源的产品叫 ether-bridge,用来将以太币(或以太坊上的 ERC20 代币)映射到 AppChain 上,并可由用户自主提现。
具体来说就是用户在以太坊上将以太币(或其他 ERC20 代币)转账到某个运营方控制的地址上,后台程序会自动在 AppChain 上创生出1:1 的代币。反向操作则是用户在 AppChain上锁定这种代币,后台程序则会自动在以太坊上将对应的以太币(或其他ERC20 代币)转账给用户。Ether-bridge 可以解决开发者对新链不易实现收益的担忧。
有了以上的基础设施,一个区块链应用就可以放心地将它的业务逻辑完全推到 Layer2 侧链上,通过ether-bridge 方式将以太坊上的资产与 侧链桥接,实现价值转移,同时在侧链上完成业务流程。
问答环节:
Q1:现在的layer2技术方案全球范围内应该有10家以上在做,从技术层面开发者层面,nervos如何去吸引更多的开发者使用AppChain?
A1:首先,AppChain 只是我们针对部分需求提出的一个 Layer2 产品,很多一方面是希望与 CKB 共同演进,理解 Layer2 的需求。并不是对其他 Layer2 的竞争。AppChain 是三种主流的 Layer2 方案的一种,不同的场合适用于不同的方案,我们这次以太坊 DevCon 主办了一个 Layer2 的 大聚会,邀请十几家 Layer2 协议公司出席,共同探讨如何为他们提供更好用的 Layer1。所以我们不会跟他们做市场份额的竞争,然后认真理解用户需求,做好自己的产品。
Q2:既然CITA作为AppChain的一部分属于牺牲了一部分区中心化获得了性能上的提升,那么为什么说nervosnetwork解决了不可能三角问题?
A2:layer1 选择了去中心化+安全;layer2 选择了性能+安全,如果我们能够设计一个足够好的机制(通常是激励/惩罚机制),让 layer2 和Layer1 的优势能够结合,那么我们就可以构造出一个相对完美的系统。这里需要设计的就是跨链协议。这也是我们在CKB 开发同时就需要与 layer2 广泛沟通的原因:如何设计一个高效、合理的跨链方案,能够实现我们的目标。
本文根据「火星财经创始学习群」嘉宾分享内容整理,不代表火星财经立场。转载须在文章标题后注明:“文章来源:火星财经(ID:hxcj24h)”。