PBFT算法研究
真分布式与伪分布式
目前的数据库号称分布式存储,这种分布式存储与区块链有着本质上的区别,这种分布式数据库服务器集群的分布式是为了实现服务的恢复与备份,数据的冗余,然而他们仍然属于某一个企业或机构,所以还是中心化管理的数据库集群。
区块链中的各个节点相当于分布式系统中的数据库,不一样的点在于,没有一个管理员去维持各个数据库之间的数据同步,同时并没有增删改查中的删改查功能。所以是不可篡改。(不是指不可更改,而是指不能无记录的更改)。
拜占庭将军问题(节点作恶)
古罗马首都拜占庭帝国地域辽阔,每个军队的将军达成共识才能决定在战争中的行动,但将军中可能存在叛徒,这些叛徒会干扰忠诚将军的行动从而打乱作战计划。
可以描述为:在已知分布式系统中出现拜占庭节点(主动作恶、硬件错误、网络拥塞的节点等)的情况下,系统各节点间如何达成有效地一致性问题。
先决条件
1、节点之间消息传递不可篡改,也就是说必须用密码学保证消息是传递安全的,消息传递可被篡改的安全问题是不可被解决的。
2、基于状态机副本复制问题解决,所以假设有F个Faulty,总结点为N个,那么该问题在N≥3F+1的情况下有解。
状态机副本复制:最小的复制组是三个节点。一个错误,我们可以通过和另外两个进行对比获悉。而两个副本是不够的,因为没办法确定谁才是错误的那一个。
反过来说,三复制组可以支持最多一个错误节点发生。如果超过一个副本错误,三个节点状态和输出都可能不一样&