自学区块链(一)

咱先了解下比特币的密码学原理

主要用到了密码学中的哈希签名

这个哈希函数(密码学中要求)的主要性质是 

1、首先是无法人为的制造哈希碰撞,也就是说有人对m做了改变,那么他的m的哈希值也会变化

2、哈希函数的计算过程是单向的,不可逆的,知道了哈希值没法得到输入值(在输入空间足够大,且输入分别均匀,这样避免蛮力破解)。

BTC中用到的哈希函数还要求第三个性质

3、无法预测出哪个输入更有可能算出某个哈希值。想要算出来的哈希值落在某一个范围内,只能一个一个的试,没有捷径(也就是挖矿)

什么是哈希碰撞呢,就是x不等于y,但是H(x)=H(y),两个不同的输入,经过哈希函数之后,会存在这两个值相等,这个现象是客观存在的。是因为输入的范围大于输出的结果域,导致肯定会有不同的输入映射同一个输出。

挖矿的过程:做一系列的哈希运算,当运算得到的哈希值符合目标规则,即为挖矿成功,也就是寻找Nonce参数的过程,这个Nonce和区块的其他信息合在一起作为输入取一个哈希值,这个哈希值小于某个目标值。

挖矿很难,需要花费很多工作量,但是验证很简单(这也是BTC一个性质)。验证只需将参数代入取哈希就能验证出来。

BTC用得到的哈希函数是SHA-256

BTC

签名

BTC中的的账户管理,去中心化的管理,每个用户自己决定开户,创建一个本地的公私钥对(来自非对称加密体系),公钥相当于银行账户,私钥相当于账号密码。

签名呢就是,我用我的私钥签名,之后你用我的公钥来验证身份(签名是验证身份的,避免BTC被其他人转账出去)。这个是与加密相反的。

非对称加密:区别于对称加密,传递信息是用对方的公钥加密(公钥是可以开放的),对方接到信息是用自己的私钥解密。

对称加密:是我用这个秘钥加密,你也用这个秘钥解密。但是由于秘钥分发这个就很不方便,在网上分发也会有被窃听的风险)

理论上两个人生成的公私钥对相同,他是能偷走你的币,但是现实是几乎不能实现的(只要是好的随机源,产生公私钥都是随机产生的,暴力破解基本不可能)。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容