拜占庭攻击(也称为双拜占庭(Byzantine)攻击)是指侵入者(节点)攻击分布式系统(包括许多节点)的网络攻击的一种情况。这种攻击会发送误导性信息,以干扰正常运行,从而破坏整个系统的正常功能。
拜占庭攻击是一种基于密码学的攻击方式,主要是由侵入者(节点)发起的恶意验证,以便干扰正确和安全的网络交互。拜占庭攻击是如何发生的?首先,攻击者会控制一个或多个节点,这些节点可以去做一些不应该做的事情,比如出售用户信息或者发布虚假消息。当受害者向这些节点发送消息时,被攻击的节点便会将其发送给其他节点,这会让其他节点的结果产生扭曲、混淆或更糟的结果,从而导致整个系统完全的失控。
防止拜占庭攻击有许多方法,不过最常用的还是增加节点的复杂度,使攻击者难以成功地进行攻击。比如,有些系统采用多数判定机制,这样只有当超过一半的节点(多数)都同意结果时,系统才会最终获得正确的投票结果。同时,可以用双方验证的方式来验证节点的真实性。这种方法就是将收到的信息由发送方和接收方双方来验证,以确保慎重提交数据,避免拜占庭攻击。除此之外,还可以使用证书机制或密钥共享机制,凭借这些工具,系统可以确保节点发出的命令真实可靠,从而避免拜占庭攻击的威胁。
总之,拜占庭攻击是一种常见的攻击类型,它会破坏分布式环境的安全性,引发数据和服务的损坏,因此必须采取有效的技术措施来预防拜占庭攻击并维持网络的安全。
大家要注意了:现在区块链方面的项目太火了,国内外各类传销、资金盘都打着“金融创新”“区块链”的旗号,通过发行所谓“虚拟货币”“虚拟资产”“数字资产”等方式吸收资金,侵害公众合法权益。此类活动并非真正基于区块链技术,而是炒作区块链概念行非法集资、传销、诈骗之实。请大家务必要警惕!还要警惕各类交易所小平台,必须选择全球知名的品牌。
拜占庭将军问题(Byzantine failures),是由莱斯利·兰伯特提出的点对点通信中的基本问题。含义是在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的
拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。由于当时拜占庭罗马帝国国土辽阔,为了达到防御目的,每个军队都分隔很远,将军与将军之间只能靠信差传消息。在战争的时候,拜占庭军队内所有将军和副官必须达成一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定又扰乱整体军队的秩序。在进行共识时,结果并不代表大多数人的意见。这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜占庭问题就此形成
拜占庭将军问题是一个协议问题,拜占庭帝国军队的将军们必须全体一致的决定是否攻击某一支敌军。问题是这些将军在地理上是分隔开来的,并且将军中存在叛徒。叛徒可以任意行动以达到以下目标:欺骗某些将军采取进攻行动;促成一个不是所有将军都同意的决定,如当将军们不希望进攻时促成进攻行动;或者迷惑某些将军,使他们无法做出决定。如果叛徒达到了这些目的之一,则任何攻击行动的结果都是注定要失败的,只有完全达成一致的努力才能获得胜利
拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或断开以及遭到恶意攻击,计算机和网络可能出现不可预料的行为
“拜占庭将军问题”延伸到互联网生活中来,其内涵可概括为:在互联网大背景下,当需要与不熟悉的对方进行价值交换活动时,人们如何才能防止不会被其中的恶意破坏者欺骗、迷惑从而作出错误的决策。进一步将“拜占庭将军问题”延伸到技术领域中来,其内涵可概括为:在缺少可信任的中央节点和可信任的通道的情况下,分布在网络中的各个节点应如何达成共识
区块链系统计算的输入数据是指节点发送的当前时间点的整个总账。当前计算机的算力使其可以实时计算出单个哈希值,但是区块链系统只接受前13个字符是0的哈希值结果作为“工作量证明”。而前13个字符是0的哈希值是非常罕见的,需要整个网络花费10分钟的时间才在数以亿计的数据中找到一个。在一个有效的哈希值被计算出来之前,网络中已经生产了无数个无效值,这就是降低信息传递速率并使得整个系统成功运行的“工作量证明” 。
在拜占庭将军问题中,第一个广播信息的将军就是第一个发现有效哈希值的计算机,只要其他将军接收到并验证通过了这个有效哈希值和附着在上面的信息,他们就只能使用新的信息更新他们的总账复制,然后重新计算哈希值。下一个计算出有效哈希值的将军就可以将自己再次更新的信息附着在有效哈希值上广播给大家。然后哈希计算竞赛从一个新的开始点重新开始。由于网络信息的持续同步,所有网络上的计算机都使用着同一版本的总账 。
比特币区块链系统找到有效哈希值的时间间隔为10分钟,这是算法设置好的。算法难度每隔两周调整一次就是为了保证这10分钟的间隔,不能多也不能少。每隔10分钟,总账的信息就会在区块链更新并在全网同步一次。因此分散的交易记录是在所有网络上的计算机之间进行对账和同步的 。
当个人用户在区块链系统发起一笔交易的时候,他们会使用私钥和公钥为这笔交易签名,而内嵌在比特币系统的标准公钥则承担了加密工具的角色,对应在拜占庭将军问题中,加密工具就是用于签名和验证消息的印章 。
因此,哈希算法对信息传递速率的限制加上加密工具使得区块链构成了一个无须信任的数据交互系统。在区块链上,一系列的交易、时间约定、域名记录、政治投票系统或者任何其他需要建立分布式协议的地方,参与者都可以达成一致 。