火星链 火星链
Ctrl+D收藏火星链
首页 > 瑞波币 > 正文

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

作者:

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

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

挖矿

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

我们从上往下进行分析:

第一层是:nVersion;

第二层是:hashPrebBlock;

第三层是:hashMerkleRoot,

美国电信巨头Verizon利用区块链确保新闻透明度:金色财经报道,美国电信巨头Verizon宣布推出一款基于区块链的验证工具,旨在为企业新闻编辑室带来透明度和问责制,将改变客户与新闻发布的互动方式。[2020/10/31 11:17:02]

第四层是:nTime;

第五层是:nBits;

第六层是:nNonce;

第七层是:Hash。

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

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

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

WinterGreen Research正开发区块链投票应用程序:金色财经报道,WinterGreen Research和政府区块链协会(GBA)正在开发一款投票应用程序,该应用程序使用区块链技术“使欺诈行为可被检测”。WinterGreen Research总裁Susan Eustis表示,她预计COVID-19将加速其应用。该应用程序的实施必须被逐州批准,Eustis已经与一些州级官员进行了对话,并对在11月美国总统大选之前及时采用表示乐观。Eustis称,他们正在为该应用探索几个私有区块链,开发人员将很快公布。GBA正在为该应用程序制定区块链标准,如果该应用程序被采用,WinterGreen Research将培训选举官员。[2020/4/23]

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

动态 | 沙特海关试点通过区块链运输:据freightwaves报道,沙特阿拉伯海关部门成功地通过TradeLens试点了首次发货。TradeLens是马士基与IBM合作开发的基于区块链的平台。这批货物从沙特阿拉伯港口达曼起航,登上马士基号(Maersk Sebarok),抵达鹿特丹港,从鹿特丹被装上卡车,运往比利时的最终目的地。[2019/5/22]

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

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

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

声音 | 王和:应尽快建设基于联盟链的湾区金融监管区块链平台:据中国经营网报道,国务院全国保险专业学位研究生教育指导委员会委员、中国保险行业协会交强险专家咨询委员会委员王和对记者表示,“科技给了‘保险粤港澳大湾区’建设以基础性保障,尤其是区块链给了‘跨界’监管以技术可能。因此,要高度重视粤港澳大湾区保险科技发展、规划与协作,避免重复投入。同时,应尽快建设基于联盟链的湾区金融监管区块链平台,配合‘监管沙箱’技术,为粤港澳大湾区的保险创新先行与先试,提供技术支持与保障。[2019/2/19]

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

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

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

动态 | 区块链知识产权平台推出临时专利申请登记功能:据bitcoinexchangeguide报答,区块链知识产权平台LOCI推出临时专利申请登记功能,发明人将能够以有效的方式快速提交临时专利。[2019/2/1]

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

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

生成地址

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

第一层:生成公钥;

第二层:两层哈希算法,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区块也是这样的情况,这也是我们第一节希望大家多理解的问题。

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

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

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

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

下节预告:什么是哈希

标签:区块链比特币NCEONC区块链域名如何注册比特币市值最高多少亿美元Louvre FinanceElonCryptoGod

瑞波币热门资讯
CTR:Electric Capital第二只加密基金筹集1.1亿美元,寻求第1层协议与去中心化市场机会

据TheBlock8月3日报道,风险投资公司ElectricCapital完成第二只基金的募集工作,从机构投资者处共筹集了1.1亿美元,以用于投资下一波加密货币企业.

1900/1/1 0:00:00
ChainLink:一天内跌超15%,Chainlink市值被比特币现金超越

据比推数据,在过去一段时间连续上涨的Chainlink过去24小时跌超15%,在价格跌破16美元的同时,市值也被此前排名第六的比特币现金超过.

1900/1/1 0:00:00
DEF:DeFi总锁定价值(TVL)越高意味着越成功?NO,我们需要一种新的排名标准

重要要点:锁定总价值是衡量智能合约中抵押品的重要度量方式。Compound的供应和贷款来源比Aave高,但Aave的TVL排名却更好.

1900/1/1 0:00:00
DEF:涨幅达50倍的DeFi项目YFI之后,如何应对前赴后继的山寨项目?

昨天的行情简直像过山车一样,又让多少投资者见证了不可思议的情形:整个大盘先是在比特币、以太坊的带动下一路猛涨,比特币迅速突破了12000美元、以太坊迅速突破了400美元.

1900/1/1 0:00:00
加密货币:量化产品杠杆比率缩小 市场行情存在不确定性

上期回顾受黄金大幅上涨,地缘紧张等因素带动比特币等主流数字货币大涨。成交额的持续增长,以及各利好消息的加持,BTC已经突破压力位,已打开上涨空间.

1900/1/1 0:00:00
以太坊:以太坊经典网络近期事件分析

来源:ETCCore2020年7月31日以及2020年8月5日,以太坊经典网络经历了两次大规模的链重组.

1900/1/1 0:00:00