风险提示:理性看待区块链,提高风险意识!

区块链哈希到底是什么?

2个回答

我欠额为企鹅10星评价

2020-10-28 14:24:29

区块链哈希到底是什么?

什么是哈希?

哈希是将任意长的输入编程加密的固定长度输出的过程。哈希并不等同于加密方法,因为无法解密哈希值来获取原始数据。事实上哈希是一种单项加密函数。

有了哈希函数,就可以将互联网上的数据以固定长度字符串的形式来保存。其中一种方法就是SHA-256(安全哈希算法-256位),SHA-256是SHA-1的后继者,SHA-1的输出是160位的。

哈希是如何应用在区块链中的?

在区块链中,每个区块中都有前一个区块的哈希值,前一个区块叫做当前区块的父区块。由于每个区块都有前一个区块的哈希值,当修改当前区块的任意数据都会导致区块的哈希值发生变化,这会对前一个区块产生影响,因为其中含有前一个区块的地址。

比如,当前有两个区块,一个是当前区块,一个是父区块。当前区块中有父区块的地址,如果需要修改当前区块的数据,就需要对父区块链进行修改。如果只有两个区块就比较好修改数据,但事实上区块链上有很多的区块。

截至2020年1月24日12:32,一共有614272个区块,第614272个区块的哈希值为00000000000000000007a6be31011560f1e3abe8f125e356a31db6051753334e。如果想要修改第614272个区块的数据,那么614271区块的哈希地址就会发生改变,但是修改所有614271个区块的哈希值是不可能的,因此区块链中数据的不可篡改和可信赖的。区块链的第一个区块叫做Genesis(创始)区块。

研究人员对该过程进行了可视化:

哈希1.png

如果对输入产生小的修改,都可能会导致输出产生大的改变。

哈希是区块链技术和不可篡改和潜力的核心基础和最重要的方面。哈希维护了记录和查看数据的真实性,区块链的完整性也是这样的。

这也是区块链技术最重要的技术特征的一部分,只有理解了哈希才能了解区块链不可篡改性的潜力和价值。

Merkle Tree(马尔科夫树)是什么?

当有大量数据需要验证时,就需要消耗大量的内存来存储和确保安全,这个过程很难。但是又了马尔科夫树(Merkle tree),就可以轻易解决这些问题。

马尔科夫树是区块链技术的基础,在该结构中,可以很容易地在大量数据中找出哪些数据发生了变化,整个数据验证的过程非常高效。比特币和以太坊中都使用了马尔科夫树。

哈希2.webp.jpg

从上图可以看出,所有的交易都在底部,最顶部的哈希值叫做Root hash或Merkle root(马尔科夫根)。

如上图所示,有4个交易A、B、C、D。A和B哈希后会形成一个哈希值,C和D会形成另一个哈希值,AB的哈希结果和CD哈希结果会组合来形成一个新的哈希值——Root hash或Merkle RootABCD。

Root hash有所有交易的信息。马尔科夫树会重复计算节点对的哈希值,直到只剩下一个哈希值,就是Root hash。

Merkle tree是一个二叉树,所以需要偶数个叶子结点,如果交易数是奇数,那么最后一个哈希值会复制一次来创建偶数个叶子节点。

2.png

如上图所示,可以看出奇数值的交易数中有复制的交易进行了哈希,表明Merkle tree会计算奇数的叶子树。

所有交易数据会总结称一个Root hash,保存在区块头(block header)中。数据中有任何改变,整个哈希值就会变化,如果哈希值变化了,Merkle root就会发生变化。Merkle tree可以帮助维护数据的完整性。

Merkle tree的另一个好处是如果想要了解特定交易的状态,无需下载整个区块链,只需要请求竖直证明(vertical proof)和树的特定分支,验证一个特定的交易分支。

如何用哈希来确保数据安全?

哈希还增加了数据的安全性。因为没有加密数据,所以无需也无法解密数据。因为哈希函数是单向加密函数,加密哈希函数需要满足一些关键特征才能保证是有用的,包括:

每个哈希值都是不同的

相同的消息会生成相同的哈希值

无法根据哈希值确定输入值

输入值的微小变化也会导致整个哈希值的变化

哈希可以帮助确定数据是否被修改过。比如,之前下载了一些重要信息,为确定数据是否被修改过,可以对数据进行哈希计算,并比较数据的哈希值和接收到的数据的哈希值。

如果哈希值相同,就表明数据没有被修改过,如果哈希值不匹配,就表明数据在发送后接收前被修改了。

