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,一经查实,立即删除!

相关文章

【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 功…

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

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

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

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

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

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

agents 分类

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

实例演示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…

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…

子任务:IT运维的精细化管理之道

在当今的企业运营中&#xff0c;信息技术已成为支撑业务发展的核心力量。根据Gartner的报告&#xff0c;IT服务管理&#xff08;ITSM&#xff09;的有效实施可以显著提升企业的运营效率&#xff0c;降低成本高达15%&#xff0c;同时提高服务交付速度和质量。随着业务的复杂性和…

电脑工具箱神器——uTools

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 很多人脑子里都有一些一个月只用两三次的软件&#xff0c;这些软件就这样积满了灰尘&#xff0c;需要的时候又不知道去哪里找。uTools 完美地解决…

MYSQL审批流程判断同一层级审批人是否全部通过审批

在做流程审批的时候&#xff0c;通常会出现某一层有多个审批人的情况&#xff0c;这个时候需要所有人都通过才会进入到下一步 数据结构如下图表格所示 每一个审批申请对应一个apply_id serial_no相同的代表是同一层级审批人 approval_status是审核状态 下面我们可以用一个SQL来…

Day50:单调栈 LeedCode 739. 每日温度 496.下一个更大元素 I 503. 下一个更大元素 II

739. 每日温度 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0c;下一个更高温度出现在几天后。如果气温在这之后都不会升高&#xff0c;请在该位置用 0 来代替。 示例 1: 输…

【蓄势·致远】 同为科技(TOWE)2024年年中会议

2024年7月2日-8日&#xff0c;同为科技&#xff08;TOWE&#xff09;召开2024年年中工作会议。会议回顾上半年总体工作情况&#xff0c;分析研判发展形势&#xff0c;规划部署下半年工作。 为期一周的工作会议&#xff0c;由同为科技&#xff08;TOWE&#xff09;创始人、董事长…

深度|不同数据系统中的“一致性”(Consistency)含义的区别

“你们的系统能实现强一致性吗&#xff1f;”作为过去几年一直在开发流处理系统的从业者&#xff0c;我经常被问到这个问题。我时常想自信地推销我们的产品&#xff0c;但现实情况是&#xff0c;回答这个问题并不简单。其中的挑战并不在于问题本身&#xff0c;而在于 “一致性”…

字节8年经验之谈!好用移动APP自动化测试框架有哪些?

移动App自动化测试框架是为了提高测试效率、降低测试成本而开发的一套工具和方法。好用的移动App自动化测试框架有很多&#xff0c;下面将介绍一些常用的框架&#xff0c;并提供一篇超详细和规范的文章&#xff0c;从零开始帮助你搭建一个移动App自动化测试框架。 1. Appium&a…