比特币中用到了密码学中的两个功能:哈希和签名。
一、加密函数(cryptographic hash function)
1、两个性质:collision resistance;hiding,两个性质结合可以形成digital commitment/digital equivalent of sealed envelope
1)collision resistance
哈希碰撞:x不等于y,H(x)=H(y)
补充:
2)hiding
x——>H(x) 蛮力求解,公布H(x)
H(x||nonce),拼接一个随机数然后进行哈希,保证拼接之后输入足够随机
3)puzzle friendly(比特币中的性质)
挖矿实际上找到一个nonce,nonce跟区块头的其他信息一起作为输入,取得一个函数来进行哈希,使其哈希值落在某个范围,proof of work
SHA-256 ,Secure Hash Algorithm(满足以上三种性质)
二、签名
申请账户即创立一个公私钥对,(asymmetric encryption algorithm),加密用公钥,解密用私钥(接收方的)