以太坊核心概念总览
以太坊核心概念总览
本页内容正在整理中,欢迎贡献。
概述
以太坊是一个去中心化的智能合约平台。理解其核心概念对于编写安全、高效的 DApp 至关重要。本章涵盖以太坊的基础架构知识,帮助你从第一性原理理解这个系统是如何工作的。
主要内容
核心概念导航
| 概念 | 说明 | 文档链接 |
|---|---|---|
| 账户模型 | EOA 与合约账户的区别 | 本页 |
| 交易与签名 | 交易结构、ECDSA 签名机制 | transactions |
| PoS 共识 | 权益证明、验证者、最终性 | consensus |
| Token 标准 | ERC-20、ERC-721、ERC-1155 | token-standards |
账户模型
以太坊有两种账户类型:
外部账户(EOA,Externally Owned Account)
- 由私钥控制
- 可以发起交易
- 没有关联代码
- 例如:MetaMask 钱包地址
合约账户(Contract Account)
- 由代码控制
- 通过接收交易触发执行
- 拥有持久化存储
- 例如:Uniswap、USDC 合约
以太坊虚拟机(EVM)
EVM 是以太坊的计算引擎:
- 图灵完备:可以执行任意复杂的计算逻辑
- 沙盒隔离:合约在独立环境中运行,无法访问系统资源
- 确定性:相同输入永远产生相同输出
- 基于堆栈:256 位字长的堆栈机器
- 字节码执行:Solidity 编译为 EVM 字节码后执行
Gas 机制
Gas 是以太坊的计算费用单位:
交易费用 = Gas Used × Gas Price(Gwei)- Base Fee:网络动态调整的最低 Gas 费,随网络拥堵自动升降(EIP-1559)
- Priority Fee(Tip):给验证者的小费,激励优先打包
- Gas Limit:交易愿意消耗的最大 Gas 数量
最终费用 = Gas Used × (Base Fee + Priority Fee)世界状态(World State)
以太坊维护一个全局状态树(Merkle-Patricia Trie):
- 每个账户的余额(Balance)
- 每个账户的 nonce(防止重放攻击)
- 合约账户的代码哈希(Code Hash)
- 合约账户的存储根(Storage Root)
区块结构
区块├── 区块头(Block Header)│ ├── parentHash 父区块哈希│ ├── stateRoot 世界状态根哈希│ ├── transactionsRoot 交易树根│ ├── receiptsRoot 收据树根│ ├── baseFeePerGas EIP-1559 基础费│ └── ...└── 交易列表关键数字参考
| 参数 | 数值 |
|---|---|
| 出块时间 | ~12 秒 |
| 区块 Gas 上限 | ~30M Gas(目标 15M) |
| 简单 ETH 转账 Gas | 21,000 |
| 确认安全性 | 通常 12 个区块(~2.4 分钟) |
| 最终性 | ~15 分钟(2 个 epoch) |