Skip to main content

Command Palette

Search for a command to run...

第 03 课:区块链技术原理

币圈入坑指南

Updated
•3 min read•View as Markdown
第 03 课:区块链技术原理
C

ChainCraft 链匠 | 区块链开发者 用开发者视角,讲新手能懂的区块链 从智能合约到DeFi,从代码到认知

写在前面

前两课聊了为什么要学习加密货币,以及加密货币到底是什么。这一课,咱们来聊聊支撑整个加密货币体系的底层技术——区块链。

说实话,“区块链”这三个字被吹得太神了。什么“颠覆性技术”、“信任机器”、“下一代互联网基础设施”,听起来高大上,但普通人根本搞不懂它到底是什么。

这一课不会给你灌输一堆密码学公式和技术细节,而是用最直白的比喻和真实的例子,让你彻底理解区块链到底是怎么工作的,为什么它能解决传统系统解决不了的问题。

一、从一个记账本说起

先讲个最简单、最容易理解的例子。

假设你们村有 10 户人家,大家经常互相借钱。为了避免扯皮,村长老李决定搞个账本,专门记录谁借了谁多少钱。

传统方式:老李把账本锁在自己家保险柜里,每次有人借钱,都要去找老李记一笔。

这个方式有几个问题:

  1. 单点故障:如果老李家失火,账本烧了,所有记录都没了

  2. 信任问题:如果老李偷偷改账本,或者收了好处费帮人改账,谁也不知道

  3. 效率问题:每次借钱都要等老李有空,他不在家就办不了事

而且,村长每天都有自己的事情干,他不可能天天都来管理这个账本啊,没有收入可咋办?

后来大家一合计,每次村长记一笔账就可以分到小部分的“辛苦费”,这样村长就有收入了,也就可以安心为大家专门管理账本了。

但是不久,村里人都眼看着村长有钱赚,自己却穷得叮当响,那不行,就开始反对了。

最后,村里的年轻人小王脑子灵活,他提出了一个建议:

"为什么不找一些村里能够识字的人,让他们每人都保存一份账本?每次有人借钱,就广播给这些人,大家一起记账。每次对账都要这些人拿出他们的账本,这样账本就不会丢。如果账目对不上,那就以多数人的账本为准,再把少数人不对的账本给修改了。这样,也没人能偷偷改账了。"

大家都觉得小王的建议很好,于是村里人开始尝试。

这就是区块链的核心思想:分布式账本。一开始,村长负责记账,但是存在单点问题。后来的多人记账,他们就被称为 “矿工”,可以赚取记账的“辛苦费”,而参与借钱的村民就是区块链的“用户”,记账的过程就称为 “打包”。

这样的系统不是由一个中心化的机构(老李)来记账,而是由矿工们共同维护一份账本。每个矿工手里都有一份完整的副本,任何人都能验证,没有人能篡改。

二、区块链到底是什么?

区块链,顾名思义,就是“区块”+“链”。

  • 区块:就像账本里的一页纸,记录了一段时间内的所有交易。

  • 链:把这些“页”按时间顺序串起来,形成一条链。

更准确地说,区块链是一种分布式数据库,它有几个关键特点:

  1. 去中心化:没有中心服务器,所有节点1地位平等

  2. 不可篡改:一旦数据写入,几乎不可能修改

  3. 公开透明:所有交易记录都能查看(但不一定知道是谁)

  4. 共识机制:通过算法让所有节点达成一致

似乎听起来还是有点抽象?没关系,咱们用比特币的区块链来具体说说。

三、比特币区块链是怎么工作的?

图:比特币交易的五个步骤

假设你要给朋友转 1 个比特币(能借1个比特币已经算是生死之交了😊),整个流程是这样的:

第一步:发起交易

你用私钥2签名一笔交易,内容大概是:

"我(地址 A)要给朋友(地址 B)转 1 个比特币"

这笔交易会被广播到整个比特币网络,所有节点都能看到。

第二步:验证交易

全网的矿工3会验证这笔交易:

  • 你的地址 A 确实有 1 个比特币吗?

  • 这个签名是你的私钥签的吗?

  • 你有没有重复花费(双花4)?

如果验证通过,这笔交易就进入“待确认”状态,等待被打包进区块。

第三步:打包区块

矿工会把一段时间内的交易(通常是几千笔)打包成一个区块。每个区块大概长这样:

区块头:
- 区块编号:800000
- 时间戳:2024-12-16 12:00:00
- 上一个区块的哈希值<sup>5</sup>:00000000000000000002a7c4c1e48d76c5a37902165a270156b7a8d72728a054
- 当前区块的哈希值:0000000000000000000320283a032748cef8227873ff4872689bf23f1cda83a5

