主页 > imtoken钱包靓号地址软件 > 揭秘区块链核心技术的“哈希与加密算法”

揭秘区块链核心技术的“哈希与加密算法”

imtoken钱包靓号地址软件 2023-12-02 05:09:31

众所周知,区块链的关键技术组成部分有:P2P网络协议、共识机制、密码学、账户和存储模型。在这些技术中,密码学和共识机制是核心。那么今天,我们就来详细聊一聊密码学,看看密码学是如何在区块链中应用的。

首先,我们需要知道区块链中使用的密码算法有哪些?其实有两大类:

一、区块链中的哈希算法

哈希算法是区块链中使用最多的算法,广泛用于构建区块和确认交易的完整性。

它是一种数学函数算法,也称为哈希算法,它需要具备三个基本特征:

1.输入可以是任意大小的字符串

2.它产生一个固定大小的输出

3.计算效率高,即可以在合理的时间内计算出输出值

如果需要哈希算法来实现密码安全,我们还要求它具有以下三个附加特性:

哈希算法有很多种,比特币使用的主要是SHA-256算法。

除此之外,还有其他流行的哈希算法,如MD5、SHA-1、SHA-2(SHA-224、SHA -256、SHA-384、SHA-512)、SHA-3等,其中MD5、SHA-1已被证明无强抗碰撞性,安全性能不够高,市场上不再推荐。

我们以比特币为例,看看哈希算法的具体应用:在比特币中,哈希算法用于生成交易的数据摘要,当前区块包含前一个区块的哈希值,而next block 包含了当前块的hash值,所以它们一一相连,形成一个hash指针链表,如下图:

以上只是一个示意图,那么在实际的比特币系统中,每个区块包含什么:

关注上图:

以上只说明了几个关键字段,其他字段应该从字面上理解就很容易理解了比特币升级版叫什么,不再一一解释。所有这些字段共同形成了块头(block header),然后需要对块头进行两次hash,计算出来的值就是当前比特币块的hash值。因为比特币系统要求计算出来的hash值满足一定的条件(小于一定的值),所以我们需要不断遍历Nonce值来计算新的hash值才能满足要求,前提是hash值满足找到需求,那么这就是合法的区块(这一系列的动作也叫挖矿)

python 示例:SHA-256(SHA-256 (块头)

让我们看一下上面的另一个重要字段:Merkle 树字段。默克尔树全称为默克尔树,它也是哈希算法的一个重要应用。它实际上是用哈希指针构建的二叉树或多叉树。

默克尔树如图:

树的顶部称为 Merkle Root。 Merkle Root 也是一个哈希值。是怎么计算的?

在比特币中,对每笔交易进行一次哈希计算,然后将每2笔交易的哈希值组合起来做一个哈希。如图所示,交易A的哈希值为H(A),交易B的哈希值为H(B),然后将这两个交易的哈希合并为H(hA|hb),然后继续合并计算,直到最后一个根为 Mer kle 根。

Merkle 树结构在比特币和以太坊中都有使用,但以太坊为了实现更复杂的功能而拥有三棵 Merkle 树。

至此,已经介绍了哈希算法在区块链中的应用。接下来,我们来看看非对称加密算法。

二、区块链中的非对称加密算法

区块链中一个很关键的点就是账户问题,但是比特币没有账户的概念是的,那么如何进行转账交易呢?

这里要先介绍一下区块链中的非对称加密技术。

非对称加密技术有很多,例如:RSA、ECC、ECDSA等。ECDSA算法用于比特币。 ECDSA 是美国政府标准,采用升级版椭圆曲线算法,该算法经过多年细致的密码分析,被广泛认为安全可靠。

所谓非对称加密是指我们在加密和解密数据时需要使用两个不同的密钥。例如,我们可以使用 A 密钥对数据进行加密比特币升级版叫什么,并使用 B 密钥对其进行解密。反过来,我们可以用B加密,用A解密。那么如果我想给某人发信息,我可以先用A加密,然后再把密文发给她。得到密文后,她可以用手中的B密钥解密。这两个密钥,一个叫公钥,一个叫私钥。

在比特币中,每个用户都有一对密钥(公钥和私钥)。在比特币系统中,用户的公钥被用作交易账户。我们先来看下图:

如图所示,在第一条交易记录中,是用户U0发起的交易。用户 U1 的代币支付是如何实现的?

首先,用户U0写入交易信息:数据(明文,例如:用户U0转100元给用户U1)

用户U0使用哈希算法计算交易信息得到H = hash(data),然后用自己的私钥对H进行签名,即S(H)。这一步其实是为了防止交易信息被篡改

然后基于区块链网络,将签名S(H)和交易信息数据传输给用户U1

用户U1使用用户U0的公钥对S(H)进行解密,得到交易信息的哈希值H。

同时,用户U1也使用哈希算法计算交易信息数据,得到H2 = hash(data)

比较以上两个哈希值,如果H1==H2,则交易合法。表示用户U0在发起交易时确实拥有真正的私钥,并有权发起自己账户的交易

网络中的每个节点都可以参与上述验证步骤。

这个例子是比特币中一笔交易的签名过程,它结合了哈希算法和非对称算法对比特币交易的数字签名。此外,在比特币中,公私钥的生成和比特币地址的生成也是通过非对称加密算法来保证的。

以上是区块链系统,核心技术哈希算法和加密算法的应用,欢迎交流。