本知识库第一篇。读完应能用一句话向外行解释区块链,并说清它解决了什么、 核心机制是哪几块、有哪些词必须先认识。结构见 README.md §1。


0. 一句话本质

区块链 = 一本所有人共同维护、谁也无法偷改、不需要任何中间人来担保的公共账本。

记住这一句,下面全部是它的展开。


1. 怎么产生的:它到底解决什么问题

区块链不是"先有技术再找用途",是先有一个 30 年没解过的难题,2008 年被一份白皮书解开。

难题:互不信任的人之间,怎么记一本谁也不能赖账的账?

设想:你和一群陌生人想共用一本记账本(谁给谁转了多少钱)。

  • 如果账本放在某一个人手里(银行模式)——你得无条件信任这个人不改账、不跑路、不被黑。历史上跨链桥被盗几十亿美元,传统金融也有挪用账目的案例。这就是"中心化信任"风险。
  • 如果每个人各记一本——一旦对账不一致,谁说了算?没有裁判。
  • 最致命的是双花问题(Double Spend):数字信息可以无限复制。我把同一笔"1 个币"同时发给 A 和 B,谁认账?现实货币靠物理唯一性(一张钞票只能给一个人)防双花;纯数字的钱在区块链之前没有人能在无中间人的情况下解决这个

解法:2008 年比特币白皮书

2008 金融危机背景下,化名中本聪(Satoshi Nakamoto)的人发布《Bitcoin: A Peer-to-Peer Electronic Cash System》,第一次给出不靠任何中心机构、也能防双花、也能让互不信任者达成一致账本的方案。

它的组合拳(后面逐条展开):

  1. 账本所有人各存一份完整副本(去中心化,没有"那个能改账的人")。
  2. 密码学把每条记录锁死,改一个字全链对不上(不可篡改)。
  3. 共识机制决定"下一页由谁来写",且写错会被全网拒绝(无需信任也能一致)。

→ "区块链"是这套方案的数据结构名字;"比特币"是它第一个应用。后来以太坊把它从"只能记转账"升级成"能跑程序"(智能合约),才有了我们项目里的 DeFi/MEV。


2. 它本质在做的"那一件事"

剥到底,区块链只做一件事:

在一群互不信任、且没有裁判的参与者之间,对"账本现在长什么样"达成一个谁也改不动的共识。

"账本"可以记:

  • 谁有多少币(比特币)
  • 谁有多少币 + 一堆程序的当前状态(以太坊:余额 + 智能合约里的数据)

其余所有概念(区块、哈希、共识、Gas、合约)都是为保证这一件事成立而存在的零件。学的时候始终问:"这个零件是为'谁也改不动的共识'解决哪一环?"


3. 类比:从"一家银行"到"全村同步的账本"(用你熟悉的支付系统视角)

传统银行 区块链
账本在哪 银行的中心数据库(一份) 全网每个节点各一份完整副本
谁能改账 银行(你得信任它) 没有人能单方面改——改了和别人对不上
谁来记新账 银行职员 共识机制选出的出块者(谁都可以争)
防赖账靠什么 法律 + 银行信誉 密码学 + 全网验证(不靠信誉)
出错/作恶 内部可改、可冻结、可挪用 单点作恶会被其余全网否决
对账 你信银行对账单 你自己就能验证整本账

最贴切的一个画面

一个村子,没有银行。村中央广场挂着一本巨大的账本,全村每个人家里都有一本一模一样的复印件,实时同步。 任何一笔转账要生效,必须:①付款人用只有他有的私章签字(数字签名);②全村按规则选出的某个人把这笔记到账本新的一页(出块);③这一页被装订进账本,且用一种特殊胶水把这页和前一页死死粘住,撕掉重写就会留下全村可见的破绽哈希链式结构)。 想偷改三天前某一页?你得把那页之后所有页全部重粘一遍,还要快过全村其他人继续往后粘的速度——在足够大的村子里,算力上做不到

这个村庄账本,就是区块链。后面每个术语,都能在这个画面里找到对应物。


