宇宙链 宇宙链
Ctrl+D收藏宇宙链

xDeFi Labs:以太坊Gas面面观

作者:

时间:1900/1/1 0:00:00

得益于DeFi的普及和Crypto行业的牛市,大量DeFi?Token投资者在2020-2021年普遍斩获颇丰,人均净值迅速增加。但如果你问他们“最近以太坊上使用DeFi,NFT等app”的体验如何,回答可就不那么乐观了,因为使用成本水涨船高,打消了长尾用户频繁使用Ethereum主网的积极性。

ETH区块链系统上,不论进行何种操作,gasPrice和gaslimit都是你在操作时必须付出的、不可不了解的代价。

gasPrice的单位经常是gwei,因为1wei?=?10^-18?eth,是eth原生的最小单位。1gwei?=?10^9wei?=?10^-9eth,是每次在eth进行操作时所有希望进行操作的人对一个块中打包交易资源竞争得到的值:也就是价高者打包,否则无法打包。

Eth的区块在2017年底1CO狂热和2020年初312大崩溃时经历了了两次暂时的“满块”,就是用户使用时需要为了区块空间进行竞争,用户过多,报价过低而无法打包交易,一定时间后交易失败,但是因为2019年ERC-20USDT的广泛使用和2020年Uniswap的广泛使用,导致了常态性的满块(总的gas消耗gasLimit超过了一块所能承受的12500000。

安全团队:Cream Finance攻击者将278枚ETH转至0xdeC开头EOA地址:5月17日消息,据CertiK监测,0x707开头的Cream Finance攻击者地址资金发生异动,278枚ETH已经转移至0xdeC开头的EOA地址,攻击者之前已经有过几次类似操作。[2023/5/17 15:09:07]

GasLimit不仅仅是针对eth的一个块说的,也可以针对一笔交易。比如,metamask插件一般会在用户使用时,告诉用户gasLimit,这是一个预估,不是精确值。如果实际使用超过了这个值,调用本身会失败。如果没超过这个值,只会消耗?gas*gasPrice这个值,最后在一个块里打包的交易总的gas也不会超过12500000

2.?在Solidity编程计算层面如何保证更低的Gas

Solidity的书写风格有些像javascript,具体执行层面依赖于编译成EVM可运行的操作码。我们先不论他被编译成什么样的操作码能够节省gas,至少在Solidity这一层面做计算,你可以找机会节省尽可能多的gas。

Cream Finance攻击者已将50万枚DAI换成ETH并转移到0xdeCE开头的地址:金色财经报道,据派盾预警监测,Cream Finance闪电贷攻击者已将50万枚DAI换成278.71枚ETH,并将其转移到标记为中介的0xdeCE...3c3的地址。

此前今日上午报道,Cream Finance攻击者将100万枚DAI换成555.4枚ETH并转至TradeOgre。

此前去年10月消息,DeFi协议Cream Finance遭闪电贷攻击,损失超1.3亿美元。[2023/3/22 13:19:38]

A?整数计算思维

Solidity并没有IEEE-754所定义的浮点数:这类浮点数计算本来是指导了CPU的寄存器设计,若为了共识的“通用性、确定性、一致性”考虑,最常见的数据类型是uint256,以及用整数先模拟小数,再模拟浮点数的行为,但整体来看,需要编程者有整数思维。

多链钱包 XDEFI 已支持 Avalanche 网络:4月5日消息,多链钱包 XDEFI 宣布已支持 Avalanche 网络,用户可使用该钱包管理和存储 AVAX 和所有 Avalanche 本地代币和 NFTs。

据悉,XDEFI 是一款内置 DEX/Bridge 聚合器的多链钱包,目前已支持以太坊、Polygon、BSC、Terra、THORChain、比特币、莱特币、比特币现金等网络资产。[2022/4/5 14:05:06]

假设你有方便的数学库,你会发现a.div(2)其实是不如a>>1来的快,因为数学库的乘除法依然是调用此类消耗较小的操作完成的。

好在eth开发的先驱者在实现项目的过程中产出了一些数学库方便别人使用,这些操作包括四则运算,乘方开方,以及指数对数操作。

ZKSwap开启XDEX/ZKS流动性双挖活动:据ZKSwap官方消息,ZKSwap与去中心化交易所xDEX已达成战略合作,并将于2021年3月31日18时在ZKSwap平台开启流动性双挖活动。双挖活动开启后,xDEX将为ZKSwap平台用户额外提供20万个XDEX代币激励流动性提供者,用户只需在L2上添加XDEX/ZKS流动性,按照活动规则进行操作,即可在获取ZKS挖矿奖励的同时额外获得XDEX代币奖励,XDEX代币奖励将在本次活动剩余的26天内线性分发。

据zkswap.info数据显示,目前,ZKSwap上XDEX/ZKS流动性已超100万美金。[2021/3/30 19:29:26]

这里有一篇不错的四则运算以外的计算方案介绍网页链接

B?规避循环,除非你清楚你的计算复杂度

当循环条件是开放的时候,比如for循环第二个条件为空,或者while语句判断条件为真的时候,很容易无法估计循环体内计算对gas是怎样的消耗,会让gas消耗不可接受,或者metamask无法正确估计gasLimit导致eth合约调用失败。

霍比特交易所即将联合官方首发上线XDEX:据霍比特HBTC官方公告,霍比特HBTC将于3月23日14:40(UTC+8)联合官方首发上线XDEX(XDEFI Governance Token),并开通XDEX/USDT交易对。

XDEFI是一个去中心化金融(DeFi)协议栈,包括xDEX作为优化的自动化做市交易所、xHalfLife作为流支付协议用于延迟解锁、xOption作为欧式带封顶期权用于低频对冲现货风险、xPerp作为AMM形式的链上永续合约、xSTA作为从加密资产中铸造的混合型稳定币、xNFTEX作为高流动性NFT市场。更多详情见原文链接。[2021/3/23 19:10:01]

除此之外,如果特别熟悉solidity合约书写的科学家能够在数学上花一点点功夫的话,建议参考《Hacker’s?Delight》,相信不仅对理解数学库,而且对于简化代码gas消耗方面大有益处。比如在计算机发展过程中,我们看到了雷神3算法对牛顿法的应用:网页链接?尽管这个算法依然是仅对IEEE-754标准浮点数有效,但是在solidity中,一直有专业的算法优化者将暴力计算缩减为损耗非常小的算法,如网页链接

网页链接给出的线索,以太坊黄皮书给出了详细的费用明细。

这篇文章中提到了Gtxdatazero和Gtxdatanonzero的费用差别,这个核心差别的逻辑就是:eth地址里面的00越多,不管这个地址是合约的,还是普通人转入转出地址,都或多或少的节省0.4-5%的gas费用。

除此以外,参考各种操作对应于EVM上的操作码,你也可以尽可能的规避高gas操作,使用低gas操作,构建solidity代码。

对普通人来说,拥有一个0x00开头的地址是很容易的,一个最实用的工具是?网页链接,可以为你生成0x00开头的地址。你甚至还可以加?--contract参数,从而你得到的私钥下创建的第一个智能合约就拥有了这类地址。

4.?GasToken家族:另一种实操

这是一种针对销毁行为构建可refund?gas的实际操作案例。

GST?和?GST2是一些科研人员根据Gsclear和Gssuicide退还gas费用的特性建立的,其中GST是基于释放存储的而GST2是基于释放合约的,普遍而言,人们会认为GST2第二代会更合理,但在技术发展的过程中,其实未必GST2会比GST一直更有优势:如果ETH?1.x技术路线里出现了对于状态存储的优化,GST也可能迎来复兴。

1inch?CHI?gastoken在GST2之上,增加了token地址中包含的00数量,但因为1inch更加积极的商业化运营,也让这种操作正逐渐变的广为人知。

单纯作为一种补贴手段,市场上也出现了uGAS,UNDG等例子。

5.?案例?xDeFi&Labs如何优化gas

考虑到上百万美金的zksnarks?layer2方案审计成本,xDeFi&Labs团队暂时选择了先验证产品逻辑。

在产品优化过程中,用户的交易已经涉及了?a**b的逻辑,其中b是用uint256表示的decimal变相承担小数的作用。在金融产品设计过程中,对池的平衡性设计可以将b的取值由之间任意的小数,迅速的缩减到{1,2,3,4,6,8,12}等一组正整数上,节省数千到数万gas成本。在调用数学库时,Balancer数学库bpow的小数部分并没有被真正调用,而只有bpowi被调用了。

在XDEX?的代币发行的过程中,xDeFi&Labs根据Chapter3提到的方式,确保了自己0x00地址的竞争力。

在设计xHalfLife的设计过程中,为了确认用户可以提取多少vesting账户中的收益,原始版本使用了循环计算的方式,循环的数量在极端情况下涉及到块高度差。我们可以知道一周的时间覆盖了数千-数万个块高度差,如果每个循环体都是上百的gas消耗,那么在某个用户提款时,单笔合约调用千万级gas的消耗显然是不可接受的因此从fundStream,BalanceOf,Withdraw三个函数里,把循环去掉,继续采用了一种a**b的化简方式,此时,我们为了保留更清楚的逻辑,把简化掉的循环代码留在了github代码注释里。在调用时,考虑到用户的体验,保留了b是小数的可能性。

标签:GASETHDEXDEFDexigaseth大学DEXTF币defi币如何挖矿

中币交易所热门资讯
NFT 2021破圈进击:线上涌入大牌明星,线下进入一线商业

2021年除了DeFi还有NFT!区块链行业进化的速度太快了,爆发性成长的市值规模吸引了不少眼球跟羡慕的眼光.

1900/1/1 0:00:00
再斥1.7亿美金购入比特币 Square想干什么?

数字资产行业似乎正在与美股同步。昨天,全球市场惊出一身冷汗。美股开盘大跌,道指一度重挫超200点,大型科技类股全线下挫,特斯拉暴跌13%——市场风向似乎嗅到了美联储在未来加息的可能.

1900/1/1 0:00:00
DODO 众筹建池项目 ACoconut 认购金额达 7642 万 BUSD,超额认购 259 倍

链闻消息,去中心化交易平台DODOV2Beta众筹建池项目ACoconut已于2月24日23点结束众筹,6小时认购额7642万BUSD,总计参与人数1081人,超额认购259倍,目前众筹已结束并开放AC/BUSD交易.

1900/1/1 0:00:00
Gate.io已上线 ZKSwap(ZKS)永续合约交易(USDT结算)

Gate.io已上线ZKS/USDT永续合约实盘交易,支持1-20倍做多和做空操作,杠杆率可以在下单时自行选择.

1900/1/1 0:00:00
关于WBF即将上线HF的公告

尊敬的用户: WBF即将在开放区上线HF/USDT交易对,具体上线时间请关注官方公告。 项目介绍: 英国HF金融集团旗下是一款去中心化数字应用软件,研发团队由多国区块链领域技术专家组成,团队历时15个月研发打磨产品推演模式,HF金融集.

1900/1/1 0:00:00
【新币上线】Verasity(VRA)正式上线DigiFinex,充币&交易&存币瓜分$3万VRA

亲爱的用户: DigiFinex将于2021年2月25日18:00(GMT8)上线VRA,并于2021年2月26日18:00(GMT8)开放VRA/USDT交易服务.

1900/1/1 0:00:00