主页 > imtoken在线官网 > 区块链知识整理各层系统架构及功能

区块链知识整理各层系统架构及功能

imtoken在线官网 2023-03-17 05:41:03

文章目录

前言

本篇笔记是阅读区块链评论论文

[1] 戴创创,栾海静,杨雪英,等. 区块链技术研究述评[J]. 计算机科学, 2021(S2).

[2] 刘敖迪,杜雪慧,王娜,等. 区块链技术及其在信息安全领域的研究进展_刘奥迪[J]. 软件学报, 2018, 29(7): 2092-2115.

[3] 袁勇,王飞跃. 区块链技术发展现状与展望_袁勇[J]. 自动学报, 2016, 42(4): 481-494.

并查阅一些网络资料进行整理。

一、区块链技术的基本模型和关键技术

比特币是由交易、共识协议、通信网络等技术组成的去中心化电子交易系统。 所涵盖的技术组件构成了整个比特币系统的三个递进层次:交易、区块和区块链。

1.1 系统架构

区块链技术的基本架构模型如图2所示。一般来说,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。

区块链基础架构模型

1.1.1 数据层

比特币系统中的交易记录类似于物理系统中的交易记录。 每笔交易记录包括交易信息的输入输出地址、转账次数等信息。

数据层封装了底层数据块和数据加密、时间戳等相关技术。 每个分布式节点可以通过特定的哈希算法和默克尔树数据结构,将一段时间内收到的交易数据和代码封装成一个带有时间戳的数据块,并链接到当前最长的主链上,最新的块是形成。 这个过程涉及区块、链结构、哈希算法、默克尔树和时间戳等技术要素。

哈希函数

区块链通常不直接保存原始数据或交易记录,而是保存其哈希函数值比特币系统包括哪三层,即将原始数据编码成一串特定长度的数字和字母记录在区块链中。

特点:几乎不可能通过哈希输出(one-way)来反转输入值,不同长度输入的哈希过程消耗的时间(timing)大致相同,并产生固定长度的输出(fixed length),即使输入只是不同的一个字节,也会产生明显不同的输出值(随机性)。

外国的比特币便宜中国的比特币贵为什么?_比特币比特币的行情_比特币系统包括哪三层

比特币区块链通常采用双重 SHA256 哈希函数,即将任意长度的原始数据经过两次 SHA256 哈希运算转换为长度为 256 位(32 字节)的二进制数进行统一存储和识别。 除了上述特点之外,SHA256算法还具有巨大的哈希空间(256大哈希空间)和防冲突(避免不同的输入值产生相同的哈希值)的特点,可以满足比特币的任何相关标记的需求和不会有冲突。

数据块

如图3所示,每个数据块一般包括两部分:块头(Header)和块体(Body)。

区块头封装了当前版本号(Version)、上一个区块的地址(Prev-block)、当前区块的目标哈希值(Bits)、当前区块的PoW共识过程的随机数(Nonce)区块,以及默克尔根(Merkle-root)和时间戳(Timestamp)等信息。

区块体包括当前区块中的交易数量和区块创建过程中产生的所有经过验证的交易记录。 这些记录通过 Merkle 树的散列过程生成唯一的 Merkle 根,记录在区块头中。

区块结构

默克尔树

结构:如图3所示,默克尔树通常包括区块体的底层(交易)数据库、区块头的根哈希值(即默克尔根)以及底层区块数据到根哈希的所有分支.

功能:快速汇总验证区块数据的存在性和完整性,即进行SPV(Simple Payment Verification)。

优点: ① 大大提高了区块链的运行效率和可扩展性,使得区块头只需要包含根哈希值,无需封装所有底层数据,使得哈希运算在智能手机甚至物体上高效运行。 ②可支持“极简支付验证”协议,即无需运行完整的区块链网络节点也可验证(交易)数据。

支付验证过程

支付验证过程:假设我们要验证区块中存在Hash值为9Dog:64(绿框)的交易,我们只需要知道1FXq:18、ec20、8f74(黄框)即可计算出781a, 5c71和Root节点(藕粉盒),如果最终计算出的根节点哈希值与区块头中记录的哈希值(6c0a)一致,则说明该交易存在于区块中。 (依据:①Merkle树是从下往上逐层计算的,所以只要知道另一个相邻节点的hash值,就可以上到根节点。②根节点的hash值可以准确作为一组交易的唯一总结,基于这两点可以用来验证一笔交易的存在。)

