区块链技术的官方材料整理

news2024/11/24 0:58:18

引自:区块链白皮书(2018年)、区块链白皮书(2020年)、中国区块链技术和应用发展白皮书、可信区块链赋能数字政府应用指南

区块链的概念

定义:区块链(Blockchain)是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术,也称为分布式账本技术(Distributed Ledger Technology)。典型的区块链以块-链结构存储数据。
工信部《中国区块链技术和应用发展白皮书》定义:区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。区块链可以理解为一个多方协作数据库,区块链技术是一种分布式账本的记账技术。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
总体上来说是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
原理:典型的区块链系统中,各参与方按照事先约定的规则共同存储信息并达成共识。为了防止共识信息被篡改,系统以区块(Block)为单位存储数据,区块之间按照时间顺序、结合密码学算法构成链式(Chain)数据结构,通过共识机制选出记录节点,由该节点决定最新区块的数据,其他节点共同参与最新区块数据的验证、存储和维护,数据一经确认,就难以删除和更改,只能进行授权查询操作。
分类:按照系统是否具有节点准入机制,区块链可分类为许可链和非许可链。许可链中节点的加入退出需要区块链系统的许可,根据拥有控制权限的主体是否集中可分为联盟链和私有链;非许可链则是完全开放的,亦可称为公有链,节点可以随时自由加入和退出。
联盟链:根据一定特征所设定的节点能参与、交易,共识过程受预选节点控制的区块链。
私有链:写入权限在一个组织手里,读取权限可能会被限制的区块链。
公有链:任何人都能读取区块链信息,发送交易并能被确认,参与共识过程,是真正意义上的去中心化区块链,比特币区块链即是公有链最好的代表。

区块链与传统分布式数据库的区别

一是从复式记账演进到分布式记账。传统的信息系统,每位会计各自记录,每次对账时存在多个不同账本。区块链打破了原有的复式记账,变成“全网共享”的分布式账本,参与记账的各方之间通过同步协调机制,保证数据的防篡改和一致性,规避了复杂的多方对账过程。
二是从“增删改查”变为仅“增查”两个操作。传统的数据库具有增加、删除、修改和查询四个经典操作。对于全网账本而言,区块链技术相当于放弃了删除和修改两个选项4,只留下增加和查询两个操作,通过区块和链表这样的“块链式”结构,加上相应的时间戳进行凭证固化,形成环环相扣、难以篡改的可信数据集合。
三是从单方维护变成多方维护。针对各个主体而言,传统的数据库是一种单方维护的信息系统,不论是分布式架构,还是集中式架构,都对数据记录具有高度控制权。区块链引入了分布式账本,是一种多方共同维护、不存在单点故障的分布式信息系统,数据的写入和同步不仅仅局限在一个主体范围之内,需要通过多方验证数据、形成共识,再决定哪些数据可以写入。
四是从外挂合约发展为内置合约。传统上,财务的资金流和商务的信息流是两个截然不同的业务流程,商务合作签订的合约,在人工审核、鉴定成果后,再通知财务进行打款,形成相应的资金流。智能合约的出现,基于事先约定的规则,通过代码运行来独立执行、协同写入,通过算法代码形成了一种将信息流和资金流整合到一起的“内置合约”。

适应的场景及条件

区块链技术可以总结为“新型数据库、多业务主体、彼此不互信、业务强相关”。

区块链核心技术