区块体:
- 交易 1:A 转给 B 1   BTC
- 交易 2:C 转给 D 0.5 BTC
- 交易 3:E 转给 F 2   BTC
- ... (共 3000 笔交易)

图:区块链的链式结构与区块内容

第四步:工作量证明(挖矿)

这是最关键的一步。

矿工要找到一个特殊的数字(Nonce6),使得整个区块的哈希值满足特定条件——比如开头必须有 19 个零。

这个过程就像猜密码锁:

  • 试 Nonce = 1,算出的哈希值是 3a7f8b...,不符合

  • 试 Nonce = 2,算出的哈希值是 9c2d1e...,不符合

  • 试 Nonce = 3,算出的哈希值是 7b4f2a...,不符合

  • ...

  • 试 Nonce = 2847593,算出的哈希值是 0000000000000000000320283...,符合了!

全网的矿工都在拼命计算,谁先找到这个 Nonce,谁就能打包这个区块,并获得奖励(目前是 3.125 个比特币 + 交易手续费)。

这个过程平均需要 10 分钟,消耗的算力相当于全球前 500 台超级计算机的总和。

第五步:广播区块

找到 Nonce 的矿工会把这个区块广播给全网。其他节点验证无误后,就会把这个区块添加到自己的区块链上。

你的那笔转账,就这样被永久记录在区块链上了。

四、为什么说区块链是“不可篡改”的?

很多人问:“既然区块链是公开的,为什么不能修改?”

关键在于哈希值的链式结构。

每个区块都包含上一个区块的哈希值,就像一条链条,环环相扣。

假设有人想篡改第 800000 号区块的某笔交易:

  1. 修改交易内容后,第 800000 号区块的哈希值会改变

  2. 第 800001 号区块包含的“上一个区块哈希值”就对不上了

  3. 要让第 800001 号区块也合法,就得重新计算它的哈希值

  4. 第 800001 号区块的哈希值改了,第 800002 号区块又对不上了

  5. 以此类推,你需要重新计算从 800000 到最新区块的所有哈希值

而且,你还得比全网其他矿工更快地计算,否则其他人已经挖出新区块了,你的篡改版本就会被网络拒绝。

这意味着什么?

要篡改区块链,你需要掌握全网 51%以上的算力。

对于比特币来说,这几乎不可能。全网算力太大了,就算是国家级别的力量,也很难做到。

这就是为什么说区块链是“不可篡改”的——不是技术上绝对不可能,而是经济上完全不划算。

五、一个真实的案例:双花攻击

2014 年,有个叫 GHash.io 的矿池(后来被 DDoS 攻击在2015年底就关闭了),一度掌握了比特币全网 51% 的算力。

当时币圈都慌了:这不是能随便篡改区块链了吗?

但 GHash.io 并没有这么做。为什么?

因为攻击比特币网络,最大的受害者就是攻击者自己。

假设 GHash.io 真的发动了 51%攻击,篡改了区块链:

  1. 比特币的信任崩塌,价格暴跌

  2. GHash.io 手里的比特币和挖矿设备都变得一文不值

  3. 他们花了几亿美元建的矿场,瞬间变成废铁

这就像你花了 100 万买了一家银行 51%的股份,然后把银行抢劫一空。银行倒闭了,你的股份也归零了,最后还是亏的。

这就是区块链的精妙之处:用经济激励代替信任。

你不需要相信矿工是好人,你只需要相信他们是理性的——他们会选择维护网络,而不是破坏网络,因为这样更赚钱。

六、共识机制:如何让所有人达成一致?

前面提到的“工作量证明”(PoW7),就是比特币的共识机制。

但 PoW 有个致命缺点:太耗电了。

比特币全网每年消耗的电力,相当于阿根廷一个国家的用电量。这在环保主义者看来,简直是犯罪。

所以,币圈开发了很多其他共识机制:

权益证明(PoS8)

不是比算力,而是比谁持有的币多。

持币越多,被选中打包区块的概率越大。就像股东大会,股份多的人话语权大。

以太坊在 2022 年从 PoW 切换到 PoS,能耗降低了 99.95%。

委托权益证明(DPoS9)

持币人投票选出 21 个“超级节点”,由这些节点轮流打包区块。

就像代议制民主,不是所有人都参与决策,而是选出代表。EOS、TRON 等公链用的就是这个机制。

实用拜占庭容错(PBFT10)

适用于联盟链11,节点数量少,彼此身份已知。

通过多轮投票达成共识,速度快,但去中心化程度低。

每种共识机制都有取舍:

  • PoW:最安全,但最慢最耗能

  • PoS:节能,但可能导致“富者恒富”

  • DPoS:速度快,但去中心化程度低

  • PBFT:效率高,但只适合联盟链

