Solidity(以太坊)中‘0x0’地址含义及相关代码疑问
Solidity中
0x0地址到底是什么? 嘿,刚好我对这个熟,给你讲明白~
在以太坊和Solidity的世界里,0x0(也常被称为零地址)是个特殊的存在:它本质是一串全零的十六进制地址(完整写法是0x0000000000000000000000000000000000000000,大家嫌麻烦就简写为0x0),它不属于任何用户、代币或者智能合约,也没有对应的私钥——也就是说,没人能操作这个地址里的资产。
你看到的代码Transfer(0x0, msg.sender, tokens);,这在ERC20这类代币合约里是铸造(Mint)新代币的标准写法。按照ERC20的Transfer事件规则:
- 当转账的发起方是
0x0时,就代表有新代币被生成出来,然后发送给msg.sender(也就是调用这个函数的地址)。 - 反过来,如果是
Transfer(msg.sender, 0x0, tokens),那就是销毁(Burn)代币——把代币转到零地址,相当于从流通中永久移除,再也找不回来。
顺便提个重要的坑:千万别不小心把资产转到0x0地址,因为没有私钥能控制它,转进去的资产就彻底丢失了,再也拿不回来哦!
内容的提问来源于stack exchange,提问作者Harry
相关产品推荐
相关产品推荐

