目录
1、整体架构
2、底层基础
2.1、Hash算法
2.1.1、哈希算法是什么?一个核心比喻
2.1.2、密码学哈希函数的五大核心特性
2.1.3、哈希算法在区块链的实现
2.2、非对称加密
2.2.1、非对称加密的基本概念
2.2.2、核心原理与数学基础
2.2.3、工作流程示例
编辑
2.2.4、总结
2.3、椭圆曲线
2.3.1、为什么区块链需要密码学?
2.3.2、为什么选择椭圆曲线密码学?
2.3.3、应用
2.3.4、总结
2.4、P2P网络
2.4.1、核心理念:从“中心化”到“对等”的范式转移
2.4.2、区块链P2P网络的核心目标
2.4.3、区块链P2P网络的工作机制详解
1)节点发现:如何找到组织?
2)网络连接管理
3)数据传播:交易和区块如何流转?
4)区块链同步:新节点如何赶上进度?
2.4.4、总结:P2P网络是区块链的灵魂
2.5、默克尔树
2.5.1、如何高效且安全地验证海量数据?
2.5.2、 什么是默克尔树?
2.5.3、总结:默克尔树的伟大之处
2.6、零知识证明
2.6.1、核心思想:如何证明“我知道一个秘密”而不泄露秘密?
2.6.2、为什么区块链需要零知识证明?
2.6.3、隐私保护:隐藏交易细节
2.7、整体来看
3、共识机制
3.1、共识算法定义
3.2、为什么需要共识机制
3.3、共识机制目标
4、Layer1 和 Layer2
4.1、定义
4.2、Layer1
4.3、Layer2
4.4、对比
4.5、总结
1、整体架构
我有一个习惯,学习一门新的知识或定理也好,都要先学习底层逻辑,看其中证明过程,看透这些新的应用到底用了哪些底层基础能力,再慢慢往上延伸,事半功倍。
一个新的技术出来,如果丢掉了其中的推理过程,解决问题的方案,是暴殄天物的。所以学习区块链,我们也先从底层基础开始看,区块链解决了哪些问题,应用了哪些技术去解决这些问题。
从现实意义来说,去理解一个底层逻辑后,首当其冲的好处就是你很难再忘掉它。这一点其实很容易解释,在你没有理解区块链的底层技术实现之前,区块链特性比如为什么能做到去中心化,为什么不能篡改,对你而言是一堆没有内在联系的词句,而在理解了底层技术之后,区块链特性就归约为它技术实现本身就自带这些功能。我们从如下的区块链的技术架构图去学习区块链

2、底层基础
区块链是一种去中心化的分布式账本技术,通过块链式数据结构、密码学算法和共识机制确保数据的不可篡改性和安全性,广泛应用于金融、供应链等领域。
- 区块链(Blockchain)的核心定义为:
1)去中心化:数据由网络节点共同维护,无需第三方中介机构。
2)不可篡改:每个区块通过哈希值与前序区块链接,篡改需全网节点共识,成本极高。
3)透明性与安全性:数据对所有节点公开,但交易身份信息通过加密保护。
为达到区块链这些特性,主要应用了如下技术组成
1)Hash算法
2)非对称加密
3)椭圆曲线
4)P2P网络
5)默克尔树
6)零知识证明
2.1、Hash算法
堪称区块链技术的“基石中的基石”,是理解区块链如何实现不可篡改性和数据完整性的关键。
2.1.1、哈希算法是什么?一个核心比喻
想象一下,你有一台神奇的“榨汁机”。
-
输入:任意水果(苹果、西瓜、一堆草莓)。
-
输出:固定大小的一杯果汁(比如永远是200毫升)。
-
特性:
-
只要你放入完全相同的水果,就会得到完全相同的果汁。
-
你无法通过这杯果汁反推出原来放进去的是什么水果。
-
哪怕只多放了一粒西瓜籽(输入微改),出来的果汁颜色和味道(输出)都会完全不同。
-
你几乎不可能找到两种不同的水果组合,能榨出一模一样的果汁。
这台“榨汁机”就是哈希函数,水果是输入数据,那杯果汁就是哈希值(一长串固定长度的十六进制数字)。

