3,区块链加密(react+区块链实战)

3,区块链加密(react+区块链实战)

  • 3.1 哈希
  • 3.2 pow-pos-dpos
  • 3.3非对称加密
    • (1)对称加密AES
    • (2)非对称加密RSA
  • 3.4 拜占庭将军
  • 3.5 P2P网络
  • 3.6 区块链

3.1 哈希

密码学,区块链的技术名词

在这里插入图片描述

在这里插入图片描述

Hash woniu
将其变为hash值

数据指纹
可以将任意长度的数据转换成固定长度的数据

在这里插入图片描述

每次对woniu进行哈希得到的值是相同的
逆向困难,即下方的字符串无法逆向回到woniu

输入改变一点,整个哈希会发生非常大的变化
输入敏感

输入碰撞
要想找到某个字符的hash也是该字符否hash几乎是不可能的

3.2 pow-pos-dpos

上节课讲到了哈希

数据校验的应用,如发表一些信息或者软件,信息会被篡改,操作系统数据会被篡改,

在官网上放着哈希,看下周软件是否哈希和官网一样判断是否被篡改

共识,中心化无共识,只有中心说了算

无中心服务器时,如何让各个人达成一致

共识机制
1,POW工作量证明(全网随机出一道数学题,大家一起做,做出来,课卖100元,结果验证很很简单,比较原始,计算消耗能源大)
2,POS权益证明:不是谁干的活多谁转的多,类似公司,谁的权益大谁赚的多,如以太坊,谁的币多,谁拥有的时间越长,谁就获得
3,DPOS代理权益证明,全网广播证明太难,类似人大代表,只需要一部分代表同意即可,如EOS,定期精选EOS,可能会贿赂选节点,这个超级节点的权利

3.3非对称加密

现代科技与密码学分不开

有些人会篡改一些信息

如支付、交流、军事等

需要加密保护信息

最早字母表

(1)对称加密AES

只有一个秘钥,私钥

私钥会共享

发送逻辑,发送者私钥加密信息,发送密文, 接收方就用相同的私钥解密

此时私钥是相同的,计算效率比较高,前提是需要私钥共享

在这里插入图片描述

(2)非对称加密RSA

蜗牛 私钥加密信息(私钥签名)+公钥

小明这:收到信息+加密后的签名+公钥(公钥可以公开,只用来校验,公钥可以使用私钥计算得到) 通过公钥验证信息是否合法(只要证明信息合法,则信息明文也就无所谓了)

此时在传递需要认证的消息时,就不用事先共享私钥了,避免风险

这样信息可以证明其正确的,确实由蜗牛发出来的,第二个自己想抵赖也无法抵赖

在这里插入图片描述

在这里插入图片描述

在此里面也继承了非对称加密的代码,用来测试

公钥可以根据私钥计算得到,不可逆

私钥就是一个随机字符串

1,使用私钥计算公钥如下(getpub方法,woniu为私钥,计算的公钥如下)
在这里插入图片描述

2,对某个信息使用私钥进行签名(sign方法,信息-imoocisgood,私钥woniu,得到签名的信息如下)
在这里插入图片描述

3,发送消息将“imoocisgood”+签名的信息+公钥三个信息一起发送出去,接收方会接到这三个信息进行校验
4,Verify
在这里插入图片描述

区块链中每笔交易的模型
在这里插入图片描述

从谁转给谁,转了多少钱,会拼接成字符串,使用私钥加密,对方使用公钥验证解密,偷懒公钥直接使用adress地址,就不用再私发公钥了

本地是随机字符串生成了私钥,再使用私钥生成公钥
在这里插入图片描述

本地PUB方法得到本地的公钥,PRV得到本地的私钥

在挖矿,查询余额,转账时使用的都是pub公钥
在这里插入图片描述

Mine挖矿
Balance查询余额

3.4 拜占庭将军

当一些节点被黑,发出了错误的信息这怎么解决

拜占庭将军想要在某个时间一起进攻,这种情况就要考虑有些将军叛变,有些命令被篡改
怎么保证只要忠诚的将军收到命令后执行此命令,若有反叛,防止篡改

问题有很多解答

这有容错的机制

分布式系统肯定有的被黑,有的被挂,POW怎么保证

等等

多个将军的系统,无论叛军怎么做,都保证忠诚的将军最后发起进攻

这里就不多介绍了

3.5 P2P网络

点对点的系统

若在电脑下载一个比特币的软件,打开后就成为了一个比特币的节点,但是并没有一个公网IP,但别的网络如何和你进行通信

这就使用了P2P的网络系统

P2P、电驴等P2P的,最早出现原因,将某个电影放在服务器,如果好多成千上百人来访问服务器,服务器的带宽是扛不住的,就使用了点对点的系统,来我这告诉你别的节点文件在哪,去找其下载,这就减轻了中心服务器的压力

有启动节点

像以太坊的完全去中心化的,使用了DHT的kademlia的网络

自己实现的

在这里插入图片描述

我们的电脑没有公网ip,只有本地192.168的

我们访问外网的时候,网关会临时给一个公网端口,通过这个端口与外网进行交互

