【区块链与密码学】第2-3讲:区块链基础技术大剖析之哈希函数

区块链与哈希函数 武汉大学《区块链与密码学》课件整理 阅读详情

【本课堂内容全部选编自PlatON首席密码学家、武汉大学国家网络安全学院教授、博士生导师何德彪教授的《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】

2.4.1 哈希函数

区块链作为一个诞生刚到十几年的技术,的确算是一个新兴的概念,但是它所用到的基础技术全是当前非常成熟的技术。可以说是一个技术的“结晶体“。

区块链的基础技术如哈希运算、数字签名、P2P网络、共识算法以及智能合约等,在区块链兴起之前,很多技术已经在各种互联网应用中被广泛使用。

但这并不意味着区块链就是一个新瓶装旧酒的东西。就好比积木游戏,虽然是一些简单有限的木块,但是组合过后,就能创造出一片新的世界。

同时,区块链也并不是简单的重复使用现有技术,例如共识算法、隐私保护在区块链中已经有了很多的革新,智能合约也从一个简单的理念变成了一个现实。

区块链“去中心化”或“多中心”这种颠覆性的设计思想,结果其数据不可篡改、透明、可追溯、合约自动执行等强大能力,足以掀起一股新的技术风暴。

本节课主要探讨这些技术的原理及在区块链系统中的作用。首先从哈希函数说起。

什么是哈希运算

哈希算法(Hash Algorithm)即散列算法的直接音译。它的基本功能概括来说,就是把任意长度的输入(例如文本等信息)通过一定的计算,生成一个固定长度的字符串,输出的字符串称为该输入的哈希值。在此以常用的SHA-256算法分别对一个简短的句子和一段文字求哈希值来说明。

输入:

This is a hash example!

哈希值:

17f2cf0bcbfbc11a8ab6b6883b03c721407da5c97

45d46a5fc53830d4749504a

我们在第一单元课程中对涉及哈希函数的公钥与私钥的的换算有细致的讲解,请看:

点宽课堂第1-4讲:比特币的交易

哈希运算的特性

一个优秀的哈希算法要具备正向快速、输入敏感、逆向困难、强抗碰撞等特征。

正向快速

正向即由输入计算输出的过程,对给定数据,可以在极短时间内快速得到哈希值。如当前常用的SHA256算法在普通计算机上一秒钟能做2000万次哈希运算。

输入敏感

输入信息发生任何微小变化,哪怕仅仅是一个字符的更改,重新生成的哈希值与原哈希值也会有天壤之别。同时完全无法通过对比新旧哈希值的差异推测数据内容发生了什么变化。

因此,通过哈希值可以很容易地验证两个文件内容是否相同。该特性广泛应用于错误校验。在网络传输中,发送方在发送数据的同时,发送该内容的哈希值。

接收方收到数据后,只需要将数据再次进行哈希运算,对比输出与接收的哈希值,就可以判断数据是否损坏。

逆向困难

要求无法在较短时间内根据哈希值计算出原始输入信息。该特性是哈希算法安全性的基础,也因此是现代密码学的重要组成。哈希算法在密码学中的应用很多,此处仅以哈希密码举例进行说明。

当前生活离不开各种账户和密码,但并不是每个人都有为每个账户单独设置密码的好习惯,为了记忆方便,很多人的多个账户均采用同一套密码。

如果这些密码原封不动地保存在数据库中,一旦数据泄露,则该用户所有其他账户的密码都可能暴露,造成极大风险。所以在后台数据库仅保存密码的哈希值,每次登录时,计算用户输入的密码的哈希值,并将计算得到的哈希值与数据库中保存的哈希值进行比对。

强抗碰撞性

即不同的输入很难可以产生相同的哈希输出。当然,由于哈希算法输出位数是有限的,即哈希输出数量是有限的,而输入却是无限的,所以不存在永远不发生碰撞的哈希算法。

