码农知识堂 - 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 链表则是从数据结构层面保证了账本的不可篡改性。

  • 相关阅读:
    论文字数和检测字数有什么区别?
    电脑重装系统后当前安全设置不允许下载该文件
    day01:数据库DDL
    UNIAPP微信小程序中使用Base64编解码原理分析和算法实现
    锁策略与CAS
    解决 Element的el-input 密码输入框浏览器自动填充账号密码问题
    什么是R语言?什么是R包?-R语言001
    【计算机毕业设计】基于netty的网关推送平台
    docker安装minio及minio的使用
    docke部署nodejs程序及Dockerfile详解
  • 原文地址:https://blog.csdn.net/qq_39816613/article/details/125484929
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号