为什么以太坊是可编程的?
看看以太坊如何在Layer 1的思路上进一步扩展,加入共享程序、ETH Gas费,以及随之而来的新权衡。

速读
以太坊在Layer 1的思路上做了扩展:除了转账,网络现在还能运行共享程序。这一课会讲清楚: 智能合约如何改变一个网络能协调的事情,为什么要用ETH支付Gas,以及为什么灵活的代码会 带来额外的成本和风险——这些是你在批准一笔交易之前需要理解的。
需要记住的要点
- 以太坊保留了Layer 1的思路,并把它拓宽了:这个网络现在维护的是程序的共享规则,而不只是单一资产的账本。
- 智能合约不会自动生效——它是一段代码,其运行结果要经过网络规则的检查,这也是为什么每个参与者最终都会得到同一个状态。
- ETH既是原生资产,也是支付Gas的方式,所以无论你要做什么交易,只要是在以太坊上,你都需要用到ETH。
- 灵活的代码在扩大能构建的东西的同时,也扩大了可能出错的地方:在批准任何钱包弹窗之前,先确认清楚网络和合约。
以太坊多问了一个什么问题?
比特币的基础层,被设计用来为它的原生资产维护一份共享账本。以太坊保留了Layer 1的 思路,但多问了一个更大的问题:一个网络能不能同时为程序维护共享规则?
在以太坊上,一种叫做智能合约的程序,可以定义一些动作,在交易调用它们时运行。 运行结果会被记录在同一个共享网络上,而不是记录在某家公司的私有服务器上。
可编程的共享状态是怎么运作的?
这里重要的不是合约会像变魔法一样自动生效。它是一段代码,运行结果会由网络规则来 检查。只要发起的是同一笔有效调用,参与其中的节点最终都会得到同一个最终状态。
步骤
把共享规则写成代码
智能合约规定了这个程序能做什么,以及它会检查哪些条件。
用一笔交易调用这个程序
用户请求网络执行一个被允许的操作,比如兑换代币或更新一条记录。
记录被接受的结果
网络会验证这笔交易,并按照自己的规则记录下最终状态。
ETH是用来做什么的?
ETH是以太坊的原生资产。它还被用来支付Gas:这是一笔交易为了它所消耗的计算量和 网络资源,愿意支付的费用。Gas让资源的使用变得可见,但总费用会随着网络需求和具体 操作而变化。
以太坊和比特币有什么不同?
| 问题 | 比特币 | 以太坊 |
|---|---|---|
| 主要目标 | 在比特币协议规则下,为BTC维护一份共享的结算历史。 | 既维护共享的结算历史,也提供一个可以运行智能合约程序的环境。 |
| 原生资产 | BTC | ETH |
| 资源成本 | 交易手续费之间相互竞争区块空间。 | Gas为计算和交易所消耗的资源定价。 |
可编程性牺牲了什么?
更灵活的代码,创造了更多构建的方式,也带来了更多犯错的方式。智能合约可能存在 漏洞,一笔交易可能调用错了合约,执行成本也可能出现变化。可编程并不意味着对每种 用途都更安全或更好;它只是意味着这个基础层支持更广泛的一套共享规则。
结语
以太坊保留了比特币的思路——一个能自行结算交易的基础层,并把它所回答的问题拓宽 了。它维护的不再只是单一资产的共享账本,而是程序的共享规则。智能合约不是会自动 生效的魔法;它是一段代码,运行结果要经过网络规则的检查,这也是为什么同一笔有效 调用,会为每一个参与者产生同样被记录下来的状态。
ETH承担着两项工作,而新手常常把它们混为一谈。它是以太坊的原生资产,同时也是用来 支付Gas的东西——也就是一笔交易为了它所消耗的计算量和网络资源,愿意支付的费用。 这让资源的使用变得可见,但也意味着同一个操作的成本并不是固定的:它会随着网络 需求、以及这个操作实际需要多少工作量而变化。
真正值得记在心里的是这个权衡。灵活的代码创造了更多构建的方式,也带来了更多受损 的方式。合约可能存在漏洞,一笔交易可能调用了你并不打算调用的合约,而且从你做 决定到你签名确认之间,执行成本还可能发生变化。可编程并不意味着更安全——它意味 着这个基础层支持更广泛的一套共享规则,也就相应地带来了更广泛的一套失败方式。 在批准钱包弹窗之前,先确认你在哪个网络上、正在和哪个合约打交道,因为一笔完全 有效的交易,仍然可能带来你不想要的结果。
比特币和以太坊,都让这种权衡变得清晰可见:一个共享的基础层,可以是安全、开放 的,但也会有容量上限和成本。下一章要问的是:更新的Layer 1网络和Layer 2系统, 如何在不丢掉共享结算层这个价值的前提下,去改变这些权衡。
常见问题
一段存储在以太坊上的程序,规定了在交易调用它时要运行哪些动作。它规定了自己能做什么、会检查哪些条件,网络会验证这笔交易,并按照自己的规则记录下最终状态。它的运行结果保存在共享网络上,而不是某家公司的私有服务器上。
两者都是能自行结算交易的Layer 1网络,但设计目标不同。比特币专注于在自己的协议规则下,为BTC维护一份共享的结算历史。以太坊在提供这份结算历史的同时,还提供了一个可以运行智能合约程序的环境,这也是为什么它能协调范围广得多的各种应用。
Gas是以太坊用来衡量一笔交易消耗了多少计算工作量和网络资源的方式。交易会用ETH为这些消耗付费。Gas的存在,是为了让资源的使用变得明确并且有价格,而不是可以对共享网络无限、免费地索取。
有两件事在独立变化。一个操作用掉多少Gas,取决于它需要多少工作量,所以一次智能合约调用消耗的Gas,通常比一次简单转账要多。每单位Gas的价格,则取决于同一时刻有多少人想让自己的交易被处理。当大家对有限的区块资源需求很高时,这个价格就会上涨。
需要,只要这个操作是以太坊上的一笔交易。不管交易本身在做什么,Gas都要用ETH支付,所以只持有某个代币是不够的——你没法在以太坊上转移或使用那个代币。当没有足够的ETH来支付手续费时,钱包通常会显示交易失败,或者根本无法提交。
是的。以太坊维护着自己的交易规则、自己的历史,以及自己的共识机制,它不依赖任何其他区块链来结算自己的交易。像Rollup这样的以太坊Layer 2系统,是建立在它之上、并依赖它的,这和作为基础层是不一样的关系。
会。网络只验证一笔交易是否遵守了规则,并不验证合约的逻辑是否真的符合作者或用户的本意。合约可能存在缺陷,而一笔完全按代码执行的交易,仍然可能产生不是预期中的结果。代码被放在区块链上,并不等于它经过了审计。
意思是,这个基础层支持任意用代码表达的共享规则,而不只是原生资产的转账。应用可以定义自己的逻辑,并让网络记录下结果,这也是为什么许多各自独立的服务,能够共用同一个结算环境,而不必各自维护一份私有账本。
相关币种
继续学习
根据本课推荐的后续阅读。





