智能合约是一种自动执行、不可更改、无需第三方中介的计算机程序,部署在区块链上。通俗地说,它就像一段“代码写成的合同”,当满足设定的条件时,会自动执行其中的条款。以太坊是一个支持智能合约的区块链平台,它让开发者能在区块链上构建去中心化应用(DApps)。
作者
经验值
阅读时间
智能合约(Smart Contract)是一种运行在区块链上的程序,它会在特定条件被满足时自动执行预设好的逻辑,无需第三方中介干预。
你可以把它想象成一个自动贩卖机:
智能合约是以代码形式存在的合约逻辑,部署在如以太坊等区块链上,具备以下特点:
特点 | 说明 |
自动执行 | 一旦满足触发条件,自动运行,无需人工。 |
不可篡改 | 部署后内容不可更改,确保信任。 |
去中心化 | 不依赖单一机构,由整个区块链网络保障执行。 |
公开透明 | 所有逻辑对所有人可见,便于审计与监督。 |
例如一个代币合约:
contract Token {
mapping(address => uint256) balances;
function transfer(address to, uint256 amount) public {
require(balances[msg.sender] >= amount);
balances[msg.sender] -= amount;
balances[to] += amount;
}
}
这个合约定义了一个简单的转账规则:谁有余额,就可以转给别人。
以太坊(Ethereum)是一个去中心化的智能合约平台,它不仅能像比特币那样转账,还能部署并运行代码(智能合约)。它的核心理念是:
「让区块链成为一种世界计算机,人人都能在其上运行可信的程序。」
1. 账户系统(Accounts)
以太坊中有两种账户:
账户类型 | 简介 |
外部拥有账户(EOA | 由用户控制,有私钥,能发起交易。 |
合约账户 | 由合约代码控制,不能主动发起交易,只能响应交易。 |
用户发送交易,调用合约 → 合约自动执行代码 → 修改区块链上的状态
2. 交易(Transactions)
每一次用户与以太坊互动(转账、调用合约等),本质上都是一次“交易”。
交易包含以下信息:
合约调用时,data字段会携带函数选择器与参数。
3. EVM(Ethereum Virtual Machine,以太坊虚拟机)
EVM 是一个运行在每个节点上的“沙箱环境”,它负责执行合约代码,并保持结果一致。
类比:EVM 就像一个浏览器,而智能合约是网页程序。
4. Gas机制
运行智能合约需要消耗计算资源,EVM 的每一步操作都有“费用”:
执行过程:
防止攻击者执行死循环或滥用资源(例如 DoS 攻击)
5. 区块与状态存储
所有数据状态的变化,都是“确定性的”,即任意节点都能通过交易日志重放得出同样的状态。
6. 共识机制
以太坊当前使用的是 PoS(Proof of Stake,权益证明):
共识阶段 | 描述 |
以太坊 1.0 | oW(工作量证明),矿工挖矿竞争打包交易 |
以太坊 2.0(现状) | PoS,用户质押ETH成为验证者,轮流打包交易 |
流程简述:
优点:更环保,交易处理更快
完整流程如下:
用户 → 钱包发起交易(含合约调用数据)
↓
节点接收 → 进入内存池(mempool)
↓
被验证者选中打包进新区块
↓
EVM 执行合约代码
↓
结果被写入状态树(账户余额、合约存储)
↓
新状态广播全网 → 所有节点同步
以太坊 = 区块链 + 智能合约平台 + 去中心化虚拟机(EVM) + 权益共识机制(PoS)