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

哈希函数

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

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

以上两个性质结合,使用场景: digital commitment。预测涨停股票的例子。
h = hash(x + nonce) 。事先公布h;事后公布x + nonce【为了保证输入空间足够大且分布均匀,在x的后面拼接随机字符串nonce】

性质3:puzzle friendly
哈希值的计算,事先是不可预测的。如果希望哈希值落在某个范围内,则只能进行一次一次的计算。
比特币挖矿的本质就是找一个随机数nonce,使该随机数与区块块头的其他信息合在一起做为输入,其哈希值小于等于指定的阈值。工作量证明。

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

签名

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

0
比特币的共识机制 Golang踩坑集锦

没有评论

No comments yet

发表回复

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