简单密码学下的理想主义2(day59)

2019-02-20  本文已影响41人  8dbc292f6337

今天来谈下比特币吧!这个让很多人如痴如醉,又爱又恨的新型货币,从诞生到现“被死亡”了一百多次,从去年到现在还在被死亡。

现不谈它的价格,来谈谈它的加密法,起到了什么作用,为什么会诞生?

我们会发现它是一个由价值和技术给合的产物,它会塑造一个新的社会关糸。

现金电子在30年前就有提出这个想法,我们现在的微信支付同支付宝这样的电子货币交易同比特币有本质区别。

比特币不是央行机构发行,直接点对点,收款和支付都是匿名,交易不能更改,不能伪造,数量不能增加,不能产生通货膨胀。这些不由人为操控,只由程序自动设定。

没有中央机构,由程序设定那么一定就要用到加密法。

比特币中的密码学并不复杂,只有2种:一个是SHA256加密法,另一个是非对称钥匙系统。

什么是SHA256?

它就是安全哈希算法,哈希就是Hash, 进行hash函数运算。

Hash函数是这样无论原始数值有多长,多少位,经过hash 运算后,输出的值的长度是固定的。

这就好比一个班上的所有学生,无数男女,胖瘦,高矮统一经过运算后得到一个条行编码,这个编码长度一致,不能通过编码反推岀这个学生是男生还是女生,是高个子还是矮个子。

哈希函数种类很多,比特币用的sha256,256就是经过哈希运算后的256位数的2进制,可以把它看作是一个条形码。

有人肯定会说怎么可能任何数进行运算后就是固定长度,比如以十进制来说,代表2进制最多只有0---99。如果101就没办法记录了。

还记得之前有提到模运算,如果模是100,那么101就是99+2。用二进制记录就是02。

而SHA256函数的运算结果,是一个模为2的256次方的值,所以这个值一定是可以写成256位的。

可能都知道模的运算了,但hash函数到底怎么计算,这个只要记住,运算的结果是一个256位的2进制数就足够了。

为什么要转换256的数字呢?

SHA256的作用

为什么要把一个东西转换成256的数字,其实是为了防止内容被攥改,文件是否岀自原处。

比如:我要上传一篇关于怎么练瑜伽的文章,为了防止别人更改后有人下载跟着练习而伤到自己,那么我就会用SHA256运算一下生成一个值叫S1。

我上传文档后会把s1写上,注明让下载的人也用SHA256算一下,如果有人更改那么算出的“S1”就会不一致。

SHA256这方面运算确实强大,只要有小小的标点改动,运算出的结果就会不一样,并且是无规律可寻的。

看下下面三段文字就知道了

原文1:动静不失,人所易明。S1: 284c4ddd2e5ef97924cc70e90cd02fd792e3fd62
原文2:动静不失,人所易明  S2:991780940ced6e6f910013f2ba2ac732e23601ef
原文3:动静不失人所易明 S3:62e07ce4d7d529a6268841d521bf882d3b385199

看到了吗这还只是改动了标点符号并没有改动文字,算岀的S1就完全不同。

那么比特币把SHA256用在了哪几个方面?

1.支付信息上面

如果薛丁山欠樊莉花100元钱,打了个欠条。但如果有人更改写成薛定谔欠樊少皇100元,那么薛定谔就哭死了。或者把100后面加个万那更哭死了,现转载文章经常会改动原文,张冠李戴。

这个时侯SHA256就派上用场了,任何信息改动都会变成不同的值。但这还不够,如有人恶搞薛定谔欠樊少皇1亿的句子重复在系统发N多次,那么这时就要用到数字签名了,数字签名前面RSA里面提到过。

这样就确保这个欠条信息是薛丁山给樊莉花的。

有了这个算法同数字签名以后江湖恩怨,欠债不还,或恶意造谣的就会少很多,当然完全消失还是可能达不到。

2.交易明了

要形成可靠帐本还要有N多规则,怎么知道薛丁山有100元在帐户,在传统银行一查就知,但比特币是去中心化,无人可以查看他的帐户,那么这时候就通过交易来明确,自己说自己有多少钱别人不会信。

解决办法是每交易一次要以上一次交易作为基础。

如果薛丁山还樊莉花100元时,就要有记录比如窦仙童付过100元给薛丁山,并且薛丁山还没有用,这笔支付就会成立。

这条支付信息就会写成:窦仙童支付薛丁山100元,薛丁山支付樊莉花100元。

加上薛丁山的数字签名同公钥。樊莉花收到标准信息后,该用SHA256确认的确认,该用私钥解锁的解锁,通过一番运算,就可以确认这笔交易。

缺点在哪?

刚只是举了一个特列窦仙童刚好转了100元给薛丁山,但如果转给他的是500元那么怎么办?

这个时候就能像我们微信转帐我发一分,一毛,一块都可以,而比特币不行别人转我多少,我就要转岀去多少,如果500,那么薛丁山就要转500给樊莉花,然后樊莉花再自动退回400给薛丁山。

因为每一笔转帐都经过算好签名标记过,不能再拆分。

之所以这么别扭、这么麻烦,是因为比特币规定了,写入账本的信息必须以之前的交易为基础。之所以要以之前的交易为基础,是因为这套交易系统里没有中央银行。之所以一定要去除中央银行,那就不是技术原因了,而是价值观的问题。

那个价值观,就是无政府主义和理想主义。

不只是中本聪一个人(或许是一群人,一个组织),相当多密码学界的人都是这样的,他们可能平时上班是网络安全专家,下班就是黑客。他们凭借缜密的思维构建了开放的互联网世界,于是就不希望这个世界里有监控,有审查,有墙。

互联网在他们脑中,应该和他们的思想一样,是自由开放的。

由这套理想主义价值观创造的社区,就是开源社区;由这套价值观设计的货币,就是比特币。

比特币到底有没有实际价值明天再讲。

上一篇下一篇

猜你喜欢

热点阅读