第 06 课:重要的区块链概念
踏上构建生产级应用的旅程。
在你开始构建之前,有一些基础的区块链概念和实用工具需要先掌握。不需要过度钻研技术细节,只要知道背后大概发生了什么,以及需要信息时去哪里查就够了。
你已经了解了 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 到你的钱包。这样你就可以部署合约、发送交易、反复测试,而不必花真钱。
- 官方 Monad faucet: faucet.monad.xyz
如果你在别处见到过更老的 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 用错了。
- Monad Explorer(mainnet): monadscan.com
- Monad Explorer(testnet): testnet.monadscan.com
Block explorer 是用来做什么的?
把 Monad 添加到你的钱包
如果你的钱包(MetaMask、Rabby、支持 EVM 的 Phantom 等等)还没收录 Monad,你需要手动添加这个网络。你需要粘贴:
- Network name(网络名称): Monad Mainnet(或 Testnet)
- RPC URL: 来自 docs.monad.xyz
- Chain ID: 来自 docs.monad.xyz
- Currency symbol(货币符号): MON
- Block explorer URL: mainnet 用 monadscan.com,testnet 用 testnet.monadscan.com
大多数钱包也支持通过 chainlist.org 一键添加。搜索「Monad」,点添加按钮,在钱包里确认,就这么简单。这是最省事的路径。
把这些串起来
这些概念就像一条链一样彼此咬合:
交易被打包进 区块。节点用 共识 机制——在 Ethereum 和 Monad 这里就是 Proof of Stake——来就哪些区块有效达成一致。验证者因为质押的抵押品,以及 slashing(罚没) 的风险,被迫保持诚实。用户支付 gas 用来酬谢验证者并防止垃圾信息。当足够多的区块被确认后,交易就达到了 最终性,从此永久。
实用工具集是你真正与上面这一切打交道的方式:chain ID 告诉钱包用哪条网络,RPC 承载你的请求,faucet 给你 testnet 代币玩,explorer 让你看到链上正在发生什么。
每当你与你的应用互动——调用合约、把数据存上链、转代币——这整套系统都在背后运转。开发时你不必时刻想着它。但知道它就在那里、也知道它为什么这样运作,正是「在区块链上做产品的人」和「真正理解自己在什么基础上做产品的人」之间的差别。
接下来是什么
有了这些概念和工具打底,下一课会看 Monad 的 10,000 TPS 与亚秒级最终性,对你能构建的应用类型究竟意味着什么改变,以及如何把诚实的说法和炒作分开。
0/12 正确
0% — 全部答对即可完成