码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【区块链实战】什么是 hash 函数,区块链用 hash 函数来干什么


    目录

    一、内容简介

    二、知识点

    hash 函数

    区块数据结构

    hash 函数特性

    hash 函数和区块链的联系

    三、什么是 hash 函数,区块链用 hash 函数做什么

    1、hash 函数

    2、哈希函数的特性

    (1)输入可任意长度,输出是固定长度

    (2)计算速度快

    (3)防碰撞

    (4)隐藏性或者单向性 

    (5)谜题友好 puzzlefriendly

    3、区块链与 hash 函数的关系


    一、内容简介

    区块链主要是一种链式数据结构,hash 函数加密数据,确保了区块链数据的不可篡改等特性,在区块链中占据了很重要的地位。

    二、知识点

    • hash 函数

    • 区块数据结构

    • hash 函数特性

    • hash 函数和区块链的联系

    三、什么是 hash 函数,区块链用 hash 函数做什么

    1、hash 函数

    单向散列函数 one-wayhash function,通常被称为哈希函数。比特币领域中提到的 哈希函数 是指特定算法支持的 hash 函数,一般使用 SHA-256 算法。这个函数的特点是对于不同的输入 X, 都可以得到一个固定长度的 256bit 的二进制 Y 值, Y = hash(X),如图所示:

    2、哈希函数的特性

    (1)输入可任意长度,输出是固定长度

    哈希函数不用知道输入信息代表的是什么意思,也无所谓信息的长度有多长,只要输入hash函数出来的都是固定长度的比特值。输入一本《三国演义》或者仅仅输入一个字母a,出来的都是256位比特长度的数据。

    (2)计算速度快

    (3)防碰撞

    对于不同的输入 X, 一定要产生不同的值 Y。 不管怎样 hash 函数肯定会存在碰撞,这里就涉及碰撞概率问题。

    当 Y 是 22 个字符串长度时,300万亿次结算结果里面,碰撞概率是 1000 亿分之 1。随着 Y 长度增加,碰撞概率会更低, SHA-256 是 64 位字符串,因此发生碰撞概率极低。

    (4)隐藏性或者单向性 

    hash 函数的计算过程是单向不可逆的,可以通过 X 计算得到 一个 Y,但是反过来很难通过 Y 去反推出来 X 的值。区块链需要保证用户的隐私和安全,所以 hash 函数在这方面的作用非常突出。

    (5)谜题友好 puzzlefriendly

    Y = H(X),这个说的是看 X 不知道 H 是什么。也就是说知道了 X,没法一眼看出来输出的 H(X) 是什么。因此知道输入信息 X 也不知道哈希值 Y 是多少,虽然可以很快计算出来,但是无法预判,反向计算也是很困难的。

    3、区块链与 hash 函数的关系

    在比特币网络中的计算机上都保留着一条区块链表,每个区块的生成的生成都要填写 hash 值。

    这个 hash 值的输入包括 区块编号,区块的多条交易数据,前一区块的 hash 值,一个随机数。

    通过这种链式结构,在知道一个区块的情况下,就可以一直追溯到第一个区块,这样形成的链条就是区块链。

    通过以上介绍,我们知道了 hash 函数在区块链结构中的重要作用,如果说分布式账本节点从架构上保证了比特币账本的安全性,那么 hash 链表则是从数据结构层面保证了账本的不可篡改性。

  • 相关阅读:
    MySQL模糊搜索优化
    2022杭电多校8(总结+补题)
    leetcode 20. 有效的括号
    携程OceanBase开源实践——索引统计功能实现
    使用学校的服务器跑深度学习
    搭建discuz论坛并攻破盗取数据库
    认识HTTP请求
    大数据技术之Zookeeper案例总结
    如何设置代理ip服务器地址
    vivado乘法器IP核进行无符号与有符号数相乘问题的验证
  • 原文地址:https://blog.csdn.net/qq_39816613/article/details/125484929
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号