Advertisement

区块链相关技术概述

阅读量:

从可信的角度来看待之,则区块链可被视为一种可靠的分布式数据库。基于P2P网络通信机制为基础,并结合块链式账本存储模式以及密码学与共识算法等关键组件,在保障系统可扩展性的前提下实现了数据不可篡改性和不可否认性特征;最终使得区块链系统既具备诚信性又达到高度透明度,在实际应用场景中展现出广泛的覆盖范围以及高效的运行效能与较低的成本投入。

该技术领域涉及以下关键组成部分:基于区块链构建的组网方式(P2P组网技术),采用不可篡改性设计的账本架构(块链式账本结构),以及一套完善的共识协调机制(共识机制)。为了实现各方利益相关者的权益分配与资源分配问题(数字签名),该系统采用了专有数字证书方案(数字签名)。为此设计了一套完整的安全防护措施(加密机制)。该系统还具备强大的隐私保障功能(隐私保护机制),具体表现为:通过加密算法保护参与者身份信息;确保信息流通的同时隐藏相关参与者信息。

一、对等网络

自治性(相较于中央级服务器而言)是一种自主性的特征表现。
分散性上, 网络边缘不仅具备存储与计算能力, 还包含丰富的信息资源, 这些资源能够通过灵活的方式进行配置与优化配置。
可变性的特点使得边缘计算环境呈现出动态变化的特点, 新资源不断接入, 而旧资源也可能退出系统运行。
基于节点信息存储机制的不同,P2P系统主要可分为两种大类: 结构化覆盖网络与非结构化覆盖网络。
其中, Bitcoin(比特币)作为一种典型的非结构化P2P覆盖网络, 其基本特征表现在以下几个方面:
每个节点仅存储自身信息或索引属性, 在系统中进行查询操作时, 单个节点无法获取其他节点的相关数据信息。
具体实现方式主要包括两种: 一种是简单的泛洪式查找机制(类似于广播机制), 另一种则是基于最近邻节点的扩展环查找策略(从当前节点最近的n个邻居开始层层转发, 直至找到目标节点或达到最大跳数限制)。
该系统架构具有以下显著优势: 实现架构简单、无中心管理机构、各节点地位平等、层次分明且单一、无需维护复杂的拓扑信息表。
然而其缺点也很明显: 搜索算法存在一定的不确定性。
值得注意的是,Bitcoin采用了基于TCP协议构建的去中心化信息传播机制——Gossip协议, 这种机制在设计上完全遵循了严格的理论模型框架进行规范实现。

(2) Ethereum(以太坊)——分层架构下的去中心化互操作性网络
每个节点仅负责存储特定类型的数据或其索引信息,并根据请求明确指向可能包含所需数据的节点集合。这一机制显著区别于非结构化P2P系统中采用的数据洪泛查找策略,在提升搜索效率的同时也降低了资源消耗成本。
以太坊系统采用Kademlia协议作为其核心通信机制,在支持基于UDP和TCP的不同通信模式的同时,默认情况下数据发现过程完全依赖UDP传输机制完成。主网服务端口号设定为30303,在可扩展性方面提供了良好的性能保障;为了便于快速测试与本地开发环境搭建,《以太坊官方指南》推荐使用UDP版本服务端口号30301进行配置设置。

二、账本结构

该系统中使用基于区块链单位的特定加密算法提取上一区块特征并整合到下一区块形成链状结构;该系统中的区块链账本架构包含哈希函数和默克尔树等技术。

1. 哈希函数

也被称作散列函数或摘要函数。该转换方式将任意长度的数据转换为固定长度的数据。同样地,任何能够将不同规模的数据统一转换为相同规模数据的方法都可以被视为哈希函数。其计算结果通常称为哈希值、散列值或摘要信息。

  1. 消息长度不受限
  2. 确定性:当输入相同时,在使用同一个哈希函数时它必然会产生相同的散列值;无论是在何种情况下相同的输入都会导致同样的散列结果;而当输入不同时也有可能产生相同的散列结果(即发生碰撞),这种情况发生的概率极少。
  3. 均匀性:好的散列函数应尽量使输入在输出范围内均匀分布。
  4. 单向性:在加密应用中散列函数实际上是不可逆的对于给定的散列值没有有效的方法能够反推出原始数据因此难以伪造

2.默克尔证明(Merkel Proof)

