火币区块链产业专题报告区块链技术可扩展方案分层模型.docx

上传人:b****5 文档编号:5723881 上传时间:2022-12-31 格式:DOCX 页数:22 大小:341.64KB
下载 相关 举报
火币区块链产业专题报告区块链技术可扩展方案分层模型.docx_第1页
第1页 / 共22页
火币区块链产业专题报告区块链技术可扩展方案分层模型.docx_第2页
第2页 / 共22页
火币区块链产业专题报告区块链技术可扩展方案分层模型.docx_第3页
第3页 / 共22页
火币区块链产业专题报告区块链技术可扩展方案分层模型.docx_第4页
第4页 / 共22页
火币区块链产业专题报告区块链技术可扩展方案分层模型.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

火币区块链产业专题报告区块链技术可扩展方案分层模型.docx

《火币区块链产业专题报告区块链技术可扩展方案分层模型.docx》由会员分享,可在线阅读,更多相关《火币区块链产业专题报告区块链技术可扩展方案分层模型.docx(22页珍藏版)》请在冰豆网上搜索。

火币区块链产业专题报告区块链技术可扩展方案分层模型.docx

火币区块链产业专题报告区块链技术可扩展方案分层模型

火币区块链产业专题报告

——区块链技术可扩展方案分层模型

摘要:

本报告通过对27个典型区块链项目分析,借鉴计算机网络分层管理、各层标准化设计的思想,将区块链与传统互联网OSI模型结合,建立区块链技术可扩展方案分层模型三个一级层级:

Layer0层数据传输层,Layer1层On-Chain公链自身(底层账本)层和Layer2层Off-Chain扩展性(应用扩展)层。

在一级层级的基础上,结合区块链架构又可以进一步分解成七个二级层级来详细研究。

Layer0层数据传输层与传统OSI七层模型对应,优化区块链与传统网络的结合问题。

区块链是整个互联网协议层中的最上层,本身还是要依赖于底层的协议为它工作,虽然在比特币P2P网络设计的时候已经考虑了节点之间的发现、节点连接的握手协议、节点间地址广播和数据通信等,鉴于已经有部分项目开始探索P2P网络与传统OSI模型的结合,甚至将改进延伸到数据链路层,本报告倾向将P2P网络和传播机制并入到Layer0层和传统OSI模型一起作为一类可扩展方案进行研究。

Layer1层解决底层账本问题,主要负责安全,妥协性能,注重于记账功能。

结合区块链架构,Layer1层可以分解成四个二级层级,从网络层的验证机制上使用诸如分片技术去改进,从数据层的数据区块使用诸如隔离见证和链式结构上使用DAG等技术去改进,从共识层的共识机制上去改进;

Layer2层解决广义应用问题,主要负责性能,妥协去中心化,注重于计算功能。

结合区块链架构,Layer2层可以有两个二级层级,从跨链、状态通道等多链并行、链上链下结合甚至是中心化的方式来满足性能需求,借助Layer1层来保证安全。

通过阅读本研究报告,读者可以充分了解到当前区块链技术发展趋势,尤其是可扩展方案的基本原理、思考方向和主要技术,并结合对应的项目案例加深理解,提升体系分析、辨别项目的能力。

区块链技术的本质是一个服务于现实场景的底层账本,不可盲目万能化,Layer1层就是作为这个底层账本的主要载体充分服务于Layer2层,根基于更适合的Layer0层。

第一章 当前区块链技术主要瓶颈

1.1 区块链技术发展概述

2009年1月,比特币网络正式运行,比特币的成名造就了区块链技术。

如今,从区块链技术的发展上看,普遍公认的主要有两个阶段:

一是以比特币(BTC),莱特币(LTC)等为代表的作为支付货币的第一代区块链;

在第一代的基础上,第二代区块链的发展其实有几个方向:

具备图灵完备的智能合约功能是大家说的最多的一个方向,典型代表有以太坊(ETH)和柚子(EOS)等;隐私加密保护相对于第一代区块链也是一个很重要的改进,典型代表有环签名技术的门罗币(XMR)和零知识证明的大零币(ZEC)等;除此之外,一个区别传统区块链概念的有向无环图DAG也是一个重大的改进方向,典型代表如IOTA等。

