1. 主页 > 币园地 > 币圈知识

什么是区块链?从拜占庭将军问题到共识

okx

okx欧易APP

全球顶尖交易所,注册即领最高¥3000数字盲盒

APP下载   官网注册

简单来说,区块链就是由一组计算机处理和记录的数据,这些计算机协同工作以确保这些数据交易的真实性和安全性。从更抽象和前瞻性的角度来看,这是金融交易的潜在未来,不受全球位置的约束,也不受监管机构的约束。

What-is-blockchain-From-the-Byzantine-Generals-Problem-to-consensus.png

什么是区块链?

区块链的主要特征之一是它记录数据的方式,即:

  • 无法篡改

  • 公开透明

  • 去中心化

不可变意味着没有黑客可以修改交易记录;透明意味着每个人都可以通过互联网查看和验证区块链上的交易;去中心化意味着没有一个实体可以管理整个网络。

比特币是第一个使用区块链技术的应用(具有讽刺意味的是,“区块链”一词是在比特币之后引入的)。该技术现在用于其他加密货币项目或商业应用,如贸易融资、汇款、电子商务。就连航运和运输财团马士基也公布了区块链解决方案计划,以简化海上保险。

区块链技术仍在积极研究和开发中,以使其在日常生活中更有用。

分布式系统简介

区块链是一个分布式系统。区块链遇到的很多问题在分布式系统中已经被讨论甚至解决了。

分布式系统是这样一种系统,其中位于联网计算机上的硬件或软件组件仅通过传递消息来通信和协调它们的操作。

分布式系统的主要特征是:

  • 并发

  • 没有全球时钟

  • 独立失败

并发

并发意味着多个计算在不同的机器上同时发生。这可能看起来很直观,但是当您考虑应该有多少台机器一起工作时,复杂性就出现了(见下文)。

没有全球时钟

在分布式系统中,每个参与者或机器在决定什么是对或错时具有同等的权重。机器 A 可能认为现在是上午 11:13,而机器 B 可能认为现在是上午 11:14 网络延迟可能会使情况进一步复杂化;即使两台机器在本地时间相同,它们也不知道网络传输数据需要多长时间。当一台机器必须从它的邻居那里确认时间时,总会有潜在的噪音。分布式系统中没有单一的事实来源。

独立失败

独立失败最好解释为一种假设情况。例如,'机器A'可能需要'机器B'的数据才能继续工作,因此它需要与机器B通信并等待响应。但是,机器 B 可能会发生故障(例如由于过热而关闭),并且网络可能会任意延迟甚至断开连接。系统设计人员必须在设计时考虑到通信和故障响应,以确保系统保持完好无损。

拜占庭将军问题

拜占庭将军问题是一种计算机系统状况,尤其是分布式计算系统,其中组件可能会发生故障,并且关于组件是否发生故障的信息不完整。

为了更清楚地说明问题,我们先讲一个故事:

一群将军,每人指挥一部分拜占庭军队,包围一座城市。他们必须决定是进攻还是撤退。但无论他们做出什么决定,最重要的是他们达成了共识。但很难达成共识,因为将军们不知道其他将军的决定。

考虑以下:

  • 有三位将军,将军A、B、C

  • 将军们必须同时攻击他们的敌人。否则,他们可能会面临失败的风险

  • 将军们没有有效的即时沟通方式

  • 因此,他们需要向他人发送快递来传递消息

  • 将军们需要在进攻前达成共识

  • 他们必须确认其他将军会同时进攻

  • 因此,将军们必须在发起攻击之前在他们之间收集消息和确认(为了简单起见,动画只显示了一个将军发送和接收两个确认。在真正的共识模型中,其他两个将军将需要回应这个行动)

当我们考虑可能存在叛徒时,问题就变得更加复杂。我们无法保证所有信使都是值得信赖的,除此之外,信使可能会被捕获并被迫传递伪造的消息。

从以上故事中,我们可以推断:

拜占庭中的将军代表链上的节点

每个共识由一组代表一个块(即一组有效交易)的将军形成。所有将领必须相互确认对方的决定,达成共识,才能发动协同进攻。同样,在区块链中,所有节点必须就下一个要写入的区块达成一致。

因此,节点在以下情况下会发生故障:

其中一个节点共享不一致的信息(恶意节点)。或者,在另一种情况下,由于网络故障而无法响应。