区块链综合分布式存储、密码学技术、共识算法、智能合约等 ,在促进数据共享、优化业务流程、降低运营成本、提升协同效率、建设可信体系等方面具有技术优势。区块链最核心的 4项技术包括分布式账本、非对称加密、共识机制和智能合约。
(1)分布式账本
分布式账本是一种多中心化的数据记录方式,其优点在于数据公开透明和信息可回溯。分布式账本各节点中存储的每个记录都对应着一个时间戳和一个密码签名,若要改动分布式账本中的数据,必须得到接入网络的多数节点确认,而且任何一处改动都会在每个相对应副本中体现,因此,这种账本记录的交易都是可追溯和审计的。
(2)非对称加密
区块链中数据是高度透明的,用户信息也是高度加密的,只有得到用户的授权,才能看到用户信息,通过采用非对称加密手段保证用户信息的安全性和隐私性。非对称加密包括公开密钥(公钥)和私有秘钥(私钥)两种密钥,公钥是公开的,私钥由用户本人保管,其他人无法从公钥推算出私钥。其优点是每对公私钥唯一有效、保密性高,而缺点是加解密的速度比较慢。在区块链交易可匿名方面,非对称加密发挥着重要作用。
(3)共识机制
区块链是一个传递信任的工具,而支撑这份信任的体系就是共识机制。区块链需要一套所有参与者都愿意维护的规则来解决某些问题,如怎么保证记账的有效性、应该由谁来记账等。目前主流共识机制主要包括 3类,分别为 PoW(工作量证明)、PoS(权益证明)、DPoS(股份授权证明),联盟链通常采取 pbft或 raft等选举共识算法来提高效率。
(4)智能合约
智能合约是以数字形式指定的一系列承诺,包括参与各方履行这些承诺的协议 ,其中包含的协议存在于一个分布式的、分散的区块链系统中,旨在提供、验证及执行合约的服务。

区块链技术的特点

区块链通过哈希加密、非对称加密、数字签名等密码学方法来实现用户的匿名以及交易的确认,通过共识机制对共同维护的数据达成一致,对信任危机提出了一种新的解决思路,具有多方协作、不可篡改、可追溯三大特点。
(1)多方协作
区块链网络中分布众多节点,节点之间具有平等的权利与义务,整个系统由所有节点共同维护,节点之间不需通过单一中心机构即可直接进行数据交换。
(2)不可篡改
区块链中很多环节均使用了密码学技术,可保证信息一旦添加到链上就无法被篡改,数据更加安全可靠,避免了一切人为操作的可能性。由于其分布式存储的特性,若想篡改信息至少要掌握网络中 51%的数据节点,这在实践过程不可实现。
(3)可追溯
由于区块链使用哈希算法原理,所以它的链接形式是后一个区块拥有前一个区块的哈希值,每一个区块都和前一个区块有联系,串联起来形成了区块链。区块链上保存了从第一个区块开始的所有历史数据,区块链上任意一条记录都可以进行追溯。

四个特点

可扩展性、互操作性、协同治理、隐私安全

2016技术架构

核心技术组件

核心技术组件包括区块链系统所依赖的基础组件、协议和算法,进一步细分为通信、存储、安全机制、共识机制等4层结构。
1、通信:区块链通常采用P2P技术来组织各个网络节点,每个节点通过多播实现路由、新节点识别和数据传播等功能。
2、存储:区块链数据在运行期以块链式数据结构存储在内存中,最终会持久化存储到数据库中。对于较大的文件,也可存储在链外的文件系统里,同时将摘要(数字指纹)保存到链上用以自证。
3、安全机制:区块链系统通过多种密码学原理进行数据加密及隐私保护。对于公有链或其他涉及到金融应用的区块链系统而言,高强度高可靠的安全算法是基本要求,需要达到国密级别,同时在效率上需要具备一定的优势。
4、共识机制:是区块链系统中各个节点达成一致的策略和方法,应根据系统类型及应用场景的不同灵活选取。

核心应用组件

核心应用组件在核心技术组件之上,提供了针对区块链特有应用场景的功能,允许通过使用编程的方式发行数字资产,也可以通过配套的脚本语言编写智能合约,灵活操作链上资产。通过激励机制维系区块链系统安全稳定运行。对于联盟链和专有链,还需要有配套的成员管理功能。

配套设施

