什么是数字指纹SHA算法非对称加密,不能再通俗了

Posted 李少主区块链

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是数字指纹SHA算法非对称加密,不能再通俗了相关的知识,希望对你有一定的参考价值。

什么是数字指纹、SHA算法、非对称加密,不能再通俗了(二)


文 | 李少主


李少主,比特币及区块链行业推广者,6年从业经验。

致力于数字货币的研究,欢迎有识之士共同探讨区块链!

什么是数字指纹、SHA算法、非对称加密,不能再通俗了(二)


接上篇。


第9步

同步账本


比特币为什么要挖矿?

中本聪为什么要规定新区块的数字指纹的前72位数必须是零?

通过这种方法可以控制新区块的生成速度,给账本同步留出时间。

数字指纹是二进制,每一位数只有0和1两种可能性。因此,找到一个这样的数的概率是2的72次方分之一,即

1/4722366482869645213696

这个概率非常低。如果不进行这样的规定,那么每个人都会很容易的添加一个区块。也就无从争夺记账权,更不能对节点产生激励。

什么是数字指纹、SHA算法、非对称加密,不能再通俗了(二)

通过这样一种规定,矿工们去争夺记账权。按照目前的算力,大概每十分钟才能找到一个这样的数值。当然,这个时间并不是固定的,最快只需要三四分钟。而别的节点同步最新的账本也只需要三四分钟。这样就保证了账本的一致性,免得混乱。

这种方式还可以控制挖矿的速度,确保比特币产量的稳定。

如果将72的规定改为73,即要求前73位数都必须是零,挖矿的难度就增加了一倍

中本聪将比特币产量设定为每增加21万个区块之后,币的奖励减半,直到2140年不再有新的比特币产生。

平均每十分钟产生一个新的区块,产生21万个区块的时间是210万分钟,约等于1458天,大概是四年。


第10步

分叉与合法性


如上,这个数值非常难找。但有一种可能性不能排除,如果两个矿工同时找到了一个前72位数都是0的SHA值该怎么办?尽管这种可能性很小,但是并不能排除。

实际上,这种情况时不时就会出现一次。由于网络情况不同,有些节点收到的是某一个新区块,别的节点收到的是另一个区块,按照前面的规定,这两个区块都是合法的

这里就引出了另一个常见的概念——分叉。

比特币网络设定先搁置争议,两个区块都暂时保留,做一个临时的分叉

什么是数字指纹、SHA算法、非对称加密,不能再通俗了(二)

尽管出现了分叉,但是挖矿并不会停止。别的节点还在继续争夺记账权。

下一个区块出现时,系统规定该节点必须把这个区块接到其最先收到的区块上。如果它先收到的是区块1,那就接在区块1后面。如果它先收到的是区块2,那就接在区块2后面。

然后把这个信息广播到全网。

只要哪一个节点更长,就被认定为合法。比特币只认定最长的链条是有效的。另外一条分支随机被放弃,里面的交易被认定无效。如果再在上面添加区块也就是非法的了。

如果再次发生小概率事件,两个分叉都被接上了新的区块。那么就继续保留分叉,直到两条分叉比出长短。


第11步

等待交易确认


分叉后,短的链条上的交易会被取消。这是比特币用户必须注意的一点。

这提醒我们,如果通过比特币进行交易,不能立刻就认定万事大吉,必须一定数量的新区块生成,交易没有被认定无效,才可以肯定交易已经成功了

一般需要三个区块可以确认交易成功。也就是说,如果生成了三个区块之后,交易仍然没有被取消。就可以认为交易确认。

刚才说到,一个区块的产出时间大约是十分钟。大概三十分钟才能确认一笔交易。

对于大额交易来说,需要六个新区块才能确认交易。比特币规定大额交易优先打包,所以这个时间还是可以等待的。但对于小额交易来说,比特币并不实用,等待的时间太长。

比特币每个区块的大小是1MB,最多能容纳4000笔左右的交易。随着交易越来越频繁,比特币网络的拥堵越来越严重。很多小额交易要排很长时间的对才能得到打包确认。

比特币每个区块的产生时间平均是10分钟。用4000笔除以600秒,也就是6.67笔。这也就是我们常说的,比特币的处理速度大概是每秒钟7笔。当超出这个数量的时候,就要排队等待。

我们要知道,2017年天猫双十一,支付宝的处理峰值是每秒钟25.6万笔(数据库处理峰值每秒4200万次请求),也就是每分钟1536万笔。同支付宝相比,比特币的处理速度还无法支持日常使用。即便是现在最热的EOS也远远达不到这样的容量。

比特币优先处理大额交易,以防止有人恶意进行大量小额交易堵塞网络。但是这样的措施作用有限。

这也导致了比特币的一次硬分叉,分出了比特现金(BCH)。比特现金的区块大小是8M,能容纳的交易大幅增加。截至发稿前,BCH的价格是9111元人民币,市值1561亿元,是目前市值第四大的数字货币。

比特币有2100万个,但它的最小单位并不是“个”。否则很明显是不够用的。有些文章里说比特币可以无限细分,这也是错误的。怎么可能有一种货币没有其最小单位呢?这种货币要怎么使用?

一个比特币可以被分为一亿份,0.00000001个比特币是最小的单位,被称为一聪。这是脚本语言支持的最小单位。“聪”这个单位名称来自于中本聪。


第12步

提币与钱包


提币,顾名思义就是把比特币从交易所提到自己的钱包里。

前面我们讲的是比特币交易及其系统运行的基本原理。

我们想要获得比特币有两种途径:

一是挖矿

二是购买

刚才说到,找到一个前72位数都是零的SHA值的概率是1/4722366482869645213696。对于普通家用电脑来说,这种概率可以忽略不计。使用电脑挖矿基本上不能再获得比特币。

现在挖矿的都是专业的矿场,使用的是专业的ASIC芯片。当然,开矿场的机会是平等的。只要有钱买矿机就可以开矿场,但购买矿机的费用和矿场运行的电费肯定是一笔巨资。

大部分人获得比特币的方法只有第二种,通过交易所进行购买。

我们之前讲解过怎么在交易所购买数字货币。(参考《》,方法是一样的。)买完之后,这些数字货币仍然存在交易所里。如果对交易所的安全性不放心,我们可以把它提到自己的钱包里。

在交易所页面上很容易就能找到提币入口。钱包本身就是区块链的账户。就好比银行卡号,一个人可以有多个钱包。提币的具体方法我们以后继续讲解。也可以参考“晓说区块链”的文章《》。

本文不作为投资建议

投资有风险,入市需谨慎

原创不易,欢迎点赞转发

李少主致力于区块链研究



以上是关于什么是数字指纹SHA算法非对称加密,不能再通俗了的主要内容,如果未能解决你的问题,请参考以下文章

RSA/SHA1加密和数字签名算法在开放平台中的应用

linux-ssh加密与https安全-9

公钥、私钥、哈希、加密算法基础概念

非对称加密算法都有哪些,安全性能对比

每周精选能不能给我解释一下非对称加密?

算法2_非对称加密算法之ECDSA(椭圆曲线数字签名算法)