算法复杂度:O(log2N)。 这将大大减少验证时间并启用仅保存部分相关区块链数据的轻量级客户端。

Simplified Payment Verification (SPV) 和交易验证: Simplified Payment Verification 是一种不需要维护完整的区块链信息,只需要保存所有区块头信息就可以进行支付验证的技术。 简单来说就是支付验证只需要验证交易是否已经确认; 交易验证过程较为复杂,包括余额验证、双重支付判断等,通常由保存区块链完整信息的区块链验证节点完成。 验证节点虽然可以准确验证任何交易,但需要拥有庞大的数据量。 (更多详情参见:区块链交易验证与支付验证)

时间戳

区块链技术要求获得记账权的节点必须在当前数据块头加上时间戳,表示该块数据的写入时间。

比特币比特币的行情_比特币系统包括哪三层_外国的比特币便宜中国的比特币贵为什么?

主链上的区块是按时间顺序排列的。

意义:①可作为区块数据的存在证明,有助于形成不可篡改、不可伪造的区块链数据库,从而将区块链应用于公证、知识产权登记等时间敏感领域。 基础。 ②更重要的是,时间戳为未来基于区块链的互联网和大数据增加了一个时间维度,使得通过区块数据和时间戳重现历史成为可能。

链结构

获得记账权的矿工将当前区块链接到前一个区块,形成最新的区块主链。 每个区块依次连接,形成从创世区块到当前区块最长的主链,从而记录区块链数据的完整历史,提供区块链数据的溯源和定位功能。 数据可以通过这种链式结构进行跟踪和追溯。

分叉及解决方案:如果两个矿工同时“挖出”两个新区块并链接起来,该区块的主链可能会出现暂时的“分叉”。 解决方案是同意矿工总是选择具有最大累积工作量证明的区块链。 因此,当主链分叉时,后续区块的矿工会通过计算比较,将自己的区块链接到当前累计工作量证明最大化的候选链上,形成一条更长的新主链。

非对称加密

非对称加密在加密和解密过程中通常使用两个非对称密码,分别称为公钥和私钥。

特点:①使用其中一把钥匙(公钥或私钥)加密信息后,只有对应的另一把钥匙才能解锁; ②公钥可以对外公开,​​私钥可以保密,其他人无法通过。 公钥推导出对应的私钥。

应用场景:①在信息加密场景中,信息发送方(记为A)用接收方(记为B)的公钥加密信息后发送给B,B用自己的私钥解密信息. 比特币交易的加密就属于这种场景; ②数字签名场景是发送方A用自己的私钥加密信息发送给B,B用A的公钥解密信息,从而保证信息是A发送的; ③ 在登录认证场景下,客户端使用私钥对登录信息进行加密后发送给服务器。 后者收到后,使用客户端的公钥对登录信息进行解密验证。

比特币中的非对称加密机制:

比特币中非对称加密机制

比特币系统一般通过调用操作系统底层的随机数生成器生成一个256位的随机数作为私钥。 比特币私钥总量可达2的256次方,遍历整个私钥空间很难得到比特币存储的私钥,因此在密码学上是安全的。 为了便于识别,256位的二进制比特币私钥将经过SHA256哈希算法和Base58转换,形成易于识别和写入的长度为50个字符的私钥。 通过Secp256k1椭圆曲线算法产生一个长度为65字节的随机数。 公钥可用于生成比特币交易中使用的地址。 生成过程是先对公钥进行SHA256和RIPEMD160双重哈希运算,生成一个20字节的汇总结果(即hash160结果),然后通过SHA256哈希算法和Base58转换形成比特币地址长度为 33 个字符。 公钥生成过程是不可逆的,即不能从公钥推导出私钥。

比特币公钥和私钥通常存储在比特币钱包文件中。

私钥是最重要的,丢失私钥就意味着丢失对应地址的所有比特币资产。

1.1.2 网络层

网络层封装了区块链系统的组网方式、消息传播协议、数据校验机制等要素。 结合实际应用需求,通过设计特定的传播协议和数据验证机制,区块链系统中的每个节点都可以参与区块数据的验证和记账过程,并且只有在区块数据通过大多数节点的验证后在整个网络中是否可以记录在区块链中。

