blockchain - 非容错区 block 链网络有什么好处

标签 blockchain hyperledger fault-tolerance consensus hyperledger-sawtooth

我正在了解不同的基于 Hyperledger 的区 block 链框架,目前我正在阅读有关 Sawtooth 的内容,尽管这个问题与 Sawtooth 并不特别相关。

鉴于 PoET 是与任何算法一样好的共识算法,我无法理解的是拥有不具有容错能力的区 block 链网络有什么好处。

不仅对于金融操作,而且对于任何有值(value)的东西,即使没有针对性的攻击,如果我们有一个无法正常工作的节点,并且该节点“中了彩票”并且是插入下一个节点的节点阻止,阻止系统继续错误状态的机制(在此之前或之后)是什么?

如果确实不容错正是这个意思,那么可能会出现错误行为并且不会被检测到,那么使用这样的系统的目的是什么,即使它是快速且可扩展的依此类推,如果最后很有可能得到不正确的数据?

我并不是想暗示这些网络毫无用处,相反,我试图了解区 block 链背后的想法以及其中的不同变体,因为我确信有一个很好的网络锯齿存在的原因我想找出我的逻辑失败的地方。

最佳答案

问题总体上讨论了容错。然而,问题中的描述是以谈论拜占庭容错的方式为导向的。

概括地说,我们可以对拜占庭容错崩溃容错进行分类。拜占庭行为是由于节点而出现的意外情况,节点产生的不可预测的结果,它可能是有意的(来自节点的恶意行为)或无意的(机器的内存损坏/硬件问题)。崩溃容错是系统的高可用性,尽管网络中可能会出现随机的节点故障。

人们普遍存在一种误解,认为区 block 链系统应该始终拜占庭容错。区 block 链系统可以有多种用例。因此,选择通过区 block 链实现的目标是特定于用例的。

例如,在大多数公共(public)网络中,存在在网络中创建区 block 的激励,但参与者之间没有建立信任或没有建立信任的方法。可以选择提供拜占庭容错的共识算法。

区 block 链的另一个用例是其不变性,即当数据/状态添加到区 block 链时,修改它在计算上变得非常困难。在私有(private)区 block 链联盟的情况下,参与者可以选择根据请求通过其他方式向其他节点证明自己的身份,并且他们可能会对不变性属性感兴趣。谁赢得选举或谁创建区 block 可能并不重要。举个例子,在 Hyperledger Sawtooth 以 Raft 作为共识引擎的情况下,领导者总是有机会创建一个区 block 。只要大多数 (50%+1) 节点处于事件状态,Raft 就会在网络中提供崩溃容错

Hyperledger Sawtooth PoET 在 SGX 上运行时是拜占庭容错,并为所有节点提供公平的随机机会来构建区 block 。如果 PoET 在模拟器模式下运行,则它仅提供后一种功能。对拜占庭行为的保护来自于英特尔 SGX 等可信执行环境 (TEE)。

注意:区 block 链系统的设计使参与者有机会验证获胜节点创建的区 block 。他们仅在验证后才将 block 添加到分类帐中。在联盟的情况下,如果节点试图操纵,就会被捕获,并且因为可以有其他方法来识别谁是参与者,所以可以捕获拜占庭行为。

区 block 链是一种分布式设计解决方案,凭借其设计,它至少为整个系统提供了崩溃容错。由于相同的数据副本是跨节点(至少超过一个节点)复制的,因此即使网络中的一两个节点出现故障,数据也不会丢失。高可用性得到保证。

我希望这些要点可以帮助您继续探索。

关于blockchain - 非容错区 block 链网络有什么好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57322002/

相关文章:

hyperledger - 许可的私有(private)区 block 链与中心化系统有何不同?

用于分布式计算的 Ruby 库?

java - 通过副本 tcp 套接字发送 Java 对象

python - Hyperledger Indy World 演示项目构建错误

javascript - 如何解决错误 "Invalid type for argument in function call. Invalid implicit conversion from address to address payable requested"

javascript - Blockcypher 错误非规范签名 : wrong length marker

javascript - BigchainDB 支持的文件

在从 Hyperledger Composer v0.18.0 到 v0.19.0 的查询中使用 ORDER BY 的 CouchDB 索引错误

java - 缓解 Hadoop 的跟腱问题

blockchain - 我们是否需要在许可的区 block 链网络中支持 PBFT 算法?