最早应用是Bitcoin,Bitcoin的Blockchain利用Merkle Proofs来存储每个区块的交易,这样做好处是中本聪描述到的“简化支付验证”:一个“请客户端”(Light Client)可以仅下载链的区块头,即每个区块中的80字节的数据库,仅包含5个元素(上一区块头的哈希值,时间戳,挖矿难度值,工作量证明随机数Nonce,包含该区块交易的Merkle Tree的根哈希),而不是下载每一笔交易以及每一个区块
客户端想确认交易状态,只需要简单地发起一个Merkle Proof请求,这个请求显示出这个特定的交易在Merkle Trees之中,而且这个Merkle Tree树根在主链的一个区块头中。

每个以太坊区块头不采用单独的一个 Merkle Root 而是专门构建了三个子树来分别管理:交易记录、收据记录以及系统状态。在处理按顺序排列的数据信息时,二叉 Merkle Tree 是一种高效的数据组织方式,同样适用于交易数量较多的情况,然而,在处理大量状态数据时会遇到挑战。因此,在频繁进行插入 更新或删除操作时 尤其是新账户不断出现且存储键频繁变更的情况下 我们需要一种能够支持快速更新子树 Hash 值的数据结构。优势在于它能够在每次操作后迅速更新相关子树的 Hash 值 并无需重新计算整个父树

  1. 树的高度受到限制。由于攻击者试图通过增加交易量来最大化树的高度,因此如果不采取措施,则可能导致拒绝服务攻击(DDoS Attack)的发生,使得更新操作变得极为缓慢甚至无法完成。
  2. 树根仅由数据决定,不受其中更新顺序的影响。

三、共识机制

共识机制本质上是控制参与方数据一致性。

1. 权益类共识

工作量证明PoW (Proof of Work)在区块总递增一个nonce值,针对每次的nonce计算整个区块的哈希值,直到找到一个满足所有要求的零比特位数量的哈希值,这个节点获得打包权限,所有节点同步该节点打出的区块。这种算法中,遍历速度是获得符合哈希值的重要参数,可以用硬件加速,如GPU或其他专用芯片。
这个算法有一定的偶然性,算力高的节点获得打包权的几率上升,但不一定
这种共识机制去中心化程度较高,安全性较强,但资源消耗大,需要代笔作为激励机制维持系统健康运行。
股权证明PoS (Proof of Stake)、DPoS(Delegates Proof of Stake,股份授权证明)以抵押资产的多少来分配获取打包权的概率,一定程度上缩短了共识达成的世界,不需要大量资源去竞争记账。
这种共识去中心化程度较弱,安全性相比PoW较弱,同时DPoS节点代理是人为选出的 公平性相比POS更低。

2.拜占庭类共识

拜占庭问题
一群参与方中有不超过一定数目的而乙方发送欺骗消息时,参与方总体能通过三轮投票做出正确的决定,拜占庭问题能容忍不高于参与方综述1/3的恶意方。
拜占庭共识(Practical Byzantine Fault Tolerance,PBFT)PBFT是一种基于消息传递的一致性算法,经历三个阶段:预准备、准备、确认 达成一致性。拜占庭共识算法具备(N-1)/3 容错性;当有1/3或以上记账人停止工作后,系统将无法提供服务
比较:
PoW(工作量证明)特点:安全、去中心化,但速度低,共识时间长,耗能大;
PoS(权益证明)特点:共识时间短,耗能小;
DPoS(股份授权证明)特点:出块时间很短,效率非常高。
DPoS算法要求系统做三件事:

  1. 采用随机规则设定生成者的排列;
  2. 未按指定的顺序生产的区块视为无效;
  3. 在一个周期内彻底洗牌并重排所有元素。

分布式数据一致性共识:基于联盟链的应用广泛性特点,在实际操作中主要采用分布式数据库的一致性算法进行实现,并通过利用这些一致性的机制对区块链中的参与方数据进行统一管理与协调处理。参考现有关于分布式系统中Raft算法的相关介绍[1]、[2]等资源以深入理解Raft共识机制的工作原理与实现细节。
该类共识机制具有无分叉的特点以及无需交叉验证的特性,并且通信量较低;但仅限于信任环境中的运行;对于跨交易的支持较为有限;其区块链特性相对较为薄弱。

四、证书机制

1.数字签名

任何一种共同密钥体制均可独立作为数字签名方案应用。流程如下:发送方利用私钥对消息原始内容进行加密处理以生成相应的“数字签名”。

2. 数字身份和认证

