首页 > 币新闻 > 列表

以太坊转账拥堵费用高,教你一招省钱的实用技巧

来源:  2018-07-17  阅读数量 9487

最近以太坊网络又双叒叕出事情了,整个网络堵成狗了,造成矿工费用奇高,高到什么地步呢?——有小伙伴为了快速转账,居然花了1个多以太的矿工费用!这年头咋连转个账都这么费劲呢?其实所谓ETH转账拥堵,具体表现为如果是默认的Gas设置,转账后一直在等待打包,迟迟不能到账,而且还无法判断能否到账。结果转个账,一上午都在等待打包,等不及的你,还不能调高矿工费重新转账。


还记得去年12月份以太猫事件,当时就是因为这种基于以太坊的宠物游戏,把以太坊搞垮了,最后不得不让小猫的出生速度降下来,才缓解了整个网络的拥堵。现在的以太坊就像是条宽度有限的公路,平常开开车还行,一旦遇到早晚高峰,那可就惨了,堵在路上动都动不了。



以太坊网络从2003年年底发布白皮书至今,已经发展近5年了,按理说技术应该很成熟,为啥还经常会堵呢?以太坊底层技术更新迭代了多次,而且现在智能合约技术也非常稳定,基于以太坊的DAPP也在陆续开发,整个生态发展的也相当不错,然而拥堵这个问题却一直困扰着我们,这其实和以太坊网络的底层架构有关。

以太坊为何经常会拥堵?

我们尝试透过现象去挖掘背后的本质,来分析拥堵的问题。首先来回顾以太坊网络出现过哪些大规模的拥堵事件。

上一次大规模的拥堵是在去年12月份,因为加密猫火热,导致以太坊网络拥堵;最近这次是因为啥呢?想必大家都知道最近非常火热的新兴交易所Fcoin,它用“挖矿即交易”的玩法,强行上位,一度成为交易量最大的交易所,成为币圈焦点。Fcoin火起来之后,推出了自己独特的上币机制,不需要上币费,但是需要各项目方社区成员去注册Fcoin交易所,然后充值相关代币,哪个代币充值的账户多,就可以获得上币机会。就是因为这个举措,导致以太坊网络的拥堵:由于Fcoin火爆,项目方都想上币,那么就要鼓动社区成员去存币,所有人都这么玩,以太坊因此就堵了。


以太坊拥堵的原因套用这句话再合适不过了:以太坊网络本不拥堵,用的人多了,便被堵死了。以太坊的共识算法是工作量证明,这种算法最大的弊端就是网络中的所有节点需要去逐步验证每一笔交易。假设现在以太坊网络有100笔交易,那么所有节点去验证这100笔交易信息;如果交易笔数越多,那么就需要更多的时间去验证这些交易。更关键得是,以太坊中的每个区块能承载的转账信息是有限的当突然涌入这么多转账的时候,很多转账都上不了这个区块的车,那么就只能继续等下个区块,甚至是下N个区块。于是网络就拥堵了。最后,矿工都是逐利的,谁给的手续费多,矿工就选择让谁上“区块之车”,为啥你的转账总是失败呢,是因为其他人给的矿工费高,矿工费给低了的你到当然“上不了车”。

综上,以太坊拥堵的根本原因是其底层的架构有问题,如果有大量转账涌入,就会导致有大量转账处于等待状态,网络就会拥堵,矿工费也会随之上涨。

遇到拥堵了,我们该怎么办?

那么问题来了,道理我都懂,下次遇到拥堵该怎么办呢?现在咱们来科普几个概念,以太坊网络的每步操作都需要消费Gas,这些Gas是用ETH来支付的。那么Gas的价格应该怎么算呢?Gas由两个部分组成:Gas Limit(限制)* Gas Price(价格)。简单地说,Gas Limit 相当于汽车需要加多少汽油, 而Gas Price相当于每升汽油的价格。

Gas Price的单位是Gwei,而且1ETH=1e9Gwei(10的9次方)。Gas Limit的含义是用户愿意为执行某个操作或确认交易支付的最大Gas量。以太坊为防止某些错误或者恶意的智能合约消耗掉用户大量手续费,所以对默认Gas上限做了限制。但是有些合约的确会消耗大量的Gas,所以需要手动设置上限。

