简而言之,哈希算法就是将任意长度的字符串映射成更短的固定长度的字符串。比特币使用SHA-256摘要算法,对任意长度的输入输出256位。因此哈希算法在加密货币中有哪些应用?加密哈希函数数据结构挖掘加密哈希函数:一个加密哈希函数具有以下特征:确定性:无论在同一个哈希函数中解析多少次,输入相同的A总能得到相同的输出h(A)。。高效操作:计算哈希值的过程是高效的。抗原图像攻击(隐藏):对于给定的输出结果h(A),反向推导输入A在计算上是不可行的。耐撞性(弱耐撞性):对于任何给定的A和B找到满足BA且h(A)=h(B)的B在计算上是不可行的。微小变化的影响:输入端的任何微小变化都会对散列函数的输出产生巨大的影响。难题友好性:对于任何给定的散列码y和输入值x,寻找一个满足h(k|x)=y的k值在计算上是不可行的,加密哈希函数对区块链和挖掘的安全性有很大帮助。数据结构:有两种数据结构对于理解区块链非常重要:链表和散列指针。
。链表:链表是顺序连接的数据块,如下图:链表中的每个块都通过指针指向另一个块。指针:指针是一个包含其他变量地址的变量。所以,顾名思义,指针就是指向其他变量的变量。哈希指针:哈希指针不仅有其他变量的地址,还有这个变量中数据的哈希值。
。那么这对区块链有什么帮助呢?区块链的组成如下图所示:区块链本质上是一个链表,其中每个新块都包含一个哈希指针。指针指向前一个块的哈希值及其包含的所有数据。有了这个特点,区块链就有了一个很大的不变性的特点。。区块链是如何实现其不变性的?假设在上图中,有人试图篡改块1中的数据。请记住,加密哈希函数的一个重要特征是,输入中的任何微小变化都会对哈希函数的输出产生巨大影响。因此即使有人试图稍微重写块1中的数据,存储在块2中的块1的哈希值也会发生很大的变化。接下来,这将导致块2的散列值改变,这将影响存储在块3中的散列值。等等最终,整个区块链的数据都会改变。通过冻结整个链来修改数据几乎是不可能的。因此,区块链被认为是防篡改的。每个块都有自己的Merkel根(Merkle
根)。。现在,正如您已经知道的,每个块包含多个事务。如果这些事务是线性存储的,那么在所有事务中找到一个特定事务的过程将变得极其漫长。还有那个';这就是我们使用梅克尔树的原因。
在梅克尔树中,所有单个事务都可以通过哈希算法追溯到同一个根。这使得搜索非常容易。因此,如果我们想要获得块中的某个特定数据,可以直接通过Meckel树中的哈希值进行搜索,而不需要线性访问。。挖掘加密谜题是用来挖掘新块的,所以哈希算法还是很重要的。它的工作原理是调整难度值的设定。随后,一个名为"nonce"添加到新块的哈希值中,然后再次进行哈希运算。然后然后检查是否低于设定的难度等级。如果低于,新的区块将被添加到链中,负责采矿的矿工将获得奖励。如果没有,挖掘器继续修改随机字符串"nouce"直到出现低于难度级别的值。。如您所见,哈希算法是区块链和加密经济学的关键部分。