位置:编程技术网 > 运维管理 > 正文 >

透视区块链里的密码学

2020年06月30日 10:53来源:未知手机版

ami不雅照,台庆房产,碳布胶

透视区块链里的密码学 2020-06-29 08:45:24 独角兽财经 >外汇天眼APP讯 : 大多数人对区块链的理解还只是一个大概印象,虽然很多人都认为区块链是去中心化的可信基础,但只有少部分人可以理解其中的具体原因。现在谈到的区块链,其实是基于一系列密码学算法构建而成的。对于非密码学专业的人来说,理解起来是很艰涩的。

本文,我们将从密码学的角度对整个区块链结构进行一个整理讲解。针对具体的密码学技术,尽量使用通俗的例子,希望能帮助大家增加对区块链的理解。

账户

深入学习区块链之前,我最好奇的就是每个人的账户在一个分布式系统中都是如何生成的。

毕竟在中心化系统中,账户是由服务方进行生成和验证的。比如我们申请微信号,微信号是腾讯在他们自己的服务器里帮我们创建并管理。但在区块链系统中没有一个中间企业帮我们创建账户,那在区块链里是如何生成账户的呢?

安全随机数

这里就需要引入密码学里的第一个概念,【安全随机数】,即在本地随机生成一个字符串,也就是我们的私钥。由安全随机数算法生成的随机数,我们可以无限假设是安全的。

比如,现在允许你在全宇宙中随机选择一个原子,不做标记,然后让你的朋友在不知情的情况下找出这个原子,你可以想象一下这个难度,而基于不同的足够安全的随机数种子生成相同的随机字符串的概率比找到那个【原子】还低的多得多。因此,虽然我们都是在本地生成区块链私钥,但是完全可以认为是安全的。

公钥算法

通过安全随机数算法生成了私钥,那么如何通过私钥生成公钥以至地址呢?这里就需要引入第二个密码学概念【公钥算法】。

【公钥算法】通俗来讲就是公钥加密,私钥解密,任何拥有你公钥的人都可以用你的公钥来对数据进行加密,但是只有对应的私钥才能对这个数据进行解密。就好比是你造了保险箱,任何人都可以把他的东西放在保险箱里,然后锁上箱子,一旦锁上只有你才能打开。这个公钥算法在区块链里用的是椭圆曲线,原理则是数学上对大数进行因数分解的困难。

比如,大家都知道 6 可以由 2 乘上 3 得到,这个很简单,但如果给你超级大的数呢?比如一千位?两千位?你可能会想着用自己的电脑来计算,毕竟数学已经发展这么多年计算机算力也几何式增长,肯定算得出,但是很遗憾的告诉你这个时间是成千上万年,足够我们每个人回归地球母亲了。

给一个足够长的私钥,我们可以得到一个公钥,基于大数因数分解的困难性,没有人可以通过这个公钥计算出私钥,这样我们就得到了一个区块链账户。这个账户仅仅包含私钥和公钥,那么我们通常使用的地址又是怎么来的呢?

简单来说我们通常使用的地址就是公钥的小名,比如迪丽热巴·迪力木拉提是迪丽热巴的全名,但是这个名字太长了,所以我们通常叫她热巴。公钥也是这样,虽然公钥的长度保证了安全性,但在使用时没这个必要,毕竟数据是要存储起来的,没必要的数据也就没必要存在,因此我们对区块链账户的公钥进行了一系列的【哈希】操作,并添加一些版本信息以及校验信息等等生成我们最终的区块链地址。后文也将提到这个重要的密码学概念【哈希/摘要】。

以上介绍了区块链里的账户,基本逻辑就是 随机数 私钥 公钥 地址。随机数是不可重复的,公钥和地址是可以计算的,因此你一定要保护好自己的私钥,有私钥,有一切。没私钥,那你可能也要像英国小哥一样天天在垃圾站扒拉自己的硬盘了。

交易

交易对于大对数用户来说,算是了解区块链最多的地方了,毕竟大家用区块链主要还是为了【交易】。假如最开始中本聪提出的比特币没有币这种激励概念,那恐怕无论区块链还是比特币现在都早就被遗忘了。

国内现在习惯使用支付宝和微信来进行转账发红包,这个过程是由支付宝和腾讯这种中心化机构来帮助我们处理的。

本文地址:http://www.reviewcode.cn/yunweiguanli/153250.html 转载请注明出处!

今日热点资讯