Web 3 学习笔记 4 | 比特币的密码学原理
学习资源来源于网络:https://www.bilibili.com/video/BV1Vt411X7JF/?spm_id_from=333.788.videopod.episodes&vd_source=78d7c5d8e1a3143d05472f96461a4e75&p=2
哈希
加密货币(Crypto-Currency)
加密货币并不进行数据加密,而是通过哈希算法和区块链技术保证了交易信息的公开性与不可篡改性。所有的交易信息都被公开地记录在区块链上,但由于每笔交易都被哈希化并存储,外部很难通过公开数据恢复出交易的具体细节或窃取用户的隐私信息。哈希算法在加密货币中的重要性在于,它确保了交易内容的完整性和防篡改性,是区块链技术的一项基础功能。
密码学中的哈希算法(Cryptographic Hash Function)
哈希算法在密码学中有着至关重要的作用,它能将任意大小的数据映射为固定长度的哈希值,并且具有一些独特的性质,确保数据的安全性和有效性。
Collision Resistance(抗碰撞性)
哈希碰撞是指两个不同的输入数据被映射成相同的哈希值。虽然理论上哈希碰撞是不可避免的,但现有的密码学哈希算法(例如SHA-256)设计得非常难以找到碰撞。这意味着,即使两个输入相同的哈希值,看似完全相同,实际对应的原始数据却可能完全不同。因此,哈希算法的抗碰撞性保证了区块链中每一笔交易的唯一性,防止了数据被恶意篡改。实际应用:
在比特币中,每个区块的哈希值是根据区块内容(包括交易记录和前一个区块的哈希)计算出来的,保证了链上数据的一致性。由于哈希碰撞非常难以制造,任何对交易记录的篡改都会导致哈希值发生变化,从而被链上的节点轻松发现。Hiding(隐藏性)
哈希算法的另一个重要特性是其不可逆性,这意味着我们无法从哈希值反推出原始输入。这对于确保数据的安全性至关重要,因为即使黑客窃取了哈希值,他们也无法从中恢复出原始数据。为了进一步增强安全性,哈希算法常常结合使用nonce
(随机数)或salt
(盐值),即在哈希前将额外的随机数据加到输入中,这样即使相同的数据多次哈希,其结果也将不同。实际应用:
比特币挖矿中,矿工通过不断改变“nonce”的值来查找一个满足特定条件的哈希值。每次计算出的哈希值都与其他矿工无关,即便数据相同,由于nonce的不同,最终得到的哈希值也会不同,这增强了系统的安全性。Puzzle-Friendly(抗预测性)
哈希函数的输出是完全不可预测的,这一性质在比特币挖矿中尤为重要。为了“挖出”新区块,矿工必须找到一个nonce
,使得区块的哈希值小于某个预设的目标值。这个过程是通过大量的计算尝试来实现的,虽然找到符合条件的哈希值非常困难,但一旦找到后,验证过程却非常简单。实际应用:
比特币使用的是SHA-256哈希函数,矿工通过反复计算来验证工作量证明(PoW)的正确性。这种设计确保了系统的去中心化性,因为挖矿过程需要消耗大量的计算资源,避免了某一方的控制。SHA-256 哈希函数不仅保证了哈希的不可预测性,而且还具备了抗碰撞性和隐藏性,从而使得比特币网络在面对攻击时更加稳固。
哈希算法的应用场景:
数字承诺(Digital Commitment): 在数字签名过程中,哈希函数常被用来确保数据没有被篡改。例如,发送方首先对信息进行哈希计算,然后将哈希值签名后发送给接收方。接收方可以通过相同的哈希算法重新计算哈希值,如果与签名值匹配,则确认数据没有被更改。
签名
非对称加密(Asymmetric Encryption Algorithm)
非对称加密算法使用一对密钥——公钥和私钥——来实现数据加密与解密。与对称加密不同,非对称加密不需要安全的信道来传输密钥,因此在开放的网络环境中也能保证通信安全。
解决的问题:
对称加密需要一个共享的密钥来加密和解密信息,而这个密钥需要在发送和接收方之间安全地传输。在实际操作中,传输密钥的过程可能被黑客窃听到,因此非对称加密提供了更安全的解决方案。公钥可以公开给任何人,而私钥则保留在发送方自己手中,仅能由其解密。
加密货币中的公私钥应用
在加密货币中,公私钥的作用不仅仅是用于加密和解密信息,而更多的是用于进行数字签名,证明某个交易是由账户的拥有者发起的。比特币使用非对称加密来确保每笔交易的有效性,防止伪造交易。
签名方式:
在比特币交易中,交易发起者首先使用自己的私钥对交易内容进行签名,签名的内容包括交易的发起者、接收者、交易金额等信息。接收者通过发送者的公钥来验证签名的有效性,从而确保交易的合法性。公钥与私钥的关系:
私钥:一个秘密的数字密钥,仅能由账户的拥有者持有,用来对交易进行签名。
公钥:一个公开的数字密钥,用来验证签名,确保交易的发起者确实是私钥的拥有者。
在比特币中,私钥签名的数字货币交易会被广播到网络中,网络中的节点使用公钥来验证签名。如果验证成功,交易就被认为是有效的,并加入到区块链中。这个过程确保了区块链的去中心化和安全性,因为任何人都无法伪造签名或篡改交易内容。
总结
比特币的密码学原理在区块链的实现中发挥了至关重要的作用,哈希算法和数字签名技术确保了比特币交易的安全性、不可篡改性和去中心化特性。通过理解哈希算法的性质(抗碰撞性、隐藏性、抗预测性)和非对称加密的原理,我们能更好地理解比特币的工作机制以及它如何确保数字货币系统的安全性和可靠性。