比特币系统包括哪三层_外国的比特币便宜中国的比特币贵为什么?_比特币比特币的行情

联网方式

区块链系统的节点一般具有分布、自治、开放和自由进出的特点,因此一般采用点对点网络(Peer-to-peer network,P2P网络)来组织全球参与数据验证和簿记。 节点..

P2P:P2P网络中各节点地位平等,以扁平拓扑结构相互通信交互,没有任何中心化的特殊节点和层级结构。

节点结构及作用

如图4所示,每个节点都会承担网络路由的任务,将其他节点传递过来的交易信息转发给更多的相邻节点。 网络中的一些节点还具有钱包和挖矿功能。 同时,节点具有验证区块数据的能力,但并不需要所有节点都存储完整的区块链数据。 根据节点存储的数据量,可分为全节点和轻量节点。

全节点保存从创世区块到当前最新区块的完整区块链数据,并通过实时参与区块数据的验证记账来动态更新主链。 其优点是可以独立实现对任何区块数据的验证、查询和更新,不依赖任何其他节点。 缺点是维护全节点的空间成本比较高; 轻量节点只保存部分区块链数据。 节点具有验证区块数据的能力,节点可以基于Merkle树通过SPV向相邻节点请求所需数据,验证交易的合法性并更新交易数据。

数据传播协议

任何一个区块数据产生后,都会由产生该数据的节点广播给全网其他所有节点进行验证。 根据中本聪的设计,比特币系统的交易数据传播协议包括以下步骤:

① 比特币交易节点将新产生的交易数据广播给全网所有节点;

② 每个节点将收集到的交易数据存储到一个区块中;

③ 每个节点根据自己的算力在区块中找到一个具有足够难度的工作量证明;

④ 当节点找到区块的工作量证明时,将区块广播给全网所有节点;

⑤ 只有当区块中包含的所有交易都有效且之前不存在时,其他节点才同意该区块的有效性;

⑥ 其他节点接受该数据块,并在该块的末尾创建一个新块以扩展链,并将接受块的随机哈希值作为新块之前的随机哈希值。

需要注意的是, ① 如果交易节点是新节点,与其他节点没有连接,比特币系统通常会向新节点推荐一组长期稳定的“种子节点”建立连接,或推荐至少一个节点连接到新节点。 node.. ② 当交易数据被广播时,不需要所有节点都收到,但只要有足够多的节点响应,就可以整合到区块账本中。 没有收到特定交易数据的节点可以请求相邻节点下载丢失的交易数据。

数据验证机制

比特币系统包括哪三层_外国的比特币便宜中国的比特币贵为什么?_比特币比特币的行情

节点收到相邻节点发送的数据后,首先会验证数据的有效性。 如果数据有效,则按照收到的先后顺序为新数据建立一个存储池,暂存未记录在区块中的有效数据,同时继续转发给相邻的节点; 如果数据无效,数据将被立即丢弃,这样无效数据就不会在区块链网络中继续传播。

在比特币中,比特币的矿工节点将收集并验证在P2P网络中广播的未确认交易数据,并根据预先定义的标准列表检查数据结构、语法标准化、输入输出和数字签名。 验证交易数据的有效性,并将有效的交易数据整合到当前区块; 同样,当矿工节点“挖”出一个新区块时,其他矿工节点也会验证该区块是否包含足够的工作量证明、时间戳是否有效等; 如果确认有效,其他矿工节点会将区块链接到主区块链并开始竞争下一个新区块。

区块链全网数据同时存储在去中心化系统的所有节点上。 即使部分节点出现故障,只要还有一个节点正常运行,区块链的主链数据就可以完全恢复,不影响后续的区块数据记录和更新。 这种完全“去中心化”的模式具有更高的安全性。

1.1.3 共识层

区块链技术的核心优势之一是能够在高度分散的决策权的去中心化系统中,使各节点高效地就区块数据的有效性达成共识。

共识机制是分布式节点根据预先协商好的规则,确定分布式账本(即区块)记账权归属的一种方法,使不同节点对交易数据达成共识,确保分布式账本数据的完整性。 一致性和真实性。 .共识机制主要用于解决拜占庭将军问题。 常见的共识机制按数据一致性可分为如下几种。

