大筛选:为什么你不该在以太坊上ICO

2018年8月14日,克里斯蒂安

在我们完成StellarX之际,我想和大家分享今年早些时候在以太坊上完成的一个研究项目。这是一个公开的秘密,它只是一个错误的平台上的大多数东西正在建立——它本身并不是一项糟糕的技术,但企业家已经将以太坊所使用的技术用于错误的用途。

清算即将来临,就像大筛选:

在那里,高成本和缓慢的性能几乎淘汰了整个生态系统,除非你的项目特别适合以太坊的优势,否则它将与其他许多项目一起消亡。

我已经厌倦了人们用他们从一些未经测试的白皮书中捏造或复制的东西来辩论加密货币。这里我使用的是实际测试的数据,这花费了我们一万三千美元。我和我的团队花了10个小时在以太坊网络上运行一个“大规模”应用程序,而当时gas费很低,因此与区块链公司在实际部署中学习这些课程所支付的费用相比,这只是微不足道的费用。

以太坊的优点和缺点

以太坊是一个分布式编程平台——为自治组织和匿名应用程序编写脚本软件。Vitalik自己在bitcointalk的最初声明中是这样说的:

以太坊是一个模块化、有状态、图灵完的合约式脚本系统…我们的目标是为分布式应用程序提供一个平台。

今天,就像2014年一样,如果你正在构建一个分布式计算机程序,一个没有单独所有者和中央决策机构的程序,以太坊是一个不错的选择。对于完美的用例,可以考虑类似于 Augur的东西——他们需要一种完全自动化的、无主的方式来对真实世界的事件做出真实的决定……因此,他们可以绕过监管部门对赌博平台的监管。

但是大多数区块链公司不需要智能合约来执行他们的核心业务逻辑,或者想要避开一些法律或司法问题。他们只想发行数字资产和处理交易。这正是以太坊所能让你失望的地方。如果你正在做这些:

  • 发行代币
  • 用户会来回交易
  • 你想让这些交易更便宜、更实时地发生

以太坊是错误的选择。它很慢,而且非常昂贵,而且在“一个账户做很多”和“很多账户做了一点”的用例中,它的表现都不像你想的那样。

让我们来看看数据。我们的测试基于Kik设计的第三方负载测试,我们尽可能地修改了规范以使以太坊的性能更好。如你所见,它顽固地蔑视我们的努力。我们的结果和方法在GitHub中,我们鼓励您检查我们的工作。

问题1:你最热情的用户会经历最糟糕的体验。

以太坊基于每个账户排队交易,然而矿商不会按等待时间优先排序交易。事实上,在gas价格相等的情况下,矿商被随机分配。因此,一个活动帐户建立一个事务队列,而网络没有清除它的机制。对于大容量账户而言,其结果是不断增加的事务延迟。

以太坊使用两个数字处理交易,一个交易nonce(我们称之为“nonce”)和一个账户nonce,为了清楚起见,我们有时会称其为“计数”。交易nonce使账户的交易有序;一旦其中一个帐户被挖掘,该帐户就会计数。当提交一个带有nonce的新事务时,以太坊会将该nonce与当前计数进行比较,以决定要做什么。如果事务的nonce低于计数,则忽略该事务。如果更高,交易就会延迟。只有当nonce匹配计数时,事务才能记录到一个块中。下面是它工作原理的简化图:

 

这实际上和你在熟食店或像DMV这样的政府办公室看到的“取号机”系统非常相似,这是一种非常常见的防止重播攻击的方法。许多其他区块链也做类似的事情。然而,以太坊的交易-阻塞算法(或者,实际上,它的不足)增加了在你的DMV窗口工作者的麻烦——矿工们——不一定要对下一个数字负责

矿工通常对接受的交易有自己的标准。许多矿工只接受高gas价格交易。有些只接受自己的交易。这样的矿工会让块空间闲置,然后从您的队列中填充它。现在想象一下,在车管所,某些窗口告诉人们“对不起,不能帮助你”,而每秒钟都有更多的人排队进入候车室,在你面前有一群小丑,他们必须在你和别人说话之前得到帮助——好了,你已经对以太坊如何处理交易有了一些了解。

