白帽黑客|白帽黑客 Samczsun:针对 NFT 资产的攻击会越来越频繁
文章插图
免责声明:本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表火星财经官方立场。
【 白帽黑客|白帽黑客 Samczsun:针对 NFT 资产的攻击会越来越频繁】小编:记得关注哦
来源:DeFi之道
撰文:Samczsun,区块链投资机构 Paradigm 研究合伙人、著名加密白帽黑客
编译:隔夜的粥
原文作者是拥有「审计上帝」之称的白帽黑客 Samczsun,同时他也是 Paradigm 的研究合伙人,其最近出手 拯救了 BitDAO MISO 荷兰拍卖资金池中的 3.5 亿美元资产,而在这篇文章中,他提醒了关于 NFT 代币标准的潜在安全风险,他还预测称,随着 ERC-721 和 ERC-1155 代币标准变得越来越流行,针对 NFT 的攻击很可能会越来越频繁。
文章插图
如果你从事软件工程方面的工作,很可能你听说过至少一条软件工程原则。虽然我不主张严格遵守每一条原则,但有一些确实是值得关注的。
我今天要讲的就是最小惊讶原则,它有一个奇特的名字,但却是一个非常简单的想法。它所说的是,当呈现声称要做某件事的代码时,大多数用户都会假设它是如何完成这件事的。因此,作为开发人员,你的工作是编写符合这些假设的代码,这样你的用户就不会感到意外。
这是一个很好的原则,因为开发人员喜欢对事物进行假设。如果你导出一个名为 calculateScore(GameState) 的函数,很多人就会假设该函数只会从游戏状态中读取。如果你还改变了游戏状态,你会使得很多人面临困惑的状态,他们试图弄清楚为什么他们的游戏状态会随机被破坏。即使你把它放在文档中,仍然不能保证人们会看到它,所以最好首先确保你的代码不会令人惊讶。
「6 小时的调试工作,可以为你们节省 5 分钟的文档阅读时间。」
越安全越好,对吗?早在 2018 年初,当 ERC-721 标准被起草出来时,有人就提出了实施转账安全性的建议,以确保代币不会被卡在不用于处理代币的接受者合约中。为此,提案作者修改了 transfer 函数的行为,以检查接收方是否能够支持代币转账。他们还引入了 unsafeTransfer 函数,如果发送者愿意,该函数将绕过这个检查。
然而,由于担心向后兼容性,这个函数在随后的提交中被重命名了。这使得 ERC-20 和 ERC-721 代币的 transfer 函数表现相同。但是,现在需要将接收方检查转移到其他地方。因此,标准作者就引入了 safe 类函数:safeTransfer 以及 safeTransferFrom。
这是一个关于正当性问题的解决方案,因为有许多 ERC-20 代币被意外转移到从未期望收到代币的合约的例子(一个特别常见的错误是将代币转移到代币合约中,将其永久锁定)。而在起草 ERC-1155 标准时,提案作者从 ERC-721 标准汲取了灵感,不仅在转账时,而且在铸造(mint)也纳入了接收方检查,这一点也不足为奇。
在接下来的几年里,这些标准大多处于休眠状态,而 ERC-20 代币标准保持了它的流行状态,而最近 gas 成本的飙升,以及社区对 NFT 兴趣的增强,自然而然导致开发者越来越多地使用 ERC-721 和 ERC-1155 代币标准。有了这些新的兴趣,我们应该庆幸这些标准的设计考虑了安全性,对吗?
越安全越好,真的吗?Ok,但对于转帐和铸造来说,安全意味着什么呢?不同的当事人对安全有不同的解释。对于开发人员来说,一个安全函数可能意味着它不包含任何 bug 或引入额外的安全问题。而对于用户来说,这可能意味着它包含额外的护栏,以保护他们不被意外射中自己的脚。
推荐阅读
- 黑客|最担心的事还是发生了 19岁黑客远程破解逾25台特斯拉
- vf|车讯|大众2021年销量创10年新低;少年黑客称发现特斯拉软件漏洞
- 入侵|黑客:已通过软件漏洞远程入侵25辆特斯拉
- 泄露|松下称黑客在网络攻击中获取了求职者的个人资料
- 黑客|“阿里守护神”从叛逆少年到500万年薪,他是如何征服马云的
- 日志|微软警告黑客继续利用 Log4j安全漏洞部署恶意软件
- 黑客|Woollim旗下艺人SNS疑似遭黑客攻击?全换神秘黑头像引发网友关注
- 王正阳|他是我国最小黑客,8岁利用漏洞一元买2500元商品,如今怎样
- 安全|一文揭秘2021年区块链黑客攻击频发的原因
- 凭证|Uniswap V3流动性管理协议Visor Finance再遭黑客攻击,VISR暴跌近95%