# 一文科普智能合约以及 ERC 标准

By [SmartBlock](https://paragraph.com/@smartblock) · 2021-10-24

---

在现实生活当中，我们经常在各种业内报道中看见 ERC 的身影，那么什么是 ERC 呢？今天就来和大家聊一聊。

01
--

在讲 ERC 之前，先和大家科普一下[智能合约](http://mp.weixin.qq.com/s?__biz=MzUyNzE4MDM2MA==&mid=2247499150&idx=3&sn=ebc4d730bf6a33e23bfa548f9384c132&chksm=fa01caa9cd7643bf282080175f0e7ede3eb128e9fc14688b3bd6ea77ad7240e8d776fa7da751&scene=21#wechat_redirect)，智能合约的概念最早是在 1994 年由尼克.萨博提出。他定义道：**一个智能合约是一个计算机化的交易协议，它执行一个合约的条款。**

\*\*智能合约来源生活中的自动售货机，\*\*当客户往自动售货机投钱之后，自动售货机就开始工作。而智能合约是怎么样的呢？以以太坊中的智能合约为例，每一个以太坊中的智能合约都有自己的账户，就相当于自动售货机有自己的 ID 一样，当外部账户用一定的小费调用了自己选中的智能合约之后，就相当于启动了自动控制的开关，智能合约就会按照自己的代码定义自动地执行下去。

但是和自动售货机不一样的是，\*\*智能合约一旦创建完之后，它的代码就不能被更改，\*\*不能像自动售货机一样还能由工作人员打开门再放货品进去。

智能合约不可更改的优势让它很自然地适用于合约条款的场景，它可以有效地减少恶意篡改，减少人工干预。比如可以在以太坊上写一个类似银行的智能合约，然后人们就可以通过这个合约来存钱、取钱。这样就不会出现因为银行工作人员因失误或恶意更改导致余额不对等情况的出现。

事实上，这个“银行”智能合约里存的钱不一定是大饼（ETH），因为以太坊智能合约它还允许合约开发人员定义自己的货币，就是我们所知道的各种基于以太坊的 Token，比如 USDT，NBN 等。

这么一讲，仿佛智能合约给各行各业的人们提供了一个新的思路，大家都在想着是不是可以基于智能合约开发一些新的项目，发行自己的代币呢？智能合约当然可以，但是必须按照规定程序进行。**那么为了有效地防止平台上出现各种杂七杂八的代币、数据等，它有着自己的一套标准。**

02
--

ERC 全称是“Ethereum Request for Comment”，表示以太坊版的意见征求稿，ERC 中包含技术和组织等注意事项及标准。这套标准其实不光由以太坊官方提出，还由一些以太坊爱好者提出。 **以前面谈到的银行智能合约为例，我们不难想到它会具备以下几个功能和须知：**

1.  需要有记录每一个客户的余额；
    
2.  需要具备转钱的功能，即包含存钱与取钱；
    
3.  要保证每个客户能够查询自己的余额。
    

以上这些功能和须知仔细一思考，好像是每个“银行”合约都需要具备的，也是 Token 合约所需要具备的，**因此为了更好地兼容钱包，兼容交易所，以太坊发行了像 ERC20，ERC721 这样的代币协议标准。**

比如阿猫币、阿狗币都是基于 ERC20 标准发行的，那么它们都会提供给用户一些选择按钮（即接口函数一致），这些选择按钮供用户查询余额，转移代币等，但是阿猫币、阿狗币底层实现查询余额和转移代币的等功能的方式可以不同。

除了 Token 合约需要规范一样，\*\*其他的一些包括但不限于数据包的设计、一些接口的定义规则等也有一些 ERC 标准。\*\*这些标准协议一些来自于以太坊创团队，一些来自于以太坊的爱好者、贡献者的提议。总的来说，都是为了共同创建一个更好的以太坊环境。

所以，感兴趣的小伙伴也可以根据以太坊智能合约中的一些不足或是值得创新的地方提出自己的一些提议，作出自己的贡献。

---

*Originally published on [SmartBlock](https://paragraph.com/@smartblock/erc)*