2.1.2、密码学哈希函数的五大核心特性
一个安全的、能被区块链采用的哈希函数必须满足以下特性:
| 1. 确定性 | 相同的输入永远产生相同的哈希输出。 | 保证所有节点在验证同一笔交易或同一个区块时,计算出的哈希值是一致的,这是达成共识的基础。 |
| 2. 快速计算 | 给定输入数据,可以非常快速地计算出其哈希值。 | 节点能够高效地验证交易和区块的完整性。 |
| 3. 单向性(隐匿性) | 从哈希值反向推算出原始输入数据在计算上是不可行的。 | 保护数据隐私。在区块链上,你可以公开一个交易的哈希值来证明你知道该交易,而无需透露交易细节。 |
| 4. 雪崩效应 | 输入数据哪怕发生最微小的改变(如改变一个比特),产生的哈希值也会发生巨大且不可预测的变化。 | 不可篡改性的核心! 修改区块中的任何数据都会彻底改变该区块的哈希值,从而“连锁反应”地影响其后所有区块,使篡改行为极易被检测。 |
| 5. 抗碰撞性 | 极难找到两个不同的输入数据,却产生相同的哈希输出。 |
2.1.3、哈希算法在区块链的实现
-
如何实现?
-
每个区块的区块头都包含一个关键字段:前一个区块的哈希值。
-
这相当于每个区块都牢牢地“抓住”了前一个区块的独一无二的数字指纹(哈希值)。
-
如此一环扣一环,从创世区块开始,形成一条连续不断的链。
-
核心作用:防篡改的“连锁反应”
-
如果攻击者篡改了某个历史区块(例如区块N) 中的任意一笔交易。
-
根据哈希的雪崩效应,该区块(区块N)自身的哈希值会立即发生彻底改变。
-
此时,下一个区块(区块N+1)头中记录的“前一个区块的哈希值”就与现在这个全新的、被篡改后的区块N的哈希值不匹配了,链条因此断裂。
-
为了掩盖篡改行为,攻击者必须重新计算区块N的哈希值,并接着重新计算区块N+1的哈希值(因为其父哈希变了),以此类推,直到链的最末端。
-
在工作量证明(PoW)链上,这意味着要重新完成所有这些区块的巨大计算量,并在速度上超过诚实链,这在实际中(对于比特币或以太坊这样的主流链)是不可能完成的任务。
-
简单来说,哈希链将所有的区块“粘合”成一个整体,任何对历史的修改都会像推倒多米诺骨牌一样,需要颠覆整个后续历史,从而实现了极强的不可篡改性。

