文献综述(或调研报告):
在毕设题目的拟定期间阅读了关于区块链中共识算法和其主要依托拜占庭将军问题相关的论文,区块链技术起源于 2008 年由化名为 “中本聪”的学者在密码学邮件组发表的奠基性论文《比特币: 一种点对点电子现金系统》,下文讨论的区块链是指:一种按照时间顺序将数据区块用类似链表的方式组成的数据结构,并以密码学方式保证不可篡改和不可伪造的分布式去中心化账本,能够安全存储简单的、有先后关系的、能在系统内进行验证的数据。
伴随着区块链的发展,区块链出现了很多分类。主流的分类方法将其分为三类:公有链、联盟链和私有链,本质上, 完全私有的区块链是指写权限都集中到一个组织、读权限可完全公开也可限制在任意程度的区块链,而不是完全公开且不受控制的网络和一个由加密经济学(例如,PoW和PoS)保障的状态机。联盟链则是指这种新型的区块链是建立在一个由一些预先选定的金融机构组成的联盟上,其中每个金融机构都有许多分叉机构来收集客户交易(如图1所示)。在这个联盟中,所有的金融机构合作经营和控制该区块链; 但是,读取区块链中数据的权限可以是公开的或被限于指定客户。因此,联盟链创建了一个新的系统,在这个系统中,访问权限受到了更严格的控制,修改甚至读取区块链状态的权限被限制在少数客户端,而区块链提供的多类型的关于真实性和分散化的部分保证仍然得到维护。因此,可以认为联盟链是“部分分散的”。
联盟链共识算法主要是分为两类:一类是非拜占庭容错共识算法,这一类算法是由非恶意行为攻击引发的节点停止工作,代表性的共识算法有Raft等;另一类是拜占庭容错共识算法,这一类算法是由恶意行为攻击引发的节点停止工作,称为拜占庭错误,代表性的共识算法有实用拜占庭容错共识算法PBFT等。《拜占庭将军问题》中问题背景是拜占庭帝国军队有许多分支 , 驻扎在敌人城外。每一分支由各自的将军指挥。将军们只能靠通讯员进行通讯。在观察了敌人以后,忠诚的将军们必须制订一个统一的行动计划以确保行动不会受到军中叛徒的影响。即在缺少可信任的中央节点的情况下, 分布式节点如何达成共识和建立互信。
通过画出三元间通信的情况来分析,若其中有一名叛徒,则不论他是处在通信的发起者还是传递者的角色,另外两人中必有一人会受到两份不同的命令,这里有一个前提,即每个元做出判断都是依据所收到消息中的多数来进行的,所以,此时这一受到两种等量信息的元无法做出正确的判定,即通信系统运行会出现问题,而当一个系统里恶性节点所占比小于1/3时,那些受到的信息中混有恶性节点信息的接点,运用“服从多数”这一规则,就能做出正确的判断。
作者的工作表明,当且仅当超过三分之二的将军是忠诚的,这个问题是可以解决的。可以看出,如果n是将军的总数,t是叛国者的总数,那么只有当n gt; 3t且通信是同步(有界延迟)时,才存在该问题的解。这一结论已被广泛应用于各种场景。中心化的联盟链场景中,非拜占庭容错式共识算法无法抵御恶意行为的攻击, 从而影响了联盟链的安全性。而采用( n-1)/3的弹性拜占庭容错则能避免这种情况的发生。
虽然 PBFT 算法是一种成熟的共识算法,但算法也存在着一些不足。首先是算法效率问题,为了保证异步模式下的安全性,三阶段广播过程需要消耗多项式级的通信成本;其次是算法的可拓展性问题,由于 PBFT 算法三阶段广播过程 均需要2/3n 1个节点同意,在这个过程中,节点之间要通过互相转发消息进行拜占庭容错,并且通信成本将伴随着节点 数目的增多而呈多项式级的升高,高昂的通信成本影响了算法的可拓展性;最后是PBFT 算法中主节点的随机选取过程可能会导致选取的主节点是无效的恶意节点,从而导致重复选举的发生,进而影响算法效率。
之后选定论文《基于联盟链的新型快速签名确认机制》(这里使用的是该文献译名,后文引用的英文文献均采用译名)作为主要研究参照,文章主要介绍了在联盟链应用场景中,如何保证每笔被记录交易的瞬时性和可验证性,作者先指出了传统公有区块链中存在的交易确认时间长和每笔交易所在的块都有被竞争掉的可能的问题。而联盟链的诞生则通过快速的确认避免了主链上分支的产生,和拜占庭共识解决了“及时确认”的问题。且每个联盟内只需要少数几个强运算力节点来进行交易确认,降低了成本。
文章的主要贡献为区块链中的会计周期,和IIS签名方案,分别在第三部分和第四部分进行阐释。通过会计周期能做到对交易数据记账人的选举和同时进行的区块生成。使用拜占庭共识协议达成共识,使用应用与等待冲突检测协议(AW/CD)来实现投票。
而第四部分提出的IIS签名方案则重点解决数据所有者伪造签名,和记账节点否认自己签名的问题。签名方案与联盟链耦合的过程并未被提及,原因是该方案仅作为一种对区块链结构中原有椭圆加密方案的置换。
以上是文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。