学习笔记1——北大肖臻《区块链技术与应用》
Contents
比特币
一、密码学基础
1、哈希函数
比特币是crypto-currency
加密货币,实际上并不加密,而是公开,用在加密货币的哈希函数称为cryptographic hash function
,比特币的哈希函数为sha-256
。
特点
-
collision resistance
抗碰撞性。
对两个不等输入x
、y
,很难出现使得H(x)=H(y)
的情形,假设哈希函数有256位,共有$2^{256}$种数据。
md5被证明不安全。 抗碰撞性可以用于对m
求H(m)
作为digest验证不变性。 -
hiding
不可逆性。
给定x
可以得到H(x)
,无法逆推。 结合collision resistance
可以实现digital commitment
,或者digital equivalent of a sealed envelope
,将预测的数据哈希值公布,待结果出现后再验证数据做哈希函数,条件是输入需要足够大且具备随机性,通常的方法是拼接一个随机数。 -
puzzle friendly
。
对于给定的随机数值H(x)
,求出对应的x
不存在捷径只能逐步试出。挖矿指找出nonce
,使得H(nonce of block header)<=target
,这个过程只能通过brute-force
,因此也称为proof of work
。挖矿很难,验证很容易。
2、签名
比特币创建账户只需创建一个公私钥对,公私钥应用了非对称加密(asymmetric encryption algorithm)
,运用于签名,即将交易信息用私钥签名,他人用公钥进行验证。产生公私钥需要a good source of randomness
。