【火币区块链产业专题报告】区块链技术可扩展方案分层模型.pdf
火币 区块链 产 业专题报告 区块链 技术 可扩展方案 分层模型 2018 年 8 月 22 日 摘要 本报告 通过对 27 个典型 区块链项目分析, 借鉴计算机网络分层管理、各层标准化设计的思想,将区块链与传统互联网 OSI 模型 结合 , 建立区块链 技术 可扩展方案 分层模型 三个一级层级 Layer 0 层数据传输层, Layer 1 层 On-Chain 公链自身(底层账本)层和 Layer 2 层 Off-Chain 扩展性(应用扩展)层 。 在一级层级的基础上,结合区块链架构又可以进一步分解成七个二级层级来详细研究。 Layer 0 层 数据传输层 与传统 OSI 七层模型对应 , 优化 区块链与传统网络的结合问题 。 区块链是整个互联网协议层中的最上层,本身还是要依赖于底层的协议为它工作 ,虽然在比特币 P2P 网络设计的时候已经考虑了节点之间的发现、节点连接的握手协议、节点间地址广播和数据通信等,鉴于已经有部分项目开始探索 P2P 网络与传统OSI 模型的结合,甚至将改进延伸到数据链路层,本报告倾向将 P2P网络和传播机制并入到 Layer 0 层和传统 OSI 模型一起作为一类可扩展方案进行研究。 Layer 1 层解决底层账本问题,主要负责安全,妥协性能,注重于记账功能 。结合区块链架构 , Layer 1 层可以分 解成四 个二级层级, 从网络层的验证机制上使用诸如分片技术去改进,从数据层的数据区块 使用诸如隔离见证 和链式结构上 使用 DAG 等技术去改进,从共识层的共识机制上去改进; Layer 2 层解决广义应用问题,主要负责性能,妥协去中心化,注 重于计算功能。 结合区块链架构, Layer 2 层可以有两个二级层级, 从跨链、状态通道等多链并行、链上链下结合甚至是中心化的方式来满足性能需求,借助 Layer 1 层来保证安全。 通过阅读本研究报告, 读者可以充分了解到当前区块链 技术发展趋势,尤其是 可扩展方案的基本原理、思考方向和主要技术,并结合对应的项目案例加深理解,提升体系分析 、 辨别项目的能力。 区块链技术的本质是一个服务于现实场景的底层账本,不可盲目万能化, Layer 1 层就是作为这个底层账本的主要载体充分服务 于Layer 2 层 ,根基于更适合的 Layer 0 层 。 相关报告 1.全球 区块链 数字 资产行业专题报告 -公链平台篇 2018 年 6月 2.火币区块链产 业专题报告 -游戏 篇 2018 年 7 月 3.火币区块链产 业专题报告 -钱包篇 2018 年 8 月 作者 袁煜明 刘洋 火币区块链应用研究院 产业专题报告 2 / 26 目录 第一章 当前区块链技术主要瓶颈 3 1.1 区块链技术发展概述 3 1.2 区块链的三元悖论 4 1.3 当前区块链技术主要瓶颈 4 第二章 区块链技术可扩展方案分层模型 8 2.1 区块链技术可 扩展方案分层模型综述 .8 2.2 Layer 0 层数据传输层 . 10 2.3 Layer 1 层 On-Chain 公链自身改进 10 2.4 Layer 2 层 Off-Chain 扩展性改进 . 11 第三章 Layer 0 层数据传输层可扩展方案 14 3.1 中继 网络( Relay Network) . 14 3.2 OSI 模型改进 14 3.3 Blockchain Distribution Network( BDN) . 15 3.4 其他 . 16 第四章 Layer 1 层 On-Chain 层可扩展方案 . 17 4.1 网络层改进 分片( Sharding) 17 4.2 数据层改进 . 18 4.3 增加数据区块大小 . 18 4.4 改进数据区块结构 隔离见证( SegWit) . 18 4.5 改进链式结构 DAG 18 4.6 共识层改进 . 19 第五章 Layer 2 层 Off-Chain 层可扩展方案 . 20 5.1 跨链 . 20 5.1.1 公证人机制 20 5.1.2 侧链 /中继 . 20 5.1.3 哈希锁定 . 21 5.1.4 分布式密钥 21 5.2 状态通道 21 5.2.1 闪电网络 . 22 5.2.2 雷电网络 . 22 5.3 其他 . 22 5.3.1TrueBit 22 5.3.2Plasma . 22 第六章 总结 . 24 火币区块链研究院 3 / 26 第一章 当前 区块链 技术主要瓶颈 1.1 区块链技术发展 概述 2009 年 1 月,比特币网络正式运行 , 比特币 的成名造就了 区块链技术 。 如今,从区块链技术的发展上看,普遍公认的主要 有 两个阶段 一是以比特币 ( BTC) ,莱特币 ( LTC)等 为代表的作为支付货币的第一代区块链; 在第一代的基础上 ,第二代区块链的发展其实有几个方向 具备图灵完备的 智能合约 功能 是大家说的最多的一个方向,典型代表有以太坊 ( ETH) 和 柚子( EOS)等 ;隐私加密保护相对 于 第一代区块链也是一个很重要的改进,典型代表有环签名技术的门罗币 ( XMR) 和零知识证明的大零币( ZEC)等;除此之外,一个区别传统区块链概念的有向无环图 DAG也 是一个重大的改进方向,典型代表如 IOTA 等。 而第三代区块链目前并没有 普遍的共识,这也是当前区块链发展的一个迷茫期,大家都在摸索中,有将 DAG 和 跨链 技术作为第三代的,也有将 Layer 理论(后文将具体介绍)作为第三代发展方向的。其中,如果将 DAG 作为并行于 狭义 区块链 (注广义区块链技术是包含 DAG 技术的) 的一种技术来看时,我们也能做出另一种类比第一代 DAG 项目和第一代 狭义 区块链项目都以支付货币功能作为第一代,当 DAG 系列出现支持智能合约的突破后,便可以类比于 第二代狭义区块链的阶段。 区块链技术发展 阶段 可以用 图 1 来表示 图 1 区块链技术发展阶段 产业专题报告 4 / 26 1.2 区块链的三元悖论 从比特币问世,区块链行业的发展也有 10 年了, 之所以说到当前处于区块链发展的一个迷茫期 ,与区块链技术突破和落地应用紧密相关。在技术上,区块链 的三元悖论 是最基本的 法则 区块链系统最多能在去中心化、安全性、可扩展性三属性中取其二;换句话说,区块链系统在去中心化、安全性、可扩展性三属性必须有所取舍,划分出优先级,或者达到动态最优。 图 2 区块链系统三元悖论 1.3 当前区块链技术主要瓶颈 理解了区块链的三元悖论,就能理解为什么大家一直说 区块链公链项目 不能 满足商业需求的 论述 了。 当前区块链技术主要瓶颈就在于 公链 项目的 可扩展性 有限,而可扩展性最直接的表征 一般采用 TPS( Transactions Per Second)来 间接 描述。 TPS 是一个有成熟定义的计算机术语,代表了 系统每秒钟能够处理的业务数量 ,是衡量一个系统吞吐量的核心指标。简单地说, TPS 越高,这个系统的事务处理能力越强,越不容易造成网络拥堵,在高并发的业务领域和商业级应用场景中有很大的优势。 TPS 越低,意味着系统每秒能够处理的事务数量越低,如果是在一个支付系统中,交易速度会越慢,对应的交易成本也会越高。由于 TPS 是一个量化指标,所以其计算公式是确定的,即 TPS 系统并发数 / 平均响应时间 其中系统并发数指系统同时处理事务的最大数量 ,平均响应时间为系统处理一个事务平均花费的时间,所以不论是区块链结构还是传统结构,系统的 TPS 都由系统的并发数和平均响应时间决定。 在区块链中, TPS 可以理解成每秒钟处理的交易数。众所周知, BTC 平均每 10 分钟出一个块,每个块大小 1MB,平均每笔交易的大小为 600 字节,那么每个块平均能够处理1600 笔交易,即 TPS1600/( 10*60) 2.67,即使是高峰数据统计,比特币的 TPS 也是个位数的,很多资料会以 5~ 7TPS 做为 BTC 的 TPS 值 。 火币区块链研究院 5 / 26 图 3 BTC 每个块的平均交易数 1 而 ETH 目前仍然是 POW 的挖矿方式,所以处于 20~ 30TPS 区间,即不到百位 TPS 档位。热门的 EOS 一直以并行百万级宣传,主网上线后,研究员们搭载的服务器测试结果并不足 1000, 随着 DPOS 的正常运作, 最新资料显示已经达到 3000,在不考虑并行的情况下,相对中心方式的 EOS 最终 TPS 应该也是在千位档, 而 并行实现百万级 的概念在看完本报告后相信大家会有一个新的见解 。理论上 , 在相对同等 状态下, ETH POSsharding应该和 EOS 的 DPOSLMAX 同处于千位档。 看完区块链项目的数据,我们对比一下 Visa 的数据 Visa 平均处理 2000TPS,每日平均峰值可以达到 4000TPS,理论上最高能够支持 5.6 万 TPS;而 Paypal 全年处理 490万笔交易,性能可达 10 万 TPS;淘宝 2017 年双十一交易创峰值 32.5 万 TPS,支付峰值25.6 万 TPS。 项目 是否区块链 TPS BTC 是 5~ 7 ETH 是 20~ 30 EOS 是 1000 Visa 否 56,000 Paypal 否 100,000 支付宝双 11 否 256,000 1图为 blockchain 的统计数据 产业专题报告 6 / 26 2数据有效日期为 2018 年 7 月 在传统集中式系统中,客户端和服务器端的角色是分离的,即用户所在的客户端负责发起请求,然后中心服务器负责接收、验证、处理等一系列工作,整个系统的数据储存和记录也都由中心服务器负责。所以在传统的集中式系统中,事务处理流程很简单,由客户端发出请求,由服务器处理后更新数据库,即可返回客户端,是一种集中式数据库系统。 服务器端客户端数据库发送请求确认请求访问 、 操作提取数据图 4 传统集中式系统单个事务请求的确认流程 因此在传统的集中式系统中,不论是系统的并发量还是事务的平均处理速度都和中心服务器的性能有着直接的关系。中心服务器性能越强,内存越大,数据库访问速度越快,整个系统的 TPS 就会越高。此外,传输过程中带宽的增大,客户端和服务器端物理距离的减少也可以使得系统平均响应时间减少,从而增大 TPS。 而在区块链分布式系统中没有一个中心服务器来处理事务,每个节点都是一个中心,所以就必须要解决数据分布式存储的公平性和一致性问题。所谓公平性,就是确保每个节点都能拥有记账的权利,而不会出现某些节点垄断记账。所谓一致性,就是每个节 点的数据账本保持同步更新,这就要求每一条数据都需要经过多个节点甚至全网节点的验证和确认。 图 5 区块链的分布式 概括地说,在区块链分布式系统中,一笔交易从发出请求到确认需要经历以下步骤 1 由节点发出交易请求,并且广播至整个网络; 2 其他节点接收交易请求,并且验证,如果验证通过,则放入待记录交易列表(交易池); 3 各个节点争抢记账权(即抢夺新的区块),成功获得记账权的节点将待记录的交易请求记入新的区块中,然后将区块广播至整个网络; 4 网络中其他节点接收区块,并且验证,如果验证通过,则该节点确认区块的合理性,将该 区块记录自己的数据库; 5 当有超过一定数量的节点都记录了该区块,表明整个区块链系统认可了,此时最2Visa、 Paypal 和支付宝双十一数据由网络大量数据反复对比整理所得 火币区块链研究院 7 / 26 初的交易请求才算被确认。 在区块链这种分布式系统中,一个事务的记账权首先需要各个节点基于共识机制进行争抢,这就需要消耗大量时间。其次,一笔事务还需要经过多个甚至全部节点的反复验证和确认才能被写入数据库,这大大减慢了事务的处理速度。如果某个节点的响应速度很慢,整个系统的处理速度都会被拉低。而在传统集中式系统中,事务永远由中心服务器处理,也不需要多个节点的反复验证和确认,所以区块链的 TPS 相较于传统集中式系统的 TPS 普遍要低,并且我们无法单纯用强化中心服务器性能的方式来提升整个区块链的 TPS。 同时,前文也提到淘宝双十一 TPS 是有两个数值的,一个是交易创建峰值,一个是支付峰值 ,在区块链中 ,支付峰值才是确认的过程,会显得更加重要和实际, 严格的讲 ,区块链 TPS 的评估 应该 参考每秒确认交易数量 CTPS( Confirmed Transactions Per Second) 来描述一个系统的真实性能 ,不过鉴于公开资料并不严格区分 TPS 的细分定义,也不属于本报告的重点,所以 本报告 也只采用 TPS 来整体描述,仅作对比参考之用。 由此可见, 即使中心化的系统由于硬件等各种问题的制约, TPS 的 峰值 不超过 10 万级别,而 正常 日 平均 TPS 也 不超过 1 万级别 (参考 Visa) ,作为一个底层分布式账本的区块链项目一味追求高 TPS 或者是宣传极高 TPS 就值得大家仔细思考一下了。 考虑到日常应用的需求,区块链 主流 公链 项目 BTC、 ETH 以当前最高 1000TPS 的目标 也落地 困难 ,于是便产生了可扩展性的讨论 。 至于众多号称 TPS 破万,甚至百万的项目,在阅读完本报告后,相信大家会有个更清晰的认识和理解。 产业专题报告 8 / 26 第二章 区块链 技术 可扩展方案 分层模型 2.1 区块链 技术 可扩展方案 分层模型 综述 要系统的考虑区块链 技术 可扩展方案,首先必须理解区块链技术框架,如 图 6 所示 图 6 典型区块链架构 当前主流的区块链架构包含 六个层级网络层、数据层、共识层、激励层、合约层和应用层。 图中将数据层和网络层的位置进行了对调,主要用途将在下一节中详述。 网络层 区块链网络本质是一个 P2P( Peer-to-peer 点对点)的网络, 网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行,可以无需中间环节和服务器的介入。每一个节点既接收信息,也产生信息,节点之间通过维护一个共同的区块链来同步信息,当一个节点创造出新的区块后便以广播的形式通知其他节点,其他节点收到信息后对该区块进行验证,并在该区块的基础上去创建新的区块,从而达到全网共同维护一个底层账本的作用。所以网络层会涉及到 P2P 网络,传播机制,验证机制等的设计 ,显而易见,这些设计都能影响到区块信息的确认速度,网络层可以作为区块链 技术 可扩展方案中的一个研究方向; 数据层 区块链的底层数据是一个区块 链表的数据结构, 它包括数据区块、链式结构、时间戳、哈希函数、 Merkle 树、非对称加密等设计。 其中数据区块、链式结构都可作为区块链 技术 可扩展方案对数据层研究时的改进方向。 共识层 它是让高度分散的节点对区块数据的有效性达到快速共识的基础,主要的共识机制有 POW( Proof Of Work 工作量证明机制 ), POS( Proof of Stake 权益证明机制 ),DPOS( Delegated Proof of Stake 委托 权益证明机制 )和 PBFT( Practical Byzantine Fault Tolerance 实用拜占庭容错 ) 等,它们一直是区块链 技术 可扩展方案中的重头戏。 火币区块链研究院 9 / 26 激励层 它是大家常说的挖矿机制,用来设计一定的经济激励模型,鼓励节点来参与区块链的安全验证工作,包括发行机制,分配机制的设计等。这个层级的改进 貌似 与区块链可扩展并无直接联系。 合约层 主要是指各种脚本代码、算法机制以及智能合约等。 第一代区块链严格讲 这一层是缺失的 , 所以它们只能进行交易,而无法用于其他的领域或是进行其他的逻辑处理, 合约层的出现,使得在其他领域使用区块链成为了现实 , 以太坊中这部分包括了 EVM以太坊虚拟机 和智能合约两部分。 这个层级的改进貌似给区块链可扩展提供了潜在的新方向,但结构上来看貌似并无直接联系。 应用层 它是区块链的展示层,包括各种应用场景和案例。如以太坊使用的是 truffle 和web3-js.区块链的应用层可以是移动端, web 端,或是是融合进现有的服务器,把当前的业务服务器当成应用层。 这个层级的改进貌似也给区块链可扩展提供了潜在的新方向,但结构上来看貌似并无直接联系。 由此可见, 单 从结构 上分析,区块链 技术 可扩展方案可以直接从网络层( P2P 网络、传播机制和验证机制)、数据层(数据区块和链式结构)以及共识层 进行改进达到优化。 以太坊社区在区块链可扩展性上曾提出过 Layer 分层改进的概念 Layer 1 层改进和Layer 2 层改进。 Layer 1 层改进是指通过对某条公链本身的改进来提升它的可扩展性,即On-Chain 链上改进; Layer 2 层改进是指不影响该公链本身,通过其他方式来实现可扩展性的提升, 即 Off-Chain 链下改进(此处链下的含义仅仅指脱离该公链), 如后文将会介绍的侧链、跨链和状态通道等。 在这个理 解的基础上,我们 借鉴计算机网络分层管理、各层标准化设计的思想,将区块链与传统互联网 OSI 模型结合,建立区块链 技术 可扩展方案 分层模型 三个一级层级 Layer 0 层数据传输层, Layer 1 层 On-Chain 公链自身(底层账本)层和 Layer 2 层 Off-Chain扩展性(应用扩展)层。在一级层级的基础上,结合区块链架构又可以进一步分解成七个二级层级来详细研究 ,具体如 图 7 的划分 产业专题报告 10 / 26 图 7 区块链分层研究构架图 2.2 Layer 0 层 数据传输层 要理解 Layer 0 层,先得回顾一下开放系统互连参考模型 OSI 七层模型 Open System Interconnect) ,它是国际标准组织 ISO和国际电报电话咨询委员会 CCITT联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 在实际 使用中,由于理论研究和现实落地的时差,广泛使用的是 TCP/IP 协议,不过两者在本质上是可以一一对应的。 图 8 OSI 模型 、 TCP/IP 协议 、区块链分层模型对应关系 大部分的区块链项目所使用的底层网络协议 就 是 TCP/IP 协议,少 部分支持 UDP 协议。从协议层角度看,区块链是基于 TCP/IP 协议的,也就是在传输层之上,属于最上面的应用层。从这个角度来看,区块链本身只是整个互联网协议层中的最上层,它本身还是要依赖于底层的协议为它工作。 对应的接口就是区块链的网络层,这也是本报告将数据层和网络层位置对换的主要原因,虽然在 比特币 P2P 网络设计的时候 已经考虑了节点之间的发现、节点连接的握手协议、节点间地址广播和数据通信等 ,鉴于已经有部分项目开始探索 P2P 网络与传统 OSI 模型的结合,甚至将改进延伸到数据链路层,本报告倾向将 P2P 网络和传播机制并入到 Layer 0 层和传统 OSI 模型一起作为一层进行可扩展方案 研究。 这样, Layer 0 层 数据传输层改进的主要思路就是通过加快 全网 节点之间的 传播速度来提升全网的确认共识 , 改进主要体现在上图中标红的传输层( TCP/IP)和网络层( IP)上 ,且不论这样的效果究竟有多大,从逻辑上这样的一个思路是具有合理性的。 具体改进可以有P2P 网络拓扑结构改进,节点之间的快速发现,节点之间的快速 广播和 通信等 。 2.3 Layer 1 层 On-Chain 公链 自 身改进 Layer1 层 On-Chain 公链 自 身改进 的主要思路的出发点是 将区块链技术底层账本和 上层 应用 分离 ,底层账本的重心放在安全 性 和去中心化 上 ,在性能上有所取舍。 只是 将 需要共火币区块链研究院 11 / 26 识确权的数据上链, 从而降低对 TPS 的需求 ,从目前技术发展来看,可能千位级别( 10003000) TPS 即可满足 。 结合前文介绍的 区块链的 架构可以看出 , 能够 提升的 地方 有共识层 的机制改进 和数据层 的数据区块大小调整、链式结构的优化以及 网络层的验证机制改进 等方法。 所以, Layer 1 层改进的思路是做好一条底层账本公链, 将其他的事情交由 Layer 2 层来互补处理。 这里 对于隐私加密技术的需求对 Layer 1 层会是一个不错的附加属性,但不属于可扩展方案讨论范畴,在没有很好的处理方案前,在 Layer 2 层考虑也是个能接受的选择。 图 9 Layer 1 层三元优先级 2.4 Layer 2 层 Off-Chain 扩展性改进 Layer2 层 Off-Chain 扩展性改进是基于区块链的底层账本技术之上的应用型扩展,可以是基于区块链技术的应用,也可以是中心化的 应用结合,它的重心放在性能和安全上,对去中心化有所取舍。最终关键数据传输给 Layer1 层上链,本身利用高性能处理大量数据,达到现实世界对性能的需求 。该类型的改进有跨链 基于区块链技术的多链生态扩展;状态通道 链下数据处理来提升性能; Plasma 通过 一系列的智能合约, 来构建多种应用场景达到多链并行的结果; Truebit 一种帮助以太坊在链下进行繁重或者复杂运算的技术 等 。 所以, Layer 2 层作为 Layer 1 层的互补来解决与现实世界的需求,并将必要的数据上链到 Layer 1 层 。 产业专题报告 12 / 26 图 10 Layer 2 层三元优先级 综上, 我们可以将区块链 技术可 扩展方案 分层模型 以及当前比较典型 的研究项目整理成下面一张思维导图,并在下一节结合具体项目来阐述。 火币区块链研究院 13 / 26 图 11 区块链 技术 可扩展方案 分层模型 下典型项目 思维导图 产业专题报告 14 / 26 第 三 章 Layer 0 层数据传输层 可扩展方案 3.1 中继网络 ( Relay Network) 比特币设计的 P2P 网络是个节点随机连接的网络,交易和块的信息传输都是通过这些节点,直到全网所有的节点都收到最新的交易和块信息。原本上,这个设计在不考虑性能需求时是非常完美的,但是随着 比特币的关注度和使用性的提高, 2014 年 Bitcoin Core 贡献者 Matt Corallo 提出了 Bitcoin Relay Network 的创意,旨在解决两个问题 优化比特币 P2P 网络数据和块传输 速度 ,提升比特币整个网络的安全性,降低攻击风险; 减少整个比特币网络的延时。 当网络存在延时时, 矿工往往需要 10-15 秒的时间才能收到新挖出来的区块信息,以10 秒为例, 10 分钟挖出一个块,相当于丢失了 1.6潜在时间收益,在挖矿规模化时这也是不能接受的。 尤其大的矿场还可以利用自己的优势搭建私有网络,利用挖矿和传播的优势完全碾压小矿场。 Bitcoin Relay Network 的 本质是 建立网络 对话中枢( hub-and-spoke) ,它 通过 8 个 位于 纽约,西雅图,阿姆斯特丹,北京,东京,新加坡,香港和俄罗斯的新西伯利亚的服务器枢纽构成 的节点网络来 组成区块数据传播 铁路 ,矿工们通过这个铁路快速的传播着自己的共识,然后能够立刻开始挖新的区块。 但是,这个提议的最大问题是从某种意义上讲, Corallo 控制着这个网络,尤其是对网络的维护,不过这只是一个更快的选择,传统的 P2P 网络传播方式仍然是可以是使用的。 目前 该系统已被描述为比特币的血管或神经系统 一个在整个身体传递信息的关键组成部分。 2016 年, Corallo 在 Bitcoin Relay Network 的基础上又提出 快速互联网比特币传播引擎( Fast Internet Bitcoin Relay Engine, FIBRE)的改进, FIBER 是一种基于 UDP ( User Datagram Protocol) 的中继网络,可以 解决 TCP 模式下小数据的丢包问题, 提升了去中心化性, 同时 实现了 压缩数据, 以进一步减少传输的数据量和网络延迟 , 改善信息传播的速度,矿工可以减少孤儿块( orphan block)的数量,或者被网络拒绝的交易区块数量。 同样, 康奈尔大学 的 Soumya Basu, Ittay Eyal 和 Emin Gün Sirer研究 了 另一个中继网络 Falcon Relay Network。 Falcon 使用 “ 直通路由 ( cut-through routing) ” 而不是“ 存储转发 ” 来减少延迟, 接收到块时仅仅初步验证块的头部信息 就 传播 出去 ,而不是等待直到接收到完整的块。 当然,这种处理方案有个显著的问题就是如不诚信的矿工可以传播无效的数据浪费竞争对手的资源,为了解决这个问题,康奈尔大学的这个团队得自己扮演把关者的角色 ,但正常情况下,它提升的速度效率会更高。 3.2 OSI 模型 改进 FIBRE3和 Falcon4是目前在比特币中继网络( Relay Network) 上落地并显著改善的代表,在它们的基础上,又有许多新的项目开始了自己的探索,这些探索将视角进一步深化到传统互联网的架构上,试图从 OSI 模型去进行优化,如 Blockchain Distribution Network ( BDN), 该 思路灵感来自于 Content Distribution Network ( CDN),重点在于对于 OSI3 http//bitcoinfibre.org/ 4 https//www.falcon-net.org/about 火币区块链研究院 15 / 26 第四层传输层的改进,也有试图将整个 OSI 模型与区块链结合改进的项目, 思路都很开放,但唯有落地才能解决问题,这里仅挑选个别项目作简要 的介绍用于直观了解 Layer 0 层的设计思路。 OSI 七层网络模型 TCP/IP 四层概念模型 对应网络协议 应用层( Application) 应用层 HTTP、 TFTP, FTP, NFS, WAIS、SMTP 表示层( Presentation) Telnet, Rlogin, SNMP, Gopher 会话层( Session) SMTP, DNS 传输层( Transport) 传输层 TCP, UDP 网络层( Network) 网络层 IP, ICMP, ARP, RARP, AKP, UUCP 数据链路层( Data Link) 数据链路层 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP 物理层( Physical) IEEE 802.1A, IEEE 802.2 到 IEEE 802.11 3.3 Blockchain Distribution Network( BDN) BDN 是 BLOXROUTE LABS 首先 提出来的 概念 , 团队中有两位创始人就是 Falcon 的发起人。 项目的主旨思想是通过自己提供的 BDN 网络来提升节点之间通讯的速度,也是从提供专属网络的角度来改善节点同步情况,各节点通过 BLOXROUTE 提供的对等节点( Peer Node)接入 BDN 网络,对等节点作为区块链应用程序和 BDN 的中间网关,它会针对不同的区块链节点制定专属的接口协议,更具体的技术细节尤其是 BDN 网络的设计思路批露较少,核心可以用白皮书中的系统架构图表示 产业专题报告 16 / 26 图 12 BLOXROUTE 架构图 5 3.4 其他 Marconi 协议 是一个 试图增强乃至 取代 现有网络基础设施的项目,体系上包括网络协议、区块链协议、去中心化网络管理等 , 采用向下延伸覆盖至以太网的设计,并且支持去中心化网络堆栈 , 在 OSI 模型第 二 层建立的安全通信管道提供数据包级加密 。这是一个试图在以太网级别上去构建去中心化的点对点的网络协议,最终是否能够落地挑战也是非常大的,白皮书中展示了其 OSI 模型内的 Marconi 通道架构。 5 https// 火币区块链研究院 17 / 26 图 13 OSI 模型内的 Marconi 管道 6 Toda Network7也是一个定位新一代区块链版“ TCP/IP”协议的项目,愿景未来任何区块链项目都可以在 TODA 上运行,目前官网虽然没有提供白皮书,但却有十几个区块链项目使用了它的技术。 以上案例,仅仅用来表明在 Layer 0 上进行区块链可扩展研究 的一些思路和项目的探索。 第 四 章 Layer 1 层 On-Chain 层可扩展方案 4.1 网络层 改进 分片( Sharding) Layer 1 层上网络层是连接 Layer 0 层 OSI 网络层的, 由上节不难发现, Layer 0 层的改进有些是贯穿 Layer 1 层网络层的 整体改进;有些是通过增加一道协议来支持 Layer 1 层网络层,重点改进 Layer 0 层。 除此之外,针对 Layer 1 层的改进还可以从验证机制入手,典型代表就是分片( Sharding)技术 。 分片其实是一种传统数据库的技术,它以前用作将大型数据库分成更小、更快、更容易管理的部分,以此增加数据库的操作效率。而在区块链中,分片技术的运用会更为繁琐 ,不过主要思想都是通过缩小验证规模和大量事务并行处理来达到性能提升的效果,主要难点在于各分片之间数据的一致性和分片内部的防作恶 , 由于验证规模的大大缩小, 所以 BFT( Byzantine Fault Tolerance,拜占庭容错) 类共识 会是分片内主要使用的共识机制 。 目前主流的分片技术分为 网络分片、 交易分片和计算 (状态) 分片等三个层级,其技术难度也随之 递增 ,但是 网络分片还是最主要的 。 网络分片通过利用随机性,网络可以随机抽取节点形成分片,达到防止网络攻击 如女巫攻击等 和恶意节点串谋作恶的情况 ,由于诚实节点验证是整个分片网络的安全之本,所以网络分片是其他所有分片的基础。 交易分片交易分片的思想是将交易进行预处理,将相干的交易分配到同一个分片内进行验证,而将不相干的交易分到其他分片中验证,最终到达并行处理同时又防止了双花的情况;当然解决思路也有从增加各片之间的通讯和确认来进行研究的。 计算 (状态) 分片计算 (状态) 分片是迄今为止最具挑战性的分片技术提案,它主要用来并行处理智能合约的计算问题,如一些片主要用于矩阵计算,一些片主要用于排序,一些片用于最终结果聚合,每个片独立计算自己的工作,并进行交叉验证来确保最终结果的一致性,其复杂性可以想象。 在分片研究方向,可以 关注以太坊的 Casper8, Zilliqa 项目 9, Radix 项目 10和 Rchain11等。 6 https//marconi.org/cn.html 7 https//work/ 8 https// 9 https// 10 https// 11 https//www.rchain.coop/ 产业专题报告 18 / 26 4.2 数据层改进 Layer 1 层上对数据层的改进是最直接的改进方向之一,我们分别从数据区块,链式结构来看看技术上的研究状况。 4.3 增加数据区块大小 通过增加数据区块大小来达到扩容效果最有名的案例莫属于 BCH 比特现金 12了,它是比特币于区块高度 478558 的硬分叉产物,旨在通过将比特币区块的 1M 太小限制提升到8M( 2018 年 5 月 15 日提升到 32M, 8 月份 nChain 提议再次提升到 128M) ,是一种典型的链上扩容方法 ,通过区块容量的增加来提升交易处理能力,从而能够保证在交易量非常大的情况下也能快速交易并保持较低的手续费。 但是,更大的区块 会造成更多孤块产生的风险 ,影响系统的整体性能 和安全性,同时对矿工的带宽也可能提出新的要求,造成加剧中心化的风险等 。 4.4 改进数据区块结构 隔离见证( SegWit) 隔离见证 ( SegWit) 13就是把比特币脚本签名 ScriptSig信息从基本结构 base block里拿出来,放在一个新的数据结构当中 。 通 过隔离见证,独立出脚本签名, 其签名的大小不会计算在交易区块内 ,因此比特币区块在不改变大小的情况下可以容纳更多的交易 ,进而达到扩容的效果。 4.5 改进链式结构 DAG 传统区块链技术是一种链式数据库结构,每个区块就像铁链一样,环环相扣,块与块之间是完全的串行,这样的链式结构注定了效率的瓶颈,如下图所示 图 14 区块链的链式结构 所以,很多研究也从并行的角度去思考可扩展方案,如典型的 DAG 有向无环图技术就在一定程度上将链式结构改进成网状结构,达到并行提升效率的作用,如下图所示 12 https//www.bitcoincash.org/ 13 https// 火币区块链研究院 19 / 26 图 15 DAG 的网状结构 当然 DAG 将最长链共识改成多条链互证共识,它没有区块概念,不是把所有数据打包成区块,再用区块链接区块,而是每个用户都可以提交一个数据单元,这个数据单元里只有交易,数据单元间通过引用关系链接起来,从而形成具有半序关系的 DAG。 在 DAG 技术的基础上,很多研究开始放眼于将 DAG 和传统区块链结合的思路上去进行 并行处理,并试图增加智能合约的功能,但是 DAG 最大的问题来自安全,它全网处于一个异步验证的状态,对 当前状态的确认是个相当有挑战的问题,所以主流 DAG 项目都借鉴了中心化的方式来协助处理。一些关于 DAG 的情况可以参考火币研究院 超越白皮书 3 DAG 技术解析与实测 14以及 IOTA15, Byteball16, Hashgraph17, Conflux18的研究。本篇纲要篇发布之后,我们也会针对每一块进行更加具体的对比分析 。 4.6 共识层改进 Layer 1层上对共识层的改进 也 是大家比较熟悉的一块了, 主要是针对共识机制的改进,从早期比特币的 POW( Proof of Work)算力挖矿工作证明的共识机制衍生出 POS( Proof of Stake)拥有即挖矿的 股权证明 的共识机制,至今各种类型的共识机制 层出不穷,主要可以分成两大类一类是中本聪共识,如 PoW, PoS, dPoW, dPoS, PoA, PoWeight, PoR,PoET, PoC/PoSpace, PoI, Ouroboros 等;一类是 BFT 类共识 ,如 PBFT, SBFT/Chain,Ring, Zyzzyva, Zyzzva5, CheapBFT, MinBFT, OBFT 等。 共识机制的改进本质是在保证安全的前提下,提升全网验证出块的效率 和去中心化程度的取舍来提升性能,这块火币研究院详细的研究报告已经在准备中。 14 https// 15 https//www.iota.or