前言:以太坊速度慢,扩展性差,交易费用高被大家诟病,这也让大家对很多新的基础主链报以希望,而本文的作者James Martin Duffy(Loom网络联合创始人)则认为,tps即使达到1万甚至百万其实本质上解决不了问题,因为为了扩展性,这背离了区块链的初衷。而作者认为以太坊是目前最好的基础链,基于以太坊的layer 2是最好的扩展性解决方案,可以两全其美。当然,本文作者是loom的联合创始人,有些观点代表他自己对区块链的看法,这里需要大家自行判断,也欢迎大家留言探讨。
每个月,都会有新的公司发布项目白皮书,号称能解决目前以太坊所面临的可扩展性问题。
这些新的区块链项目号称比以太坊更好、更快、更强,有的可以处理成千上万的交易,每秒交易量(TPS)甚至高达百万级,零交易费用,拥有近乎即时的确认时间。
在本文中,我将解释为什么我们认为以太坊已经赢得web3.0基石的竞赛,并且它会在未来成为主流的DApp选择的基础链。
让我们从最明显的开始。
1.以太坊的开发者数量比其他任何平台都要多,而且差距还在不断扩大。
以太坊开发的代码学校CryptoZombies.io已经拥有超过207623名用户,而且此数字一直在以每月超过30,000+的速率增长,没有任何放缓的迹象。
Truffle(以太坊开发框架)的下载量自今年1月以来,已经达到55万次,每月增长超过45000+用户。(译者注:目前已经超过76万次下载)
简而言之,以太坊开发者的数量不仅在增长,而且是在加速增长。
这意味着,如果另一个区块链平台想要在开发者数量上打败以太坊,那么它不仅仅需要超过以太坊现在拥有的开发者数量,它必须超越以太坊开发者数量的增长速度。
为什么开发者的接受度重要?
对于一个区块链平台,如果没有人愿意使用,那么平台每秒能处理多少交易根本不重要。
应用程序被更多的用户使用的前提是有足够多的开发人员来构建它们。如果没有开发人员愿意在你的区块链上构建分布式应用程序(DApp),你其实是在有效地建立一个鬼城。
开发者数量最多的区块链平台将吸引更多的开发者基于其构建现实世界的应用程序,这让它能成为最吸引主流用户的平台。以太坊不仅在这一领域有了巨大的领先优势,而且随着时间的推移,这一先发优势还在不断扩大。
为什么以太坊能吸引到最多的开发者?
2.与其他平台相比,以太坊拥有更好的DApp开发工具和基础设施
Truffle. Infura. Web3.js. OpenZeppelin. Geth. Ganache. MetaMask. CryptoZombies. MyCrypto. Etherscan. ERC20 and ERC721.
以上这些工具(还有其他工具)是由不同的开发团队不知疲倦地投入了数十万个小时构建而成,现在它们可以免费供任何想要在以太坊上开发DApp的开发者使用。
随着时间的推移,此开发者生态系统也在不断迭代。我们的团队和至少十几家其他公司正在围绕以太坊DApp开发更多的工具和基础设施,这将使以太坊开发者未来的生活变得更加轻松。
梅特卡夫定律适用于区块链开发平台基础设施。越多有价值的工具被开发出来,新的开发者的工作将变得越容易(也更享受),并且影响越大。
作为一名开发者,如果你想要构建一个取代以太坊区块链平台,你首先需要在自己的平台上构建以上这些工具的等效版本,才能与以太坊的开发易用性竞争。或者你可以在以太坊上面构建,只要建立在以太坊基础上,就可以直接利用“盒子”里的所有工具。
接下来,让我们更深入一点。让我们来谈谈为什么开发人员更愿意花时间构建这些工具。这是才是值得深入的兔子洞,让我们看清楚以太坊真正的亮点。
3.以太坊没有牺牲去中心化
当我们讨论区块链时,不得不提一个名为可扩展性不可能三角的基本定律。这有点像物理定律,说区块链只能满足3个属性中的2个:去中心化、可扩展性和安全。
这意味着,在同样的安全级别下,如果你想要增加区块链的可扩展性,你必须牺牲它的去中心化程度。
为什么这是真的?
由于区块链独特的性质,每一个验证节点都需要运行在网络上发生的每一次计算,以确保其准确性。
因此,如果你想要网络实现充分的去中心化,让成千上万的用户运行验证节点,tps会受受制于普通用户的PC和网络速度。
另一方面,如果你想拥有最快、最可扩展的区块链,你应该做以下的事情:
要求所有验证节点都是超级计算机;
网络中验证节点的数量尽可能少,以减少节点之间的连接数;
将所有验证节点放在相同的地理区域(国家,数据中心)以减少节点之间的延迟。
你能明白为什么这对于区块链来说是一个非常糟糕的主意吗?
然而,迄今为止,我所见过的每一个宣传可以实现高可扩展性的项目,这是在悄悄地弱化这种去中心化,大多数的交易对他们的用户来说都是不透明的。
为什么去中心化重要?
Chris Dixon 和Spencer Bogart写过相同的文章“为什么去中心化重要?”,值得推荐。
在Chris Dixon的文章中,他指出:开发者在什么样的平台上研发更有动力?在一个他们确信,未来没有人能改变规则,不会抢走他们的用户和利润的平台。
如果你在Facebook上或苹果应用程序商店中开发应用,你必须相信这些平台在未来不会禁止你继续开发,不会阻止用户使用和更新你开发的应用程序,不会索要高价。
在另一个方面,以太坊就是我们所说的”无需任何人许可“。
以太坊可以被任何人用于任何目的,不需要任何人的许可。没有人能阻止你将一段代码上传至以太坊网络中,没有人能阻止你的用户执行它。让我们静下心来沉浸一分钟,因为去中心化的意义实在重要。
历史上第一次,我们有一个没有人可以关闭的平台。监管层做不到,拥有超级现金的巨头公司做不到,罗斯柴尔德家族做不到,任何你订阅的阴谋论都无法做到。
如果你在以太坊上建立了一个DApp,没有人可以阻止用户匿名访问它。如果你在网络上购买或储存了一些token,网络可以保证token会永远呆在那里,没有人能把token从你手上拿走。
正因为区块链具有无须许可、不受审查、分布式的特性,使我们在互联网历史上第一次能真正拥有数字产品的所有权。是的,我们正在谈论Ready Player One。因为你拥有的数字物品所有权无法被夺走,区块链可以让我们做一些疯狂的心事情,比如网络游戏和虚拟现实中,你可以拥有虚拟化身,而这个虚拟化身不属于任何公司,只属于你,且能长久在世界保存。
更中心化的平台则得不到此类保证。
几乎每一个宣称为“以太坊杀手”的平台都只是决定权衡去中心化的程度,进而获得更高的可扩展性,并将”高可扩展性”大力宣传。这种权衡对于项目方的确是很诱人的,因为这似乎是市场的需求。
不知道其中逻辑的用户会抱怨以太坊高昂的gas费用和缓慢的交易时间,所以我们不能简单地责怪项目开发者试图向市场提供他们认为市场想要的东西。
在Spencer Bogart的文章中,他指出:
新用户和开发人员倾向于这些新网络并不奇怪:改进吞吐量是用户和开发人员可以立即感知的好处,而去中心化作为一项功能,好处似乎是无定形的。
在短期内,用户可能会受到更可扩展的区块链所提供的性能诱惑,而没有意识到去中心化的重要性,直到一记警钟将一切都击碎。
Spencer Bogart接着指出:
然而,现实是,如果没有去中心化,区块链网络将失去最重要的无需许可和抗审查的特性–即任何人都可以使用区块链网络,任何人都可以在上面开发自己的应用。
毕竟,分布式的区块链的全部意义在于提供一个坚定承诺——一个具有开放、非歧视性参与的不可篡改的账本。从某种意义上说,我们必须承受去中心化的效率低下,因为这是获得这些区块链网络特性的唯一途径。
其他达到1000 TPS或更高的区块链通过拥有一个较少的固定数量的节点来验证所有的交易,在Lisk中是101个,在EOS中是21个。
在EOS网络中,你必须信任这21个公开识别的节点,相信节点们在未来不会对网络的协议进行更改,必须相信它们不会限制某些开发者基于特定目的使用该网络。
去中心化程度降低会有什么影响呢?对于一个恶意的实体来说,相对于影响21个区块的生产者中的15个(及以上),要影响成千上万的匿名以太坊节点要困难得多。抑或是,和在中心化平台上发生的事情一样,这15个区块的生产者可能形成一个卡特尔组织,改变网络规则以攫取利益。抑或是,监管层或巨头公司对这些区块的生产者施加压力,要求他们对某些交易或用户进行审查。
Spencer Bogart还指出:
半去中心化的平台受到相同的社会和经济压力,这样压力促使中心化平台对某些用户和活动进行审查,最终半中心化跟中心化平台一样,导致相同的结局。
如果开发者不能百分百相信区块链的基础链始终是无需许可、抗审查的,他们会失去在此平台上构建应用的动力,因为还不如简单地使用传统的web服务器。
通过牺牲区块链基础链的去中心化,提高吞吐量来吸引用户的同时,这些项目在一开始就破坏了使用区块链的全部动机。
重要的是,通过改进第一层来增加吞吐量不是明智之举。虽然它的确能带来一些收获,但从根本上受到了区块链本质的限制,这不是提高可扩展性的方法。
该怎么办呢?
这就引出了我的下一个观点。
4.在一个区块链上运行全世界的分布式应用程序是不可能的:可以在第二层上扩展
试图在一台巨型超级计算机上运行互联网上排名前100的游戏和社交应用程序是荒谬的。
同样道理,在可预见的未来,如果世界上所有分布式应用程序都将运行在一个区块链平台上,也很荒谬。
仅facebook就需要数十万台服务器才能运行。然而有些人认为分布式的facebook会与其他所有DApp共享一个巨大的区块链吗?
让我们快速浏览一些数字。
Facebook每秒钟有3万+的赞和评论,纳斯达克每秒钟能达到2万+次交易,而像PlayerUnknown’s Battlegrounds这样的MMO游戏更新游戏状态时需要同时处理超过100万的用户。
即便你能实现百万级别的TPS,也只能满足10来个此类应用程序和游戏的需求。如果用户数量增加一倍,你该怎么办呢?
很显然,试图在同一条链上运行所有DApp并不现实。即便单一区块链每秒能完成上千笔交易,或者每秒百万级交易,都不是关键,没有一个区块链足够快到可以在一条链上处理世界上所有去中心化应用的需求。
增加可扩展性必须在第二层完成
解决方案是显而易见的,这些应用程序的需求可以依靠多条区块链来完成。
我们在Loom开发的早期阶段就意识到这一点,当时我们提出了“特定于应用程序的侧链”的概念。我们预见到未来一些分布式的应用程序可能会变得足够流行,甚至达到1/10Facebook的规模,它们顺利运行的唯一可能的方法就是在运行在自己的专用链上。
当然,如果您将这些DApps在自己的独立区块链上处理每秒数千笔交易,那么它们将很容易受到我们上面讨论的相同问题的影响,即为什么去中心化很重要。
但如果你把它们放在一个足够去中心化的区块链(比如以太坊)的侧链上,你可以两全其美。侧链在不牺牲安全性的前提下提供更高的可扩展性。
侧链可以选择使用与主链不同的共识算法(如DPoS)为运行于其上的DApps服务,比如满足Dapp高TPS或低延迟的需求,同时将有高安全性需求的token或数据存储在主链上。
通过这种方式,虽然侧链的去中心化程度比主链低,但是用户并不用过多信任侧链。因为他们可以选择将任何有价值的token和数据转移到主链上以保证其安全性。(更重要的是,你可以用Plasma Cash来保护第二层资产)。
通过将DApp放在一个去中心化区块链的侧链上,你既可以获得更高可扩展性的区块链的所有好处,同时保持由去中心化的主链提供的安全保证。
在Spencer Bogart的文章中,他得到了和我们一样的结论:
破局之路:高度去中心化的基础链,在更高的层上增加了中心化(和效率)。
事实上,这似乎也是V神设想的模式:
在区块链上运行星际争霸是可能的。如果实现高水平的安全性和可扩展性,所有这些不同的东西都可以在区块链上构建。而以太坊是一个安全的基础链,它没有太多的特性(高可扩展性)。
以太坊可以为第二层解决方案提供安全的基础层。
现在我们明白了:
提高可扩展性的方案需要在第二层上设计;
第一层最重要的特性是去中心化。
所以,真正的问题是:如果你不选择基于以太坊构建第二层,你还能选择谁?
像以太坊那样去中心化的平台并不多见。ConsenSys最近的一份报告指出:
目前在全球六大洲运行的以太坊的节点已经快达到17000个,这使得它成为现存的最去中心化的区块链平台。
而另外的区块链平台可能提供的功能,如更高的吞吐量、转账免费、低延迟的交易等,在以太坊的第二层上都可以简单地实现。
事实上,这些特性正是我们在Loom网络中所构建的,Zombie Chain就是以太坊的第二层,是一条无gas费,低延迟的、采用DPoS共识的侧链。而这只是众多第二层解决方案中的一种。
很难理解为什么有项目方想要取代以太坊,而不是简单地在上面建造项目。当然这得忽略项目方可以通过首次代币发行赚到数亿美金。这有点像重新发明车轮。
当然,你可能能构建一个稍微好一点的基础链,它可以提供足够的去中心化,同时提供了一些以太坊不具备的特性。但是,你需要说服所有的开发者转而支持一个全新的未经测试的平台。更别说新平台所具备的优点可以在以太坊的第二层链上全部实现。
这非常危险。
如果区块链的第二层被黑客入侵或被利用,用户的损失并不会很大,因为大多数的token和有价值的数据仍然安全地存储在第一层(以太坊)上。
但是,如果你构建了一个全新的区块链基础链,它存储用户支付真实费用的token和有价值的数据,当发生安全事件时,你的用户可能会面临损失数十亿美元的风险。
在编程圈子里,有一条规则规定:
不要自己编写一种加密方法(除非你是安全专家或密码破译专家)。
我将继续预测,在我们看到因为某条区块链基础链的安全事件导致数百万或数十亿美元的token变成空气时,我们将听到区块链工程师们的类似说法:
不要自己构建一条区块链基础链。
这就引出了我的最后一点。
5.以太坊的安全性经受过时间的考验,而新平台尚未得到验证
在写这篇文章的时候,有610亿美元在以太坊上流通。610亿美元对那些试图破解以太坊网络的人来说,毋庸置疑是一笔巨额的经济刺激。然而直到今天,以太坊主网发布已经将近3年,没有人能在该平台的安全性上找到漏洞。
请注意:的确有开发者在部署到以太坊上单独的智能合约中找到漏洞,但此处我说的是以太坊平台本身。
无人可以发现漏洞的时间越长(有很多人在尝试),那么这个平台的安全性和在未来被攻破的可能性就越低。正如Nassim Taleb所说的林迪效应(Lindy Effect):
Lindy效应指的是,不易腐烂的事物(如技术或想法)的预期寿命与其当前的年龄成正比,每增加一段生存期就意味着更长的剩余寿命。
当一个新的区块链平台出现时,开发者将不愿意使用它,因为它没有经受过时间的考验。
如果它可被可利用怎么办?如果它去中心化的程度不够怎么办?如果我不确定某条基础链在两年后还能存活,我为什么要把所有的时间基于它构建我的DApp?在没有遭受重大打击的情况下,某条区块链存活的时间越长,在开发人员的眼里,它就越值得信赖。然而,目前以太坊仅仅有一个好的开端而已。
对于现今的新区块链来说,它还需要几年时间,才能让开发者认为它是值得信赖的。但与此同时,以太坊将继续在开发者数量和基础设施支持方面领跑(更不用提真实的、实时的DApps和最终用户)。
由于以太坊的先发优势,从安全的角度来看,与更新的区块链平台相比,它似乎是一个更好的选择。更值得一提的是,正如我们之前提到的,一个新的智能合同平台添加任何新功能可能会诱发开发者离开,这些都可以简单地在以太坊第二层上构建,而仍然保留以太坊的安全承诺。
结论:以太坊并不完美,但在当下,很难想象其他智能合约平台能取代它成为分布式应用的底层基石。
JavaScript不是一种完美的编程语言,在很长一段时间里,它都被各种严重的问题困扰。但这些问题并没有阻止它成为web2.0的主要编程语言。
现在我们也已经达到了临界点,我们将会看到在web3.0中以太坊也会承担相似的角色。
尽管目前以太坊存在种种缺陷,但有一群业内最聪明的人正致力于解决这些问题,并建立开发工具和基础设施优化以太坊生态。
在未来,当然有可能有另一个更优秀的区块链平台出现。它有以太坊所有没有的重要优势,足以让以太坊开发者们逃离并转向新平台。但现在而言,我不会把自己ERC20 token押在它上面。