以太坊上的扩容方案:概述
收藏
分享
微信扫一扫
分享到朋友或朋友圈
目的
区块链世界中,可扩展性是每个项目都需要应对的问题。从以太坊项目入手,有利于我更好地了解这个难题,并作出投资决策。以太坊扩容系列结束后,其他项目也可能涉及,例如EOS和Quarkchain。
这些文章不会涉及到代码,我只概述我理解的可扩展性工作机制。
2018:以太坊基建之年
之前在关于区块链可扩展性一文中提到,目前尚无区块链兼顾
去中心化、可扩展性和安全
。对以太坊来说,可扩展性问题在ICO和Cryptokitties等应用中已体现出来,自然这成为以太坊开发者考虑的重点。按照创始人Vitalik Buterin的说法,2018年将成为以太坊基础设施建设之年:
[2018] will be the year where all of the ideas around scalability, Plasma, proof-of-stake, and privacy that we have painstakingly worked on and refined over the last four years are finally going to turn into real, live working code.
从实用角度来说,以太坊尚处于早期,当前的情况是它既不安全(考虑到智能合约中经常出现的漏洞),也难以扩展。距离最终目标:为几十亿人服务的安全易用的去中心化网络,路途尚远。
为了解决这个问题,目前有多个项目从事以太坊扩展性研究。最近一次综合这些方案现状的是今年三月份在巴塞罗举办的ScalingNOW!大会,参会项目类别和名称如下:
State Channels(状态通道)类别
- uRaiden
- Counterfactual
- FunFair
- Decentraland
- Liquidity Network
Sidechains(侧链)类别
- Parity Tech
- POA Network
- Plasma
Sharding(分片)类别
- Diamond Drops
Multi-chain(跨链)类别
- Cosmos
Alternative(其他)类别
- TrueBit
扩展性的难点
扩展性讨论中常出现的一个缩写词是tps(transaction per second, 每秒交易数),当前以太坊差不多有15tps,而Visa在65000tps左右,可见以太坊成为日常生活的一部分,还有很长的路要走。这种限制发生在以太坊设计本质上,因为每笔交易都会被网络中每一个节点处理;每个节点,无需依赖其他人告诉当前网络状态,它自己可以得知。
或许我们可以让每个节点做更多的事情,例如把区块大小翻倍,但这样子做会牺牲去中心性,因为处理能力较强的节点将在挖矿中获得优势,从而使得全网算力分布更加集中。
所以,我们的目的是在不增加每个节点工作量的前提下,尽可能让
整个网络
做更多的事情。目前看来有两种方法。
如果每个节点无需处理网络中的每个操作
这个假定直接推翻了以太坊的设计原则,但如果我们把网络切成两半,各自可以半独立运行呢?A部分处理一半交易,B部分处理另一半,这将使全网tps翻倍。在此基础上,我们把网络切成多个,这将更大地提高tps。这就是前文提到的Sharding(分片)处理。
分片处理由Vitalik Buterin带领研究。以太坊将被划分为多个shard(片),每一个可以独立处理交易。分片技术经常被称为
Layer 1(第一层,或称链上)扩展方案
,是因为它在以太坊协议中实现。这也意味着,分片技术将造成hard fork(硬分叉)。硬分叉的定义就是区块链发生了永久性的分歧,导致没有升级的节点无法验证已升级节点产生的区块。
如果我们能从以太坊当前处理能力中获得更多
第二种想法就是,与其硬分叉以太坊,不如我们基于当前的tps做更多的事情。这种通常称为
Layer 2(第二层,或称为链外)扩展方案
,它们建立在以太坊之上,无需修改以太坊本身。典型的例子如上文提到的State Channels(状态通道),Plasma(侧链的一种)和TrueBit(提高复杂运算能力)。
- 状态通道
以有赌注的打牌为例,假如我们把扑克牌游戏放到以太坊上,这将注定是一个比较昂贵缓慢的游戏,因为参与打牌的人需要等待矿工的确认,而且每次动作都需要付出以太坊的gas,这个实在难以接受。不如,我们找个以太坊之外(链外)的地方打牌,每次输赢先用本子记下来,最后到以太坊链上统一结算。这将极大加快我们的打牌进度,并且也不影响最终结果。
当然,实际运行起来是有很多细节和限制的,我将在以后的文章中解释。
- 侧链
另一种打牌方法,我也不在以太坊上打,但我自己发明一条区块链,作为以太坊的子链依附其上,而且子链上还能挂载下一层子链。这种方法也能极大减少以太坊的负荷并提高tps。典型的项目就是Vitalik Buterin发布的Plasma技术。
- TrueBit
TrueBit不会直接提升网络中的tps,它的目的是让以太坊应用能处理较为复杂的运算,并且能在主链上得到验证。考虑gas费用,复杂运算在以太坊上进行是很贵的。TrueBit有一套专门的验证计算结果的方法,将在以后文章中论述。
跨链操作
目前公链(public blockchain)数目不少,Cosmos致力于建立基于区块链的以太网(Internet of Blockchains),使得各个区块链能连接到一起。Cosmos将从整个网络角度提升tps,和单个区块链的链上链外方案构成补充。
总结
- 目前尚无区块链兼顾去中心化、可扩展性和安全。对以太坊来说, 可扩展性 是2018年的重点
- 解决以太坊扩展难题,目前有 链上 和 链外 两种解决方案
- TrueBit专门用来处理 复杂运算
- Cosmos能从整个网络( 跨链 )角度提升tps
到这里也就结束了以太坊扩容方案的概述,接下来的文章,将按照链上、链外、复杂计算和跨链四个角度逐一解析,也欢迎各位的反馈。
免责声明:本文版权归原作者所有,不代表MyToken(www.mytokencap.com)观点和立场;如有关于内容、版权等问题,请与我们联系。
相关阅读
专访 Mable Jiang:复盘 Multicoin 投资方法论与 DeFi 洞察
原文标题:《对话 Mable:复盘 Multicoin Capital 的投资方法论与 DeFi 观察 | 链捕手》受访者:Mable Jiang,Multicoin Capital 执行董事撰文:王...
信标链、PoS、分片……接触以太坊 2.0 得先理解这些术语
原文标题:《以太坊 2.0 术语库》整理:ETH 中文网Attestation 证明证明是指验证者所发起的投票,由验证者的签名聚合而成,用以证明区块的有效性,投票通过验证者的余额进行加权。Attest...
手把手教你搭建 IPFS 私有网络
在联盟链的场景下,IPFS 作为去中心化存储的首选方案,本文将介绍如何使用 go-ipfs 搭建一个私有网络并进行简单使用。...