在前面的章节中,我们学习了比特币如何通过区块链技术实现了去中心化的数字货币,以及区块链技术的基本原理,包括共识机制、区块链结构、智能合约等核心概念。比特币证明了去中心化货币的可行性,但它的功能相对有限——主要用于价值存储和转移。
那么,区块链技术能否承载更复杂的应用?能否运行任意的程序?这就是以太坊要解决的问题。本篇将介绍区块链发展史上的另一个重要里程碑——以太坊,了解它如何通过智能合约技术,将区块链从简单的价值转移工具提升为可编程的去中心化计算平台。
2013年,当时19岁的Vitalik Buterin(维塔利克·布特林)发布了以太坊白皮书,提出了一个具有图灵完备编程语言的区块链平台。他认为比特币的脚本语言功能太有限,无法支持更复杂的应用,因此设想创建一个"世界计算机",让开发者可以在上面构建任意的去中心化应用。
2014年,以太坊通过众筹筹集了约1800万美元的比特币,成为当时最成功的加密货币众筹项目之一。
2015年7月30日,以太坊创世区块诞生,正式上线。从诞生至今,以太坊已经成为仅次于比特币的第二大加密货币平台,更是智能合约和去中心化应用的首选平台。
以太坊的历史地位:
如果说比特币开创了区块链1.0时代——数字货币,那么以太坊则开启了区块链2.0时代——可编程的区块链平台。以太坊的出现让区块链从单纯的价值转移工具,进化成了一个可以运行任意程序的去中心化计算平台,这是区块链技术发展史上的重要里程碑。
虽然以太坊和比特币都是区块链技术,但它们的定位和功能有很大不同:
| 特性 | 比特币 | 以太坊 |
|---|---|---|
| 定位 | 数字货币 | 去中心化计算平台 |
| 目标 | 点对点的电子现金系统 | 可编程的区块链平台 |
| 脚本语言 | 简单的脚本语言(非图灵完备) | Solidity等(图灵完备) |
| 出块时间 | 约10分钟 | 约12-15秒 |
| 共识机制 | POW | POS(2022年9月从POW切换) |
| 智能合约 | 功能有限 | 完全支持复杂智能合约 |
| 应用场景 | 主要是价值存储和转移 | DeFi、NFT、DAO、游戏等 |
| 货币供应 | 总量2100万枚(固定) | 无固定上限(通胀率逐年降低) |
| 账户模型 | UTXO模型 | 账户余额模型 |
简单来说:
智能合约是以太坊最核心的创新,也是以太坊与比特币最大的区别。
智能合约是一段部署在区块链上的代码,它可以自动执行、控制或记录相关事件和行动。一旦部署到区块链上,智能合约就会按照预设的规则自动运行,不受任何人的控制。
"智能合约"这个名字最早由密码学家Nick Szabo在1994年提出,但直到以太坊的出现,智能合约才真正实现。
以下是一个简单的智能合约示例(使用Solidity语言):
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// 简单的存款合约
contract SimpleBank {
// 使用mapping记录每个地址的存款余额
mapping(address => uint256) public balances;
// 存款函数
function deposit() public payable {
require(msg.value > 0, "Deposit amount must be greater than 0");
balances[msg.sender] += msg.value;
}
// 查询余额函数
function getBalance() public view returns (uint256) {
return balances[msg.sender];
}
// 提款函数
function withdraw(uint256 amount) public {
require(balances[msg.sender] >= amount, "Insufficient balance");
balances[msg.sender] -= amount;
payable(msg.sender).transfer(amount);
}
}
这个合约实现了一个简单的存款系统。任何人都可以向合约存款,合约会记录每个地址的存款金额,用户也可以随时提取自己的存款。这展示了智能合约的几个重要特性:
mapping存储每个用户的数据智能合约可以实现各种复杂的应用场景:
以太坊使用账户模型(Account Model),而不是比特币的UTXO模型。以太坊中有两种类型的账户:
这就是我们日常使用的以太坊账户,比如你的钱包地址。
合约账户就是部署在区块链上的智能合约,它有自己的地址,可以持有资产,按照代码逻辑自动执行。
Gas是以太坊独有的概念,是执行交易和智能合约所需的"燃料"。
交易费用 = Gas Used × Gas Price
例如,一笔简单的以太币转账通常消耗21,000 Gas;而复杂的智能合约交互可能消耗几十万Gas。
2021年8月,以太坊实施了EIP-1559升级中,改变了Gas费的计算方式:
- Base Fee(基础费用):由网络根据拥堵程度自动调整,这部分费用会被销毁(burn) ,使Gas费更可预测
- Priority Fee(优先费用):用户给验证者的小费,鼓励优先打包
以太坊虚拟机(Ethereum Virtual Machine, EVM)是以太坊的运行环境,是智能合约执行的核心。EVM 是图灵完备:可以执行任意复杂的计算(只要Gas足够),为实现复杂的应用提供了基础。
由于EVM的成功,许多其他区块链也采用了EVM,使得以太坊的智能合约可以在这些链上运行:
这些链被称为"EVM兼容链",开发者可以轻松将以太坊应用迁移到这些链上,形成了一个庞大的EVM生态系统。
我们可以通知编写智能合约代码,在以太坊上发行各种代币,这些代币遵循一定的标准(智能合约的接口标准),使得它们可以被钱包、交易所等应用识别和使用。
ERC-20是最常用的代币标准,用于发行可互换的代币(如稳定币USDT、USDC,DeFi代币UNI、AAVE等)。每个ERC-20代币都是相同的,就像货币一样可以互换。
ERC-721用于发行独一无二的代币,每个代币都有唯一的ID和属性,常用于数字艺术品、游戏道具等。
ERC-1155可以在一个合约中管理多种代币(既可以是同质化的,也可以是非同质化的),常用于游戏中的多种道具。
以太坊从工作量证明(POW)切换到权益证明(POS),这是以太坊历史上最重要的升级:
主要改变:
允许验证者提取质押的ETH,这是POS机制的重要补充,增强了验证者的信心。
引入Proto-Danksharding(EIP-4844),大幅降低Layer2的数据成本,使Rollup的手续费降低10-100倍。
Pectra(Prague-Electra)升级带来了多项重要改进,包括账户抽象(EIP-7702)、提高验证者质押上限(EIP-7251)等,进一步提升以太坊的可用性和效率。
Fusaka(Fulu-Osaka)升级带来了多项重要改进:
在过去,主网在极端拥堵时Gas费仍可能较高。例如在2021 DEFI Summer 时,一笔交易需要数十甚至数百美金,且随着以太坊多次扩容升级,主网费用在持续降低。加上 Layer2 ,整个以太坊生态系统的吞吐量已提升至每秒数千笔交易,当前费用大幅降低。
以太坊已经形成了庞大的生态系统,成为Web3世界的基础设施:
以太坊的出现深刻地改变了区块链的发展方向:
开创了智能合约时代:让区块链从单纯的价值转移工具,变成了可以运行任意程序的平台
催生了DeFi生态:去中心化金融让任何人都可以无需许可地使用金融服务
推动了NFT发展:数字艺术、游戏、元宇宙等创新应用成为可能
形成了开发者生态:Solidity成为最流行的智能合约语言,培养了大量区块链开发者
建立了技术标准:EVM成为事实上的智能合约虚拟机标准,众多公链选择兼容EVM
探索了新的组织形式:DAO(去中心化自治组织)提供了全新的协作方式
以太坊通过智能合约技术,将区块链从简单的价值转移平台提升为可编程的去中心化计算平台。它的核心创新包括:
从DeFi到NFT,从DAO到GameFi,以太坊已经成为Web3世界的基础设施。虽然还面临扩容等挑战,但通过Layer2等技术,以太坊生态正在不断完善和发展。
如果说比特币证明了去中心化数字货币的可行性,那么以太坊则展示了区块链技术更广阔的应用前景。它不仅是一个技术平台,更是一个充满活力的创新生态系统。