目录
前言
学习肖臻老师的《区块链技术与应用》公开课笔记,供学习参考。
比特币中的密码学原理
1.哈希
- 密码学中使用的哈希函数(crypotographic hash function)
密码学中使用的哈希函数有两个重要的性质
- collision resistance(防碰撞)
collision指哈希碰撞:x≠y H(x)=H(y) 两个不同的输入,输出却是相等的。因为输入空间总大于输出空间,因此不可避免。除非暴力求解,很难根据x找到y。
根据人们的实践经验已证实,哈希碰撞是不可人为制造的。
- hiding(不可逆)
哈希函数的计算过程为单向的不可逆的。该性质的前提是输入空间足够大,分布较均匀。
以上两种性质结合在一起,可实现digital commitment (又称为digital equivalent of a sealed envelope):
将预测结果X输入计算哈希值Y,公布哈希值Y,最后公布X。在此过程中X不可被篡改。
- 比特币中使用的哈希函数
比特币中使用的哈希函数在密码学的基础上增加了一个性质:
puzzle friendly (不可预测)
即哈希值的计算是不可预测的
2.签名
在比特币中开户是在本地创立一个公私钥匙对(public key ,private key),来自非对称的加密技术。
在信息交流中公钥用来加密以及验证签名,私钥用来解密和签名,公钥和私钥互不相同。当公钥和私钥相同时,为对称加密。在非对称的加密技术中公钥就像我们的银行卡的卡号,而私钥是我们的银行卡的密码,别人如果给我们转钱只需要知道我们的银行卡号就可以了。
但是产生公私钥以及签名的时候都需要有一个好的随机源,防止产生相同的公私钥或者泄露私钥。