主页 > imtokenapp下载 > 哈希算法特点(比特币主要使用的加密算法是)

哈希算法特点(比特币主要使用的加密算法是)

imtokenapp下载 2023-03-14 07:30:09

哈希算法特点(比特币主要使用的加密算法是)admin01-10 22:51100 views

比特币是世界上第一种加密货币,迄今为止的尝试未能像比特币那样有效地解决货币问题。

比特币本身是密码学发展的产物,它是利用密码学中的两项重要技术“单向哈希函数”和数字签名构建而成的。 今天我们将重点介绍单向哈希函数的五个重要性质以及比特币挖矿的相关技术原理。

首先解释一下zjdrjb函数的特点。

单向哈希函数(one-wayhash function)俗称zjdrjb函数。

第一个特点:输入可以是任意长度,输出是固定长度

即使zjdrjb函数不知道输入的信息是什么意思,也不知道信息有多长,只要输入hash函数btc加密原理100,就会出现固定长度的位值。 比如非常著名的SHA256 zjdrjb函数,无论输入什么值,都会出现256位0和1。 只要你输入一本《三国演义》,或者输入一个字符a,就会有256位的数据。

第二个特点:哈希值的计算速度比较快

php源码加密 原理_cpu卡加密机工作原理_btc加密原理100

这一点经常被忽视,但似乎并不介意它是否众所周知。 事实上,这同样重要。 正是因为单向zjdrjb的计算速度快,才能保证加密和验证的速度。

第三个功能是“防碰撞功能”

xy, h(x )=h ) y ) 输入空间远大于输出空间。 比如一个256位的zjdrjb值,表示输出空间大于2^256,输入可以无限大,输出是定长。

但是,目前还没有好的方法可以找到一个 x 使 h(x ) 等于右边的值。

也许遍历输入的所有内容以找到此值。 这叫蓝牙暴力破解? 也就是说,它就是现在矿机所谓的“zjdrjb碰撞”的根源。

zjdrjb防止碰撞的目的是保证上传的数据和下载的数据一样,但是结果是一点点变差。 例如,您输入的信息是“红楼梦”。 当然,计算机识别后,会变成0和1。然后btc加密原理100,把逗号改成红楼梦100页第5个字,输出的hash值就完全不一样了。 这是zjdrjb函数的一个非常重要的特性。

但是,抗碰撞性目前还没有在数学上证明不会发生这样的冲突。 MD5 就是最好的例子,它曾经是安全的,但我找到了破解它的方法。

btc加密原理100_cpu卡加密机工作原理_php源码加密 原理

第四个特性:称为隐蔽(Hiding)或单向(one-way)单向

zjdrjb函数的计算过程是单向不可逆的。 x发出h(x),但是没有办法反复(单向)按下,也就是说zjdrjb值并没有泄露输入x的信息。 也就是说,x的信息是隐藏的,也就是说它是隐藏的。

输入空间足够大,数值统一,难以暴力破解。

第三和第四个特性可以用来创建有趣的应用场景。

例如预测某事。 现实世界的预测和结果通常有着微妙的关系。 比如在三国时期,痴情汁特意跑到当时鉴定字专家的必修课上,以示自己是什么料。 过去,易简曾评价赤清汁为“乱世能臣,乱世奸臣”,但很难说他的评价是正确的。 因为这个评价影响了痴汁的心理,所以他往这个方向发展,说不定他就往这个方向发展,所以很难判断预测是否真的正确。

一个更简单的例子是,一个有影响力的股东预测股价是今天上涨还是明天上涨,如果他公布币价,可能会影响币价。

那么如何证明他确实是准确的呢? 要求将股票信息写在纸上或保存在电脑上,但不得在次日公布后私自修改内容。 这样,就不用担心预测会影响股价。 现在只需要一件事。 我保证不会篡改他已经写下的内容。

btc加密原理100_php源码加密 原理_cpu卡加密机工作原理

