当前位置: 首页 > news >正文

什么是区块链?

简介

作者在学习虚拟机时突然发现有人提出如何在区块链开发一款轻量型jvm,由于对区块链不太了解,也不理解区块链为什么需要轻量型jvm。恰好最近有空,泡在图书馆找了本书《区块链导论》对相关知识进行了学习。

区块链系统;

特点:

  1. 去中介化:即没有向用户提供代理服务的机构。区块链通过密码学,共识技术等手段可直接实现“机器信任”而不需要第三方机构 进行信任担保。区块链拓扑网络采用点对点网络,没有专司决策的中央节点(去中心化)
  2. 可靠性:通过设计共识机制,就算有部分参与节点失效了,区块链系统依旧可以正常运行。
  3. 可追溯性:为交易和区块标上时间戳。
  4. 不易篡改性:已经上链的数据将会永远的存储在区块链中,不可删除且极难篡改。(为什么极难篡改:由于区块链系统是一个分布式的存储系统,如果要修改其中某个值,那么就需要修改大部分参与节点的共识直到达到该系统的修改标准,如果节点基数较大的话这样做的成本极高)
  5. 透明性:交易数据透明性,交易规则透明性。全量节点会同步区块链上所有交易数据。

体系架构:

  1. 数据结构和账户体系:区块分为区块头(一般存储该区块的元数据)和区块体(存储所有实际的交易结构)两部分。UTXO是比特币引入的一个模型主要由交易构成,每笔交易有多个输入输出内容是比特币数量。区块第一笔交易例外,输出地址是旷工比特币地址,是挖坑奖励。
  2. 网络通信:P2P网络,区块链网络模型,区块链网络协议。
  3. 安全体系
  4. 共识算法:往往由传统分布式一致算法演变而来(RAFT、PBFT .etc)。
  5. 智能合约:是区块链业务逻辑的载体,本质上是区块链网络中的一段代码,是网络中节点共同监督和遵守的“合同”和“约定”

密码学:

主要讲讲现代密码学:

密码攻击方式:

  1. 唯密文攻击:密码分析者有一些使用同种加密算法的密文,通过密文尽可能恢复明文或者获取密钥。
  2. 已知明文攻击:密码分析人员可能不仅获取到密文,甚至获取到了一些明文。通过二者结合进行解密。
  3. 选择明文攻击:选择被加密明文和待解密密文使用同一密钥加密。
  4. 选择密文攻击:选择不同被加密密文与待解密的密文使用同一密钥加密

对称型加密模式:

  • 发送方和接收方约定一个密钥,在安全信道中传输密钥然后通过公共信道获取密文。
  • 特点:算法公开,计算量小,加密速度快,加密效率高。不足:随着使用数量不断增加,难以获取其他人不知道的唯一密钥,双方使用同一密钥,无法保障安全性。

非对称加密算法:

  • 加密和解密使用不同算法,由于加密算法是公开的,所以也被称为公钥算法,只有解密算法是私有的。
  • 特点:密钥分配简单,密钥保存量少,可以满足互不相识的人之间进行私人谈话时的保密要求,可以完成数字签名和身份验证。

区块链中hash函数(不过多解释)

数字签名:

  1. 1. 即附加在数据单元上的一些数据或是对数据数据单元所做的密码变换。这种数据或密码变换可以被数据单元接受者用于确

    2. 认数据单元的来源和数据单元的完整性。保护数据不背他人伪造。

对等网络:

  • 区块链三大技术支持:密码学,对等网络,共识算法。区块链去中心化是对于比特币时期而言的,当下区块链更多突出的是可信任特点和价值维护作用,网络组也更加灵活。
  • 对等网络概述:是一种在IP网络之上的应用层的分布式网络,网络参与者即对等节点共享他们拥有的一部分硬件资源,对等网络 中共享资源提供的服务和内容能被对等网络中的对等节点访问,访问不需要经过对等网络外的其他实体。被称为覆盖网络或者端 对端网络。
  • 特点:去中心化,可扩展性,健壮性,高性价比,负载均衡性,隐私性。

