当前位置:首页DEFI如何扩展defi吞吐量:第1层(第2部分)

如何扩展defi吞吐量:第1层(第2部分)

气体上限

矿藏决定了区块的瓦斯上限。让我们快速了解一下矿工和联营企业是如何运作的:几乎所有的矿工都选择将自己的算力来源与其他公司的资源中心化起来。他们将中心化资源,获得稳定的收入流,而不是独自挖矿,冒着长期无回报的风险。因此,为了验证每个矿工的贡献,分配下一个区块的挖矿任务,矿池应运而生。大部分石块都是从大水池里挖出来的。下图显示了自以太坊诞生以来矿石池产量所占的比例

如何扩展defi吞吐量:第1层(第2部分)

从上图可以看出,火花矿、以太坊矿和鱼塘在区块产量方面遥遥领先。

除了参与硬分岔,矿池运营商还承担着一项重要的治理责任:设置以太坊的气顶。不同于区块时间和天然气价格的特点,需要主动设定每个区块的天然气上限。新区块的气顶与上一区块的气顶差距必须在0.1%以内,因此每个区块的大小只能上下略有波动(见黄皮书:47号方程式)。如果油气藏运营商达成共识,气顶可以大幅调整:在2.5小时内,气顶可以翻倍或减半。如果没有一致意见,气顶是油气藏规模的加权中值。

目前,由于缺乏关于矿工真实行为的详细信息,我们采取了一种比较简单的方法:投票制度。希望今后通过软分岔将该方法转化为更精确的算法。

–以太坊基本设计原则(2015年3月)

从以太坊发展之初,设定瓦斯上限是矿工们的权宜之计。这种权宜之计一直在继续,因为其他的选择都不够好。EIP1559提出了一个不同的机制,社区目前正在讨论是否将其添加到柏林硬分叉。在那之前,石油储备运营商可以像欧佩克管理石油挖矿一样管理天然气供应。

如何扩展defi吞吐量:第1层(第2部分)1

-以太坊池操作员-

最近,世界上两个最大的以太坊矿做出了一个有争议的决定,将天然气产量提高25%。其目的是通过增加天然气供应来抑制过高的交易费用。到目前为止,我们发现无论如何提高气顶,都跟不上用户交易需求的增长速度。这意味着天然气价格在经历了短暂的下跌之后,最终将再次上涨。

如何扩展defi吞吐量:第1层(第2部分)2

增加气体上限将给以太坊带来高昂的无形安全成本。可见,提高瓦斯上限将提高三次封堵率和空封堵率。在正常事务负载的情况下,这种影响并不显著。但出于安全原因,我们只对极端情况感兴趣,而不是正常情况。根据Perez和livhits(2019)的研究,在最坏的情况下,如果产生一批效率极低的事务(在相同的气成本下,此类事务的处理速度比普通事务慢100倍),节点需要花费90%的时间将其打包成块进行二次处理这一块体,造成节点滞后,挖出大量空块体和第三系块体。但这方面的研究还没有完全解决这个问题。因此,两个主要节点开发者,Péter Szilágyi和Alexey akhunov批评了提高天然气上限的决定。

所以,到了气顶以后,气价就会上涨,看来不应该再提高气顶了。那我们还能做什么呢?我们能降低汽油的成本吗?

煤气消耗量

交易的天然气消耗量基本上是其EVM操作的消耗量。一个事务由多个EVM基本操作组成,每个操作的耗气量由EIP和hard分叉来管理。在过去的硬分岔中,主营业务用气量增加(EIPs 150、160、1884)和减少(EIPs 1108、2028、2200)。计划中的“柏林”硬横跨也考虑了一些天然气消耗变化(EIP 1380、1559、2046、2565、2537)。

所有这些变动的目的都是为了使手续费更准确地反映经营的实际成本。因为随着计算机性能和算法效率的提高,计算操作的成本将越来越低。但存储操作的成本却大不相同。存储和搜索操作的成本会随着区块链状态规模的变化而变化,而以太坊的状态规模总是在增加。这种增长不会随着存储设备的升级或数据库技术的变化而改变。

这意味着存储仍将是dic成本的很大一部分。创建一个新的平衡需要20000个气体,修改现有的平衡需要5000个气体。一次转帐至少要换两个月,换一次至少要换四个月。更复杂的dic事务将涉及更昂贵的状态操作。降低相关存储的数量和成本似乎并不容易。这种趋势不可能被九个多头所拉回来。但好消息是,layer-2扩展将尝试使其存储密集和计算密集,而且看起来会更令人愉快。

