自选
我的自选
查看全部
市值 价格 24h%
  • 全部
  • 产业
  • Web 3.0
  • DAO
  • DeFi
  • 符文
  • 空投再质押
  • 以太坊
  • Meme
  • 比特币L2
  • 以太坊L2
  • 研报
  • 头条
  • 投资

免责声明:内容不构成买卖依据,投资有风险,入市需谨慎!

合约地址真的能确保代币验证无误吗?

2026-08-25 04:06:38
收藏

合约地址真的能可靠地验证代币吗?

合约地址是加密货币用户最可靠的标识符,因为与名称或代码符号不同,它无法被其他项目复制。诈骗代币通常会复制名称和符号,但根据以太坊官网关于识别诈骗代币的指南,它们无法重复使用所模仿代币的合约地址。但仅凭这一点并不能让地址成为永久保证:给定地址背后的代码在部署后仍可能更改,并且该地址转账显示的发送方也可能被篡改。检查地址是必要的,但还不够。

为什么代码符号会失效,而地址不会

根据特拉华大学和雪城大学研究人员在arXiv上发表的研究(Li等,发表于WWW '24,2024年3月2日),每笔以太坊交易都有发送方和接收方地址,合约账户是由代码而非私钥控制的账户。相比之下,代码符号只是一个标签。Philipp Sandner在Medium上的分析指出,代币创建者可以自行选择符号,这意味着在无许可系统中,合法项目和诈骗项目之间出现重复代码符号是常见且几乎不可避免的。Phantom Wallet的常见加密货币诈骗指南直接描述了由此产生的模式:诈骗者构建仿冒代币,使用与真实代币相同的名称、图标和符号,仅将合约地址稍作修改,以欺骗那些不仔细检查的买家。地址才是两种代币真正区别所在,这也是为什么所有验证指南最终都会指向地址。

第一个复杂问题:你看到的发送方可能是伪造的

即使代币合约本身是真实的,区块浏览器显示的转账信息也并非自动可信。据cryptonews.net于2023年7月11日报道(引用Protos),Etherscan在其博客上披露,ERC-20标准的transfer和transferFrom函数可以被修改,使得代币看起来像是从一个从未发起交易的钱包地址发送的。Etherscan的博客文章(报道中引用)指出:标准函数“可以被修改,以允许任意地址成为代币的发送方”。cryptonews.net的报道描述了一个案例:诈骗者让Vitalik Buterin看起来像是发送了一个假代币,而实际上他并没有——合约所有者操纵了事件数据,而浏览器则直接显示了所提供的数据。根据同一报道,Etherscan自己的建议是通过检查交易哈希来验证转账,而不是直接相信显示的“发送方”地址。Etherscan此后增加了缓解措施——为已验证应用添加公共名称标签和代币忽略列表(据cryptonews.net报道)——但该报道也明确指出,Etherscan仍然无法完全阻止伪造转账出现在浏览器上。Etherscan关于该问题当前状态的最新声明在本文档中并无记录。

第二个复杂问题:地址可能比代码更持久

根据特拉华大学和雪城大学研究人员在arXiv上的研究,以太坊智能合约最初设计为一旦部署便不可更改——任何中心化实体都无法修改。但许多验证指南没有说明的是,在给定地址上执行的逻辑并非必须保持不变。同一研究表明,自2016年以来,开发者就在以太坊上使用可升级智能合约设计模式,目的正是为了在部署后修改合约行为。研究发现,最常见的方法是代理模式,这是论文描述的几种方法之一,它将合约解耦为两个子合约:用论文的原话来说,“一个不可变的合约和一个可以修改的合约”。根据该研究,结果是合约的行为可以在部署后更改,尽管区块链的基本设计将已部署的代码视为固定不变的。这一现象的规模并不小众。根据研究摘要,扫描以太坊上总计60,251,064个智能合约后,研究人员的检测工具USCDetector识别出91,959个可升级合约,这些合约组织成10,218条升级链(论文日期为2024年3月2日,于2024年5月在WWW '24上展示)。作者针对一组已知源代码的已验证合约评估了其工具的准确性,报告精确率为96.26%——这是研究作者基于自身真值集自我报告的数据,未经独立验证。在他们检查的可升级合约中,研究人员表示发现了15个对升级功能没有限制性检查的合约,这意味着任何人都可能劫持它们,以及118个容易永久失效的合约。论文还引用了一个先前事件,该事件来自此证据集之外的一个来源,其中广泛使用的OpenZeppelin升级模板导致了论文所称的超过5000万美元的损失;这个数字是关于一个说法的说法,因为底层事件报告并未包含在本文档检查的记录中。

实际后果

将代币的合约地址与项目官方网站上列出的地址进行匹配,告诉读者他们正在查看的是该项目实际部署的合约。但这并不能告诉他们该合约是不可变类型还是可升级类型,如果是可升级的,也不能告诉他们当前地址背后的逻辑是否与项目审核时相同。

一套可操作的验证流程

walllet.com(拼写可能有误,原文如此)在2026年4月20日的一份指南中列出了五个步骤:首先确认区块链,因为相同的代码符号(例如USDC)可能存在于不同链上,作为完全不同的合约;通过项目的官方网站或社交账号,或通过CoinGecko或CoinMarketCap等聚合器查找地址,切勿通过社交帖子或直接消息中的链接;打开该链对应的区块浏览器;逐字符比较地址;最后才查看浏览器页面上的辅助信号。在walllet.com推荐的辅助检查中(来自其自身编辑指南,而非任何浏览器或安全公司):将单个钱包持有代币供应量99%视为警告信号;使用Honeypot.is等工具检查代币是否收取高达100%的卖出税;将10%或更高的买入或卖出税视为危险信号。这些是walllet.com自己的阈值,作为实用经验法则呈现,而非Etherscan、GoPlus Security或任何其他指定机构设定的正式标准。

本文未涉及的内容

本文无法告诉读者任何特定代币的合约是否可升级。这需要在区块浏览器上直接检查——寻找代理模式和管理员地址——这是一项单独、逐个合约的任务,超出了本文解释的范围。研究检测工具的96.26%精确率是作者根据自身验证合约样本进行的评估,数据截至2024年论文发表时;该数据未经独立验证,不应被解读为可升级合约检测的通用错误率。研究中提到的5000万美元损失数字来自论文本身引用的一个来源,但该来源并非本文审查的证据的一部分,因此本文无法验证其是否指向一个特定的、有名的事件。关于伪造问题,记录中最新的一手声明是2023年7月11日报道的Etherscan披露;Etherscan的缓解措施是否已完全弥补漏洞,还是仅部分弥补,本文审查的任何资料均未确认。最后,本文仅涵盖以太坊和EVM兼容链;非EVM链(如Solana)上的等效标识符行为,本文使用的任何来源均未涉及。

展开阅读全文
更多新闻