首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TRON造知识局 | 区块链与拜占庭将军问题

众所周知,区块链技术可以让用户在无需通过中心化机构的情况下,安全地共享和交换数据。以比特币、TRX为代表的加密货币,可以让人们在去中心化网络上完成支付交易。那么,区块链是如何实现去中心化共识的,它又是如何防止数据被篡改或伪造的呢?为了回答这些疑问,本期TRON造知识局,我们一同来关注区块链与拜占庭将军(Byzantine Generals Problem)问题。

拜占庭将军问题是一个经典的分布式系统中的共识问题,最早由Leslie Lamport等学者于 1982年提出。分布式系统是指由多个节点(计算机或设备)组成的系统,这些节点通过网络连接在一起,共同完成特定任务。那么,如何在存在恶意行为的情况下使得多个节点达成一致决策呢?Leslie Lamport等人用了一则有关拜占庭将军的虚构故事来描述这一过程。

拜占庭是古代东罗马帝国的首都,它曾经是世界上最强大、最富有的城市之一。但是,由于地域广阔,拜占庭经常遭受外敌侵略和内部叛乱。为了保卫边境,拜占庭派出了多支军队,由不同的将军指挥。

这些将军需要通过信使来传递消息,商量战略。不过信使可能会被敌人截获或杀死,消息可能会丢失或延迟。此外,有些将军还可能是叛徒,他们会故意发送错误的消息,或者不遵守约定的行动计划。在没有其他信息或证据的情况下,正直的将军该如何做出正确的决定呢?这就是拜占庭将军问题的核心。

拜占庭将军问题提出后,一般把出现故障但没有伪造信息的情况称为“非拜占庭错误(Non-Byzantine Fault)”或“故障错误(Crash Fault)”,而将伪造信息恶意响应的情况称为“拜占庭错误”(Byzantine Fault)。

相应地,用于解决拜占庭将军问题的算法也被称作拜占庭容错算法(BFT: Byzantine Fault Tolerance)。通过拜占庭容错算法,即使某些节点出现问题或恶意行为,系统也能够继续运转。本质上来说,拜占庭容错算法就是一类少数服从多数的方案。

区块链与拜占庭将军问题有着密切的联系。区块链网络是一种分布式网络,其节点就像拜占庭将军一样,需要在不可靠的网络环境中达成交易和数据的共识。为了解决拜占庭将军问题,区块链技术的思路是,通过密码学方法将数据分成多个区块,并将每个区块通过哈希值连在一起,形成一个不可篡改的数据链。

由于每个区块都包含了一些交易或数据,以及前一个区块的哈希值。这样,如果任何一个区块被修改了,它的哈希值就会改变,从而导致后续的所有区块的哈希值都无效。这就保证了区块链上的数据具有完整性和不可伪造性。

但是仅靠密码学方法是远远不够的,因为在去中心化系统中,可能会出现多个不同的区块链版本。为了保证所有节点都能达成一致的共识,需要有一种机制来决定哪一个版本是有效的,哪些版本是无效的。这就是区块链技术中的共识机制。

例如,比特币网络使用了 PoW共识机制来解决拜占庭容错问题:首先,限制一段时间内整个网络中的区块数量,通过工作量证明来增加出块成本;其次,约定区块链始终顺延已知最长的链进行拓展。

这样一来,即便有人试图恶意破坏,也会付出相应的经济代价,即超过整体系统一半的工作量。后来的各种 PoX系列算法,也都是沿着这个思路进行改进,采用经济博弈来制约攻击者。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OmsKEWn7nABqnNKUQnqoF0ng0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券