巴比特加速器技术公开课 | Layer1如何拥抱Layer2

巴比特加速器技术公开课 | Layer1如何拥抱Layer2

8BTC_Boost 发布在 链圈子 14781

巴比特加速器推出的全球线上区块链技术深度对话栏目Geekhub Global Online,定期邀请世界各地的资深技术大咖连线对话,旨在为技术社区输送前沿高质量的区块链技术内容;同时Geekhub技术社区成员也可以参与直播互动,共同探讨区块链的技术发展与未来。

Geekhub Global Online-Layer 2扩容周第三日的线上活动有幸邀请到了Nervos基金会联合创始人吕国宁Daniel为大家做《拥抱Layer 2》为主题的技术公开课。

Nervos存在的目的是作为下一代加密经济系统的基础设施,透过分层架构,打破区块链“不可能的三角”,底层作为信任引擎,支撑上层的高性能去中心化应用。Nervos 成员来自以太坊分片核心开发团队,imtoken 前 CTO,云币前 CTO,Ethfans 发起人,星火矿池发起人等等一票对技术执着的开源界大牛。

Nervos团队对以太坊的理解可以说是非常深刻的,与以太坊社区、以太坊钱包、Casper等都有紧密的联系。同时也对区块链有很多本质思考:

为什么应用需要先把业务逻辑改造成去中心化模式,并通过智能合约实现,并且开发者需要掌握一门叫做 Solidity 的编程语言,才能实现应用上链?为什么需要全球所有的节点全部执行相同的计算并交叉验证,通过得到相同的结果,这样才能消除智能合约执行的不确定性,区块链的本质是以最低成本,高效建立全局的信任。但是随着共识规模的扩大,建立信任的交易成本,也就是说矿工费越来越贵,难道没有更好的建立信任的机制?或者对用户更友好的信任成本支付模型?为什么所有希望实现下一代区块链基础设施的团队,大多选择了单点突破这个方向,比如更高效的共识算法,或者更好的分片机制作为切入点,在不牺牲安全性和去中心化的前提下,尽量将性能做到最优,而不去考虑从整体架构上实现整体突破?为什么现有的第二层扩展方案,包括 state channel,Plasma,Truebit,Teechan 等,不论从理论研究到工程实现,都慢慢趋向成熟,无论从工程,还是可靠性方面,都要比扩展主链这个方向耗费的成本更低,耗时更少,但是依然很难得到在任何一条主链上的更好支持?

不管是layer1,还是layer2,都有各自的优势和瓶颈。那么Nervos是如何优化并设计这个基础设施的架构的呢?

一、Nervos CKB

1. 不可能三角

不可能三角是区块链主网公链设计中,去中心化、安全和性能三者不可兼得的问题。早期围绕以太坊的智能合约有很多优秀的创新应用,诞生出很多优秀的去中心化游戏、DAPP等,这些应用让我们看到区块链潜在的一个非常繁荣的生态和未来,在这当中,核心的不是用区块链去支撑这些应用,而是我们想通过各种方式去解决问题,区块链只是其中一种方式。在我们使用区块链来解决问题时,我们发现,这一代区块链开发当中遇到了很多性能瓶颈问题,不可能三角从设计层面上决定了不可能在一条主网上达到三角。

那么我们为什么需要区块链?

我们通过区块链解决问题而不是分布式数据库来解决繁荣生态的问题是因为我们需要所有节点达成共识、为所有节点提供安全性、在信任的环境保证DAPP共识的效率,分布式数据库不使用加密学、没有共识算法,不需要保证网络节点的安全性,而区块链需要考虑这些问题。

1

我们在区块链中引入共识系统就不可能同时将系统效率变得很快,看中安全性需要增加网络节点,并使他们达成共识,因为越多节点意味着越安全,但同时意为着节点同步共识的效率越低。

假设有5000个节点,不考虑额外因素,节点向外发送最新的同步消息,达成全局共识至少需要n的2次方条消息,这阻碍了共识高效快速的达成。

2

因此区块链需要做最有价值的事,它的特点是慢、贵和安全

那么如何将这种共识价值放大

eg:关键帧动画

