网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

Hyperledger中的Sawtooth PBFT究竟是什么?

更新时间:2026年03月27日   作者:spoto   标签(Tag):

在 Hyperledger Sawtooth 中,PBFT机制能够确保所有交易都被正确处理,同时保证系统的可靠性。即使网络中的某些节点或计算机出现故障或行为异常,系统仍然能够正常运行。因此,Sawtooth PBFT是一种非常适合构建可靠且稳定的区块链应用的解决方案。本文将对 Sawtooth PBFT进行详细的讨论。

目录

  • Hyperledger Sawtooth究竟是什么?
  • 什么是PBFT呢?
  • 锯齿形PBFT共识机制
  • 与其他共识机制的比较
  • 锯齿形PBFT的核心组成部分
  • 锯齿形PBFT的网络概述
  • 锯齿形PBFT中的消息类型
  • 锯齿型PBFT在实际应用中的表现
  • 锯齿形PBFT的益处
  • 锯齿形PBFT的局限性
  • 结论
  • 关于 Hyperledger 中的“锯齿形 PBFT”是什么的常见问题解答。

Hyperledger Sawtooth究竟是什么?

Hyperledger Sawtooth这是一个开源的区块链平台,旨在用于构建和运行分布式账本。它属于Hyperledger项目的一部分,而Hyperledger是由Linux基金会发起的一项合作项目,其目的就是推动跨行业的区块链技术发展。

  1. 模块化:Sawtooth的设计具有高度模块化特性,这使得开发者可以根据自身需求来定制各种组件。
  2. 共识机制:Sawtooth支持多种共识算法,其中包括工作量证明(Proof of Work, PoW)等。实用拜占庭容错机制(Practical Byzantine Fault Tolerance,简称PBFT)这种机制为网络中的交易验证和确认方式提供了灵活性。
  3. 并行事务执行:Sawtooth能够并行处理多个交易,从而提升效率和可扩展性。
  4. 动态共识:这种方式使得网络的共识算法可以进行更改,而不会影响现有的运行状况。因此,随着网络需求的变化,网络能够保持灵活性。

什么是PBFT呢?

实用拜占庭容错算法(Practical Byzantine Fault Tolerance,简称PBFT)是一种……共识算法其目的是确保分布式网络的可靠性和准确性,即使其中的某些参与者存在恶意行为或无法正常运行时也能保持系统的稳定性。

  1. 容错性:PBFT能够应对多达三分之一的节点出现故障或存在恶意行为的情况,同时不会影响到共识过程的完整性。因此,它在对抗性环境中具有很好的鲁棒性。
  2. 一致性:这确保了网络中所有诚实的节点都同意相同的交易顺序,从而让整个账本在所有节点上保持一致性。
  3. 高吞吐量:与一些其他共识算法相比,PBFT能够处理大量的交易,并且能够更快地达成共识。

锯齿形PBFT共识机制

Sawtooth PBFT共识机制是一种针对Hyperledger Sawtooth这一模块化区块链框架而设计的Practical Byzantine Fault Tolerance(PBFT)算法的实现方式。它确保了即使部分节点存在故障或恶意行为,网络仍能就区块链的状态达成一致。这种共识算法有助于维护区块链的完整性和可靠性,使网络能够在出现错误或攻击时依然能够正常运作。

  1. 容错性:Sawtooth PBFT能够容忍多达三分之一的节点存在故障或具有恶意行为,同时仍然能够实现共识。
  2. 高吞吐量:Sawtooth PBFT的设计目的是能够高效地处理大量交易。
  3. 低延迟:它提供了快速的最终确认机制,这意味着一旦达成共识,交易就会立即得到确认。

与其他共识机制的比较

共识机制

描述/说明

优势/长处

限制/约束

锯齿形PBFT

工作量证明(Proof of Work, PoW)

权益证明(Proof of Stake, PoS)

委托式权益证明(DPoS)

授权证明(PoA)

时间流逝的证明(Proof of Elapsed Time)

筏子

空间证明(PoSpace)

