代币不过是一份记账的合约
想象墙上挂着一本共享的笔记本,人人都能看,却只有一套规则能改写。本子有两列:谁和多少。爱丽丝有 50,鲍勃有 12,其余都是零。要把 10 从爱丽丝「转」给鲍勃,没人递出任何实物——规则只是划掉爱丽丝的 50,写上 40,再把鲍勃加到 22。这本笔记本*就是*那枚代币。哪儿都没有硬币;有的只是余额账本,以及更新它的那套规则。
在以太坊上,这种「笔记本加规则」恰恰就是一份智能合约:代码和存储,住在同一个地址上。因此一枚代币并不是链的内建功能——它只是一份恰好在记账的普通合约。任何人都能在一个下午里部署一个。链本身甚至不知道它是「代币」;它只看到一份合约,其存储把一些地址映射到一些数字。
ERC-20:当每一单位都可互换
你常听说的大多数代币都是同质化的:每一单位都完全相同、可以互换,就像美元或一粒粒米。你的 10 单位,和别人的 10 单位价值完全一样——没有哪个单位「特别」。它们的标准是 ERC-20,其核心就是那张两列账本:一个从每个地址到单一数字(也就是余额)的映射。
下面是一个精简版,用以太坊的主力合约语言 Solidity 写成。请留意,这里没有任何魔法——只有一张余额表,和一条 `transfer` 规则:从发送方扣减,给接收方增加。
// a minimal fungible token (ERC-20 idea)
mapping(address => uint256) public balanceOf;
function transfer(address to, uint256 amount) public {
require(balanceOf[msg.sender] >= amount, "too poor");
balanceOf[msg.sender] -= amount; // debit sender
balanceOf[to] += amount; // credit receiver
emit Transfer(msg.sender, to, amount);
}ERC-20 还定义了一对 approve / transferFrom:你可以授权另一份合约,代你挪动一笔约定额度——这正是在 DeFi 交易所里完成兑换的机制。你只需对交易所授权一次,之后你交易时,它便按约定额度把币取走。
ERC-721:当每一件都独一无二
有些东西不能互换。某趟航班上的 14C 座位、某栋房子的房契、一张编号的演唱会门票——把你的换成别人的,会改变你手里握着的*具体*是哪一件。这些是非同质化的,其标准是 ERC-721。关键的改动微小却深刻:它不再把地址映射到*多少*,而是把唯一的代币编号(token id) 映射到*归谁所有*。
// fungible (ERC-20): address -> amount balanceOf[alice] = 40 // 40 identical units // non-fungible (ERC-721): tokenId -> owner ownerOf[1] = alice // she holds item #1 ownerOf[2] = bob // he holds item #2 ownerOf[3] = alice // and item #3, a different thing // transfer just reassigns one id's owner: ownerOf[1] = bob // item #1 is now bob's
每个编号都能指向自己的图片、歌曲或文件,所以一份 ERC-721 合约就是一份各不相同的收藏品登记册。这正是 NFT 背后的机器——但同样的模式也能为一块地确权、签发一张会员通行证,或登记一把游戏里的剑。无论是否同质化,这两种标准做的都是*同一件*基本工作:让一份合约诚实、公开地记录谁持有什么。
为什么标准才是真正的魔法
如果代币只是一份合约,那么人人都能自创函数名——`send`、`give`、`move`、`yeet`。这样一来,钱包就得为有史以来的每一种代币都写一套专门代码,根本做不到。代币标准通过事先约定好确切的接口来解决这个问题:函数的名字、它们的输入,以及它们发出的事件。ERC-20 承诺提供 `transfer`、`balanceOf`、`approve`;ERC-721 承诺提供 `ownerOf`、`safeTransferFrom`,等等。
可以把它想成电源插头的形状。你不需要知道一盏灯是谁造的;只要它带着标准插头,就能插进插座。正因为成千上万的代币都对外露出*同一种* ERC-20 形状,一个钱包就能显示它们当中的每一个,一家交易所也能在某个全新代币上线当天就把它挂牌——无需任何专门对接。
所以,要带走的心智模型很简单:代币是一份在记账的合约,ERC-20 用于可互换的单位,ERC-721 用于独一无二的物品,而共享的标准接口,就是那条让网络上每个应用都能与它对话的无声约定。有了这块基石,后面的指南就能展示这些代币*能做什么*——汇聚成市场、治理组织,并在整个以太坊经济中流转价值。