系统参与方的身份证明(Digital Certificate)是由经过认证流程并由认证机构用以验证身份的有效电子文件载体。它不仅承载着持有者的公开密钥信息以及相关细节内容,并且能够用于识别持有者的真实身份。
数字证书所包含的信息包括但不限于公钥、名称标识符以及由发证机构对其所颁发电子文件进行过验证并附有其私钥相关信息的部分。
可信权威机构(Certification Authority)通常指那些经过严格审核并被广泛认可的专业组织或实体,在这一领域内负责向每个注册用户提供独特的电子文件——即带有其名称标识符和对应公钥的安全电子文件。

五、加密机制

加密的基本概念上就是采用某种算法方式对原始信息进行转换过程。信息接收方利用特定密钥对密文实施解密进而恢复原始信息的方式。根据加密方与解密方所使用秘钥是否一致可分为三类主要的加密算法类型。

1. 对称加密

在对称加密体系中进行加密和解密操作时,均采用了同一个密钥.其优势在于 encryption speed is very fast.然而,该方案的一个显著问题是 key distribution for security becomes highly challenging.

2. 非对称加密

非对称加密体系也称为公钥体系,加解密时 加密方有公钥和私钥,可以将公钥发送给其他相关方,私钥自己保留。例如银行颁发给个人用户的私钥存储在个人的U盾里;非对称加密可以通过私钥加密,他人使用公钥解密。
非对称加密算法一般比较复杂,执行时间相对对称机密较长,好处在于无密钥分发问题
常见的非对称加密算法有RSA、ECC,区块链中主要使用ECC椭圆曲线算法。
公钥密码系统的加密算法ECC与RSA的对比:
第六届国际密码学会议对应用于公钥密码系统的加密算法推荐了两种:基于大整数因子分解问题(IFP)的RSA算法和基于椭圆曲线上离散对数计算问题(ECDLP)的ECC算法。RSA算法的特点之一是数学原理简单、在工程应用中比较易于实现,但它的单位安全强度相对较低。目前用国际上公认的对于RSA算法最有效的攻击方法–一般数域筛(NFS)方法去破译和攻击RSA算法,它的破译或求解难度是亚指数级的。ECC算法的数学理论非常深奥和复杂,在工程应用中比较难于实现,但它的单位安全强度相对较高。用国际上公认的对于ECC算法最有效的攻击方法–Pollard rho方法去破译和攻击ECC算法,它的破译或求解难度基本上是指数级的。正是由于RSA算法和ECC算法这一明显不同,使得ECC算法的单位安全强度高于RSA算法,也就是说,要达到同样的安全强度,ECC算法所需的密钥长度远比RSA算法低。这就有效地解决了为了提高安全强度必须增加密钥长度所带来的工程实现难度的问题。

3. 对称加密与非对称加密的结合

该加密方案将整个流程划分为两个主要阶段。在第一阶段中,则是采用非对称加密技术实现秘钥分发,并使接收方能够安全地获取对称加密所需的密钥。在第二阶段中,则是对原始文本采取对称加密实现加解密功能。

六、隐私保护机制

区块链系统尤其是非许可类区块链,其交易内容是公开透明的,需要附加隐私保护机制来保证参与方的隐私权。通常采用的策略有3种:一是基于事务隔离的策略,主要面向分片、多链、多通道等模式;二是基于隐私保护算法的策略,多种开源非许可链采用的模式;三是基于应用层权限控制的策略,许可类区块链采用的模式。
(1) 事务隔离
事务隔离是一个事务使用的资源或数据与其他事务相隔离。在区块链中,基于隔离的隐私保护策略将不同参与方或不同类型的业务隔离开,使不同参与方或不同类型事务中的数据部分共享,以此达到简单的 隐私保护的目的。
优点 :思路简单,实现较容易;数据隐私性好,硬隔离的机制使数据保护安全等级较高。
缺点 :数据共享性差,硬隔离的机制使数据共享变得困难;互操作性差,同样的参与方对于不同的业务,或者不同参与方对于同一业务,因为隔离的原因,互操作性受到影响。
(2) 隐私保护算法
基于隐私保护算法的策略主要是保护参与方的私密信息不被明文获取。实现方式有挖矿、同态加密、零知识证明、环签名等多种方式。这种策略的内容保护指向性更好,更便于互操作性和日后可能的互联互通,但是实现难度较大,容易出现安全漏洞,也存在一定的监管风险。

(3)应用层权限控制 在许可类区块链系统中 采用隐藏底层链入口的方式 实现数据分类分级管理 并进而通过管理数据访问权限的方式来达到保护隐私信息的目的 这种策略相对简单且易于实施 其核心管理机制基于应用层权限控制 并能够较好地适应不同业务场景的需求 然而该策略仅限于许可类区块链系统 并且其性能会受到密码算法选择的影响

全部评论 (0)

还没有任何评论哟~