2.2、非对称加密
2.2.1、非对称加密的基本概念
非对称加密(Asymmetric Encryption)也称公钥密码学,使用一对密钥完成加密和解密:
- 公钥(Public Key):公开可见,用于加密数据
- 私钥(Private Key):仅限所有者持有,用于解密数据
这种机制解决了对称加密中的密钥分发难题,成为区块链安全的基石。
2.2.2、核心原理与数学基础
密钥生成过程
2.2.3、工作流程示例
构造交易:Alice 的钱包软件构造一笔交易,内容类似:“从地址A(Alice的地址)转账X个比特币到地址B(Bob的地址)”。
创建签名:钱包软件使用 Alice 的私钥对这笔交易进行数字签名。
广播交易:将交易原文和数字签名广播到比特币网络。
全网验证:每个节点收到交易后: a. 根据交易输入中的地址A,找到对应的公钥(或能从签名中恢复公钥)。 b. 使用该公钥去验证附带的签名。 c. 如果验证通过,说明地址A的合法所有者确实授权了这笔交易。节点才会将此交易接受为有效,并打包进区块。
2.2.4、总结
| 身份认证与所有权 | 用私钥签名交易,公钥验证签名。拥有私钥即拥有账户资产的所有权。 | 实现了“自我主权”,无需中央机构认证身份。 |
| 数据完整性 | 签名与交易内容的哈希值绑定。任何篡改都会导致验证失败。 | 确保了交易记录一旦被广播就无法被篡改,保证了账本的可信度。 |
| 不可否认性 | 由于只有发送方持有私钥,一旦签名验证成功,发送方无法否认该交易。 | 建立了交易最终的确定性,是结算的基础。 |
2.3、椭圆曲线
2.3.1、为什么区块链需要密码学?
在去中心化的系统中,没有银行这样的权威机构来验证你的身份和交易。因此,区块链需要一套密码学体系来解决以下核心问题:
身份认证:如何证明你是某个账户资产的所有者?
交易完整性:如何确保交易在传输过程中不被篡改?
不可否认性:如何防止发送方在发送交易后否认该行为?
解决这些问题的答案就是 非对称加密(公钥密码学),而 椭圆曲线密码学 是实现非对称加密最流行、最高效的技术之一。
2.3.2、为什么选择椭圆曲线密码学?
实现非对称加密的算法不止一种,最著名的还有RSA。那么区块链为什么普遍选择ECC呢?
核心优势:在相同安全强度下,ECC的密钥长度远小于RSA。
| 80 | 1024 | 160 |
| 128 | 3072 | 256 |
| 256 | 15360 | 512 |
这意味着:
-
存储和传输效率更高:区块链上的公钥和签名数据更小,节省存储空间和网络带宽。
-
计算速度更快:生成签名和验证签名的操作更快,对节点性能要求更低。
比特币和以太坊使用的 secp256k1 椭圆曲线,其私钥长度为256比特,公钥为512比特(或压缩后为257比特),提供的安全强度相当于128比特,与3072比特的RSA相当。
2.3.3、应用
生成比特币地址流程如下:
生成私钥:随机选择一个256位的数字(1 到 n-1,n是曲线的阶)。例如,0xE9873D79C6D87DC0…。
推导公钥:公钥 = 私钥 * G,其中G是secp256k1曲线上约定的一个固定基点。结果是一个二维坐标点 (x, y)。
编码公钥:将公钥坐标进行序列化(压缩或未压缩格式)。
生成地址: a. 对编码后的公钥进行 SHA-256 哈希计算。 b. 对得到的结果再进行 RIPEMD-160 哈希计算,得到公钥哈希(20字节)。 c. 添加版本号和校验码。 d. 进行 Base58Check 编码,最终得到我们常见的以“1”或“3”开头的比特币地址。
关键点:地址是公钥的哈希,而不是公钥本身。这提供了额外的安全层(抗量子计算)和更短的地址格式。
2.3.4、总结
| 私钥 | 随机生成的大数,资产所有权的核心 | 银行卡密码+签名笔迹 |
| 公钥 | 由私钥推导出的坐标点,可公开 | 银行账户号/公证件 |
| 椭圆曲线 | 提供单向数学函数(k * G = K)的数学框架 | 印钞机和验钞机的制造原理 |
| 离散对数难题 | 保证“从公钥无法反推私钥”的安全性 | 无法通过验钞机仿造出真印钞机 |
| 数字签名 | 用私钥对交易进行签名,证明授权 | 在支票上亲手签名 |
| 地址 | 公钥的哈希,是资产的接收地址 | 公开的收款二维码 |
椭圆曲线密码学是区块链技术的脊梁,它以一种优雅而高效的方式,在无需信任的环境中创造了牢不可破的数字所有权和身份验证机制。理解ECC,是理解区块链安全模型的核心。
2.4、P2P网络
2.4.1、核心理念:从“中心化”到“对等”的范式转移
在开始前,我们先理解P2P要解决什么问题。
传统的客户端-服务器模型
-
结构:有一个或一组中心化的服务器(如淘宝、微信的服务器)。所有客户端(用户App)都连接到这个中心,彼此之间不直接通信。
-
问题:
-
单点故障:中心服务器宕机,整个服务瘫痪。
-
性能瓶颈:所有流量都经过中心服务器,容易拥堵。
-
控制权集中:服务器所有者可以审查、控制、查看所有数据。
-
P2P网络模型
-
结构:网络中的每个参与者(称为节点或对等点)既是客户端(请求服务),也是服务器(提供服务)。所有节点地位平等,直接通信。
-
优势:
-
去中心化与抗审查:没有单点控制,难以被关闭或审查。
-
鲁棒性:部分节点下线,网络依然能正常运行。
-
可扩展性:新节点的加入带来了新的资源(带宽、存储),网络能力随之增强。
-
区块链正是一个构建在P2P网络之上的分布式账本。 它的目标是实现一个不依赖于任何中央权威的金融系统,因此P2P是其必然的底层网络选择。
2.4.2、区块链P2P网络的核心目标
区块链P2P网络的设计围绕以下几个核心目标展开:
快速传播交易和区块:确保新区块和交易能快速、准确地传播到全球所有节点。
维护数据一致性:尽管节点遍布全球,但要保证所有诚实节点最终都拥有相同的账本副本。
抵抗攻击:网络结构要能抵抗女巫攻击、日蚀攻击等恶意行为。
保持开放与匿名性:允许节点自由加入和退出,并保护节点的网络身份(IP地址)隐私。
2.4.3、区块链P2P网络的工作机制详解
1)节点发现:如何找到组织?
当一个新节点(比如你刚启动的比特币核心客户端)想要加入网络时,它并不知道其他节点在哪里。它通过以下方式“发现同伴”:
DNS种子节点:客户端内嵌了一些由社区维护的DNS种子地址。查询这些DNS会返回一系列长期稳定在线的节点IP地址列表。这是初始的引导列表。
与已知节点握手:新节点随机从列表中选择几个节点,发起TCP连接(通常是8333端口用于比特币)。
地址交换:连接建立后,新节点会向对方发送一条 getaddr 消息。对等节点则回复一条 addr 消息,包含它已知的其他节点的IP地址列表。
构建对等列表:新节点用收到的地址丰富自己的对等列表,并尝试与更多节点建立连接。很快,它就不再依赖初始的种子节点了。
2)网络连接管理
一个区块链节点通常会与数十个甚至上百个其他节点保持连接。
-
出站连接:由本节点主动发起的连接。为了增强抗审查性,比特币客户端会努力维持至少8个出站连接。
-
入站连接:其他节点主动连接到本节点。一个全节点可以接受多达125个入站连接。
这种密集的连接使得网络形成一个随机拓扑结构,而不是一个有序的结构化网络,这有利于信息的快速和随机扩散。
3)数据传播:交易和区块如何流转?
这是P2P网络最核心的流程。
A. 交易传播
用户钱包创建一笔交易,并将其发送给某个相连的节点。
验证然后转发:该节点首先独立验证这笔交易(签名是否有效、输入是否未被花费等)。如果验证通过,则将其放入自己的内存池,同时向所有与之相连的其他节点(除了发送来源的那个节点)发送这笔交易。这个规则被称为 “洪水算法”。
指数级扩散:每一个收到交易的节点都重复“验证-转发”的过程。这样,一笔交易就像病毒一样,在几秒钟内就能传遍全球网络。
(图示:交易通过洪水算法在P2P网络中扩散)
B. 区块传播 当矿工挖出一个新区块时,传播过程类似,但更为关键和优化:
矿工将新区块发送给其相邻节点。
节点收到区块后,会逐笔验证区块内的所有交易。验证通过后,将该区块追加到本地区块链上。
同时,节点会将该区块转发给它的所有对等节点(除了来源节点)。
为了加速大型区块的传播,网络采用了如 紧凑区块 这样的优化方案:节点先发送一个包含交易ID的小型“紧凑区块”,接收节点可以根据ID从自己的内存池中重组出大部分交易,只请求缺失的少数交易,极大减少了带宽占用。
4)区块链同步:新节点如何赶上进度?
一个新节点加入网络时,它的本地区块链长度可能远落后于网络最新高度。它需要通过以下步骤进行同步:
寻找最长链:节点向所有对等节点查询它们的区块链高度(区块号)。
下载区块:节点选择从拥有最长链的对等节点那里,批量请求自己缺失的区块数据(使用 getblocks 和 getdata 消息)。
验证并追加:节点按顺序下载区块,并独立验证每个区块的PoW和工作量,以及区块内的所有交易。验证通过后,将其添加到本地区块链。
追赶至最新:重复此过程,直到本地区块链高度与网络主流一致。
2.4.4、总结:P2P网络是区块链的灵魂
| 去中心化 | 无中心服务器,所有节点平等对话。 | 实现了系统的抗审查性和韧性,无需信任任何单一实体。 |
| 数据冗余 | 每个全节点都保存完整的账本副本。 | 保证了数据的不可篡改性和永久可用性,实现了“账本即法律”。 |
| 最终一致性 | 通过“最长链原则”和共识机制,在延迟后所有诚实节点达成一致。 | 解决了分布式系统中的拜占庭将军问题,建立了信任。 |
| 开放准入 | 任何人均可下载软件,按照协议自由加入网络。 | 创造了全球性的、无国界的、开放的价值交换网络。 |
总而言之,P2P网络技术为区块链提供了赖以生存的物理基础。它将成千上万个独立的计算机编织成一个协同工作的有机体,使得“去中心化”这个看似理想化的概念,变成了坚不可摧的技术现实。没有P2P,就没有真正的区块链。
2.5、默克尔树
2.5.1、如何高效且安全地验证海量数据?
想象一下,比特币一个区块可能包含数千笔交易。全节点(Full Node)存储了所有数据,验证起来没问题。但考虑以下场景:
轻客户端(SPV节点):比如手机钱包,它不可能下载整个区块链(几百GB)。它只关心与自身相关的交易。如何让它确信某笔交易确实被写进了某个区块,而不需要下载该区块的所有交易?
数据完整性校验:一个全节点收到一个新区块,如何用最小的计算量快速验证这个区块中的所有交易都没有被篡改?
默克尔树 就是为了解决这些问题而存在的。
2.5.2、 什么是默克尔树?
默克尔树,也叫哈希树,是一种二叉树结构。它通过递归计算哈希值,将大量数据归纳为一个单一的、短小精悍的“数字指纹”——默克尔根。
构建一棵默克尔树(图示流程)
假设一个区块里有4笔交易:TxA, TxB, TxC, TxD。
第一步:计算叶子节点的哈希
-
对每一笔交易的数据进行双重SHA-256哈希计算(比特币的做法)。
-
Hash_A = SHA256(SHA256(TxA))
-
同样得到 Hash_B, Hash_C, Hash_D。
-
这些哈希值构成了树的叶子节点。
第二步:计算非叶子节点(父节点)
-
将相邻的两个叶子节点的哈希值拼接起来,然后计算这个拼接结果的哈希。
-
Hash_AB = SHA256(SHA256(Hash_A + Hash_B))
-
Hash_CD = SHA256(SHA256(Hash_C + Hash_D))
-
Hash_AB 和 Hash_CD 成为新的节点。
第三步:计算根节点(默克尔根)
-
重复第二步的过程,将 Hash_AB 和 Hash_CD 拼接并哈希。
-
Merkle Root = SHA256(SHA256(Hash_AB + Hash_CD))
最终,这棵树的顶端只有一个哈希值,就是默克尔根。这个值会保存在区块头中。
text
Merkle Root (存储在区块头)
/\\
/ \\
/ \\
Hash_AB Hash_CD
/\\ /\\
/ \\ / \\
Hash_A Hash_B Hash_C Hash_D (叶子节点)
| | | |
TxA TxB TxC TxD (原始交易数据)
关键点:
-
任何底层交易数据的微小变动,都会引起其对应叶子节点哈希值的改变。
-
这个改变会像多米诺骨牌一样向上传递,最终导致默克尔根的彻底改变。因此,默克尔根代表了整个区块所有交易的“指纹”。

