区块链 — Overview

news/2024/4/29 7:26:42/文章来源:https://blog.csdn.net/weixin_45804031/article/details/127435230

文章目录

    • 区块链的概念
    • 区块链数据结构
    • 区块链的基础技术
      • 哈希运算
      • 数字签名
      • 共识算法
      • 智能合约
      • P2P网络
    • 区块链分类
      • 公有链
      • 联盟链
      • 私有链

区块链的概念

狭义上,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
广义上,区块链技术是利用块链式数据结构来验证和存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全性、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。

区块链数据结构

区块是链式结构的基本数据单元,聚合了所有交易相关信息,主要包含区块头和区块主体两部分。区块头主要由父区块哈希值(Previous Hash)、时间(Timestamp)、默克尔树根(Merkle Tree Root)等信息构成;区块主体一般包含一串交易的列表。每个区块中的区块头所保存的父区块的哈希值,便唯一地指定了该区块的父区块,在区块间构成了连接关系,从而组成了区块链的基本数据结构。

在这里插入图片描述

区块链的基础技术

哈希运算

每个区块头包含了上一个区块数据的哈希值,这些哈希层层嵌套,最终将所有区块串联起来,形成区块链。区块链里包含了自该链诞生以来发生的所有交易,因此要篡改一笔交易,意味着它之后的所有区块链的父区块哈希值全部要篡改一遍,这需要进行大量的运算。
除上述防篡改特性,基于哈希算法组装出的默克尔树也在区块链中发挥了重要作用。在区块链中默克尔树就是当前区块所有交易信息的一个哈希值。但是这个哈希值并不是直接将所有交易内容计算得到的哈希,而是一个哈希二叉树。首先对每笔交易计算哈希值;然后进行两两分组,对这两个哈希值再计算得到一个新的哈希值,两个旧的哈希值就作为新哈希值的叶子节点,如果哈希值数量为单数,则对最后一哈希值再次计算哈希值即可;然后重复上述计算,直至最后只剩一个哈希值,作为默克尔树的根,最终形成一个二叉树的结构。

数字签名

在区块链网络中,每一个节点都拥有一份公私钥对。节点发送交易时,先利用自己的私钥对交易内容进行签名,并将签名附加在交易中。其他节点收到广播消息后,首先对交易中附加的数字签名进行验证,完成消息完整性校验及消息发送者身份合法性校验后,该交易才会触发后续处理流程。

共识算法

保证所有节点最终都记录一份相同的正确数据,即达成共识,是一个十分关键的问题,它关系着整个区块链系统的正确性和安全性。

四类共识算法:

  • 工作量证明(Proof of Work, PoW)类的共识算法
  • Po*的凭证类共识算法
  • 拜占庭容错(Byzantine Fault Tolerance, BFT)类算法
  • 结合可信执行环境的共识算法

智能合约

智能合约的引入可谓区块链发展的一个里程碑。区块链从最初单一数字货币应用,至今融入各个领域,智能合约可谓不可或缺。金融、政务服务、供应链、游戏等各类别应用,几乎都是以智能合约的形式运行在不同的区块链平台上。
简单来讲,智能合约是一种在满足一定条件时,就自动执行的计算机程序。
智能合约一旦在区块链上部署,所有参与节点都会严格按照既定逻辑执行。基于区块链上大部分节点都是诚实的基本原则,如果某个节点修改了智能合约逻辑,那么执行结果就无法通过其他节点的校验而不会被承认,即修改无效。

P2P网络

P2P网络,是一种消除了中心化的服务节点,将所有的网络参与者视为对等者,并在他们之间进行任务和工作负载分配。P2P结构打破了传统的C/S模式,去除了中心服务器,是一种依靠用户群共同维护的网络结构。

区块链分类

公有链

公有链,就是任何人都可以参与区块链数据的维护和读取,不受任何单个中央机构的控制,数据完全开放透明。公有链的典型案例是比特币系统。

联盟链

联盟链通常应用在多个互相已知身份的组织之间构建,比如多个银行之间的支付结算、多个企业之间的物流供应链管理、政府部门之间的数据共享等。因此联盟链系统一般都需要严格的身份认证和权限管理,节点的数量在一定时间段内也是确定的,适合处理组织间需要达成共识的业务。联盟链的典型代表是Hyperledger Fabric系统。

私有链

所谓私有就是指不对外开放,仅在组织内部使用。私有链是联盟链的一种特殊形态,即联盟链中只有一个成员,比如企业内部的票据管理、账务审计、供应链管理,或者政府部门内部管理系统。私有链通常具备完善的权限管理体系,要求使用者提交身份认证。
在私有链环境中,参与方的数量和节点状态通常是确定、可控的,且节点数目要远小于公链。

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

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

相关文章

深度神经网络图像识别,深度神经网络图像配准

如何用Python和深度神经网络寻找相似图像 代码首先,读入TuriCreate软件包import turicreate as tc我们指定图像所在的文件夹image,让TuriCreate读取所有的图像文件,并且存储到data数据框data tc.image_analysis.load_images(./image/)我们来…

《python 可视化之 matplotlib》第一章 折线图 plot

《python 可视化之 matplotlib》第一章 折线图 本章节内容包括以下几方面内容: 绘制曲线 yx2yx^2yx2;让曲线更加光滑;常见的相关属性设置;多条折线图的绘制;折线图之间的颜色填充;时间序列可视化;常见问题…

iNFTnews|在元宇宙中探索NFT的无限可能

元宇宙正在使我们当下的生活发生显著变化。 我们都玩过很多电子游戏,看过很多相关的科幻电影,也有过很多关于元宇宙进入我们日常生活后,我们周围的事物将会受到怎样的巨大影响的讨论。 我们很快就会看到,如此先进的技术突破将逐…

