区块链基础知识(上):区块链基本原理、加密哈希、公钥加密

目录

 

基本原理

加密哈希:

公钥加密:

希望有人向你发送只有你才能打开的加密文档/消息时使用 PKC

希望向其他人发送加密文档/消息并证明它确实由你发送时使用 PKC

使用 PKC 和加密哈希对文档/消息进行数字签名

 

交易哈希链使用数字签名转让数字资产所有权;每个交易记录都保留有对哈希链中上一个交易的加密反向链接

Merkle 树:


 

基本原理

区块链的基本原理理解起来并不复杂。首先来看三个基本概念:

  • 交易(Transaction):一次对账本的操作,导致账本状态的一次改变,如添加一条转账记录;

  • 区块(Block):记录一段时间内发生的所有交易和状态结果等,是对当前账本状态的一次共识;

  • 链(Chain):由区块按照发生顺序串联而成,是整个账本状态变化的日志记录。

 

b723ab18124644cc9867767a4e4aeecd.png

想象一下你和一群爱借钱的朋友。每个人都有一本账本,上面记录着所有的交易和账户余额。这个账本是分布在每个人手里的副本,而不是交给某个人拿着账本。

每当有人想要进行一次交易,比如转账给其他人一定数量的金币,他们会把这个交易写在自己的账本上,并通知其他人。其他人会验证这个交易是否有效,比如检查发送人是否有足够的金币进行转账。如果交易被验证通过,它就会被添加到每个人的账本上,表示账本的状态发生了变化。

为了确保每个人的账本都保持一致,我们约定一些规则。首先,每个人在记录交易时必须按照相同的顺序进行,就像是按照时间顺序排队一样。其次,每个人会把自己已验证的交易打包成一个“区块”,并把这个区块连接到之前的区块上,形成一个链条。

现在,每个人都有了相同的账本副本,每个区块都记录了之前的区块的信息。这样,任何人都可以通过检查每个区块的信息来验证整个账本的有效性。如果有人试图篡改账本的某个区块,那么所有人都会注意到,因为区块的哈希值会发生变化,从而破坏了整个账本的连续性

这个共享账本游戏的关键在于共识。当有人想要添加一个新的区块时,其他人会一起参与确认这个区块的有效性,并达成共识。只有在达成共识后,新的区块才会被添加到每个人的账本上。

这就是区块链系统的运作原理。通过分布式的账本副本、按照特定的规则记录交易和形成区块链,区块链系统实现了一个安全、透明和去中心化的数据记录方式。

 

加密哈希

加密哈希的作用是创建一个唯一的指纹或标识,用于表示输入数据。无论输入数据有多大或多小,哈希函数都会生成相同长度的哈希值。这意味着即使输入数据发生微小的改变,生成的哈希值也会完全不同。

加密哈希有几个重要的特性。首先,它是单向的,意味着无法从哈希值还原出原始数据。这使得哈希值成为一种安全的方式来存储密码或其他敏感信息,因为即使黑客获得了哈希值,他们也无法轻松地将其转换回原始数据。

其次,加密哈希是不可逆的。这意味着无法通过观察哈希值来推断出输入数据的内容。哈希函数的设计使得即使输入数据发生微小的变化,其生成的哈希值也会有很大的差异。

最后,加密哈希应该是唯一的。这意味着不同的输入数据应该生成不同的哈希值。即使两个输入数据只有一个字节的差异,它们生成的哈希值也应该完全不同。

以下是使用 SHA-256 算法对各种长度的字符串进行哈希处理

7282137055674d2584454c960c2cc2fa.png

有时,哈希值会进行双重哈希处理。也就是说,通过应用第二轮 SHA-256 算法

213a09c7eb8a4d04bf42dd9090c8f91e.png

 

公钥加密:

希望有人向你发送只有你才能打开的加密文档/消息时使用 PKC

首先,我们来看一下公钥和私钥。公钥是可以被分享给其他人的密钥,而私钥是保密的,只有密钥的所有者知道。这两个密钥是通过数学算法生成的,它们之间有一个特殊的关系。

假设Alice想要向你发送一个加密的消息。你首先生成一对公钥和私钥,并将公钥发送给Alice。Alice使用你的公钥来加密她想要发送的消息。

现在,即使消息被加密,只有你拥有与公钥配对的私钥,才能解密消息。这是因为私钥是唯一能够解密使用公钥加密的消息的密钥。

e373c2fdeb5f4970a3e7432ded4055fb.png

希望向其他人发送加密文档/消息并证明它确实由你发送时使用 PKC

当你希望向其他人发送加密文档或消息,并且希望能够证明这些文档或消息确实是由你发送的时候,你可以使用公钥加密和数字签名这两个方法。

使用公钥加密时,你会生成一对密钥:公钥和私钥。你将公钥分享给其他人,而私钥只有你自己能够访问。其他人可以使用你的公钥来加密他们想要发送给你的文档或消息。一旦文档或消息被加密,只有你拥有的私钥才能解密它们,这样确保了只有你能够读取原始内容。

