这篇文章是关于区块链技术的深入介绍,重点讨论了区块链中的区块结构及其关键元素,包括数据和交易、哈希、前一个区块的哈希、时间戳和随机数(nonce)。文章结合实例和图示,详细解析了每个元素的功能及其安全性,包括如何确保数据的不可篡改性和透明性,并强调了区块链的特性。
这是关于区块链的100部分系列中的第二部分。 你可以在这里阅读第一部分 以了解什么是区块链及其组件。
顾名思义,区块链隐喻地由按时间顺序链接在一起的区块组成,这些区块共同组成一个被称为区块链的链。每一笔交易或数据都存储在区块中。让我们通过一个现实生活中的场景来更好地理解它。假设我在 Steve 的账户中进行了一笔金额交易。必须有一个地方来存储此交易信息。这个地方被称为区块。在区块链中,一个区块记录了一些或全部尚未进入任何先前区块的最新交易。每当一个区块被“完成”时,它就成为过去的一部分,并为区块链中的下一个区块让路。一个完成的区块是交易的永久记录,一旦书写,则无法更改或删除。
区块链网络生成一个新的交易区块并将其添加到区块链所需的平均时间称为区块时间。一些区块链每隔五秒钟就生成一个新块,而有些可能需要几分钟。例如,以太坊区块链的区块时间在14到15秒之间,而比特币区块链的区块时间约为10分钟。在加密货币中,较短的区块时间意味着更快的交易。
区块链中的第一个区块被称为创世区块,因为它是链的起始区块。
区块链中的创世区块
每个区块有五个元素。
1. 数据和交易: 第一个元素是数据和交易。回到我们的例子。与该交易相关的金额和所有其他相关信息,例如发送者信息、接收者信息等,将存储在区块中。每个区块所包含的数据取决于区块链的类型。例如,食品供应区块链将包含特定食品供应链中所有过程的信息。
2. 哈希: 每个区块还包括一个哈希——该区块及其所有内容的唯一标识符。为了更好地理解,你可以将哈希假设为指纹。它总是唯一的,没有两个区块可以有相同的哈希,就像指纹的情况一样。当一个区块被创建时,它的哈希会同时生成。篡改一个区块会改变其哈希。简单来说,如果区块的指纹或哈希发生变化,就表明该区块已被篡改且不再是同一个区块。因此,哈希可以是检测区块内任何更改的非常强大的工具。
篡改区块会改变其哈希
3. 前一个区块的哈希: 每个区块包含的另一个重要元素是前一个区块的哈希。这个信息连接一个区块到另一个区块,并使整个网络安全可靠。
在图中,第4个区块包含第3个区块的哈希,第3个区块包含第2个区块的哈希,依此类推。如前所述,区块数据的任何变化都会导致其哈希发生变化。在给定的图中,当我们改变第2个区块的数据时,第2个区块的哈希也会发生变化,这会使整个区块链不稳定。这是因为每个区块都包含前一个区块的哈希。当第2个区块被篡改时,旧哈希变得无效,并为该区块生成一个新的哈希。这会影响链中的所有后续区块,从而使它们全部无效。区块链的这个独特属性使其透明且安全,因为在任何数据篡改的情况下,整个网络都会得知在区块链中哪个区块遭到破坏。
前一个区块的哈希将区块连接到区块链中的另一个区块
4. 时间戳: 每个区块包含的第四个基本元素是时间戳。时间戳仅意味着“某些数据在特定日期和时间存在的证明。”换句话说,时间戳可以被称为“存在的证明。”任何数字数据都可以被时间戳标记。包含数据和交易的区块的哈希被时间戳标记,然后发布到网络上。通过这样做,可以确保交易在此时曾经存在。在区块上实施时间戳也使得该区块在未来无法被重复,因为除了时间外,还存储了区块的创建日期。因此,未来的任何区块都无法被指定一个与一周、两个月或一年前任何先前区块相同的哈希。
此外,基于区块链的时间戳是一种完全安全的跟踪文档创建和修改时间的方法。它的安全性足够高,即使文档的所有者在文档录入区块链后也无权更改任何数据。
时间戳,以及区块在区块链中的其他信息
5. Nonce: 区块的第五个元素是 nonce。Nonce 是“只使用一次的数字”的缩写。Nonce 是一个整数,与区块号、数据和前一个哈希一起作为哈希算法的输入,以计算该区块的有效哈希。有效的区块哈希是满足某种难度的哈希,即在哈希的开头包含一系列预定义的零。让我们以 Anders Brownworth 的哈希程序为例,了解 nonce 值是如何用来生成有效的哈希( https://andersbrownworth.com/blockchain/block)。
在这种情况下,有效的 加密哈希包含 4 个前导零。
有效加密哈希包含 4 个前导0
如果数据发生任何变化,哈希算法将为区块生成一个完全不同的哈希。如果新生成的哈希没有 4 个前导零,则它将不是有效的区块。
如果它不包含 4 个前导0,哈希是无效的
通过称为 nonce 的字段使区块有效,而 nonce 是不预定的。每当为同一区块选择新的 nonce 时,计算出的哈希将是不同的值。
新的 nonce 值导致同一区块的不同哈希
Nonce 本质上是一个随机数;找到 nonce 值很重要,因为它有助于生成一个包含 4 个前导0 的有效哈希,使特定的区块有效。获得 nonce 值的一种方法是手动更改 nonce。因此,可能需要多次迭代才能生成所需的包含 4 个前导零的哈希。另一种方法是单击图中所示的“挖矿”按钮,它将提供一个唯一的 nonce,对应于一个带有 4 个前导零的哈希,使该区块有效。一旦区块变得有效,它就成为区块链的一部分,新的区块同样会被添加到这个区块上。
挖矿产生一个唯一的 nonce,对应于有效哈希,使区块有效
由于 nonce 值只能使用一次,它在保持区块链不可变性中起着重要作用。假设数据在第2个区块中发生变化,因此哈希发生变化,因为数据用于计算哈希。此外,第2个区块变得无效,因为其哈希不再具有 4 个前导 0。第3个区块的哈希变化是因为第2个区块的哈希用于计算第3个区块的哈希。此外,第3个区块变得无效,因为其哈希不再具有 4 个前导 0。在区块链中的其他区块也是如此。
第2个区块数据的变化使区块链中的其他区块无效
更改第2个区块的唯一方法是重新挖掘该区块以找到一个有效的哈希,该哈希具有 4 个前导 0,然后挖掘所有后面的区块以找到它们的有效哈希,因为所有区块都通过前一个区块的哈希连接在一起。由于新区块总是被添加,因此几乎不可能变更区块链。
如果你喜欢这篇文章并想了解更多关于区块链、NFT、元宇宙及其应用的信息,请点击以下链接。
50+ 区块链的真实应用:初学者的区块链基础完整指南… \ \ 50+ 区块链的真实应用:初学者的区块链基础完整指南、共识…\ \ www.amazon.com
快乐学习!
- 原文链接: medium.com/techskill-bre...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!