区块链原理与基础理论知识
- 1.比特币区块链入门
- 2.区块链的工作原理
- 区块链核心组成部分
- 加密哈希
- 公钥加密
- Merkle 树
- 3.生成区块链
- 一致性算法
来源区块链 - 区块链基础知识 | Microsoft Learn,并结合自己的理解以及Chatgpt的帮助进行了梳理和改进,使其更易读和理解。
早在 1999 年,文件共享网络 Napster 就出现了,可方便用户在混合对等网络(之所以使用“混合”一词是因为它使用了中央目录服务器)上轻松共享音频文件(通常包含音乐)。文件共享网络不仅仅可用于共享音乐文件,还允许所有用户保留这些共享文件的副本。这样一来,单个数字资产就会跨全球网络生成无限个合理副本。这项技术简单易用,只要有计算机,任何人都可以利用它。这让备受尊崇的淘儿唱片业绩意外下滑。到 2006 年,淘儿唱片被迫关闭了它在美国国内的所有 89 家门店。
2008 年,次贷危机爆发。在此期间,成立已久、实力强大的美国金融机构和保险公司纷纷宣布破产或濒临破产边缘。在这种情况下,联邦政府必须立即干预,以免爆发全国性乃至全球金融危机。这一重大事件让民众对中央银行心存疑虑,并揭露了资金账本不接受公众监督的危险性。2008 年 3 月,哈特兰支付系统公司数据泄露曝光了超过 1.3 亿信用卡号,导致其中许多信用卡号后来被盗用于进行欺诈性购买。
这些事件说明了生活在数字化互联世界的极大危险性,不仅依赖交易费用生成中间商,还易受数字攻击、贪婪和犯罪行为影响。学术挑战在于,如何创建脱媒数字基础结构,用于在所有者之间公开可靠地转让(而不是复制和共享)数字资产,既没有腐败或不可靠的中央集权机构,而又安全且可信任。
1.比特币区块链入门
2009 年 1 月 3 日,出现了一种新型基础结构,似乎是在历史背景下应运而生。它挖矿获得 50 个数字币,并将它们记录在防篡改公用账本上。此帐本被复制到由已联网计算机组成的[[分散式对等网络]]上。这 50 个加密货币单位就称为“比特币”,记录为创世区块,即被认为是比特币区块链的第一个链接。
这种由区块链提供技术支持的加密货币的非凡之处在于,不通过任何信任或监管机构(如银行或政府)验证每笔交易。 此外,它还让交易脱媒,即使用不涉及中间商(如代理或代理机构)的全球网络,在全球范围内转让数字货币。 由于依赖新式加密,因此区块链中的数据是防篡改的匿名数据。此外,因为给定区块链被复制到对等网络中的每个节点,所以没有单一故障点,确保了这项技术的可用性和可靠性。
自比特币推出以来,区块链技术快速发展,不断成熟完善。区块链实现细节的差异很大,这就让区块链研究成为一项不断变化且非常复杂的庞大任务。实际上,“区块链”一词不再只适用于通常所说的加密货币,特别是比特币。区块链正在不断优化和完善,旨在成为更快更智能的技术。实际上,一些区块链技术允许编写脚本来支持智能合同,这样就可以将自定义规则应用于交易。这样一来,区块链就已演变成一种新型可编程的防黑客存储技术。 正是出于这一原因,IT 专业人士、企业、金融机构等强烈要求发挥它的真正潜能。
如果一直在局外观望区块链,现在是时候急起直追了。这是一篇介绍性文章,不可能涵盖所有区块链技术的详尽技术细节,每项技术都有自己的规则、功能和自定义。不过,我在本文中介绍了许多概念,将有助于读者了解众多新式区块链技术所依据的核心技术基础。
2.区块链的工作原理
比特币区块链是世界上首个区块链技术实例。由于这种特质,“区块链”经常被误解为与比特币密不可分。不过,新式区块链技术产品/服务跟踪除数字货币外的数字资产,此类区块链的工作原理与比特币区块链大不相同。 此外,比特币区块链还推广了一种观念,即区块链是虚拟化银行账本的数据结构,具体是通过跟踪借贷,同时提供有创意的加密解决方案,以有效禁止加密货币单位的双重支出->确保每个交易只会被执行一次。因此,“数字账本”和“双重支出” 术语就与加密货币区块链关联起来。不过,这两个术语分别广泛应用于跟踪所有权和强制单次转让数字资产。看到这两个术语时,不要以为它们只是指面向加密货币的区块链技术。
从本质上讲,区块链是一种防篡改数据结构,可以跟踪在所有者之间传递的有价值或感兴趣内容。这里所指的“内容”可以是任何一种数字资产,如数字币、Word 文档或 Microsoft Surface 平板电脑序列号。 实际上,只要是可以与唯一数字指纹关联的项,就能在区块链上进行跟踪。 区块链要求转让数字资产所有权,而不是复制或共享,解决了所谓的“双重支出”问题。 不过,区块链技术的有趣之处在于,它不仅建立了协议和强制执行交易规则,还能够让计算机分布式网络中的节点自我监督整个操作。 而且,它是在没有中央服务器或信任颁发机构的情况下,迅速在全球范围内完成了这一非凡壮举。这样的前景激起了人们的兴趣,希望通过它来消除中间商、减少或停征交易费用,同时让企业和使用者都能提高商务效率。
区块链核心组成部分
比特币区块链网络是公用的。也就是说,任何人可以随时随地参与进来。不过,新式区块链产品/服务(如 Microsoft Azure 托管区块链)可以配置为公用网络、专用网络或特权网络。虽然区块链是分散的,但分散的含义需要进一步澄清。正如 Vitalik Buterin 所解释 ,“分散式区块链”是指它们“不仅在政治上是分散的(不受任何监管),在体系结构上也是分散的(无基础结构中心故障点),但它们在逻辑上并不是分散的(有一个共同商定的状态,且系统就像一台计算机一样运转)”。 分散化提供容错、攻击防御和勾结防御(稍后我将介绍工作量证明,届时此含义就会变得清晰明了)。
若要了解如何设计公用区块链,需要了解加密哈希、公钥加密 (PKC)、二叉哈希链(特别是 Merkle 树)和一致性算法。我将简要回顾一下这些概念,并介绍区块链是包含交易哈希链的哈希链。掌握此嵌套哈希链概念后,就会理解区块链技术的基本设计。
加密哈希
虽然有许多单向加密哈希算法变体,但通常选用的是 SHA-256。这是一种单向哈希函数 ,接受最大为 (264-1)/8 字节的消息,并返回 32 字节的哈希值(64 个十六进制字符),十进制范围介于 0 和约 1.16 x 1077之间。为了能够正确看待数量级,需要指出的是,一滴水大约包含 5 x 1012 个原子;可观测宇宙的原子数估计介于 1078 和 1082 之间。调整消息中的任何字符,并重新计算 SHA-256 哈希值,就可以生成全新的哈希值,并将文件或文本校验和类型设置为 SHA-256。)
单向哈希函数(One-way Hash Function)是一种特殊的哈希函数,它具有单向性质,即难以从哈希值反推出原始数据。
具体来说,单向哈希函数是一种只能“单向”的哈希函数,即可以从输入数据计算出固定长度的哈希值,但不能从哈希值反推出原始数据。这种单向性质使得单向哈希函数非常适用于密码学中的密码验证和数字签名等应用场景。
如果输入相同,SHA-256 算法始终生成相同的定长输出。 对于区块链技术,使用 SHA-256 加密哈希的价值在于,它们是唯一的,可同时用作数字指纹和校验和。此外,(作为惯例)单向哈希函数不能进行解码。以我名字的 SHA-256 值为例:8F12D83BA54AC0EA7687AD4AFDE5E258BBFF970AA8D60C6588381784C502CA8E。由于这是哈希值,因此实际上无法使用算法反向推出我的名字。(一种黑客技术利用的是彩虹表,其中列出了已计算出的常见字符串(如“密码”)哈希值,但这也不是通过算法来反向推出哈希。为了抵御此类攻击,惯例做法是通过附加随机字符串(称为“加密盐”值),修饰要哈希处理的字符串。)
如果没有 SHA-256 生成器可用,请参阅图 1 中的表,它表明不同长度的字符串始终生成 64 位十六进制哈希值,以及对任何字符串稍作更改就会导致结果完全不同。
图 1:使用 SHA-256 算法对各种长度的字符串进行哈希处理
![[Pasted image 20230411171146.png|475]]
有时,哈希值会进行双重哈希处理。也就是说,通过应用第二轮 SHA-256 算法,再次对第一个哈希值进行哈希处理。如果对图 1 中的值进行双重哈希处理,最终会生成图 2中的结果。
图 2:对图 1 中的值进行双重哈希处理
![[Pasted image 20230411171203.png|550]]
公钥加密
回顾一下,区块链的主要功能之一是,跟踪数字资产的所有权。 相关数字资产可能一文不值,也可能价值数百万美元。因此,所有权测试必须确保所有者是无法假冒的。为了在数字领域进行此类测试,区块链利用的是 PKC,以便所有者能够对资产进行数字签名,以证明所有权和授权资产转让。与使用一个私钥加密和解密消息的对称密钥加密不同,PKC 使用非对称密钥加密。
1.首先,数字资产的所有权验证是区块链中非常重要的一项功能,因此需要采用高安全系数的公钥/私钥对生成策略来确保数字资产的安全。ECDSA是一种加密算法,可以用来生成密钥对,即一个公钥和一个私钥,用于验证数字资产的所有权。
2.ECDSA相对于DSA的优点在于,它可以用较短的密钥长度实现更高的加密安全系数。 用户可以通过软件应用程序来生成加密密钥对,并需要妥善保管生成的私钥备份,因为私钥是用来转让或利用数字资产的价值的必要条件。
3.如果只备份了密钥对中的私钥,可以重新生成公钥,因为公钥和私钥之间存在一种数学关系,但是无法通过公钥生成私钥。 因此,如果只备份一个密钥,一定要备份私钥,以确保数字资产的安全。
通常采用两种方式之一使用这些密钥。
第一个用例(见图 3)是,希望有人向你发送只有你才能打开的加密消息。为此,请向对方提供你的公钥,让其使用此公钥加密文档,具体是通过软件应用加密算法,并生成已加密文本(即加密版消息)。然后,对方就会向你只发送已加密文本。由于对方使用的是公钥来加密文档,因此必须使用正确配对的私钥才能解密文档。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KsEFxc2f-1681218494692)(https://learn.microsoft.com/zh-cn/archive/msdn-magazine/2018/march/images/mt845650.0318_waldman_figure3_hires(zh-cn,msdn.10)].png “希望有人向你发送只有你才能打开的加密文档/消息时使用 PKC”)
图 3:希望有人向你发送只有你才能打开的加密文档/消息时使用 PKC
第二个用例(见图 4)是,希望加密消息并证明它确实由你发送。 为此,请使用私钥创建文档的已加密文本。然后,将此已加密文本发送给其他人。对方会使用你的公钥来解密文档。由于只有你的公钥才能解密文档,因此收件人可以认为文档是由你的私钥加密。也就是说,除非私钥被盗用,否则文档就是由你发送。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tEUrItJW-1681218494693)(https://learn.microsoft.com/zh-cn/archive/msdn-magazine/2018/march/images/mt845650.0318_waldman_figure4_hires(zh-cn,msdn.10)].png “希望向其他人发送加密文档/消息并证明它确实由你发送时使用 PKC”)
图 4:希望向其他人发送加密文档/消息并证明它确实由你发送时使用 PKC
第三个用例使用 PKC 通过数字签名流程来证明数字资产所有权。 在此用例(见图 5)中,假设 Bill 已编写具有法律约束力的 Word 文档,他需要通过电子邮件方式将文档发送给 Susan。Susan 希望确定她从 Bill 处收到的文档副本确实是由 Bill 发送,而且在途中尚未被篡改。Bill 先创建 Word 文档的 SHA-256 哈希,并将值记录为 H(W)。接下来,他使用自己的私钥对文档哈希进行加密,生成 Enc(H(W)),再向 Susan 发送 Word 文档(可视情况加密)和 Enc(H(W)) 值(这是 Bill 对文档 W 的数字签名)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CyjUBxP5-1681218494693)(https://learn.microsoft.com/zh-cn/archive/msdn-magazine/2018/march/images/mt845650.0318_waldman_figure5_hires(zh-cn,msdn.10)].png “使用 PKC 和加密哈希对文档/消息进行数字签名”)
图 5:使用 PKC 和加密哈希对文档/消息进行数字签名
Susan 通过她收到的 Word 文档副本重新计算 H(W) 值,再使用 Bill 的公匙解密 Enc(H(W)) 值(见图 6)。如果 Susan 计算的哈希值等于解密的 H(W) 值,Susan 可以得出下列结论:Bill 对文档进行了签名,并且她收到的副本与 Bill 签名的文件完全相同。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zaAFKd5F-1681218494694)(https://learn.microsoft.com/zh-cn/archive/msdn-magazine/2018/march/images/mt845650.0318_waldman_figure6_hires(zh-cn,msdn.10)].png “使用 PKC 和加密哈希验证文档/消息是否由预期方进行签名”)
图 6:使用 PKC 和加密哈希验证文档/消息是否由预期方进行签名
使用哈希和 PKC,区块链维护了数字资产所有权的交易历史记录。
交易数据对象相互链接,形成称为“哈希链”的数据结构。工作原理是,每个交易记录都会构成消息 (m),此类消息先通过函数 (H) 进行哈希处理,再通过所有者私钥 (s) 进行签名。(惯例做法是,使用“secret”的首字母“s”表示私钥,以免与表示公钥的“p”混淆。) 这就生成了签名 (sig):
sig = signature(H(m), s)
在数字资产从一个所有者转让给另一个所有者后,新所有者会检查、验证它的数字签名并进行数字签名,再将它注册为哈希链上的新节点。 尽管实现细节因区块链技术和版本差异很大,但对于所有这些技术和版本,基本概念是相同的。例如,如图 7 所示,Bill 是数字资产的所有者,他使用私钥发起向 Susan 转让数字资产。Susan 的交易记录使用 Bill 的公钥来验证他的签名。在此之后,Susan 使用公钥对数字资产进行签名,让 Susan 成为新所有者。这就会新建交易记录,即交易哈希链上的新链接。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vo7vcHUg-1681218494694)(https://learn.microsoft.com/zh-cn/archive/msdn-magazine/2018/march/images/mt845650.0318_waldman_figure7_hires(zh-cn,msdn.10)].png “交易哈希链使用数字签名转让数字资产所有权;每个交易记录都保留有对哈希链中上一个交易的加密反向链接”)
图 7:交易哈希链使用数字签名转让数字资产所有权;每个交易记录都保留有对哈希链中上一个交易的加密反向链接
此交易哈希链受加密保护,并且防篡改。对交易 0 的任何更改都会导致 Sig0 变化,要求更新在交易 1 中存储的哈希值,以及哈希链上的每个后续交易。
在不同的区块链实现中,每个交易所包含的具体数据可能会有所不同。为了理解区块链的工作原理,需要知道哈希链是一种加密链接的交易链。具体来说,每个交易记录都会包含上一个所有者的交易记录的哈希值,从而形成一个链条。
在加密货币区块链中,每个交易对象通常包含以下数据:
1. 数字货币输入列表: 这是指该交易的所有者将其数字货币从之前的交易输出中导入到此交易中。例如,如果Alice收到了来自Bob的数字货币,她可以将这些数字货币输入到她自己的交易中,并将其作为交易的输入列表。
2. 数字货币输出列表: 这是指该交易的所有者将其数字货币输出到下一个所有者的交易输入中。例如,如果Alice想要将其数字货币发送给Charlie,她可以将这些数字货币作为交易的输出列表,并将其发送到Charlie的交易输入中。
3. 时间戳: 每个交易都包括一个时间戳,用于记录交易发生的时间。
4. 可选的交易费用: 这是指交易所有者可以选择支付的一笔额外费用,用于鼓励矿工验证和打包交易。通常情况下,支付更高的交易费用会导致交易更快地被处理。
通过这些数据,可以精确地记录每个数字货币的所有权变更。当一个所有者将数字货币发送到另一个所有者时,该交易的输入列表将减少,输出列表将增加,从而反映出数字货币所有权的变更。 这些交易被存储在区块链中,并且由于区块链的不可篡改性,所有者的数字货币所有权变更记录将得到完全保护和准确记录,形成一个可信的财务账本。
Merkle 树
一些区块链使用另一种哈希链捆绑交易,即二叉哈希链或 Merkle 树。 完整的 Merkle 树称为“二叉树结构”,因为它从根开始每个级别都有两个分支,如图 8 所示。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LY08d5g3-1681218494695)(https://learn.microsoft.com/zh-cn/archive/msdn-magazine/2018/march/images/mt845650.0318_waldman_figure8_hires(zh-cn,msdn.10)].png “Merkle 树是一种生成 Merkle 根哈希的二叉哈希树;此数据结构可以有效添加叶节点,并计算新 Merkle 根,而无需完全重新计算”)
图 8:Merkle 树是一种生成 Merkle 根哈希的二叉哈希树;此数据结构可以有效添加叶节点,并计算新 Merkle 根,而无需完全重新计算
Merkle 树的创建方式和特点:
- Merkle 树的创建方式是将每个交易对象中的数据进行 SHA-256 哈希运算,生成一系列叶节点。对于比特币区块链而言,还会对每个 Merkle 节点进行双重哈希处理,以强化哈希结果中的加密值。
- Merkle 树要求必须有偶数个叶节点,如果初始叶节点数量为奇数,则会复制最后一个叶节点来保证数量为偶数。
- 每一对叶节点会进行一次哈希运算,生成一个新的哈希值作为其父节点的值。这个模式会一直应用到根节点,即最终的哈希值是所有其他哈希值的加密哈希和。
- Merkle 树的一个重要特点是,对于任何一个叶节点中数据的任何更改,都会导致重新计算整个 Merkle 树的哈希值,即根哈希值会发生变化。这个特点使得 Merkle 树可以被用来验证数据的完整性和真实性。
Merkle 树中的叶节点代表每个交易的哈希,每个非叶节点代表它的两个子节点的哈希的哈希值。在比特币中,每个叶节点代表一个交易,而每个非叶节点代表其子节点的哈希的哈希值。 这种结构可以帮助验证某个交易是否属于一个特定的区块链,而不需要访问该区块链的所有交易。
在比特币的区块链中,每个区块包含多个交易。当需要验证某个交易是否包含在某个区块中时,可以通过以下步骤来完成验证:
- 从该区块的头信息中获取 Merkle 树的根节点哈希值。
- 获取需要验证的交易的哈希值。
- 通过哈希算法,从交易哈希值计算出该交易所在的叶节点哈希值。
- 通过对叶节点哈希值和兄弟节点哈希值的递归哈希运算,计算出 Merkle 树的根节点哈希值。
- 比较计算得到的根节点哈希值和区块头中记录的根节点哈希值是否相等。
Merkle 二叉哈希树结构具有一些优点。例如,它可以轻松更新交易中的数据,并计算新 Merkle 根哈希,而无需从头开始生成整个 Merkle 树。 例如,如果(图 8中突出显示的)交易 E 发生了变化,只需高效地为树中每个级别反向计算一次新哈希,一直计算到 Merkle 根即可。因此,先计算新叶哈希 HE;再计算 HEF ,依据为 HE 和 HF;再计算 HEFGH ,依据为 HEF和 HGH;再计算新 Merkle 根哈希,依据为 HABCD 和 HEFGH。更新 Merkle 根哈希只需进行 4 次计算,而从头开始生成 Merkle 树则需要进行 15 次计算!
3.生成区块链
区块链的生成过程以及其中的信任问题
首先,要生成一个区块链,需要将包含交易的二叉哈希链数据对象提交到一个公用的防篡改数据存储中,这个存储是公开的,任何节点都可以对其执行读取或写入操作。
尽管Merkle树具有防篡改的特性,但在数字资产转让等交易处理过程中,[[必须依赖于中央节点、代理机构或服务来处理交易请求,以及维护哈希结构的服务器。]] 如果没有中央节点来处理新交易,或者没有中央集权机构来委托处理事务,任何节点都可以处理挂起的交易。
中央节点将导致控制权集中,如果没有中央节点又可能导致无效或欺诈性交易的发生。
为了解决这些问题,区块链使用一致性算法来确保交易的有效性和安全性,这个算法会随机分配一个节点来处理交易,并确保该节点处理的交易得到全网节点的确认。 这种方法可以减少控制权的集中,同时增加区块链的可靠性和安全性。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bvkOtx1V-1681218494696)(https://learn.microsoft.com/zh-cn/archive/msdn-magazine/2018/march/images/mt845650.0318_waldman_figure9_hires(zh-cn,msdn.10)].png “区块链由区块组成,这些区块继而包含交易哈希树;区块链上的区块反向链接到前面的区块,并通过工作量证明算法进行验证”)
图 9:区块链由区块组成,这些区块继而包含交易哈希树;区块链上的区块反向链接到前面的区块,并通过工作量证明算法进行验证
一致性算法
区块链技术通过遵循规定如何添加和维护区块的协议,杜绝了集中数据存储和信任授权问题。 为此,它们强制执行区块链生成一致性算法。一致性算法有多种不同的种类,我将介绍的是工作量证明 (PoW) 算法工作原理。
PoW 的依据是,网络上的一个节点需要通过产生的费用和解决计算难题所需的耗时,证明它的合理意图。 为了让节点参与此类系统并遵守规则,网络提供激励(通常是金钱奖励)。也就是说,节点运算符向区块链添加区块时就会得到报酬。为了赢取金钱奖励,节点必须验证所有交易(以确保它们符合区块链的特定规则),再解决加密难题。
为了构造交易区块,节点需要获取在网络上存储的未处理交易,并生成Merkle树来计算Merkle根哈希。 [[候选区块包含交易列表]]和区块标头,其中标头包括Merkle根哈希值、当前时间戳和PoW难度级别(有时还附加有标头数据)。然后,它必须解决PoW难题,这涉及计算双重哈希的整个256位区块哈希值,再找到32位数字nonce。 可以将此数字与哈希值连接,生成288位数字的哈希,这样结果中就带有一定数量的前导零。因此,惯常做法不是直接尝试猜测nonce,而是从nonce 0 开始,生成SHA-256哈希,并确定它是否有目标数量的前导零(也就是说,生成的哈希值小于目标值);如果没有,节点会增加nonce值,并再次尝试。如果节点尝试了所有nonce值都节点生成的哈希值必须满足一定数量的前导零(这个数量取决于 PoW 难度级别),以便被其他节点接受并添加到区块链中。为了找到符合要求的哈希值,节点需要不断尝试不同的 nonce 值,直到找到一个符合要求的哈希值。这个过程是一种计算密集型的工作,需要消耗大量的计算资源和能源。
一旦节点找到了符合要求的哈希值,它就会将这个哈希值与交易列表和其他元数据一起组成一个新的区块,并将其广播到整个网络中。其他节点将验证这个新的区块是否有效,如果有效,就将其添加到它们各自的本地区块链中。这个过程被称为“共识”,因为它保证了整个网络中的所有节点都达成了共识,即认为这个新的区块是有效的并可以添加到区块链中。
通过 PoW 算法,区块链网络实现了分布式的共识机制,不需要信任中心或中介机构。每个节点都可以参与到共识过程中,并通过消耗大量的计算资源和能源来证明自己的合法性。 这种机制使得区块链网络具有了高度的安全性和可靠性,防止了数据篡改和攻击。同时,由于没有中心机构控制网络,区块链网络也具有很高的去中心化程度,使得数据的控制和管理更加公正和民主。
PS:
每个区块都包含了一系列的交易记录。事实上,一个区块链网络中的每个节点都维护着一个完整的区块链副本,这意味着每个节点都包含了整个区块链中的所有交易记录。
当一个新的交易被提交到网络中时,每个节点都会接收到该交易,并将其验证。如果交易被验证通过,那么它将被添加到该节点的交易池中等待打包成新的块。当一个节点成功地挖出一个新的块时,它会将交易池中的所有交易打包到该块中,并将其广播给整个网络。其他节点接收到这个新块后,会验证其有效性,并将其添加到自己的区块链中。
因此,每个区块都包含了一系列的交易记录,并且这些交易记录在整个网络中是完全一致的。这也是区块链技术的一个重要特点之一:所有节点都维护着相同的状态,因此不存在中心化的机构来控制和操纵数据。