一条出价落在你的作品上,写着 12.5 ETH,而这个系列近期的成交水平在 0.5 ETH 附近。这个数字是真的,它确实被人签进了一条订单里。它没有告诉你的是这笔金额以哪种代币计价,而恰恰是这一个字段,把你以为要接受的那笔交易换成了另一笔。
出价到底是什么
出价,也叫报价,是签名订单这套设计的买方一侧,而卖方一侧承载的是仿冒挂单。出价方不往任何地方转钱。他签一条消息,写明作品、金额、计价代币合约和有效期,市场把这条签名存下来,再在你的页面上渲成一行。
到这一步链上什么都没动。转移发生在你接受的那一刻,因为你的接受才是那笔成交订单的交易:它把 NFT 从你的钱包送出去,把出价方的代币拉进来。发出这笔交易的人是你,所以读懂这条订单是你的事,不是出价方的事。
EIP-712,也就是以太坊的类型化结构数据哈希与签名标准,给了这些消息一个可读的形状。它针对的正是自己描述的那种局面:签名消息是一串不透明的十六进制字符串,展示给用户时几乎没有任何关于消息构成项的上下文。结构化签名让一条出价变得可读,却没有让一条出价变得诚实。
计价那一行决定了一条出价值多少
一条出价带着一个金额,和这个金额所依附的代币地址。页面把金额排成大字,而地址哪里都不排。这个版式就是全部的可乘之机:金额永远只是一个数量,而它是什么的数量,由第二个字段指定。
代币符号不标识任何东西。在 ERC-20 里 name 与 symbol 都是可选的,标准写明这个方法可以用来改善可用性,但接口与其他合约绝不能预期这些值一定存在。部署者可以随意填这两个字符串,所以一个符号读起来和包装以太合约一模一样的合约,造出来只需要一次部署,而且作者想铸多少就铸多少。
以这种代币计价的出价并不是伪造的,它会严格按写下的样子结算:你交出作品,收到写明数量的、背后没有买家的代币。所以这里的检查是一次地址比对。ERC-721 在作品这一侧说的是同一件事,它把合约地址与代币 ID 这一对称为以太坊链上某个特定资产的全局唯一且完全限定的标识符。身份住在地址上,符号只是画在它上面的标签。
出价的大小什么都证明不了
一条比该系列近期成交水平高出 25 倍的出价,读起来像天上掉馅饼,实际陈述的东西却弱得多:某一个地址说它愿意出多少。说这句话不花钱。这条出价可能在你看到它之前就被撤销,也会停在它自己写明的有效期上。
出价也可以是为了被看见而刻意造出来的。同一个操作者控制的若干地址之间互相下单,制造出的需求假象,与刷量制造成交量假象是同一回事,而市场页面和链都不记录哪个地址由谁控制。
它落到实处的形态,是一条为被看见而不是为成交而设的出价。它把卖方锚在一个数字上,或者在同一系列的其他作品正被卖进这份注意力的时候,把注意力拉过来。把一条出价当成某一个地址关于它自己的陈述,把这个系列真实成交的水平留作另一个问题。
那条其实是授权请求的出价
有些出价通知根本不是出价。那个页面存在的目的,是把一个签名弹窗摆到你面前,而它要的是对你整个系列的长期权限,不是一笔买卖。ERC-721 把 setApprovalForAll 定义为启用或停用第三方,也就是 operator,管理调用者全部资产的授权,而握有这个授权的 operator 可以搬走该系列里的每一件作品而不必再问一次,这就是钱包抽干器背后的机制。
计价那一侧有它自己的版本。ERC-2612 加了一个 permit 函数,让额度可以由一条签名消息设置,而不必由持有者自己发一笔交易,签名数据按 EIP-712 组织。以这种方式到来的代币授权,在你签下去的那一刻不会留下一笔可供察觉的交易;而 ERC-20 早就提示过,再次调用 approve 会用新值覆盖当前额度。
EIP-712 还给了你那个把真弹窗与它的仿制品分开的字段。它的域分隔符写明一个签名对哪个合约有效,其理由部分解释说,域分隔符防止在其他方面完全相同的结构发生碰撞,因为两个应用可能得出完全相同、却本不应互通的结构。规范预期用户代理可以据此做针对具体合约的钓鱼防护。落到实处,就是在读页面写在弹窗周围的任何东西之前,先读解码后的弹窗里的验证合约。
从市场之外送来的出价
一条以私信、邮件、或者别人空投进你钱包的那件作品里的链接抵达的出价,跳过了整个流程里唯一可核的那一环:你自己打开的那个市场界面。一条消息可以把那套版式复制得分毫不差,因为版式是公开的。
堵住这一条的习惯是,用你自己存下来的地址进入市场,再到那里去找这条出价。真实存在的出价会出现在你的作品页上。只存在于那条消息里的不是出价,而链接尽头等着你的,是那个弹窗。
一行出价能承诺什么、不能承诺什么
| 这一行展示的 | 它其实是什么 | 它能定下什么 |
|---|---|---|
| 金额 | 签名订单里的一个字段 | 它自己什么都定不下 |
| 计价代币符号 | 部署者随意填写的自由文本 | 什么都定不下 |
| 计价代币合约地址 | 所出资产的身份 | 你真正会收到什么 |
| 有效期 | 签名订单里的一个字段 | 它最晚能被成交的时点,而不是它最早能被撤销的时点 |
| 出价方的持仓 | 根本不在这条订单里 | 什么都定不下,余额不足会让成交回滚 |
顺着中间那一列读下来,规律是除了一行之外每一行都是一项主张,而地址那一行是一个身份。那才是值得你花注意力的一行,也正是界面渲得最小的一行。
接受之前该核的几项
| 要核的 | 拿它去比什么 | 对不上说明什么 |
|---|---|---|
| 计价代币合约地址 | 发行方自己公布的地址 | 付给你的是另一种资产 |
| 作品合约与代币 ID | 你以为自己在卖的那一件 | 这条订单指向的是别的东西 |
| 弹窗授权的是什么 | 你本来打算做的动作 | 你在授予访问权,不是在卖东西 |
| 弹窗里的验证合约 | 你自己打开的那个市场 | 这个签名是给别人的合约用的 |
| 该系列上未撤的授权 | 你本来打算授权的那些 operator | 你早先授出的权限还开着 |
顺序在这里是要紧的。计价地址排第一,因为它决定了这里到底有没有一笔交易;签名那一项排在价格之前,因为一个授予访问权的弹窗根本不在乎页面上的价格是多少。
小结
一条出价是一条带着若干字段的签名消息,而市场只把其中一个渲成大字。金额是那个说服你的字段,计价地址是那个作决定的字段,两者从来不以同样的大小出现。读第二个字段,就是应对一条用抄了符号的代币计价的出价的全部防线。
另一半是那个弹窗。接受一条出价是一笔买卖,它动一件作品并为它付钱;而一个要求对你整个系列的 operator 权限的请求根本不是买卖,它在签名时不花钱,此后却授予一切。核计价地址,核签名到底授权了什么,用你自己敲进去的地址进入市场。想系统学习更多加密基础知识,可以关注 Bitbase(币贝)学院的后续内容。
相关阅读
币贝上与本主题相关的其他文章:
风险披露:本文为 Bitbase(币贝)学院的科普内容,仅供教育与信息参考,不构成任何投资、交易、税务或财务建议。加密资产波动剧烈,请自行评估风险。本文撰写于 2026 年 9 月,请以官方最新信息为准。
参考资料
[1] 以太坊改进提案(EIP),EIP-712: Typed structured data hashing and signing eips.ethereum.org
[2] 以太坊改进提案(EIP),ERC-20: Token Standard eips.ethereum.org
[3] 以太坊改进提案(EIP),ERC-721: Non-Fungible Token Standard eips.ethereum.org
[4] 以太坊改进提案(EIP),ERC-2612: Permit Extension for EIP-20 Signed Approvals eips.ethereum.org