直到我们尝试实现Kik的负载规范:480个账户平均每分钟提交1个txn,持续3小时,我们才意识到它是这样工作的。总共有86,400笔交易,平均每秒8笔。

我们利用ETH加油站对gas的“标准”进行估计,预计中值确认时间约为30秒,而13个小时后,我们一半以上的交易仍未进入一个区块。我们在13小时50分钟停止了测试,我们有50.1%的交易没有完成。(提醒:如果您想检查我们的工作,原始数据在我们的GitHub中。)我们以为我们搞砸了,但是,不是。我们刚刚排了一长排的队,一些jabroni项目的交易也在那里等了一整天,什么也没做。

当你在别处读到“以太坊交易时间”时,发布的数字几乎总是假设一个单一的、一次性的事件。它们不属于应用级环境。我们再次进行了Kik测试,以确保我们做的一切都是正确的,我们又花了6.9个ETH,得到了基本相同的结果。

这是一次典型的运行经历——这只是第一个字母数字的账户。您可以看到等待时间随着事务的堆积而增加。

 

抽象地谈论“结算时间”是一回事。但是从实际用户体验的角度考虑上述数据。用户使用以太坊应用程序的次数越多,运行速度越慢。仅仅3个小时后,他们的交易就需要8个小时才能确认。

当然Kik的测试规范说我们应该提交交易三个小时然后停止,所以我们就这样做了。在现实世界中,您不能在停机时间内进行构建,以使计数赶上进度——所以从理论上讲,事务队列变得越来越糟糕。当然,在实践中,当你的以太坊应用程序变得毫无反应时,用户将大量流失。

这是第二个测试的性能分布。我把最慢的5%剪掉了,这样长尾巴就不会是扭曲的整体。

 

作为对比,这是Kik用同样的标准来在恒星上测量的。

我只是从他们的帖子里抓取了这个图,我没有原始数据,所以我不能在同一个图表上显示我的结果。但使用电脑的魔力,我至少可以覆盖曲线:

 

在你注意到x轴之前,一切看起来都是相似的。我们在以太坊测得的等待时间是它的3000倍。简而言之,这就是排队问题。

这个性能问题目前是以太坊的一个基本部分。切片或Casper之类的改进在理论上是很有希望的,但这些都是在以太坊几乎最大的复杂度基础上进行的复杂修复。闪电网络之类的东西可以依赖于比特币固有的简单属性;而这里没有什么基本的东西。摩天大楼通常建在基石上,而不是另一幢摩天大楼的顶部,然而这正是很多以太坊扩展方案所建议的那样。

唯一确定的性能改进是在gas上花更多的钱,并希望更快地通过每个帐户队列。事实上,我们在第三个3小时的试验中做到了这一点——我们之所以这么做,是因为“我们应该尽我们所能来实现这个目标”。

前两次试验均采用了ETH gas站推荐的“标准”。我们第三系测试使用“快速”版(≈4 Gwei),花了11.8个ETH在480个账户上。

性能提高了——只比Kik在Stellar系统慢500倍——但还是不够快。待办事项和支付事务被挂起而无事可做。

不满的事务聚集在一起形成一个场景。

问题2:广泛采用的成本非常高

对用户来说是如此。但是以太坊也不适合另一种形式的应用,你可能会看到像Etsy这样的应用程序,在这种应用程序中,你可能会看到很多人每隔一段时间就会登录网站,而不是几个人。这是因为以太坊应用的用户成本随着用户数量的增加而快速上涨,这就是为什么每当有人尝试在多个账户上使用该网络时,你会看到70倍的价格飙升

我们顺便捕获了这些数据,寻找解决排队问题的方法。为了防止交易积压,我们重构了Kik规范如下:我们没有几个账户提交一堆交易,而是将一堆账户(28,800个)拆分,每个账户只做一笔交易。为了坚持最初测试的8个txn/s的准则,我们在一个小时内提交了事务。

