时间:2022-02-28|浏览:411
用戶喜愛的交易所
已有账号登陆后会弹出下载
以太坊非常慢-非常慢。最近做一个简单的USDC核实交易大约需要3个小时。这里有一个更有启发性的统计数据:以太坊平均每10个~在20秒内发布一个块。每个块包含不到350个交易。所有这些大致转换为每秒30个交易。当批评以太坊缓慢时,Visa的2000 tps它经常被提及。也许这是一个不公平的比较,因为以太坊仍处于发展阶段。然而,以太坊似乎不太可能在短期内主宰数字金融。
以太坊的低吞吐量是一个基本问题。以太坊是一个基于账户的区块链:账本状态被定义为从账户地址到数据的键映射。ETH交易(价值转移)可以实现账户对ETH余额数据的增减。同样,更复杂的交易(合同呼叫)也会改变指定账户的数据。在这种情况下,以太坊交易是全球账簿状态的转换函数。这是为了让以太坊虚拟机(EVM)可能的原因是图灵完成并允许智能合约;以太坊智能合约本质上是一个可交互的账户数据。
现在让我们来看看EVM如何处理或验证这些交易。并行处理所有交易是不合理的。根据设计,所有交易都试图改变整体状态。如果交易并行运行,EVM试图并行增加两个程序(本例中的交易)uint变量。变量只增加一次,而不是两次,因为两个程序同时访问变量。为了解决这种并发问题bug,以太坊选择逐一处理交易。换句话说,EVM是单线程状态机。因此,以太坊实现了Concurrency(并发),而不是Parallelism(并行)。
以太坊类似于只有一个出纳员的票务队列,其处理时间不一致。排队的人是等待验证的交易,唯一的出纳员是虚拟机。当我们考虑到gas当成本增加时,事情变得更加复杂。现在,任何人都可以为插队付费。一个超长的团队意味着那些不能花钱买到更好位置的人将不得不等待太多的时间来处理他们的票。
以太坊的低吞吐量是个问题,尤其是从web3.从0的角度来看。以太坊确实成了一切web应用程序的媒介。如果它目前的吞吐量继续下去,就像Reddit最后一篇帖子可能需要两个多小时来处理这样微不足道的任务。我们生活在一个速度决定一切的时代,以太坊太慢了。
你可能会问,为什么不选择性地应用并发性呢?更详细地说,为什么不将并发性应用于冲突交易——例如,将价值转移到同一账户——并行处理其他交易。不幸的是,Saraph和Herlihy已经向我们表明,实现的加速充其量是适度的。
提出了许多加速以太坊并提高其可扩展性的解决方案。EIP-伦敦硬分叉不直接影响以太坊的交易速度,但理论上应通过减少普通用户在交易处理前必须等待的潜在区块数量来稳定其在大规模交易峰值上的波动。L2的rollup,这应该直接影响以太坊的吞吐量,而不会破坏区块链的宝贵信任。
与此同时,其他模拟通用虚拟机的区块链也在积极开发中。其中一些已成功实现并行,承诺吞吐量远高于以太坊30 tps。特别关注Algorand、Solana和Cardano,以及他们在智能合约中并行化的独特方法。