然后,使用哈希算法,预测结果(信息)是x。 对于x zjdrjb,也可以公布hash值,x会在次日回收后放行。 如果你改变昨天的数据,组合就会改变。 任何人都可以用哈希计算出这个x,并与昨天发布的哈希值进行比较。

其实有人担心,实际输入空间不是很大,输入的不是随机的,而是ups和downs等词句组合,找到这个x,放一个nonce随机数,以便确保安全。 公式表示如下:

hx丨noncenonce是一个随机数

意思是在预测结果信息x上加上一个随机数,一起hash。

第五,益智友好(puzzlefriendly))。

你是说看 x 不知道 H(X ) 是什么? 根据输入数据,无法确定它是哪种输出。 也就是你知道进去的信息,但是一看就不知道输出的hash是什么。 为此,智力游戏的友好性值得一提。 通过控制输入值x,无法得到想要的输出值h(x )

因此,结合隐蔽性和益智友好性这两个特性,即使知道输入信息,也不知道zjdrjb值是多少,可以马上计算出来,但不能提前判断; 难度很大,只能暴力解读。

btc加密原理100_php源码加密 原理_cpu卡加密机工作原理

因此,如果你要输出的值在一定范围内,比如小于某个值,计算机只能一个一个地尝试猜测答案,看计算出的输出值在哪个输入中想要的范围。

cpu卡加密机工作原理_btc加密原理100_php源码加密 原理

一定要得到hash值前面k位是0的,我也不知道我之前怎么得到这么多x的0。

我的就是找到

nonce,就是这个随机数。

H(block header + nonce) ≤ target

这就是比特币挖矿的基本原理,就是通过zjdrjb碰撞找到nonce,使其小于一个目标(比如32个0等)。 区块头(或block head)是所有矿工都知道的区块头中包含的信息(如version、prehash、merkle root、ntimenbits等),所以大家在竞争谁能先猜到nonce。

btc加密原理100_cpu卡加密机工作原理_php源码加密 原理

备注:在二进制的世界里,因为每一位都是0或者1,所以比例就是前面0的个数。 前32位为0,自然比前31位为0(第32位为1)小,这个目标的所谓比就是限定一个范围,因为sha256输出的数都是256位的二进制数(zjdrjb函数的输出值是固定长度的),如果前面多了个0,很方便划定结果。 值字段的方式。 很多人忽略了这一点,其实这是一个很基础的数学知识,值得注意。

挖矿的基本思路来源于以上信息。 在比特币挖矿的过程中,其实就是求nonce,也就是确定输出范围后求输入值。 H(block header + nonce) ≤ target

当对输入值(各种信息+nonce)进行哈希处理时,得到的值符合目标的范围。 例如,前 35 个 0 就足够了。 输入你猜的值后,哈希值的前40位全为0。 那么它必须满足要求。 其实前35个0就满足条件了。

然后你发布这个信息,其他矿工看到你的nonce值,也去哈希一下,很快就知道你的nonce是合适的,可以满足目标的要求。 这里我们利用了zjdrjb函数计算速度快的特点(第二个特点)。

本文总结了奇异哈希函数的特点,即zjdrjb函数,它是很多区块链应用的基础,也是比特币加密挖矿的基本原理。 文章开头提到,除了功能,比特币使用的密码学还有一个非常重要的内容:数字签名。 我们很快就会谈到这一点。

php源码加密 原理_cpu卡加密机工作原理_btc加密原理100

目前世界上所谓的区块链落地应用,其实有时使用比特币的数据结构(gddxx树等),有时使用UTXO模型进行结算。 有时称为可追溯性,有时称为合同。 很多应用出来了,不管是哪一种概念,大部分都会用到zjdrjb的功能,而且会用到zjdrjb功能的5个特性中的一些。

随着文章的深入讲解,关于比特币和行业的信息层出不穷,大家也逐渐明白为什么zjdrjb函数是比特币和区块链行业的根基。

rsa加密算法过程(rsa加解密)hash算法(hash和红黑树的区别)