这就是为什么每个人都必须承认其他人都知道的信息。同时,每个人都需要知道彼此拥有的信息;它创造了一种情况,即大多数人承认和了解的信息将成为最终决定,即达成共识。

什么是共识?

如果你能理解拜占庭将军问题,就不难理解什么是共识。它需要多个进程(或代理)之间就单个数据值达成一致。

共识协议必须具有容错性或弹性,因为某些进程(代理)可能会失败或以其他方式不可靠。这些流程必须以某种方式提出它们的候选值,相互沟通,并就一个单一的共识值达成一致。

那些参与去中心化网络的人使用称为节点的去中心化服务器来这样做。每个节点都需要就一组先入为主的规则(称为“共识机制”)达成一致,才能参与区块链网络并达成一致。使用这些机制,我们可以解决拜占庭将军问题。

自 1970 年代以来,人们一直在研究共识。

共识机制有许多不同的变化/考虑因素:

  • 不允许失败与失败

  • 崩溃失败:故障节点在某个时候停止采取任何步骤

  • 拜占庭故障:故障节点可能会任意行为

  • 丢弃、篡改消息

  • 发送不一致的消息

  • 同步与异步

  • 同步:所有操作都需要时间

  • 限制 异步:没有限制

确定性与概率性

确定性的:总是导致不正确的结果(一致性、有效性)

概率性的:只有高概率才是正确的

完全一致与近似一致

精确一致:所有节点一致同意完全相同的值(输出)

近似一致:节点同意近似相等的值

在时间 → ∞ 的极限内相同

基于领导者与无领导者

Leader-based:存在一个虚拟leader提出end-state结果,其他节点投票给

leaderless:不存在虚拟leader提出end-state结果,每个人都可以提出一个新状态和其他节点投票给它

前比特币时代的大多数研究都集中在安全性上,并假设参与者数量固定。区块链的主要突破为分布式系统开辟了一个新的研究方向,即以活性为中心,解除对参与者数量的限制,以实现无许可设置。

经典共识与区块链共识的区别

许可与非许可区块链

许可区块链意味着需要许可才能参与网络。在无需许可的区块链中,任何人都可以加入网络。相比之下,许可区块链上的参与者可能拥有全部或选择性特权。

私人与公共区块链

私有区块链是指区块链处于私有网络中。例如,您已经在您的计算机上部署了您的私人以太坊以了解智能合约。它是孤立的,其他人无法看到或加入您的网络。网络成员必须受到邀请,然后由网络启动者或通过特定的权利和限制进行验证才能参与网络,以获得对私有区块链网络的访问权限。

公共区块链是完全开放的,任何人都可以参与或加入网络做出贡献。公共许可区块链的示例包括Ripple或EOS等代币,其中普通参与者的特权少于 Unique Node List(对于 Ripple)或 Block Producer(对于 EOS)等分类参与者。公共无许可区块链包括比特币或以太坊等代币。

私有许可区块链的一个示例包括在您的笔记本电脑上启动您自己的 Hyperledger 或 Ethereum。公司也可以在内部推出他们的私有区块链。

联盟链

最后一种类型是联盟链,其中有一组参与者(很可能是跨国公司)形成一个网络(将其想象成某种“内部网”),只有他们才能加入和使用该网络。联盟区块链的例子包括 R3、Linux Foundation 的HyperLedger和 JP Morgan 的Quorum。

结论

因此,现在您有望看到并更好地理解区块链或类似系统背后的机制,将安全机制集成到其流程中。从像传统金融机构这样的一个集中式安全系统转移到需要统一努力和透明度的复杂计算的加密世界有助于最大限度地减少(但不一定消除)各方的腐败。这仅仅是个开始,随着系统的发展,系统会变得更好。


以上就是币园地《什么是区块链?从拜占庭将军问题到共识》的专业详解,点击首页了解更多精品干货

icon

okx欧易APP

全球顶尖交易所,注册即领最高¥3000数字盲盒

APP下载   官网注册
bi'an

火币 Huobi

官网注册

老牌交易所,交易用火币

比特儿

币安 Binance

官网注册

选择币安,探索无限可能

联系我们

Q Q: 510662654

微信号:ATM6086

工作日:9:30-18:30,节假日休息

微信