最后,提高区块气限还存在安全隐患:提高气限是最差的有效方法。改变天然气成本也是非常危险的,因为目前真正的平均运营成本是非常危险的。

到目前为止,很清楚为什么扩展以太坊是一个棘手的问题。在我们讨论您提出的解决方案之前,我们想讨论一下以太坊可能会伤害到DIF用户的另一个缺点。

矿工们可以挖矿价值

尽管区块生产者受到共识规则的限制,但它们也为它们提供了一些重要的自由,例如交易选择和排名。对于一般的代币转让来说,生产者的自由度不会有太大的影响,但是对于DeFi交易这样的交换交易,前置运行可能会获得巨大的经济价值。更复杂的问题是目标事务夹在两个事务之间,就像三明治一样。Dai等人。(2019年)将从抢购交易中获得的价值称为矿工可采价值。

没有证据表明,目前的矿业集团正恶意利用他们的交易自由,但如果他们这样做了,肯定有利润。通常,gETH客户机在池中使用。客户根据天然气价格对交易进行分类(见1和2)。这就导致了天然气的竞价,而天然气的最高出价可以先打包在链条上。这种机制的负面影响是,任何人都可以通过提高出价来窃取交易。竞争激烈的贸易商将继续提高出价,直到他们的利润完全被汽油费耗尽。在这一点上,所有能从交易中获得的价值都将变成GAS FEE并进入矿工的口袋。费用的交易可能很快就会被打包到链条中,并且不会有竞价的交易者能够像拍卖一样轻松地相互竞价;因此,挖矿者的可挖矿价值并没有预期的那么高,毕竟,矿藏之间存在竞争)。

另一方面,也可以让自己的交易遵循一个又一个交易的链条,比如第一个清算头寸后的价格信息传递机制更新信息。这就是所谓的返程,这最终将成为矿工们的收入。

矿业公司的可挖矿价值最终来自普通的DeFi用户,价差更大,价格更差,手续费更高,交易失败更多。如果你想获得更好的DeFi体验,你应该解决这个问题。解决方案之一是限制交易排名的自由,例如要求根据天然气价格从低到高对区块中的交易进行排序。

现在我们已经全面了解了以太坊的局限性及其对DeFi的影响。当然,所有国王队都在开发解决方案,对吧?

一层1,两个愿景

现在有很多优秀的团队在研究不同的可伸缩性解决方案。解决方案有两个主要方向,“1层”和“2层”Layer-1致力于构建一个更具伸缩性的区块链来取代当前的以太坊,而Layer-2则试图访问基于当前以太坊的更具可扩展性的基础设施。让我们在这里讨论第1层和第2层方案,留待下一篇文章讨论。

我们从最明显的解决方案开始:提高当前以太坊区块链的性能。这就是为什么。X同事正在做。关于以太坊客户端的性能改进,还有很多工作要做。但是,ETH1。X没有得到应有的支持,因此进展缓慢。如果你想对这个方向的性能改进程度有一个基本的概念,你只需要了解Solana。Solana的吞吐量是以太坊的1000倍,仍有改进空间。缺点是它需要非常先进的硬件来运行整个节点。

大多数其他解决方案有三个共同点:(1)将web程序集用作虚拟机;(2)将状态最小化的体系结构;最重要的是,(3)碎片化。以太坊目前以串行方式执行所有事务。事实上,区块链的全部意义在于在队列中进行交易。但这种模式的缺点是难以并行执行事务,无法通过直接投入更多资源来解决扩张问题。然后,将区块链划分为几个松散连接的域,一个线程称为“片段”,可以实现并行处理。在一个片段中,事务仍然是连续发生的,但是不同分区中的事务是一步一步发生的。这使得所有分区能够并行运行,并且网络的吞吐量会随着分区的数量而增加。我们用来划分网络的域不需要与分区一一对应。我们可以将多个域分配给同一个片段(线程),甚至可以移动它们来进行负载平衡。看看白皮书中的“夜影”协议近协议,可以更深入地了解切分的概况。

下一代区块链对于如何将区块链划分为多个领域有自己的想法。可以认为这是从细粒度(许多小区域)到粗粒度(少数大区域)的光谱。

