什么是委托拜占庭容错(dBFT)?

 2023-09-02 15:16:14发布 2023-09-03 12:26:05更新

委托拜占庭容错(Delegated Byzantine Fault Tolerance,dBFT),是一种在NEO区块链内部实现的保证容错的共识算法,主要目的在于解决拜占庭将军问题。

拜占庭将军问题由来已久,其核心描述的就是在有可能存在叛徒的军队中,依然要保证一致的进攻或撤退行为。在现实生活中,每当我们需要对投票的正确性和一致性做出判定的时候,这个问题就会出现。

同样,在区块链网络当中,如果存在可能造成网络瘫痪或者不能正常工作的节点时,系统就很难保证达成正确的共识,从而导致故障。

委托拜占庭容错(dBFT)共识机制是众多为了解决这一问题中的一种方案。在这个机制当中,存在两个参与者,一个是专业记账的“记账节点”,一个是系统当中的普通用户。

普通用户基于持有权益的比例来投票决定记账节点,当需要通过一项共识时,在这些记账节点中随机推选出一名发言人拟定方案,然后由其他记账节点根据拜占庭容错算法,即少数服从多数的原则进行表态:

如果超过66%的节点表示同意发言人方案,则共识达成;否则,重新推选发言人,重复投票过程。

所以说,委托拜占庭容错(dBFT)机制实际使用了一种迭代共识的方法来保证系统达成一致决定。但这种机制的缺点在于,当系统中有超过三分之一的记账节点停止工作时,整个区块链网络将无法提供正常的服务;当超过三分之一的节点联合作恶时,区块链可能发生分叉。

委托拜占庭容错和拜占庭容错(Byzantine Fault Tolerance,BFT)的区别

他们是两种不同的共识机制,它们在处理拜占庭将军问题时采取了不同的方法。

  1. 参与者结构:在拜占庭容错中,所有节点都参与共识过程,并通过相互之间的通信和协商来达成一致。而在委托拜占庭容错中,只有特定的委托节点参与共识,其他节点通过对委托节点的投票来达成共识。
  2. 效率和可扩展性:由于只有委托节点参与共识,委托拜占庭容错可以更高效地处理交易验证和区块打包,减少了整个网络的工作量和通信开销,提高了系统的吞吐量和性能。这也使得委托拜占庭容错更易于水平扩展。
  3. 安全性和去中心化:拜占庭容错依赖所有节点的参与和共识,因此具有更高的去中心化和安全性。每个节点都有平等的权力和责任来验证交易和形成区块链。而在委托拜占庭容错中,委托节点的选举和监督变得更为重要,如果大部分委托节点受到攻击或出现故障,系统的安全性和可用性可能会受到威胁。
  4. 可信度和信任模型:在拜占庭容错中,节点需要通过相互之间的通信和协商来建立信任关系并达成共识。而在委托拜占庭容错中,节点可以通过对委托节点的投票来表达信任,并依赖委托节点来处理交易验证和区块打包。

推荐阅读