月亮链 月亮链
Ctrl+D收藏月亮链

区块链:区块链深度学习系列|密码学基础之哈希算法的应用_ONC

作者:

时间:1900/1/1 0:00:00

本系列内容包含:基本概念及原理、密码学、共识算法、钱包及节点原理、挖矿原理及实现。

挖矿

以比特币网络为例,比特币挖矿主要使用到的算法是SHA-256,其具体流程参见下图。

我们从上往下进行分析:

第一层是:nVersion;

第二层是:hashPrebBlock;

第三层是:hashMerkleRoot,

行情 | 在美上市区块链中概股跌多涨少:美股开盘,三大股指小幅下跌,在美上市区块链中概股跌多涨少。嘉楠科技上涨0.12%,人人网上涨8.11%,寺库下跌0.17%,中网载线下跌0.85%,迅雷下跌0.59%,猎豹移动平盘,兰亭集势平盘。[2019/11/26]

第四层是:nTime;

第五层是:nBits;

第六层是:nNonce;

第七层是:Hash。

里面的n代表连续0的个数,该值要小于当前区块难度目标值m,挖到块的条件是前n个比特位全部为0,n越大,难度越大。假设最低难度对应最大目标值为M,则区块难度为:M/m

看过前面课程的朋友应该会有印象,这些全部是区块头中的数据字段。

再来看左边,我们分析一下为什么其中有些是固定而有些是可变的。

动态 | 上上签通过网信办区块链服务备案:近日,国家互联网信息办公室公开发布了新一批的区块链信息服务名称及备案编号,上上签电子签约自主研发的“上上签区块链存证平台”顺利上榜,以区块链技术提升数据存证安全,为客户提供更强的电子合同公信保障。[2019/11/7]

1.版本号和前一个区块哈希是固定的,以比特币为例,假设当前比特币区块高度为N,如果某人想挖接下来N+1区块的话,那么这个时候版本号必须是固定的,前一个区块的哈希必须也是固定的。因为在不存在分叉的情况下,当前区块包含上一个区块的哈希值;

也就是N-1区块的哈希值加上N区块数据算出N区块哈希值,然后將N区块哈希值当成N+1区块的的前一区块哈希值。这里有点绕,希望大家多理解一下;

2.交易Merkle根是可变的,为什么说可变呢?因为在挖矿的时候,肯定会准备一个打包区块,打包区块形成的时候,矿工会根据自己的需求或根据利益算法,将交易打包进去,最后整理成一个Merkle根;

声音 | 社科院工业经济研究所李晓华:区块链技术将降低国际贸易交易成本:中国社会科学院工业经济研究所研究员李晓华表示,新产业革命助力经济全球化。电子商务的发展打破了市场壁垒,使“买全球、卖全球”成为现实。区块链技术将进一步降低国际贸易的交易成本,促进生产和创新要素流动便利化,成为推动经济全球化的重要力量。[2018/9/30]

3.时间戳是可变的,挖矿有个时间范围,在这个时间范围内挖出的矿都为有效,所以在有效时间内的时间是可以任意调节的;

4.难度值在一定周期内是固定的,会随着周期的改变而变化;

5.Nonce是可变的,这里就不展开讲了,忘记的朋友可以翻阅前面的讲解。

在挖矿的时候,到Nonce的时候,由于时间戳和Merkle根都已经经过计算固定了,这时只需要改变Nonce就可以了。此时可以把这7个数据看成一个整体,前面6个数据是X,把X放在哈希函数里面,会出来一个值,比如说Y值。

香港特首林郑月娥:香港金融科技生态蓬勃发展,涵盖区块链等应用研发:6月6日,粤港澳大湾区金融科技论坛在在香港举行。香港特区行政长官林郑月娥表示,目前香港金融科技生态蓬勃发展,业务涵盖区块链、移动支付、网络安全、人工智能、大数据、程序交易等应用研发。香港特区政府很愿意在这个发展过程中扮演一个“促成者”和“推广者”的角色。[2018/6/7]

由于比特币网络里使用的哈希算法是SHA-256,当Y值出来之后,就会得到一个256个由0和1组成的字符串。这个字符串出来之后,它会和X里面的难度值比较大小。

每计算一次,也就是通过了一个Nonce,就会产生一个Y值,Y值会和难度值比较大小,如果Y值小于难度值,此时就找到了一个有效的Nonce,矿也就挖出来了。

生成地址

地址的生成中也用到了哈希算法。从下图可以看到从公钥到比特币地址生成的流程。

