[ 06 / 10 ] · 新生课程

第 06 课:重要的区块链概念

11 分钟200 XP

踏上构建生产级应用的旅程。

在你开始构建之前,有一些基础的区块链概念和实用工具需要先掌握。不需要过度钻研技术细节,只要知道背后大概发生了什么,以及需要信息时去哪里查就够了。


你已经了解了 Monad 是什么。这一课会涵盖两件事:经常被提到、却没人解释的基础区块链词汇(区块、共识、权益证明、gas、最终性),以及当你从「理解 Monad」迈向「真的在 Monad 上做点什么」时马上会用到的一小套实用工具(chain ID、RPC、faucet、explorer)。


区块链到底是怎么运作的?

每一条区块链都从 创世状态(Genesis State) 开始,也就是网络第一次正式上线的那一刻。Bitcoin 的创世状态是在 2009 年,Ethereum 是在 2015 年,Monad 是在 2025 年。

节点

区块链不是跑在一台电脑上的。它运行在分布于世界各地的成千上万台电脑上。每台电脑都叫一个 节点(node),每个节点都保存一份完整的交易历史。

当一笔新交易发生时,每个节点都会独立地验证它。并不是单一节点说了算。如果某个节点掉线、或者试图作弊,网络的其他部分不会受到影响。这正是去中心化系统的韧性来源:没有单点故障。

其中有一种特殊的节点叫做 验证者(validator),负责提议新的区块。验证者会质押代币作为抵押,这意味着一旦他们作恶,就会有真金白银的损失。

区块与链

交易不是一笔一笔单独记录的,它们会被打包成区块。每个区块包含一批被网络验证过的交易。

每个区块都通过密码学方式与前一个区块相连。改动其中一个区块,它之后的所有区块都会失效。这就是为什么这份记录是 不可篡改的(immutable):事后无法更改。

在 Ethereum 上,新区块大约每 12 秒产生一次。在 Monad 上,区块产生得快得多,每 400 毫秒一个。每当一个区块被最终确认,网络的状态就会更新:余额变化、合约存储变化,一切都会被写入并固定下来。

区块链的创世状态(Genesis State)是什么?

区块是什么?

是什么让区块链的记录变得不可篡改?


共识

在传统系统里,有一个中心化系统来决定什么是对的。你的银行说你有多少钱。一家公司的服务器说你的账户存不存在。你之所以信任他们,是因为他们说了算。

区块链没有中心化机构。世界各地成千上万个节点各自保存着同一份数据的副本。那它们如何在「什么是真的」上达成一致?这就是 共识(consensus) 要解决的问题。

共识机制是一套所有节点都遵循的规则,用来就网络的当前状态达成一致。它决定哪些交易是有效的、哪些区块会被纳入,以及当两个节点意见不一致时该怎么办。

如果没有共识,不同的节点则会在宇宙的不同分支上,你可以认为是「平行宇宙」—— 但是这样去中心化网络的整个意义就会瓦解。

共识机制解决了什么问题?


Proof of Work 与 Proof of Stake

达成共识的方式有很多种。其中最重要的两种是 Proof of Work(工作量证明)和 Proof of Stake(权益证明)。

Proof of Work 是最早的共识机制,被 Bitcoin 和早期的 Ethereum 采用。在 PoW 里,被称为矿工的节点彼此竞争,去解一道计算上很难的数学谜题。最先解出的那个矿工有权构建下一个区块并获得奖励。这道谜题难解但容易让其他人验证——这就是它的精妙之处。它之所以安全,是因为攻击网络需要巨量的计算资源,成本极高。

它的代价是:消耗巨量电能。Ethereum 一直使用 Proof of Work 直到 2022 年,在一个被称为 The Merge 的事件中切换到了 Proof of Stake——能耗下降了大约 99.95%。

Proof of Stake 是 Ethereum 现在使用的机制,Monad 也是。验证者不再比做题速度,而是用 ETH(在 Monad 上则是 MON)作为抵押(即他们的「stake」)来参与区块生产。他们会被随机抽取去提议新的区块,并对其他人提议的区块进行投票。

抵押是关键。如果一个验证者作弊——比如提议无效交易、或在状态上撒谎——他们就会失去自己质押的 ETH。这被称为 slashing(罚没)。失去质押资产的财务风险,让作恶变得极其昂贵,从而在不烧大量电的前提下保持网络安全。

