原标题:如何识别以太坊合约避免“抽毯子”
不过,绝大多数的子伎俩可以通过使用 Etherscan 检查智能合约来识别。以下步骤可用于确定合约是否是恶意的。为了展示好的合约和坏的合约之间的区别,本教程将首先给出一个正常合约的例子,然后给出恶意合约的例子。
1. 访问以太坊浏览器;
2. 在搜索栏中输入合约地址 (仔细检查你是否有正确的地址);
2a. 如果不知道合约地址,可以通过 Dextools、 CMC 或 CoinGecko 获得。
2b. 需要记住的是,代币页和合约页是不同的,请确保位于合约页上。
下面是代币页的例子:
这是合约页的例子(突出显示合约选项):
3. 点击上面黄色高亮的「合约(Contract)」按钮;
4. 选择如下所示的阅读合约:
5. 现在可以阅读合约的参数,它们应该是这样的:
这就是最棘手的地方,因为有无数个潜在的参数可以包含到一个代币的智能合约中。在上面的例子中,只有 8 个参数,这是一个正常合约的标志。因为所有这 8 个参数都是代币所必需的,并且不会引发「抽毯子」。
rug pull,即「抽毯子」
其他代币的合约也一样,仍然可以使用完全相同的步骤来阅读合约。在恶意合约中有一些常见的危险信号,这些将在后文概述。现在我们知道了如何访问和查看智能合约参数,就可以确定哪些是潜在的恶意代码。
1.铸币功能(Mint)——这个功能允许铸造更多的代币,从而增加了供应量,并可能允许铸币者在市场上卖出这些代币。这是最常见的导致相关代币价格崩溃的情况。声明: 一些代币具有 mint 功能,因为依赖于弹性供应。但除非有造币的理由,或相关的规则存在,否则不应该有 mint 功能。检查谁是 mint 功能的所有者是很重要的: 如果所有者是 dev(开发者),这显然是一个危险信号; 如果 minter 是一个基于数量/价格的智能合约,这就是去中心化的,不太可能是一个局。
4. 不是特定的参数,而是一个代币具有的参数越多,被攻击的参数也就越多。除非代币的项目需要这些参数,否则不应该随意地将它添加到代码中。
1.「0 多到难以计量」的总量,或者说,一个地址拥有绝大部分的代币。通常可以看到部署合约的地址(即开发者地址)拥有大部分的代币,这是一个潜在的危险信号。
2.Uni-v2 池的代币量(流动性),明显小于最大个人持有者的代币量。注意,这里并不包括 staking,因为 staking 地址是众多地址转入的累计额。这是「鲸鱼」分布不均的标志,「鲸鱼」破坏生态系统的可能性越来越大。
注意: 正常地址和合约地址之间的区别是地址旁边的符号。用黄色突出显示的符号表示该地址是一份合约。如果这个符号不存在,那么这个地址就是一个个人地址。如果合约中出现了大量的代币,那么了解它们的用途就非常重要了 (比如用于 staking、线性解锁或锁定团队代币等)
3. 匿名团队很可能是一个危险信号,但是也应该理性看待匿名性。如果产品是健全的,安全措施已经到位,开发人员的代码和对问题的回答都是透明的,那么匿名不应该是一个负面因素。但如果匿名和其他危险信号同时出现,那就意味着风险显著增加。
总的来说,与其他的投资相比,以太坊上的 Defi 合约的风险肯定很高。然而,了解合约运作的基本知识,并能够识别出潜在的危险信号,可以帮助用户降低这种风险。在区块链上进行交互总是有风险的,但是投资于没有恶意代码的合约可以显著防止更多的损失,并且从长远来看可能有助于你的收益。
原文来源:Gem Hunters
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。