比特币中运用到的密码学原理

哈希函数

性质1:哈希碰撞 Collision resistance

  • 输入空间无限,而输出空间有限。因此hash碰撞一定存在。
  • 但是在给定x的情况下,很难找到一个y,使h(x) = h(y)

性质2:单向性 hiding

  • 给定x的情况下,能计算出其hash值h(x);但是在给定hash值h(x)的情况下,不可以计算出x
  • 前提:输入空间足够大且分布均匀

性质3:puzzle friendly

哈希值的计算,事先是不可预测的。如果希望哈希值落在某个范围内,则只能进行一次一次的计算。

比特币挖矿的本质就是找一个随机数nonce,使该随机数与区块块头的其他信息合在一起做为输入,其哈希值小于等于指定的阈值。工作量证明。

比特币中用的哈希函数为:SHA256 (Secure Hash Algorithm)

签名

比特币开户:本地生成一个公私钥对。比特币发起一笔转账时,使用自己的私钥进行加密(签名),其他人使用我的公钥进行解密(验证)。

0
比特币的数据结构 Golang 踩坑集锦

没有评论

No comments yet

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注