但是哈希算法仍然被广泛使用,只要算法保证发生碰撞的概率够小,通过暴力枚举获取哈希值对应输入的概率就更小,代价也相应更大。只要能保证破解的代价足够大,那么破解就没有意义。

就像我们购买双色球时,虽然我们可以通过购买所有组合保证一定中奖,但是付出的代价远大于收益。优秀的哈希算法即需要保证找到碰撞输入的代价远大于收益。

区块链科普之哈希函数的应用

哈希函数在区块链之前,就已经得到了广泛应用,以下为一些常见的应用场景:

消息认证码

使用单向散列函数可以构造消息认证码。消息认证码是将“发送者和接收者之间的共享密钥”和“消息,进行混合后计算出的散列值。使用消息认证码可以检测并防止通信过程中的错误、篡改以及伪装。

数字签名

在进行数字签名时也会使用单向散列函数。数字签名是现实社会中的签名(sign)和盖章这样的行为在数字世界中的实现。数字签名的处理过程非常耗时,因此一般不会对整个消息内容直接施加数字签名,而是先通过单向散列函数计算出消息的散列值,然后再对这个散列值施加数字签名。

伪随机数生成器

使用单向散列函数可以构造伪随机数生成器。密码技术中所使用的随机数需要具备“事实上不可能根据过去的随机数列预测未来的随机数列”这样的性质。为了保证不可预测性,可以利用单向散列函数的单向性。

一次性口令

使用单向散列函数可以构造一次性口令(one-time password)。一次性口令经常被用于服务器对客户端的合法性认证。在这种方式中,通过使用单向散列函数可以保证口令只在通信链路上传送一次(one-time),因此即使窃听者窃取了口令,也无法使用。

本内容来自用户“wilsonyx”的总结

防篡改是哈希的功劳?

每个区块头包含了上一个区块数据的哈希值,这些哈希层层嵌套,最终将所有区块串联起来,形成区块链。

区块链里包含了自该链诞生以来发生的所有交易,因此,要篡改一笔交易,意味着它之后的所有区块的父区块哈希全部要篡改一遍,这需要进行大量的运算。

如果想要篡改数据,必须靠伪造交易链实现,即保证在正确的区块产生之前能快速地运算出伪造的区块。同时在以比特币为代表的区块链系统要求连续产生一定数量的区块之后,交易才会得到确认,即需要保证连续伪造多个区块。

只要网络中节点足够多,连续伪造的区块运算速度都超过其他节点几乎是不可能实现的。

另一种可行的篡改区块链的方式是,某一利益方拥有全网超过50%的算力,利用区块链中少数服从多数的特点,篡改历史交易。

然而在区块链网络中,只要有足够多的节点参与,控制网络中50%的算力也是不可能做到的。如果某一利益方拥有了全网超过50%的算力,它就已经成为既得利益者,从收益角度来看,维护会比破坏价值更大,因此肯定会更坚定地维护区块链网络的稳定性。

可以实现内容改变快速检测的一种树

除上述防篡改特性,基于哈希算法组装出的默克尔树也在区块链中发挥了重要作用。默克尔树本质上是一种哈希树,1979年瑞夫·默克尔申请了该专利,故此得名。

前面已经介绍了哈希算法,在区块中默克尔树就是当前区块所有交易信息的一个哈希值。但是这个哈希值并不是直接将所有交易内容计算得到的哈希,而是一个哈希二叉树。

首先对每笔交易计算哈希值;然后进行两两分组,对这两个哈希值再计算得到一个新的哈希值,两个旧的哈希值就作为新哈希值的叶子节,如果哈希值数量为单数,则对最后一哈希值再次计算哈希值即可;

然后重复上述计算,直至最后只剩一个哈希值,作为默克尔树的根,最终形成一个二叉树的结构。在区块链中,我们只需要保留对自己有用的交易信息,删除或者在其他设备备份其余交易信息。

如果需要验证交易内容,只需验证默克尔树即可。若根哈希验证不通过,则验证两个叶子节点,再验证其中哈希验证不通过的节点的叶子节点,最终可以准确识别被篡改的交易。