奇怪的是,这实际上对性能没有多大帮助。确认时间中位数为23分钟——实际上比上面的“快速版”测试要慢。更奇怪的是,我们提交的首批交易中有一些是最后确认的:

我们知道帐户队列不可能是问题所在。事实证明,一旦我们的交易开始进入网络,矿商的费用就会飙升。因此,我们最早的交易,提交前测试的“标准”定价,很快被不够。他们在低优先级上徘徊了好几个小时。

我们发现了以太坊的另一个恶性循环。添加用户可以立即调整成本。在现实世界中,单位数量的增加意味着单位成本的降低。基本上整个私人公司都是建立在这个理念之上的——“规模经济”。但这里:每个增量用户立即增加了每个用户的成本。就像怪诞经济学。

在我们的测试中,你可以看到价格在每小时的1小时内攀升6倍。

同样,测试的内置时间限制使一切看起来比实际更可持续。推断出这个图表,然后把指针放在中间的某个地方。你的每个用户在稳定使用两周后的成本是多少?两年?

上述测试每小时的成本为1445美元。跑在gas价格较低时,只是≈1 Gwei标准速度,它以每秒8笔的速度运行。要做一个基本的测试,每年要花费1260万美元。

如果你将这种成本结构应用到实际业务中,你会发现以太坊的成本已经达到了不可持续的高水平。例如,贝宝每秒可以完成240笔交易。将实现这一点所需的性能修正放在一边,并将我刚才记录的价格上升动态放在一边。如果贝宝是建立在以太坊的基础上并支付了我们所观察到的费率,那么他们去年就会支付3.8亿美元的网络费用。那将是他们净收入的21%,再一次,这是假设价格可以预期。

一个理想化的以太坊的版本在全球最赚钱的支付企业上是行不通的。对于我们其他人来说,真实的版本如何起作用?

现在怎么办呢?

“如果你想在一个不可扩展的以太坊之上建立一个去中心化的Uber和Lyft,那你就完蛋了。句号。”——V神(Vitalik Buterin)

我鼓励你们去看这句话完整版的出处——它展示了以太坊团队中四个最重要的成员说了很多我在这里说过的话。当今天高调的ICO成为明天的警示故事时,这只会对生态系统中的每一个人都有害,他们知道这一点。

毫无疑问,以太坊社区是区块链中最强大的社区,如果没有Vitalik的愿景,根本不可能有象征性的经济。开发人员向技术询问它从未打算交付的东西,这并不是以太坊的过错。这是人们追逐去年的ICO资金,不管什么工具是正确的。以太坊的问题都始于误入歧途的企业家。不要成为他们中的另一个。

如果您正在构建一个事务性应用程序,该协议将不支持用户预期的行为。我非常尊重以太坊的雄心和复杂性,但我已经开始将其视为区块链高级定制时装。美丽,错综复杂,高概念的,高尚的。并不是你想穿去上班的衣服。

一个年轻的开发者后悔他的选择

如果你想要无信任的分布式计算——如果这就是你正在开发的——当然使用它。如果你从来没有计划过要启动任何东西,以太坊也很擅长这个——问问超过50%的ICO项目,如果你能找到他们,他们在象征性销售之后就消失了。他们已经成功骗到钱了。他们很可能在波多黎各的海滩边。

但如果你想要建立一个长期存在的企业——如果您计划一个典型的用户对用户的服务,并且不需要将您的业务逻辑捆绑在一个智能合约中——如果你计划发行一项数字资产,并且你计划作为你战略的核心部分以高交易量进行交易,那么选择一个对此进行优化过的平台。做我们曾经做过的事,在恒星上开发。

Tomer Weller设计并运行了负载测试,并为本岗位提供了技术指导。

 

原文:https://blog.stellarx.com/the-great-filter-why-you-shouldnt-ico-on-ethereum/

长按保存或者分享

Close