如何定义中间层?区块链技术落地最关键一步

电子说

1.2w人已加入

描述

现在区块链领域发展迅速,但总体还在初级阶段。从底层的公链,到真正能实现各个 Dapp 们 “颠覆谷歌”、“颠覆Facebook” 的雄心壮志,中间还有不少的路要走。

而这 “不少的路”,指的其实就是中间层。

如何定义中间层

中间层是什么?目前并没有公认定义。不过,我们可以和传统互联网对比。

如果我们把传统互联网的结构分成五层的话,则有:

那么相对应地,区块链也可以分为五层:

硬件即挖矿与矿机,之前在中有介绍;例如比特币、以太坊、EOS 等,负责搭建基础设施。而区块链与 C 端的结合 —— 比如游戏、物流等 —— 则是最上层的 DApp(Decentralized Application,分布式应用)应用层。

因此我们也可以说,中间层要解决的问题,就是如何成为底层基础设施和上层 DApp 之间的桥梁,让区块链技术能被真正运用到生活中。

在这个基础上,我们又把中间层进一步分成了两部分:面向公链的下层中间层,和面向 DApp 的上层中间层。这篇文章主要讨论面向公链的下层中间层。

中间层在解决的问题很多,此处我们主要探讨下目前最热门、最急需解决的三大问题:

扩容

区块链下计算和存储

Oracle

下面,我们就结合每个领域有代表性的项目,说说这三部分的目前的发展趋势。

扩容:区块链技术落地最关键一步

我们这里讨论的扩容定义如下:如何在 DApp 增加的情况下,通过提高主网性能(比如提高吞吐量、降低延迟等)且不影响用户体验的办法,适应新的用户需求。

扩容是中间层发展里,最关键、最需要解决的问题。如果扩容问题都没解决,就开始谈论计算储存 oracle,那基本就是耍流氓。

说到扩容,不少人的第一反应都是解决比特币拥堵问题的闪电网络(Lightning Network),和其以太坊版本的雷电网络(Raiden Network)。由于这两种解决方式是对公链本身性能的补充,因此我们暂不把它们算作中间层,本文仅做简单介绍。

我们知道,比特币交易速度太慢一直是其致命弱点:每秒仅能处理 7 笔交易。这个速度让每秒能处理 2.4 万笔交易的 VISA 笑而不语...就连 Bitcoin Cash 这种比特币的 “山寨币”,都有每秒 61 笔的速度。

图自网络,版权属于原作者

为解决这个问题,有人提出,我们没必要在区块链上记录每一笔交易,可以把这笔交易搬到链下,这就是 “闪电网络” 的思路。换句话说,闪电网络在比特币的区块链上又加了一层,用户能在这个新添加的一层上,与任意其他用户搭建起一条专门用于支付的 “快速通道”。由于这个通道是两个人之间的特殊管道,因此有交易速度快、交易费用极低甚至免费的优点。

然而,主要解决支付问题的闪电网络和雷电网络也有它们仍未解决的问题。这就说到了下一代意在解决扩容问题的项目。

我们在这里介绍两个比较有代表性的项目:

Loom Network和 Celer Network。

Loom Network 是以太坊侧链平台,意在把游戏和社交功能从拥堵的以太坊网络中分离出来,分担以太坊主网数据负载,以解决以太坊拥堵。

记得 CryptoKitties 吗?Loom Network 的诞生和它还很有关系呢!

去年年底,基于以太坊开发的云撸猫游戏 CryptoKitties 突然爆火,但由于以太坊主网是主要为解决金融交易而诞生、且大额和小额交易并无区分,因此 CryptoKitties 爆火后带来的大量小额交易一下就让以太坊吃不消了,发生了极为严重的拥堵问题。

Vitalik “宿敌” BM:傻了吧?还是真猫好玩

为解决以太坊的拥堵问题,Loom Network 团队在以太坊的主链上开发了 Loom Network 侧链,这一侧链解决方案,V 神看了都说好。

图片截取自 Vitalik 推特

之所以得到 V 神垂青,是因为 Loom Network 很可能成为以太坊应用落地的关键。为什么这么说呢?

这里我们要介绍一个新概念:DAppChains。DAppChains 是一个可运行在以太坊智能合约上、能大规模优化数据而非仅仅是金融交易的侧链。而 Loom 的 DApp chains 是 Loom 针对以太坊主链单独开发出来的侧链,以成为以太坊网络上的“游戏”和“社交”的平台。

除了强大的数据处理能力、Loom Network 还推出了软件开发工具包 SDK,让不懂底层区块链架构的开发者也能开发 DApp,降低开发 DAPP 门槛;另外,Loom Network 还顺手推出了 EthFiddle 和 SolidityX 两款产品,让程序员开发复杂项目更简单。这些特点使不写白皮书、只出产品的 Loom Network 被寄予厚望。Loom 的应用领域是大型在线游戏以及社交应用,也就是说,以后区块链上的魔兽世界、Fortnite、脸书微博,有可能都要跑在 Loom 上面。

现在我们再来说说 Celer Network。和刚才的 Loom Network 线下处理游戏和社交功能不同,Celer Network 是第一个具有连贯技术和经济架构的脱链运营网络,意在让区块链有互联网级别的可扩展性。Celer Network 可横向扩展到每秒数十亿次的交易。

Celer Network 实现这个目标的方法之一,就是对链下扩容的革新。这要从现在链下扩容的趋势谈起。链下扩容主要有两个方向:状态通道扩容(state channels)以及侧链扩容,两种方法各有利弊。