有关于哈希函数就讲到这里啦,下节课我们将解析区块链基础技术之数字签名,和我们日常的签名有什么不一样呢?下节课揭晓!

关注点宽学园,每周持续更新区块链系列课程,小宽带你进入区块链世界。

【区块链与密码学】课堂回顾:

区块链与密码学系列文章合集

区块链技术简介 区块链不仅仅是一项技术,更是一种新的思维方式,推动我们重新思考信任、价值和协作的方式。未来,随着区块链与其他前沿技术的融合,我们有理由相信,它将在更多的领域发挥更大的作用。每个区块的头部包含前一个区块的哈希值,这使得任何对前面区块的数据修改都会导致后续区块的哈希值发生变化,从而保证了数据的完整性和不可篡改性。传统的集中式系统存在单点故障的风险,区块链的分布式架构消除了单点故障,提高了系统的可靠性。通过在区块链上记录产品的生产、运输和销售等信息,消费者可以追溯产品的源头,保障产品质量。 阅读详情

相关推荐

Windows电脑如何用MobaXterm连接宇树G1机器人?保姆级SSH配置指南

本文提供了一份详细的保姆级教程,指导Windows用户使用MobaXterm通过SSH连接宇树G1机器人。内容涵盖从物理网络配置、MobaXterm安装与SSH会话创建,到文件传输、X11转发等高级功能,并包含常见问题排查与安全加固建议,帮助开发者快速建立稳定可靠的远程开发连接。

purple的博客 878

【数据结构与算法】第九篇:哈希表原理

上节集合,映射我们实现了用红黑树实现了映射(TreeMap);虽然红黑树能够很好的实现映射的各项功能,但是红黑树自身有很多局限性,比如: 1.TreeMap中的key必须是具备可比较性的 2.元素的分布是有顺序的。 但是在现实很多需求中,是不要求 Map的key必须有顺序的,并且不要求key必须具备可比较性。 哈希表就能很好的解决这两个问题,并且能使平均时间复杂度达到O(1).其实哈希表就是用一个数组进行实现的,具体的场景可以看以下是实例: ◼ 设计一个写字楼通讯录,存放所有公司的通讯信息 座机号码作为 k

qq_61571098的博客 1574

TAS5805MPWPR实战:数字音频功放从选型到量产全流程指南

数字音频功放将I2S数字信号直接转为PWM驱动扬声器,省去传统DAC与模拟运放链路,在高保真、低BOM与紧凑PCB之间找到平衡。其核心在于内置可编程DSP,支持多段PEQ、DRC等数字处理,通过I2C配置即可完成调音,而不占用主控算力。这类方案广泛应用于蓝牙音箱、Soundbar、智能音频模组等产品,但实际落地时常遇到I2C通信不稳定、EQ未生效、底噪超标、DC检测误触发等工程问题。从电源布局、LC滤波参数到PurePath Console工具链的使用,再到量产固件加载与故障排查,都需要系统化方法论支撑。本

weixin_29164843的博客 220

3.1 哈希算法

哈希算法在区块链系统中的应用很广泛:比特币使用哈希算法通过公钥计算出了钱包地址、区块头以及交易事务的哈希值,梅克尔树结构本身就是一棵哈希树,就连 挖矿算法都是使用的哈希值难度匹配;以太坊中的挖矿计算也使用了哈希算法,其中的梅克尔–帕特里夏树同样也是一棵哈希树;其他的区块链系统也都会多多少少 使用到各种哈希算法,因此可以说哈希算法贯穿到区块链系统的方方面面。3.1.1 什么是哈希计算密码学上...

1633

学习利用ce修改游戏生命参数

易语言代码 游戏的简陋界面 用ce查找存储这个1000即生命值的内存地址(得先附加到目标程序上,点击左上角那个电脑按钮) 看到有很多值为1000的,但哪个是生命值呢?真相只有一个 我们点击一下打我这个按钮,看下面的ce界面上地址为004A65C0处的值变了,所以这个就是我们要找的生命值 接下来我们对生命值进行修改,修改为99

