智能合约函数 – 如何识别骗局
要点总结: |
— 智能合约函数是向区块链发送的指令。 通过这些函数,我们可以批准我们的钱包和第三方(比如 NFT 平台和 DeFi 服务)之间的特定交互。 — 很多人不确定如何理解这些函数,所以他们会基于信任来确认交易,而没有真正去核对正在签署的内容。 这个盲点对骗子来说是一个大好机会。 — 基于错误智能合约批准的诈骗事件不断增多! 了解您正在签署的内容从未如此重要。 — 现在我们来教您如何识别危险信号,这样您自己就不会被骗了。 |
目前,骗子骗取人们来之不易的加密货币和 NFT 的首要方式就是智能合约函数,您不觉得是时候学习如何读懂这些函数了吗?
加密货币领域充满了新的机遇和交互类型,其中大部分都由不起眼的智能合约提供支持。 智能合约指挥着您的钱包与 Web3 平台和服务之间的交互,让您在使用数字资产时拥有前所未有的自由,并为您开启了一个由私钥所有权驱动的全新数字世界。
但在享有自由的同时,您还要肩负新的重要责任。 在陌生的加密货币领域,用户会比平时更容易出错:这是一个快速变化的全新领域,而且 Web3 的用户体验通常很复杂,这使得理解每次交互的含义比平常更加困难。 简而言之,Web3 是一个微妙的领域,真正的价值需要冒极大的风险才能获得,骗子正在伺机而动,等着您犯错。
如果您不想被骗,那么在与 Web3 交互时能够识别危险信号是一项必不可少的技能。 这并没有您想象的那么难,只需要一点指导就会了。
本文将为您介绍交互时会遇到的一些关键智能合约函数,解释它们的含义以及当您看到函数时如何识别骗局。
什么是智能合约函数?
我们从基础开始,到底什么是智能合约函数?
简单地说,函数是智能合约中的一段代码,使得智能合约能够执行特定操作,“调用函数”可以在您的钱包和使用的任何平台之间发起指定交互。
与智能合约交互在 Web3 中是必不可少的,智能合约本身并不危险。
但是,就像现实生活中的任何骗局一样,情境决定一切,关键是要能够发现不太对劲的地方,识别出危险信号。
智能合约函数危险信号:词汇表
为了安全使用 Web3,您需要熟悉一些关键的智能合约函数。 我们会依次介绍每个函数的功能、相关骗局以及如何自己发现危险。
1) SetApprovalforAll
“Set approval for all”(批量授权)是您在与 Web3 交互时会经常遇到的一个函数,因此理解这个函数很重要。 当您在市场上列出待售的 NFT 时,最常看到的就是这个函数,它的目的很简单:无论何时售出,市场都能通过此函数将您钱包中的 NFT 转移到其他人的钱包。
这很合理,对吧? 但也会造成一些后果。
SetApprovalforAll 相关风险
SetApprovalforAll 函数可能十分常见,但对用户来说也是相当危险的交互,因为它的作用范围太广了。
授权该函数意味着允许与您交互的平台访问您钱包中指定智能合约的所有 ERC20 代币或 NFT,并且,作为一项开放式协议,平台还能访问未来从这些智能合约进入您钱包中的所有代币。
这有点像给朋友开了一张空白支票。 这相当于是在说“我相信这个平台会信守承诺,并且会在我的预期范围内行事”。 但是,如果您犯错了呢?
骗局以及如何识别
SetApprovalforAll 在加密货币诈骗中十分受欢迎,因此有必要识别什么时候签名是安全的以及什么时候不安全。
您唯一应该遇到这条消息的时候是在市场上列出您的 NFT 或与 DEX 交互的时候。 这很容易理解,因为您需要授权平台在售出或交易代币时从您的钱包中转移代币。 但在这些情境之外,一旦看到该智能合约函数就应该敲响警钟。
时刻问自己一个问题:我为什么要把我的代币访问权限让与他人?这样思考更容易判断交易是否合法。
铸造 NFT?- 您不应该看到此函数。
买入 NFT? – 您不应该看到此函数。
注册允许列表? – 猜对了 – 您不应该看到此函数!
现在您了解了签署这类交易意味着什么了,您已经有能力对出现该函数的各种情境进行评估并判断它是否为危险信号。
2) SafeTransferFrom
您可能会遇到的另一个常见智能合约函数是 SafeTransferFrom,当您将自己的钱包中的 NFT 发送到其他钱包时,会出现这条消息。
比如说,您刚刚给自己买了一件 Ledger 设备,想把您现有热钱包中的 NFT 发送到 Ledger Nano 上安全的新以太坊账户中,您会在热钱包上看到 SafeTransferFrom,并且需要进行确认。 在这种情境下是完全合理的。
SafeTransferFrom 相关风险
如果您在其他情况下遇到此函数,就说明有问题 – 请记住,此时您要确认是否想要将 NFT 发送到其他钱包,除非是您自己的钱包,否则很少需要这样做。
骗局以及如何识别
那么,什么样的骗局会使用该函数调用来骗取加密货币呢?
最近有个案例,Momoco 网站为旗下的 NFT 提供了一个免费铸币厂,将一些不顾风险、满怀希望的投资者吸引到该网站,他们想要获得铸币厂。 问题是什么? 根本没有铸币厂。
相反,点击“mint”按钮会弹出一个 SafeTransferFrom 调用,用户以为这是铸造流程的一部分所以同意了,这要归功于社会工程学! 因此,合约被授权从目标钱包中转出 NFT,有数百人在这场骗局中丢失了 NFT。
这些人怎样才能在卷入之前识破这种骗局呢?
记住,对于智能合约函数调用,必然会发生的只有函数框中写入的内容,在这个案例中就是从一个钱包向另一个钱包转账。
这是一种即时危险信号:如果您正在铸币,那么您看到的应该是“minting”函数调用,而不是转账。 在这个案例中,交易明确显示的是转账。 NFT 也会从一个 Ledger 钱包转移到另一个钱包地址,说明您是在发送 NFT,而不是接收。
简而言之,您可以通过快速查看函数调用的详细信息(包括核对您要确认的交互类型和转移方向)来验证交易,而不是相信当时的情况。
3) SendEth
最后! 如果您在 Web3 上交互过,可能已经见过 SendEth 函数,其字面意思是您正在向另一个钱包发送以太币。 可能出现该函数的原因有:您正在自己的不同钱包地址之间发送以太币(比如,您刚刚买了 Ledger,要将资金转移到安全的地方),或者您正在市场上购买。
SendEth 相关风险
如果您不走运,该函数可能会在您不想看到的时候弹出。 一个典型的例子就是 NFT 铸币期间,这时候,用户以为自己是在铸币,但实际上他们只是将资金转移到另一个地址。
骗局以及如何识别
您不仅可以通过查看函数调用(如果是真正的铸币, 应该 会显示“mint”)来识别,还可以看看右上角的接收地址 – 铸币是区块链本身的直接交易,而不是与另一个钱包之间的交易,所以一旦这里出现接收地址,应该还存在其他重大危险信号。
智能合约骗局:不要轻信,要核实
您已经掌握了:使用 Web3 时可能遇到的关键智能合约函数(及相关风险)词汇表。
现在您已经了解这些不同函数的含义,可能很容易就能发现相关骗局,但社会工程学的力量之大不容小觑,特别是与难以捉摸的 Web3 新常态相结合时。 这就是为什么在开启您的旅程之前要用知识武装自己的原因。
所以,继续前进、不断学习吧,让自己沉浸在 Web3 的无限可能中! 权力掌握在您手中,Ledger 学院旨在确保您的权力不被剥夺。