关键帧动画核心是不停的定义关键帧,计算机会将变化自动完成并生成动画,动画中最有价值的也是关键帧,Layer1提供最关键的性能、安全性,把这个价值在Layer2放大,用这个思路去考虑Nervos 的CKB设计、底层安全(信任)和上层吞吐量(性能)

3

 

二、Layer1是如何拥抱Layer2的

Layer1设计更好支持layer2的三个目标

1. store of assets(key state)

作为Layer1关键的一点是用户可以把资产安全地放到Layer1上,之后Layer1存在的资产就是一种状态(关键状态)

2. crypto court

用户在Layer 1上存储资产后,引入layer 2 做计算,用户不需要频繁和layer 1做交互,layer2不需要频繁与layer 1交互,用户遇到分歧通过密码学的方式提交到layer1, 自动仲裁(key action)

3. 功能特点(layer2 friendly)

设计layer1的时候充分考虑layer2需求,在工程学上方便layer2和layer1设计交互协议,layer1设计上从工程上尽可能降低layer2介入门槛和操作成本

Nervos设计目标:CKB—A Minimal Layer1

即最小化layer1方案支持layer2

 

三、Layer2 的基本模式、对layer1的需求,如何优化

区块链底层是区块之间通过哈希矩阵串起来,核心是交易设计,交易有两种模式:

1.基于State Transaction

在交易当中传递的是交易状态,状态验证

2.基于Event Transaction

关注记录每一个交易当中包含的状态的行为,每个节点参与计算,计算出最后的状态

这两种设计方式本身并无优劣之分,适用场景不同

比特币是基于State Transaction、以太坊是基于Event Transaction

Nervos CKB的设计是为了更好的拥抱layer2

 

从真正需求来考虑,分析世界上不同的layer2 ,他们需要被怎样的支持,现有的有三种主要的扩容方向:

1. 基于状态通道

2. 链外计算plasma

3. 链外计算验证trubit(进展缓慢,应用场景较窄)

 

状态通道

本质是用户在layer1主链上寄存一笔资产,锁定,创建通道,和其他用户做大规模交易转账,双方觉得没有额外的交易就敲定回主链进行清算。比方说在主链抵押100元,给每位同事发1元,发了100次,之后同事在主链上发起清算,这时主链上只能看到两次交易,链下的交易是不可见的。

 

4

 

Plasma

本质是智能合约的计算的扩容,通过抵押锁定资产,并迁移到plasma链上,在plasma链上扩展计算,用户完成比较复杂的交易后,任何时候想退出这条链,发起operation操作,要求plasma子链上把用户资产锁定,把锁定状态写回主链。

5

 

研究后我们发现,不论是state channel或是plasma,关键技术都是状态压缩(state compressed),要把在子链上的大量交易变成某种状态的变化,压缩成开始和结束状态,最后在放到layer1上去。state channel或是plasma遇到争议的时候可以把状态打包,提交密码学的证据,通过证据发回到layer1上处理争议,密码学的证据也是围绕状态的,从这两点来看显而易见,layer1的设计必须以state transaction为主,而不是event transaction。

6

 

如果我们使用的是state transaction,我们需要的是off-chain的计算和on-chain的状态,如果是state transaction,state计算完全可以发生在链外,链上关注状态,链上不需要计算,对轻节点或是移动节点非常友好,on-chain state对移动设备和边缘设备非常好的优化。另外,如果在layer1上使用state transaction可以把状态的生成和状态的验证进行分离。使用state focus产生state状态和state验证的状态是在不同阶段,只有state验证阶段是在链上,分离对layer2方案设计师非常友好。

通过layer1、layer2设计,推导出layer2设计需求是state,需要在layer1上支持state transaction,得到on-chain state好处,让我们很容易实现状态生成和分离,让layer2的设计比较容易实现,每一步的决策引出下一步的好处,良性循环。

Nervos CKB验证,即cell模型:设计时考虑到state transaction的细节,CKB设计更像是Generalization of bitcoin。

 

四、 如何设计VM

Layer1的虚拟机设计,使用了RISC-V虚拟机实现小于50条的指令。RISC-V是CPU设计专家设计的架构指令集,得到google、Oracle等公司的支持,引入完整的RISC-V指令体系,兼容性非常好。使用RISC-V指令集好处是CPU设计的方法论很多问题都有成熟的方案可以做选择,非常容易对layer2试验计算验证功能。VM方案是layer1验证layer2计算很好的方案。使用RISC-V方案比较容易实现VM对layer2计算验证的设计。

 

