区块链启蒙基础 › 模块一 › 第2课

第2课:集中式还是分布式——区块链在系统架构中的位置

前面已经学会把软件拆成应用层与实现层、功能性与非功能性。接下来要把这些格子放回整张系统蓝图里,看清软件组件怎样组织、集中式与分布式各有什么得失,以及区块链究竟站在什么位置。

回顾上一课:用四个格子看懂系统


1. 核心问题

同样的用户功能,为什么可以由完全不同的底层系统来完成?一个系统究竟怎样组织组件、怎样连接组件,才叫集中式或分布式?区块链又为什么会落在“实现层”的“非功能性”这一边?


2. 生活化比喻与通俗案例

两辆外观相同的车

买一辆车时,外形可以相同,发动机却可以选择柴油、汽油或电动。看起来一样的两辆车,开起来可能完全不同。

发动机的选择还会继续影响很多结果:

  • 动力强弱不同,驾驶感受不同。
  • 价格、日常运行成本不同。
  • 燃料种类、排气系统和刹车尺寸也可能不同。

这件事背后的思路叫模块化(Modularization):把系统的一部分替换掉,整体仍然可以工作。它其实就是把上一层课学到的“分层”用在一辆车上。把这个思路放到软件里,用户看到的功能就像车身外观;真正让功能运转的底层组织方式,则像发动机。

对应到软件系统:

  • 用户能直接使用的功能,对应应用层(Application Layer)。
  • 让功能真的发生的技术安排,对应实现层(Implementation Layer)。
  • 组件怎样组织和连接,对应软件架构(Software Architecture)。
  • 架构选择不改变用户想要什么功能,却会改变成本、可靠性、复杂度和完整性维护方式。

因此,区块链(Blockchain)不是一种新的“界面功能”。它更像实现层里的一种工具,专门帮助分布式架构完成一项必须承担的非功能性任务——完整性。


3. 核心原理解析

3.1 同一个支付系统,功能与实现可以分开看

假设要做一个支付系统。用户最关心的是这些功能:

  • 存款
  • 取款
  • 转账
  • 查看账户余额

这些都属于应用层的功能性切面(Functional Aspect)。

应用层也会有非功能性(Non-Functional Aspect)要求,例如界面漂亮、操作简单、转账速度快、参与者多。实现层同样有非功能性要求,例如全天可用、防欺诈、维持完整性(Integrity)、保护用户隐私。

但实现层中“由什么技术完成这些功能”这一格,可以暂时留空。这个空位不是漏掉了,而是一个需要作出的选择:

用什么“引擎”来运行这个支付系统?

这个选择首先落在软件架构上。

3.2 什么是软件架构

软件架构(Software Architecture)描述系统的各个组成部分怎样组织,以及彼此怎样连接。

软件系统的组成部分通常叫组件(Component)。组件可以是一个软件模块、一台计算机,也可以是承担特定职责的其他单元。架构图里通常把组件画成圆圈,也常直接叫节点(Node)。

架构讨论的不是“按钮长什么样”,而是“系统的任务由哪些部分承担,它们之间怎样联系”。

3.3 集中式架构

集中式架构(Centralized Architecture)围绕一个中心组件组织系统。

  • 外围组件都连接到中心组件。
  • 外围组件通常不直接彼此连接。
  • 协调和控制集中在中心。

这种结构容易理解,也容易让人知道“事情由谁统管”。代价是中心成为关键位置:中心一旦失效,整个系统可能随之停摆。

3.4 分布式架构

所谓分布式架构(Distributed Architecture),可以理解为:一组彼此独立的计算机,通过某种通信方式协同完成同一个目标;整个过程没有一个总揽控制与协调的中心。

这里的“分布式”不是要求每两个节点之间都直连。

更准确的关系是:

  • 不要求每个节点与所有其他节点直接相连。
  • 任意两个节点至少要能通过一条路径间接通信。
  • 没有任何一个中心负责统一协调所有成员。

所以,分布式描述的是系统的组织和控制方式,不是简单地“计算机数量很多”。

3.5 分布式的四个优点

更强的计算能力

第一个优点叫更强的计算能力(Higher Computing Power)。分布式系统的总算力,就是把所有联网计算机的计算能力加在一起。已经证实:由多台算力不高的普通计算机组成的系统,总算力可以超过一台孤立摆放的超级计算机。

更低的综合成本