2.5.3、总结:默克尔树的伟大之处
| 高效验证 | 通过 O(log N) 的默克尔路径即可验证单笔交易,而非处理全部 O(N) 数据。 | 使轻客户端(SPV)成为可能,极大地提升了区块链的可扩展性和普及性。 |
| 数据完整性 | 默克尔根是全部数据的唯一指纹。任何数据的篡改都会导致根的变化。 | 确保了区块一旦被确认,其内容就无法被篡改。是“不可篡改性”的关键技术支撑。 |
| 安全性 | 默克尔证明的安全性由底层的哈希函数和工作量证明共同保障。 | 提供了强大的密码学保证,攻击成本极高。 |
| 隐私保护 | 在向轻客户端证明交易存在时,无需透露区块中其他不相关的交易。 | 提供了一定程度的隐私性。 |
总而言之,默克尔树是一种优雅的数据结构,它利用密码学哈希函数,将“大海”般的交易数据浓缩为“一滴水”般的默克尔根。这滴水虽小,却足以让任何人相信那片大海的真实样貌。它是区块链在去中心化、安全与效率之间取得平衡的基石技术之一。
2.6、零知识证明
2.6.1、核心思想:如何证明“我知道一个秘密”而不泄露秘密?
让我们通过一个经典的类比——“阿里巴巴洞穴”来理解零知识证明的直觉。
场景:有一个环形洞穴,入口处有一道魔法门(C点),需要念出咒语才能打开。佩吉声称她知道咒语。维克多想验证这一点,但又不想佩吉把咒语告诉他。
证明过程:
-
维克多站在洞口,看不到佩吉。
-
佩吉随机选择从路径A或路径B走进洞穴。
-
维克多随后进入洞口,走到魔法门前,然后随机大喊:“请从A路出来!”或“请从B路出来!”
-
如果佩吉真的知道咒语,她无论最初选了哪条路,都能打开魔法门,从维克多要求的路走出来。
-
如果佩吉不知道咒语,她只有50%的概率猜对维克多会要求哪条路(即她刚好走对了路)。
重复与可信度:这个游戏重复进行很多次。如果佩吉每次都能从维克多要求的路走出来,维克多就能以极高的概率确信佩吉确实知道咒语,而自始至终,咒语(秘密)都没有被泄露。
这就是零知识证明的三个核心性质:
-
完备性:如果陈述为真(佩吉知道咒语),诚实的证明者(佩吉)能够说服诚实的验证者(维克多)。
-
可靠性:如果陈述为假(佩吉不知道咒语),作弊的证明者几乎无法欺骗诚实的验证者(除非靠极低的概率猜对)。
-
零知识性:验证者除了“陈述为真”这一结论外,学不到任何关于秘密的信息(维克多不知道咒语是什么)。
2.6.2、为什么区块链需要零知识证明?
区块链是公开透明的账本,这带来了两个核心问题:
隐私问题:虽然地址是伪匿名的,但所有交易细节(发送方、接收方、金额)都对全网公开。通过链分析可以推断出大量真实世界信息。
可扩展性问题:每个节点都需要验证每一笔交易,这导致了网络吞吐量低、速度慢。
ZKP通过将“计算”与“验证”分离,完美地应对了这两个挑战。
2.6.3、隐私保护:隐藏交易细节
-
目标:证明一笔交易是合法的,但不透露任何敏感信息(金额、发送方地址、接收方地址)。
-
如何实现:
-
隐藏交易:发送方将资金存入一个共享的“资金池”(实际上是一种密码学构造)。
-
创建证明:当想要花费资金时,发送方需要生成一个零知识证明。这个证明所证明的陈述是:“我知道一个秘密(私钥),能够授权花费池中这些未花费的资金,并且我生成的新输出金额总和等于输入金额总和(没有凭空造钱)”。
-
链上验证:只有这个简短的证明被广播到区块链上。网络节点验证这个证明是否有效。
-
结果:如果验证通过,交易就被确认。节点完全不知道具体是哪笔资金被花费了,流向了哪里,金额是多少,但他们100%确信这是一笔合规的交易。
2.7、整体来看
1)哈希函数确保了数据的完整性,一点都不能改;
2)非对称加密实现了身份认证和不可否认,私钥是你一切的根源。
3)椭圆曲线高效实现了在无需信任的环境中创造了牢不可破的数字所有权和身份验证机制。
4)P2P网络将成千上万个独立的计算机编织成一个协同工作的有机体。
5)Merkle树实现了数据的高效验证,让轻节点成为可能。
6)零知识证明实现了可验证的隐私,是未来支付隐私战的核武器。
这些不是虚无缥缈的理论,而是大家每天用的加密货币底层的基础设施。
3、共识机制
说白了,共识机制就是要解决一个千古难题:一群互不信任的人,如何在没有中心老大主持的情况下,共同维护一本账本的真实和唯一?以后会有个专栏专门去分析各种共识算法。
共识机制是分布式计算机系统(尤其是区块链网络)中,所有参与节点为了就网络的当前状态(即数据的一致性)达成一致而遵循的一套规则和程序。您可以将其理解为一套数字民主的投票规则。在一个没有中央权威的系统中,这套规则确保了每个人都在按照相同的剧本行事,从而防止混乱和欺诈。
3.1、共识算法定义
假设系统中有n个节点,其中正确节点数量为n1,错误节点数量为n2,满足:n = n1 + n2 任意节点a从s状态开始,接受一个输入值V1;所有节点必须要从全部输入值中选择一个决策值,并满足以下条件:
也就是说,区块链的共识机制要解决的核心问题是,如何让一个松耦合的、有大量节点的、可能存在故障或非法节点的分布式系统来相互协作,在有限的时间周期内,完成一次决策,并保障一致性和有效性。而这个核心问题的核心在于,在每一个时间周期内,谁来决策?
3.2、为什么需要共识机制
区块链是一个由成千上万个互不信任的节点组成的点对点分布式网络。它面临几个根本性挑战:
共识机制就是为了解决以上所有问题而设计的。它是区块链的“灵魂”,确保了去中心化系统的有效、安全运转。简单来讲,共识机制可以有效解决两个问题: 双花问题(一笔钱被花了两次)和拜占庭将军问题(恶意节点篡改数据)。
3.3、共识机制目标