4. 核心关键点(5 块,缺一不可)

  1. 去中心化账本(Distributed Ledger) 账本不在某机构手里,而是全网每个节点各存完整一份。没有"那个能改账的人"=没有单点信任、没有单点故障。

  2. 密码学保证不可篡改(Cryptography) 每条交易用付款人私钥数字签名(证明是本人、且内容没被改);每个区块带上一区块内容的哈希指纹,环环相扣。改任何历史一个字节 → 该块哈希变 → 后面全部对不上 → 全网立刻识别。详见 02(待写)、03(待写)。

  3. 共识机制决定"谁来记下一页"(Consensus) 没有裁判,怎么避免人人抢着记、记的还不一样?用 PoW(拼算力)或 PoS(拼质押)选出本轮记账人,并让"跟着最长/最重的链"成为所有人自发的最优选择。这也是 MEV 的根源——记账人有"排哪笔交易在前"的权力。详见 04(待写)。

  4. 区块 + 链式结构(Block + Chain) 交易不是一笔一笔上链,是打包成"区块"(账本的一页),每页头部写着上一页的哈希指纹,串成一条只能往后加、不能从中间改的链。"区块链"三个字就是这个结构。

  5. 状态机(State Machine)—— 以太坊的关键升级 比特币的账本只记"谁有多少币"。以太坊把账本升级成"谁有多少币 + 所有智能合约里变量的当前值"。每笔交易是一次状态转移旧状态 + 交易 → 新状态,全网用同一套规则(EVM)算,算出来必须一致。我们项目里 Uniswap 池子的 reserves、Aave 里谁欠多少债,都是这个"状态"的一部分。详见 0608(待写)。


5. 必须先认识的前置名词(带类比的小词典)

按"村庄账本"画面给每个词一个直觉锚点。精确定义放在后续专题,这里只求听到不懵

名词 一句话 村庄类比
哈希 (Hash) 把任意数据压成一段定长指纹;改 1 字节指纹全变;不能反推原文 一页内容的"防伪封条",内容动一下封条就碎
私钥 (Private Key) 只有你知道的一串秘密数字,用来签字证明"是我" 只有你有的私章 + 它的唯一性
公钥 / 地址 (Address) 由私钥推出、可公开的收款标识 你贴在账本上的收款户名(别人能往里打钱,但动不了里面的钱)
数字签名 (Signature) 用私钥对交易签字,全网用你公钥验真,且签完内容改不了 私章盖在转账单上,全村能验是不是你盖的、单子有没有被改
交易 (Transaction) 一次状态变更请求(转账 / 调合约) 一张待入账的转账单
区块 (Block) 一批交易打包成的"账本一页",带上一页哈希 账本的一页
节点 (Node) 存着完整账本副本、按规则验证交易的一台机器 家里存着账本复印件、会按规矩核账的村民
出块者 (Validator/Miner) 本轮被共识选中、负责写新一页的人 这一页的执笔人
共识 (Consensus) 让全网对"账本现状"自发一致的规则 全村都认"最长那本"是真账
Gas 在以太坊上做任何操作要付的"计算手续费" 让执笔人帮你记账、跑程序的工本费
钱包 (Wallet) 管私钥、帮你签名发交易的软件(不"存"币,币在链上) 保管你私章的盒子,不是钱本身
EOA / 合约账户 EOA=私钥控制的普通地址;合约账户=一段部署在链上的程序 普通村民户头 / 一台贴在墙上的自动售货机
智能合约 (Smart Contract) 部署在链上、人人可调用、自动执行、改不了的程序 墙上的自动售货机:投币即吐货,没人能私下改规则
EVM 以太坊的"统一计算器",全网节点用它跑合约保证结果一致 全村共用同一型号计算器,谁算都一个答案
去中心化 (Decentralization) 没有单一控制方;规则由代码 + 全网共识执行 没有村长能私自改账

看到这些词先回到村庄画面定位它,再深究。02–08 篇会逐个上精确定义。


6. 一笔转账的完整一生(端到端走一遍)

以"你给朋友转 100 USDC"为例,把上面零件串起来:

  1. 发起:你的钱包构造一笔交易(从你的地址 → 朋友地址,金额 100 USDC,附 Gas 费)。
  2. 签名:钱包用你的私钥给这笔交易数字签名。没有私钥谁也签不出——这就是"所有权"的全部含义:谁掌握私钥,谁就拥有那地址里的资产(所以私钥泄露 = 资产没了,无人能追回)。
  3. 广播 → mempool:交易发到全网,进入"待打包池"(mempool,账本"待入账筐")。此刻它公开可见但还没生效——MEV 机器人正是盯这个筐(见 14 code/.../watcher/src/mempool.ts)。
  4. 打包出块:本轮被共识选中的出块者,从筐里挑一批交易(挑哪些、排什么顺序由他定 → MEV 根源),算出新状态,打包成一个区块,区块头写上一区块的哈希
  5. 验证 + 上链:新区块广播给全网,每个节点用同一套规则(EVM)独立重算一遍——结果一致才接受,并把这页装订进自己那本账。从此这笔转账成为历史,改它要重写其后所有区块且跑赢全网,实际做不到 → 不可篡改
  6. 确认:后面每多一个区块叠上去,这笔交易被推翻的可能性指数级趋零("N 个确认"就是这个意思)。

