LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > definer智能合约存款需注意,提币矿工费多少得看运气?

definer智能合约存款需注意,提币矿工费多少得看运气?

2020-11-14 cncoin 来源:区块链网络

随着defi的发展,越来越新兴的DEFI协议开始产生,甚至中间出现了很多类似堆高木的情况,对于这些defi协议,虽然能够发展出来对市场来说是有一定的好处的,但是有时候参与的时候还是要小心一点,这不,笔者今天就遇到了这样一件糟心的事情。

事情经过主要是笔者在上个月参与了新的defi合约definer的存币生息产品,存了几个以太币,当时发现这个合约存的以太币的手续费有点高,当时为6美元左右,是在mykey上操作的,也不以为意,结果为后面的事情埋下了雷。

这个是当时的交易,gas价格为27gwei,手续费为0.014个以太币,相对compound、aave来说可能会高些。

后来在10月底不想存币了,因为主要是利息低,但是之前已经将手续费搭进去了,因此感觉如果10月底提币,那么可能会有一些亏,那个时候点提币,提示的手续费是8美金,如果扣除5美金的优惠券,还得倒贴3美金的手续费,加上之前存币的,那么这笔操作就亏了至少四美金的手续费,显然这是非常吃亏的。

因此想等着11月手续费低的时候再提,到时候用5美金的优惠券就可以了,而现在11月已经接近过半,但是笔者发现,以太坊手续费基本已经稳定了,不太会出现大规模下降的情况,因此准备提币结果这次显示的是需要20美金以上的提币费用,当然选择的是mykey的慢速模式。

这让人感到郁闷,于是去definer官方群里问,先开始没人回答,于是只能自己用自定义手续费的方法,将gas费用降低到14gwei,而官方建议的gas费用为27gwei,可以说14gwei的手续费已经非常低了,甚至今天能不能顺利上链成交都不能保证。

而当交易发出去的时候,mykey还提示错误,让笔者一度怀疑智能合约问题,当然最终等了很久之后,才上链成功,最终在gas费用为14gwei的时候,扣了接近10美金的手续费。

也就是说,如果我们用28gwei的gas费用的时候,可能需要扣除的手续费是20美金,因此这一点来说,至少可以证明,本文中的叙述是正确的,笔者也并没有信口开河随便乱说。

那么什么情况导致这么高的gas费用呢?

笔者查询了一下交易数据,我们截取了input data来进行说明

Function: enter(bytes _data, bytes _signature, uint256 _nonce)

MethodID: 0xee682473

[0]: 0000000000000000000000000000000000000000000000000000000000000060

[1]: 0000000000000000000000000000000000000000000000000000000000000180

[2]: 0000000000000000000000000000000000000000000000000005b407030bddad

[3]: 00000000000000000000000000000000000000000000000000000000000000e4

[4]: fd6ac3090000000000000000000000003637c02f05e0c7a1195bb426788632e6

[5]: a79d2d840000000000000000000000007a9e457991352f8fefb90ab1ce7488df

[6]: 7cda6ed500000000000000000000000000000000000000000000000000000000

[7]: 0000000000000000000000000000000000000000000000000000000000000000

[8]: 0000008000000000000000000000000000000000000000000000000000000000

[9]: 00000024fa09e630000000000000000000000000000000000000000000000000

[10]: 000000000000000e000000000000000000000000000000000000000000000000

[11]: 0000000000000000000000000000000000000000000000000000000000000000

[12]: 0000000000000000000000000000000000000000000000000000000000000041

[13]: 0f6992cfc763ffc1d62d2187e11a144ee8b3ef1329668ed98f9944f231a96ecd

[14]: 4a841074238175f52e32094d73a377c0695d1c16e53d36af002b7c76c6eb4c25

[15]: 1c00000000000000000000000000000000000000000000000000000000000000

我们看到输入数据里出现很多为0的地址,也就是说这个合约调用里,可能出现了调用多个数据的情况,那么简而言之就是这个是一个比较复杂的合约,进行层层嵌套的情况,因此执行合约的数据量比较大,最后导致我们的gas费用比较高。

具体到底是什么情况引起的呢?这个时候definer 的官方人员回复消息了,有个关键信息引起了笔者的注意:有的人提币手续费比较高,有的人比较低,也就是说,你的手续费多少还真的不是每参与者都一样,存在高手续费的情况,而且笔者应该不是个例。

那么什么情况导致的这种手续费大小不一样呢?Definer官方人员给出了答案:

因为存在智能合约调用compound的情况,所以扣除的手续费会比较高。

至于为什么有的人手续费低,那是因为他们的存款里没有调用compound的合约,所以就正常。

那么这就是明显的双标了,至于什么人符合调用compound合约的情况,官方的答案是这样的

看到这个,真让人能够气炸了,第一句说这种情况和运气没关系,最后一句说的是有时候你就碰上了。那还不是和运气有关?

当然最后事情发展到什么样子呢?

Definer的这种问题就是将不同用户的资金用作不同的操作,然后让部分用户承担简单存币调用合约的费用,然后在一定情况下,把另一部分用户的资金分成两部分,一部分调用他们原来的合约,另一部分就是放到compound上面,最后这部分用户取回资金的时候,就要调用至少两个合约,这就是我们说的复杂合约的调用过程,那么这也将产生一个问题,调用多个合约产生的手续费自然就要用户自己买单。

这样就产生了我们标题中说的,你存币之后提币的手续费确实是看运气的,运气好了,你就是低手续费,运气不好了就是高手续费,也就是这种机制本身存在着严重的问题,但是官方一直也只是说正在优化合约,至于最后到底有没有优化,只有他们自己心里知道罢了。

最后给出的建议,defi存币理财还是谨慎一点,一定要熟悉其中各个原理,你才能明白为什么会产生这样的结果,否则最后只能像笔者一样眼睁睁的掏出高昂手续费来提取自己的币!

—-

编译者/作者:cncoin

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...