主页 > imtoken冷钱包官方版 > 比特币的正确算法(比特币使用的SHA256算法到底是什么)

比特币的正确算法(比特币使用的SHA256算法到底是什么)

imtoken冷钱包官方版 2023-04-25 06:13:46

比特币的正确算法? 据说比特币是一种加密货币。 既然叫加密货币,那么比特币必然与加密技术有关。 话虽这么说,但加密技术包含的内容很多,那么比特币到底采用了什么样的密码学呢? 技术呢? 从整个比特币的设计我们可以看出,比特币系统中有一个比较重要的加密算法,就是SHA256算法。 接下来说说比特币的正确算法? 您不妨参考以下两点希望对您有所帮助!

比特币的正确算法(比特币使用的SHA256算法究竟是什么)

比特币的正确算法

据说比特币是一种加密货币。 既然被称为加密货币,那么比特币必然与加密技术有关。 话虽如此,加密技术包含的内容还是很多的,那么比特币到底使用了哪些密码学技术呢? 从整个比特币的设计我们可以看出,比特币系统中有一个比较重要的加密算法,就是SHA256算法。

SHA256的中文全称为“Secure Hash Algorithm”。

所谓“散列”是Hash的音译,Hash的意思是执行散列函数。 一般来说,哈希函数的运算有一个共同的特点。 即无论原始数据有多少位,只要进行哈希运算,结果的长度是固定的。

概念往往是抽象的,那么让我们用一个生动的例子来说明。 如果我们去图书馆借书,会发现不管是什么书,书的边上都会贴一张便利贴,便利贴上通常会有这本书对应的编号。 为了便于管理,这些数字的长度通常是相同的。 这种情况和Hash函数很相似。 我们可以把输入Hash函数之前的数据看成是书籍。 这些书的字数不一,有的几万字,有的几十万字。 但是这些数据一旦经过哈希函数的处理,就全部变成了等长的数字。

并且这些代码必须满足以下要求:

比特币核心概念股_比特币核心算法_挖比特币用什么算法

首先,进入Hash函数之前的数据和经过Hash函数处理后得到的数字必须一一对应。

第二,每个数字的长度是固定的。

第三,不能通过数字倒推数据的内容。

Hash函数的种类很多,有SHA224、SHA256、SHA384、SHA512、SHA512/224、SHA512/256等,但比特币只使用SHA256。 256表示函数运算后的数据结果必须是256位的二进制数。 即类似这样的结果:“001100...11011”,总共有 256 位。

在比特币中,为什么要将数据转换成 256 位数字? 其实之所以选择SHA256,主要是为了验证两个文件是否相等。

示例:公司间谍获得了一份重要的商业报告。 但间谍担心商业报告在网上传播时被拦截和编辑。 于是这个商业秘密就被处理了,通过SHA256运算产生了一个值。 我们暂且称这个值为A1。

比特币核心算法_比特币核心概念股_挖比特币用什么算法

然后间谍通过邮件发送了业务报告和A1比特币核心算法,并在邮件中注明:“为防止他人修改业务报告,报告下载后,请对报告做一次SHA256计算,并然后看计算结果是否和A1一致,如果和A1完全一致,说明这份业务报告没有被别人篡改过,如果和A1不一样,说明你下载的报告很可能是被篡改。其他人篡改了它。”

中本聪在设计比特币时之所以选择SHA256,主要是因为SHA256在验证变化方面具有巨大的优势。 因为只要输入的数据稍有不同,SHA256计算出来的值就会有巨大的差距。

比如下面这三句话,虽然原文略有不同,但是经过Hash函数处理后的SHA256值会有很大的差异,而且这种差异是不规则的。

原文一:动静不失,通俗易懂。

S1: 284c4ddd2e5ef97924cc70e90cd02fd792e3fd62

原文三:静而动,通俗易懂

挖比特币用什么算法_比特币核心算法_比特币核心概念股

