以太坊:智能合约、Gas 与权益证明
了解什么是智能合约,以 gwei 和欧元计算以太坊交易费用,并了解权益证明如何保障网络安全。
您将学到什么
- 什么是智能合约,它能做什么、不能做什么。
- Gas、基础费用和优先费用如何组合成交易费用。
- 如何将费用从 gwei 换算为 ETH 和欧元。
- 以太坊上的权益证明如何运作,以及验证者承担哪些风险。
讲解
《比特币与加密资产基础》课程讲解了区块和工作量证明。以太坊保留了共享账本,但在其之上增加了一台通用计算机。
账户与智能合约
以太坊有两种账户。外部账户(EOA)由私钥控制,就像普通钱包一样。合约账户则存放代码。智能合约是存储在区块链上的程序,当有人向它发送交易时,它会严格按照编写的内容运行。它可以持有代币、遵循规则(“如果条件 X 为真,则释放资金”)并调用其他合约。
重要的局限:智能合约无法修复自身的漏洞;没有预言机(一种将价格等外部数据输入链上的服务),它就无法看到外部世界;而“代码即法律”只意味着代码按编写内容运行,并不意味着它公平或正确。许多合约可以由管理员密钥通过“升级”功能进行更改,这是一项您应当核实的信任假设。
代币
以太坊上的大多数代币遵循 ERC-20 标准(ERC = Ethereum Request for Comments,以太坊征求意见稿),这是一组通用函数,例如“transfer”(转账)和“approve”(授权)。授权赋予某个合约转移您代币的权限。无限额授权是一种常见风险:如果被授权的合约日后遭到攻击,您的代币可能被盗走。
Gas 与费用
每项操作都要消耗 gas,这是衡量计算工作量的单位。一笔简单的 ETH 转账使用 21,000 gas。一次代币兑换通常使用 100,000–200,000 gas。Gas 的价格以 gwei 计价:1 gwei = 0.000000001 ETH(十亿分之一个 ETH)。
自 2021 年 8 月的伦敦升级(EIP-1559,EIP = Ethereum Improvement Proposal,以太坊改进提案)以来,gas 价格由两部分组成:
- 基础费用:由协议为每个区块设定,并被销毁(永久清除)。在一个超过半满的区块之后,它最多上涨 12.5%;在一个不足半满的区块之后,它会下降。
- 优先费用(小费):支付给打包您交易的验证者。
公式:fee (ETH) = gas used × (base fee + priority fee) in gwei × 0.000000001(费用 = 消耗的 gas × 以 gwei 计的(基础费用 + 优先费用)× 0.000000001)。您的钱包还会设定一个最高费用;如果基础费用更低,差额不会被收取。失败的交易仍需为其已消耗的 gas 付费。
权益证明
自 2022 年 9 月 15 日“合并”(the Merge)以来,以太坊采用权益证明(PoS)。不再由矿工消耗电力,而是由验证者锁定 ETH 作为押金(质押)。一个完整的验证者至少需要 32 ETH。时间被划分为 12 秒的时隙(slot);在每个时隙中,一名验证者提议区块,其他验证者投票(“证明”)。32 个时隙组成一个纪元(epoch)(6.4 分钟),区块在大约两个纪元后达到最终确定(实际上不可逆转)。
验证者因正确履职而获得奖励。离线时会损失少量资金;若存在可证明的不诚实行为(例如为同一时隙签署两个不同的区块),则可能被罚没(损失部分质押并被移除)。质押收益将在第 7 课中讲解。
计算示例
假设示例:您发送 ETH,随后进行一次代币兑换。假设条件:基础费用 20 gwei,优先费用 2 gwei,ETH 价格 €2,000。不考虑交易期间的价格变动、钱包费用和交易所点差。
- ETH 转账:21,000 gas × (20 + 2) gwei = 462,000 gwei。
- 换算:462,000 × 0.000000001 = 0.000462 ETH。
- 以欧元计:0.000462 × €2,000 = €0.92(四舍五入)。
- 其中被销毁的部分:21,000 × 20 = 420,000 gwei = 0.00042 ETH。付给验证者的小费:21,000 × 2 = 42,000 gwei = 0.000042 ETH。
- 使用 150,000 gas 的代币兑换:150,000 × 22 = 3,300,000 gwei = 0.0033 ETH = €6.60。
- 如果下一个区块已满,基础费用可能上涨 12.5%:20 × 1.125 = 22.5 gwei。费用逐块变化。
要点:费用取决于操作的复杂程度(消耗的 gas)和对区块空间的需求(基础费用),而与转移的金额无关。
常见错误
练习活动
在纸上计算:您先授权一个代币(46,000 gas),然后兑换它(180,000 gas)。假设数据:基础费用 30 gwei,优先费用 1 gwei,ETH 价格 €2,500。计算 (a) 以 ETH 和欧元计的总费用,(b) 被销毁部分的欧元金额。
显示答案
(a) 总 gas:46,000 + 180,000 = 226,000。费用:226,000 × 31 gwei = 7,006,000 gwei = 0.007006 ETH。以欧元计:0.007006 × €2,500 = €17.52(四舍五入)。
(b) 销毁部分:226,000 × 30 gwei = 6,780,000 gwei = 0.00678 ETH × €2,500 = €16.95。小费为 226,000 gwei = 0.000226 ETH = €0.57(四舍五入)。
局限:实际 gas 消耗因代币和合约而异,而且基础费用可能在您的两笔交易之间发生变化。
要点总结
- 智能合约严格按编写内容运行,包括其中的漏洞和管理员权限。
- 费用 = 消耗的 gas × (基础费用 + 优先费用);基础费用会被销毁。
- 费用取决于复杂程度和网络需求,而与发送的金额无关。
- 权益证明以验证者取代矿工,验证者锁定 ETH,并可能受到处罚或被罚没。
下一步
在下一课中,您将了解 Layer 2 网络如何降低这些费用,以及它们会带来哪些新风险。
自测
回答问题后核对答案。你可以随意重试多次。
供您自行复习的自动自测。您的答案在浏览器中核对,我们不会查看或评估。这不是考试,也不是资格证书。
您的进度
“已完成”仅表示您将本课标记为已学完,并不是对您理解程度的测试。 学习进度和笔记仅保存在此设备的此浏览器中,而非账户中。