zsd747289639的博客 5万+

【迁移学习】域对抗迁移网络 DANN

Domain-Adversarial Training of Neural Networks

这个博客太懒了什么都没说 8417

哈希表 之 接入与身份认证技术概述

1 概述 随着信息化的快速发展,对国家、组织、公司或个人来说至关重要的信息越来越多的通过网络来进行存储、传输和处理,为获取这些关键信息的各种网络犯罪也相应急剧上升。当前,网络安全在某种意义上已经成为一个事关国家安全,社会经济稳定的重大问题,得到越来越多的重视。 在网络安全中,身份认证技术作为第一道,甚至是最重要的一道防线,有着重要地位,可靠的身份认证技术可以确保信息只被正确的“人”所访问。身份

稚枭天卓 2549

RandLA-Net Tensorrt 推理 c++

RandLA-Net 实现 Tensorrt 部署.

J。 1111

密码第五周

单向散列函数,CTF-show

yy_1111618的博客 224

YOLOv5改进 | 多尺度特征提取 | 结合多样分支块及融合的高级设计(CVPR2021)

YOLOv5改进 | 多尺度特征提取 | 结合多样分支块及融合的高级设计(CVPR2021)

qq_44224801的博客 2068

基于深度学习YOLOv5的草莓成熟度检测系统详解(深度学习模型+UI界面+Python代码+训练数据集)

数据采集与预处理模块:负责收集草莓图像,并进行数据增强和标注。深度学习模型训练模块:使用YOLOv5模型进行草莓成熟度检测模型的训练。模型推理模块:加载训练好的模型,对输入图像或视频进行草莓成熟度检测。UI界面模块:提供用户交互界面,方便用户上传图像或视频进行成熟度检测。本文详细介绍了基于YOLOv5的草莓成熟度检测系统的构建过程,包括数据集的构建、模型的训练与推理、以及UI界面的设计。通过本文的指导,读者可以快速搭建一个高效的草莓成熟度检测系统,并应用于实际场景中。

斌擎科技 526

区块链的数学基础:核心原理与应用解析

区块链技术作为分布式账本系统,成功地解决了传统中心化系统中的信任问题。其背后隐藏着复杂而精妙的数学原理,包括密码学、哈希函数、数字签名、椭圆曲线、零知识证明等。这些数学工具不仅为区块链提供了安全保障,也为智能合约和去中心化应用(DApps)的开发奠定了基础。本文将深入剖析区块链中的核心数学基础,帮助读者理解其工作原理与实际应用。

fudaihb的博客 3592

Android系统修改驱动固定USB摄像头节点绑定前后置摄像头

Android系统中usb摄像头节点会因为摄像头所接的usb口不同或者usb设备识别顺序不一样而出现每次开机生成的video节点不一样的问题。由于客户app调用摄像头时,需要固定摄像头的节点。因此需要针对前面的情况做处理。

Android系统开发笔记 2251

北京大学肖臻老师《区块链技术与应用》公开课笔记:BTC原理(一):密码学原理、数据结构、协议、实现

比特币被称为加密货币(crypto-currency),但其实加密货币是不加密的,区块链上所有交易内容(包括账户地址、转账金额等)都是公开的。比特币中主要用到了密码学中的两个功能:哈希和签名在密码学中用的哈希函数被称为cryptographic hash function,其两个重要性质分别为collision resistance(抗碰撞性)和hiding(隐藏性)哈希碰撞:有两个输入x和y,且x!=y,给定一个哈希函数H(),算出来H(x)=H(y),则称为哈希碰撞,即两个不同的输入算出来的哈希值是相等

hxt的博客 6372

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【区块链与密码学】第2-4讲:区块链基础技术大剖析之数字签名