Hyperledger Sawtooth中采用了实用拜占庭容错机制。节点们通过一系列的消息交换来实现共识。

  • 具有极高的容错能力(最多有1/3的节点可能出现故障)。
  • 具有很强的一致性,且结果可以立即得到确认。
  • 在拥有大量节点的情况下,会出现可扩展性方面的问题。
  • 视图的更新延迟更高。

节点通过解决复杂的加密难题来验证交易,并创建新的区块。

  • 具有高度的安全性,并且能够抵抗各种攻击。
  • 经过充分测试且被广泛使用的技术/系统(例如:比特币)。
  • 高能耗以及对环境的影响。
  • 交易吞吐量较低,可扩展性也较差。

节点们根据其在网络中的加密货币中所占的份额来被选中,这些节点负责验证交易并创建区块。

  • 与PoW相比,其能耗更低。
  • 潜在的交易吞吐量会更高。
  • 如果主要利益相关者占据主导地位,那么可能会导致权力过于集中。
  • 安全假设取决于利益相关者的分配情况。

这是一种PoS的变体,其中利益相关者会选出一定数量的代表来验证交易并生成区块。

  • 更高的可扩展性和事务处理能力。
  • 能源消耗更低。
  • 存在集中化的可能性,同时也会减少分散化的程度。
  • 与会代表可能会受到串通行为的威胁。

共识是通过那些被信任的权威机构来达成的,这些机构负责验证并创建新的区块。

  • 速度快且效率高,延迟也很低。
  • 适用于受许可限制的网络环境。
  • 依赖于少数几个值得信赖的权威机构。
  • 仅适用于那些有已知参与者的许可型网络。

在可信执行环境(TEE)中,节点会根据其等待时间被选中来创建区块。

  • 与PoW相比,其能效更高。
  • 具有可扩展性,同时延迟也较低。
  • 需要依赖硬件来实现(即需要使用可信执行环境)。
  • 不适合用于公共、无需许可的网络环境。

这是一种用于管理复制日志的共识算法,通常用于分布式系统中。

  • 易于理解和实施。
  • 适用于较小的网络环境。
  • 不具备拜占庭式容错能力。
  • 仅适用于经过许可的环境。

节点通过展示加密数据的存储情况来证明它们已经为网络分配了足够的空间。

  • 与PoW相比,其能效更高。
  • 适用于需要大容量存储能力的网络环境。
  • 与PoW/PoS相比,其应用范围较为有限,且尚未得到充分验证。
  • 需要大量的磁盘空间来存储数据。

锯齿形PBFT的核心组成部分

以下是Sawtooth PBFT的核心组成部分概述:

  1. 验证者:参与共识过程的节点,它们负责提出、验证和确认交易。
  2. 主要负责人/领导者:它是一个被指定为负责提出新交易块的节点。该节点会根据当前的视图来选举出负责人,其职责就是启动新区块的共识过程。
  3. 共识阶段:达成共识的过程分为三个阶段:
    1. 提前准备:领导者节点会提出一个新的区块,并将其广播给其他验证者。
    2. 准备:验证者会确认该区块的有效性,并宣布他们的同意意见。
    3. 承诺/保证一旦大多数验证者达成一致意见,该区块就会被添加到区块链中。
  4. 查看更改内容:Sawtooth PBFT能够在当前领导者出现故障或无法胜任其职责时,自动更换新的领导者。这样,就能确保有一个新的领导者被选出来继续完成共识过程。
  5. 事务处理:交易是按照验证者们达成共识的结果来排序和执行的。
  6. 沟通:节点之间交换消息(包括预准备、准备和提交阶段),以达成共识并维护网络的可靠性。
  7. 国家管理:Sawtooth PBFT负责维护和更新区块链账本,以确保所有节点之间的数据一致性。

锯齿形PBFT的网络概述

容错性

在实用的拜占庭容错网络结构中,各个节点被依次编号为0到n-1,其中n表示网络中节点的总数。该网络只能容忍一定数量“故障”的节点,这个数量被称为常数f,其值等于网络中所有节点总数的三分之一。这意味着,为了使算法能够正常运作,网络中最多只有三分之一的节点可能出现故障或处于无序状态。