第二个优点叫更低的综合成本(Cost Reduction)。过去 20 年,主流计算机、内存、磁盘空间和网络设备的价格大幅下降。分布式系统需要很多台计算机,所以初始投入高于单台普通计算机。但它不是要和一台普通电脑比较,而是要和“提供相当计算能力的超级计算机”比较:建造、维护和运行一套大型超级计算机的成本,仍然比建造、维护和运行一套分布式系统高得多。

另外,替换其中一台普通计算机,通常不会对整个系统造成明显影响。

更高的可靠性

第三个优点叫更高的可靠性(Higher Reliability)。个别机器崩溃时,其他机器仍可继续运行和接手任务。分布式系统没有单一节点造成的全系统故障点,因此整体可靠性可以高于单台计算机。

可以自然增长

第四个优点叫自然增长(Natural Growth)。需要更多计算能力时,可以接入更多计算机,让系统能力一小档一小档地增加。单台计算机在更换为更强型号前,能力基本固定;升级时则会出现一次跳跃。

3.6 分布式的五个代价

分布式不是只有好处。没有中心统一指挥,成员就必须自己协调。五类代价分别是协调开销、通信开销、依赖网络、更高的程序复杂度和安全问题。

协调开销

成员之间要决定谁做什么、先后顺序如何、冲突怎样处理。这些协调工作会占用本该用于真正计算任务的精力和算力,形成协调开销(Coordination Overhead)。

通信开销

协调依赖沟通。计算机之间要发送、接收和处理消息,还要遵守通信协议。这些通信同样消耗资源,形成通信开销(Communication Overhead)。

依赖网络

依赖网络(Dependency on Networks)是指消息需要通过通信介质传输。网络出现延迟、中断或拥塞,会直接影响成员之间的通信与协调。没有网络,就没有分布式系统内部的沟通。

更高的程序复杂度

更高的程序复杂度(Higher Program Complexity)意味着软件开发除了解决业务问题,还必须额外处理协调、通信和网络使用。参与组件越多,这些额外问题通常越需要认真设计。

安全问题

安全问题(Security Issues)来自网络传递:数据在网络中传递,可能被不可信的一方截取或滥用。网络访问限制越少,系统需要面对的安全问题就越大。

3.7 点对点网络

点对点网络(Peer-to-Peer Network)是一类特殊的分布式系统。

其中的计算机叫点对点节点(Peer),也常直接叫节点。每个点对点节点都可以把计算能力、存储空间、数据或网络带宽直接提供给其他成员,同时也可以使用别人提供的资源。

点对点网络有三个关键特征:

  • 没有中心协调点。
  • 各节点在权利和角色上平等。
  • 每个节点既可以是资源提供者,也可以是资源使用者。

文件共享、内容分发和隐私保护都出现过点对点网络应用。它的核心思路是把用户自己的计算机变成系统节点:参与者越多,系统可调用的资源也可能越多。

但“参与者越多,系统越强”并不自动消除协调、通信、安全和程序复杂度这些代价。

3.8 集中与分布的混合形态

集中式和分布式是两个相反的极端。现实系统经常把两者组合起来,形成混合架构。

分布式系统中的中心

表面看,许多组件连成网络;仔细看,所有组件仍然围绕一个中心连接。它看起来分布式,实际却由中心控制,因此本质接近集中式。

中心内部的分布式系统

表面看,外围组件都只连接一个大中心;但中心内部本身又是一个分布式系统。外围组件甚至可能不知道中心内部怎样运行。

这两种混合形态说明:只看一张架构图是否“像网络”,不足以判断真实性质。

3.9 怎样识别分布式系统

拿不准一个系统是否真正分布式时,可以重点找这些位置:唯一的数据库、名称登记表或用户登记表、登录/登出组件,或者能一键停掉整个系统的紧急开关。然后问一个关键问题:

是否存在某个单一节点或组件,一旦停用或失灵,就能让整个系统无法工作?

反过来说:只要找到一个能让全局停摆的组件,就不必再被外观迷惑——这个系统不能算分布式。

这个判断法抓住的是架构本质:分布式不仅看“有很多机器”,更看系统是否真的没有中心控制或协调。

3.10 区块链在全局中的位置

架构选择与应用层功能彼此独立,并不存在必须谁先谁后的顺序。

因此,两个应用层功能完全相同的系统,可以分别使用集中式和分布式架构。架构本身是一种实现手段,不是用户直接购买的应用功能。

两种架构都能提供功能,却会用不同方式处理非功能性要求。可以这样理解它们在完整性上的差别:集中式通常把关键责任交给中心组件,分布式则必须在没有中心的情况下另建一套保证机制。

