区块链哈希值显示失败 区块链中的哈希算法

发布时间:2025-12-17 19:08:02 浏览:4 分类:比特币资讯
大小:509.7 MB 版本:v6.141.0
欧易官网正版APP,返佣推荐码:61662149

一、区块链与电子存证的基础——哈希值简介

哈希函数,作为区块链和电子存证的基础概念,其核心在于将任意大小的数据映射成固定长度的哈希值。"哈希"一词,源于英文原文"hash",意指将数据打散,而非译为"哈希",更符合其原意。哈希值,即通过哈希函数计算得出的输出,它不仅便于快速计算,还具有"雪崩效应",这意味着即使原始数据发生微小变化,其哈希值也会显著不同。例如,“今天天气好”和“明天天气好”两个字符串,其MD5哈希值分别为“0726205e5de6f71d8d2fcd5f0d61d77b”与“8391488c2e9fbf9e8cf1e59c2a01f78b”,直观展示了哈希函数的随机化特性。哈希函数是一个单向过程,仅能从原始数据计算出哈希值,却无法反向计算出原始数据,这一特性为数据的安全提供了保障。

哈希函数的摘要长度因算法不同而有所差异,如MD5摘要长度为128位(32个半角字符),SHA-1为160位(40个半角字符),而SHA-256则为256位(64个半角字符)。尽管摘要长度不同,但所有哈希值都是有限的,而原始数据理论上是无限的,这就导致了两个不同的数据可能具有相同的哈希值,即“碰撞”现象。MD5哈希函数最多可以生成2128个不同的摘要,这一数字看似庞大,实则巨大到难以想象。以一个假设的例子来说明,假设有一万亿台计算机,每台每秒生成一万亿个消息,这些机器连续工作一年,产生的消息数量远小于MD5哈希函数的可能输出,更不用说在更长时间内产生的消息数量。尽管发生碰撞的概率理论上较低,但MD5和SHA-1已被成功破解,因此它们不再适用于高安全性需求的场景。SHA-2系列,尤其是SHA-256,因其良好的“雪崩效应”和单向性,成为更安全的选择。

哈希函数在文件验证方面具有重要作用。通过计算文件的哈希值并与另一文件的哈希值对比,可以高效地判断两个文件是否相同。尽管MD5和SHA-1已被破解,但它们依然具有很好的“雪崩效应”,这意味着人为制造的两个文件,即使进行了微小改动,其哈希值也几乎不可能相同。这一特性为文件的完整性提供了可靠的验证手段。

二、区块链中的哈希值是什么意思

如果你对区块链领域有所了解,那么你一定听说过哈希值,或许我们在浏览区块链信息时会经常看到哈希值,但是如果让我们说说哈希值到底是什么,可能我们也并不能说明白。我知到,虽然很多人都已经进入币圈很久,但是对于区块链领域的一些概念还处于一个一知半解,知道又不完全清楚的状态。其实哈希就是一种压缩信息的方法,我们可以通过哈希将很长的一段文字压缩成一小段乱码,那么区块链中的哈希值是什么意思呢?现在就让我来为大家详细的讲解一下。

哈希值是将任意长度的输入字符串转换为密码并进行固定输出的过程。哈希值不是一个“密码”,我们不能通过解密哈希来检索原始数据,它是一个单向的加密函数。

区块链哈希是什么?如果是刚开始了解区块链,就需要结合“区块”的概念来一起理解了。每一个区块,包含的内容有数据信息,本区块的哈希值以及上一个区块的哈希值。区块中的数据信息,主要是交易双方的地址与此次交易数量还有交易时间信息等。而哈希值就是寻找到区块,继而了解到这些区块信息的钥匙。以上就是区块链中哈希的含义了。

区块链通过哈希算法对一个交易区块中的交易信息进行加密,并把信息压缩成由一串数字和字母组成的散列字符串。金窝窝集团分析其哈希算法的作用如下:区块链的哈希值能够唯一而精准地标识一个区块,区块链中任意节点通过简单的哈希计算都接获得这个区块的哈希值,计算出的哈希值没有变化也就意味着区块链中的信息没有被篡改。