7

并且使用第三方服务挂在到RISC-V虚拟机上,不需要增加额外加密指令集,简单高效。已经可以把Secp256加密的一次计算验证优化在30毫秒以内,生产环境可以有更高的性能。这个虚拟机能够对layer2在冲突的时候对layer1提交密码学证据,并针对证据做自动仲裁,提供了非常好的方案支持,简单而强大。

 

五、 CKB经济模型设计

8

CKB经济模型:在主网发行token,即CKB token,通过质押CKB TOKEN,换取Capacity,Capacity用以存储链上验证状态的代码,执行代码耗费空间。得到存储空间,意味着放弃CKB流动性、抵押CKB,而空间内容清零,将重新获得CKB。在这当中,抵押的越多,放弃的越多。那么为什么使用空间—经济而非计算量——经济的经济模型设计的原因是当区块链性能提升10000倍时,CPU和带宽都是瞬时的,一旦Capacity扩展性问题解决后,存储的持久性成本将匹配使用成本。同时一方面是因为Layer2是围绕state transaction,另一方面针对后区块链时代的设计考量。

 

总结一下公开课的几个要点:

1、Nervos CKB

2、layer1是如何拥抱layer2的

3、介绍layer1的设计,是为了解决目前layer2的问题

4、Layer2的基本模式、对layer1的需求,如何优化

5、如何设计VM、经济模型

 

社区提问选录:

1. 吕老师,对经济模型很感兴趣,能稍微讲一下 Nervos 经济模型是如何设计的?
Nervos经济模型设计核心是流动性质押模型,在使用网络时质押基础token换取存储空间,放弃流动性,意味着放弃流动性机会成本。整个layer1关注存储或持续成本而非瞬时成本,不是以CPU和带宽消耗计算成本。在以太坊或其他网络上,矿工费支付计算成本、瞬时成本,而没有人去支付持久成本,在区块链解决性能瓶颈后Capacity模型更加合理。
2. State focus的确很好,只做verification的确效率很高,但是不可能没有Tradeoff吧?那么请问下State focus的问题在哪里呢?
State focus和event focus从tradeoff角度看,关键是看需要什么

状态为中心:state transaction(不针对网络以链上计算和计算结果达成共识优化)

计算为中心,达成共识、交叉验证:event transaction(简单直接面向计算)

Layer2的核心是安全、资产,是围绕state的共识(计算不是重点)

因此是场景的需求而非tradeoff。

3. Layer1扩容和Layer2扩容的未来发展是怎样的呢?
在现阶段技术发展来看,围绕layer1扩容的sharding面临巨大的困难,在未来3-5年很难去落地,layer2的架构可实施来看比较1-2年会百花齐放,不同场景不同行业layer2解决方案,发展较快。
4. 吕老师认为,下一代区块链的形态会是怎样的呢?
因此底层想要加密的经济体,生态,生态中有各种各样的应用和服务,产生价值,区块链是生态的基础设施。现在的技术,下一代的生态发展是足够好的layer1+百花齐放的layer2。


回顾Geekhub Global Online—Layer2扩容周—巴比特加速器技术公开课,扫描下方二维码可以进入扩容系列课学习,也可以加入Geekhub Online社区进行探讨,文章、链接及下一期的直播链接均会第一时间发布在社区中。

加入Geekhub Online社区的方式

关注【巴比特加速器8BTCBoost】微信公众号,聊天框中回复【GGO】加入【Geekhub Online】社区

往期课程回顾:

1. 公开课

演讲者:Coogan Brennan(Consensys, Ethereum Foundation)

2. AMA

演讲者:John Adler(Consensys Plasma Researcher)

3. 公开课

演讲者:董沫(Celer Network创始人)

4. 公开课

演讲者:吕国宁(Nervos基金会联合创始人)

5. Panel

演讲者:Celer Network创始人董沫、Nervos基金会联合创始人吕国宁、闪电黄世亮、巴比特加速器联合创始人胡梦迪

课程二维码:

1513154080079

 

海报总览:

geekhub-02 2

文章标签: Geekhub Global Online
评论
登录 账号发表你的看法,还没有账号?立即免费 注册