为了构建一个在不稳定环境中实际上更有利的系统,系统必须至少允许节点脱机。它不能假设所有节点都是完全诚实的。因此,通过创建被称为“对手”的恶意行为者,最早应该假定哪种类型的安全漏洞协议能够容忍。对手的类型对对手进行分类的第一种方法是基于对手所能采取的最有力的行动。这类最简单的对手只是会永久离线的节点。这种节点的协议偏离行为被称为崩溃故障。当互联网连接中出现任何形式的中断或终止时,节点就会脱机。期望全球多个节点在互联网上一直在线是不切实际的,因为任何断电都可能导致节点离线。如果互联网上的数据包被丢弃或延迟发送,节点也可能在几秒钟内失去同步。互联网本身还不够安全,只能以“尽我所能”的方式提供数据包。因此,期望所有的信息都能及时交换,所有节点都保持在线状态是不合理的。因此,容错协议在开发实际工作的共识算法方面发挥了重要作用。下一个迭代的协议处理可能是窃听用户之间发送消息的对手。这些对手可能会通过阅读不打算与任何人分享的信息来侵犯通信各方的隐私。这些对手被称为被动对手。这种类型的对手的目标是在监听了多轮协议后冒充诚实的参与者。这些对手对那些本应传输机密信息的协议构成了威胁。这些敌人也是一种威胁,因为少数不诚实的人能够影响大多数诚实人所同意的价值,因为少数人可以模仿其他诚实的人。这些类型的对手在20世纪70年代和80年代被研究过。加密货币和其公钥基础设施是用于在被动对抗模型中保持隐私、数据完整性和安全性的技术。很自然地,下一步是用协议来处理那些可以利用他们收集的信息来任意行动的对手。这可能包括发送错误或冲突的消息。这些对手被称为拜占庭或活跃的对手。拜占庭这个词来源于莱斯利·兰波特1982年写的一篇里程碑式的论文,叫做“拜占庭将军问题”。这篇论文描述了围绕一个城市的拜占庭军队面临的共识问题,他们试图就是否应该进攻或撤退达成一致。当他们试图达成协议时,他们面临着信息被删除、复制和修改的问题。不诚实的将军们的目的是为了确保军队在战争中败下阵来,他们使一部分进攻,另一部分撤退,或者干脆不采取行动。尽管存在所有这些挑战,但所有诚实将军的目标都是以一种共同的方式行事。
转载于:https://my.oschina.net/u/4027067/blog/2885641