1、什么是区块链

区块链(blockchain)是在比特币之后提出的一个概念,在中本聪关于比特币的论文中没有直接引入blockchain的概念,而是以chain of block来描述一种数据结构,比特币采用区块链技术,但是区块链并不等同于比特币。

Chain of block是指由多个区块通过哈希(hash)串联成一条链式结构的数据组织方式。区块链则是采用多项技术交叉组合,维护管理这个chain of block数据结构,形成一个不可篡改的分布式账本的综合技术领域。

区块链已经应用于数字货币、金融、司法、供应链、文化娱乐、社会管理、物联网等更多行业,另外,最近大火的元宇宙的关键技术也是区块链。

区块链具有去中心化,透明和可信规则,构建不可伪造、难以篡改和可追溯的特点。说白了就是在解决人与人之间的信任问题。

2、中心化

想想我们在网上购物的流程:

  • 第一步,你下单并把钱打给淘宝;
  • 第二步,淘宝收款后通知卖家发货;
  • 第三步,卖家收到淘宝通知之后发货;
  • 第四步,你在淘宝上选择确认收货或者没确认收货也没退款,到时间自动确认收货;
  • 第五步,淘宝收到通知,把款项打给卖家。流程结束。

在这里淘宝就是你和卖家的一个第三方,假如没有这个第三方,你怕卖家收了钱不发货,或者卖家怕你买了东西不付钱,所以需要一个类似一个类似中介的机构来解决信任问题。像这种第三方就是基于中心化思维构建的交易模型,它的价值显著,就是建立权威,通过权威背书来获得多方的信任,同时依赖权威方背后的资本和技术实力确保数据的可靠安全。

3、去中心化

那么去中心化的形态是什么样子呢?还是拿刚才那个例子继续,我们构建一个极简的去中心化的交易系统

  • 第一步,你下单并把钱打给卖家;

  • 第二步,你将这条转账信息记录在自己账本上;

  • 第三步,你将这条转账信息广播出去;

  • 第四步,卖家和淘宝在收到你的转账信息之后,在他们自己的账本上分别记录;

  • 第五步,卖家发货,同时将发货的事实记录在自己的账本上;

  • 第六步,卖家把这条事实记录广播出去;

  • 第七步,你和淘宝收到这条事实记录,在自己的账本上分别记录;

  • 第八步,你收到书籍。至此,交易流程走完。

4、账本

账本顾名思义,用于管理账户、交易流水等数据,支持分类记账、对账、清结算等功能。在多方合作中,多个参与方希望共同维护和共享一份及时、正确、安全的分布式账本,以消除信息不对称,提升运作效率,保证资金和业务安全。而区块链通常被认为是用于构建“分布式共享账本”的一种核心技术,通过链式的区块数据结构、多方共识机制、智能合约、世界状态存储等一系列技术的共同作用,可实现一致、可信、事务安全、难以篡改可追溯的共享账本。账本里包含的基本内容有区块,交易,账户,世界状态。

4.1、外部账户

表示从这个账户地址发出去了多少笔交易

4.2、内部账户

表示此账户创建了多少个合约

5、区块

区块是按时间次序构建的数据结构,区块链的第一个区块称为“创世块”(genesis block),后续生成的区块用“高度”标识,每个区块高度逐一递增,新区块都会引入前一个区块的hash信息,再用hash算法和本区块的数据生成唯一的数据指纹,从而形成环环相扣的块链状结构,称为“Blockchain”也即区块链。精巧的数据结构设计,使得链上数据按发生时间保存,可追溯可验证,如果修改任何一个区块里的任意一个数据,都会导致整个块链验证不通过,从而篡改的成本会很高。

一个区块的基本数据结构是区块头和区块体,区块头包含区块高度,hash、出块者签名、状态树根等一些基本信息,区块体里包含一批交易数据列表已经相关的回执信息,根据交易列表的大小,整个区块的大小会有所不同,考虑到网络传播等因素,一般不会太大,在1M~几M字节之间

6、交易