在区块链中,每个块都有前一个块的哈希值,前一个块被称为当前块的父块,如果考虑父块有一个当前区块。它将会有上一个块的哈希值即父块。

在区块链中,每个块都有前一个块的哈希值。当我们更改当前块中的任何数据时,块的哈希值将被更改,这将影响前一个块,因为它有前一个块的地址。例如,如果我们只有两个块,一个是当前块,一个是父块。当前块将拥有父块的地址。如果需要更改当前块中的数据,还需要更改父块。当只有两个数据块时,很容易更改数据,但是现在,当我们在区块链中实现时,2020-01-24 12:32已经挖掘了614272个块,而614272(th)块的哈希值为00000000000000000007 a6be31011560f1e3abe8f125e356a31db6051753334e。如果我们要更改当前块614272(th)中的数据,614271块的哈希地址必须更改,但是614271块的哈希是不可能更改的,所以这就是区块链被称为不可变的,数据可信的。区块链的第一个块,称为起源块。你可以从这个起源块中看到有多少块被开采到现在。

如果我们对输入的任何部分做一个小的改变,输出就会有一个大的改变,请看下面的例子以获得更多的理解。哈希值是区块链技术不可变的和确定的潜力核心基础和最重要的方面。它保留了记录和查看的数据的真实性,以及区块链作为一个整体的完整性。

#比特币[超话]##数字货币##欧易OKEx#

三、区块链几大共识机制及优缺点

首先,没有一种共识机制是完美无缺的,各共识机制都有其优缺点,有些共识机制是为解决一些特定的问题而生。

1.pow( Proof of Work)工作量证明

一句话介绍:干的越多,收的越多。

依赖机器进行数学运算来获取记账权,资源消耗相比其他共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错。

优点:

1)算法简单,容易实现;

2)节点间无需交换额外的信息即可达成共识;

3)破坏系统需要投入极大的成本;

缺点:

1)浪费能源;

2)区块的确认时间难以缩短;

3)新的区块链必须找到一种不同的散列算法,否则就会面临比特币的算力攻击;

4)容易产生分叉,需要等待多个确认;

5)永远没有最终性,需要检查点机制来弥补最终性;

2.POS Proof of Stake,权益证明

一句话介绍:持有越多,获得越多。

主要思想是节点记账权的获得难度与节点持有的权益成反比,相对于PoW,一定程度减少了数学运算带来的资源消耗,性能也得到了相应的提升,但依然是基于哈希运算竞争获取记账权的方式,可监管性弱。该共识机制容错性和PoW相同。它是Pow的一种升级共识机制,根据每个节点所占代币的比例和时间,等比例的降低挖矿难度,从而加快找随机数的速度

优点:在一定程度上缩短了共识达成的时间;不再需要大量消耗能源挖矿。

缺点:还是需要挖矿,本质上没有解决商业应用的痛点;所有的确认都只是一个概率上的表达,而不是一个确定性的事情,理论上有可能存在其他攻击影响。例如,以太坊的DAO攻击事件造成以太坊硬分叉,而ETC由此事件出现,事实上证明了此次硬分叉的失败。

DPOS与POS原理相同,只是选了一些“人大代表”。

BitShares社区首先提出了DPoS机制。

与PoS的主要区别在于节点选举若干代理人,由代理人验证和记账。其合规监管、性能、资源消耗和容错性与PoS相似。类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。

DPoS的工作原理为:

去中心化表示每个股东按其持股比例拥有影响力,51%股东投票的结果将是不可逆且有约束力的。其挑战是通过及时而高效的方法达到51%批准。为达到这个目标,每个股东可以将其投票权授予一名代表。获票数最多的前100位代表按既定时间表轮流产生区块。每名代表分配到一个时间段来生产区块。所有的代表将收到等同于一个平均水平的区块所含交易费的10%作为报酬。如果一个平均水平的区块含有100股作为交易费,一名代表将获得1股作为报酬。

网络延迟有可能使某些代表没能及时广播他们的区块,而这将导致区块链分叉。然而,这不太可能发生,因为制造区块的代表可以与制造前后区块的代表建立直接连接。建立这种与你之后的代表(也许也包括其后的那名代表)的直接连接是为了确保你能得到报酬。