没有完美的方案,只有最适合的选择。

七、区块链的三个核心问题

图:区块链的不可能三角(Trilemma)

区块链看起来很美好,但它面临三个核心挑战,业内称为“不可能三角”12:

去中心化(Decentralization)

节点越多,网络越去中心化,越难被控制。

安全性(Security)

网络越安全,越难被攻击和篡改。

可扩展性(Scalability)

交易速度越快,能处理的交易量越大。

问题是:这三个目标很难同时实现。

分布式系统中有一个知名的 CAP 理论18,与此类似,区块链本质上就是一个庞大的分布式系统。比特币选择了去中心化和安全性,牺牲了可扩展性:

  • 全网有上万个节点,非常去中心化

  • 算力巨大,非常安全

  • 但每秒只能处理 7 笔交易,慢得要死

以太坊也面临同样的问题,所以才有了 Layer213、分片14等扩容方案。

而 Solana、BSC 等高性能公链,选择了可扩展性,牺牲了部分去中心化:

  • 节点数量少,验证者门槛高

  • 交易速度快,每秒能处理几千笔

  • 但更容易被攻击,也更中心化

这就是区块链技术的核心矛盾。目前还没有完美的解决方案,各个项目都在探索不同的权衡。

八、区块链不只是加密货币

很多人以为区块链就是用来发币的,其实不是。

区块链的本质是一个不可篡改的分布式数据库,它能解决很多传统数据库解决不了的问题。

供应链溯源

沃尔玛用区块链追踪食品来源。每批蔬菜从农场到超市的每个环节,都记录在链上。

如果出了食品安全问题,几秒钟就能追溯到源头。传统方式需要几天甚至几周。

版权保护

音乐人可以把作品哈希值记录在区块链上,证明“我在某个时间创作了这个作品”。

如果有人抄袭,区块链就是铁证。

电子存证

法院判案需要证据,但传统电子证据容易被篡改。

把证据哈希值记录在区块链上,就能证明“这份证据在某个时间点就存在,且没被修改过”。

杭州互联网法院已经在用区块链存证了。

去中心化身份(DID15)

你的身份信息(学历、工作经历、信用记录)可以记录在区块链上,由你自己掌控。

换工作时,不需要公司开证明,直接出示区块链上的记录就行。

这些应用都不涉及加密货币,但都用到了区块链的核心特性:去中心化、不可篡改、可追溯。

九、区块链的局限性

说了这么多优点,也必须说说局限性。

第一,性能问题。

比特币每秒 7 笔交易,以太坊每秒 15 笔,而TPS非常高的 SOLANA 链每秒交易也不过数千笔,但是 Visa 每秒能处理的交易数高达 6.5 万笔。

这个差距太大了。虽然有 Layer2 等解决方案,但离真正的大规模应用还有距离。

第二,存储问题。

比特币区块链已经超过 700GB,以太坊全节点超过 1.4TB。

如果要运行一个全节点,需要下载整个区块链。这对普通人来说太重了。

第三,隐私问题。

区块链是公开透明的,所有交易都能查到。

虽然地址是匿名的,但通过分析交易模式,还是能推断出很多信息。

第四,不可逆性。

传统数据库可以回滚,区块链不行。

如果智能合约16有 bug,黑客盗走了资金,基本上找不回来。2016 年的 The DAO 事件,黑客盗走了 6000 万美元,最后以太坊不得不硬分叉17才解决。

第五,能耗问题。

PoW 机制太耗电了,这在碳中和的大背景下,是个很大的问题。

虽然 PoS 解决了这个问题,但 PoS 也有自己的缺陷。

十、区块链的未来

最后聊聊未来。

区块链会改变世界吗?

坦白说,短期内被过度炒作了,长期来看被低估了。

2017-2018 年,什么项目都要蹭“区块链”概念,仿佛区块链能解决一切问题。结果 99%的项目都死了,因为它们根本不需要区块链。

但长期来看,区块链确实能解决一些真实的问题:

  • 信任问题:在不信任的环境下建立信任

  • 中介问题:去掉不必要的中间商

  • 数据主权:让用户掌控自己的数据

币圈有句话说得很到位:

“区块链不是万能的,但在需要‘去信任化’的场景下,它是最好的选择。”

什么场景需要去信任化?

  • 跨国交易:不同国家的人互不信任

  • 多方协作:多个机构需要共享数据,但互不信任

  • 长期存证:需要证明某个数据在某个时间点存在

这些场景,区块链能发挥巨大价值。

但如果只是公司内部的数据库,用传统技术就够了,没必要用区块链。

写在最后