而第三代区块链目前并没有普遍的共识,这也是当前区块链发展的一个迷茫期,大家都在摸索中,有将DAG和跨链技术作为第三代的,也有将Layer理论(后文将具体介绍)作为第三代发展方向的。

其中,如果将DAG作为并行于狭义区块链(注:

广义区块链技术是包含DAG技术的)的一种技术来看时,我们也能做出另一种类比:

第一代DAG项目和第一代狭义区块链项目都以支付货币功能作为第一代,当DAG系列出现支持智能合约的突破后,便可以类比于第二代狭义区块链的阶段。

区块链技术发展阶段可以用图1来表示:

图1区块链技术发展阶段

1.2 区块链的三元悖论

从比特币问世,区块链行业的发展也有10年了,之所以说到当前处于区块链发展的一个迷茫期,与区块链技术突破和落地应用紧密相关。

在技术上,区块链的三元悖论是最基本的法则:

区块链系统最多能在去中心化、安全性、可扩展性三属性中取其二;换句话说,区块链系统在去中心化、安全性、可扩展性三属性必须有所取舍,划分出优先级,或者达到动态最优。

图2区块链系统三元悖论

1.3 当前区块链技术主要瓶颈

理解了区块链的三元悖论,就能理解为什么大家一直说区块链公链项目不能满足商业需求的论述了。

当前区块链技术主要瓶颈就在于公链项目的可扩展性有限,而可扩展性最直接的表征一般采用TPS(TransactionsPerSecond)来间接描述。

TPS是一个有成熟定义的计算机术语,代表了系统每秒钟能够处理的业务数量,是衡量一个系统吞吐量的核心指标。

简单地说,TPS越高,这个系统的事务处理能力越强,越不容易造成网络拥堵,在高并发的业务领域和商业级应用场景中有很大的优势。

TPS越低,意味着系统每秒能够处理的事务数量越低,如果是在一个支付系统中,交易速度会越慢,对应的交易成本也会越高。

由于TPS是一个量化指标,所以其计算公式是确定的,即:

TPS=系统并发数/平均响应时间

其中系统并发数指系统同时处理事务的最大数量,平均响应时间为系统处理一个事务平均花费的时间,所以不论是区块链结构还是传统结构,系统的TPS都由系统的并发数和平均响应时间决定。

在区块链中,TPS可以理解成每秒钟处理的交易数。

众所周知,BTC平均每10分钟出一个块,每个块大小1MB,平均每笔交易的大小为600字节,那么每个块平均能够处理1600笔交易,即TPS=1600/(10*60)=2.67,即使是高峰数据统计,比特币的TPS也是个位数的,很多资料会以5~7TPS做为BTC的TPS值。

图3BTC每个块的平均交易数

而ETH目前仍然是POW的挖矿方式,所以处于20~30TPS区间,即不到百位TPS档位。

热门的EOS一直以并行百万级宣传,主网上线后,研究员们搭载的服务器测试结果并不足1000,随着DPOS的正常运作,最新资料显示已经达到3000+,在不考虑并行的情况下,相对中心方式的EOS最终TPS应该也是在千位档,而并行实现百万级的概念在看完本报告后相信大家会有一个新的见解。

理论上,在相对同等状态下,ETHPOS+sharding应该和EOS的DPOS+LMAX同处于千位档。

看完区块链项目的数据,我们对比一下Visa的数据:

Visa平均处理2000TPS,每日平均峰值可以达到4000TPS,理论上最高能够支持5.6万TPS;而Paypal全年处理490万笔交易,性能可达10万TPS;淘宝2017年双十一交易创峰值32.5万TPS,支付峰值25.6万TPS。

数据有效日期为2018年7月

在传统集中式系统中,客户端和服务器端的角色是分离的,即用户所在的客户端负责发起请求,然后中心服务器负责接收、验证、处理等一系列工作,整个系统的数据储存和记录也都由中心服务器负责。

所以在传统的集中式系统中,事务处理流程很简单,由客户端发出请求,由服务器处理后更新数据库,即可返回客户端,是一种集中式数据库系统。

图4传统集中式系统单个事务请求的确认流程

