区块链与密码学第5-6讲:哈希哈数在区块链中的应用

DigQuant DigQuant     2022-12-04     394

关键词:

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

5.6 哈希函数在区块链中的应用

前几节课我们对哈希函数已经有了一个很完整的认知,今天这节课我们来细说哈希函数在区块链中的应用~

以太坊用户地址的生成

第一步:生成私钥 (private key)

产生的256比特随机数作为私钥(256比特 16进制32字节): 

18e14a7b 6a307f42 6a94f811 4701e7c8 e774e7f9 a47e2c20 35db29a2 06321725

第二步:生成公钥 (public key)

利用将私钥(32字节)和椭圆曲线ECDSA-secp256k1计算公钥(65字节)(前缀04||X公钥||Y公钥): 

04 ||50863ad6 4a87ae8a 2fe83c1a f1a8403c b53f53e4 86d8511d ad8a0488 7e5b2352 || 2cd47024 3453a299 fa9e7723 7716103a bc11a1df 38855ed6 f2ee187e 9c582ba6

利用Keccak-256算法计算公钥的哈希值(32bytes):

fc12ad81 4631ba68 9f7abe67 1016f75c 54c607f0 82ae6b08 81fac0ab eda21781

取上一步结果取后20bytes即以太坊地址:

1016f75c54c607f082ae6b0881fac0abeda21781

第三步:输地址 (address)

0x1016f75c54c607f082ae6b0881fac0abeda21781

默克尔哈希树

比特币区块包含了区块头部和一些比特币交易。一个区块上所有交易的哈希值构成了该区块默克尔哈希树的叶子结点,默克尔哈希树的根节点保存在区块头里面,因此所有交易与区块头部绑定在了一起。

默克尔树结构示意图

挖矿难度的设置

比特币难度是对挖矿困难程度的度量,即指:计算符合给定目标的一个哈希值的困难程度。

difficulty = difficulty_1_target / current_target

difficulty_1_target的长度为256比特, 前32位为0, 后面全部为1 ,一般显示为哈希值,

0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

difficulty_1_target表示btc网络最初的目标哈希。current_target是当前块的目标哈希,先经过压缩然后存储在区块中,区块的哈希值必须小于给定的目标哈希值, 表示挖矿成功。

数字签名

比特币需要利用公钥进行加锁,利用私钥签名进行解锁,从而实现数字货币的交易。解锁过程实际上是利用ECDSA算法的产生数字签名。给定交易信息m,签名过程如下:

选择一个随机数k

计算点R= k*G= (xR, yR) ,计算r=xR mod n

利用私钥d计算s=k-1*((H(m) - d*r)) mod n

输入签名(r, s)

软件发布

挖矿软件发布信息示意图

哈希函数在区块链中的应用就讲到这里啦,下节课我们将开启全新篇章的学习,敬请期待!

-- 完 --

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

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

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

区块链与密码学第5-2讲:哈希函数的构造

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

区块链与密码学第5-3讲:详解常用哈希函数

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

区块链与密码学第4-8讲:区块链发展趋势全景

本课堂用通俗易懂的系列内容为大家呈现区块链与密码学领域相关知识。这里有知识也有故事,从感兴趣到有乐趣,点宽课堂等你来学。课程首先从比特币着手进行入门介绍,再延伸至区块链的相关技术原理与发展趋... 查看详情

区块链与密码学第4-7讲:区块链+产品溯源场景全梳理

本课堂用通俗易懂的系列内容为大家呈现区块链与密码学领域相关知识。这里有知识也有故事,从感兴趣到有乐趣,点宽课堂等你来学。课程首先从比特币着手进行入门介绍,再延伸至区块链的相关技术原理与发展趋... 查看详情

区块链与密码学第2-7讲:区块链基础技术大剖析之智能合约

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

区块链与比特币基础知识——北京大学肖臻老师《区块链技术与应用》公开课笔记

...师《区块链技术与应用》公开课的一些笔记1比特币中的密码学原理crypto-currency加密货币1密码学中用到的哈希函数的几个特性:​1collisionresistance抗碰撞性​哈希碰撞的就是不同的输入有相同的输出而导致的冲突​意思是没有... 查看详情

区块链与密码学第10-10讲:sigma协议簇

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

1.3.1区块链中的加密算法——hash算法(更新)(代码片段)

...密码哈希函数和椭圆曲线公钥密码技术在内的大量的现代密码学技术,同时,这些密码学技术也被用于设计基于工作量证明的共识算法并识别用户。  在前边的文章中已经系统的讲述了密码学中的哈希算法,在本节,将会给大... 查看详情

区块链与密码学第11-06讲:公钥证书

【本课堂内容全部选编自《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】11-06公钥密码的密钥分配(二)公钥证书日常生活中有许多使... 查看详情

区块链与密码学第10-8讲:身份鉴别协议

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

区块链与密码学第11-07讲:公钥与私钥安全存储

【本课堂内容全部选编自《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】11-07公钥与私钥安全存储使用公钥证书的主要好处紧接上节课,... 查看详情

区块链与密码学第11-07讲:公钥与私钥安全存储

【本课堂内容全部选编自《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】11-07公钥与私钥安全存储使用公钥证书的主要好处紧接上节课,... 查看详情

区块链与密码学第11-07讲:公钥与私钥安全存储

【本课堂内容全部选编自《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】11-07公钥与私钥安全存储使用公钥证书的主要好处紧接上节课,... 查看详情

区块链与密码学第10-7讲:身份鉴别协议

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

区块链与密码学第11-02讲:密钥管理原则

...汉大学国家网络安全学院教授、博士生导师的《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】11-02密钥管理原则密钥管理「8原则」区分密钥管... 查看详情

区块链与密码学第7-2讲:经典盲签名算法

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

区块链与密码学第10-6讲:身份鉴别协议

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

区块链与密码学第11-01讲:密钥管理概述

...汉大学国家网络安全学院教授、博士生导师的《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】11-01密钥管理概述密钥管理的重要性所有的密码... 查看详情