区块链科普课堂八:拜占庭问题与比特币



  • 拜占庭将军问题是区块链领域的常见术语,也是密码学的核心问题。

    什么是拜占庭将军问题
    拜占庭问题源于1982年提出的虚拟模型,用来解释一致性问题。拜占庭作为东罗马帝国的首都,地域辽阔,在首都周边有众多将军负责城防,将军之间通过信使来传递消息,达成某些一致的决定。但由于将军中存在叛徒,叛徒会想尽一切办法干扰一致性的达成,甚至是达成叛徒想要的共识从而实现攻击。

    其本质内容是在存在消息丢失的不可靠信道上,试图通过消息传递的方式达到一致性是不可能的。

    拜占庭容错算法
    比特币网络增加了信息发送的成本,并规定,在一段时间内,只有一个节点可以传播信息。这个成本指的就是工作量证明——POW(Proof Of Work)机制,所谓的信息发送,也就是我们所说的挖出比特币后在区块上进行的广播。 在这个机制下,只有第一个完成证明(挖出比特币)的节点才能广播区块。而这个方案的具体实施,就是根据的拜占庭容错算法。拜占庭容错是区块链技术中的一种共识算法。

    非对称加密技术
    比特币网络可以将节点发送的信息进行加密,即使用非对称加密技术保护节点发出的信息。这种技术有三个特点:

    消息传送的私密性
    能够确认身份
    签名不可伪造、篡改
    由于区块链网络是去中心化的,信息在每个节点上是共享的,因此,降低了由于信息不透明导致的向不同节点传递不同信息的可能性。另外,非对称加密算法的加密和解密使用不同的两个密钥:"公开密钥"(公钥)和"私有密钥"(私钥),这解决了节点信息被篡改,泄露,伪造的问题。

    比特币与拜占庭
    比特币网络上拥有超过30,000个节点,攻击这些节点进行作恶所需付出的算力和成本是非常高的。所以,即使系统中存在恶意的节点,但是只要大多数节点是好的,就完全有可能实现去中心化的共识(Consensus)。

    这似乎也解释了为什么挖矿不是资源浪费——毕竟建立信任的成本不是0。

    可以说,比特币提供了一个拜占庭将军问题解决方案,而这个方案,可以推广到任何核心问题是分布式网络上缺乏信任的领域。

    案例理解拜占庭问题
    假设将军总数3,叛徒将军数1.

    提案人不是叛徒,提案人发送一个提案,叛徒收到后,回复不同的命令,对于第三个将军就收到两个相反的消息,也无法判断出谁是叛徒,系统无法达成一致。

    提案人是叛徒,发送两个相反的提案给另外两个,另外两个收到两个相反的消息,无法判断究竟谁是叛徒,系统无法达成一致。

    原文出自: https://www.lianshijie.com/news/246257


Log in to reply