区块链是一种基于分布式共识机制、链式数据结构与智能合约的分布式账本技术,其核心是在无第三方可信中介的分布式环境中,实现数据的一致存储、难以篡改、可追溯与多方可信协作。下面从特性、三类链、架构、工作流程等几个方面介绍。
区块链的核心特性
分布式账本:账本存储在多个节点上,不依赖单一中心服务器。
不可篡改:改一个区块,后面所有区块哈希都要改,且要控制多数节点才可能实现。
可追溯:每笔交易按时间顺序记录,可沿链回溯。
透明/可验证:多数链上数据公开,任何人可验证。
共识驱动:在主流区块链中,节点按照共识协议规则获得或竞争出块权。出块节点从交易池中选取交易、排序并打包成候选区块,广播给其他节点。其他节点验证该区块的有效性,并通过共识算法对区块顺序达成一致;各节点按相同规则执行交易后,得到一致的状态。
智能合约:智能合约是部署在区块链上的程序,拥有独立地址和持久化状态。它把合约逻辑写成代码,对外提供可调用的函数接口。
公有链、联盟链、私有链
-
公有链:对所有网络参与者开放,任何个体或节点无需授权均可自由接入网络,执行交易发送、账本读取、区块验证与共识参与等操作。 完全去中心化:无单一控制主体,共识由全网节点共同参与决策; 透明性与匿名性:交易数据全网公开可查,参与者以地址标识实现身份匿名; 密码学安全保障:依赖算力或权益等机制抵御恶意攻击,篡改成本呈指数级上升; 原生通证激励:通常内置加密资产,用于激励节点参与共识与维护网络安
-
联盟链:由多个预定义的机构或组织联合组成共识群组,节点接入与记账权需经过联盟成员共同授权认证,属于多中心协作架构。 部分去中心化(多中心化):共识由联盟内授权节点共同控制,而非全网开放参与; 可控透明性:数据可见范围可按权限配置,兼顾隐私保护与协作可信; 联盟治理机制:规则制定、节点变更、异常处理由联盟成员协商决策。 典型应用:供应链金融、贸易通关、跨行支付清算、电子票据、政务数据共享、司法存证。
-
私有链:完全许可型区块链,其节点准入、账本读写、区块生成与共识过程均由单一组织或机构集中管控,本质是具备区块链数据结构的分布式数据库系统。 高度中心化:控制权集中于单一主体,去中心化特征弱化; 强权限管理:数据访问与操作权限严格受控,隐私性最强; 无原生激励需求:节点由机构内部部署,无需通证激励维护网络。 典型应用:企业内部审计、财务对账、内部数据存证、流程优化、集团内部协同系统。
联盟链与许可链的区别:联盟链是许可链的一种,许可链的范围更大。 许可链强调准入控制:谁可以加入网络。 联盟链强调治理结构:由多个组织共同管理。 在工业界和许多论文中,许可链与联盟链常被当作同义词。原因在于目前最主流的许可链应用基本都属于多机构联盟场景。
区块链的架构组成
区块链通常划分为以下层级,数据层、网络层、共识层、合约层、应用层。
-
数据层定义区块链的数据结构、存储方式与密码学完整性机制,是账本存在和不可篡改的基础。其通用构件包括:区块,由区块头和交易列表组成;区块头,包含前一块哈希、时间戳、Merkle 根、随机数或难度等;链式结构,每个区块指向前一区块,形成链;哈希与 Merkle 树,保证数据完整性并支持高效验证;数字签名,证明交易由私钥持有者发起;状态,记录账户余额或合约状态,比特币采用 UTXO 模型,以太坊采用账户模型。但不同链类型在存储范围、隔离方式和完整性证明上差异显著。
-
网络层定义节点如何连接、通信和传播交易与区块,是区块链去中心化运行的通信基础。但不同链类型的准入机制、信任模型和业务目标不同,因此网络层的节点角色、连接方式和传播策略也不同。
-
共识层定义互不信任的节点如何就交易顺序和账本状态达成一致,决定谁有权出块以及分叉如何解决。其通用构件包括 PoW、PoS、DPoS、BFT 类、PoA 和 PoET 等,但不同链类型在准入机制、信任模型和性能目标上的差异,决定了共识算法的选择与取舍。
-
激励层定义参与者为何愿意维护网络,通过奖励和惩罚引导诚实行为,是共识机制的经济支撑。其通用构件包括出块奖励、手续费、Gas、质押、罚没和声誉等,但不同链类型对代币和经济激励的依赖程度差异显著。
-
合约层定义链上可编程逻辑,使规则可以自动执行、状态可以按条件更新,是区块链可编程性的核心。其通用构件包括智能合约、虚拟机、脚本、权限控制、访问策略、隐私计算和预言机接口等,但不同链类型在部署权限、执行环境和隐私保护上差异明显。
-
应用层定义面向用户和业务场景的具体应用,是区块链对外提供服务的入口。其通用构件包括 DeFi、NFT、供应链、存证、医疗、政务、物联网、钱包、浏览器和 DApp 等,但不同链类型面向的用户群体和业务目标差异显著。
工作流程
本章以完成一笔交易为例,介绍区块链(公有链)的工作流程。不同区块链在细节上存在差异,但核心流程一致:用户签名发起交易,节点广播并验证,矿工/验证者打包出块,全网验证后追加账本,最终达到确认与最终性。
一、角色简化
实际系统中一个节点可能同时承担多种角色,不同链类型的角色名称也各异,但核心功能可归结为用户端、节点网络和出块节点三类,因此这里按功能进行简化,以便统一描述工作流程。
用户端:合并用户、钱包、客户端节点,负责构造、签名和发送交易。
节点网络:合并全节点、轻节点、P2P 网络,负责广播、验证、存储账本、维护内存池。
出块节点:合并矿工、验证者、排序节点,负责选交易、打包出块、广播区块。
二、工作流程
1) 用户端构造交易:用户端填写发送方、接收方、金额、手续费、Nonce、Gas、调用数据等字段。
2) 用户端签名交易:用户端用私钥对交易签名,证明交易由资产所有者授权。
3) 用户端发送交易:用户端将已签名交易发送给所连接的一个或多个节点。
4) 节点网络初步检查:节点检查交易格式、字段完整性、签名是否明显非法,非法交易直接丢弃。
5) 节点网络广播交易:合法交易通过 P2P 网络和 Gossip 协议转发给邻居节点,逐步扩散至全网。
6) 全节点验证交易:全节点验证签名、Nonce、余额、UTXO 是否未花费、是否双花、Gas 是否合法等。
7) 合法交易进入内存池:验证通过的交易进入本地内存池,等待出块节点打包;无效交易被拒绝。
8) 出块节点选择交易:出块节点从内存池中按手续费率、到达时间等规则选择交易。
9) 出块节点执行交易:出块节点在本地执行交易,更新账户状态或 UTXO 集,并计算状态根、Merkle 根等。
10) 出块节点构造候选区块:出块节点将交易、区块头、前区块哈希、时间戳、状态根等信息组装成候选区块。
11) 出块节点按共识规则出块:按共识规则产生新区块:PoW 计算满足难度的哈希;PoS 由选中验证者签名;BFT 类由领导者提议并投票;联盟链可能拆为背书、排序、提交。
12) 出块节点广播区块:出块节点将新区块通过 P2P 网络广播给其他节点。
13) 其他节点验证区块头:其他节点验证前区块哈希、时间戳、难度、Merkle 根、状态根、共识证明等。
14) 其他节点验证交易并重执行:节点重新执行区块内交易,确认签名、余额、双花、Gas、合约执行结果和状态转换一致。
15) 验证通过后追加账本:验证通过的区块被追加到本地区块链尾部,网络逐渐收敛到同一主链。
16) 更新状态并清理内存池:节点更新世界状态或 UTXO 集,并从内存池中移除已被打包的交易。
17) 交易达到确认与最终性:概率最终性如比特币等待 6 个确认;绝对最终性如 BFT 类协议一旦提交不可回滚;PoS 可通过检查点提供最终性。
18) 处理分叉:若出现临时分叉,节点按最长链、最重链、累计难度最大或 BFT 投票规则选择主链;孤块中的交易可被重新打包。
联盟链概念介绍
本章各小节回答以下问题,联盟链普通节点的作用是什么,中心节点的作用是什么?联盟组织的作用是什么?常见联盟链共识有哪些?
中心节点
中心节点一般指共识节点、排序节点、准入节点、监管节点这类核心节点,联盟链不是完全去中心化,而是可控中心化。 主要作用:
- 负责共识与区块打包 收集交易、达成一致、生成区块,保证全网账本一致。
- 负责交易排序与防重复 避免双花(同一笔钱花了两次)、乱序(不统一顺序,不同节点算出来的余额会不一样,账本就对不上)、冲突(两个交易互斥、矛盾,只能执行一个,否则就是冲突),保证交易执行顺序统一。
- 负责链的准入与权限控制 控制哪些节点、哪些用户能加入链、能发交易。
- 承担监管与审计职责 可记录全量日志、可追溯、可监管,满足合规要求。
- 保证链的稳定性与性能 中心节点通常配置更高,承担高并发、高吞吐压力。 简单记:中心节点 = 联盟链的 “大脑 + 守门人 + 记账总管”
普通节点
普通节点一般是各参与方自己部署的节点,不参与共识,只同步账本、执行业务。 主要作用:
- 同步并保存完整/部分账本 本地存链数据,保证自身可信、可查、不可篡改。
- 发起与提交交易 企业自己的业务系统通过普通节点上链。
- 执行智能合约 验证交易逻辑、执行业务规则(如 Fabric 的 Peer 节点)。
- 本地查询与对账 不需要依赖第三方,自己就能查链上数据。
- 隔离敏感数据 联盟链可做数据隔离,普通节点只同步自己有权限的数据。 普通节点 = 各参与方的 “业务入口 + 本地账本 + 合约执行器”
组织
组织是联盟链的参与主体,比如银行、企业、机构、监管单位等。 在Fabric这类架构中,组织(Org)是一等公民。 主要作用:
- 代表真实参与方加入联盟 一个组织对应一个现实中的机构。
- 拥有自己的节点、证书、权限 组织管理自己的普通节点、用户身份、密钥。
- 参与联盟治理与权限决策 决定链规则、合约升级、成员准入等。
- 数据权限与隐私隔离 不同组织之间可设置数据可见范围,保护商业隐私。
- 共同维护链的可信性 多组织共同背书,避免单一机构控制整条链。 简单记:组织 = 联盟链的 “参与方 + 权限主体 + 治理单元”
共识
区块链的共识(Consensus)分布式网络中所有节点(参与者)在无需中心化权威的情况下,就区块链账本的状态达成一致的机制—— 核心目标是解决 “分布式系统的信任问题”,确保账本数据的一致性、不可篡改性和安全性,同时抵御恶意节点攻击(如双花、数据篡改)。 常见的共识算法如:
1)工作量证明(Pow, Proof of Work),比特币、莱特币,节点通过消耗算力解决复杂数学难题(如哈希碰撞),谁先解出就获得区块打包权,同时获得代币奖励。
2)权益证明(PoS, Proof of Stake),以太坊 2.0,节点的区块打包权与自身持有的代币数量/持仓时间正相关,无需消耗大量算力,持币越多、持仓越久,获得记账权的概率越高。
工作流程: 1. 节点按规则锁定一定数量的代币作为 “质押金”(Staking),成为候选验证者; 2. 系统按持币量 + 持仓时间计算验证者权重,随机选择权重高的节点打包区块; 3. 验证者打包交易并广播,其他节点验证后确认; 4. 验证者获得交易手续费奖励,若作弊则质押金会被扣除(惩罚机制)。 优点:能耗极低(仅需质押代币,无需挖矿)、效率更高(以太坊 2.0 每秒可达 10 万 + 笔)、交易确认快; 缺点:去中心化程度略低于 PoW(持币多的节点话语权更强)、可能存在 “富人愈富” 问题。
3)实用拜占庭容错(PBFT, Practical Byzantine Fault Tolerance) 核心思想:“节点投票确认”—— 适用于联盟链 / 私有链(节点已知且可信),通过节点间多轮投票达成共识,允许网络中存在不超过 1/3 的恶意节点。
4)委托权益证明(DPoS, Delegated Proof of Stake) 核心思想:“投票选举代表”—— 代币持有者投票选举出一定数量的“超级节点”(如 21 个),由超级节点轮流打包区块,普通节点无需参与记账,仅需监督。 优点:效率极高(EOS 每秒可达数千笔)、交易确认快(秒级)、能耗低; 缺点:去中心化程度较低(超级节点权力集中)、可能存在超级节点合谋风险。
两种共识PBFT和Raft对比: 联盟链拜占庭共识(PBFT)最少4个节点,其中必需存在至少1个中心节点,中心节点一般分布在不同导致组织中,组织可以不包含中心节点,一般来说组织至少包含1个节点。 另外Raft共识,只需要超过半数节点同意,最少3节点即可。 Raf只防“掉线”,不防“撒谎”;参与方彼此信任,比如同一家公司内部多节点 拜占庭共识既防掉线,又防撒谎、作恶;机构联盟链,互相不完全信任