从底层的公链,到真正能实现各个 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(分片),这两项重要的互补技术提出了 “分区的集中存储” 这一解决去中心化存储问题的思路。
那么 swarming 是什么意思呢?Swarm 在英语里是 “蜂群” 的意思,正像很多蜜蜂一起合作、有条不紊地朝着同一个目标工作一样,去中心化存储里 swarming 这种方式也是利用庞大的节点组对数据进行存储和管理,而每个节点就叫做 swarm —— 这么看来,swarm 这个名字倒是起得很恰当。
检索数据时,每个节点 —— 也就是 swarm —— 从离它最近、最快的节点进行搜索,通过这种方式大幅提高速度(是的,听起来很像 torrents)。 而且,由于一个 swarm 里包含了很多个离它很近、但各自不同的节点,因此其可靠性也更强。
说完了 Swarming,我们再来说说去中心化存储领域里两个比较有特点的项目:IPFS 和 Storj。
如果你没听说过IPFS,那你一定听说过它要取代的对象:统治互联网的超文本传输协议的 HTTP。Http 看着眼熟?没错,就是任何网址前面的那个 https://,比如你打开百度,地址栏就会显示 https://www.baidu.com/。但是,HTTP 也有一些广为诟病的弱点,比如其超中心化的趋势、效率不高、数据中心的运作严重依赖 Internet 主干网络等问题。
那么,IPFS 又是什么呢?
IPFS(InterPlanetary File System),也叫星际文件系统,名字听起来就很炫酷。IPFS 是一个面向全球的、点对点的分布式版本文件系统。IPFS 把所有具有相同文件系统的计算设备连接在一起。
也就是说,IPFS 彻底改变了 “查找文件” 的方式。我们现在熟悉的 HTTP 用基于域名的地址查找文件(比如输入网址),而IPFS 则是以储存在某个地方的内容作为线索寻找。结果就是 IPFS 提高网络速度的同时,还能更加安全。
此外,IPFS 也改变了存储的方式。与比特被的 “每个节点都存储所有内容” 不同,IPFS 认为,节点的所有者可以自由选择想要存储的数据,换句话说,节点凭自觉自愿,为其他内容提供服务。当然,“自觉自愿” 听上去不错,但缺乏奖励机制也是个问题。加上奖励机制的 IPFS 基本就是 Filecoin。
而以成为基于区块链技术的、去中心化版 Dropbox 起家的Storj,则是想成为一个 “可以不被审查和永不停机的” 云存储平台。Storj 也是第一个使用区块链和加密技术来保护文件的分散式点对点加密云存储。
Storj 的使用流程如下:首先,文件会在计算机客户端上被打散、分解成加密数据块,然后,这个已经被加密过的文件再通过 Storj 网络分散存储 —— “网络” 指的是由分散于全球各地的用户运行的节点组成,他们通过把自己闲置的硬盘空间出租给 Storj 获益。因此,Storj 比传统的云存储平台更快捷、更便宜、更安全。
和扩容问题相比,区块链的存储问题挑战相对较小。目前有加密学、纠删码技术(erasure coding)、零知识证明(Zero-Knowledge Proof)等方法解决。去中心化数据存储在最近一两年里的迅速发展,让人对这个领域的未来十分期待。
Oracle:把真实世界里的信息告诉区块链我们在区块链白皮书里,经常会看到 oracle 预言机这个词,指的可不是硅谷的科技公司甲骨文哈。区块链里的 oracle,指的是为区块链提供外部数据的信息平台或技术。
这是啥意思?
在区块链上有很多 “如果条件 A 满足,则 B 发生” 的智能合约,比如一款放在区块链上的航班延误险的智能合约可能就是 “如果航班延误超过 X 小时,则自动理赔给乘客 XX 元”。
那么,我们怎么把现实世界里 “航班延误” 这件事告诉区块链里呢?这就是通过 oracle。换句话说,oracle 是把真实世界里的信息汇报给区块链的桥梁,这也就是为什么我们说它是 “为区块链提供外部数据的信息平台或技术。”
与刚才提到的扩容、计算与存储问题相比,oracle 是这三大种类问题里相对已经解决得最好的一个,因此我们只通过两个领先项目 Augur 和 ChainLink 做简单介绍。
Augur(意即占卜师)是基于以太坊的去中心化预测平台。Augur 的创始人估计是听过 “三个臭皮匠顶个诸葛亮” 这句话,因为这就是 Augur 的思路。Augur 认为,一群人的智慧会高于这群人中最聪明的人,因此一群人的预测结果往往比较准确。Augur 的这种模式,除了使区块链上的事实和真实生活中的事实更吻合,还能大大降低服务器的中心化风险。但是,这种 “多数人应该就是对的” 制度显然也不是万无一失的。
而区块链项目ChainLink,则是提供让区块链的智能合约调用外部数据的中间件。
普遍认为智能合约前景广阔,但这需要建立在 “区块链能稳定、大量地获得外部数据” 这个前提条件之上,但这个条件目前还不满足。ChainLink 提出的解决思路是,给智能合约的制定者们提供多个可靠的外部数据库,用户可以在一个合约中调用一个或几个数据库,兼听则明,让数据尽量准确可信。
看到了吗,这两个项目其实都在解决 “如何确保区块链上的信息、数据真实可信” 这个问题,这也就是我们刚才说的 “把真实世界里的情况如实反应在区块链上” 的意思。
不过,虽然 oracle 已经取得了一些发展,但还有两个问题需要解决:一是oracle 的安全性还是不够,不能完全杜绝现实生活里被骗的可能性;二是成本高,智能合约使用 oracle 的花费的时间和投入,比在现实世界中获取信息要高得多。
区块链的中间层虽然不如 DApp 直观,也不如底层公链广受关注,但它却是区块链想要大规模应用(mass adoption)的必经之路。
文章来源:硅谷密探
作者: 硅谷洞察研究院
热门推荐
收起![新浪财经公众号 新浪财经公众号](http://n.sinaimg.cn/finance/72219a70/20180103/_thumb_23666.png)
24小时滚动播报最新的财经资讯和视频,更多粉丝福利扫描二维码关注(sinafinance)