光电 · 技术与产业
文章库关于本站

产业观察

区块链的合约地址相关术语如何理解:账户、部署与代币精度

摘要

合约地址用于标识链上的合约账户,理解它需要区分账户、钱包、私钥以及代币余额。本文以以太坊和 ERC-20 为范围,解释地址生成中的 nonce、CREATE2 与 salt,以及 name、symbol、decimals 等常见术语。

区块链价格波动率的科技主题配图

适用范围:以太坊与 ERC-20

以下解释适用于以太坊账户模型及 ERC-20 代币接口。其他区块链可能采用不同的地址格式和账户规则,不能仅凭“合约地址”这一名称套用全部细节。

合约地址、账户和钱包

Ethereum 账户文档区分外部账户与合约账户:前者由私钥控制,后者依代码逻辑运行。合约地址标识合约账户,通常写成 0x 加上 40 个十六进制字符。钱包则是与账户交互的应用或界面。

区块链价格预警的科技主题配图

因此,“地址”“账户”“钱包”分别对应标识、链上实体和交互工具。外部账户与合约账户的地址外观相似,仅看字符串长度无法判断它属于哪类账户。

区块链行情数据api的科技主题配图

nonce、CREATE2 和 salt

常规 CREATE 部署通过创建者地址及其 nonce 派生合约地址;nonce 是与账户活动有关的计数。CREATE2 则使用创建者地址、指定的 salt 和创建代码的哈希派生地址。salt 可理解为参与计算的选定值。

这里的“派生”指按规则计算。CREATE2 允许预先计算地址,所以“已经知道地址”和“合约已经部署”是两个不同判断。地址计算结果本身不能证明该位置已有可运行的合约。

代币合约地址与余额

OpenZeppelin 的 ERC-20 文档说明,代币合约记录同质化代币的余额。name 和 symbol 分别表示名称与符号,balanceOf 用于查询某个地址的余额,decimals 表示展示时使用的小数位数。

可以把代币合约理解为维护余额记录的程序:合约地址定位这套程序,持有者地址用于查找其中的余额记录。因此,代币合约地址与持有者地址承担不同角色,不能混为一谈。

常见问题:精度和控制权

decimals 会让余额增加吗?它规定整数如何换算成界面上的数量,不会因显示出小数就新增代币。理解余额时,需要把原始整数与展示精度结合起来;单看原始数值,容易误读数量。

知道合约地址就能控制合约吗?地址只是定位信息,不代表操作权限。合约账户没有用于直接签名的自身私钥,某项调用能否执行取决于代码逻辑。公开可见的地址与获准执行的操作,是两个独立概念。

← 返回全部文章

延伸阅读 · 相关栏目

光电技术产业观察研究资料资料与核验