比特币:密码学原理

144 阅读4分钟

文章只用做学习区块链,无任何其他用途.

比特币隐含的技术是有意义的,但是挖矿本身除了浪费资源是没有任何意义的.

比特币:密码学原理

比特币被称为加密货币 crypto-currency, 区块链上内容都是公开的,包括区块的地址,转账的金额。

比特币主要用到了密码学中的两个功能.哈希,签名.

  • 哈希函数 SHA-256 的3大特性保证了比特币的安全性。
  • 签名支持了比特币的去中心化功能。

Hash

密码学中用到的哈希函数被称为 Cryptographic hash function,它有两个重要的性质:

图片.png

碰撞抗性 collision resistance

哈希碰撞 collision

用数学公式描述就是:

xy=>h(x)=h(y)设 x≠y\quad => \quad h(x)=h(y)

xyx≠y 两个不同的输入,输出却是相等的,这就称哈希碰撞。它是不可避免的,因为输入空间总大于输出空间。

碰撞抗性

定义 : 存在Hash函数 H(x)H(x), 输入 xx,得到对 xx 哈希过后的yy, 即 H(x)=yH(x) = y.

x=m,H(x)=digest,x,使得H(x)=digest当x = m,H(x)=digest 时, \exists x' , 使得 H(x')=digest

作用 : 给出xx,很难找到xx',除非蛮力求解(brute-force)。

假设 m 就是你的密码, 当有人拿到你的加密过后的密码了,想篡改m值而H(m)不变,则无法做到。

结论 : 哈希碰撞无法人为制造,无法验证,是根据实践经验得来的。

不可逆推 hiding

哈希函数的计算过程是单向的,不可逆的。从 H(x)H(x) 无法推导出 xx.

hiding性质前提是输入空间足够大分布比较均匀。如果不是足够大,一般在x后面拼接一个随机数nonce,如 H(xnonce)H(x||nonce)


正是由于 碰撞抗性不可逆推 结合在一起,才实现了digital commitment(数字承诺,又称为digital equivalent of a sealed envelope) .

图片.png

把预测结果作为输入 xx ,算出一个哈希值,将哈希值公布,hiding 让人们知道哈希值而不知道预测值,最后再将 xx 公布,因为有collision resistance的性质,预测结果是不可篡改的。

事先不可预测 puzzle friendly

除了密码学中要求的这两个性质外,比特币中用到的哈希函数还有第三个性质:

puzzle friendly 指哈希值的预算事先是不可预测的。假如希望哈希值的格式是 00...0XX...X 00...0XX...X ,事先根本无法知道哪个值更容易算出这个结果,还是要一个一个带入蛮力求解。

BTC 挖矿(BTC BitCoin)

比特币浏览器

图片.png

区块编号:761050 Nonce:63,680,305

比特币挖矿的过程中实际就是找一个nonce,nonce跟区块的块头里的其他信息合一起作为输入,得出的哈希值要小于等于某个指定的目标预值 Bits。H(blockheader)targetH(block header) ≤ target。block header 指块头,块头里有很多域,其中一个域是我们可以设置的随机数nonce,挖矿的过程是不停的试随机数,使得block header取哈希后落在指定的范围之内。

puzzle friendly 保证了挖矿过程中没有捷径,为了使输出值落在指定范围,只能一个一个去试。所以这个过程还可以作为工作量证明(proof of work)。

挖矿很难,验证很容易。只需要用公钥去加密查看是否满足.(difficult to solve ,but easy to verify)

比特币中用的哈希函数叫作 SHA-256(secure hash algorithm )以上三个性质它都是满足的。

图片.png

签名

在中心化系统中开户: 进入银行 -> 提供身份信息 -> 办理银行卡 -> 得到 卡号 + 密码

在比特币系统中开账户:
在本地创立一个公私钥匙对(public key ,private key),这就是一个账户。 公私钥匙对是来自于非对称的加密技术(asymmetric encryption algorithm)。

如何证明是你的账户

  • 中心化系统中,有卡号和密码,如果记名的还需要身份信息.
  • 比特币系统中,有 private key 就能证明你是账户的主人(这个private key就算账户的签名).

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 18 天,点击查看活动详情