区块链作为典型的分布式系统,在研发阶段需要具备与之配套的开发测试工具和环境。在生产阶段,需要建立相应的运维体系和运营管理功能。
在部署层面,区块链系统可以部署于单台服务器上,以单台服务器作为区块链网络中的一个节点加入。也可部署于多台服务器上,以服务器集群为单位作为区块链网络中的一个节点加入。后者可以提升节点的稳定性和吞吐量,更适用于那些对节点可用性有较高要求的共识机制。

区块链核心关键技术

共识机制

常用的共识机制主要有PoW、PoS、DPoS、Paxos、PBFT等。另外,基于区块链技术的不同应用场景,以及各种共识机制的特性,本文按照以下维度来评价各种共识机制的技术水平:
合规监管:是否支持超级权限节点对全网节点、数据进行监管。
性能效率:交易达成共识被确认的效率。
资源消耗:共识过程中耗费的CPU、网络输入输出、存储等计算机资源。
容错性:防攻击、防欺诈的能力。
1、PoW:依赖机器进行数学运算来获取记账权,资源消耗相比其他共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错。
2、PoS:主要思想是节点记账权的获得难度与节点持有的权益成反比,相对于PoW,一定程度减少了数学运算带来的资源消耗,性能也得到了相应的提升,但依然是基于哈希运算竞争获取记账权的方式,可监管性弱。该共识机制容错性和PoW相同。
3、DPoS:与PoS的主要区别在于节点选举若干代理人,由代理人验
证和记账。其合规监管、性能、资源消耗和容错性与PoS相似。
4、Paxos: 是一种基于选举领导者的共识机制,领导者节点拥有绝对权限,并允许强监管节点参与,性能高,资源消耗低。所有节点一般有线下准入机制,但选举过程中不允许有作恶节点,不具备容错性。
5、PBFT:与Paxos类似,也是一种采用许可投票、少数服从多数来选举领导者进行记账的共识机制,但该共识机制允许拜占庭容错。该共识机制允许强监管节点参与,具备权限分级能力,性能更高,耗能更低,该算法每轮记账都会由全网节点共同选举领导者,允许33%的节点作恶,容错性为33%。

数据存储