因此在传统的集中式系统中,不论是系统的并发量还是事务的平均处理速度都和中心服务器的性能有着直接的关系。

中心服务器性能越强,内存越大,数据库访问速度越快,整个系统的TPS就会越高。

此外,传输过程中带宽的增大,客户端和服务器端物理距离的减少也可以使得系统平均响应时间减少,从而增大TPS。

而在区块链分布式系统中没有一个中心服务器来处理事务,每个节点都是一个中心,所以就必须要解决数据分布式存储的公平性和一致性问题。

所谓公平性,就是确保每个节点都能拥有记账的权利,而不会出现某些节点垄断记账。

所谓一致性,就是每个节点的数据账本保持同步更新,这就要求每一条数据都需要经过多个节点甚至全网节点的验证和确认。

图5区块链的分布式

概括地说,在区块链分布式系统中,一笔交易从发出请求到确认需要经历以下步骤:

1)由节点发出交易请求,并且广播至整个网络;

2)其他节点接收交易请求,并且验证,如果验证通过,则放入待记录交易列表(交易池);

3)各个节点争抢记账权(即抢夺新的区块),成功获得记账权的节点将待记录的交易请求记入新的区块中,然后将区块广播至整个网络;

4)网络中其他节点接收区块,并且验证,如果验证通过,则该节点确认区块的合理性,将该区块记录自己的数据库;

5)当有超过一定数量的节点都记录了该区块,表明整个区块链系统认可了,此时最初的交易请求才算被确认。

在区块链这种分布式系统中,一个事务的记账权首先需要各个节点基于共识机制进行争抢,这就需要消耗大量时间。

其次,一笔事务还需要经过多个甚至全部节点的反复验证和确认才能被写入数据库,这大大减慢了事务的处理速度。

如果某个节点的响应速度很慢,整个系统的处理速度都会被拉低。

而在传统集中式系统中,事务永远由中心服务器处理,也不需要多个节点的反复验证和确认,所以区块链的TPS相较于传统集中式系统的TPS普遍要低,并且我们无法单纯用强化中心服务器性能的方式来提升整个区块链的TPS。

同时,前文也提到淘宝双十一TPS是有两个数值的,一个是交易创建峰值,一个是支付峰值,在区块链中,支付峰值才是确认的过程,会显得更加重要和实际,严格的讲,区块链TPS的评估应该参考每秒确认交易数量CTPS(Confirmed TransactionsPerSecond)来描述一个系统的真实性能,不过鉴于公开资料并不严格区分TPS的细分定义,也不属于本报告的重点,所以本报告也只采用TPS来整体描述,仅作对比参考之用。

由此可见,即使中心化的系统由于硬件等各种问题的制约,TPS的峰值不超过10万级别,而正常日平均TPS也不超过1万级别(参考Visa),作为一个底层分布式账本的区块链项目一味追求高TPS或者是宣传极高TPS就值得大家仔细思考一下了。

考虑到日常应用的需求,区块链主流公链项目BTC、ETH以当前最高1000TPS的目标也落地困难,于是便产生了可扩展性的讨论。

至于众多号称TPS破万,甚至百万的项目,在阅读完本报告后,相信大家会有个更清晰的认识和理解。

第二章 区块链技术可扩展方案分层模型

2.1 区块链技术可扩展方案分层模型综述

要系统的考虑区块链技术可扩展方案,首先必须理解区块链技术框架,如图6所示:

图6典型区块链架构

当前主流的区块链架构包含六个层级:

网络层、数据层、共识层、激励层、合约层和应用层。

图中将数据层和网络层的位置进行了对调,主要用途将在下一节中详述。

网络层:

区块链网络本质是一个P2P(Peer-to-peer点对点)的网络,网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行,可以无需中间环节和服务器的介入。

每一个节点既接收信息,也产生信息,节点之间通过维护一个共同的区块链来同步信息,当一个节点创造出新的区块后便以广播的形式通知其他节点,其他节点收到信息后对该区块进行验证,并在该区块的基础上去创建新的区块,从而达到全网共同维护一个底层账本的作用。

所以网络层会涉及到P2P网络,传播机制,验证机制等的设计,显而易见,这些设计都能影响到区块信息的确认速度,网络层可以作为区块链技术可扩展方案中的一个研究方向;