精细平行度涂层平行度dfinity ETH 2.0 Polkadot参与者(待定)。合同?)链两个项目分别代表光谱的两端。在dUnity的细粒度端,每个参与者都有自己的小域,每个参与者之间的交互是异步的。更细粒度的近似协议,每个合同都有自己的域。粗粒度的末端是Polkadot,而一个畴是一个完整的碎片。更具体地说,它应该称为平行链。从开发人员的角度来说,它位于以太坊2的位置太早了。ETH1-EE(执行环境)应该是粗粒度的,其边界与分区的边界完全相同,分区是当前以太坊形成的分区(即ETH2实现中实现ETH1后的未来)。专用ETH2ee可以选择更细粒度的解决方案。细粒度方案的优点是它们是透明的;所有跨契约调用都可以被平等对待,不管它们是否跨越碎片边界。这反过来又允许我们通过在片之间移动契约来实现负载平衡。

缺点是跨域事务不再是原子化的;它们变得并行,甚至部分不可逆。在dfinity和near中,跨契约事务变得异步并返回一个需要等待的承诺,这一点就表现出来了。在等待期间,此时发生的所有事务都将提交给链。然后其他人的交易就会堆积起来。在这一点上,你不能回溯已经发生的事情。当await最终得到解决时,它从契约调用返回“success”或“failure”有许多建议试图避免这一点,并找到某种形式的交叉碎片原子性,但都有自己的缺点。非原子性似乎是自然的结果。

但转学是一个很大的挑战。想象一下双方之间的简单交流。爱丽丝和鲍勃想交换以太和戴。基本合同如下:

如何扩展defi吞吐量:第1层(第2部分)3

但现在我们需要能够处理错误。如果第一笔交易失败,我们可以简单地终止交易。但是如果第一步成功,第二步失败,我们需要能够将ETH返回给Alice。问题是,鲍勃可能在我们还没来得及处理之前就把钱花光了。解决这个问题的一种方法是使用托管:

如何扩展defi吞吐量:第1层(第2部分)4

很好。现在没人会赔钱的。但现在鲍勃有了爱丽丝的免费独家选择权。虽然爱丽丝的钱现在由受托人保管,但它既不能接受别人的交易请求,也不能保证与鲍勃的交易会成功。你可以通过惩罚恶意行为来解决这个问题,但是很难确定一个合理的惩罚,因为不同的DeFi事务的值差别很大。你也可以要求所有市场参与者从一开始就把他们的钱放在同一个储蓄合同(第三方托管),但这将再次中心化地位,消除去中心化的重要性。

另一件要注意的是,这些并发问题可能很棘手。在实际的交换中,订单的填充状态需要不断更新,这使得一次写入变得更加复杂。如果困扰以太坊1.0的返回错误是一只蝴蝶,这可能会造成巨大的后果,那么并发的问题就是床上的bug。并发漏洞是不确定的,在测试期间可能根本看不到。正如我们在上面的简单exchange示例中看到的,开发人员需要从头开始重新考虑整个体系结构,就像床上的臭虫一样。摆脱它们的唯一办法就是把一切都拆掉,从头开始重建。

交换是DeFi世界其他地方的基石,显然是一个持续的过程。我们已经了解了订单式交易所面临的挑战。自动做市商交易更简单,因为参与者已经将资金储存在第三方托管(契约)中,但在这种情况下,储备余额本身就阻碍了并行处理。即使在速度更快的传统交换中,结算活动最终也会在配对引擎中按顺序进行处理,而不使用并发性(但更好的是传统交换仍然可以有冗余)。要了解更多关于传统交换是如何工作的,请看Brian nigito。

上述问题并不意味着这些问题是不可能解决的。最简单的解决方案是要求所有这些协议在每个片上部署一个单独的实例,然后让套利操作人员确保不同实例之间没有价格差异。或者,我们可以制作一个强大到足以包含所有DeFi事务的同步shard,这样我们就不必担心并发性了。

在本文中,我们列举了以太坊在扩展DeFi容量方面的局限性。正如你所看到的,这是一个复杂的问题,没有明显的解决办法。在下面的文章中,我们将进一步了解特定类的解决方案“layer-2 SOLution”,并详细介绍0x的概念。

温馨提示:

文章标题:如何扩展defi吞吐量:第1层(第2部分)

文章链接:https://www.btchangqing.cn/102583.html

更新时间:2021年06月12日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

如何扩展defi吞吐量:第1层(第2部分)5
区块链

2020年DFI产业研究报告

2020-9-12 23:46:48

区块链

如何打转弯,星分岔工程?

2020-9-13 0:01:51

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索