交易可认为是一段发往区块链系统的请求数据,用于部署合约,调用合约接口,维护合约的生命周期,以及管理资产,进行价值交换等,交易的基本数据结构包括发送者,接受者,交易数据等。用户可以构建一个交易,用自己的私钥给交易签名,发送到链上(通过sendRawTransaction等接口),由多个节点的共识机制处理,执行相关的智能合约代码,生成交易指定的状态数据,然后将交易打包到区块里,和状态数据一起落盘存储,该交易即为被确认,被确认的交易被认为具备了事务性和一致性。

随着交易确认相应还会有交易回执(receipt)产生,和交易一一对应且保存在区块里,用于保存一些交易执行过程生成的信息如结果码、日志、消耗的gas量等。用户可以使用交易hash检查交易回执,判定交易是否完成。

和“写操作”的交易对应,还有一种”只读”调用方式,用于读取链上数据,节点收到请求后会根据请求的参数访问状态信息并返回,并不会将请求加入共识流程,也不会导致修改链上的数据。

7、账户

在采用账户模型设计的区块链系统里,账户这个术语代表着用户、智能合约的唯一性存在。

在采用公私钥体系的区块链系统里,用户创建一个公私钥对,经过hash等算法换算即得到一个唯一性的地址串,代表这个用户的账户,用户用该私钥管理这个账户里的资产。用户账户在链上不一定有对应的存储空间,而是由智能合约管理用户在链上的数据,因此这种用户账户也会被称为“外部账户”。

对智能合约来说,一个智能合约被部署后,在链上就有了一个唯一的地址,也称为合约账户,指向这个合约的状态位、二进制代码、相关状态数据的索引等。智能合约运行过程中,会通过这个地址加载二进制代码,根据状态数据索引去访问世界状态存储里对应的数据,根据运行结果将数据写入世界状态存储,更新合约账户里的状态数据索引。智能合约被注销时,主要是更新合约账户里的合约状态位,将其置为无效,一般不会直接清除该合约账户的实际数据。

8、世界状态

区块链]可以理解为一个分布式的状态机:所有节点从同一个创世状态开始,依次运行达成共识的区块内的交易,驱动各个节点的状态按照相同操作序列(增加,删除,修改)不断变化,实现所有节点在执行完相同编号区块内的交易后,状态完全一致,我们把这个状态称之为世界状态。

状态存储空间的存在,使得区块链上可以保存各种丰富的数据,包括用户账户信息如余额等,智能合约二进制码,智能合约运行结果等相关的各种数据,智能合约执行过程中会从状态存储中获取一些数据参与运算,为实现复杂的合约逻辑提供了基础。

另一方面,维护状态数据需要付出不少存储成本,随着链的持续运行,状态数据会持续膨胀,如采用复杂的数据结构如帕特里夏树(Patricia Tree),状态数据的的容量会进一步扩大,根据不同的场景需要,可对状态数据进行裁剪优化,或采用分布式数据仓库等方案存储,以支持更海量的状态数据容量。

9、共识机制

在区块链系统中没有像银行一样的中心化机构,所以在进行传输信息、价值转移时,共识机制解决并保证每一笔交易在所有记帐节点上的一致性和正确性问题。区块链的这种新的共识机制使其在不依靠中心化组织的情况下,依然大规模高效协作完成运转。

共识机制是区块链领域的核心概念,无共识,不区块链。区块链作为一个分布式系统,可以由不同的节点共同参与计算、共同见证交易的执行过程,并确认最终计算结果。协同这些松散耦合、互不信任的参与者达成信任关系,并保障一致性,持续性协作的过程,可以抽象为“共识”过程,所牵涉的算法和策略统称为共识机制。除了密码学技术外,共识机制也是区块链必要元素及核心部分,是保障区块链系统不断运行的关键。

目前区块链的共识机制主要有四类:

1.工作量证明机制pow

2.权益证明机制pos

3.委托权益证明Dpos

4.验证池共识机制pool

10、节点