P2P交互逻辑,还是要UDP实现一个简单的P2P网络
在这里插入图片描述

加入节点时都会更新本地区块链

在这里插入图片描述

当加入新的节点会和所有的节点打个招呼

PEER方法,得到节点信息

机器之间通过中心服务器,网关键加入白名单,为了方便后续的交流沟通

3.6 区块链

分布式,系统在多个节点上

在这里插入图片描述

地址区块

地址就是公钥,区块包含什么信息
Detail 44查看某个区块
在这里插入图片描述

Index
Previoushash 上一个哈希值
Timestamp 时间戳
Nonce 随机数的难度值
Hash hash的前5个人是0,前面的0越多难度越大
Data 转账信息,这里是只有挖矿的信息故只有一条转账

这就是一个区块的详情

在这里插入图片描述

该内置了一个方法update可以用来篡改某个区块的信息,将某个区块的转账金额加1

这里对第40个区块进行篡改
在这里插入图片描述

输入bc方法,可以查看完整的区块链,如下找到第40个区块,数据已经被改了

在这里插入图片描述

这里的valid方法校验整个区块是否合法

每个区块都有previoushash及hash,而hash是由index,data,previoushash等等得到
在这里插入图片描述

在这里插入图片描述

使用方法mineblock 40修复第40个的区块,此处的修复是将不合法的第40个区块变为合法,但第41个就不合法了,需要一个个向后修复
在这里插入图片描述

虽然修复了第40个区块,但41就不合法了,越是前面的区块越不容易修复

篡改很难几乎不可能的任务

智能合约,现在的大部分的去中心话的应用都是部署在以太坊上的智能合约,后面会有章节专门介绍,转账信息由谁转给谁

后面也会有章节专门介绍,现在比特币只是谁转给谁几个币等,智能做币

而以太坊有图灵完毕的虚拟机,智能合约就是一定地址,一定的代码,在符合条件的时候执行此代码,代码中可以抽奖、预测、游戏等,存在链上,完全去中心化,不受人为干预的

后面会介绍实战开发

在这里插入图片描述

钱包

既然币,存储各类数字货币的钱包

所能掌握的就是私钥,会将私钥放在脑子、放在纸上、放在电脑中这些就是钱包,放到脑子记不住,就需要一个钱包来管理

数字货币就不详解了
在这里插入图片描述

比特币使用merkle树来计算hash

下一章就是nodejs区块链实战

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

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

相关文章

在Spring Boot项目中集成单点登录解决方案

在Spring Boot项目中集成单点登录解决方案 大家好,我是微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在现代的企业应用中,单点登录(Single Sign-On, SSO)解决方案是确保用户…

【Git的基本操作】版本回退 | 撤销修改的三种情况 | 删除文件

目录 5.版本回退 5.1选项hard&后悔药 5.2后悔药&commit id 5.3版本回退的原理 6.撤销修改 6.1情况一 6.2情况二 6.3情况三 ​7.删除文件 Git重要能力之一马,版本回退功能。Git是版本控制系统,能够管理文件历史版本。本篇以ReadMe文件为…

神器!3个免费PPT成品网站推荐+3款AIPPT工具盘点!

熬夜加班做PPT却没有头绪?别再自己憋着想了!现在凡事主打一个“抄作业”,想做ppt却没想法,可以去到ppt成品网站搜集PPT模板,或是使用时下流行的AI生成PPT工具,只需输入PPT主题,即可快速生成一份…

全网最详细的CRC讲解即计算

CRC 循环冗余码(Cyclic Redundancy Code, CRC)是一种用于校验通信链路上数字传输准确性的计算方法(通过某种数学运算来建立数据位和校验位(CRC)的约定关系的)。它是利用除法以及余数的原理来作错误侦测。 发送方: 使用…

客户关系管理怎么做?这4个工具一定要会用!

在商海浮沉中,每一位企业家和销售经理都深知,客户是企业生存与发展的基石。但如何有效管理这些宝贵的资源,让每一次互动都成为加深关系、促进成交的契机,却是一门艺术加科学的结合体。今天,咱们就来聊聊客户关系管理&a…

3SRB5016-ASEMI逆变箱专用3SRB5016

编辑:ll 3SRB5016-ASEMI逆变箱专用3SRB5016 型号:3SRB5016 品牌:ASEMI 封装:SGBJ-5 批号:2024 现货:50000 最大重复峰值反向电压:1600V 最大正向平均整流电流(Vdss):50A 功…

CNN -1 神经网络-概述

CNN -1 神经网络-概述 一:芯片科技发展介绍了解1> 芯片科技发展趋势2> 芯片使用领域3> 芯片介绍1. 神经网络芯片2. 神经网络处理单元NPU(Neural Processing Unit)二:神经网络1> 什么是神经网络2> 神经元3> 人工神经网络三:卷积神经网络(CNN)入门讲解一…

【Spring】springSecurity使用

