主页 > imtoken客户端下载地址 > 区块链加密算法有哪些(分析区块链使用了哪些密码学技术)

区块链加密算法有哪些(分析区块链使用了哪些密码学技术)

imtoken客户端下载地址 2023-04-15 07:32:01

大家在听区块链的介绍时,基本上都会听到这样的描述:区块链是P2P网络、共识协议、密码学、分布式存储、智能合约等多种技术的结合。 那么,问题来了,密码学这个领域很复杂,区块链用到了密码学中的哪些技术?

其实算法主要有两类:哈希算法和非对称加密算法

哈希算法分类:

哈希算法的核心是将任意长度的二进制值明文(文本、图片、音频、视频、硬盘中的所有文件)映射为较短的定长二进制哈希值,不同的明文很难映射为相同的哈希值(即使对明文进行非常小的更改,映射的哈希值也会不同)。

目前常用的哈希算法包括以下几种:

哈希算法的分类

MD5和SHA1已经破解,不推荐使用。 区块链中比较常用的是SHA-256算法,比特币生成地址时使用RIPEMD160算法,以太坊生成地址时使用Keccak-256算法。

哈希算法在区块链中的使用:

区块链中通常使用哈希算法对区块和交易进行哈希运算,得到区块哈希、交易哈希、默克尔根哈希等值比特币用的什么加密算法,用于唯一性验证。

哈希在区块链中的使用

区块哈希表:在区块链中,当前区块包含前一个区块的哈希值,下一个区块包含当前区块的哈希值,它们一一连接形成一个哈希链表,如上图。

Merkle Root Hash:对区块链中的每一笔交易做一次哈希计算,然后将每2笔交易的哈希结合起来做哈希运算,然后一路合并计算比特币用的什么加密算法,直到最后的根就是默克尔。 这个区块被广播到区块链网络,其他节点也会做同样的计算,将自己的计算结果与区块中的默克尔根进行比较,判断交易是否发生了变化。

非对称加密算法分类:

加密算法从大类上可以分为对称加密和非对称加密,如下图所示:

加密算法分类

区块链使用密码学技术通常不是对链上内容进行加密,而是通过密码学技术使账户信息不可篡改。 以比特币为例,主要在以下两种场景下使用上图中的椭圆曲线加密算法:

场景一:使用加密算法生成比特币公钥(具体过程可参考我专栏的【第一问】)

场景二:使用加密算法对交易进行签名,保证交易信息不可被他人篡改。

签名过程:

1、我向小明发起转账交易,转账1个比特币。

2. 对这笔交易进行sha256运算,得到一串哈希值。

3.我用我的私钥加密这串哈希值(也就是签名动作)

4、【交易本身】和【签名交易哈希】发送到区块链后,验证者可以使用我的公钥解密【签名交易哈希】,得到交易哈希。

5. 验证者然后使用[交易本身]进行sha256计算并比较解密后的交易哈希。 如果它们一致,则交易是合法的。 证明交易确实是由私钥持有者发起的。