
适用范围:以以太坊技术体系为例
理解区块链ico系统涉及哪些技术概念,可以先把问题拆成规则如何执行、代币如何记录、权限如何控制。本文讨论以太坊及相关代币合约的基础机制,不能据此认定所有区块链系统都采用相同设计,也不能判断某个具体项目的实现质量。
智能合约、账户与交易
Ethereum.org的智能合约介绍说明,合约是在链上特定地址保存代码和状态的程序,用户通过交易调用其函数。Solidity等语言编写的合约需要编译,由以太坊虚拟机执行;部署及改变链上状态的交易涉及Gas费用。合约还可以调用其他合约。

对应到系统理解,代码规定哪些操作可以执行,状态保存操作后的结果,交易承载调用请求。分析一个功能时,应关注它改变哪些状态、要求什么条件,以及条件不满足时如何处理。界面上的功能名称本身不足以说明链上规则。

ERC-20与数量精度
OpenZeppelin的ERC-20文档说明,这类合约记录可互换代币,提供余额、转移等基础能力。其示例通过铸造建立初始供应量。decimals用于显示换算,合约内部仍使用整数记录数量。
因此,代币标准、供应机制和业务规则需要分别理解。具备ERC-20接口,并不意味着已经具备完整的发行业务逻辑。显示精度也不等于新增供应量:界面上的数量与链上整数必须按同一精度换算,否则容易产生单位误读。
外部数据与权限管理
Ethereum.org还指出,智能合约不能自行读取链外信息,预言机可将外部数据提供给合约;多签合约则要求满足一定数量的有效签名才能执行操作。
这两类机制解决不同问题。只有规则依赖链外信息时,才需要讨论相应的数据接入方式;需要多人共同控制的操作,则涉及签名门槛和权限分配。引入组件后,仍需明确数据由谁提供、哪些操作受控制,以及相应依赖是否符合系统需求。
常见问题:标准与自动执行意味着什么
采用标准合约库,是否就代表系统完整?标准库提供可复用的基础能力,完整性仍取决于具体业务规则和组件之间的连接。
合约自动执行,是否意味着规则一定正确?自动执行表示程序按代码处理输入。若代码表达的条件存在遗漏,自动执行也无法补足业务意图。理解此类系统时,应分别审视代币记录、规则执行与管理权限,避免把某一项技术能力当成整体质量的证明。