---
title: 天价 gas 事件与链上交互安全
date: '2021-09-29 09:41:59'
draft: false
summary: 协议层错误最后都会通过钱包、硬件确认和界面提示落到用户身上，所以 UX 也是安全边界的一部分。
slug: ethereumjs-gas-bugs-show-ux-matters-as-much-as-consensus
syndication:
- platform: Weibo
  url: https://weibo.com/1648815335/4686699589011272
tags:
- ethereum
- gas
- wallets
topics:
- crypto
type: post
---

那天上千万刀 gas 费的瓜有结果了，不是黑客，也不是土豪傻。

最后原因是 EthereumJS 库的一个 bug 导致在特殊情况下会计算出天价的 gas 费。一般情况下，钱包预执行的时候，用户就会看到余额不足的错误，但这次恰好遇到了土豪[允悲]。

而土豪用硬件确认的时候，硬件钱包 Ledger 展示费用的时候不是以人类可读的方式展现（估计是数字溢出所以展示成二进制了？），没注意就给确认了。

最后矿工全额退款，DeversiFi 给了矿工 50 ETH 作为感谢，也算皆大欢喜。

问：Ethereum 不是有 gas limit 吗？
答：gas limit 限制的是 gas 的数量，并没限制 gas price（单价）。单价过高，也会导致天价的 gas fee。链这一层也应该考虑支持 gas price 的限制。

<!-- WEIBO_MEDIA_START -->
## 原微博中的媒体

![](./weibo-4686699589011272-1.jpg)
<!-- WEIBO_MEDIA_END -->