这一课,咱们从最基础的记账本类比出发,聊了区块链到底是什么,它是怎么工作的,以及它的优势和局限。

如果你能理解这些,就已经超过了 95%的人。

记住几个核心要点:

  1. 区块链的本质是分布式账本,由所有参与者共同维护

  2. 它通过哈希链式结构和共识机制实现不可篡改

  3. 它面临不可能三角:去中心化、安全性、可扩展性难以兼得

  4. 它不只是用来发币的,还有很多其他应用场景

  5. 它不是万能的,只在特定场景下才有价值

免责声明

本文仅供学习交流使用,不构成任何投资建议。

加密货币市场波动极大,投资有风险,您可能损失部分或全部的本金。文中提到的任何项目、代币、平台仅作为案例说明,不代表推荐或背书。请在充分了解风险的前提下,根据自身情况谨慎决策,并只投入你能承受损失的资金。

本文作者不对因使用本文信息而产生的任何直接或间接损失负责。


[1] 节点(Node):区块链网络中的一个参与者,可以是一台电脑、一台服务器,或者一个矿机。节点负责存储区块链数据、验证交易、广播信息等。

[2] 私钥(Private Key):一串加密字符串,用于证明加密货币的所有权和授权交易。私钥必须严格保密,一旦泄露或丢失,资产将永久失去。

[3] 矿工(Miner):在区块链网络中负责验证交易、打包区块的节点。矿工通过提供算力维护网络安全,并获得区块奖励和交易手续费作为回报。

[4] 双花(Double Spending):指同一笔数字货币被花费两次的攻击行为。区块链通过共识机制防止双花攻击。

[5] 哈希值(Hash):通过哈希算法(如 SHA-256)将任意长度的数据转换成固定长度的字符串。哈希值有个特点:输入哪怕只改变一个字符,输出的哈希值也会完全不同。

[6] Nonce:Number used once 的缩写,是一个随机数。矿工通过不断尝试不同的 Nonce 值,来找到符合难度要求的哈希值。

[7] 工作量证明(PoW, Proof of Work):一种共识机制,要求矿工通过大量计算来证明自己付出了“工作量”,从而获得记账权。比特币、以太坊(早期)使用的就是 PoW。

[8] 权益证明(PoS, Proof of Stake):一种共识机制,根据持币数量和持币时间来分配记账权,而不是比拼算力。以太坊 2.0 使用的就是 PoS。

[9] 委托权益证明(DPoS, Delegated Proof of Stake):PoS 的变种,持币人投票选出若干个代表节点,由这些节点负责打包区块。速度快但去中心化程度较低。

[10] 实用拜占庭容错(PBFT, Practical Byzantine Fault Tolerance):一种共识算法,适用于节点数量少且身份已知的联盟链。通过多轮投票达成共识,效率高但去中心化程度低。

[11] 联盟链(Consortium Blockchain):介于公链和私链之间,只有授权的机构才能参与的区块链。常用于企业间协作,如供应链管理、银行间清算等。

[12] 不可能三角(Blockchain Trilemma):区块链技术面临的核心挑战,即去中心化、安全性、可扩展性三者难以同时实现,只能在其中做权衡。

[13] Layer2:第二层扩展方案,在主链(Layer1)之上构建的扩展网络,用于提高交易速度和降低费用。常见的 Layer2 方案有 Lightning Network、Optimism、Arbitrum 等。

[14] 分片(Sharding):一种扩容技术,将区块链网络分成多个“分片”,每个分片并行处理交易,从而提高整体吞吐量。以太坊 2.0 计划采用分片技术。

[15] 去中心化身份(DID, Decentralized Identity):基于区块链的身份系统,用户完全掌控自己的身份数据,不依赖中心化的身份提供商(如 Google、Facebook)。

[16] 智能合约(Smart Contract):运行在区块链上的自动执行代码,当预设条件满足时自动执行,无需人工干预。就像自动售货机:投币 → 选择商品 → 自动出货。

[17] 硬分叉(Hard Fork):对区块链协议进行不兼容的修改,导致区块链分裂成两条链。著名的硬分叉案例包括比特币分叉出 BCH,以太坊分叉出 ETC。

[18] CAP 理论(CAP Theorem):分布式系统的基础理论,指出一个分布式系统不可能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)三个特性,最多只能同时满足其中两个。区块链的"不可能三角"与此类似。

币圈入坑指南

Part 3 of 12

这是一个为你量身定制的区块链入坑指南,旨在带你从零基础小白,一步步成长为能够独立思考、安全操作、甚至进行开发的 Web3 资深玩家。

Up next

第 04 课:比特币 - 数字黄金还是泡沫?

币圈入坑指南