为什么区块链坚不可摧?

10 Apr 2025 | 7 分钟阅读

区块链是一个连续的数据块序列,每个块都包含一定的信息,并通过加密技术连接在一起。此外,您可以将无限数量的块添加到已经存在的链中。这个过程称为挖矿。去中心化协作网络——这些网络缺乏管理机构,并为任何节点在网络中提供特定角色——是区块链技术的基础。

现在让我们来谈谈一个区块的内部结构。区块的主要特征是:

  1. 时间戳:指示区块添加到网络的精确时刻。
  2. 数据:它可以包含任何内容,但特别可以包括义务、协议、交易等。此外,区块信息的存储方式因网络的配置而异。(比特币网络允许区块大小最大为一兆字节。)
  3. 哈希:当一组数据经过哈希处理时产生的一组十六进制符号(A-F),范围从 0 到 9。此外,由于哈希值是永久性的,我们无法通过哈希值检索数据。
  4. 前一个哈希:这是前一个区块的哈希值。换一种说法,它指向前一个区块。尽管一个区块有额外的变量,但前面列出的变量是最重要的。

过去的事件

分布式账本的概念起源于一篇题为“如何为电子记录添加时间戳”的文章,由 Stuart Haber 和 W. Scott Stornetta 于 1991 年发表。随后,在 2008 年,一个化名为中本聪(Satoshi Nakamoto)的组织创造了“区块链”一词,标志着区块链的诞生。

注意:安全哈希算法,即哈希处理,应用于整个区块,这意味着它会影响区块的内容以及区块的其他属性(例如前一个哈希、日期、随机数等)。

如果您熟悉被称为链表(Linked List)的数据结构,可以将其与 比特币 进行比较以帮助理解。然而,链表加密货币 是两个非常不同的概念。

为什么需要区块链?

要理解这种技术的重要性,可以考虑以下场景:您将钱转给了一位朋友,而没有第三方(如银行)参与其中。这难道不很棒吗,因为只有付款人和收款人参与?因此,这成为了区块链创立的主要动机。当在没有银行的情况下出现谁将保护我的付款数据和交易详情的问题时,基于区块链的技术因其牢不可破的安全性而脱颖而出。那么,让我们来看看如何实现。

要理解这种技术的重要性,可以考虑以下场景:您将钱转给了一位朋友,而没有第三方(如银行)参与其中。这难道不很棒吗,因为只有付款人和收款人参与?因此,这成为了 区块链 创立的主要动机。当在没有银行的情况下出现谁将保护我的付款数据和交易详情的问题时,基于区块链的技术因其牢不可破的安全性而脱颖而出。那么,让我们来看看如何实现。

安全验证

  • 加密链接
  • 拜占庭容错

加密链接

Why Blockchain is Impenetrable?

本质上,网络中的每个区块之间都维护着一个加密链接。那么,这个加密链接是如何连接这些区块的呢?假设一个区块链包含 n 个区块。因此,每个区块都包含一些数据以及对其前一个区块的引用,该引用称为前一个区块的哈希。目前,我们使用 SHA-256 哈希算法生成此哈希值。因此,无论数据如何细微地更改,如果某个区块中的数据被篡改,该区块的哈希值都会改变。假设第三个区块的数据被修改,其哈希值也随之改变。这将导致加密链接失效,因为第四个区块中对第三个区块哈希值的引用已更改。为了帮助您更好地理解这一点,请考虑以下示例。

即使一个人能够劫持链条并篡改数据,也很难以链式的方式同时篡改哈希值以及之后的所有区块。以之前的例子为例:假设一个黑客需要秘密地修改 DATA3。为此,他必须将第四个区块中的 HASH3 修改为 HASH3#。然而,这个改变也影响了第五个区块中的 HASH4,所以他必须再次将第五个区块中的 HASH4 修改为 HASH4#,并以此类推,直到链的最后一个区块。

Why Blockchain is Impenetrable?