整个过程没有银行参与,靠的全是密码学 + 共识 + 全网各自验证。这就是"无需信任(trustless)"的实际含义——不是"不用信任谁",是"不需要信任任何特定一方,因为规则由全网强制执行"。


7. 常见误区(先纠正,省得后面绕弯)

误区 实情
"币存在钱包里" 币是账本上的一个数字。钱包只存私钥(控制权)。钱包删了、币还在链上;私钥丢了、币永远取不出
"区块链匿名" 假名不是匿名。地址不直接绑身份,但全部流水永久公开可查——我们就靠这个 5 分钟核查了 0x6bdc / 0x65A8
"区块链不可篡改 = 绝对安全" 不可篡改只保证"历史账改不动"。不保证你不被钓鱼骗走私钥、不保证合约没 bug、不保证你不被 MEV 夹。安全边界要分清
"去中心化 = 没人能作恶" 是"单点作恶会被全网否决"。但算力/质押高度集中出块者排序权(MEV)、预言机喂价等仍是现实中的权力点
"交易立刻到账" 要等出块 + 若干确认。以太坊约 12 秒一块。这正是 Phase 5 我们撞过的:HTTP 轮询比出块慢,看到时已上链
"链上看到价差就能套" 价差被有基础设施的盈利运营者毫秒级吃掉(见 docs 2026-05-19 自我更正)。看得到 ≠ 抢得到

8. 与本项目实践的对应

你不是从零学——下面这些你已经在代码里实际碰过,这篇补的是它们脚下的 why:

  • 地址 / 签名 / 私钥0x6bdc...(假)vs 0x65A8...(真)链上实证;watcher 里的 Wallet 签名
  • mempool / 出块者排序权code/phase4-onchain-basics/watcher/src/mempool.ts、Phase 5 backrun
  • 状态机 / EVM → 4 个合约 + forge test --fork 全在重放主网状态
  • 不可篡改 / 确认延迟 → Phase 5 "HTTP 轮询比出块慢" 的根因就在 §6 第 5 步
  • 无需信任 / 原子性FlashLoanHelloWorld / Arbitrageurrequire 回滚 = 状态机"要么整体成立要么整体不发生"

→ 学完后续 02–17 篇,回头看这些代码会从"能跑"变成"知道每一行为什么这么写"。


9. 自检问题(答得出才算过这一篇)

  1. 用一句话向完全外行解释区块链是什么。
  2. 双花问题是什么?为什么它在 2008 年前没人能在无中间人下解决?
  3. "不可篡改"具体由哪两个机制共同保证?改一笔历史交易为什么实际做不到?
  4. "无需信任(trustless)"准确含义是什么?(不是"不用信任谁")
  5. 比特币账本和以太坊账本,本质差别是哪一点?
  6. 私钥、地址、钱包三者关系是什么?丢哪个等于资产没了?
  7. 为什么"出块者能决定交易顺序"是 MEV 的根源?(联系 §4.3 与 §6.4)

── Q&A / 更正记录区(按日期追加)──