Proof of Stake 中的「质押(staking)」是什么?

在 Proof of Stake 中,作恶的验证者会怎么样?


Gas

Gas(手续费)是你在区块链上执行交易所支付的费用。

在任何 EVM 兼容链上,每一个动作——发送代币、部署合约、调用函数——都需要计算。这部分计算用 gas units(gas 单位) 来衡量。动作越复杂,消耗的 gas 越多。一笔简单的 ETH 转账消耗固定数量的 gas,一次复杂的智能合约交互则会消耗多得多。

你不会直接用 gas units 付费——你支付的是 ETH,在 Monad 上则是 MON。Gas 费的计算方式是:

gas fee = gas units used x gas price

Gas price 会根据网络需求波动。当大量用户同时想交易时,gas price 上升;当网络冷清时则下降。这也是为什么你有时会看到 Ethereum 在大型 NFT 发售或市场剧烈波动等高流量事件期间,gas 费用突然飙升。

Gas 有两个作用。第一,它支付给处理你交易的验证者。第二,它防止垃圾信息——既然每笔交易都要花钱,就没法免费往网络里灌垃圾。

在 Monad 上,gas 的运作方式相同,但费用要低得多,因为 Monad 每秒能处理多得多的交易。吞吐量更高,意味着对区块空间的争夺更少,也就意味着更低的费用。

实际操作中,你不需要理解精确的 gas 定价公式才能开发。你需要知道三件事:每个动作都会花掉一小笔 MON、你的钱包会在你确认前显示估算费用、如果 MON 用完了交易就会失败,直到你充值为止。

是什么决定了一笔交易消耗多少 gas?

为什么在网络高度活跃时 gas price 会上涨?


最终性

当你做一笔银行转账时,通常需要等一会儿它才算真正结算。即便它显示已经完成,在某些条件下仍可能被撤销。

在区块链上,最终性(finality) 指的是一笔交易被永久结算、不再可被撤回的那一刻。一旦交易达到最终性,就板上钉钉了。没有人——不管是验证者、开发者,还是 Monad 自己——可以再撤销它。

不同的区块链以不同方式、不同速度达到最终性。在 Ethereum 上,最终性需要几分钟,因为验证者要对检查点区块进行投票。Monad 的架构则是为快速最终性设计的,这也是它能真正用于实际应用的原因之一。

快速最终性对用户很重要。如果有人在链上为某样东西付了钱,你希望尽快知道这笔款项已经结算、不可撤回。

在区块链语境下,最终性意味着什么?


实用工具集

理论部分到此为止。下面是实际的一面:每一个 Monad 开发者一旦开始在链上做事,几乎立刻就会撞上的一小套工具。Chain ID、RPC、faucet、explorer。这些你都会用到。

不写代码,只画地图。

Mainnet 与 Testnet

在所有事情之前,你要先搞清楚自己在和哪一个 Monad 网络交互。每条区块链都有多个网络,从外面看长得一样,行为却差别很大:

  • Monad Mainnet(主网)。 真实网络。真的 MON 代币、真的交易、真的成本。当你要把产品交付给真实用户时,就在这里。
  • Monad Testnet(测试网)。 一条单独的链,用于测试。Testnet 上的代币没有真实价值。你可以在这里无风险地试。

经验法则:所有实验都进行在 testnet 上。任何涉及真钱的东西才在 mainnet 上。 你不会希望在合约还没测过的情况下,就把真钱押上 mainnet 部署一遍。

Mainnet 和 testnet 的主要区别是什么?

Chain ID

Chain ID 是一个用来标识某条区块链的唯一编号。钱包和工具就是靠它来分辨「这笔交易是发给 Monad 的,不是 Ethereum、不是 Polygon,也不是某条别的链」。

你用的每一个钱包、调用的每一个库、安装的每一个工具,都会问你「哪条链?」。答案就是 chain ID。填错了,你的交易就会发到错误的网络,或者干脆就不会上链。

你不需要把它背下来。在你把网络添加到钱包时,你只需要粘贴一次,之后钱包会自己处理。当前 chain ID 的权威来源是 docs.monad.xyz

RPC