安装了区块链系统所需软硬件,加入到区块链网络里的计算机,可以称为一个“节点”。节点参与到区块链系统的网络通信、逻辑运算、数据验证,验证和保存区块、交易、状态等数据,并对客户端提供交易处理和数据查询的接口。节点的标识采用公私钥机制,生成一串唯一的NodeID,以保证它在网络上的唯一性。

根据对计算的参与程度和数据的存量,节点可分为共识节点和观察节点。共识节点会参与到整个共识过程,做为记账者打包区块、做为验证者验证区块以完成共识过程。观察节点不参与共识,同步数据,进行验证并保存,可以做为数据服务者提供服务。

11、共识算法

共识算法需要解决的几个核心问题是:

  1. 选出在整个系统中具有记账权的角色,做为leader发起一次记账。
  2. 参与者采用不可否认和不能篡改的算法,进行多层面验证后,采纳Leader给出的记账。
  3. 通过数据同步和分布式一致性协作,保证所有参与者最终收到的结果都是一致的,无错的。

区块链领域常见的共识算法有公链常用的工作量证明(Proof of Work),权益证明(Proof of Stake),委托权益证明(Delegated Proof of Stake),以及联盟链常用的实用性拜占庭容错共识PBFT(Practical Byzantine Fault Tolerance),Raft等,另外一些前沿性的共识算法通常是将随机数发生器和上述几个共识算法进行有机组合,以改善安全、能耗以及性能和规模问题。

12、智能合约

智能合约,就是一段写在区块链上的代码,一旦某个事件触发合约中的条款,代码即自动执行。也就是说,满足条件就执行,不需要人为操控。

举个生活中常见的例子,张三跟李四借了5w元钱。但是真的到了还钱的日子,李四去要钱,看着吃香喝辣的张三,他还说:兄弟手头紧,都不容易,宽限我几天。这时候李四只能哑巴吃黄连啊。智能合约就可以解决这类问题,当然前提是双方把借款金额、还款时间、对方绑定银行卡信息等打包进合约中。到了约定还款日,借款自动划到你的账户里。

13、图灵完备

图灵机和图灵完备是计算机领域的经典概念,由数学家艾伦·麦席森·图灵(1912~1954)提出的一种抽象计算模型,引申到区块链领域,主要指合约支持判断、跳转、循环、递归等逻辑运算,支持多种数据类型如整形、字符串、结构体的数据处理能力,甚至有一定的面向对象特性如继承、派生、接口等,这样才能支持复杂的业务逻辑和完备的契约执行,与只支持栈操作的简单脚本进行区分。

2014年后出现的区块链大多支持图灵完备的智能合约,使得区块链系统具备更高的可编程性,在区块链既有的基本特性(如多方共识,难以篡改,可追溯等,安全性等)基础上,还可以实现具有一定业务逻辑的业务契约,如李嘉图合约(The Ricardian Contract),也可以使用智能合约来实现。

一门语言为什么要图灵完备呢?可以这么理解:
一台计算机也是一个图灵机,一个图灵完备的语言意味着这个语言可以使用计算机完成任何计算机可以完成的任务,也就能够发挥计算机的所有能力。(这句话有点绕口)
反之,一个图灵不完备的语言,就意味着不能发挥计算机的所有能力。

14、联盟链

联盟链其实就是由多个私有链组成的集群,由多个机构共同参与管理的区块链,每个组织或机构管理一个或多个节点,其数据只允许系统内不同的机构进行读写和发送。 联盟链的各个节点通常有与之对应的实体机构组织,通过授权后才能加入与退出网络。各机构组织组成利益相关的联盟,共同维护区块链的健康运转。

特点:

  • 部分去中心化与公有链不一样,联盟链在某种程度上只属于联盟内部的成员所有,且很容易达成共识,因为毕竟联盟链的节点数是非常有限的。
  • 可控性较强公有链是一旦区块链形成,将不可篡改,这主要源于公有链的节点一般是海量的,比如比特币节点太多,想要篡改区块数据,几乎不可能,而联盟链,只要所有机构中的大部分达成共识,即可将区块数据进行更改;
  • 数据不会默认公开不同于公有链,联盟链的数据只限于联盟里的机构及其用户才有权限进行访问。
  • 交易速度很快跟私有链一样,联盟链本质上还是私有链,因此由于其节点不多的原因,达成共识容易,交易速度自然也就快很多。

