很多朋友对于区块链的密码技术有和区块链中的密码学不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
本文目录
区块链的密码技术有
密码学技术是区块链技术的核心。区块链的密码技术有数字签名算法和哈希算法。
数字签名算法
数字签名算法是数字签名标准的一个子集,表示了只用作数字签名的一个特定的公钥算法。密钥运行在由SHA-1产生的消息哈希:为了验证一个签名,要重新计算消息的哈希,使用公钥解密签名然后比较结果。缩写为DSA。

数字签名是电子签名的特殊形式。到目前为止,至少已经有 20多个国家通过法律认可电子签名,其中包括欧盟和美国,我国的电子签名法于 2004年 8月 28日第十届全国人民代表大会常务委员会第十一次会议通过。数字签名在 ISO 7498-2标准中定义为:“附加在数据单元上的一些数据,或是对数据单元所作的密码变换,这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(例如接收者)进行伪造”。数字签名机制提供了一种鉴别方法,以解决伪造、抵赖、冒充和篡改等问题,利用数据加密技术、数据变换技术,使收发数据双方能够满足两个条件:接收方能够鉴别发送方所宣称的身份;发送方以后不能否认其发送过该数据这一事实。
数字签名是密码学理论中的一个重要分支。它的提出是为了对电子文档进行签名,以替代传统纸质文档上的手写签名,因此它必须具备 5个特性。
(1)签名是可信的。
(2)签名是不可伪造的。
(3)签名是不可重用的。
(4)签名的文件是不可改变的。
(5)签名是不可抵赖的。
哈希(hash)算法
Hash,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,其中散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,但是不可逆向推导出输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
哈希(Hash)算法,它是一种单向密码体制,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输入经过变化以后得到固定长度的输出。哈希函数的这种单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。
以比特币区块链为代表,其中工作量证明和密钥编码过程中多次使用了二次哈希,如SHA(SHA256(k))或者RIPEMD160(SHA256(K)),这种方式带来的好处是增加了工作量或者在不清楚协议的情况下增加破解难度。
以比特币区块链为代表,主要使用的两个哈希函数分别是:
1.SHA-256,主要用于完成PoW(工作量证明)计算;
2.RIPEMD160,主要用于生成比特币地址。如下图1所示,为比特币从公钥生成地址的流程。
在区块链中一般使用什么加密算法
在区块链中,一般使用两种主要的加密算法:
公钥/私钥加密算法:这种加密算法使用一对公钥和私钥。公钥可以公开分发,而私钥需要保密。只有拥有私钥的人才能解密使用公钥加密的数据。这种加密方法被广泛用于数字签名和身份验证,因为它可以确认数据的来源和完整性。在区块链中,私钥用于确认交易者的身份,而公钥则被广播给网络中的其他节点以验证交易的有效性。
RSA算法:这是一种常用的公钥/私钥加密算法,由Ron Rivest、Adi Shamir和 Leonard Adleman于1978年发明。它是一种非对称加密算法,也就是说,用于加密的密钥和用于解密的密钥是不同的。
ECDSA(椭圆曲线数字签名算法):这是一种基于RSA算法的改进版,使用椭圆曲线密码学,使得签名过程更快速且更安全。在区块链中,ECDSA被用于验证交易的数字签名。
拓展知识:
哈希函数是一种将任意长度的数据(如文本、数字等)转换为固定长度(通常为256位或512位)的摘要的方法。它们非常快且非常安全,因为改变数据中的一小部分(即使是微小的改变)会导致哈希结果的变化非常大,甚至不可逆。这种特性使得哈希函数在区块链中被广泛使用,如区块的merkle树结构、交易的数字签名以及密码学钱包的存储等。
比特币区块链主要使用SHA-256作为其哈希函数,这是由David Chaum和Mayra P. Chilomchik在1997年引入的一种算法。SHA-256提供了一种非常安全的方式来创建区块链并确保交易的安全性。此外,区块链中的Merkle树结构也是基于SHA-256的哈希函数来创建的。
以上两种加密算法和哈希函数在区块链中都扮演着非常重要的角色,它们保证了交易的安全性、完整性和匿名性,同时也确保了区块链网络的去中心化和不可篡改性。
同时,由于区块链中的数据是以区块的形式不断增长的,这些加密算法还被用于创建区块头和区块间的链接,进一步提高了区块链的性能和安全性。
区块链中,前后区块通过哪种密码学技术形成指针
在区块链中,前后区块是通过链式哈希(Chaining)技术形成的指针。
在区块链中,前后区块是通过链式哈希(Chaining)形成的指针。链式哈希是一种利用密码学技术将区块链接在一起的方式,使得每个区块都依赖于前一个区块的哈希值。具体来说,区块链中的每个区块都包含交易数据和一些元数据,如区块的生成时间、哈希值等。
在创建新区块时,会将这些元数据与交易数据一起进行哈希处理,生成一个新的哈希值。这个哈希值将被用作新区块的“指纹”,以便将其链接到前一个区块。
为了实现这一点,区块链网络中的所有节点都会维护一个公开的“区块链”数据库,其中包含了所有已发布的区块及其对应的哈希值。当一个节点接收到一个新的区块时,它会检查该区块的哈希值是否与前一个区块的哈希值匹配。
如果匹配,说明这个新的区块是有效的,并且被链接到了正确的位置。如果不匹配,那么这个新的区块就会被拒绝,并可能引发交易的失败或区块链的分裂。
这种链式哈希技术确保了区块链的完整性,因为任何篡改或添加都可能导致哈希值的变化,从而被其他节点检测到。此外,由于每个区块都依赖于前一个区块的哈希值,因此攻击者通常需要同时篡改多个区块才能篡改整个区块链。综上所述,区块链中的链式哈希技术通过使用密码学技术将前后区块链接在一起,从而保证了区块链的完整性和安全性。
好了,文章到此结束,希望可以帮助到大家。
原创文章,作者:,如若转载,请注明出处:https://www.peipei.net/79994.html