f = (n – 1) / 3

在这里,

n =网络中节点的总数。
f =有缺陷的节点的最大数量。

2. 查看更改内容

这意味着需要选择一个新的主节点。在网络运行过程中,各个节点会经历一系列“视图”阶段,每个视图阶段都对应着某个节点作为网络主节点的时期。通过这种方式,每个节点都会轮流担任主节点的角色,这一过程会持续进行下去,从第一个节点开始。

例如:

在一个由四个节点组成的网络中,

节点0:在视图中,处于主要位置的是第0个。
节点1:在视图中,它是主要的,以此类推。

当网络达到第4个视图时,网络会“重新循环”,这样节点0就会再次成为主节点。

PBFT算法根据每个视图的编号以及节点的排列顺序来确定每个视图的主节点。其计算公式如下:

p = v mod n

Sawtooth PBFT会在一定时间间隔内更换主节点,或者当次级节点判断当前的主节点出现故障时,也会进行更换。

3. 序列号

在Sawtooth PBFT中,序列号相当于区块的编号。例如,某个节点的序列号为5,这意味着该节点正在对链中的第5个区块进行共识处理。

4. 信息存储

网络中的每个节点都保存着以下信息:

  • 网络中的节点列表。
  • 当前的视图编号。
  • 当前的序列号。
  • 当前该连锁企业的负责人。
  • 它接收到的块的日志记录。
  • 它接收到的消息的日志记录。
  • 在正常运行模式下,指的是该节点当前所处的算法步骤。

5. 网络配置

Sawtooth PBFT通过链上配置来设置网络结构。这些配置包括:列出网络中的每个节点;设定视图更新间隔;以及指定超时时间、区块发布频率、消息日志大小等参数。

锯齿形PBFT中的消息类型

以下是不同类型的Sawtooth PBFT消息:

消息类型描述/说明

在PBFT过程中所扮演的角色

提前准备/预先安排这是来自提出新区块的负责人的消息。该消息中包含了该新区块的详细信息以及一个唯一的序列号。

开始新区块的共识过程。

准备/安排来自节点的消息表明,它们已经收到了“Pre-Prepare”消息,并且同意所提议的区块内容。

表示对该提案的同意。

承诺/保证来自各个节点的消息表明,他们已经同意将这一区块添加到账本中。

在收到足够的“Prepare”消息后,最终完成该块的锁定操作。

查看/更改这是一种用于选举新领导人的方式,当现任领导人存在缺陷或无法有效履行职责时,就可以使用这种方式来选出新的领导人。该消息包含了关于新领导人的信息以及当前的投票数。

有助于实现领导人的选举过程,同时能够在出现故障时及时发现并解决问题。

检查点

这是一条可选的消息。这条消息用于定期保存账本的状态,从而提供恢复点。

支持数据恢复以及容错功能。

状态/状况

这是一种用于交换关于节点状态或共识过程当前阶段的信息的消息。

在节点之间传递状态更新信息。

锯齿形PBFT在实际应用中的表现

以下是锯齿形PBFT的一些应用示例:

  1. 区块链平台:Sawtooth PBFT被用于像Hyperledger Sawtooth这样的区块链平台上,以确保交易的安全性和可靠性。作为一款模块化区块链框架,Hyperledger Sawtooth利用PBFT技术来为许可型区块链网络提供高水平的安全性和性能保障。
  2. 数字身份管理:基于区块链的数字身份解决方案能够利用PBFT的共识机制来安全地管理和验证身份。通过使用Sawtooth PBFT,这些系统可以确保所有节点都同意身份相关的声明和更新,从而防止欺诈和未经授权的访问行为。
  3. 供应链跟踪:在供应链管理中,对货物的准确跟踪与验证至关重要。Sawtooth PBFT可以用来创建不可更改的交易记录以及供应链中的各种变化记录,从而确保所有参与者都能获得一致的数据视图。
  4. 金融服务:在金融服务领域,包括支付处理和证券交易等方面,Sawtooth PBFT能够提供一种可靠且安全的方式来达成交易共识。这有助于提高交易的透明度,同时降低欺诈风险。
  5. 健康记录管理:在管理电子健康记录时,采用类似Sawtooth PBFT这种共识机制可以确保对病人记录的更新和修改得到一致同意,同时这些更改也能被准确记录下来。这样就能提升数据的完整性和安全性。
  6. 治理与投票制度:在去中心化的治理和投票系统中,Sawtooth PBFT可以被用来安全地统计投票结果,并以透明的方式做出决策。这种技术特别适用于组织层面的决策或社区投票场景。