4、Layer1 和 Layer2
4.1、定义
L1(Layer 1) 就像是基础的高速公路(如以太坊、比特币主网)。它负责最根本的安全、共识和最终的数据可用性。但当车流(交易)巨大时,这条高速公路会变得非常拥堵,导致车速慢(交易确认慢)且过路费高(Gas费极高)。
L2(Layer 2) 就像是建立在高速公路之上的高架桥或并行快速路(如 Arbitrum, Optimism, Polygon PoS)。它们将大部分车流吸引到自己身上,进行快速且低费用的通行,最终再将结果汇入主路,以此来分担主路的压力,提升整个交通系统的效率。
4.2、Layer1
L1 指的是独立的、拥有自己共识机制的底层区块链网络。它们是整个生态安全性的基石。
1)核心职责:
2)著名的 L1 项目:
3)L1 的“三难困境” (Scalability Trilemma)
这是理解为什么需要 L2 的关键。由以太坊联合创始人 Vitalik Buterin 提出,他认为一个区块链无法同时完美实现以下三点:
L1 通常优先保障去中心化和安全性,因此在可扩展性上做出牺牲,导致拥堵和高费用。
4.3、Layer2
L2 是在 L1 之上运行的、旨在提升 L1 可扩展性和效率的第三方协议或框架。它们将大部分交易处理转移到链下,最终只将结果锚定回 L1。
核心目标:
主要的 L2 技术方案:
1)Rollups(汇总) – 当前主流方案
工作原理:将成百上千笔交易“卷”在一起,在链下执行,然后生成一个极小的证明,连同压缩后的交易数据一起发送回 L1 进行最终结算。
两种主要类型:
ZK-Rollups (零知识证明汇总):使用零知识证明(ZKPs) 来验证大量交易的正确性。它向 L1 提交一个称为 SNARK 或 STARK 的加密证明,L1 只需验证这个证明即可确认所有交易有效。
特点:安全性极高,资金始终由 L1 上的智能合约保护;提款快(无需等待期);但技术复杂,对通用计算的支持(兼容性)仍在发展中。
案例:zkSync, StarkNet, Polygon zkEVM。
Optimistic Rollups (乐观汇总):“乐观地”假设所有交易都是有效的,不会在链上立即验证。它直接提交交易数据到 L1,并设定一个挑战期(通常为7天)。在此期间,任何人都可以质疑计算结果并提交欺诈证明。如果挑战成功,状态将回滚,挑战者获得奖励。
特点:与以太坊虚拟机(EVM)兼容性极佳,开发者迁移容易;但提款慢(需要等待挑战期);安全性依赖于至少有一个诚实节点发现欺诈。
案例:Arbitrum One, Optimism。
2)状态通道 (State Channels)
工作原理:参与者在链下建立一个通道,通过多次快速、免费地进行交易,只在通道打开和关闭时与 L1 交互两次。
案例:比特币的闪电网络 (Lightning Network),以太坊的雷电网络 (Raiden)。
3)侧链 (Sidechains)
工作原理:一条拥有自己共识机制的独立区块链,与主链通过双向桥连接。资产可以跨链转移。
注意:侧链的安全性不直接依赖于 L1,而是由其自身的验证者保证。因此常被称为“L2”的同类,但严格来说不属于纯正的L2。
案例:Polygon PoS(它通过一个由PoS保护的侧链来为以太坊扩容)。
4.4、对比

4.5、总结
当前的趋势是走向模块化,即区块链的三大功能——执行(Execution)、共识/安全(Consensus/Security)、数据可用性(Data Availability)——由不同的层来专门负责。
L1 专注于共识/安全和数据可用性。
L2 专注于执行。
甚至出现了专门提供数据可用性的层,如 Celestia 和 EigenDA,它们为 L2 提供更经济的数据存储选项,进一步降低 L2 的成本。
L1 是根基,是安全和去中心化的最终保障。
L2 是未来,是实现大规模应用的关键扩展方案。
它们不是替代关系,而是协同进化的关系。L2 的存在让 L1 可以安心地专注于安全和去中心化,而无需在“三难困境”中过度妥协。最终,一个以以太坊等L1为安全基石,众多L2为高效执行层的多链生态系统正在形成。