一、基本配置 1. 引入依赖 在Spring Boot项目中&#xff0c;使用Spring Security首先需要引入相应的依赖。在pom.xml中添加spring-boot-starter-security依赖&#xff1a; <dependency> <groupId>org.springframework.boot</groupId> <artifactId>…

Kodcloud可道云安装与一键发布上线实现远程访问详细教程

文章目录 1.前言2. Kodcloud网站搭建2.1. Kodcloud下载和安装2.2 Kodcloud网页测试 3. cpolar内网穿透的安装和注册4. 本地网页发布4.1 Cpolar云端设置4.2 Cpolar本地设置 5. 公网访问测试6.结语 1.前言 本文主要为大家介绍一款国人自研的在线Web文件管理器可道云&#xff0c;…

唐刘:当 SaaS 爱上 TiDB(一)- 行业挑战与 TiDB 的应对之道

导读 在 TiDB 8.1 发布后&#xff0c;TiDB 展现了强大的支持 SaaS 业务的能力&#xff0c;成为 SaaS 业务数据库的优先选择之一。 本文为“当 SaaS 爱上 TiDB”系列文章的第一篇&#xff0c;系列文章将从技术原理和真实用户体验两个角度深入探讨 TiDB 在 SaaS 业务中的表现&a…

qt gridlayout 应用举例

Qt的GridLayout是一种非常有用的布局管理器&#xff0c;它允许你在一个网格中放置控件&#xff0c;这样你就可以创建出结构清晰、布局整齐的用户界面。下面是一个使用GridLayout的简单例子&#xff0c;展示了如何在一个窗口中放置几个按钮。 #include <QApplication> …

太速科技-3U VPX飞腾处理器刀片计算机

3U VPX飞腾处理器刀片计算机 一 、产品概述 该产品是一款基于国产飞腾FT2000 4核或腾锐D2000 8核的高性能3U VPX刀片式计算机。产品提供了4个x4 PCIe 3.0总线接口&#xff0c;同时可配置为1个x16或2个x8 PCIe3.0接口&#xff0c;因此具有很强的扩展性&#xff0c;极大…

agents 分类

一、分类 自动agent、半自动agent、领域、自定义sop和支持人为干预的agent。 先泼个冷水&#xff0c;目前这些agent项目都是实验品&#xff0c;发展还没有做知识库问答相关开源项目那么成熟&#xff0c; 二、全自动agent autoGPT、loopGPT、babyAGI 全自动agent就是人类不可…

sizeof()

一、题目 *struct T { char a; int *d; int b; int c:16; double e; }; T *p; 在64位系统以及64位编译器下&#xff0c;以下描述正确的是 A: sizeof 24 B: sizeof(p) 24 C: sizeof(p->a) 1 D: sizeof(p->e) 4 二、解析 p是一个指针&#xff0c;指针在32位机器上是…

GEE数据集——全球Ookla 5G 基站地图数据(Ookla 5G Map Data)

Ookla 5G Map Data Ookla 5G 地图数据 Ookla 5G Map™ 于 2019 年 5 月推出,旨在全面展示 5G 技术在全球的扩展情况。在推出之初,该地图突出显示了 17 个国家的 300 项部署,说明了这一变革性技术的初步推广情况。随着时间的推移,该地图已大幅增长,现在包含了来自 142 个…

实例演示Kafka-Stream消息流式处理流程及原理

以下结合案例&#xff1a;统计消息中单词出现次数&#xff0c;来测试并说明kafka消息流式处理的执行流程 Maven依赖 <dependencies><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-streams</artifactId><exclusio…

Java中的LinkedList(链表)(如果想知道Java中有关LinkedList的知识点,那么只看这一篇就足够了!)

前言&#xff1a;在Java编程语言中&#xff0c;Java集合框架提供了一组丰富的数据结构&#xff0c;以满足各种应用需求。其中&#xff0c;LinkedList作为一种常用的数据结构&#xff0c;具有独特的优势和广泛的应用场景。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内…

linux radix-tree 基数树实现详解

radix tree&#xff0c;又称做基数树&#xff0c;是一种适合于构建key(index)与value(item)相关联的数据结构。内核中使用非常广泛。本文主要聚焦linux内核基数树的代码实现,大量注释过的代码。 radix-tree组织结构如下: 1、数据结构 /** The bottom two bits of the slot de…

如何通过JSON-RPC向以太坊链发送签名交易数据?

概述 在以太坊开发当中,通过web3.js、ethers.js等提供的API方法,都可以完成与以太坊的转账交易。那么如何通过以太坊JSON-RPC与以太坊进行交易呢? 在以太坊的JSON-RPC当中,有eth_sendRawTransaction这个方法,可以向以太坊网络提交预签名的交易广播。 curl https://main…

IDEA阿里云OSS实现文件上传·解决苍穹外卖图片回显

简单交代配置阿里云OSS的思路 1. 首先去阿里云开通一个OSS服务&#xff0c;配置好一个自己的Bucket 2. 在IDEA配置Bucket 3. 拷贝官网的OSS工具类代码 package com.sky.utils;import com.aliyun.oss.ClientException; import com.aliyun.oss.OSS; import com.aliyun.oss.OSS…