1、数据结构
在区块链技术中,数据以区块的方式永久储存。区块按时间顺序逐个先后生成并连接成链,每一个区块记录了创建期间发生的所有交易信息。区块的数据结构一般分为区块头(header)和区块体(body),如图4-2所示。其中,区块头用于链接到前一个区块并且通过时间戳特性保证历史数据的完整性;区块体则包含了经过验证的、区块创建过程中产生的所有交易信息。
![


2、数据库
按照数据库的数据结构组织形式来看,一般分为Key-Value型和关系型两种。其中,Key-Value型数据库的数据结构组织形式比较简单,读写性能很高,能支持海量并发读写请求,而且可扩展性强,操作接口简单,支持一些基本的读、写、修改、删除等功能,但不支持复杂的SQL功能和事务性。关系型数据库采用关系模型来组织数据,支持各种SQL功能,功能性强,支持事务性,读写性能一般,可扩展性弱。
按照数据库的部署形式来看,一般分为单机型和分布式两种。其中,单机型数据库保证强一致性和较好的可用性。分布式数据库在物理部署上遵循了分布式架构,能提供高并发的读写性能和容错,有很强的可用性和分区容错性,但由于需要进行数据同步,分布式架构的数据一致性较弱,只能保证最终一致性。

网络协议

区块链网络协议一般采用P2P协议,确保同一网络中的每台计算机彼此对等,各个节点共同提供网络服务,不存在任何“特殊”节点。不同的区块链系统会根据需要制定独自的P2P网络协议,比如比特币有比特币网络协议,以太坊也有自己的网络协议。

加密算法

1、散列(哈希)算法
散列算法也叫数据摘要或者哈希算法,其原理是将一段信息转换成一个固定长度并具备以下特点的字符串:
(1)如果某两段信息是相同的,那么字符也是相同的。
(2)即使两段信息十分相似,但只要是不同的,那么字符串将会十分杂乱随机并且两个字符串之间完全没有关联。
本质上,散列算法的目的不是为了“加密”而是为了抽取“数据特征”,也可以把给定数据的散列值理解为该数据的“指纹信息”。典型的散列算法有MD5、SHA1/SHA2和SM3,下表对比了这些算法的特点。

总体上看,SHA256和SM3这两种算法效率和安全性大致相当,目前区块链主要使用SHA256,国内某些特定业务场景使用国密SM3,亦是比较符合国家安全和监管的选择。但由于不同业务场景的安全性标准有别,未来不排除还需要探索更优算法的可能性。
2、非对称加密算法
非对称加密算法由对应的一对唯一性密钥(即公开密钥和私有密钥)组成的加密方法。任何获悉用户公钥的人都可用用户的公钥对信息进行加密与用户实现安全信息交互。由于公钥与私钥之间存在的依存关系,只有用户本身才能解密该信息,任何未受授权用户甚至信息的发送者都无法将此信息解密。在近代公钥密码系统的研究中, 其安全性都是基于难解的可计算问题的,常用的非对称加密算法特点及其比较如以下两个表所示。

隐私保护

目前区块链上传输和存储的数据都是公开可见的,仅通过“伪匿名”的方式对交易双方进行一定的隐私保护。对于某些涉及大量的商业机密和利益的业务场景来说,数据的暴露不符合业务规则和监管要求。目前,业界普遍认为零知识证明、环签名和同态加密等技术比较有希望解决区块链的隐私问题。

智能合约

智能合约可视作一段部署在区块链上可自动运行的程序,其涵盖的范围包括编程语言、编译器、虚拟机、事件、状态机、容错机制等。虚拟机是区块链中智能合约的运行环境。虚拟机不仅被沙箱封装起来,事实上它被完全隔离。也就是说运行在虚拟机内部的代码不能接触到网络、文件系统或者其他进程。甚至智能合约之间也只能进行有限的调用。
智能合约本质上是一段程序,存在出错的可能性,甚至会引发严重问题或连锁反应。需要做好充分的容错机制,通过系统化的手段,结合运行环境隔离,确保合约在有限时间内按预期执行。

2018年的技术架构图

2020年的技术图谱

现状:

密码算法:国密支持成为多数联盟链标准配置。
对等网络:兼顾通信效率与去中心程度的混合型网络成为主流。对等网络按网络结构可分为无结构网络、结构化网络、混合型网络。无结构网络鲁棒性好,去中心化程度高,但通信冗余严重,容易形成网络风暴,如经典 Gossip 网络;有结构网络牺牲了去中心化程度,按照一定策略维护网络拓扑结构,提升通信效率,如类 DHT((Distributed Hash Table,分布式哈希表)网络;混合型网络作为一种折中方案,兼顾了通信效率与去中心化程度。随着区块链网络规模的扩大,出于对高效通信策以及网络治理的需要,混合型网络逐渐成为行业主流方案。
共识机制:联盟链偏好高效、确定性的共识机制,多共识支持趋势凸显。相对于公链希望“全民公投”的共识,联盟链注重共识效率和共识确定性,如类 BFT 共识、Raft 共识等。此外,为适应不同应用场景,参与测试的联盟链产品超 6 成已提供可插拔多种共识机制的支持,多共识支持逐渐成为主流。
智能合约:合约类型头部效应凸显,Go 和 Java 支持率位列前茅。依托Hyperledger Fabric 和以太坊的强大生态,Chaincode 合约和 EVM 合约备受欢迎,成为多数联盟链都支持的合约类型。此外,WASM 合约凭借移植性好、加载快、效率高、社区生态好的特点,成为区块链合约体系的新宠。在合约语言类型方面,超过 75%的链系统支持多种合约语言,Go 和 Java 依然是当前支持率最高的两种语言。
数据存储:读写高效的 NoSQL 数据库成为主流,国内数据库崭露头角。区块链作为一种 IO 敏感的分布式数据库,底层存储通常首选效率较高的 NoSQL 数据库,如 LevelDB、CouchDB、RocksDB 等。同时,鉴于应用层多使用关系型数据库的现实,32%的链系统还提供了对MySQL、SQLServer 的支持,即提供灵活可插拔的多种数据库支持。此外,得益于国内数据库的快速发展,11%的链系统增加了对国内数据库的支持。为了满足不同的应用场景,68%的链系统提供了多种数据库的支持。

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

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

相关文章

如何在 SwiftUI macOS 应用程序中显示和隐藏边栏

用户可以通过在边缘周围拖动来调整侧边栏的大小。 如果他们将它拖得足够远,侧边栏将关闭,并且无法将其设置回来。 本文将告诉您如何通过添加其他选项来显示和隐藏边栏来缓解此问题。 侧边栏一旦折叠,就无法恢复。 拖动左边缘会调整窗口大小,而不是将侧边栏带回来。 有两种…

力扣 1764. 通过连接另一个数组的子数组得到一个数组

题目 给你一个长度为 n 的二维整数数组 groups ,同时给你一个整数数组 nums 。 你是否可以从 nums 中选出 n 个 不相交 的子数组,使得第 i 个子数组与 groups[i] (下标从 0 开始)完全相同,且如果 i > 0 &#xff…

【大型电商项目开发】订单功能实现(拦截器、feign丢失请求头、接口幂等性)-55

一:订单概念 1.1 订单中心 电商系统涉及到 3 流,分别时信息流,资金流,物流,而订单系统作为中枢将三者有机的集合起来。订单模块是电商系统的枢纽,在订单这个环节上需求获取多个模块的数据和信息&#xff0…

多线程问题(三)

目录 一、线程安全的单例模式 1、饿汉模式 2、懒汉模式 二、阻塞队列 三、定时器 1、标准库中定时器的使用用法 2、模拟实现定时器 a、首先需要创建出一个专门的类来表示schedule中的任务(TimerTask) b、使用合适的数据结构组织任务 c、…

Servlet基础教程 (保姆级教学)

Servlet基础教程一、Servlet 是什么二、第一个 Servlet 程序2.1 创建项目2.2 引入依赖2.3 创建目录2.4 编写代码2.5 打包程序2.6 部署程序2.7 验证程序三、更方便的部署方式3.1 安装 Smart Tomcat 插件3.2 配置 Smart Tomcat 插件四、常见的访问出错4.1 出现 4044.2 出现 4054.…

【jrebel and xrebel问题记录】激活时出现LS client not configued

教程目录问题描述所使用的环境和版本解决过程手动下载jrebel结束语问题描述 笔者在重装另一台电脑的时候又遇到了这个安装jrebel and xrebel进行激活的问题 但是我在网上找了很多的办法(其实都是相同的办法,只是在尝试别人不同的用于激活的服务器&#…

【Java编程进阶】方法初识

推荐学习专栏:Java 编程进阶之路【从入门到精通】 文章目录1. Java 方法初识2. 方法的创建与使用3. 方法的分类3.1 无参无返回值3.2 无参带返回值3.3 有参无返回值3.4 有参带返回值4. 递归方法5. 总结1. Java 方法初识 方法是组合在一起来执行操作语句的集合&#…

k8s收集日志

k8s收集日志 一.收集控制台日志 采用fluentdeskibana来做 所需要的文件可以在这里找 https://github.com/kubernetes/kubernetes/tree/v1.23.0/cluster/addons/fluentd-elasticsearch1.创建目录并下载所需文件 cd /root/k8s/yaml/efk [rootworker1 efk]# ll total 44 -rw-…

绝缘子红外图像检测项目(TF2)

目录 1. 项目背景 2. 图像数据集介绍 labelimg的安装流程: 1. 打开Anaconda Prompt(Anaconda3) 2. 创建一个新环境来安装labelimg 3. 激活新创建的环境labelimg 4.输入 5.输入labelimg 即可运行 3. 模型介绍 4. 模型性能测试 1. 项目…

Linux学习笔记——Linux实用操作(二)

04、Linux实用操作 4.6、IP地址、主机名 4.6.1、IP地址、主机名 学习目标: 掌握什么是IP地址掌握什么是主机名掌握什么是域名解析 4.6.1.1、IP地址 1、每一台联网的电脑都会有一个地址,用于和其它计算机进行通讯。 IP地址主要有2个版本&#xff0…

2023上半年软考高级-信息系统项目管理师【名师授课班】

信息系统项目管理师是全国计算机技术与软件专业技术资格(水平)考试(简称软考)项目之一,是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试,既属于国家职业资格考试,又是职称资…

2022年圣诞节 | matlab实现炫酷的圣诞树

*2022年圣诞节到来啦,很高兴这次我们又能一起度过~ 这里的部分代码已经在网上出现过,做了部分优化。是matlab版本。 一、内容介绍 这段代码是一个生成3D圣诞树的Matlab函数。运行该函数时,它使用圆柱函数创建圣诞树的 3D 表面,对…

【一】微服务技术栈导学

微服务技术栈导学什么是微服务?微服务技术栈注册中心配置中心服务网关分布式缓存分布式搜索消息队列分布式日志服务&系统监控和链路追踪自动化部署微服务技术栈包含知识点学习路线知识内容来自于黑马程序员视频教学和百度百科。博主仅作笔记整理便于回顾学习。如…

Android设计模式详解之适配器模式

前言 适配器模式在Android开发中使用率很高,如ListView、RecyclerView; 定义:适配器模式把一个类的接口变换成客户端所期待的另一个接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作; 使用场景&…

2023年加密行业会更难吗?欧科云链研究院“七大趋势预测”

回望2022,加密行业遭遇了种种不可控因素而导致的艰难险阻,也在变革与发展中孕育着生机与活力。 这一年,我们亲眼目睹了Luna暴雷,三箭资本、FTX这些曾经被认为“大而不倒”的机构接连倒下,市场信心严重受挫;…

登陆港股市场,阳光保险的 “价值锚点”

不确定性环境里,信心比黄金还重要。 最近,利好信号频频出现在保险行业,资本信心不断加固。上个月月底,个人养老金制度启动实施,市场迅速传来喝彩声。这不仅将加快推动养老保险作为第三支柱的壮大,而且还为…

ARM体系架构中的存储系统

在计算机系统当中,数据的存储是以字节为单位的,每个地址单元当中都可以存放一个字节的数据,每个字节为8bit。在C语言中编译器为char型的数据分配了一个字节的存储空间,为long型的数据分配了4个字节的存储空间,为int型的…

【NI Multisim 14.0编辑环境——工具栏】

目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具栏 🍊3.“主”工具栏 🍊4.“元器件”工具栏 🍊5.“Simulation”(仿真)工具栏 🍊6.“Place probe”(放置探针…

ARM64内存虚拟化分析(2)常用结构体

内存虚拟化相关的几个重要结构体如下图所示: 这里介绍几个结构体以及相互之间有关系。 (1)AddressSpace结构体 它用于表示一个虚拟机或虚拟CPU能够访问的所有物理地址。其中: root:指向根MR Current_map&#xff1…

营销在中国

(1)4P、4C、4R、4I作为一个企业,不外乎就是两个是:产-销。你生产-客户购买,这个交易能做成,不外乎在于交换的价值,以及交易的价格-成本。一、4P4P,是美国密歇根大学教授杰罗姆麦卡锡…