共识机制分类

PoW共识:其核心思想是通过引入分布式节点间的算力竞争来保证数据一致性和共识安全。 在比特币系统中,每个节点(即矿工)

相互竞争基于各自的计算机计算能力,共同解决一个复杂但易于验证的SHA256数学问题(即挖矿),

最快解决问题的节点将获得系统自动生成的区块记账权和比特币奖励。

符合要求的区块头哈希值通常由多个前导零组成。 目标哈希值越小,区块头哈希值中的前导零就越多。 成功找到合适的随机数并“挖矿”

越难产生新的区块。 比特币区块链系统的安全性和不可篡改性是由 PoW 共识机制强大的计算能力保证的。

任何攻击或篡改区块数据都必须重新计算该区块及所有后续区块的SHA256拼图,计算速度必须使伪造链的长度超过主链,

这种攻击难度的成本将远远超过其收益。

优势:PoW共识机制是一项具有重大意义的创新,几乎完美地融合了比特币系统的货币发行、交易支付和验证功能,

并通过算力竞争保证系统的安全性和去中心化; 缺陷:其强大的计算能力造成的资源(如电力)浪费一直为研究人员所诟病,并且一直持续到

外国的比特币便宜中国的比特币贵为什么?_比特币系统包括哪三层_比特币比特币的行情

10分钟的交易确认时间使其相对不适合小额交易的商业应用。

PoS共识:本质上是用权益证明代替PoW中基于算力的工作量证明,由系统中权益最高而非算力最高的节点获得区块记账权。 权益体现在节点对特定数量货币的所有权,称为币龄或币天数。

PoS 共识过程中的难度与交易输入的币龄成反比。 消耗的币越多,挖矿难度越低。

优点:PoS将算力竞争转化为权益竞争,不仅节省了算力,权益的引入还可以防止节点发起恶意攻击; 同时,各节点有责任维护区块链的安全稳定运行,保障自身权益。 PoS需要拥有全网一半以上的权益发起51%攻击,但其成本高于拥有全网一半的算力。 另外比特币系统包括哪三层,创建区块需要消耗权益,这使得PoS更难以继续进行51%攻击,一定程度上降低了安全风险。

缺点:没有解决增加中心化程度的问题,新区块的产生往往是权益性高的节点。

DPoS 共识机制:Delegated Proof of Stake (DPoS) 共识算法试图解决 Po W 和 Po S 存在的问题。他们根据持有的代币数量向他们信任的受托人投票。 系统会选出得票最多的N个人作为系统受托人。 他们的工作是签署(生产)区块,在签署每个区块之前,必须验证前一个区块是否已经被可信节点签署。

优点:通过基于股权的民主投票产生一组可信节点,每个节点都可以参与可信节点的选择,避免了主节点的产生往往是高利益节点的问题。 区块的产生不需要消耗算力,与PoS相比,节省了更多的能源消耗。

缺点:但是选出的信任节点全权负责出块,一定程度上降低了去中心化程度。

共识算法性能指标对比

1.1.4 合约层

合约层封装了区块链系统的各种脚本代码和算法,以及由此产生的更复杂的智能合约。 如果将数据、网络和共识这三个层次作为区块链的底层“虚拟机”,它们分别负责数据表示、数据传播和数据验证功能,合约层是建立在其上的业务逻辑和算法区块链虚拟机,是实现区块链系统灵活编程和数据运行的基础。

参考资料汇总

[1] 戴创创,栾海静,杨雪英,等. 区块链技术研究述评[J]. 计算机科学, 2021(S2).

[2] 刘敖迪,杜雪慧,王娜,等. 区块链技术及其在信息安全领域的研究进展_刘奥迪[J]. 软件学报, 2018, 29(7): 2092-2115.

[3] 袁勇,王飞跃. 区块链技术发展现状与展望_袁勇[J]. 自动学报, 2016, 42(4): 481-494.

[4] 郑敏,王红,刘红,等. 区块链共识算法综述[J]. 信息网络安全, 2019(7): 8-24.

[5] 金世雄,张晓丹,葛景国,等. 区块链共识算法综述[J]. 信息安全杂志, 2021, 6(2): 85-100.

[4] 简单支付验证-SPV

[5] 100篇区块链文章第9章——默克尔树