不过,绝大多数骗子的伎俩都可以通过使用智能合约进行检查来识别。以下步骤可用于确定合同是否是恶意的。为了展示好合约和坏合约的区别,本教程将首先给出正常合约的示例,然后给出恶意合约的示例。
普通合同示例
1.访问以太坊浏览器;
2. 在搜索栏中输入合约地址(仔细检查您的地址是否正确);
2a.如果您不知道合约地址,可以通过 、CMC 或 获取。
2b.请记住,代币页面和合约页面是不同的,请确保您位于合约页面。
以下是令牌页面的示例:
以下是合同页面的示例(突出显示合同选项):
3. 点击上方黄色突出显示的“()”按钮;
4、选择阅读合约如下图:
5. 现在您可以读取合约的参数,它们应该如下所示:
现在怎么办?
这就是棘手的地方,因为代币的智能合约中可以包含无数的潜在参数。上面的例子中,只有8个参数,这是正常合约的标志。因为这8个参数都是token需要的,不会造成“拉毯子”。
rug pull,即“拉出毯子”
其他代币的合约也是如此,您仍然可以使用完全相同的步骤读取合约。恶意诈骗合同中有一些常见的危险信号,下面将概述。现在我们知道如何访问和查看智能合约参数,我们可以确定什么是潜在的恶意代码。
恶意合约示例
1. 铸币功能(Mint)——该功能允许铸造更多代币,从而增加供应量,并有可能允许铸币者在市场上出售这些代币。这是导致基础代币价格暴跌的最常见情况。免责声明:由于依赖弹性供应,某些代币具有铸币功能。但除非有铸币的理由,或者存在相关规则,否则不应该有铸币功能。检查谁是 mint 函数的所有者很重要:如果所有者是 dev(开发人员),这显然是一个危险信号;如果它是基于数量/价格的智能合约,那么这是去中心化的,而不是一个骗局。
2. 白名单功能( ) - 该参数仅在项目随机预售时才会出现( )。作用是要求白名单中的地址参与申购,保证不超额认购。如果该项目没有预售,但合同中仍然有此功能,则可以利用它来使其无法销售到白名单之外的任何地址。也就是说,你可以买,但不能卖。
3.冻结功能( )——顾名思义,该功能可以随时冻结资产交易。虽然简单,但它显着阻止人们出售池中的代币,锁定以太币和原生代币直到解冻。
3a.叠加所有权转移功能( ),如果合约创建者拥有冻结功能的控制权,那么他们可以冻结合约,然后将所有权发送到销毁地址。这会“杀死”合约中的以太坊和其他代币,这些代币将永远无法运行。
4.不是具体的参数,而是代币的参数越多,可以被攻击的参数就越多。除非代币的项目需要这些参数,否则不应将其随意添加到代码中。
其他注意事项
1、总量“多得难以衡量”,或者说一个地址拥有大部分代币。经常看到部署合约的地址(即开发者地址)拥有大部分代币,这是一个潜在的危险信号。
2. Uni-v2 池的代币数量(流动性)明显小于最大个人持有者的代币数量。请注意,这里不包含此内容,因为该地址是从多个地址转移的累计金额。这是“鲸鱼”分布不均匀的迹象,“鲸鱼”破坏生态系统的可能性越来越大。
注意:普通地址和合约地址的区别在于地址旁边的符号。以黄色突出显示的符号表示该地址是合约。如果该符号不存在,则该地址是个人地址。如果合约中出现大量代币,了解其用途非常重要(例如for、线性解锁或锁定团队代币等)
3. 匿名团队可能是一个危险信号,但也应该理性看待匿名。如果产品是健全的,安全措施已经到位,并且开发人员对其代码和对问题的回答是透明的,那么匿名不应该是一个负面因素。但如果匿名和其他危险信号同时出现,则意味着风险显着增加。
总结
总体而言,与其他投资相比,以太坊上的 Defi 合约的风险肯定很高。然而,了解合约如何运作的基础知识并能够识别潜在诈骗的危险信号可以帮助用户降低这种风险。在区块链上进行交互始终存在风险,但投资不含恶意代码的合约可以显着防止进一步的损失,从长远来看可能有助于您的盈利。