15、准入机制

联盟链中的准入机制通过CA(Certification Authority)中心来实现。

第三方可信CA机构(如CFCA等)可以实现数字证书管理功能,满足对于证书系统安全性与权威性有较高要求的银行或金融机构的需求。

自建CA体系通过建设独立的PKI/CA系统,需建立完整的运营管理体系,运维成本较高。

准入机制指在无论是机构还是个人组建和加入链之前,需要满足身份可知、资质可信,技术可靠的标准,主体信息由多方共同审核后,才会启动联盟链组建工作,然后将经过审核的主体的节点加入到网络,为经过审核的人员分配可发送交易的公私钥。 在准入完成后,机构、节点、人员的信息都会登记到链上或可靠的信息服务里,链上的一切行为都可以追溯到机构和人。

16、CA

CA,Certification Authority,是一个具有权威性的证书颁发中心,主要功能是可以颁发该权威中心所认证的一段时间内有效的数字证书,除此之外证书权威中心还可以进行证书吊销、证书续签、证书验证等一系列操作。

17、数字证书

数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份。

因此数字证书又称为数字标识。数字证书对网络用户在计算机网络交流中的信息和数据等以加密或解密的形式保证了信息和数据的完整性和安全性。

原理

数字证书的基本架构是公开密钥PKI,即利用一对密钥实施加密和解密。其中密钥包括私钥和公钥,私钥主要用于签名和解密,由用户自定义,只有用户自己知道;公钥用于签名验证和加密,可被多个用户共享。

数字证书的基本工作原理主要体现在:

第一,发送方在发送信息前,需先与接收方联系,同时利用公钥加密信息,信息在进行传输的过程当中一直是处于密文状态,包括接收方接收后也是加密的,确保了信息传输的单一性,若信息被窃取或截取,也必须利用接收方的私钥才可解读数据,而无法更改数据,这也有利保障信息的完整性和安全性。

第二,数字证书的数据签名类似于加密过程,数据在实施加密后,只有接收方才可打开或更改数据信息,并加上自己的签名后再传输至发送方,而接收方的私钥具唯一性和私密性,这也保证了签名的真实性和可靠性,进而保障信息的安全性。

数字证书有很多格式版本,主要有X.509v3(1997)、X509v4(1997)、X.509v1(1988)等。比较常用的版本是TUTrec.x.509V3,由国际电信联盟制定,内容包括证书序列号、证书有效期和公开密钥等信息。不论是哪一个版本的数字证书,只要获得数字证书,用户就可以将其应用于网络安全中。

18、非对称加密

1、乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。

2、得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。

3、乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。

在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。

同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。

19、数字签名

数字签名其实就是把散列值经过非对称加密算法加密得到的一个加密的散列值。

它将报文按双方约定的 HASH 算法,计算得到一个固定位数的报文摘要。将该报文摘要值用发送者的私人密钥加密,然后连同原报文一起发送给接收者,而产生的报文即称数字签名。只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符,这样就保证了报文的不可更改性,具有鉴权、完整性、不可抵赖特点,一般用于身份认证和防止抵赖。

20、证书格式

X.509 标准的证书文件具有不同的编码格式,一般包括 PEM 和 DER 两种。

PEM:

Privacy Enhanced Mail 的缩写,以文本的方式进行存储。它的文件结构以 -----BEGIN XXX-----,并以 -----END XXX----- 结尾,中间 Body 内容为 Base64 编码过的数据。例如:

-----BEGIN CERTIFICATE----- Base64 编码过的证书数据-----END CERTIFICATE-----

DER:

Distinguished Encoding Rules 的缩写,以二进制方式进行存储,文件结构无法直接预览,一般 Java 和 Windows 服务器应用偏向于使用 DER 这种编码格式。