98605af08ddf407e81afdb2f15361e42.png

使用 PKC 和加密哈希对文档/消息进行数字签名

  1. 生成密钥对:首先,你需要生成一对密钥:公钥和私钥。通常,你会使用一个密钥生成算法来生成这对密钥。公钥可以与其他人分享,而私钥必须保持机密,只有你自己能够访问。

  2. 哈希处理:对于要进行数字签名的文档或消息,你需要使用加密哈希算法对其进行哈希处理。加密哈希算法会将文档或消息转换为一个固定长度的哈希值。常用的加密哈希算法包括SHA-256和SHA-512等。

  3. 私钥加密:使用你的私钥对哈希值进行加密。这个加密操作会生成一个数字签名,这个签名是唯一与你的私钥相关联的加密值。

  4. 发送签名和文档/消息:将数字签名和原始文档或消息一起发送给接收方。确保这些信息在传输过程中是安全的,以防止篡改。

  5. 公钥解密:接收方使用你的公钥对数字签名进行解密。解密操作将得到解密后的哈希值。

  6. 哈希验证:接收方使用相同的加密哈希算法对接收到的文档或消息进行哈希处理,得到一个新的哈希值。

  7. 比较哈希值:接收方将解密后的哈希值与新生成的哈希值进行比较。如果两个哈希值匹配,那么说明文档或消息没有被篡改过,并且数字签名有效。
    0f053a3b869941908131a29560b91f46.png

 使用 PKC 和加密哈希验证文档/消息

5298a3bb65be4948af2de4042c5ec32d.png

 

交易哈希链使用数字签名转让数字资产所有权;每个交易记录都保留有对哈希链中上一个交易的加密反向链接

交易哈希链是一种用于转让数字资产所有权的机制,它使用数字签名来验证交易的有效性,同时通过保留对上一个交易的加密反向链接来确保交易记录的完整性。

在交易哈希链中,每个交易都会被记录并与一个唯一的哈希值相关联。这个哈希值是通过对交易的内容进行加密哈希处理而生成的。这样做可以确保交易的完整性,因为即使交易的内容发生微小的更改,哈希值也会发生变化。

d6f5ce19a298473886c4d0b95cfab574.png

Merkle 树

Merkle 树是一种生成 Merkle 根哈希的二叉哈希树;此数据结构可以有效添加叶节点,并计算新 Merkle 根,而无需完全重新计算

aee50ed6b7cb4c2e970f435320dda66e.png

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/744605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SenseNova 商汤日日新大模型 Function Call(函数调用)功能讲解和应用示例

考虑到使用 magic 申请 OpenAPI 的账号挺麻烦的,这里以商汤日日新大模型 SenseNova 介绍 Function Call 的功能。 官方链接:日日新开放平台 一、Function Call 是个啥? 在 LLM(Large Language Model) 语言大模型时代&…

YOLOv9实例分割教程|(二)验证教程

专栏地址:目前售价售价59.9,改进点30个 专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,助力高效涨点!!! 一、验证 打开分割验证文件,填入数据集配置文件、训练好的权重文件&…

报告合集 |2023年,5份必读的“数字孪生”行业报告合集(文末下载)

数字孪生正在快速改变多个行业的面貌。它通过创建物理世界对象的虚拟复制,使得数据分析和系统优化能够在数字空间中实现,正在制造业、城市规划、医疗保健等国家支柱行业展现出巨大的变革力量,为行业的智能决策和预测提供了强大的支撑。 作为…

【UE】AI行为树入门——以小白人跟踪玩家并攻击为例

目录 前言 效果 步骤 一、准备工作 二、用蓝图实现AI随机移动 三、用行为树实现AI随机移动与跟踪玩家并攻击的效果 3.1 AI随机移动 3.2 AI看到玩家后跟踪玩家 3.3 AI攻击玩家 前言 本篇文章要实现的效果是:小白人随机移动,并且在移动过程中如…

电玩城游戏大厅计时软件怎么用,佳易王计时计费管理系统软件定时语音提醒操作教程

电玩城游戏大厅计时软件怎么用,佳易王计时计费管理系统软件定时语音提醒操作教程 一、前言 以下软件操作教程以 佳易王电玩计时计费软件V18.0为例 说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、软件计时计费,只需点击开…

国际前十正规外汇实时行情走势app软件最新排名(综合版)

外汇交易,作为当今世界金融市场上一个重要的板块,备受关注和热议。随着金融市场的日益发展,外汇交易也发展成为一个新兴的投资交易渠道。为了更好地满足投资者对外汇市场的需求,外汇实时行情走势app软件应运而生,它为投…

Material UI 5 学习03-Text Field文本输入框

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Text Field文本输入框 一、最基本的本文输入框1、基础示例2、一些表单属性3、验证 二、多行文本 一、最基本的本文输入框 1、基础示例 import {Box, TextField} from "…