【本课堂内容全部选编自PlatON首席密码学家、武汉大学国家网络安全学院教授、博士生导师何德彪教授的《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】 2.4.2 数字签名 昨天我们讲到区块链基础技术之一的哈希函数,今天这一讲我们来认识另一个区块链的基础技术——数字签名。 数字签名从字面上理解,是数字化签名。签名由来已久,用途极广。早在中国古代签名便已经广泛应用。我们最熟悉的可能是电视剧中,官老爷升堂断案,对堂下贫民,私用大刑

Digquant的博客 1352

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

区块链工作机制剖析:从密码学原理到分布式共识

区块链技术作为一种去中心化的分布式账本,通过密码学、共识机制和智能合约等核心技术,实现了无需中介的信任机制。其链式结构和哈希算法确保了数据的不可篡改性,P2P网络和共识机制解决了双花问题。然而,区块链仍面临51%攻击、智能合约漏洞等安全威胁,以及可扩展性、能耗和隐私保护等挑战。当前,分层架构、分片技术和新型共识算法等创新正推动区块链向更高效安全的方向发展。该技术在金融、公共服务等领域展现出巨大潜力,其工作机制为构建数字时代的可信价值网络提供了全新思路。

I am “技术科普侠”! 1151

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

智能合约与身份验证:区块链技术的创新应用

区块链,一个近年来备受瞩目的技术名词,已经从最初的数字货币领域扩展到了众多行业。那么,究竟什么是区块链?它为何如此重要?本文将深入剖析区块链技术的原理、应用及未来发展。区块链,从本质上讲,是一个去中心化的分布式数据库。它由一系列按照时间顺序排列的数据块组成,并采用密码学方式保证不可篡改和不可伪造。每一个数据块中包含了一定时间内的所有交易信息,包括交易的数量、交易的时间、交易双方的账户信息等等,并且每个数据块都被数字签名和加密算法保护,以确保其完整性和真实性。

星途码客的博客 3836

从密码学到经济学:区块链安全性多维度全面解析

区块链的安全性并非依赖于某一项技术的“绝对完美”,而是系统工程的胜利。它通过密码学提供数学保障,通过分布式网络消除单点故障,通过经济机制扭转攻击动机,通过智能合约实现规则自动化——这四者环环相扣,构成了一套完整的“深度防御”体系。正如比特币十多年来在数十亿资金刺激下依然稳健运行所证明的那样,区块链的安全性建立在“作恶的经济代价远大于诚实协作的收益”这一底层逻辑之上。这种将技术、经济和博弈论融为一体的设计,正是区块链作为“信任机器”最核心的价值所在。底部锚点⬆ ⬆ 顶部 ⬆ ⬆⬇ ⬇ 底部 ⬇ ⬇。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 1301

【WEB3.0零基础转行笔记】基础知识篇—第一讲:区块链基础

比特币是由中本聪于2009年创建的第一个成功的数字货币系统,它通过去中心化的点对点网络、密码学技术和工作量证明共识机制,在无需可信第三方的情况下,实现了安全、透明、有限供应的价值存储与转移,重塑了人类对货币、财产和信任的认知。它是一种基于密码学原理和点对点网络实现的、总量恒定且去中心化的数字货币系统。1. 从技术本质看去中心化的分布式账本:没有中央服务器或控制机构,账本由全球数以万计的节点共同维护。密码学货币:使用非对称加密(公私钥体系)确保资产所有权和交易安全。点对点价值传输协议。

tianp123的博客 1644

区块链原理与技术02:区块链的数据结构01(区块链中的密码学基础)

本文系统介绍了区块链中的密码学基础,重点解析了哈希函数的七大核心特性:抗原像性、抗第二原像性、强抗碰撞性、谜题友好性、雪崩效应、定长性与定时性。通过数学定义和实际案例(如比特币挖矿、生日攻击等),阐述了这些特性如何保障区块链的安全性和功能性。文章还对比了主流哈希算法在不同特性上的表现,为理解区块链底层机制提供了理论基础。

yihan小白的博客 427

「区块链」:web3.0的底层引擎-大白话详解