锯齿形PBFT的益处

Sawtooth PBFT的一些主要优点包括:

  1. 高容错性:Sawtooth PBFT能够容忍多达三分之一的故障或恶意节点。这样,即使部分节点存在缺陷或行为不端,系统仍然能够达成共识并保持其完整性。
  2. 强一致性:PBFT提供了强大的一致性保证,确保所有诚实的节点都同意账本中的相同状态。这样就能避免区块链中出现的冲突现象,从而确保账本状态的统一性。
  3. 防止重复支出:共识机制有助于防止双重支付攻击,因为它确保所有交易在被确认之前都得到大多数节点的同意。
  4. 可自定义:Sawtooth PBFT可以集成到Hyperledger Sawtooth框架中。该框架具有模块化特性,能够支持多种事务处理机制以及其他共识算法。这种灵活性使得可以根据具体的应用场景和需求进行定制化的调整。
  5. 企业应用场景:Sawtooth PBFT是一种专为企业环境设计的分布式共识算法。在这种环境中,参与者的身份是已知的,而且他们之间存在着信任关系。因此,该算法非常适合用于供应链管理、金融服务以及数字身份管理等场景。

锯齿形PBFT的局限性

虽然Sawtooth PBFT在提供实用拜占庭容错性方面具有许多优势,但它也存在一些局限性与缺点。Sawtooth PBFT的主要缺点包括:

  1. 资源需求较高:PBFT是一种资源消耗较大的算法,需要大量的计算能力、内存以及网络带宽。因此,在某些资源有限的环境中,实现该算法会变得更加困难。
  2. 可扩展性有限:PBFT的可扩展性不如其他一些共识算法,比如工作量证明(Proof of Work, PoW)或权益证明(Proof of Stake, PoS)。这意味着,它可能不适合那些拥有大量节点的大型分布式账本系统。
  3. 中央集权:在PBFT系统中,只有一个主节点负责接收客户端请求并协调共识过程的进行。这种权力集中式的设计使得系统容易受到攻击和恶意行为的威胁。
  4. 缓慢的视角变化:如果主节点发生故障,网络中的其他节点就必须经历一个视图变更的过程,以选出新的主节点。这个过程可能需要一些时间,因此可能会导致系统运行出现延迟或中断。
  5. 仅限于许可型网络使用。PBFT假设各个节点都是已知且可以被信任的,因此这种算法更适合那些需要预先确定参与者的网络场景。而对于那些不需要预先确定参与者的网络来说,这种算法则不太适用,因为在这些网络中,节点可以自由加入或离开,而且无法确保节点的可靠性。
  6. 调试与维护:PBFT的复杂性使得系统的调试和维护变得相当困难,尤其是在处理网络分区或其他问题时。

结论

综上所述,Sawtooth PBFT是一种用于Hyperledger Sawtooth区块链框架中的共识算法。 这有助于网络中的各个节点就交易的顺序达成一致,从而确保数据的统一性。即使有一些节点存在故障或具有恶意行为,这种机制仍然能够发挥作用。 PBFT的工作方式是,由指定的领导者提出新的交易提议,然后其他节点进行投票以确认这些提议。 在那些节点被明确识别且受到信任的许可型网络中,这种方法尤其有用。 虽然 PBFT 能够提供强大的一致性和容错能力,但在更大的网络中,其可扩展性和性能方面仍然存在一些挑战。

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料