以太坊原理图讲解发币,从底层架构到代币发行全流程解析
以太坊(Ethereum)是全球最流行的智能合约平台,“发币”本质上就是在以太坊上部署一个符合特定标准的智能合约,本文通过原理图的方式,从架构、账户模型、交易流程到代币合约的部署,系统讲解以太坊发币的技术原理。
⚠️ 合规提示:本文仅作技术科普,代币发行在多数国家和地区受严格监管(在中国大陆,ICO及虚拟货币相关业务活动属于非法金融活动),学习技术原理合法合规,但实际发行代币须遵守当地法律法规。
以太坊整体架构原理图
┌──────────────────────────────────────────────┐
│ 应用层(用户交互) │
│ DApp / 钱包(MetaMask) / DeFi │
├──────────────────────────────────────────────┤
│ 合约层(核心逻辑) │
│ EVM(以太坊虚拟机) + 智能合约(ERC-20) │
├──────────────────────────────────────────────┤
│ 数据层(账本存储) │
│ 区块链 / 状态树(MPT) / 交易树 / 收据树 │
├──────────────────────────────────────────────┤
│ 网络层(节点通信) │
│ P2P网络 / 节点广播 / 共识机制 │
└──────────────────────────────────────────────┘
各层职责:
- 应用层:用户通过钱包与链上合约交互的入口
- 合约层:发币的代码就运行在这一层的 EVM 中
- 数据层:记录谁持有多少代币(状态数据)
- 网络层:保证所有节点数据一致
账户模型原理图
以太坊有两类账户,这是理解发币的基础:
以太坊账户
┌──┴──┐
│ │
EOA账户 合约账户
(外部账户)(合约账户)
│ │
私钥控制 代码控制
│ │
可以发起 不能主动发起
交易 交易,只能被调用
| 对比项 | EOA 外部账户 | 合约账户 |
|---|---|---|
| 创建方式 | 生成私钥/助记词 | 部署合约 |
| 控制者 | 私钥持有者 | 合约代码逻辑 |
| 是否有代码 | 无 | 有(字节码) |
| 主动发起交易 | ✅ 可以 | ❌ 只能被动响应 |
关键点:你发的“币”,本质上就是一个合约账户,它的代码规定了代币的名称、总量和转账规则。
一笔转账交易的完整流程图
用户A转账给用户B
│
▼
① 钱包构造交易 ──→ ② 私钥签名
│
▼
③ 广播至P2P网络
│
▼
④ 节点验证(签名/Gas/余额)
│
▼
⑤ EVM执行合约代码
│
▼
⑥ 扣除Gas费,更新状态
│
▼
⑦ 打包进区块,全网同步
│
▼
⑧ 交易确认(B账本余额+B)
Gas 机制图解
Gas费 = Gas Limit(用量上限) × Gas Price(单价)
┌────────────────────────────┐
│ 简单转账: 21,000 Gas │
│ ERC-20转账: ~50,000 Gas │
│ 部署代币合约:1,000,000+ Gas│
└────────────────────────────┘
Gas 是防止恶意代码死循环的资源计费机制,操作越复杂,消耗越多。
ERC-20 标准:发币的技术规范
ERC-20 是以太坊代币的统一接口标准,所有钱包和交易所都默认支持,核心函数如下:
┌─────────────────────────────────────────┐
│ ERC-20 标准接口 │
├─────────────────────────────────────────┤
│ name() 代币名称 如 "MyToken" │
│ symbol() 代币符号 如 "MTK" │
│ decimals() 小数位数 通常为 18 │
│ totalSupply() 发行总量 │
│ balanceOf() 查询余额 │
│ transfer() 直接转账 │
│ approve() 授权额度 │
│ transferFrom() 授权转账 │
└─────────────────────────────────────────┘
代币转账原理图(合约内部状态变化)
转账前状态(存储在合约的状态变量中):
balances[0xAAA...] = 1000
balances[0xBBB...] = 0
执行 transfer(0xBBB..., 100) 后:
balances[0xAAA...] = 900 ← 减少
balances[0xBBB...] = 100 ← 增加
┌──────────────┐
│ 代币合约 │
│ (合约账户) │── 记录所有余额映射
│ balances映射表│
└──────────────┘
核心认知:代币转账并没有真的“转移”什么东西,只是修改了合约内部的一张余额映射表(mapping),而这个表全网节点共同记录、无法
The End
发布于:2026-10-05,除非注明,否则均为原创文章,转载请注明出处。