RPC(Remote Procedure Call 的缩写,远程过程调用)是你的钱包或应用用来与区块链对话的一个 URL。你发送的每一笔交易、读取的每一个余额、调用的每一个合约,都要经过 RPC。

把它想成区块链的「电话号码」。当你点「发送」时,你的钱包会拨打这个号码,说「请把这笔交易打包进下一个区块」。当你打开一个区块浏览器时,它也是在拨一个 RPC,去问「最新状态是什么?」。

RPC 不是你自己搭的。你只是用它:

  • Public RPC(公共 RPC)。 由 Monad 或社区提供的免费端点。开发和测试足够用了。
  • Paid RPC(付费 RPC)。 像 Alchemy、QuickNode,或 Monad 自己的基础设施合作伙伴等托管服务。你为更高的速率限制、更稳定的可用性以及附加功能付费。当你要面向真实用户上线时使用这些。

对大多数早期的开发,public RPC 就够了。docs.monad.xyz 列出了 testnet 和 mainnet 当前的 RPC URL。

RPC 的作用是什么?

Faucet

Faucet(水龙头) 是一个免费发放 testnet 代币的网站。之所以需要 faucet,是因为 testnet 代币没有真实价值,所以没人会卖。Monad 团队会把它们送出来,让开发者可以测试。

你连接钱包或粘贴自己的地址,点一个按钮,过几秒钟就会有一小笔 testnet MON 到你的钱包。这样你就可以部署合约、发送交易、反复测试,而不必花真钱。

如果你在别处见到过更老的 HackQuest 上提供的 Monad faucet,跳过它。它已经不可靠了。用上面这个官方版本就好。

注意,faucet 有限额。 大部分 faucet 会限制每个钱包每天能领多少。如果你把 testnet MON 一下子用光了,可能要等上几个小时才能再领。请据此安排你的测试节奏(别在第一天就连续打出 10,000 笔交易)。

区块浏览器(Block Explorer)

Block explorer(区块浏览器) 是一个让你查询链上任何东西的网站:交易、钱包、合约、区块。它是你查看链上正在发生什么的窗口。

你会一直用 explorer:

  • 「我那笔交易上链了吗?」 把 tx hash 粘进 explorer,看状态、消耗的 gas,以及任何报错。
  • 「这个合约长什么样?」 把合约地址粘进去,如果它已经验证过,就能看代码,并查到所有针对它的交易。
  • 「这个钱包里有多少 MON?」 把钱包地址粘进去,就能看到余额和完整的交易历史。

Explorer 也是你确认自己在「正确的链上」最快的方式。如果你正在调试 testnet 的部署,结果却看着 mainnet 的 explorer,你会看到一个空钱包然后纳闷哪里出了错。那不是 bug,是 explorer 用错了。

Block explorer 是用来做什么的?

把 Monad 添加到你的钱包

如果你的钱包(MetaMask、Rabby、支持 EVM 的 Phantom 等等)还没收录 Monad,你需要手动添加这个网络。你需要粘贴:

大多数钱包也支持通过 chainlist.org 一键添加。搜索「Monad」,点添加按钮,在钱包里确认,就这么简单。这是最省事的路径。


把这些串起来

这些概念就像一条链一样彼此咬合:

交易被打包进 区块。节点用 共识 机制——在 Ethereum 和 Monad 这里就是 Proof of Stake——来就哪些区块有效达成一致。验证者因为质押的抵押品,以及 slashing(罚没) 的风险,被迫保持诚实。用户支付 gas 用来酬谢验证者并防止垃圾信息。当足够多的区块被确认后,交易就达到了 最终性,从此永久。

实用工具集是你真正与上面这一切打交道的方式:chain ID 告诉钱包用哪条网络,RPC 承载你的请求,faucet 给你 testnet 代币玩,explorer 让你看到链上正在发生什么。

每当你与你的应用互动——调用合约、把数据存上链、转代币——这整套系统都在背后运转。开发时你不必时刻想着它。但知道它就在那里、也知道它为什么这样运作,正是「在区块链上做产品的人」和「真正理解自己在什么基础上做产品的人」之间的差别。


接下来是什么

有了这些概念和工具打底,下一课会看 Monad 的 10,000 TPS 与亚秒级最终性,对你能构建的应用类型究竟意味着什么改变,以及如何把诚实的说法和炒作分开。

0/12 正确

0% — 全部答对即可完成

注册以记录进度