当前位置:首页 - 第31页

09月30日

4.4 CAP原理

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1557次

CAP原理最早是2000年由EricBrewer在ACM组织的一个研讨会上提出猜想,后来Lynch等人进行了证明。该原理被认为是分布式系统领域的重要原理之一。4.4.1 定义CAP原理:分布式计算系统不可能同时确保以下三个特性:一致性(Consistency)、可用性(Availability)和分区容忍性(Partition),设计中往往需要弱化对某个特性的保证。这里,一致性、可用性和分区容忍性的含义如下:·一致性:任何操作应该都是原子的,发生在后面的事件能看到前面事件发生导致的结果,注意这里指的是强一致性;·可用性:在有限时间内,任何非失败节点都能应答请求;·分区容忍性:网络可能发生分区,即节点之间的通信不可保障。比较直观地理解如下,当网络可能出现分区的时候,系统是无

09月30日

4.5 ACID原则

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1617次

ACID原则指的是:Atomicity(原子性)、Consistency(一致性)、Isolation(隔离性)、Durability(持久性),用了四种特性的缩写。ACID也是一种比较出名的描述一致性的原则,通常出现在分布式数据库领域。具体来说,ACID原则描述了分布式数据库需要满足的一致性需求,同时允许付出可用性的代价。ACID特征如下:·Atomicity:每次操作是原子的,要么成功,要么不执行;·Consistency:数据库的状态是一致的,无中间状态;·Isolation:各种操作彼此之间互相不影响;·Durability:状态的改变是持久的,不会失效。与ACID相对的一个原则是BASE(BasicAvailability,Soft-state,EventualConsiste

09月30日

4.6 Paxos算法与Raft算法

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1370次

Paxos问题[1]是指分布式的系统中存在故障(crashfault),但不存在恶意(corrupt)节点的场景(即可能消息丢失或重复,但无错误消息)下的共识达成问题。这也是分布式共识领域最为常见的问题。解决Paxos问题的算法主要有Paxos系列算法和Raft算法。4.6.1 Paxos算法1990年由LeslieLamport在论文《ThePart-timeParliament》中提出的Paxos共识算法,在工程角度实现了一种最大化保障分布式系统一致性(存在极小的概率无法实现一致)的机制。Paxos算法被广泛应用在Chubby、ZooKeeper这样的分布式系统中。LeslieLamport作为分布式系统领域的早期研究者,因为相关成果获得了2013年度图灵奖。

09月30日

4.7 拜占庭问题与算法

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 2088次

拜占庭问题(ByzantineProblem)更为广泛,讨论的是允许存在少数节点作恶(消息可能被伪造)场景下的一致性达成问题。拜占庭容错(ByzantineFaultTolerant,BFT)算法讨论的是在拜占庭情况下对系统如何达成共识。1.两将军问题在拜占庭将军问题之前,就已经存在两将军问题(TwoGeneralsParadox):两个将军要通过信使来达成进攻还是撤退的约定,但信使可能迷路或被敌军阻拦(消息丢失或伪造),如何达成一致?根据FLP不可能原理,这个问题无通用解。2.拜占庭问题拜占庭问题又叫拜占庭将军问题(ByzantineGeneralsProblem),是LeslieLamport等科学家于1982年提出用来解释一致性问题的一个虚构模型。拜占庭是古代东罗马

09月30日

4.8 可靠性指标

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1492次
4.8 可靠性指标

可靠性(availability),或者说可用性,是描述系统可以提供服务能力的重要指标。高可靠的分布式系统往往需要各种复杂的机制来进行保障。通常情况下,服务的可用性可以用服务承诺(ServiceLevelAgreement,SLASLA)、服务指标(ServiceLevelIndicator,SLI)、服务目标(ServiceLevelObjective,SLO)等方面进行衡量。4.8.1 几个9的指标很多领域里谈到服务的高可靠性,都喜欢用几个9的指标来进行衡量。几个9,其实是概率意义上粗略反映了系统能提供服务的可靠性指标,最初是电信领域提出的概念。表4-1给出同指标下每年允许服务出现不可用时间的参考值。表4-1 同指标下,每年允许服务出现不可用时间的参考值一般来说,单点的服务

09月30日

第5章 密码学与安全技术

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1367次

工程领域从来没有黑科技;密码学不仅是工程。密码学相关的安全技术在整个信息技术领域的重要地位无需多言。如果没有现代密码学和信息安全的研究成果,人类社会根本无法进入信息时代。区块链技术大量依赖了密码学和安全技术的研究成果。实际上,密码学和安全领域所涉及的知识体系十分繁杂,本章将介绍密码学领域中跟区块链相关的一些基础知识,包括Hash算法与数字摘要、加密算法、数字签名、数字证书、PKI体系、Merkle树、布隆过滤器、同态加密等。读者通过阅读本章可以了解如何使用这些技术保护信息的机密性、完整性、认证性和不可抵赖性。

09月30日

5.1 Hash算法与数字摘要

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1495次

5.1.1 Hash定义Hash(哈希或散列)算法是非常基础也非常重要的计算机算法,它能将任意长度的二进制明文串映射为较短的(通常是固定长度的)二进制串(Hash值),并且不同的明文很难映射为相同的Hash值。例如计算一段话“helloblockchainworld,thisisyeasy@github”的SHA-256Hash值。$echo"helloblockchainworld,thisisyeasy@github"|shasum-a256db8305d71a9f2f90a3e118a9b49a4c381d2b80cf7bcef81930f30ab1832a3c90这意味着对于某个文件,无需查看其内容,只要其SHA-256Hash计

09月30日

5.2 加解密算法

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1536次
5.2 加解密算法

加解密算法是密码学的核心技术,从设计理念上可以分为两大基本类型,如表5-1所示。表5-1 加解密算法的类型5.2.1 加解密系统基本组成现代加解密系统的典型组件一般包括:加解密算法、加密密钥、解密密钥。其中,加解密算法自身是固定不变的,并且一般是公开可见的;密钥则是最关键的信息,需要安全地保存起来,甚至通过特殊硬件进行保护。一般来说,对同一种算法,密钥需要按照特定算法每次加密前随机生成,长度越长,则加密强度越大。加解密的基本过程如图5-1所示。加密过程中,通过加密算法和加密密钥,对明文进行加密,获得密文。解密过程中,通过解密算法和解密密钥,对密文进行解密,获得明文。根据加解密过程中所使用的密钥是否相同,算法可以分为对称加密(symmetriccryptography,又称公共

09月30日

5.3 消息认证码与数字签名

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 2046次

消息认证码和数字签名技术通过对消息的摘要进行加密,可用于消息防篡改和身份证明问题。5.3.1 消息认证码消息认证码全称是“基于Hash的消息认证码”(Hash-basedMessageAuthenticationCode,HMAC)。消息验证码基于对称加密,可以用于对消息完整性(integrity)进行保护。基本过程为:对某个消息利用提前共享的对称密钥和Hash算法进行加密处理,得到HMAC值。该HMAC值持有方可以证明自己拥有共享的对称密钥,并且也可以利用HMAC确保消息内容未被篡改。典型的HMAC(K,H,Message)算法包括三个因素,K为提前共享的对称密钥,H为提前商定的Hash算法(一般为公认的经典算法如SHA-256),Message为要处理的消息内容。如果不知

09月30日

5.4 数字证书

发布 : xiaohuanglv | 分类 : 区块链精品文章 | 评论 : 0 | 浏览 : 1554次

对于非对称加密算法和数字签名来说,很重要的一点就是公钥的分发。理论上任何人可以公开获取到对方的公钥。然而这个公钥有没有可能是伪造的呢?传输过程中有没有可能被篡改掉呢?一旦公钥自身出了问题,则整个建立在其上的安全体系的安全性将不复存在。数字证书机制正是为了解决这个问题,它就像日常生活中的一个证书一样,可以证明所记录信息的合法性。比如证明某个公钥是某个实体(如组织或个人)的,并且确保一旦内容被篡改能被探测出来,从而实现对用户公钥的安全分发。根据所保护公钥的用途,可以分为加密数字证书(EncryptionCertificate)和签名验证数字证书(SignatureCertificate)。前者往往用于保护用于加密信息的公钥;后者则保护用于进行解密签名进行身份验证的公钥。两种类型的公钥

网站分类

标签列表

最近发表

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

本站资源大部分来自互联网,版权归原作者所有!