区块链学习笔记1——密码学原理
学习视频:北京大学肖臻老师《区块链技术与应用》 笔记参考:北京大学肖臻老师《区块链技术与应用》公开课系列笔记——目录导航页
梦开始的地方(狗头)
BTC的密码学原理主要包括两个方面——哈希、签名
一、哈希哈希函数是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出。
比特币系统中哈希函数的三个重要性质- collision resistance:如果x!=y,那么H(x)!=H(y),对一个给定的x很难找到y使得H(x)=H(y)
- hiding:已知H(x)很难推出x
- puzzle friendly:对H(x)的范围是不可预测的
通过collision resistance和hiding两条特性,我们可以实现digital commitment,以预测股票为例,一个人要想预测第二天的股票,但是他不能直接说出他预测的股票到底是哪一个,否则可能会导致人为因素对结果造成干扰,此时他可以给出他所预测的股票的hash值,这时根据hiding的性质,其他人不能得到他预测的股票到底是哪个,等到第二天结果出现时,他只需要公布他所预测的结果,其他人对他的结果计算hash值看是否与昨天公布的值一致即可,这时根据collision resistance的性质,不同的值对应的hash值也不同,所以不会出现他所公布的结果与昨天预测的结果不同的情况
比特币中所使用的的哈希函数是SHA-256
挖矿挖矿实际上就是一个不断测试区块头部中的随机数部分nonce使的整个区块头的哈希值满足某一target的过程 H(block header)
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?