跳转到内容

以太坊核心概念总览

以太坊核心概念总览

本页内容正在整理中,欢迎贡献

概述

以太坊是一个去中心化的智能合约平台。理解其核心概念对于编写安全、高效的 DApp 至关重要。本章涵盖以太坊的基础架构知识,帮助你从第一性原理理解这个系统是如何工作的。

主要内容

核心概念导航

概念说明文档链接
账户模型EOA 与合约账户的区别本页
交易与签名交易结构、ECDSA 签名机制transactions
PoS 共识权益证明、验证者、最终性consensus
Token 标准ERC-20、ERC-721、ERC-1155token-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 转账 Gas21,000
确认安全性通常 12 个区块(~2.4 分钟)
最终性~15 分钟(2 个 epoch)

深入阅读