数据层:

区块链的底层数据是一个区块+链表的数据结构,它包括数据区块、链式结构、时间戳、哈希函数、Merkle树、非对称加密等设计。

其中数据区块、链式结构都可作为区块链技术可扩展方案对数据层研究时的改进方向。

共识层:

它是让高度分散的节点对区块数据的有效性达到快速共识的基础,主要的共识机制有POW(ProofOfWork工作量证明机制),POS(ProofofStake权益证明机制),DPOS(DelegatedProofofStake委托权益证明机制)和PBFT(PracticalByzantineFaultTolerance实用拜占庭容错)等,它们一直是区块链技术可扩展方案中的重头戏。

激励层:

它是大家常说的挖矿机制,用来设计一定的经济激励模型,鼓励节点来参与区块链的安全验证工作,包括发行机制,分配机制的设计等。

这个层级的改进貌似与区块链可扩展并无直接联系。

合约层:

主要是指各种脚本代码、算法机制以及智能合约等。

第一代区块链严格讲这一层是缺失的,所以它们只能进行交易,而无法用于其他的领域或是进行其他的逻辑处理,合约层的出现,使得在其他领域使用区块链成为了现实,以太坊中这部分包括了EVM(以太坊虚拟机)和智能合约两部分。

这个层级的改进貌似给区块链可扩展提供了潜在的新方向,但结构上来看貌似并无直接联系。

应用层:

它是区块链的展示层,包括各种应用场景和案例。

如以太坊使用的是truffle和web3-js.区块链的应用层可以是移动端,web端,或是是融合进现有的服务器,把当前的业务服务器当成应用层。

这个层级的改进貌似也给区块链可扩展提供了潜在的新方向,但结构上来看貌似并无直接联系。

由此可见,单从结构上分析,区块链技术可扩展方案可以直接从网络层(P2P网络、传播机制和验证机制)、数据层(数据区块和链式结构)以及共识层进行改进达到优化。

以太坊社区在区块链可扩展性上曾提出过Layer分层改进的概念:

Layer1层改进和Layer2层改进。

Layer1层改进是指通过对某条公链本身的改进来提升它的可扩展性,即On-Chain链上改进;Layer2层改进是指不影响该公链本身,通过其他方式来实现可扩展性的提升,即Off-Chain链下改进(此处链下的含义仅仅指脱离该公链),如后文将会介绍的侧链、跨链和状态通道等。

在这个理解的基础上,我们借鉴计算机网络分层管理、各层标准化设计的思想,将区块链与传统互联网OSI模型结合,建立区块链技术可扩展方案分层模型三个一级层级:

Layer0层数据传输层,Layer1层On-Chain公链自身(底层账本)层和Layer2层Off-Chain扩展性(应用扩展)层。

在一级层级的基础上,结合区块链架构又可以进一步分解成七个二级层级来详细研究,具体如图7的划分:

图7区块链分层研究构架图

2.2 Layer 0层数据传输层

要理解Layer0层,先得回顾一下开放系统互连参考模型OSI七层模型(OpenSystemInterconnect),它是国际标准组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。

它从低到高分别是:

物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

在实际使用中,由于理论研究和现实落地的时差,广泛使用的是TCP/IP协议,不过两者在本质上是可以一一对应的。

图8OSI模型、TCP/IP协议、区块链分层模型对应关系

大部分的区块链项目所使用的底层网络协议就是TCP/IP协议,少部分支持UDP协议。

从协议层角度看,区块链是基于TCP/IP协议的,也就是在传输层之上,属于最上面的应用层。

从这个角度来看,区块链本身只是整个互联网协议层中的最上层,它本身还是要依赖于底层的协议为它工作。

对应的接口就是区块链的网络层,这也是本报告将数据层和网络层位置对换的主要原因,虽然在比特币P2P网络设计的时候已经考虑了节点之间的发现、节点连接的握手协议、节点间地址广播和数据通信等,鉴于已经有部分项目开始探索P2P网络与传统OSI模型的结合,甚至将改进延伸到数据链路层,本报告倾向将P2P网络和传播机制并入到Layer0层和传统OSI模型一起作为一层进行可扩展方案研究。