什么叫状态通道扩容呢?打个比方,你把一些钱从你的银行账户转到了支付宝上,以后每次你用支付宝买东西时,就直接在支付宝内加加减减,不用通知你的银行,而你在支付宝内的交易也不会反映在你的银行记录里,从银行的角度看,就省了不少记账的麻烦事。

这就是状态通道的思路,在这个例子里,银行相当于公链,支付宝是每人自己的账户,不用每笔帐都麻烦公链记录,公链可以做别的事情,也就相当于给公链扩容了。

不少人认为,状态通道存在天然的局限性,比如其更适用于固定交互双方的高频互动,而不适用于频繁变动的交互双方的低频交互。小探在查资料时,也看到了这种说法颇为流行。

但 Celer Network 的团队认为,这个论断其实是不准确的,因其并没有考虑到“网络“的作用。诚然一个多边状态通道的参与方相对固定,但一旦状态通道形成网络,就可以非常灵活地与任意的网络节点进行高频或低频的交互,且可以随时变换交互方并同时与多方交互。这里就如同家里的电脑仅凭一根网线就可以任意遨游互联网一样。支持这样的网络平台正是 Celer Network 的重点工作方向之一。

与状态通道扩容相对的是侧链扩容。侧链扩容使单个区块的容量更多,即同时使用侧链的人数更多,但单笔交易速度就会更慢。

而 Celer Network 则可以根据需要,自行在侧链和状态通道中做出选择。

不论 Loom Network、Celer Network、或 Liquidity Network 等其他意在解决可扩展性的项目,可扩展性一直以来都是区块链和加密货币领域的一个重要瓶颈。“高效” 和 “去中心化” 两者不可兼得,而不同技术的解决方式都是在尽量平衡两者。

解决可扩展性难度不小,但可扩展性是计算、存储、以及 Oracle 的基础。如果可扩展性不解决,区块链的大规模应用也就遥遥无期。

计算:和 “1999年的手机一样快”

现在以太坊慢到什么地步呢?以太坊创始人 Vitalik 曾开玩笑说以太坊速度和 “1999年的手机”一样快。显然,对于自称 “世界计算机” 的以太坊来说,这个速度远远不够。

为了提速,以太坊社区没少想办法:从PoS 到雷电网络、从分片技术(在我们之前的公链文章里有提到)到状态通道技术,不一而足。而区块链项目 TrueBit 提出来了一种新的思路:提高网络本身的计算能力,而不仅仅是加快交易速度。

TrueBit 将算力移到链外,从而绕过以太坊运行被燃料费限制的这个瓶颈,以达到扩容的目的。理论上说,不论计算任务多大,TrueBit 都可以安全完成。

但 TrueBit 依然需要验证一个计算是否正确。为了让矿工能在有限带宽下验证计算,TrueBit 设计了一套制度:TrueBit 对正确完成计算任务的矿工进行奖励,以此调动积极性。但计算任务完成得正不正确,谁说了算呢?为此,TrueBit 设计了 TrueBit 合约,谁去验证合约,谁就能得到奖励。如果出现争议,TrueBit 会以 “验证游戏” 的方式检查合约中的细节。

需要注意的是,TrueBit 的这套机制不是为了找出哪些节点诚实可信,而是通过假设所有节点都想利益最大化,去获得利益最大化的外部计算机资源,用这种方式提高计算能力。

作为以太坊智能合约的一种,其他以太坊智能合约可以把 TrueBit 作为子程序,因此 TrueBit 就能增加每一个以太坊网络可以正确处理的区块数量,以达到提升以太坊容量的目的。

Plasma 和 TrueBit 想法类似,都是通过设立奖励机制达到扩容目的,但具体思路有不同,因为篇幅缘故就不在本文多做介绍。

看来,不论用哪种方法,以太坊的扩容问题需要解决已是社区内的普遍观点。

存储:应对数据井喷,只能是去中心化存储

随着人工智能、物联网等的发展,我们产生的数据呈几何式增长。据估计,2020 年时(也就是一年半以后...),全球联网的设备数量将超过 200 亿台。此外,基于区块链技术的众多 DApp 也将使用和产生大量数据。

这么多数据,都存放在哪儿呢?而且就算找到地方存储这些数据,随着数据井喷,如果我们想找某个数据,又该如何从海量数据里迅速准确地再把它找出来?

目前普遍认为,去中心化存储是解决方案。类似于区块链的分布式账本技术,去中心化存储也可以把数据放到多个、而不是单个网络节点上。

与去中心化存储相对应的,当然是中心化存储 —— 这也是现在存储数据的主要方式。无论是单系统存储、还是云端存储(比如亚马逊的 AWS),都是高度中心化的。中心化的系统往往脆弱而高效,而去中心化存储则不会有这个问题。

但是,随着区块链交易量逐渐上涨、可扩展性问题还没解决,“把大量数据都存储在区块链上” 这种思路就越发行不通。

而 Swarming(运用大量节点)和 Sharding(分片),这两项重要的互补技术提出了 “分区的集中存储” 这一解决去中心化存储问题的思路。在上一篇文章里,我们谈到了 Sharding 技术,在此就不再赘言。

那么 swarming 是什么意思呢?Swarm 在英语里是 “蜂群” 的意思,正像很多蜜蜂一起合作、有条不紊地朝着同一个目标工作一样,去中心化存储里 swarming 这种方式也是利用庞大的节点组对数据进行存储和管理,而每个节点就叫做 swarm —— 这么看来,swarm 这个名字倒是起得很恰当。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分