编者按:本文来自区块链大本营,来源:Breakermag,作者:AndreasWallendahl,译者|Guoxi,责编|乔治,Odaily星球日报经授权转载。可扩展性一直是以太坊的一大痛点,以太坊2.0的升级计划中关于可扩展性的改进占据了半壁江山。在以太坊2.0计划面世半年后的今天,可扩展性问题有所好转了么?本文主要概述现有以太坊可扩展性解决方案以及这些方案所做出的折衷,同时为区块链开发人员总结了一些可以开箱即用的可扩展性解决方案。可扩展性究竟难在哪里?为什么可扩展性难题如此之难?我经常说到“可扩展性三元悖论”,这是因为区块链必须在各个属性之间做出折衷。对于所有区块链来说,同时获得去中心化、可扩展性、安全性三个属性并非易事。——以太坊联合创始人VitalikButerin,2017年11月比特币和以太坊等无需许可的公共区块链在第一层选择了优化去中心化和安全性这两个属性,因而它们在可扩展性上都表现不佳。在这些区块链中,任何参与者都可以花费相当低的时间和资本承诺成为一名验证者,低门槛吸引了成千上万的挖矿节点参与到工作量证明中,保护区块链免受51%算力攻击,这种高度的去中心化带来了高度的安全性,按照今年4月份的数据来算,在以太坊区块链上执行51%算力攻击的成本为每小时10万美元,作为加密货币中的老大哥,在比特币区块链上执行51%算力攻击的成本为每小时35万美元。得益于高度的去中心化和高度的安全性,以太坊备受人们的青睐,从而成为全球区块链经济中的首选,并为去中心化应用程序提供了一个良好的平台。但是,以太坊在去中心化和安全性方面光鲜的背后则是在可扩展性上的巨大牺牲。虽说以太坊对于简单交易的理论处理速度上限为每秒14-15笔,但在当下,以太坊每秒只能处理大约5笔交易,一旦达到每秒6笔交易就会出现负载过重的现象。对于任何主流的消费者应用或金融应用来说,这个数量级都太小了,更何况是作为一个全球性的平台。以太坊可扩展性最大的制约条件是,像以太坊这样无需许可的公共区块链需要每一个挖矿节点验证每一笔交易。——JoshStark,《深入理解以太坊第二层可扩展性解决方案》这么严重的问题,难道整个以太坊社区都坐视不管么?并没有,事实上以太坊基金会对以太坊2.0中的区块链基础设施升级有着一个完整的规划路线图,在其中可扩展性占据了重要的地位,也就是说在未来几年里以太坊将集中力量解决可扩展性问题。但是远水解不了近渴,如果我们现在正在构建的应用程序需要可扩展性,那该怎么办呢?当然了,这取决于你具体的使用场景。即使将来以太坊2.0在可扩展性方面取得了巨大成功,你可能也不希望将所有的交易都发送到以太坊主网/第一层上,你还是会选择第二层解决方案。如今以太坊仍存在以下3大痛点速度慢:交易的吞吐量过低,有时交易的数量超过区块链的承载能力就会造成区块链网络中的高延迟。价格昂贵:用户需要为每笔交易支付燃料费用,而随着交易数的增多,燃料费用以及以太币价格也随之水涨船高。用户体验急需改善:用户必须签署每一笔交易,直到这笔交易被区块链确认后才可以发起下一笔交易。可扩展性解决方案都有哪些?接下来,我们来聊聊当前业界都有哪些已经落地了的可扩展性解决方案,这里我们只讨论最常用的5个,当然了这并不是全部,除此之外业界还有很多能提升区块链交易吞吐量的可扩展性解决方案,就比如说区块链链下计算,但由于篇幅原因这里不做过多讨论。区块链链下交易签署:使用以太坊的公钥私钥对来在区块链链下签署交易,你可以把交易存储在本地或发送出去,甚至还可以以点对点的形式传递,最终交易被发送到区块链上时会按照交易的内容和数字签名更新区块链的状态,更新以太坊预言机价格)。支付通道:交易对手之间在区块链链下建立的连接,支付通道可以用来执行交易,它只向区块链上传最终的交易结果。状态通道:交易对手之间在区块链链下建立的连接,每笔交易都会更新当前的状态,最终的状态会通过一笔交易记录在区块链上。侧链以及转接桥:通过交易转接桥智能合约以及相应的交易中继机制将包含以太坊完整功能的侧链锚定到以太坊主网上。Plasma链:包含以太坊所有功能的子链,Plasma链会定期将其状态的变化提交到根区块链上。可扩展性解决方案的折衷
各个解决方案的安全性、吞吐量、可用性以及使用成本怎么样?下表做了详细的总结。各解决方案的原理及具体实现
以下介绍的可扩展性解决方案都是开源且支持开箱即用的,你可以将它们用在去中心化应用程序中。不过需要注意的是,这些可扩展性解决方案都仍处于开发阶段,在你的应用主网上线之前一定要仔细审计它们的安全性。为了方便使用,这里并没有列出那些还没有真正落地或是代码还未开源的可扩展性解决方案。1、区块链链下交易签署用户使用以太坊公钥私钥对在区块链链下签署交易,公钥私钥对可以由keccak256哈希算法计算得出。这笔签署后的交易可以存储在星际文件系统中或数据库中,然后分批加入到以太坊主网上的一笔笔交易中。就比如说,如果你想要在以太坊主网上声明一些东西的所有权,你可以将这些声明汇总起来作为主网上的一笔交易,而不需要分别为每一个声明发起一笔交易。你可以通过点对点日志存储系统scuttlebot来点对点地传递这笔交易,当接收方通过公钥验证交易有效时,交易就可以用作以太坊主网上智能合约的预言机输入。如果交易的设置允许,那么智能合约在接收交易后可以执行交易中的内容。在以太坊柏林开发者大会上,稳定币MakerDAO团队基于链下交易签署的方法提出了一种链下价格预言机的解决方案。可参考资源KarlFloersch:哈希函数以及交易签署基础教程https://cryptoeconomics.study/MarioConti:基于链下交易签署的价格预言机https://view.ly/v/Rt275OYzLCI1VitalikButerin:以太坊预言机https://blog.ethereum.org/2014/07/22/ethereum-and-oracles/2、支付通道与状态通道状态通道交易的双方将各自的区块链初始状态锁定在一个智能合约中,你可以简单地把这个智能合约看作是一个多重签名的钱包。这样确保了在状态通道运行期间智能合约中的资金一直处于冻结状态,直到双方共同签名进行解锁。交易的双方通过不断传递状态的更新来进行交易。只要双方对最终的状态更新没有异议,他们随时可以共同签名来解锁智能合约中锁定的资金。当双方完成交易时,他们会各自向智能合约提交状态更新。如果他们的状态更新相匹配,那么最终的状态会被写入到区块链中,通常情况下,这时的状态会与状态通道开启时的初始状态有所不同。支付通道状态通道只能用以太币以及ERC-20通证计价,而支付通道没有这种局限性。支付通道精简的结构允许更大的吞吐量和更高效的设计,因为支付通道只会更新一个状态:净差额。出现争议该怎么办?根据协议设计,由交易双方签名的每个状态更新都会被分配一个唯一的随机数,用以标识出每一次状态更新。在遇到争议时,以随机数较新的状态为参考。在一次交易中,当甲方提交状态更新时,他的挑战期也随之开始。在此期间,乙方可以提交一个随机数较新的状态更新。如果乙方没有提交状态更新,挑战期计时器到期,智能合约将会选择随机数较新的状态作为最终状态,将此状态上传至区块链并按照此状态解锁并返还资金。现有的项目以及实现以太坊雷电网络:一种支付通道解决方案,它支持近乎即时、费用低廉且可扩展的交易。闪电网络是对以太坊区块链功能的完善,它兼容所有ERC-20通证。Connext:Connext正在构建一个开源的点对点微支付基础设施。他们的第一款产品使用了以太坊区块链上的支付通道,支付通道可以将许多区块链链下交易汇集成数量很少的链上交易。3、侧链以及转接桥转接桥将交易信息从运行着各自共识算法的侧链传递到以太坊主网中。它会在主网上锁定资金或状态,并在侧链上运行去中心化应用程序收集并处理交易。用户将其在以太坊主网上的以太币/ERC-20通证存入转接桥智能合约。期间去中心化应用程序会一直运行,当所有交易完成后,用户可以在以太坊主网上取回自己的以太币/ERC-20通证。用户只需要支付存款和取款这两笔交易的手续费。对于在侧链上运行的交易,用户可能还需要支付较少的交易费用,侧链Loom和POA都存在运行成本,因而Loom向去中心化应用程序以Loom通证的形式收取手续费,POA则要求用户在侧链上以POA通证的形式支付燃料费用。想要消除侧链上的燃料费用,你完全可以把去中心化应用程序运行在一条私有区块链上,但这样做最大的一个挑战是,你需要吸引矿工来私有区块链上挖矿。可参考资源观看视频:Parity转接桥在以太坊测试网络Ropsten和Kovan上使用以太币/ERC-20通证的测试部署ParityBridgeRopsten-KovanEther-ERC20TestDeployment区块链资产管理公司Melonport和区块链平台公司Colony已经开始实现并测试Parity转接桥,去中心化商业平台Swarm.City和区块链非营利组织Giveth正在测试转接桥上的消息传递机制转接桥技术详解:https://wiki.parity.io/Bridge转接桥智能合约代码:https://github.com/poanetwork/poa-bridge-contracts现有的项目以及实现POA网络是一个基于以太坊旨在为智能合约提供开源框架的平台。POA网络是以太坊的一个侧链解决方案,在共识机制方面它使用了权威证明。Loom是一个以太坊第二层可扩展性解决方案,它专为社交、游戏等需要非常高吞吐量的去中心化应用程序设计。开发人员可以使用Loom软件开发工具包建立一条专为可扩展性优化的侧链:去中心化应用程序区块链,其使用了DPoS共识机制。SKALE的弹性侧链继承了标准侧链的全部优点,同时它还提供完全去中心化网络带来的安全保障。弹性侧链具有性能强大、可配置、兼容以太坊/Web3协议的特点。4、Plasma链Plasma链技术概览初始化Plasma链,编写智能合约,并将其提交给根区块链;交易都在Plasma链中运行,Plasma链会定期向根区块链提交数据;Plasma链的共识规则建立在防伪证明上。如果某一区块是无效的,任何人都可以提交区块无效的证据来回滚区块链;每条Plasma链都可以设置独有的规则,以便对特殊用途的去中心化应用程序做出优化。现有的项目以及实现正在开发Plasma链的团队:包括FourthStateLabs、OmiseGo、Kyokan和Plasma团队。Kyokan最小可行Plasma链:为了方便开发人员快速上手,Kyokan面向支付场景实现了最小可行Plasma链。Plasma团队:Plasma团队致力于为整个以太坊社区提供开源的Plasma链实现,他们的使命是通过探索Plasma链的全部潜力来推动第二层可扩展性技术的发展。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。