什么?区块链中的hash算法!施主,快扶老衲起来

hash算法有很多种。比如MD5、SHA1、SH2(SHA224、SHA256、SHA384和SHA512)、SH3、RIPEMD-160。

这些算法理论上都是不可逆的。但MD5算法被王晓云教授于2004年破解,所以它不是安全的。SHA1也被谷歌于2017年破解了,所以也是不安全的。

hash的本质:输入一个不定的字符串,然后输出一个固定长度的值。这个值就是该字符串的hash值。

hash算法除了上面列举的,还有很多种。在一些不是为了加密的,而仅仅是为了获取一个摘要值的场景,那些被破解的算法或者更快速的hash算法都是不错的选择,具体情况具体分析。

区块链中的哈希算法

有句名言:加密算法是区块链的骨骼

而hash算法则是区块链中用到最多的加密算法。

比如,通过hash算法对公钥进行hash,然后计算出来的钱包地址。区块头也要进行hash计算,还有计算交易事务的hash值。还有梅克尔树都是本身就是一颗hash树。

总之hash算法是贯穿了区块链系统的方方面面。

1、区块hash

区块hash指的是对一个区块的区块头进行hash,得到的hash值就是该区块的身份证号,也就是该区块的ID,该值是一个唯一确定的值。

而区块链的区块之间的串联就是通过每个区块的hash值来关联的,然后他们形成一个很长很长的链表结构,这也就是所谓的区块链。

假设现在有一个10000个区块组成的区块链。如果某个人起了歹心修改了第五十个区块。此时该区块的区块头的hash就发生了改变,这时候50号区块就无法和51号进行关联,对不上号了。你会发现要想改变区块链中的数据,你得把所有的区块的所有的hash重新计算一遍。如果区块链足够长,你篡改所有的区块链的代价是非常之大的,甚至是不可能的(这里说的比较谨慎和谦虚)。

相关阅读:自己动手写区块链(Java版)自己动手写区块链-发起一笔交易(Java版)乾隆给魏璎珞转了几个比特币-用excel表格轻松明白区块链的核心概念-UTXO一场区块链大撕逼Blockchain:Internet问世以来最具破坏力的发明

2、merkle树

听到merkle你是不是有点头大。不用管。其实很简单。假如一个区块中有很多笔的交易数据。如果你对整个的交易集合进行hash是不是有点怪怪的。可不可以先计算每一笔交易的hash值,然后再两两合并计算hash,一直递归最后算出一个最终的hash值。这个就是merkle hash。最终的hash值就是多笔交易的集合的hash值,也叫merkle root。

下面画个merkle树:

通过这种层层相扣的计算hash,让你不仅可以知道数据是否被篡改,甚至还能知道哪个具体的交易被篡改。

我们在之前的《自己动手写区块链-发起一笔交易(Java版)》其实就是已经提到过merkle算法,并且还贴出来代码,这里再贴一遍:

这会你也许会说这个merkle树就这么点作用啊。别急,它很厉害的。你发现没,merkle树是一个二叉树。这种树结构在数据校验时会帮我们更快的校验数据。

你知道比特币是一个分布式的网络结构。当一个节点要想同步账本数据时,比如A节点和B节点取得了联系,A从B处同步数据,那么同步过来的数据是不是要校验?

校验时发现同步过来的数据的merkle root和B的不一致。此时就会按照树的方式一层层的去检查,看具体的哪些交易数据被破坏了,检查出来后,只需要下载那些不一致的交易事务就是了。

你会发现,通过这个merkle二叉树,让我们很快地就检索到了有问题的交易事务,这正是树的魅力啊。

原文发布于微信公众号 - ImportSource(importsource)

原文发表时间:2018-09-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

谈谈我对区块链的理解

通过之前研究的十大前景行业(带来高收入的 10 大开源技术,可以涨工资了!)提到人工智能,区块链,大数据都是今年以及2018年的技术热门趋势,本文专门介绍下什么...

29970
来自专栏信安之路

浅谈以太坊智能合约的安全漏洞

智能合约的安全是区块链安全中的热议话题,但其实 89% 的智能合约都存在漏洞,本文将浅谈以太坊智能合约出现过的一些安全漏洞。

19200
来自专栏kalifaの日々

比特币2140年将耗尽?我用python算了一笔账

首先,比特币是一种直接进行点对点交易的虚拟货币,每一笔用比特币进行的交易都需要记账。

10310
来自专栏企鹅号快讯

虾说区块链-57-《精通比特币》笔记十二

一直在说区块链是一系列技术结合后的新的技术架构,那么这里分别介绍下这些相关技术,也涉及到一些扩展开去的相关内容。 ? 区块链-《精通比特币》笔记十二: 2018...

229100
来自专栏企鹅号快讯

《以太坊白皮书》笔记(1)——比特币介绍

#1 State Transaction System State 在 Bitcoin 当中,"state" 代表了所有被挖出且没有被消费的货币的集合 (UT...

23370
来自专栏CDA数据分析师

深度丨解读比特币背后的奥秘丨附中字视频

翻译/校对: Mika 本文为 CDA 数据分析师原创作品,转载需授权 "拥有"一枚比特币意味着什么很多人都听说过比特币。这是一种数字货币,不需要特定政府发行...

209100
来自专栏友弟技术工作室

区块链POW证明代码实现demo

上 一篇主要实现了区块链的 数据层,数据层主要使用的技术就是对数据的校验,求hash。

26630
来自专栏码洞

面向程序猿的比特币教程之数据结构基础

最近才开始了解区块链,花了一些时间使劲钻研了一下,大致理解了比特币区块链的基本结构和运行机制。比特币说复杂也不复杂,但是如果深究下去,绝不是非常简单。

10110
来自专栏华仔的技术笔记

关于Plasma, Plasma Cash & Plasma XT

Plasma白皮书由以太坊创始人Vitalik Buterin和闪电网络白皮书联合创始人Joseph Poon联合编写。Plasma旨在解决以太坊网络目前面临的...

10720
来自专栏圆方圆学院精选

【许晓笛】EOS 区块数据结构

对于一个区块链项目来说,最核心的数据莫过于区块数据,区块数据结构是整个区块链项目的技术基础。不过由于 EOS 项目一直在快速迭代,区块数据结构也不断更新,所以今...

16630

扫码关注云+社区

领取腾讯云代金券