这样,Layer 0层数据传输层改进的主要思路就是通过加快全网节点之间的传播速度来提升全网的确认共识,改进主要体现在上图中标红的传输层(TCP/IP)和网络层(IP)上,且不论这样的效果究竟有多大,从逻辑上这样的一个思路是具有合理性的。

具体改进可以有:

P2P网络拓扑结构改进,节点之间的快速发现,节点之间的快速广播和通信等。

2.3 Layer 1层On-Chain公链自身改进

Layer1层On-Chain公链自身改进的主要思路的出发点是将区块链技术底层账本和上层应用分离,底层账本的重心放在安全性和去中心化上,在性能上有所取舍。

只是将需要共识确权的数据上链,从而降低对TPS的需求,从目前技术发展来看,可能千位级别(1000~3000)TPS即可满足。

结合前文介绍的区块链的架构可以看出,能够提升的地方有共识层的机制改进和数据层的数据区块大小调整、链式结构的优化以及网络层的验证机制改进等方法。

所以,Layer1层改进的思路是做好一条底层账本公链,将其他的事情交由Layer 2 层来互补处理。

这里对于隐私加密技术的需求对Layer1层会是一个不错的附加属性,但不属于可扩展方案讨论范畴,在没有很好的处理方案前,在Layer2层考虑也是个能接受的选择。

图9Layer1层三元优先级

2.4 Layer 2层 Off-Chain扩展性改进

Layer2层Off-Chain扩展性改进是基于区块链的底层账本技术之上的应用型扩展,可以是基于区块链技术的应用,也可以是中心化的应用结合,它的重心放在性能和安全上,对去中心化有所取舍。

最终关键数据传输给Layer1层上链,本身利用高性能处理大量数据,达到现实世界对性能的需求。

该类型的改进有跨链——基于区块链技术的多链生态扩展;状态通道——链下数据处理来提升性能;Plasma通过一系列的智能合约,来构建多种应用场景达到多链并行的结果;Truebit一种帮助以太坊在链下进行繁重或者复杂运算的技术等。

所以,Layer 2层作为Layer1层的互补来解决与现实世界的需求,并将必要的数据上链到Layer1层。

图10Layer2层三元优先级

综上,我们可以将区块链技术可扩展方案分层模型以及当前比较典型的研究项目整理成下面一张思维导图,并在下一节结合具体项目来阐述。

图11区块链技术可扩展方案分层模型下典型项目思维导图

第三章 Layer0层数据传输层可扩展方案

3.1 中继网络(Relay Network)

比特币设计的P2P网络是个节点随机连接的网络,交易和块的信息传输都是通过这些节点,直到全网所有的节点都收到最新的交易和块信息。

原本上,这个设计在不考虑性能需求时是非常完美的,但是随着比特币的关注度和使用性的提高,2014年BitcoinCore贡献者MattCorallo提出了BitcoinRelayNetwork的创意,旨在解决两个问题:

优化比特币P2P网络数据和块传输速度,提升比特币整个网络的安全性,降低攻击风险;

减少整个比特币网络的延时。

当网络存在延时时,矿工往往需要10-15秒的时间才能收到新挖出来的区块信息,以10秒为例,10分钟挖出一个块,相当于丢失了1.6%潜在时间收益,在挖矿规模化时这也是不能接受的。

尤其大的矿场还可以利用自己的优势搭建私有网络,利用挖矿和传播的优势完全碾压小矿场。

BitcoinRelayNetwork的本质是建立网络对话中枢(hub-and-spoke),它通过8个位于纽约,西雅图,阿姆斯特丹,北京,东京,新加坡,香港和俄罗斯的新西伯利亚的服务器枢纽构成的节点网络来组成区块数据传播铁路,矿工们通过这个铁路快速的传播着自己的共识,然后能够立刻开始挖新的区块。

但是,这个提议的最大问题是从某种意义上讲,Corallo控制着这个网络,尤其是对网络的维护,不过这只是一个更快的选择,传统的P2P网络传播方式仍然是可以是使用的。

目前该系统已被描述为比特币的血管或神经系统——一个在整个身体传递信息的关键组成部分。