人工神经网络概念及组成,人工神经网络基本概念

1、什么是BP神经网络? BP算法的基本思想是:学习过程由信号正向传播与误差的反向回传两个部分组成;正向传播时,输入样本从输入层传入,经各隐层依次逐层处理,传向输出层,若输出层输出与期望不符&…

含汞废水的深度处理方法

CH-95 是一款为了从工业废水中去除回收汞和贵金属而专门开发的螯合树脂。拥有聚乙烯 异硫脲官能基的大孔树脂,这种树脂对汞有极高的选择性。钠,碱土,铁铜等重金属等不能干扰 其对汞的选择性去除。 CH-97 是一款含有附着甲基硫醇聚苯乙烯共…

基于PB的企业人力资源信息系统设计与实现

目 录 摘 要 I Abstract II 第1章 引言 1 1.1选题背景及意义 1 1.2发展现状 1 1.3论文结构 2 第2章 系统分析 3 2.1 系统目标 3 2.2 系统需求分析 3 第3章 系统设计 5 3.1 系统功能结构设计 5 3.2 数据库设计与实现 7 3.2.1数据库需求分析 7 3.2.2数据库概念结构设计 8 3.2.3数…

[oeasy]python0010 - python虚拟机解释执行py文件的原理

解释运行程序 🥊 回忆上次内容 我们这次设置了断点 设置断点的目的是更快地调试调试的目的是去除​​bug​​别害怕​​bug​​一步步地总能找到​​bug​​这就是程序员基本功 调试​​debug​​ 我心中还是有疑问 ​​python3​​ 是怎么解释​​hello.py​​ 的…

Python实现SSA智能麻雀搜索算法优化支持向量机分类模型(SVC算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法,在2020年提出&am…

pytorch:常见的pytorch参数初始化方法总结

pytorch参数初始化1. 关于常见的初始化方法1) 均匀分布初始化torch.nn.init.uniform_()2) 正态分布初始化torch.nn.init.normal_()3) 常量初始化torch.nn.init.constant_()4) Xavier均匀分布5)Xavier正态分布初始化6) kaiming均匀分布初始化7) kaiming正…

除了pid还有什么控制算法,类似pid算法还有哪些

什么是专家PID?他和传统的PID有什么区别? PID是智能控制啊,比如要控制一个水管的水流量,通过流量计,开关阀,让PID来控制开关阀的开关大小使水流量正确.专家PID记得是PID的高级设置,某些个场合一般的PID无法使用,出现了了专用的,有特殊功能的.记忆中是这…

防火墙的ISP选路

拓补图: 实验目的: 让R1走ISP1的路径访问192.168.1.1,R2走ISP2的路径访问172.16.1.1 1. IP地址的配置略 2. 防火墙区域的划分(防火墙的g1/0/2接口是属于ISP1接口,所以需要自己新建一个区域然后添加接口,…

测试界的飞虎队:测试人才战略——测试行业的精英战略(学习了)

一、前言 提到飞虎队,大家第一印象就是精英。相信绝大多数公司都希望能组件出一支优秀的测试队伍,来支撑自己的业务,很多公司都喊出了精英化战略。既然如此,就命中一个话题--测试人才战略。 有几个问题是不得不面对的&#xff1a…

算法 - 组合

目录 题目来源 题目描述 示例 提示 题目解析 算法源码 剪枝优化 题目来源 77. 组合 - 力扣(LeetCode) 题目描述 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 输入&#…

JavaScript——关于JavaScript、在HTML中嵌入JS代码的三种方式、变量

前言 近日无意间透过装了热水之后,散发出水蒸气的透明水杯看东西时,发现看到的东西呈现模糊效果,这种效果和毛玻璃效果类似。毛玻璃效果在web、手机系统上也有很多应用,如网页上的广告弹窗,手机系统的消息通知界面等等…

LeetCode刷题复盘笔记——131. 分割回文串(一文搞懂回溯解决经典的分割回文串问题)

今日主要总结一下,131. 分割回文串 题目:131. 分割回文串 Leetcode题目地址 题目描述: 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读…

目标检测——day46 可转移交互性知识的人机交互检测

Transferable Interactiveness Knowledge for Human-Object Interaction Detection论文pdf下载(含笔记)Transferable Interactiveness Knowledge for Human-Object Interaction Detection1 INTRODUCTION3 PRELIMINARY4 METHOD4.1 Overview4.2 Representa…

JVM——类加载子系统

文章目录一、类加载器子系统作用二、类加载过程1、加载(Loading)2、验证(Verification)3、准备(Preparation)4、解析(Resolution)5、初始化(Initialization)三…

SpringCloud微服务实践之三 创建子项目UserService

创建子项目UserService,并将服务注册到Eureka UserService子项目作为用户信息的服务提供方,通过本项目,可以实现对基于Docker运行的mysql数据库表的读取。 1、在父项目上点击鼠标右键选择new→Module: 过程同上,略过…

基于jeecgboot的flowable驳回修改以及发起人设置

昨晚升级代码生成器&#xff0c;支持生成权限注解和菜单的SQL,修改驳回bug,以后保存流程强制要求第一个用户任务节点必须是发起人节点。 1、前端增加发起人设置 <el-radio label"INITIATOR">发起人</el-radio> 相应代码 if (this.containsKey(this.bpmn…

MybatisPlus【SpringBoot】 3 基本CRUD

MybatisPlus【SpringBoot】 【【尚硅谷】2022版MyBatisPlus教程&#xff08;一套玩转mybatis-plus&#xff09;】 3 基本CRUD 文章目录MybatisPlus【SpringBoot】3 基本CRUD3.1 BaseMapper3.2 插入3.3 删除3.3.1 通过id 删除记录3.3.2 通过id 批量删除记录3.3.3 通过map 条件…