区块链正是在这里出现:

如果把区块链放回这张图里,它的任务就是:让分布式系统能够建立并维持完整性。

从分层与切面的语言看,区块链属于实现层;它服务的目标是完整性,属于非功能性切面。


4. 图解

集中式与分布式

集中式架构与分布式架构的区别
图 1-2-1 集中式架构与分布式架构的区别
点击查看大图

两种混合架构

分布式系统中的中心与中心内部的分布式系统
图 1-2-2 分布式系统中的中心与中心内部的分布式系统
点击查看大图

同一功能的两种引擎

同一支付系统的两种架构与区块链的位置
图 1-2-3 同一支付系统的两种架构与区块链的位置
点击查看大图

5. 速记要点

  • 架构决定组件怎样组织和连接。 应用层功能相同,不代表实现层架构相同。
  • 集中式围绕中心。 外围节点通常只连中心,中心是关键控制点。
  • 分布式没有中心控制。 独立计算机借助通信协作,不要求节点两两直连。
  • 分布式有四个优点。 算力更强、综合成本更低、可靠性更高、可以自然增长。
  • 分布式有五个代价。 协调开销、通信开销、依赖网络、程序更复杂、安全问题。
  • 区块链在实现层。 它的目的是在分布式系统中实现并维持完整性,属于非功能性工具。

6. 课后检测

一、单选题(1–4)

题目 1

两辆外观相同的车可以装不同发动机。这个比喻最想说明软件的哪一点?

A. 应用层功能相同的系统,可以在实现层采用不同架构 B. 只要界面漂亮,底层怎样实现都无所谓 C. 软件架构会改变用户想要完成的任务 D. 分布式系统一定比集中式系统更漂亮

查看答案

答案:A

解析: 车身外观相同,像应用层功能相同;发动机不同,像实现层采用的架构不同。发动机还会影响价格、成本和运行方式,对应架构对非功能性要求的影响。

  • B 错:应用功能相同,不代表实现层可以随意忽略可靠性和完整性。
  • C 错:架构是实现手段,不会改变用户想要完成的任务。
  • D 错:比喻没有讨论界面美观,也没有证明某一种架构更漂亮。

题目 2

下列关于分布式架构的描述,哪一项最准确?

A. 每两个节点都必须直接连接 B. 多台独立计算机借助通信协作,没有中心控制或协调 C. 只有计算机数量足够多,就一定是分布式 D. 所有数据都必须保存在同一台中心计算机

查看答案

答案:B

解析: 分布式系统由多台独立计算机组成,通过通信介质协作,并且没有中心控制或协调者。

  • A 错:节点不要求两两直连,只需至少存在间接通信路径。
  • C 错:机器数量不是判断分布式的唯一条件,关键是是否存在中心控制。
  • D 错:数据集中在同一个中心,正是集中式架构的典型特征。

题目 3

一个系统存在唯一的认证中心,所有节点都必须得到它许可才能继续工作。按照本课的判断方法,这个系统最准确的判断是:

A. 一定是纯分布式系统 B. 属于分布式系统中的中心 C. 完全没有软件架构 D. 只要节点多,判断方法就失效

查看答案

答案:B

解析: 这个系统虽然可能有大量节点,但唯一的认证中心掌握关键权限。一旦该中心停止工作,整个系统就无法继续运行,因此属于“分布式系统中的中心”。

  • A 错:存在能停掉全局的单点,不符合真正分布式的本质。
  • C 错:任何软件系统都有某种组织结构。
  • D 错:判断方法关注的正是单一控制点,与节点数量多少无关。

题目 4

区块链最准确的定位是:

A. 应用层上一款负责界面设计的 App B. 集中式系统的唯一数据库 C. 分布式系统实现层中用来实现并维持完整性的工具 D. 一种替代全部网络通信协议的硬件

查看答案

答案:C

解析: 区块链不是应用层的用户功能,而是实现层中的技术工具;它要实现并维持的目标是完整性,因此属于非功能性切面。

  • A 错:App 和界面属于应用层。
  • B 错:集中式数据库不代表区块链的定位。
  • D 错:区块链不是网络硬件,也不替代整个通信介质。

二、多选题(5–7)

题目 5

下列哪些属于分布式系统相对于单台计算机的优点?

A. 可以汇集多台计算机的计算能力 B. 与提供相当能力的超级计算机相比,综合成本更低 C. 个别机器崩溃时,其他机器可以继续工作 D. 可以通过增加计算机逐步扩展能力 E. 完全不会受到网络问题影响

