在B站看北京大学肖臻老师《区块链技术与应用》公开课。这边做一下学习笔记,这一节肖老师介绍,BTC的密码学原理。
词条§
- crypto-currency
- cryptographic hash fuction
- collision resistance
- burte-force
- hiding
- digital commitment(digital equivalent of a sealed envelope)
- puzzle friendly
- difficult to solve,but easy to verify
Hash§
Btc利用的密码学原理有两个功能,一个是hash,另一个是签名。
Hash三特性
collision resistance
Hash碰撞不可避免,输入空间远远大于输出空间,例如256hash,输出空间为2的256次方,输入空间可以是无限。 collision resistance不是说不会发生hash碰撞,而是说不能人为制造碰撞。
hiding x->H(x)过程的单向的,无法通过H(x)推算出x。 hiding特性需要输入空间足够大,而且取值结果要足够均匀,使得蛮力求解计算量非常大。
hiding和collision resistance 可以实现digital equivalent of a sealed envelope,可以预测一个内容,把内容hash,公布hash值,然后后面来验证预测结果。hash值可以保证预测的内容不可能被篡改,预测内容在验证前也不会有人知道。
如果输入空间不够大,可以使用拼接随机数方案H(x||nonce)
puzzle friendly
一个输入不好预测输出结果,你只能一个一个算。如何你先得等前面7个0的hash,你想知道什么样的输入满足这样的hash结果,其实无法实现,只能一个一个去实验,没有捷径。
签名§
Btc中的账户管理:创立(public key ,private key)公私钥对。
加密用公钥,解密使用私钥。
btc账户签名用的是私钥,验证用的是公钥。
评论