S2: 991780940ced6e6f910013f2ba2ac732e23601ef

原创3:动静通俗易懂

S2:62e07ce4d7d529a6268841d521bf882d3b385199

SHA安全加密标准是迄今为止世界上使用最广泛、相对安全的压缩算法之一。 它是由美国NIST和NSA这两个组织联合开发的。 该算法于1993年5月11日被美国NIST和NSA定为加密标准。

那么比特币是如何应用SHA256的呢?

让我们以日常情况为例。

挖比特币用什么算法_比特币核心概念股_比特币核心算法

老王最近缺钱,找老赵借钱,说等他发工资的时候再把借的钱还上。 借钱自然要写欠条。 于是老王给老赵写了一张借条:老王今天向老赵借了100块钱。 但如果只是一张借据,那就很不安全了。 要是以后老赵把人民币这三个字换成美元,或者在100后面加个百万字,老王岂不是不知所措?

在这种情况下,SHA256 算法的价值将被突出显示。 “老王今天跟老赵借了100块钱。” 此消息的 SHA256 值是确定的。 当我们发送这条消息时,我们会再次给出 SHA256 值,任何后续的变化都会被发现。

但是仅仅保证支付信息没有被更改是不够的。 如果老赵像“老王今天向老赵借了10亿元”这样的借条很多。 那么老王这辈子可能都还不上债了。 因此,为了确定借条的唯一性,我们还需要在借条上加上签名。 这一步体现在比特币系统中的数字签名中。 在比特币系统中,数字签名是一个字符串,但这个字符串只能由信息的发送者生成,他人无法伪造。 该字符串也是消息发送者所发送消息真实性的有效证明。 所以有了欠条和数字签名,就可以清楚地证明支付信息的内容。

现在可以确定付款信息,但是还有一个问题。 这样我们就可以确定,老王发完工资,一定能还清这100块钱?

这个问题在集中式操作系统中不是问题。 但是比特币不同,比特币是去中心化的。 在比特币系统中,账户里有多少钱并不重要,因为没有人会相信你。 要解决这个问题,必须使用另一种方法。 也就是说,每笔交易都必须建立在之前的交易之上。 当老王确定要还老赵的100块钱的时候,那我们就需要确定老王确实发过工资,工资大于100块,而且这笔钱没有用于其他开销。

所以老王还钱的时候,系统会验证以下信息:

比特币核心概念股_挖比特币用什么算法_比特币核心算法

老王的公司给老赵发工资1000元,老王给老赵100元。 然后附上老王的数字签名和公钥。 老赵收到信息后,会用SHA256算法进行确认,然后用私钥解锁。 然后可以确认交易。

看上面的过程,好像是从老王的工资里扣了100块钱给老赵。 但在比特币系统中实际情况并非如此。

在比特币系统中,老王不能将之前的1000元分成一个100元和一个900元。 因为这个网络中的每条支付信息都带有 SHA256 签名,无法拆分。 所以支付流程其实是这样的。 首先,老王一次性把1000块钱全部发给老赵。 然后老赵就把900块钱还给老王。

如果我们用现实世界的逻辑来看这个支付流程,会觉得很奇怪。

不能一下子全部给吗? 为什么一定要别人给你钱?

但是在比特币系统中,我们只能通过这种方式进行支付。 因为所有写入账本的信息都必须基于之前的交易。 因此,我们不能将一笔钱分成两部分或更多部分。

当比特币被发明时,SHA256 被公认为世界上最安全和最先进的算法之一。 到目前为止,仍然没有公开证据表明SHA256存在漏洞,SHA256仍然在坚决抵制保护比特币安全的旗帜。 但回顾人类历史,加密与解密总是齐头并进的。 世界上没有永远安全的算法,SHA256被取代是迟早的事。 因此,比特币要想继续稳定运行,就必须与时俱进比特币核心算法,不断升级完善。

,