该模式可以每30秒产生一个新区块,并且在正常的网络条件下区块链分叉的可能性极其小,即使发生也可以在几分钟内得到解决。

成为代表:

成为一名代表,你必须在网络上注册你的公钥,然后分配到一个32位的特有标识符。然后该标识符会被每笔交易数据的“头部”引用。

授权选票:

每个钱包有一个参数设置窗口,在该窗口里用户可以选择一个或更多的代表,并将其分级。一经设定,用户所做的每笔交易将把选票从“输入代表”转移至“输出代表”。一般情况下,用户不会创建特别以投票为目的的交易,因为那将耗费他们一笔交易费。但在紧急情况下,某些用户可能觉得通过支付费用这一更积极的方式来改变他们的投票是值得的。

保持代表诚实:

每个钱包将显示一个状态指示器,让用户知道他们的代表表现如何。如果他们错过了太多的区块,那么系统将会推荐用户去换一个新的代表。如果任何代表被发现签发了一个无效的区块,那么所有标准钱包将在每个钱包进行更多交易前要求选出一个新代表。

抵抗攻击:

在抵抗攻击上,因为前100名代表所获得的权力权是相同的,每名代表都有一份相等的投票权。因此,无法通过获得超过1%的选票而将权力集中到一个单一代表上。因为只有100名代表,可以想象一个攻击者对每名轮到生产区块的代表依次进行拒绝服务攻击。幸运的是,由于事实上每名代表的标识是其公钥而非IP地址,这种特定攻击的威胁很容易被减轻。这将使确定DDOS攻击目标更为困难。而代表之间的潜在直接连接,将使妨碍他们生产区块变得更为困难。

优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。

缺点:整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的。

3.PBFT:Practical Byzantine Fault Tolerance,实用拜占庭容错

介绍:在保证活性和安全性(liveness& safety)的前提下提供了(n-1)/3的容错性。

在分布式计算上,不同的计算机透过讯息交换,尝试达成共识;但有时候,系统上协调计算机(Coordinator/ Commander)或成员计算机(Member/Lieutanent)可能因系统错误并交换错的讯息,导致影响最终的系统一致性。

拜占庭将军问题就根据错误计算机的数量,寻找可能的解决办法,这无法找到一个绝对的答案,但只可以用来验证一个机制的有效程度。

而拜占庭问题的可能解决方法为:

在 N≥ 3F+ 1的情况下一致性是可能解决。其中,N为计算机总数,F为有问题计算机总数。信息在计算机间互相交换后,各计算机列出所有得到的信息,以大多数的结果作为解决办法。

1)系统运转可以脱离币的存在,pbft算法共识各节点由业务的参与方或者监管方组成,安全性与稳定性由业务相关方保证。

2)共识的时延大约在2~5秒钟,基本达到商用实时处理的要求。

3)共识效率高,可满足高频交易量的需求。

缺点:

1)当有1/3或以上记账人停止工作后,系统将无法提供服务;

2)当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据

下面说两个国产的吧~

4.dBFT: delegated BFT授权拜占庭容错算法

介绍:小蚁采用的dBFT机制,是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。

此算法在PBFT基础上进行了以下改进:

将C/S架构的请求响应模式,改进为适合P2P网络的对等节点模式;

将静态的共识参与节点改进为可动态进入、退出的动态共识参与节点;

为共识参与节点的产生设计了一套基于持有权益比例的投票机制,通过投票决定共识参与节点(记账节点);

在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题。

优点:

1)专业化的记账人;

2)可以容忍任何类型的错误;

3)记账由多人协同完成,每一个区块都有最终性,不会分叉;

4)算法的可靠性有严格的数学证明;

缺点:

1)当有1/3或以上记账人停止工作后,系统将无法提供服务;

2)当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据;

以上总结来说,dBFT机制最核心的一点,就是最大限度地确保系统的最终性,使区块链能够适用于真正的金融应用场景。

5.POOL验证池

基于传统的分布式一致性技术,加上数据验证机制。

优点:不需要代币也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础上,实现秒级共识验证。

缺点:去中心化程度不如bictoin;更适合多方参与的多中心商业模式。