密码学原理
比特币中主要用到了密码学中的两个功能:哈希和签名。
哈希
密码学中的哈希称为Cryptographic hash function,具有三个性质:collision resistance(哈希碰撞)和Hiding、puzzle friendly
比特币中用的哈希函数是:SHA-256,即Serure Hash Algorithm。
一、collision resistance
定义:当x不等于y时,H(x)=H(y)。
collision resistance是客观存在的,但是发生的概率极低,很难在x不等于y时,找到一个H(y)刚好等于H(x)。
collision resistance 的作用在于有人一旦对一组信息摘要(m)进行修改后,几乎不可能找到一个(n) 使得 H(m)=H(n),因此可以根据H(m)不等于H(n) 断定有人对信息进行了修改。
collision resistance 目前无法通过认为制造,MD5已经确认可以人为制造collision resistance。
二、Hiding
Hiding 是指哈希计算的过程是单向不可逆的。
已知x,可以计算出H(x);但是已知H(x),无法推算出x。
$ x --->H(x);H(x) --//-- >x$
Hidding的作用是可以和collison resistance结合在一起形成digital commitment(digital equival of sealed envelope 电子信封)。比如股票预测的结果不能提前公布,否则预测的结果