课程链接:【北京大学肖臻老师《区块链技术与应用》公开课-哔哩哔哩】 https://b23.tv/zuoJ6J0
前言
说到区块链就不得不提比特币与以太坊
(密货币大爆发而导致比特币价值增长迅猛,本课主要讲比特币和以太坊这两种加密货币)
下面就讲一下原理
比特币主要用到了密码学两个功能,一个是哈希,一个是签名。
哈希:
密码学中的哈希函数被称为Cryptograhic
它有两个重要的性质
哈希碰撞
原理:x≠y,设哈希函数为h
H(x)=H(y)
两个不同的输入,但是哈希值是相同的。(这是不可避免的,因为输入远大于输出,输入位是无限,但输出位数是有限的)
但碰撞终归是碰撞,想找到两个相同的值,太麻烦了。
这时候就要用哈希有一个性质:Collission
它可以对一个message求digest。
比如我们有一个message叫m
取他的哈希值为H(m),这个哈希值就可以是Message digest,可以用来检测对这个哈希值的篡改,如有篡改了message的内容,那么,它的哈希值整体就会发生变化。
这个性质就是说你找不到一个H(m’)=H(m),(m')为篡改后的message,篡改之后是一定会被检测出来的。
如果有一个很大的文件,你把它存储在服务器上,想要知道你下载的版本有没有篡改,就可以利用这个特性,前后对比(理论上)
MD5【MD5为何不再安全-哔哩哔哩】 https://b23.tv/JdFCnuO
因为人们可以斩获人为制造哈希碰撞的方法,于是这种加密不再安全。
②不可逆性(hiding)
X→H(X),但不可逆,除非用彩虹表。
然后可以性质结合
sealed envelope(预测结果作为输入的x,算出哈希值,然后公布出去,第二天收盘之后再转化为大众可以理解的发出来。)(*但我个人感觉这里面主要还是靠信任,若你信任的一方变得不可信,那结果也会不可信,不专业的个人猜测,假如我准备了两个结果一个是涨停,一个是不涨停,由于是中间人保管的性质,要是我买通了中间人,在股市涨的时候把停的预言给抽出去,当然,要是有一堆校验或者有次数限制,不可删除的特性,公众全看着的话,当我没说,[你哈希特性不可更改但你没说不可删])
*比特币的第三个性质:
哈希值的计算事先不可预测,你事先不知道哪个值更容易算出这个哈希(固定)来
前面限制了一些东西000…但后面是随机的,需要你算出一个指定的哈希值
0000…xxxxx<指定哈希数
求xxxxx,只能一个个试。(要小于等于指定哈希值)
比特币用到的。哈希函数叫sha-256。
签名:
比特币要开户的话,非常简单,创造一个公钥与私钥。(非对称加密,详情可看看密码学)
加密公钥解密私钥,签名用私钥(相当于密码),验证签名用公钥(相当于个人账户)。
先生成一个哈希,然后再用哈希签名。