亦来云CMO与美国国会议员讨论成立”国家区块链和数字货币委员会“:亦来云CMO李斐发推称,其与美国硅谷国会议员Ro Khanna讨论了关于在美国国会众议院佳能办公大楼成立美国“国家区块链和数字货币委员会“的事宜,并附上了与国会议员的合影。[2018/5/22]

第一层:生成公钥;

第二层:两层哈希算法,SHA-265和RIPMD-160;

第三层:然后双层哈希计算,会产生公钥哈希;

第四层:Base58Check编码;

第五层:经过编码,得到一个编码串,这个编码串就是公钥哈希即比特币地址。

形成Merkletree和交易Hash

在默克树树结构和形成交易哈希里面也使用到了哈希算法。

上图的默克树中,最底层有4个叶子节点,最左边HA下面有个Hash,意思是:Tx表示交易,A表示交易编号。

假设现在使用的哈希算法是SHA-256,那么交易产生时,会对HA、HB分别进行哈希计算,会分别得到2个由256个0和1组成的字符串。同理,HC、HD也会得到相应的字符串,这样四个交易会形成总的默克尔根。

区块链

大家都知道在区块链中,每个区块都是一环套一环衔接上去的,就像一个链条一样。我们通过下面的图片,具体分析一下。

从图中可以看出链的顺序是从下往上增长的,最下面块的高度是277314,这个区块里面包含上一个区块的哈希值:0000…0bdf,这里的0000…0bdf是上一个区块区块头的哈希值。

同理,277315区块里面包含的上一区块头哈希值:0000…2249,也是区块277314的区块头哈希值,即:0000…2249。同理277316区块也是这样的情况,这也是我们第一节希望大家多理解的问题。

这样的情况就保证了任何人可以从某一个区块中,找到这个区块里面包含的上一区块的哈希值,也就是其父区块。

现在我们讨论的问题都是针对于区块链没有分叉的一个情况,到后面我们详细分析区块链分叉之后情况又是怎样的。

通过这三个区块我们能发现,从某种程度上来说区块链就是一个哈希链。最新产生的区块通过哈希值指向上一个区块,上一个区块在指向上上一个区块……一直指向创世区块。通过这个关系,这些区块形成了链条,也就是我们常说的区块链。

这是哈希算法在区块链中常用到的具体应用,大家可以预先想一下,为什么区块链中会使用哈希算法,而不是其他算法呢?后面的课程我们会给大家进行解答。

下节预告:什么是哈希

标签:区块链比特币NCEONCwpc币区块链比特币害死多少人MOYU FinanceIONC

火必交易所热门资讯
SRM:巴比特专栏 | 虚拟财产的刑法属性是什么?_OIN

案件详情基本案情2015年5月至2016年4月间,王某购买他人非法获取的某公司营运的网络游戏账号和密码,后将上述账号中的游戏装备等物品通过互联网变现牟利.

1900/1/1 0:00:00
Qredo:看!这儿有区块链er们仰望的宇宙星空!_SAFEDOG

5月份的时候,链作曾与赛凡科幻空间合作,推出了《三体》官方授权的系列周边,当时受到了不少区块链er的喜爱,系列产品一度售磬.

1900/1/1 0:00:00
CRV:900亿美金市值? 超越以太坊?抱歉,CRV跌了95%!_curve币总量

作者|CRV?Homie“900亿美元市值,超越以太坊”。DeFi项目Curve的治理代币CRV出道即巅峰.

1900/1/1 0:00:00
区块链:李鸣:区块链技术正向平台化组件化集成化演进_人工智能币交易

文章来源:证券日报随着IT向DT转换,数据已经成为数字经济的核心要素,软件工程也在向数据工程转换,区块链等新一代信息技术将成为数据工程的主要工具,来“加工”数据形成基于数据的服务.

1900/1/1 0:00:00
区块链:全球区块链产业发展月报:政策环境持续向好,火爆DeFi拉动投融资再创新高_区块链dapp开发例子

作者:照生前言为更好了解全球区块链产业2020年7月发展状况,01区块链联合零壹智库、数字资产研究院,从区块链投融资、主流加密数字货币行情、政策导向、国内产业发展动态及全球要闻等维度.

1900/1/1 0:00:00
数字货币:数字货币研究成日本央行“重中之重”,精锐部队已就位_CBD

作者:毛利五郎来源:链得得日本支持发行央行数字货币,考虑将其列进“骨太方针计划”。日银表示,数字货币研究现已成为中央银行的“重中之重”.

1900/1/1 0:00:00