查看答案

答案:A、B、C、D

解析: 四点是分布式系统的四个主要优点:计算能力、综合成本、可靠性和自然增长。

  • A 正确:总算力来自多台计算机的合力,也就是把每台机器的计算能力加在一起。
  • B 正确:与提供相当计算能力的超级计算机相比,分布式方案的综合成本更低。
  • C 正确:个别机器故障时,其他机器可以接手。
  • D 正确:可以通过接入更多计算机逐步扩展。
  • E 错误:分布式系统高度依赖网络,网络问题会直接影响通信与协调。

题目 6

分布式系统需要承担哪些典型代价?

A. 协调开销 B. 通信开销 C. 依赖网络 D. 更高的程序复杂度 E. 安全问题

查看答案

答案:A、B、C、D、E

解析: 这五项都是分布式的典型代价。

  • 没有中心统一指挥,成员需要自己协调。
  • 协调要求通信,通信需要协议并消耗资源。
  • 通信依赖网络,网络故障会影响整个协作。
  • 软件还要额外处理协调、通信和网络使用,复杂度更高。
  • 数据在网络中传递,会引入被截取或滥用的安全风险。

题目 7

关于点对点网络,下列哪些说法正确?

A. 没有中心协调点 B. 节点在权利和角色上平等 C. 节点既可能是资源提供者,也可能是资源使用者 D. 每个节点必须与所有其他节点直接连接 E. 参与节点越多,协调、通信和安全问题就自动消失

查看答案

答案:A、B、C

解析: 点对点网络没有中心协调点,节点权利和角色平等,并且每个节点既提供资源也消费资源。

  • A、B、C 正确,符合点对点网络的基本定义。
  • D 错误:节点不必与所有其他节点直接相连。
  • E 错误:参与规模扩大不会自动消除协调、通信、安全和程序复杂度问题。

三、判断题(8–9)

题目 8

只要两个系统给用户提供的应用层功能相同,它们的软件架构就必须相同。

查看答案

答案:错误

解析: 应用层功能与实现层架构可以分开选择。完全相同的支付、存储或通信功能,可以由集中式系统实现,也可以由分布式系统实现。

真正不能混为一谈的是两点:

  • 用户需要什么功能,属于应用层。
  • 用什么架构让功能运转,属于实现层。

题目 9

一个系统表面看起来像分布式网络,只要存在一个能让整个系统停摆的中心组件,它仍然不是真正的分布式系统。

查看答案

答案:正确

解析: 判断分布式时,不只看节点数量和外观是否像网络,而要找是否存在单一控制点。

如果某个组件一旦停用或失灵就能让整个系统无法工作,那么这个组件就是单点故障,系统本质上仍是集中式或混合式,不是真正的分布式系统。

四、情景分析题(10)

题目 10

一家公司推出文件共享应用:

  • 用户之间可以直接传输文件。
  • 文件存储分散在许多用户的计算机上。
  • 但每次登录、搜索和获取访问权限,都必须先连接公司唯一的认证服务器。
  • 这台认证服务器一旦停机,所有用户都无法继续使用应用。

请判断这个应用是不是真正的分布式系统,并说明你的判断依据。再从协调、通信、网络安全和完整性维护的角度,指出它为什么不能只看“文件分散存储”就下结论。

查看答案

答案:不是真正的分布式系统

判断依据: 文件存储虽然分散在许多用户计算机上,但登录、搜索和访问权限都经过唯一认证服务器。该服务器一旦停机,所有用户都无法继续使用,符合“单一组件能让整个系统停摆”的判断标准,因此它属于“分布式系统中的中心”。

四项代价说明了为什么不能只看文件存储位置:

  1. 协调: 各节点仍然需要由认证服务器决定谁能进入、能做什么,中心承担关键协调和授权工作。
  2. 通信: 文件传输可能发生在用户节点之间,但登录、搜索和权限查询仍依赖与中心服务器通信;网络或中心通信故障会打断整个使用流程。
  3. 网络安全: 文件分散不等于访问安全。中心认证信息的泄露、认证通道被截取,仍可能影响整个系统。
  4. 完整性维护: 文件分散存储后,还要保证不同节点上的文件状态一致、访问规则一致,并防止未授权修改。认证中心本身也可能成为需要额外保护的关键点。

这个例子说明,分布式架构不会自动带来所有优点,也不能因为节点数量多就忽略中心控制、通信成本和安全边界。