举例来说,下面这个转账中,设定的Gas Limit是90558,Gas Price是41Gwei,根据上述公式,我们就可以算出执行这个智能合约,我们需要花费的Gas是:1e9gwei *90558* 41=0.003712878个ETH。



在以太坊网络遇到拥堵的时候,我们最关心的问题就是自己的转账什么时候能够打包成功,有时候看到转账一直处于待打包的状态,心里就会非常着急却很无奈。那么如何才能知道网络状况呢?
通过Ethereum Pending Transactions Queue这个网站,就可以看到当前整个网络中转账打包的情况。而且在网络拥堵的时候,除非确认了该笔转账交易失败,否则不要重复发送交易。



另一个大家最为关心的问题需要花费多少Gas费用,才能保证自己的转账能及时到账且不浪费矿工费呢?你的转账是否会被记账矿工及时打包,取决于你支付的矿工费是否足够高。用大白的话说就是:记账矿工就是“区块之车”的“检票员”,谁出的票价高就让谁上车先走。这样的话当然矿工费给的越高,先走的概率越大,虽然着急想先走,但是还是担心票价买高了,这时候我们就想知道前面一班车能上车的票价是多少,就能比较准确的预测当前市场上比较合理的优先上车票价了,我们通过 
etherchain.org/tools/gasPriceOracle,就能预估出比较合理的矿工费用,而且还可以根据你想要的到账时间,来设置矿工费。


除了设置矿工费,还有啥办法呢?

虽然我们可以通过调整矿工费,来完成转账,但这都是治标不治本的方法。如果网络真的拥堵了,必须提高矿工费,你的交易才可能被及时打包。关键问题在于,以太坊的这种拥堵方式,很难被用于主流场景。于是,从本质来看,我们需要解决的是以太坊的扩容问题。说到扩容,现在的解决方案主要有以下三种。

首先是分片技术,如果说以太坊堵是因为“路不够宽”,那么多修几条路,同时给车走,是不是就能缓解拥堵问题?就像上文所说,以太坊上节点的验证是线性的,而分片可以让节点同时运行,因此提高了整体区块链可以处理的每秒交易。有了分片,以太坊网络可以分成很多组节点。每组都是一个分片,并且每个分片都会处理组内的交易。这就可以让分片同时地处理不同的交易。现在以太坊是想用分片来作为扩容方案,而最近非常火的项目Zilliqa也是分片界的高手。

其次是Plasma,分片可以认为是直接在链上进行扩容,那么Plasma可以算是链下的扩容。交易并不是在以太坊主网上进行。Plasma可以让很多区块链子链从原来的区块链上分离出来。因此,每个子链都能处理和维护它自己的转账记录,当然这是基于根链的底层安全性。这种方案可以使所有子链分配区块链上的所有转账信息,从而使得速度和效率可以最优化。想象有一根大树,树干上有很多分支,这些分支都可以独立地进行运算,最终只需要将结果保留到主要的树干上就行,而不是将任何事情都丢给树干,如此当然可以大幅度地提高计算速度。

再就是雷电网络。雷电网络是另一种链下扩容的解决方案,它可以让两个节点之间开通一个“状态通道”,这是用户间的双向通道。交易信息会在两个节点之间进行,同时会由各方签名来保证交易的不可篡改性。雷电网络是专门为经常性支付使用的,对于日常支付而言,是非常有好处的,而且可以大幅度地降低每笔交易的燃料费用。


除了在以太坊上进行修改,当然也有另起炉灶的解决方法。最典型的例子,就是EOS。既然问题在于底层算法,那我们就改了呗。于是EOS提出了DPOS算法,通过将网络中的节点缩小到21个,来大幅提高每秒转账数量,现在EOS的TPS峰值可以达到1000以上,远超以太坊每秒20笔的确认速度。除了EOS,现在很多公链项目会提出各种创新的共识算法,来解决此问题,以太坊自己也提出了改进的权益证明算法Casper,希望使用完全的权益证明,来彻底解决以太坊拥堵问题。

虽说现在以太坊拥堵的情况还不能完全改变,但是大家都在朝这个方向努力,相信在不远的将来,区块链的拥堵定会解决,从而为大规模应用打下坚实的基础,让我们拭目以待吧!


虚拟币收录网版权所有知道创宇云安全