【Python】新手入门学习:详细介绍里氏替换原则(LSP)及其作用、代码示例

【Python】新手入门学习:详细介绍里氏替换原则(LSP)及其作用、代码示例 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyT…

前端基础篇-深入了解 JavaScript(一)

文章目录 1.0 JavaScript 概述 2.0 JS - 引入方式 3.0 JS - 基础语法 4.0 JS - 数据类型 5.0 JS - 函数 6.0 JS - Array 数组 7.0 JS - String 字符串 1.0 JavaScript 概述 JavaScript(简称:JS)是一门夸平台、面向对象的脚本语言。使用来控制网页行为,它…

C++训练营:引用传递

大家好: 衷心希望各位点赞。 您的问题请留在评论区,我会及时回答。 一、引用传递 简单来说,“引用”就是给已有的变量起一个别名。引用并没有自己单独的内存空间,作为引用,它和原变量共用一段内存空间。引用的定义格…

算法空间复杂度计算

目录 空间复杂度定义 影响空间复杂度的因素 算法在运行过程中临时占用的存储空间讲解 例子 斐波那契数列递归算法的性能分析 二分法(递归实现)的性能分析 空间复杂度定义 空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大…

Springboot中Redis的配置使用

新建 向pom.xml中添加依赖&#xff0c;这个可以不用标注版本号 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 配置yml文件&#xff08;文件名不可以错…

钉钉与实在智能达成战略合作,实在Agent助力钉钉AI助理成为“新质生产力”

3月12日&#xff0c;浙江实在智能科技有限公司&#xff08;简称“实在智能”&#xff09;与钉钉&#xff08;中国&#xff09;信息技术有限公司&#xff08;简称“钉钉”&#xff09;签署战略合作协议&#xff0c;达成战略合作伙伴关系。 未来&#xff0c;基于双方创新领先的技…

echarts - 鼠标事件详解

一、echarts 事件概念 chart.on(eventName, query, handler);1. 鼠标事件类型 eventName ECharts 支持9种常规的鼠标事件类型&#xff0c;包括click、 dblclick、 mousedown、mousemove、mouseup、mouseover、 mouseout、 globalout、contextmenu事件。 click&#xff1a;鼠…

C语言【典型算法编程题】总结

以下最全总结! 一,分支结构 1,if 编写程序,从键盘上输入三角形的三个边长(实数),判断这三个边能否构成三角形(构成三角形的条件为:任意两边之和大于第三边),如果能构成三角形,则计算三角形的面积并输出(保留2位小数);如果不能构成三角形,则输出“Flase”字符…

OCR-free相关论文梳理

⚠️注意&#xff1a;暂未写完&#xff0c;持续更新中 引言 通用文档理解&#xff0c;是OCR任务的终极目标。现阶段的OCR各种垂类任务都是通用文档理解任务的子集。这感觉就像我们一下子做不到通用文档理解&#xff0c;退而求其次&#xff0c;先做各种垂类任务。 现阶段&…

App Inventor 2 Clipboard 拓展:实现剪贴板的复制粘贴功能

效果如下&#xff1a; 此 Clipboard 拓展由中文网开发及维护&#xff0c;最新版本 v1.0&#xff0c;基于 TaifunClipboard 开发。 使用方法 属性及方法很简单&#xff0c;默认操作成功后显示提示信息&#xff0c;SuppressToast设置为 假 后&#xff0c;则不显示提示信息。 经测…

工业界真实的推荐系统(小红书)-重排:多样性算法-MMR、DPP、结合业务规则

课程特点&#xff1a;系统、清晰、实用&#xff0c;原理和落地经验兼具 b站&#xff1a;https://www.bilibili.com/video/BV1HZ421U77y/?spm_id_from333.337.search-card.all.click&vd_sourceb60d8ab7e659b10ea6ea743ede0c5b48 讲义&#xff1a;https://github.com/wangsh…

掌握SWOT分析:深入了解企业战略利器

在当今充满挑战和机遇的商业世界中&#xff0c;SWOT分析成为了企业战略制定和执行的不可或缺的工具。SWOT分析是一种系统性方法&#xff0c;用于评估企业内部的优势和劣势&#xff0c;以及外部环境中的机遇和威胁。本文将深入探讨SWOT分析的各个方面&#xff0c;揭示其深层次的…

数据结构从入门到精通——堆

堆 前言一、二叉树的顺序结构及实现 (堆&#xff09;1.1二叉树的顺序结构1.2堆的概念及结构 二、堆的练习题答案 三、堆的实现3.1堆向下调整算法3.2堆的创建3.3建堆时间复杂度3.4堆的插入3.5堆的删除3.6堆的代码实现 四、堆的具体实现代码Heap.hHeap.cTest.c堆的初始化堆的销毁…