即使每个人都设法修改了链中的所有区块,拜占庭容错也是一个必须克服的进一步障碍。

拜占庭容错

如今,网络系统的状态或方法被称为拜占庭容错。在这种情况下,分布式网络中的节点都达成共识,然后由大多数节点决定。那么,这在区块链中有何用处呢?问题在于,给定分布式基础设施上的每个节点都拥有比特币网络的一个独特副本。因此,即使整个链被破坏,整个系统也会将其与其他节点的受损链进行比较。如果链不匹配,系统将用大多数节点拥有的链覆盖受损节点的链。

由于分布式网络中没有管理机构,因此该结构以其大多数节点的意见为准。为了阐明这一点,让我们看一个例子。在本例中,我们处理一个包含大约 1000 个节点的分布式网络。一名黑客选择目标节点六,并能够修改整个链中所有加密的哈希值。

示例 #1

1. 令 Y 为节点上的篡改链,令 X 代表系统中的所有链。

2. 最初,Chain = X(节点 6)。

3. 攻击后,Chain = Y(节点 6)。

4. 因此,除了节点 6 之外,所有节点都拥有 Chain = X。

5. 节点 6 还拥有 Chain = Y。

6. 因此,网络拥有 X 和 Y 两种不同的链。

7. 此时,算法将确定什么才是正确的,

8. 它会确定大多数节点拥有的链类型。

Why Blockchain is Impenetrable?

9. 因此,算法将 Chain = X 视为正确的。

10. Chain = Y(节点 6)已被删除。

11. Chain = X(节点 6)已被采纳。

让我们看看更复杂的情况,即多个黑客同时攻击不同的节点。

示例 #2

目前互联网上有 1000 个节点,有两个主要黑客组织试图攻破它。组织 A 攻击了节点 2、3、4、5 和 6。组织 B 攻击了节点 400、401、403 等,一直到 499。

  • 令 X 代表网络中的所有链,Y 代表组织 A 的篡改链,Z 代表组织 B 的篡改链。
  • 最初,所有节点都拥有 Chain = X。
  • 攻击后,
  • Chain = X(所有未受攻击的节点)
  • Chain = Y(组织 A,2、3、4、5、6)。
  • Chain = Z(400、401、403 等,直到 499 组织 B)
  • 因此,链 X、Y 和 Z 有三种不同的链。
Why Blockchain is Impenetrable?

再次,X 类型的链是大多数节点拥有的链,因此它会被复制到所有拥有 Y 和 Z 类型链的节点上。我们的区块链因此恢复到原始状态。

总结

如前所述,区块链系统实际上是牢不可破的。但是等等,没有人是完美的;特别是新技术有其缺点。只有当一个网络拥有非常多的节点时,其区块链才能被认为是牢不可破的。存在某些类型的攻击,较弱的网络可能会遭受。

51% 攻击:在这种攻击中,攻击者控制了网络中近 51% 的节点。简而言之,由于拥有了绝大部分投票权,攻击者可以在区块链上做出任何决定。众所周知,大型网络使这一点几乎不可能实现。

  1. Eclipse 攻击:在此类攻击中,单个节点会与整个分布式账本隔离,以便攻击者可以随意控制它。
  2. 称为 DDoS(分布式拒绝服务)的攻击试图通过向互联网网络提供无关数据来使其过载,从而导致互联网网络提供的服务出现延迟,使其不堪重负并减慢处理实际数据的速度。
  3. Sybil 攻击:此类攻击允许攻击者冒充大多数节点上的其他人,并利用技术的运作方式。

注意:限制每个节点每天处理的操作数量是阻止 DDoS 攻击的一种方法。Gmail 就是这样做的,它将单个用户每天交换的电子邮件数量限制为 500 封。用户无法在 500 封之后撰写或接收更多电子邮件。

然而,这类技术是令人惊叹的,并且像比特币和 以太坊 协议这样的基于区块链的数字货币从未遭受过黑客攻击或入侵。