密码学是钢筋水泥,保证了数据不可篡改,身份不可伪造。共识机制是施工法则,让一群陌生人能协同盖出摩天大楼。网络架构是路网水管,让信息和价值能高效流动。智能合约是房间里的智能家电,实现了复杂的自动化功能。扩展方案是高架桥和地铁,最终让这栋大楼能容纳亿万大众。对于咱们支付人来说,这不是一场革命,而是一次范式转移。它不是在重复造轮子,而是在造新的交通工具。无国界、低成本、可编程、即时结算。现在,发动机的蓝图已经在我们手里了。是继续围观,还是开始动手组装,选择权在每一个人手里。参考文献。

xuezhongrenleima的博客 1666

从密码学视角拆解区块链:一次课程调研的技术复盘

这次调研最大的收获,是把课堂上学的那些抽象的密码学知识点,在区块链这个真实场景里串了起来。区块链的本质是密码学的工程化集成。它的不可篡改、去中心化、可追溯这三大核心特性,全部由密码算法提供严格的数学保证。脱离了应用密码学,区块链就没有可信的底层基础。不同类型的区块链,需要匹配不同的密码体系。公有链用国际椭圆曲线算法,侧重匿名数字资产;国内产业联盟链强制国密SM2/SM3/SM4套件,满足监管合规;私有链按需自定义。不能一刀切。当前区块链的绝大多数安全风险,根源都在密码学层面。

liyanshuang_的博客 412

区块链技术详解:从原理到应用

区块链技术远非完美,但其核心价值主张——在无需信任的环境中建立信任——具有深远的变革潜力。从重塑金融基础设施到构建可验证的全球供应链,从赋予个人数据主权到创造新型互联网(Web3),区块链正在多个维度开启创新的大门。尽管面临扩展性、隐私、监管等严峻挑战,技术社区正通过 Layer 2 方案、零知识证明、新型共识机制、跨链技术等持续创新。随着技术的成熟、监管框架的逐步清晰以及用户体验的不断改善,区块链有望从探索阶段走向大规模实际应用,成为未来数字经济和社会治理的关键信任基石。

ithadoop的博客 2402

区块链技术深度解析:从密码学原理到DeFi、供应链等核心应用场景

区块链本质上是一种基于密码学与分布式系统构建的信任机制。其核心原理在于通过哈希函数、非对称加密等技术,在去中心化网络中实现数据的不可篡改与安全验证。共识机制(如PoW、PoS)作为其“议事规则”,解决了节点间的信任协作问题,奠定了去中心化应用的技术基础。这项技术的核心价值在于以代码规则替代传统信用中介,显著降低多方协作中的信任成本。因此,它在需要建立可靠、透明协作关系的场景中展现出巨大潜力,例如金融领域的去中心化金融(DeFi)实现了无需中介的借贷与交易,以及供应链管理中的全流程可信溯源。本文将以DeFi和

weixin_29172201的博客 267

区块链原理与技术:全系列持续更新

区块链原理与技术

yihan小白的博客 747

一文搞懂数字签名:原理、技术与应用

数字签名作为网络安全的重要基石,以其基于公钥密码体制和哈希函数的精妙原理,实现了数据的完整性验证、身份认证和不可否认性。RSA、DSA 等非对称密钥加密算法,以及 MD5、SHA 系列哈希函数,共同构建了数字签名的技术大厦。在身份验证、电子合同、软件分发、电子邮件安全和数据完整性验证等众多领域,数字签名都发挥着不可或缺的作用,极大地推动了数字化时代的发展。然而,数字签名技术也面临着私钥管理风险、算法安全性挑战和信任基础问题等诸多难题。随着量子计算等新兴技术的崛起,数字签名技术必须不断演进和创新。

技术分享 5140
上一篇: 【区块链与密码学】第2-2讲:公链VS联盟链
下一篇: 【区块链与密码学】第2-4讲:区块链基础技术大剖析之数字签名
Dig Quant
博客等级 码龄7年 124粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值