21、证书扩展名

.pem:采用 PEM 编码格式的X.509 证书的文件扩展名;
.der:采用 DER 编码格式的X.509 证书的文件扩展名;
.crt:即 certificate 的缩写,常见于类 UNIX 系统,有可能是 PEM 编码,也有可能是 DER 编码,但绝大多数情况下此格式证书都是采用 PEM 编码;
.cer:也是 certificate 的缩写,常见于 Windows 系统,同样地,可能是 PEM 编码,也可能是 DER 编码,但绝大多数情况下此格式证书都是采用 DER 编码;
.p12:也写作 .pfx,全称:PKCS #12,是公钥加密标准(Public Key Cryptography Standards,PKCS)系列的一种,它定义了描述个人信息交换语法(Personal Information Exchange Syntax)的标准,可以用来将包含了公钥的 X.509 证书和证书对应的私钥以及其他相关信息打包,进行交换。简单理解:p12 文件 = X.509 证书+私钥
.csr:Certificate Signing Request 的缩写,即证书签名请求,它并不是证书的格式,而是用于向权威证书颁发机构(Certificate Authority, CA)获得签名证书的申请,其核心内容包含一个 RSA 公钥和其他附带信息,在生成这个 .csr 申请的时候,同时也会生成一个配对 RSA 私钥,私钥通常需要严格保存于服务端,不能外泄。
.key:通常用来存放一个 RSA 公钥或者私钥,它并非 X.509 证书格式,编码同样可能是 PEM,也可能是 DER。

22、物理隔离与逻辑隔离

1.定义不同

逻辑隔离主要通过逻辑隔离器实现,是一种不同网络间的隔离部件,被隔离的两端仍然存在物理上数据通道连线;而物理隔离是采用物理方法将内网与外网隔离从而避免入侵或信息泄露的风险的技术手段。

2.作用不同

物理隔离是为防止涉及国家秘密的计算机及信息系统受到来自互联网等公共信息网络的攻击,确保国家秘密信息的安全;而逻辑隔离是利用虚拟化技术实现,利用虚拟化技术,可以让用户在一台计算机上打开一个或多个虚拟桌面,每个虚拟桌面以及该计算机的真实操作系统之间都可以互相隔离,数据不能相互传输。

3.特点不同

物理隔离技术为信息网络提供了更高层次的安全防护能力,不仅使信息网络的抗攻击能力大大增强,也可以有效地防范了信息外泄事件的发生;而逻辑隔离特点在于使用的便利性,在同一台计算机上进行窗口切换即可实现不同安全级别网络的访问,同时也不降低安全性。

参考文章:

https://blog.csdn.net/qq_42703989/article/details/122088456

https://www.yisu.com/ask/3831.html

https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/tutorial/key_concepts.html#id5

