就像每个人有独一无二的身份证号码一样,以太坊区块链上的每种 ERC20 代币,都有一个独一无二的智能合约地址。
村里有两个人都叫做小明,你应该如何区分他们呢?这个问题在区块链上同样存在。
以太坊区块链上有数不清的代币,有时会在钱包里同时看到两种币,名字居然一模一样。所以会有用户询问:我该如何区分它们呢?
其实很简单,只需要通过代币的「智能合约地址」,即可分辨同名代币。
什么是智能合约
「智能合约」这个词最早在二十世纪九十年代,由密码学家 Nick Szabo 提出,并在以太坊区块链上得到了快速发展。
如果将以太坊区块链当成是一台电脑,那么智能合约就是运行在这台电脑上的软件。
与传统软件不同,智能合约一旦部署到以太坊区块链上,就无法升级与停止,唯一的办法是更换新的智能合约。
应用最广的智能合约
智能合约的表现形式与实际作用多种多样:抵押借贷型(MakerDAO、AAVE)、兑换交易型(Uniswap、Tokenlon)等等。
实际上, 在区块链上最被广泛使用的智能合约,还是遵循 ERC20 规范的智能合约 。
与以太坊的原生代币 ETH 不同, ERC20 代币是属于 ERC20 规范的智能合约代币。
ERC20 规范由以太坊开发者 Fabian Vogelsteller 于 2015 年 11 月引入,作为以太坊征求意见(ERC),它被自动分配了 GitHub 发行号码 20 ,从而获得了名字「ERC20 」。
ERC20 规范的智能合约通常都比较简单,除了有转账功能外,还定义了代币的名称、符号、总量、小数位等。
举个简单例子似乎更容易理解。
- Alice 有 100 个 USDT,Bob 有 0 个 USDT
- Alice 给 Bob 转账了 20 个 USDT
- Alice 有 80 个 USDT,Bob 有 20 个 USDT
代币的智能合约地址
当智能合约部署到以太坊上时,会生成一个内部地址(智能合约地址),该地址用作指向正在运行的区块链程序(已部署的智能合约)。
如果你看不懂上面这句话,没关系。我们换个说法:当你要转账 ERC20 代币时,需要让矿工在上百万个智能合约中,找到对应的智能合约 ,从而才能在上面进行「转账」行为。
这也就解释了:在 imToken 进行 ERC20 代币转账时,你能看到一笔对应的 0 Ether 「合约调用成功」记录,其收款地址就是代币对应的智能合约地址。
历时 5 年,在以太坊区块链上已经有超过 30 万种不同的 ERC20 代币。
由于 ERC20 代币的发行没有中心化管理机构,所以人人都可以部署智能合约来制作 ERC20 代币,结果就是同名代币屡见不鲜。
这些同名代币,大多数都是骗子发行来骗人的,imToken 团队在收到用户举报并核实后,会第一时间添加「风险」的标记,之前我们也有文章介绍过同名代币的骗局。如果你遇上了这种代币,请及时与我们联系:[email protected]
因此在 imToken 中手动添加 ERC20 代币,最好的方式是用代币的合约地址来搜索添加。
当你在 imToken 搜索 「USDT」 时,会发现出来一堆的 「USDT」。但如果是通过 「USDT」 的合约地址搜索,只会出来一个。代币的合约地址可在项目方官网中查看,或者找代币项目方索要。
如何使用代币的智能合约地址,你学会了吗?