2016年,Corallo在BitcoinRelayNetwork的基础上又提出快速互联网比特币传播引擎(FastInternetBitcoinRelayEngine,FIBRE)的改进,FIBER是一种基于UDP(UserDatagramProtocol)的中继网络,可以解决TCP模式下小数据的丢包问题,提升了去中心化性,同时实现了压缩数据,以进一步减少传输的数据量和网络延迟,改善信息传播的速度,矿工可以减少孤儿块(orphanblock)的数量,或者被网络拒绝的交易区块数量。

同样,康奈尔大学的SoumyaBasu,IttayEyal和EminGünSirer研究了另一个中继网络FalconRelayNetwork。

Falcon使用“直通路由(cut-throughrouting)”而不是“存储转发”来减少延迟,接收到块时仅仅初步验证块的头部信息就传播出去,而不是等待直到接收到完整的块。

当然,这种处理方案有个显著的问题就是如不诚信的矿工可以传播无效的数据浪费竞争对手的资源,为了解决这个问题,康奈尔大学的这个团队得自己扮演把关者的角色,但正常情况下,它提升的速度效率会更高。

3.2 OSI模型改进

FIBRE和Falcon是目前在比特币中继网络(RelayNetwork)上落地并显著改善的代表,在它们的基础上,又有许多新的项目开始了自己的探索,这些探索将视角进一步深化到传统互联网的架构上,试图从OSI模型去进行优化,如BlockchainDistributionNetwork(BDN),该思路灵感来自于ContentDistributionNetwork(CDN),重点在于对于OSI第四层传输层的改进,也有试图将整个OSI模型与区块链结合改进的项目,思路都很开放,但唯有落地才能解决问题,这里仅挑选个别项目作简要的介绍用于直观了解Layer0层的设计思路。

3.3 BlockchainDistributionNetwork(BDN)

BDN是BLOXROUTELABS首先提出来的概念,团队中有两位创始人就是Falcon的发起人。

项目的主旨思想是通过自己提供的BDN网络来提升节点之间通讯的速度,也是从提供专属网络的角度来改善节点同步情况,各节点通过BLOXROUTE提供的对等节点(PeerNode)接入BDN网络,对等节点作为区块链应用程序和BDN的中间网关,它会针对不同的区块链节点制定专属的接口协议,更具体的技术细节尤其是BDN网络的设计思路批露较少,核心可以用白皮书中的系统架构图表示:

图12BLOXROUTE架构图

3.4 其他

Marconi协议是一个试图增强乃至取代现有网络基础设施的项目,体系上包括网络协议、区块链协议、去中心化网络管理等,采用向下延伸覆盖至以太网的设计,并且支持去中心化网络堆栈,在OSI模型第二层建立的安全通信管道提供数据包级加密。

这是一个试图在以太网级别上去构建去中心化的点对点的网络协议,最终是否能够落地挑战也是非常大的,白皮书中展示了其OSI模型内的Marconi通道架构。

图13OSI模型内的Marconi管道

TodaNetwork也是一个定位新一代区块链版“TCP/IP”协议的项目,愿景未来任何区块链项目都可以在TODA上运行,目前官网虽然没有提供白皮书,但却有十几个区块链项目使用了它的技术。

以上案例,仅仅用来表明在Layer0上进行区块链可扩展研究的一些思路和项目的探索。

第四章 Layer1层On-Chain层可扩展方案

4.1 网络层改进——分片(Sharding)

Layer1层上网络层是连接Layer0层OSI网络层的,由上节不难发现,Layer0层的改进有些是贯穿Layer1层网络层的——整体改进;有些是通过增加一道协议来支持Layer1层网络层,重点改进Layer0层。

除此之外,针对Layer1层的改进还可以从验证机制入手,典型代表就是分片(Sharding)技术。

分片其实是一种传统数据库的技术,它以前用作将大型数据库分成更小、更快、更容易管理的部分,以此增加数据库的操作效率。

而在区块链中,分片技术的运用会更为繁琐,不过主要思想都是通过缩小验证规模和大量事务并行处理来达到性能提升的效果,主要难点在于各分片之间数据的一致性和分片内部的防作恶,由于验证规模的大大缩小,所以B

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1