当前位置:首页 > 哈希问答 > 正文内容

比特币常听人提到的哈希算法究竟是啥?

4个月前 (05-31)哈希问答699

比特币的区块链以线性“链”的方式存储区块,每个区块在数学上都指向前一个区块。通过这种方式,即使没有对区块进行明确的编号,区块的顺序也是清晰的。

比特币常听人提到的哈希算法究竟是啥?

区块之间用数字相互联系。具体来说,比特币使用一种叫作哈希的数学技术。例如,把单词、数字、比特币区块等一堆信息输入一个哈希算法中,这个算法会输出一个简短的信息“指纹”。

其实,人类一直在使用哈希,比如首字母组合。一个很长的英文名字很容易被压缩成几个字母。例如,将“John Fitzgerald Kennedy”这个长长的名字变成“JFK”这个简短的名字。其中有一个输入(全名)、哈希函数(获取某人姓名首字母的过程)和一个输出或哈希值(首字母)。计算机使用更多样化的哈希函数,其中最流行的是MD5算法和SHA-256算法,它们的核心思想是一样的:大数据输入变成短输出。

在比特币中,每个区块都有一个相关的哈希。每个区块的哈希部分基于它的前一个区块的哈希。通过这种方式,每个区块都指向它的前一个区块。所以,如果你有一个无序的区块列表和与它们相关的哈希表,你可以很容易地对区块进行排序,这就像一个人可以通过查看情节来排列书页一样。

比特币常听人提到的哈希算法究竟是啥?

哈希表中的数字和字母是怎么回事?哈希是用十六进制[4]编写的。其实际字符长度也比4个字符长得多,但我们的缩短版作为举例已经足够用了。因此,比特币以区块的形式批量处理交易,并且以链的方式将它们彼此连接起来。区块遇见链。

让我们回顾一下们基于哈希的区块链系统,你会注意到它实际上并不需要将区块放入线性的链中。没有什么能阻止在一个给定的区块之后紧接着出现两个或更多的区块。因此,区块链不一定是线性链。事实上,区块链通常不是线性链。区块链看起来更像“区块树”,有“树干”和“树枝”。

当两个矿工同时挖出一个区块时,区块树有时会产生一个新的分支。这种情况很少见,但确实会发生。当这种情况发生时,两笔交易会从最近的交易中分离出来,一个新的区块分支就诞生了。为了保证线性的正式历史,比特币使用了名为“最长链原则”的经验法则。这条法则指出,拥有最多区块的“区块树”的分支就是正式的区块链。最长链决定了你有多少钱、过去发生过什么交易等。如果某件事不在最长链上,它就不会发生。

在比特币用户的计算机上运行的比特币软件,只向在最长链上添加一个区块的矿工支付报酬,从而贯彻最长链原则。这通常足以使矿工们保持秩序。不过,它有一个副作用。如果两个矿工同时开采出一个区块,就会产生两个分支,但只有一个分支会胜出,成为最长链。另一个分支成为“孤儿”并被抛弃,而在挖掘出该分支底部区块的不幸矿工将得不到任何钱。这种“孤儿”事件一天会发生好几次。

但是最长链原则仍然存在安全漏洞。如果一个不正当的矿工创造了一个新分支,并且能比其他矿工更快地挖掘区块,从而使他的分支比合法的分支更长,那该怎么办呢?嗯,不正当的矿工的分支将成为最长链,所以它将成为正式的区块链。他的欺诈链上的所有区块将成为正式历史,而合法链上的一些区块将被扔掉。

当然,让骗子控制区块链会造成很多混乱,这也可能导致欺诈。设想一下,不正当的矿工用比特币购买了数千美元的商品,并把交易放在区块链上。然后,他执行攻击,建立一个比正式区块链更长的新链。他支付给商家的交易数据将被丢弃,因为这些交易数据所在的区块不在最长链上。这就好像他一开始就没有付款一样。所以,他最终得到了所有的商品,但从来没有为它付过钱!

为了解决这个问题,中本聪使用了“工作量证明”法,也就是说你想建立一个区块就需要正确地算出一个哈希值,但是除非你控制了全网足够大的算力,否则你很难连续几次都是那个首先算出哈希值的幸运儿。而如果你要想做到这点,你要花太多的钱去配置机器和算力了,那么你能从中诈骗到多少个比特币来支付这笔钱呢?基本上不可能诈骗到这么多比特币,而且你一旦诈骗成功,比特币的信誉下降,你诈骗到的比特币可能一文不值,你花大钱购买的算力和机器就全部打了水漂。


扫描二维码推送至手机访问。

版权声明:本文由数字哈希发布,如需转载请注明出处。

本文链接:http://www.ziwu.org/post/24.html

标签: 比特币
分享给朋友:

“比特币常听人提到的哈希算法究竟是啥?” 的相关文章

区块链的哈希算法,什么是哈希算法?

区块链的哈希算法,什么是哈希算法?

密码学技术是区块链的核心技术之一,也是保障区块链中数据安全存储的关键所在。如今区块链网络中使用的加密算法有很多,包括:哈希算法、对称加密、非对称加密、数字签名等,今天我们就来了解一下其中运用最为广泛的哈希算法。什么是哈希算法?哈希算法又被称为散列函数,它可以将任意长度的数据信息代码串转化为一段固定长...

什么是哈希?

什么是哈希?

散列是指从可变大小的输入生成固定大小的输出的过程。这是通过使用称为散列函数(作为散列算法实现)的数学公式来完成的。尽管并非所有哈希函数都涉及密码学的使用 ,但所谓的密码哈希函数是加密货币的核心。多亏了它们,区块链和其他分布式系统能够实现显着水平的 数据完整性和安全性。传统和加密散列函数都是确定性...

什么是哈希算法,如何计算?

什么是哈希算法,如何计算?

我们在谈到区块链的时候,经常会听到关于哈希、哈希值、哈希算法这些词。很多人都认为哈希就是区块链上的安全保障,但是严格来说,哈希并不是一种加密算法。因为加密总是相对于解密而言,哈希其实是一种单向密码体制,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。在聊哈希算法之前我们先来聊聊什么...

区块链中的哈希到底是什么?

区块链中的哈希到底是什么?

01 什么是哈希?哈希是将任意长的输入编程加密的固定长度输出的过程。哈希并不等同于加密方法,因为无法解密哈希值来获取原始数据。事实上哈希是一种单项加密函数。有了哈希函数,就可以将互联网上的数据以固定长度字符串的形式来保存。其中一种方法就是SHA-256(安全哈希算法-256位),SHA-256是SH...

数字藏品上的一串字母+数字符号——哈希值是什么意思?

数字藏品上的一串字母+数字符号——哈希值是什么意思?

在接触过或购买过数字藏品的朋友来说,每份数字藏品上都有一份“哈希值”,这些所谓的“哈希值”由一串很长的数字+字母构成,而且,每份藏品的字符是自动生成的,而且完成不同的。这份叫做哈希值的字符,究竟是什么意思呢?我们通过网上检索资料可以了解到,但更权威的解释,我认为还是信出版社2018年出版的《区块链—...