规范见 README.md §0:讨论、质疑、反馈、纠错都按日期记这里, 永不抹掉错误轨迹。继承 docs 2026-05-19 自我更正的 evidence-first 基因。

  • (2026-05-19 建立。暂无 Q&A——后续围绕本篇的提问/质疑/更正在此累积。)

  • (2026-07-26) 问:要求"仔细科学且完善"地讲区块链,不要空洞类比,要覆盖密码学、记账、交易、合约、链五块。

    答(整合 02/03/04/06/07 的技术细节,未更正本篇正文,是补一层更精确的整合视角):

    先给一个不依赖比喻、可以直接验证的定义:区块链 = 一个由哈希指针链接、仅追加(append-only)的区块序列;每个区块里的交易由数字签名授权,经由确定性的状态转移函数(UTXO 规则或 EVM)更新一份可用 Merkle 根验证的全局状态;全网独立节点各自重放执行来验证,并通过某种带经济代价的共识规则(PoW 算力 / PoS 质押)决定唯一合法的下一区块——从而让互不信任、没有裁判的参与者对同一份状态达成一致,且事后篡改的代价随时间指数级上升。

    1. 密码学:哈希函数四个可验证性质——确定性(同输入必同输出)、固定长度输出、单向性/原像抗性(无法从输出反推输入)、抗碰撞性、雪崩效应(改 1 比特输出近乎全变)。区块链靠它做两件事:链式锚定(每块存上一块哈希,改一块则其后全部失效)+ Merkle Tree/Patricia Trie(O(log n) 证明某笔交易/某个值是否在集合里,不用下载全部数据)。非对称加密+数字签名(secp256k1 上的 ECDSA):私钥→公钥→地址单向不可逆(椭圆曲线离散对数难题);签名让任何人可用公钥+签名+消息验证"确实是私钥持有者签的、内容未被改",不需要知道私钥、不需要签名者在场——这才是 trustless 的准确含义:任何人可独立数学验证,不必依赖可信第三方,而非"没人验证"。三层组合成密码学承诺链:签名→Merkle Root 锚定进块→父哈希锚定进链,任一层改 1 比特都会让往上所有哈希对不上。

    2. 记账模型:UTXO 模型(比特币)——账本存"未花费输出"而非余额,余额是查询时现算的;防双花靠"同一 UTXO 不能被两笔交易同时消耗",节点直接拒绝后一笔。账户/状态机模型(以太坊)——每地址一个账户对象 {nonce, balance, storageRoot, codeHash},交易是显式状态转移 σ' = Υ(σ, T)(Υ 即 EVM 规则),全局状态组织成一棵 Merkle Patricia Trie,stateRoot 是这棵树的根——任何账户任何存储槽变了,根哈希就变。nonce 防的是重放,不是双花本身——这点原文 §5 词典条目没细分,值得注意:双花在账户模型里靠"余额不能为负"这条状态转移规则约束,不是靠 nonce。

    3. 交易:完整字段 {nonce, gasPrice/maxFeePerGas, gasLimit, to, value, data, chainId, v,r,s}gasLimit×gasPrice 是资源上限,图灵完备语言靠经济代价(gas 耗尽 revert)而非语言限制防无限循环;v,r,s 让任何节点可用 ecrecover 恢复发送者公钥,不需要交易显式带发送者字段。六步生命周期:① 钱包本地签名(私钥不出本机)② 广播进 mempool(公开可见但未生效,MEV 窗口)③ 出块者排序+EVM 逐条执行 opcode(排序权是 MEV 根源)④ 打包成块、算出新 stateRoot ⑤ 每个节点独立重放执行验证(trustless 在执行层的落地:不信出块者算的结果,自己重算一遍)⑥ 后续区块叠加,回滚代价随确认数指数上升。

    4. 智能合约:确定性执行是全网独立验证的前提——合约不能读真实时钟、不能要随机数、不能主动发 HTTP,这正是需要预言机(外部数据必须以交易形式喂入链上)的根本原因;EVM"图灵完备但有界":允许任意循环递归,但每条指令耗 gas、gasLimit 硬上限,靠经济代价而非语言限制绕开停机问题在实际系统里的危害。

    5. 链结构:区块头关键字段 parentHash, stateRoot, transactionsRoot, receiptsRoot, timestamp, number + PoW 的 difficulty/nonce 或 PoS 的 validator 签名证明;parentHash 密码学锚定每个块和唯一前一个块——这是"链"的字面含义(单向链表,非任意图)。分叉时的选链规则:PoW 是累计工作量最大的链获胜(Nakamoto Consensus);PoS 是 fork-choice(如 LMD-GHOST)+ finality gadget(如 Casper FFG,两个 epoch 后"最终确定",比最长链更强的不可逆保证)。"不可篡改"是概率性/经济性安全(篡改需要反超全网算力/质押且重算全部后续区块的代价),不是绝对数学不可能——比原文 §7 误区表"不可篡改=绝对安全"那条说得更精确,是同一个道理的更严谨版本,不是原文错了。

    拿掉任何一块,这套系统就塌:哈希链(防篡改)+ 数字签名(授权与所有权)+ 记账/状态模型(大家算的是同一件事)+ 共识规则(谁来写、写错被拒绝)+ 独立重放验证(不信出块者,自己验)——五块环环相扣,这也是为什么学习顺序密码学→区块结构→共识→账户模型→EVM→智能合约不能跳的原因。

    完整原始记录见 ../total/Q&A/2026-07-26.md Q1。