5月28日 04:17

以太坊改进提案 EIP 是什么?EIP-1559、ERC-20、ERC-721 有何区别?

EIP(Ethereum Improvement Proposal)是以太坊社区提出新功能、标准和流程改进的正式机制,类似于比特币的 BIP。任何人都能提交,但只有经过社区讨论、技术审查和共识达成后才会被纳入协议。

EIP 分三类:标准跟踪型(影响协议或应用层,如 EIP-1559、ERC-20)、元 EIP(修改 EIP 流程本身)、信息性 EIP(指南性质,不涉及功能变更)。标准跟踪型下设 Core、Networking、Interface、ERC 四个子类型——其中 ERC(Ethereum Request for Comment)专指应用层标准,所以 ERC-20 的正式编号其实是 EIP-20,只是社区习惯了 ERC 的叫法。

EIP-1559 改革了以太坊手续费市场。之前是首价拍卖模式——用户盲猜 gas 价格,出价低就等,出价高就亏。1559 引入了协议自动调节的 base fee:每个区块根据拥堵程度调整,增幅上限 12.5%。用户只需设置 maxFeePerGas(愿意支付的上限)和 maxPriorityFeePerGas(给验证者的小费)。关键变化:base fee 被销毁而非给矿工,上线一个月就烧掉超 20 万 ETH,累计已烧毁超 300 万 ETH,给 ETH 带来了通缩压力。交易等待时间也从约 17 秒降到约 10 秒。

ERC-20 定义了同质化代币标准:totalSupply、balanceOf、transfer、approve、transferFrom 六个核心函数,加上 Transfer 和 Approval 两个事件。每个代币完全等价、可互换、可分割。USDT、UNI 等主流代币都基于此标准,是 DeFi 生态的基石。

ERC-721 定义了非同质化代币(NFT)标准。每个 token 有唯一 tokenId,不可互换、不可分割。CryptoKitties 是最早出圈的应用,后来催生了整个 NFT 市场。

追问

EIP-1559 烧了这么多 ETH,矿工为什么还同意?

矿工确实反对过,base fee 销毁直接砍掉了手续费收入。但 1559 通过的原因:一是改善了用户体验和费用可预测性,这是生态长期发展的刚需;二是 ETH 通缩预期推高了币价,矿工通过升值弥补了部分损失;三是 Vitalik 和核心开发者力推,矿工在治理中话语权有限。PoS 合并后验证者经济模型重新设计,1559 的收入影响进一步被稀释。

ERC-20 的 approve 有什么经典漏洞?

重置攻击(race condition):假设 A 给 B 授权了 100 USDT,A 想改成 50,先调 approve(50) 把额度从 100 降到 0——但在 0→50 之间,B 可以在额度归零瞬间抢先转走剩余的 100,再等 50 生效后又转走 50,总共 150。解决方案:用 OpenZeppelin 的 SafeERC20 库,或采用 increaseAllowance/decreaseAllowance 增量修改。

ERC-1155 和 ERC-20/721 怎么选?

ERC-1155 是多代币标准,一个合约管理多种同质化+非同质化代币,支持批量转账。游戏场景最合适——一笔交易转出金币(同质化)+ 三把武器(NFT),省大量 Gas。选型看三点:是否需要批量操作、Gas 敏感度、交易所兼容性(ERC-1155 的交易所支持远不如 ERC-20/721)。

EIP 从 Draft 到 Final 一般多久?

简单 ERC 标准可能几个月,核心协议变更动辄数年。EIP-1559 从 2019 年提出到 2021 年伦敦升级上线花了近两年,期间经历了激烈争议和多轮修改。越底层的变更,需要越多客户端团队实现、测试网验证和社区共识。

EIP-3074 和 EIP-7702 是什么关系?

都是账户抽象的提案,但路线不同。EIP-3074 让 EOA 通过 AUTH/AUTHCALL 指令委托智能合约执行操作,但存在安全风险(被委托的合约可以代替你做任何事)。EIP-7702 是 3074 的替代方案,在 Pectra 升级中上线,允许 EOA 临时设置为智能合约代码,更安全也更灵活。3074 已被废弃。

标签:以太坊