9月27日,据Etherscan显示,Bitfinex交易所的一个主要钱包以7676.62ETH的Gas费用进行了一笔10万美元USDT的转账,最终接收方为2019年从Bitfinex分拆出来的非托管交易所DeversiFi。这笔巨额矿工费随后被不知名矿工转至币安交易所。
9月28日,事情得到一个圆满的结局。经过Bitfinex和币安及矿工交涉,以太坊区块13307440显示,矿工归还了Bitfinex钱包昨晚误操作而付出的7626ETHGas费用,DeversiFi给矿工保留了50ETH作为感谢费。
9月29日,DeversiFi发布了这一事件的完整报告。
事件回顾
发生了什么
UTC+1时间11.10.08AM,用户向DeversiFi存入10万USDT。
这笔交易在1分钟内得到确认......但这笔交易的交易费高达7,676ETH
金色财经挖矿数据播报:ETH今日全网算力上涨1.82%:金色财经报道,据蜘蛛矿池数据显示:
BTC全网算力150.479EH/s,挖矿难度20.82T,目前区块高度669134,理论收益0.00000705/T/天。
ETH全网算力367.768TH/s,挖矿难度4722.32T,目前区块高度11793170,理论收益0.00868854/100MH/天。
BSV全网算力0.583EH/s,挖矿难度0.09T,目前区块高度673020,理论收益0.00154400/T/天。
BCH全网算力1.326EH/s,挖矿难度0.21,目前区块高度673338,理论收益0.00067883/T/天。[2021/2/5 18:57:25]
https://etherscan.io/tx/0x2c9931793876db33b1a9aad123ad4921dfb9cd5e59dbb78ce78f28717595
为什么发生
金色晚报 | 9月12日晚间重要动态一览:12:00-21:00关键词:YFII、Tether、Filecoin、京东数科
1.YFII机池上线USDC无损挖矿。
2.欧盟委员会副主席:加密资产提供了很多机会。
3.Tether已帮助用户恢复误向Swerve合约转入的100万USDT。
4.比特币Schnorr技术升级改进提案BIP340已正式部署。
5.Filecoin大矿工测试竞赛即将解锁150万FIL终极奖励。
6.yearn.finance创始人:链上治理将在接下来2周内部署
7.Filecoin宣布新增第二轮太空竞赛 时间为9月14日至10月5日。
8.SBF等Sushiswap三名多签见证人发起关于“聘请0xMaki”的新补偿方案。
9.京东数科招股书:已实现市场首单基于区块链技术的仓单质押融资。[2020/9/12]
EthereumJS库中的潜在问题,再加上在某些情况下和EIP-1559升级相关的gas费用变化,可能导致交易费用极高
金色午报 | 8月30日午间重要动态一览:7:00-12:00关键词:加密技术、Chainlink、DeFi、德勤
1. 加密技术被纳入中国禁止出口技术目录。
2. 三箭资本CEO:最大的比特币持有者也是最大的山寨币持有者。
3. 首都规划:深化区块链等新技术应用 提高精准防疫水平。
4. Chainlink联合创始人:有快慢两种途径推动主流采用DeFi
5. 数据:以太坊中值交易量创5个月来的新高。
6. 美国FDA、财政部等几个联邦机构正在尝试区块链技术。
7. 德勤:近89%受访者认为数字资产未来三年将对其所在行业至关重要。
8. YfvFinance宣布完成YFV协议的审计工作:未发现关键性问题。[2020/8/30]
又遇上Ledger硬件钱包有时可能以非人类可读的方式显示Gas费用,错失用户肉眼安全检查
只有ETH数量非常大的钱包才会受到影响,其他用户会看到交易失败
DeversiFi做了什么
金色财经行情播报丨BTC小幅拉升后回落 局部小双顶形态:据火币行情显示,今日凌晨5点BTC小幅拉升,最高触及7777USDT后开始回落,位破前高7790,4小时图形成下跌反包线,但均线MA10构成支撑暂未跌破。1小时图形成局部双顶形态,空头尚有发力空间,下方支撑7650USDT。截至10:00,火币平台的主流币的具体表现如下:[2020/4/28]
到UTC+1下午12:30:00,DeversiFi团队意识到这个问题并开始了调查。
很快确定了两个主要关注点,开始积极测试,试图重现和解释错误交易是如何创建的。
与区块链社区分享了一个解释,注意到这个交易https://twitter.com/deversifi/status/1442487743922286594
到UTC+1时间16:45,禁用Ledger用户存款
到晚上,找到gas费用函数中可能的罪魁祸首,并着手实施改进
金色晚报 | 4月21日晚间重要动态一览:12:00-21:00关键词:阿根廷、工行、Libra、Lendf.Me
1. 阿根廷央行测试基于区块链的新型清算系统;
2. 工行发布《区块链金融应用发展白皮书》;
3. 美国国会议员:尽管Libra进行了改造,但仍然是证券;
4. 研究分析:基于以太坊的稳定币总市值增长95.38%;
5. Lendf.Me将被追回资产转移至新地址,以便未来进行资产返还;
6. OneCoin诉讼案件原告向法官申请继续进行审理进程;
7. 浙江金华捣毁一利用“比特币” 犯罪团伙;
8. 区块链协会支持Kik公司 称SEC在混淆概念且Kin代币并非证券;
9. 研究员:1.86%的稳定币PAX被用于庞氏局MMM互助金融。[2020/4/21]
增加了额外的安全和健全性检查,以确保与交易相关的gas费用不会超过不切实际的阈值,以防止用户错误、极端网络费用飙升,并作为防止任何未来编码错误的额外保护层
向EthereumJs维护者提交问题,描述了EthereumJs库中的缺陷
最后与Ledger团队就测试期间发现的异常情况进行了沟通,这些异常情况可能会混淆任何以太坊交易的异常高额费用
在28/09/2115:30之前推出了安全改进和重开存款
追回资金
不知名矿工在13307440区块打包的巨额Gas费,之后发现此矿工将挖到的ETH存入币安,DeversiFi立刻联系了币安。
币安同意将DeversiFi的电子邮件地址传递给矿工
UTC+1时间20:36,收到矿工的电子邮件,达成安全返还资金的流程
一个小时内,矿工完成退款交易,共退款7626枚ETH
https://etherscan.io/tx/0x85294effd53126b3bfa9e7f655267e00ac1ae2ef76f4569644670bf5403637d6
DeversiFi给矿工保留了50ETH作为感谢费
到底发生了什么
背景知识
先回顾一下EIP-1559如何改变以太坊交易费用的处理方式。
EIP-1559交易由三部分组成:
基本费用-由网络决定并销毁
MaxFeePerGas-为获得区块打包而为每单位Gas支付的最大金额
MaxPriorityFee-用户可选的、直接支付给矿工的小费
EIP-1559交易包括这些新字段,称为类型2,而提供原始GasPrice字段的遗留交易仍受支持,称为类型0。我们不讨论类型1发生了什么。
一个常见的误解是EIP-1559交易完全消除了用户为交易支付过高Gas费的可能性。但在优先费用和最高费用都设置得太高的情况下,无法防止意外多付。
详细调查
DeversiFi是以太坊上用于DeFi的第2层协议,其拥有一个前端,提供一个简单的界面来从各种钱包访问协议,包括Metamask和Ledger。大约一个月前,DeversiFi更新了前端,以利用伦敦硬分叉激活提供的EIP-1559交易,用最新版本的以太坊库并按照文档实现了新功能。
Metamask在生成消息和签名时执行了很多繁重的工作,但是对于Ledger等其他钱包,DeversiFi使用@ethereumjs/txnpm包自己生成交易。
具体来说,创建了一个EIP1559交易主体,在与Ledger钱包库接口之前生成消息注入参数和费用,以提示用户在他们的硬件设备上签名。
处理固定精度和扩展数值范围的库在以太坊生态系统中很重要,因为智能合约可以返回高达256位的数字。JavaScript本身无法处理导致截断或浮点错误的精度。并非所有的大数字库都支持浮点值,不幸的是,ethereumjs库使用了BN(https://github.com/indutny/bn.js/),而BN也不支持。看起来这有些道理,因为Solidity不直接支持除整数以外的任何内容,但它确实将责任推给了任何集成其库的人,也不使用十进制小数数值。
这是这个过程第一个出现问题的地方,特别是计算gas和优先费用然后转换成一个大数字对象时。由于利用最近几个区块用于预测优先费用,因此计算结果可能是十进制小数型数值
当生成的gas值为整数时,底层的ethereumjs库代码完美运行,但是当gas值为十进制小数数值时变得奇怪。以太坊库代码使用的BN库抛出一个错误,表明传递了一个无效值,但是由于该值首先被转换为缓冲区,因此没有触发错误处理。
例如,传递值33974230439.550003将得到一个整数35624562649959629,可能比预期高六个数量级。
当这种错误的数字解释发生时,它要么由于优先gas金额高于每个gas的最大费用而失败,要么因为用户在钱包中拥有的ETH数量几乎总是不可能足够高来支付这笔巨额的Gas费超支。
这意味着,除了遇到此问题的少数硬件钱包用户,几乎所有人都不会理解他们的交易失败的原因。
在Ledger上签署交易时,会向用户显示最高费用,以便他们验证将要授权的交易。让事情进一步恶化的因素是,当前Ledger将非常大的费用显示为十六进制值。
在尝试重现该问题时,DeversiFi遇到了如上所示的费用提示。在显示该问题的示例交易中,B526167CF91FECE4的十六进制值等于13053145295991336164,这相当于13053145295991.336164Gwei或13.05ETH的天文费用?。
如果此交易被接受,用户将签署最高216,564ETH的费用。
DeversiFi怀疑区块13307440是否可能就是这种情况,其中已支付的最高费用超过了授权的ETH费用2倍。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。