对等网络的拓扑结构:

  1. 集中式对等网络
  2. 全分布式对等网络
  3. 混合式对等网络

总结

比特币并不等于区块链计数,和以太坊一样,二者都是区块链的应用案例,而对于区块链的开发,目前主流开发语言有cpp, go。Java 由于性能与前二者无法相比,所以并不常用于区块链开发,如之前的NEM(新经币最早的源代码由 Java 百分之百原创编写,但是后来整个架构重构迁移移到了 C++),目前区块链在智慧城市中也有很多的应用,相关内容我将在我阅读玩相关论文后再进行补充。

相关文章:

什么是区块链?

简介 作者在学习虚拟机时突然发现有人提出如何在区块链开发一款轻量型jvm,由于对区块链不太了解,也不理解区块链为什么需要轻量型jvm。恰好最近有空,泡在图书馆找了本书《区块链导论》对相关知识进行了学习。 区块链系统; 特点…...

2022年电赛F题23年电赛D题-信号调制度测量装置说明中提到带通采样定律。

2022年电赛F题-信号调制度测量装置说明中提到带通采样定律。 23年电赛D题十分相似,但是22年载波达到了10M,根据奈奎斯特采样定理,我们知道想要分析出频谱不混叠的频谱图,采样率必须大于最大谐波的二倍。那么就意味着AD采样率要大…...

Rust面试宝典第2题:逆序输出整数

题目 写一个方法,将一个整数逆序打印输出到控制台。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如:123的逆序输出为321,8600的逆序输出为68,-609的逆序输出为-906。 解析 这道题本身并没有什么…...

Linux笔记之查看docker容器目录映射

Linux笔记之查看docker容器目录映射 —— 2024-04-15 code review! docker inspect 容器ID或容器名 | grep -A 20 Mounts实践 grep -A 参数详解: grep 的 -A 参数用于在输出中包括匹配行后的指定数目的行。 使用 -A 参数 该参数的基本语法如下: …...

​​​​网络编程探索系列之——广播原理剖析

hello !大家好呀! 欢迎大家来到我的网络编程系列之广播原理剖析,在这篇文章中, 你将会学习到如何在网络编程中利用广播来与局域网内加入某个特定广播组的主机! 希望这篇文章能对你有所帮助,大家要是觉得我写…...

jar包解压和重新打包

1、Windows系统上解压和重新打包jar包的命令: (1). 解压jar包: jar -xf yourJarFile.jar (2). 重新打包jar包: jar -cf newJarFile.jar * 2、Linux系统上解压和重新打包jar包的命令: (1). 解压jar包: unzip your…...

Python基于Django的微博热搜、微博舆论可视化系统

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…...

Flink SQL:debezium-json 格式的表一定是数据库的 CDC 数据吗?

debezium-json 格式有一种非常典型的应用场景,就是:上游(Source)是一张使用 Flink CDC 接入的关系数据库中的表,下游(Sink)是一张创建在 Kafka 上的表,这张表的 format 往往会定义为 debezium-json,以便 Flink 能获得全面的 CDC 信息用于流上的实时处理,这种场景我们…...

基于STM32的RFID智能门锁系统

本文针对RFID技术,着重研究了基于单片机的智能门锁系统设计。首先,通过链接4*4按键模块与主控STM32,实现了多种模式,包括刷卡开锁、卡号权限管理、密码开锁、修改密码、显示实时时间等功能。其次,采用RC522模块与主控S…...

测试用例的编写评审

1、什么叫软件测试用例 什么是测试用例 测试用例(TestCase) 是为项目需求而编制的一组测试输入、执行条件 以及预期结果,以便测试某个程序是否满足客户需求。–测试依据 可以总结为:每一个测试点的数据设计和步骤设计。–测试用例 2、测试用例的重要性(了解) 2.1…...