自在飞花轻似8星评价

2020-10-17 14:28:40

区块链技术

区块链是分布式账本技术的一种形式。并非所有的分布式账本都利用区块链来提供安全和有效的分布式共识。

区块链的分布式是在对等网络上,并且由它来实现管理。既然它是分布式账本,它可以在没有中心机构或服务器管理的情况下运作。同时,它的数据质量可以通过数据库复制或计算信任来维护。

区块链的结构使其跟其他类型的分布式账本产生区别。区块链上的数据被打包在一起并组成区块。这些区块相互链接,并用密码学保证安全。 区块链本质上是持续增长的记录列表。它的附加结构只允许向数据库写入数据:更改或删除早期区块的录入数据是不可能的。由此,区块链技术很适合记录事件、管理记录、处理交易、跟踪资产或投票。

加密货币,比如比特币,它开创了区块链技术。比特币在2017年年底的大涨,以及随之而来的媒体疯狂报道,将加密货币带入主流人群的视野。政府、企业以及经济学家或爱好者也正在考虑将区块链技术应用到其他方面。

哈希图技术

哈希图英文是Hashgraph,它也是分布式账本技术的一种形式。哈希图是一种专利算法,它承诺可以有区块链的好处,包括去中介化、分布式、安全,它通过使用哈希来实现。不仅如此,它还有一个区块链所不具备的,就是高交易速度。它由Leemon Barid创建,专利属于他所创立的Swirlds公司。

虽然比特币每秒允许大约5笔交易(译注:大约7笔,不过本质上是一个量级),以太坊则每秒大约15笔交易,而哈希图则可以处理每秒数千笔交易。

哈希图算法的运作主要靠两种技术:八卦协议、虚拟投票。

1.八卦协议

为了理解八卦协议(关于八卦的八卦),想象一下五个成员:A、B、C、D以及E。每个成员都以一个交易开始,这产生一个“事件”。之后,每位成员调用另外一位随机选择的成员,两者共享交易的历史记录。例如,D调用B,并且与B共享D的交易历史。这类型的调用重复发生,每位成员都随机调用其他成员并与其共享交易历史记录。

因此,B现在随机调用其他成员(比如C),同时跟C分享它的交易历史,也包括D的交易历史。同时E可能已经调用了A。由此类推。每次调用都会产生一个事件,每个事件都有保留之前区块的哈希值。

因此,一旦一位成员获知新的信息,这个信息就会迅速传播,直到所有人都知道它。

2.虚拟投票

虚拟投票旨在交易顺序上达成共识。它的工作原理如下:首先,事件被划分成轮次。哈希图算法在什么时候创建轮次有明确的数学答案。为了简化,假定一个轮次大约有十个事件。现在,每个成员投票决定那个事件应该有资格成为“著名见证人”。

为了理解它是如何发生的,想象一下,在下一轮次事件的每位成员都会向后查看当前轮次的每个事件,看看是否能够将它的谱系追溯到当前轮次的事件。如果它能够将谱系追溯到一个事件,则对该事件投赞成票。如果不能,则投反对票。当前轮次事件中获得最多票数的则是本轮的“著名见证人”,并且提供明确的交易顺序。

私人和公共

哈希图和区块链都可以以公共形式或许可的私有形式存在,私有形式可以供企业使用。任何人都能参与公开的技术。公共的区块链有不少,比如以太坊等,不过,目前为止哈希图的公共版本只有Hedera Hashgraph。

开源与专利

区块链技术大多数是开源的,且有庞大的社区,这些可用于构建和促进各种区块链工作,比如加密货币、效用token等。此外,区块链爱好者们普遍怀疑传统机构的可信度,并将区块链的去中介化性质作为其定义的质量。

另一方面,哈希图是基于专利算法,它由Swirlds所有。由此,任何新的哈希图计划都将依赖于Swirlds。

结论

区块链和哈希图是分布式账本技术的两种实现。区块链利用区块的链接提供验证的、安全的以及分布式的共识。它是比特币和加密货币的底层技术,同时它在支付、供应链以及身份管理等方面也有一系列的用例。

哈希图则是一种专利算法,它使用关于八卦的八卦和虚拟投票技术来跨越几条平行线,以实现快速和安全的账本。区块链是目前的主流,也更加公开。Hedera Hashgraph是哈希图算法的唯一公开实现。

除了区块链和哈希图之外,不久以后,我们将会看到更多分布式账本的新技术的落地。