FISCO BCOS(十二)——— 区块链关键概念相关推荐

  1. 微众银行张开翔: FISCO BCOS - 开放的区块链实践之道 | 11月25日【区块链技术与实践】论坛...

    张开翔老师,微众银行区块链首席架构师. 张老师在互联网业和金融行业工作多年,有丰富的分布式系统和海量服务实践经历,于2015年专注投入区块链.隐私计算的技术和行业研究,主持微众银行区块链全栈技术体系设 ...

  2. 初步了解区块链技术落地——FISCO BCOS 快速搭建区块链

    区块链端口 p2p_port: 节点通信端口. channel_port: SDK 通知协议交换端口,使用的 SSL. jsonrpc_port: http接口包含的此协议,网络明文. 官方教程 ht ...

  3. 智能合约编写之Solidity的设计模式 | FISCO BCOS超话区块链专场(篇4)

    前  言 随着区块链技术发展,越来越多的企业与个人开始将区块链与自身业务相结合. 区块链所具有的独特优势,例如,数据公开透明.不可篡改,可以为业务带来便利.但与此同时,也存在一些隐患.数据的公开透明, ...

  4. Ubuntu21.04搭建FISCO BCOS第一个区块链helloword

    官方地址:搭建第一个区块链网络 - FISCO BCOS v2.7.2 文档 1. 搭建单群组FISCO BCOS联盟链 安装依赖curl sudo apt install -y openssl cu ...

  5. 零基础掌握区块链关键概念

    小明,小红,小刚三个好朋友很喜欢玩数独.平日里他们三个也会互相出题给对方做.有时候他们会出一些非常变态的数独题互相挑战.他们会挑一个人在纸上画出一个NxN的格子,填上谜面(Constraint),然后 ...

  6. FISCO BCOS 查看当前区块链节点的ID

    方法一 进入控制台 通过getSyncStatus命令查看 方法二 如果没有控制台,可以使用下列命令查看 cat 192.168.64.129/node0/conf.nodeid

  7. 区块链关键技术研究进展

    摘要 区块链是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储.难以篡改.防止抵赖的记账技术,也称为分布式账本技术.近年来,区块链技术的发展对社会产生了重要的影响.本文介绍近年来 ...

  8. 区块链游戏有哪些,2018最值得关注的十大区块链游戏

    游戏与区块链技术的融合也是新趋势之一.有需求就有市场,2017年末,一款虚拟养猫游戏CryptoKitties上市:紧接着2018年2月,国内上市了首家面向华人的"以太马"区块链宠 ...

  9. 私钥经过哈希计算可以产生公钥_「区块链基础概念100」:公钥和私钥 | 027

    免责声明:本文旨在传递更多市场信息,不构成任何投资建议.文章仅代表作者观点,不代表火星财经官方立场. 小编:记得关注哦 投资区块链,猛戳:火星财经App下载 来源:学习区块链 原文标题:「区块链基础概 ...

  10. 区块链革命 - 推荐序二 区块链已成为金融科技的底层技术

    推荐序二 区块链已成为金融科技的底层技术 金融 = 制度 + 技术 + 信息 一.区块链技术的内涵与实质 区块链是一个由不同节点共同参与的分布式数据库系统,是开放的账簿系统.市场经济活动中存在很多信用 ...

最新文章

  1. 本地xshell损坏了着急拷贝服务器上的大文件怎么办?有办法lrzsz来帮忙
  2. 桌面支持--ZWMECH软件卸载工具
  3. Java心得--键值、枚举器
  4. 【bzoj2460】[BeiJing2011]元素 贪心+高斯消元求线性基
  5. QT的QSGGeometryNode类的使用
  6. 自动化运帷之分布式监控 zabbix 使用
  7. Supervisor进程守护监控
  8. MVVM 下 ContextMenu的命令绑定
  9. simulink将值传递给mask封装下的模块
  10. 在计算机组成原理中x,计算机组成原理xu2.ppt
  11. Flutter进阶—实现动画效果(一)
  12. Python语言学习 (六)1.2
  13. UVA10165 Stone Game【Nim游戏】
  14. 《CUDA C编程权威指南》——2.4节设备管理
  15. csv格式导出,身份证号码显示不全
  16. mysql http_put_洪永佳 - SegmentFault 思否
  17. wannacry 蠕虫勒索软件“永恒之蓝”席卷全球100多个国家,已经感染了勒索病毒“永恒之蓝”的主机该怎么处理?
  18. 介绍一个2000+star的Github项目
  19. 基于Node.js的3DTiles三维倾斜摄影模型爬虫
  20. 哈尔滨车牌摇号系统遭遇黑客攻击瘫痪

热门文章

  1. spring4声明式事务mdash;02 xml配置方式
  2. 10月全球浏览器份额态势:Chrome领先Firefox7.34%
  3. FindTask练习
  4. Tomcat性能调优方案
  5. Linux中DHCP主配置文件解析
  6. Java咖啡馆(8)——大话面向对象(下)
  7. 24. flock() 函数
  8. 9.使用 curses 函数库来管理基于文本的屏幕
  9. 2. 配置Xdebug
  10. 25. 单体内置对象