二叉树的前、中、后序遍历【c++】

前序遍历&#xff1a;根左右 中序遍历&#xff1a;左根右 后序遍历&#xff1a;左右根 #include <iostream> #include <vector> using namespace std;//双链表节点结构 typedef struct treeNode {int value;struct treeNode* left;struct treeNode* right;treeNod…...

Hadoop HDFS:海量数据的存储解决方案

引言 在大数据时代&#xff0c;数据的存储与处理成为了业界面临的一大挑战。Hadoop的分布式文件系统&#xff08;Hadoop Distributed File System&#xff0c;简称HDFS&#xff09;作为一个高可靠性、高扩展性的文件系统&#xff0c;提供了处理海量数据的有效解决方案。本文将…...

Leetcode二十三题:合并K个升序链表【22/1000 python】

“合并K个升序链表”&#xff0c;这是一道中等难度的题目&#xff0c;经常出现在编程面试中。以下是该问题的详细描述、解题步骤、不同算法的比较、代码示例及其分析。 问题描述 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中…...

03-echarts如何画立体柱状图

echarts如何画立体柱状图 一、创建盒子1、创建盒子2、初始化盒子&#xff08;先绘制一个基本的二维柱状图的样式&#xff09;1、创建一个初始化图表的方法2、在mounted中调用这个方法3、在方法中写options和绘制图形 二、画图前知识1、坐标2、柱状图图解分析 三、构建方法1、创…...

2024蓝桥A组E题

成绩统计 问题描述格式输入格式输出样例输入样例输出评测用例规模与约定解析参考程序难度等级 问题描述 题目有问题方差定义那加平方&#xff08;vi-v&#xff09; 格式输入 输入的第一行包含三个正整数n,k,T &#xff0c;相邻整数之间使用一个空格分隔。 第二行包含n个正整数…...

Java单例模式

单例模式 什么是单例模式介绍实现单例模式的几种实现方式1. 懒汉式&#xff0c;线程不安全2、懒汉式&#xff0c;线程安全3、饿汉式4、双检锁/双重校验锁&#xff08;DCL&#xff0c;即 double-checked locking&#xff09;5、登记式/静态内部类6、枚举 什么是单例模式 单例模…...

04—常用方法和正则表达式

一、字符串 1.length 属性返回字符串的长度(字符数)。 2.在字符串中查找字符串 indexOf() 字符串使用 indexOf() 来定位字符串中某一个指定的字符首次出现的位置 如果没找到对应的字符函数返回-1 lastIndexOf() 方法在字符串末尾开始查找字符串出现的位置。 3.replace() 方…...

Python异常处理机制详解及示例

Python异常处理机制详解及示例 在编程过程中&#xff0c;异常处理是一项至关重要的技能。Python作为一种功能强大的编程语言&#xff0c;提供了一套完善的异常处理机制&#xff0c;使得程序在遇到错误或异常情况时能够优雅地处理&#xff0c;而不是直接崩溃。本文将详细介绍Py…...

解决:Java后端返回给前端的Date格式数据相差8小时的问题

问题描述&#xff1a; 后端得到的数据是对的&#xff0c;但是返回给前端后&#xff0c;数据比原数据慢了8小时。 原因&#xff1a; json数据在返回浏览器端是会被spring-boot默认的Jackson框架转换&#xff0c;而Jackson框架默认的时区GMT&#xff08;相对于中国是少了8小时…...

linux安装weblogic

版本 Linux: Red Hat Enterprise Linux Server 6.9 64bit(安装了图形界面) JDK: 1.8U361 64bit weblogic: fmw_14.1.1.0.0_wls.jar 安装手顺 安装配置JDK 下载jdk压缩包 下载取得jdk-8I361-linux-x64.tar.gz将压缩包放置到linux,并解压缩到指定目录tar xvf jdk-8u201-…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...