木星链 木星链
Ctrl+D收藏木星链
首页 > Ethereum > 正文

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

作者:

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

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

挖矿

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

我们从上往下进行分析:

第一层是:nVersion;

第二层是:hashPrebBlock;

第三层是:hashMerkleRoot,

声音 | 工信部信软司副司长:推动云计算与区块链等技术融合创新:据C114通信网消息,工信部信软司副司长董大健在今日召开“第九届中国云计算标准和应用大会”上表示,工信部将从五方面入手推动云计算产业快速发展。一是持续优化发展环境,规范云计算市场,培育龙头骨干企业;二是加快突破核心技术,加快云计算在自主基础软硬件平台上的适配迁移,推动云计算与5G、工业互联网、大数据、人工智能、区块链等技术融合创新;三是深入推动企业上云应用云;四是完善云计算的标准体系;五是打造安全保障体系。[2019/12/16]

第四层是:nTime;

第五层是:nBits;

第六层是:nNonce;

第七层是:Hash。

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

行情 | A股收盘:区块链板块上涨0.42%:A股收盘,上证指数上涨0.48%,区块链板块上涨0.42%。84只概念股中,51只为涨,3只平盘,30只为跌。涨幅前三为:紫光股份(+7.31%)、中国长城(+3.79 %)、梦网集团(+2.90%);跌幅前三为:东港股份(-2.76%)、精准信息(-1.35%)和远光软件(-1.33%)。[2019/7/25]

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

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

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

声音 | 链塔智库:我国区块链公益事业项目占全球75%:链塔智库于今日发布2018区块链公益事业研究报告。据链塔BlockData不完全统计,区块链公益事业项目共计12个。中国项目共9个,占比75%。大多数为传统公益项目或平台运用区块链技术提升运营效率,少数为区块链创业公司研发。[2018/10/19]

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

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

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

DMG区块链副总裁Steven Eliscu:币价2400美元时比特币矿工即可收支平衡:DMG副总裁Steven Eliscu指出,假设每千瓦时运营成本(主要是电力)为7c,挖矿市场均衡点大约为2400美元,远低于当前币价。不过,最快的蚂蚁矿机S9也只能达到14TH\\/s,需要至少70台才可以满足DMG假设的条件。在其条件下的矿场每petahash的盈利可达6000美元。[2018/3/26]

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

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

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

美国区块链概念股收盘涨跌各异:柯达收涨3.92%,Accenture收涨0.11%,Overstock.com收跌5.32%,Riot Blockchain收跌2.92%,Long Blockchain收跌1.47%,。[2018/3/13]

由于比特币网络里使用的哈希算法是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区块也是这样的情况,这也是我们第一节希望大家多理解的问题。

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

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

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

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

下节预告:什么是哈希

标签:区块链比特币HASHONC区块链证据保全怎么操作比特币市值1万亿美元HashmasksLifetionCoin

Ethereum热门资讯
YAM:Yam陨落:社区治理的极致,自我作死的典范

作者/龚荃宇在DeFi狂欢中,YamFinance是一个相当神奇的项目,它没有明确的项目路径、没有经过代码审计,但仍然吸引了大批用户的参与,最终成为区块链行业走红速度与崩盘速度最快的项目.

1900/1/1 0:00:00
DEFI:简述DeFi重要性、细分种类与面临的挑战

DeFi的优点是使金融服务变得去信任化和无需许可,缺陷来源于智能合约安全性与区块链网络性能。原文:Crypto.com,作者:刘南勋,Crypto.com高级研究分析师本文要点去中心化金融是指基.

1900/1/1 0:00:00
BOA:冰河实验室与比特大陆AI芯片提供方96boards达成合作

北京时间8月5日,冰河分布式存储实验室与全球顶尖的开放芯片平台标准化组织96boards达成合作.

1900/1/1 0:00:00
ANC:简析 DeFi「乐高效应」:YFI如何推动Balancer流动性池发展?

原文标题:《DeFi乐高王国开始构建--Balancer流动性池全解|TokenInsight》撰文:TokenInsight7月29日Balancer屏蔽YFII的事件引起市场对Balance.

1900/1/1 0:00:00
POL:技术解读:波卡如何在平行链之间进行有效的分片?

原文:https://wiki.polkadot.network/docs/en/learn-availability翻译:PolkaWorldPolkadot的可用性和有效性协议使整个网络能在.

1900/1/1 0:00:00
DEX:去中心化交易平台的崛起,二三线交易平台的尴尬

区块链的世界,2020年不出意外,可以被称为DeFi之年。DeFi当前两大最为火爆的项目,一个是借代,一个是DEX.

1900/1/1 0:00:00