当前位置: 首页 > news >正文

厦门建行网站首页wordpress分类排序

厦门建行网站首页,wordpress分类排序,dede+营销型网站,cc域名做网站好吗一.共识机制简介 在区块链的交流和学习中#xff0c;「共识算法」是一个很频繁被提起的词汇#xff0c;正是因为共识算法的存在#xff0c;区块链的可信性才能被保证。 1.1 为什么需要共识机制#xff1f; 所谓共识#xff0c;就是多个人达成一致的意思。我们生活中充满…一.共识机制简介 在区块链的交流和学习中「共识算法」是一个很频繁被提起的词汇正是因为共识算法的存在区块链的可信性才能被保证。 1.1 为什么需要共识机制 所谓共识就是多个人达成一致的意思。我们生活中充满了共识机制比如一个公司要做决定需要股东们集体商量签合同需要甲方乙方坐下来协商。这个过程就是达成共识的过程。 在区块链系统中每个节点必须要做的事情就是让自己的账本跟其他节点的账本达成一致。如果是在传统的中心化场景中这几乎不是问题因为有一个中心服务器存在也就是所谓的主库其他的从库向主库看齐就行了。 但是在去中心化管理中没有老大的存在那么应该如何做出决定呢这个时候就需要一套算法来保证达成共识。这就是本文要讲的——共识机制。 1.2 什么是共识机制 共识机制Consensus Mechanism是通过特殊节点的投票在很短的时间内完成对交易的验证和确认对一笔交易如果利益不相干的若干个节点能够达成共识我们就可以认为全网对此也能够达成共识。 虽然共识 (Consensus) 和一致性 (Consistency) 在很多应用场景中被认为是近似等价的, 但二者涵义存在着细微的差别: 共识研究侧重于分布式节点达成一致的过程及其算法, 而一致性研究则侧重于节点共识过程最终达成的稳定状态; 此外, 传统分布式一致性研究大多不考虑拜占庭容错问题, 即假设不存在恶意篡改和伪造数据的拜占庭节点。毕竟在完全公开透明的区块链网络中无法保证所有节点都不会作恶。 1.3 共识机制可以解决哪些问题 共识机制可以解决分布式系统中的信任问题确保各节点之间的数据一致性和安全性。在传统的分布式系统中由于节点之间没有信任机制容易受到恶意节点的攻击和篡改导致系统崩溃或者数据被篡改。另外在区块链加密技术出现之前加密数字货币和其他资产一样具有无限可复制性如果没有一个中心化的媒介机构人们没有办法确认一笔数字现金是否已经被花掉。 简单来讲共识机制可以有效解决两个问题 双花问题一笔钱被花了两次和拜占庭将军问题恶意节点篡改数据。 1.4 双花问题Double spend attack 共识机制可以一定程度上解决双花问题double spend attack即一笔钱被花了两次或者两次以上也叫「双重支付」。猫鼠游戏中小李子就通过做假支票进行了双花行为因为支票的验证需要时间所以在这个时间差内他多次用同一张支票的信息购买物品。 众所周知区块链节点始终都将最长的链条视为正确的链条并持续工作和延长它。如果有两个节点同时广播不同版本的新区块那么将在率先收到的区块基础上进行工作但也会保留另外一个链条以防后者变成最长的链条。等到下一个工作量证明被发现其中的一条链条被证实为是较长的一条那么在另一条分支链条上工作的节点将转换阵营。 双花是如何实现的呢分为两种情况 **1在确认前的双花。**零确认的交易本来就可能最后没有写入区块链。除非小额最好至少等确认即可规避此类双花。 **2在确认后的双花。**这就要控制超 50% 算力才能实施。即类似于一个小分叉将给一个商店的交易放入孤立区块中。这种确认后双花很难实施只是理论上可行。 最常见的双花攻击有三种51% 攻击竞争攻击Race Attack, 芬尼攻击Finney Attack。 51% 攻击51% 攻击是指一个人或者团体获得了区块链 51% 的哈希运算能力的控制权这意味着他们有能力控制项目的一些方面。在工作量证明区块链如比特币上这将通过获得网络采矿能力的控制权来实现。另一方面对于权益证明区块链如 Cardano这将通过控制 51% 的抵押代币来实现。 竞赛攻击一个用户同时向两个商家 ( 或者商家和用户本身 ) 发送两笔交易。因此,攻击者会收到两组货物或者收到货物和回收了原始交易成本。 芬尼攻击一个矿工挖到一个或者一系列的块这些块里包含他把钱转账给自己其它地址的交易。被挖到的块没有被公布而是在矿工向商家转账时被保留。然后商人在矿工公布他们已经挖出的区块之前释放了矿工所支付的货物。随后矿工公布已经挖出的区块这就会抹掉转账给商家的交易让商家自掏腰包。 双花攻击经典案例 2018 年攻击者控制 BTG 网络上 51% 以上的算力控制算力期间把一定数量的 BTG 发给自己在交易所的钱包这条分支命名为分支 A。同时又把这些 BTG 发给另一个自己控制的钱包这条分支命名为分支 B。分支 A 上的交易被确认后攻击者立马卖掉 BTG拿到现金。随后攻击者在分支 B 上进行挖矿由于其控制了 51% 以上的算力很快分支 B 的长度就超过了分支 A 的长度分支 B 就会成为主链分支 A 上的交易就会被回滚恢复到上一次的状态。攻击者之前换成现金的那些 BTG 又回到了自己手里这些 BTG 就是交易所的损失。这样攻击者就凭借 50% 以上的算力控制实现了同一笔加密货币的「双花」。 1.5 拜占庭将军问题Byzantine failures 拜占庭将军问题是 Leslie Lamport 在 10 世纪 80 年代提出的一个假想问题。拜占庭是东罗马帝国的首都由于当时拜占庭罗马帝国国土辽阔每支军队的驻地分隔很远将军们只能靠信使传递消息。发生战争时将军们必须制定统一的行动计划。 然而这些将军中有叛徒叛徒希望通过影响统一行动计划的制定与传播破坏忠诚的将军们一致的行动计划。因此将军们必须有一个预定的方法协议使所有忠诚的将军够达成一致。而且少数几个叛徒不能使忠诚的将军做出错误的计划。也就是说拜占庭将军问题的实质就是要寻找一个方法使得将军们在一个有叛徒的非信任环境中建立对战斗计划的共识。 在分布式系统中特别是在区块链网络环境中也和拜占庭将军的环境类似有运行正常的服务器类似忠诚的拜占庭将军还有故障的服务器有破坏者的服务器类似叛变的拜占庭将军。共识算法的核心是在正常的节点间形成对网络状态的共识。如果只有 3 个节点的话拜占庭将军问题是无解的当节点中有 x 个问题节点而总结点数小于 3x1 时拜占庭将军问题无解。 比特币的出现轻而易举地解决了这一问题它为信息发送加入了成本降低了信息传递的速率而且加入了一个随机元素使得在一定时间内只有一个将军可以广播信息。第一个广播信息的将军就是第一个发现有效哈希值的计算机只要其他将军接收到并验证通过了这个有效哈希值和附着在上面的信息他们就只能使用新的信息更新他们的总账复制然后重新计算哈希值。下一个计算出有效哈希值的将军就可以将自己再次更新的信息附着在有效哈希值上广播给大家。然后哈希计算竞赛从一个新的开始点重新开始。由于网络信息的持续同步所有网络上的计算机都使用着同一版本的总账。 二. 共识算法分类 2.1 共识机制的历史 当计算机和网络在 1980 年代和 90 年代开始流行时出现了了共享数据库以便多个用户可以访问他们存储的信息。大多数都有一个中央数据库用户可以从不同的站点访问权限。这种设置演变成中心化网络管理员授予用户权限并维护数据的完整性。 这些共享数据库被称为分布式账本因为它们记录信息并联网供不同位置的许多用户访问。需要解决的最重要的问题之一是防止数据篡改和未经授权的访问无论是否是恶意的。需要一种自动化分布式数据库管理的方法来确保数据不被更改。 这种需求导致了分布式自治共识的产生其中网络上的程序使用加密技术就数据库的状态达成一致。协议旨在通过使用加密算法来创建一长串字母数字数哈希来达成然后由网络上运行的程序进行验证。只有当输入到哈希算法的信息发生变化时哈希才会发生变化因此程序被设计为比较哈希以确保它们匹配。 当网络上运行的每个程序都创建了一个匹配的哈希字符串就可以说该数据已通过网络达成共识。因此建立了共识机制通常将信用归功于匿名比特币创建者中本聪。然而在中本聪发布让比特币出名的白皮书之前许多人在共识机制上工作了多年。 Moni Naor、Cynthia Dwork、Adam Beck、Nick Szabo 等数据和计算机科学家以及许多其他人致力于开发网络共识机制并做出贡献。 2.2 共识算法的分类 根据容错类型的不同共识算法可以分为两大类CFT 类共识算法 ( 非拜占庭容错即不考虑恶意节点 ) 和 BFT 类共识算法拜占庭容错也就是说考虑恶意节点。 是否容忍拜占庭标志着该算法是否能够应用到低信任的网络当中。通常来说公有链环境中必须使用拜占庭容错算法而联盟链中可以根据联盟参与方之间的信任程度进行选择信任程度高默认大家都是善意节点就可以使用 CFT 类算法非拜占庭容错。 **另外可以根据一致性被分为两大类**概率一致性算法和绝对一致性算法。概率一致性算法指在不同分布式节点之间有较大概率保证节点间数据达到一致但仍存在一定概率使得某些节点间数据不一致。例如工作量证明算法Proof of Work, PoW、股份证明算法Proof of Stake, PoS和委托股权证明算法Delegated Proof of Stake, DPoS都属于概率一致性算法。 绝对一致性算法则指在任意时间点不同分布式节点之间的数据都会保持绝对一致不存在不同节点间数据不一致的情况。例如 PAXOS 算法及其衍生出的 RAFT 算法。 下文根据容错类型进行具体划分和介绍。 2.3 CFT 类共识算法 Crash Fault Tolerance 非拜占庭错误适用于节点信任程度高的网络。包括 Paxos, Raft。 2.4 BFT 类共识算法 检查节点是否具有恶意的拜占庭错误倾向于去中心化的结构,包括工作量证明PoW,权益证明PoS, 委托权益证明DPoS, 权威证明PoA等。 三. 共识算法详解 3.1 Paxos 算法 **算法简介**1990 年 Paxos 算法是 Lamport 宗师提出的一种基于消息传递的分布式一致性算法并获得 2013 年图灵奖。自 Paxos 问世以来就持续垄断了分布式一致性算法主要解决分布式系统中如何就某个特定值达成一致。Paxos 算法的共识过程是 Proposer 提出提案来争取大多数 Acceptor 的支持当某个 提案获得了超过半数的支持时发送结案结果给所有节点进行确认在这个过程中如果 Proposer 出现了故障可以通过触发超时机制来解决如果每次新的一轮提案的 Proposer 都恰好故障那么系统将永远无法达成一致。但这样的概率是极小的。 早期的 Basic Paxos 协议复杂且效率相对较低所以在后来提出了 Paxos 的改进版本。比如Fast Paxos, Multi-Paxos 以及 Byzanetine Paxos 等。 **使用案例**ZooKeeper**算法原理**Paxos 算法运行在允许宕机故障的异步系统中不要求可靠的消息传递可容忍消息丢失、延迟、乱序以及重复。它利用大多数 (Majority) 机制保证了 2f1 的容错能力即 2f1 个节点的系统最多允许 f 个节点同时出现故障。只要少于 (n-1)/2 次失败Paxos 就达成共识。这些失败不能是拜占庭式的否则将违反 BFT 证明。因此这个算法的前提是假设消息永远不会被破坏并且节点不会串通破坏系统。 Paxos 通过一组协商回合进行其中一个节点具有「领导」状态。如果领导者不在线进展将停滞直到选出新的领导者或者如果旧领导者突然重新上线。 Paxos 将系统中的角色分为提议者 (Proposer)决策者 (Acceptor)和最终决策学习者 (Learner):Proposer: 提出提案 (Proposal)。Proposal 信息包括提案编号 (Proposal ID) 和提议的值 (Value)。Acceptor参与决策回应 Proposers 的提案。收到 Proposal 后可以接受提案若 Proposal 获得多数 Acceptors 的接受则称该 Proposal 被批准。Learner不参与决策从 Proposers/Acceptors 学习最新达成一致的提案Value。 3.2 Raft 算法 **算法简介**Raft(Replication and Fault Tolerant) 算法是 Paxos 算法对的一种简化实现Raft 这一名字来源于「Reliable, Replicated, Redundant, And Fault-Tolerant」「可靠、可复制、可冗余、可容错」的首字母缩写。raft 利用日志连续性对 Paxos 做了大量很好的简化。它保证了在一个由 n 个节点构成的系统中有超过一半的节点正常工作的情况下的系统的一致性。不同于 Paxos 算法直接从分布式一致性问题出发推导出来,Raft 算法则是从多副本状态机的角度提出,用于管理多副本状态机的日志复制。比如在一个 5 个节点的系统中允许 2 个节点出现非拜占庭错误如节点宕机网络分区消息延时。 **使用案例**数据库主从复制联盟链。 **算法原理**Raft 系统中有三种角色领袖Leader, 追随者Follower,候选人Candidate在正常情况下只会有一个领袖其他都是追随者。而领袖会负责所有外部的请求如果不是领袖的机器收到时请求会被导到领袖。通常领袖会借由固定时间发送消息也就是心跳heartbeat)让追随者知道集群的领袖还在运作。而每个追随者都会设计超时机制timeout当超过一定时间没有收到心跳通常是 150 ms 或 300 ms系统就会进入选举状态。 此时集群进入新的竞选轮次term并开始选举如果选举成功则新的领袖开始执行工作反之则视此任期终止开始新的任期并开始下一场选举。 选举是由候选人发动的。当领袖的心跳停止的时候这需要候选者以先到先得的方式提名自己并向其他服务器拉票。每个服务器在每个竞选轮次只会投一票表示支持或反对当前候选人。如果没有获得 过半的选票就进入下一轮竞选。其余候选者继续根据先到先得提名自己。直到选出领袖。 **Raft 算法的优越性**第一点是简单性。如果深入挖掘 Paxos 到底比 Raft 复杂在哪里Heidi Howard 和 Richard Mortier 发现在两个方面体现了 Paxos 的复杂性。第一Raft 按顺序提交日志而 Paxos 允许日志不按顺序提交但需要一个额外的协议来填补可能因此而出现的日志空洞。第二Raft 中的所有日志的副本都有相同的索引、任期和命令而 Paxos 中这些任期可能有所不同。 第二点是 Raft 具备了一个高效的领导者选举算法。Paxos 论文中给出的选举算法是通过比较服务器 id 的大小几个节点同时竞选时服务器 id 较大的节点胜出。问题是这样选出的领导者如果缺少一些日志它不能立即执行写操作必须首先从别的节点那里复制一些日志。Raft 日志总能选出拥有多数派日志的节点从而不需要追赶日志虽然有时候选举会因为瓜分选票而重试但总体来说是一个更有效率的选举算法。 对于 Paxos 算法如果一个服务器非常落后甚至落后了几天的日志但却在某个时候选为了领导者这将导致一定时间的阻塞。可在 Raft 算法中永远不会选出日志落后的节点。 3.3 工作量证明Proof of Work, PoW **算法简介**最早用来对抗垃圾邮件的一种计算机技术。2008 年中本聪在《比特币一种点对点的电子现金系统》比特币白皮书中提出了比特币与区块链创新的设计了 PoW 算法被应用在比特币上用来解决一个数学难题来参与共识。算法的核心内容是利用算力来寻找一个满足区块哈希的 nonce 值。但是人们很快发现这种共识机制的问题即能耗大以及被大矿池把持算力之后仍然会导致中心化问题。 **使用案例**Bitcoin, ETH1.0, Litecoin, Conflux, Dogecoin。 **算法原理**工作量证明系统主要特征是客户端需要做一定难度的工作得出一个结果验证方却很容易通过结果来检查客户端是不是做了相应的工作。这种方案的一个核心特征是不对称性工作对于请求方是适中的对于验证方是易于验证的。它与验证码不同验证码的设计出发点是易于被人类解决而不是被计算机解决。 工作量证明PoW通过计算寻找一个数值 Nonce使得拼凑上交易数据后内容的 hash 值满足规定的上限。在节点成功找到满足的 hash 值后会马上对全网进行广播打包区块网络的节点收到广播打包区块会立刻对其进行验证。 **缺点**速度慢耗能巨大对环境不好易受「规模经济」economies of scale的影响。 **优点**自 2009 年以来得到了广泛测试目前依然得到广泛的使用。 3.4 权益证明Proof of Stake, PoS **算法简介**2011 年Quantum 在 Bitcointalk 论坛上提出。2012 年 8 月首个基于 PoS 共识的区块链项目点点币Peercoin诞生点点币Peercoin是第一个实现 PoS 算法的应用。点点币中权益即为币龄币龄是节点所持币的数量与其持有时间的乘积发起交易会消耗一定的币龄每消耗 365 币龄时也将获得年利率 5% 的利息。 使用者 Ethereum(2.0), Conflux, Peercoin。 **算法原理**例如某人在一笔交易中持有点点币 100 个共持有 30 天那么币龄为 3000后来发现了一个 PoS 块币龄被清空为 0获得利息为 0.05*3000/3650.41 币。共识过程中节点通过消耗的币龄来获取记账权节点消耗的币龄越多获得记账权的机会越大。算法设定的主链原则为消耗币龄最多的链为系统中正确有效的链。 **优点**不需要强大、昂贵的挖矿设备。减少资源消耗减少 51% 攻击的可能性。 **缺点**可能导致富人囤积加密货币形成马太效应可能产生加密货币通胀问题。 3.5 历史证明Proof of History, PoH **算法简介**历史证明是 Solana 创建这是一个高吞吐量区块链于 2018 年启动历史证明使网络参与者可以通过使用可验证的延迟功能在时间上达成共识从而避免了「最长链」规则。 PoH 是网络的时钟而 TowerBFT 是其守望台其任务是防止恶意节点欺骗时间参数。对某个区块进行投票的任何验证者都必须等待下一个区块的产生并从历史证明中获得「时间已经过去」的确认然后才能再次投票。 Solana 则巧妙将基于哈希的时间链和状态分离不是将每个区块的哈希链接在一起而是网络中验证者对于区块内的哈希本身进行哈希这种机制就是 PoH。PoH 通过使用高频可验证延迟函数VDF随着时间的推移建立可通过密码验证的事件顺序。从本质上讲这意味着 PoH 就像一个加密时钟可以帮助网络就时间和事件顺序达成一致而无需等待其他节点的消息。历史证明的区块链状态哈希的连续输出能够给出可验证的事件顺序。 **使用者**Solana 算法原理 Leader 给每个签名数据待证明的交易生成一个时间戳直接将交易排序这样就避免了 PoS 中时间排序的问题每个保证验证者都可以独立进行验证这样大大缩短了验证时时间重排序的问题只要进行交易证明的验证即可。 优点费用低每笔交易的费用只有几分之一美分交易速度快可延展性好 **缺点**中心化的担忧Solana 目前有不到 1200 个验证者来验证其网络上的交易。更少的去中心化应用程序常被称为以太坊杀手。根据其网站在 Solana 上创建了 350 多个 Dapp,相比之下以太坊上有近 3000 个 Dapp而这正是 Defi 目前需要更多开发时间和创新的地方。 3.6 权威证明Proof of Authority, PoA 算法简介由以太坊ETH和 Parity Technologies 公司的联合创始人 Gavin Wood 于 2017 年提出。PoA 机制不挖矿也不需要 Token。在基于次 PoA 的区块链网络中所有的交易和区块均由验证人处理。PoA 平台维护成本低但是在 PoA 中交易和验证区块链的验证人必须是能通过可靠性审查的人。所以PoA 的验证人必须非常关注自身声誉。声誉在 PoA 里就是非常重要的资产。一般情况下验证人会公开自己的实际身份。目前这种共识机制形成的区块链技术主要应用在行业特征明显的联盟链、私有链上。 使用者 PoA、 Ethereum Kovantestnet、 xDai、 VeChain 和沃尔玛的物流链。 算法原理 a. 选择权威证明者; b.由若干个验证人来生成区块记录交易并获得区块奖励和交易费用。在 PoA 中验证者是整个共识机制的关键验证者通过放置这个身份来获得担保网络的权利从而换取区块奖励。若是验证者在整个过程中有恶意行为或与其他验证者勾结那通过链上管理可以移除和替换恶意行为者。现有的法律反欺诈保障会被用于整个网络的参与者免受验证者的恶意行为。 优点 a. 需要更少的算力不需要挖矿节能环保; b. 验证速度快支持更快的事务; c. 整个网络验证者互相监督随时可以投票加入心得验证者或者剔除不合格验证者 d. 硬分叉受法律保护每个 Validator 均签订法律协议。 缺点 a. 公开身份隐私和匿名性将减少 b. 验证人特定为法律支持的集中的权威节点 2.7 延迟工作量证明Delayed Proof-of-Work dPoW 算法简介 解释 DPoW 前需要先说明什么叫 PoB。PoBProof of Burn叫做焚烧证明机制是一种通过焚烧自己手中的代币来表决谁拥有对网络的领导地位的承诺。焚烧代币的数量越多获得网络领导地位的概率越高。 在基于 dPoW 的区块链中矿工挖矿所获得的不再是奖励的代币而是可以焚烧的「wood」——燃木。矿工使用自己的算力通过哈希算法最终证明自己的工作量之后获取对应的 woodwood 不可交易。当 wood 积攒到一定量之后可以前往燃烧场地燃烧 wood。 通过一组算法计算后燃烧较多 wood 的人或者 BP 或者一组 BP 可以获取下个事件段出块的权利成功出块后获取奖励Token。由于一个时间段内可能会有多人燃烧 wood下一个时间段出块的概率由自己燃烧 wood 数量决定。焚烧的越多下一段时间可以获得出块权利的概率越高。 这样可以让算力和出矿权利达到一个平衡。不一定非要庞大算力的矿工、矿池才能成为区块生产者。小矿工也有春天只要辛勤劳动积攒一定数量的 wood也能出块。保证效率人人参与最平民化的参与方式保证了去中心化的理念避免拥有算力的组织或者持币大户把持网络。 **使用者**Komodo **算法原理**dPoW 系统中有两种类型的节点公证人节点和正常节点。64 个公证人节点是由 dPoW 区块链的权益持有者stakeholder选举产生的它们可从 dPoW 区块链向所附加的 PoW 区块链添加经公证确认的块。一旦添加了一个块该块的哈希值将被添加到由 33 个公证人节点签署的 Bitcoin 交易中并创建一个哈希到 Bitcoin 区块链的 dPow 块记录。该记录已被网络中的大多数公证人节点公证。 为避免公证人节点间在挖矿上产生战争进而降低网络的效率Komodo 设计了一种采用轮询机制的挖矿方法该方法具有两种运行模式。 在「无公证人」No Notary模式下支持所有网络节点参与挖矿这类似于传统 PoW 共识机制。而在「公证人激活」Notaries Active模式下网络公证人使用一种显著降低的网络难度率挖矿。「公证人激活」模式下允许每位公证人使用其当前的难度挖掘一个区块而其它公证人节点必须采用 10 倍难度挖矿所有正常节点使用公证人节点难度的 100 倍挖矿。 **优点**节能安全性增加可以通过非直接提供 Bitcoin或是其它任何安全链添加价值到其它区块链无需付出 Bitcoin或是其它任何安全链交易的代价。 **缺点**只有使用 PoW 或 PoS 的区块链才能采用这种共识算法在「公证员激活」Notaries Active模式下必须校准不同节点公证员或正常节点的哈希率否则哈希率间的差异会爆炸。 3.8 授权 PoSDPoSDelegated Proof-of-Stake **算法简介**DPoS 机制又叫做「股份授权证明机制」和「受托人机制」是 2014 年 4 月由 Bitshares 的首席开发者 Dan LarimerBM提出的。从某种角度来看DPOS 有点像是议会制度或人民代表大会制度。如果代表不能履行他们的职责当轮到他们时没能生成区块他们会被除名网络会选出新的超级节点来取代他们。 为了方便理解可以再举个例子。想象有这样一家公司公司员工总数有 1000 人每个人都持有数额不等的公司股份。每隔一段时间员工可以把手里的票投向自己最认可的 10 个人来领导公司其中每个员工的票权和他手里持有的股份数成正比。等所有人投完票以后得票率最高的 10 个人成为公司的领导。 如果有领导能力不胜任或做了不利于公司的事那员工可以撤销对该领导的投票让他的得票率无法进入前 10 名从而退出管理层。 **使用者**BitShares、Steemit、EOS、Lisk、Ark。 **优点**节能快速高流量博客网站 Steemit 就使用了它。EOS 的块时间是 0.5 秒。 **缺点**略中心化拥有高权益的参与者可投票使自己成为一名验证者这是近期已在 EOS 中出现的问题。 3.9 实用拜占庭容错Practical Byzantine Fault Tolerance, PBFT **算法简介**PBFT 算法中有一个节点会被当做主节点而其他节点都是备份节点。系统内的所有节点都会相互通信最终目标是大家能以少数服从多数的原则达成共识。 共识过程 a. 客户端发送一个请求给主节点去执行某个操作 b. 主节点广播这个请求到各个备份节点 c. 所有节点执行操作并把结果返回客户端 d. 当客户端收到 f1 个来自不同节点的相同的结果后过程结束。f 代表可能撒谎的节点的最大值。 使用者 HyperLedgerFabric, Stellar, Ripple, Dispatch **优点**高速、可扩展。 **缺点**通常用于私有网络和许可网络。 3.10 授权拜占庭容错dBFTDelegated Byzantine Fault TolerancedBFT **算法简介**中国区块链社区 NEO ( 原名小蚁 ) 提出一种改进的拜占 庭容错算法 dBFT, 该算法在 PBFT 的基础上借鉴 了 PoS 设计思路, 首先按照节点的权益来选出记账 人, 然后记账人之间通过拜占庭容错算法来达成共识。 该算法改进了 PoW 和 PoS 缺乏最终一致性的 问题, 使得区块链能够适用于金融场景。 同样是为了解决拜占庭将军问题「授权拜占庭容错」机制是一种在 NEO 区块链内部实现的保证容错的共识算法。在这个机制当中存在两个参与者一个是专业记账的「记账节点」一个是系统当中的普通用户。 普通用户基于持有权益的比例来投票决定记账节点当需要通过一项共识时在这些记账节点中随机推选出一名发言人拟定方案然后由其他记账节点根据拜占庭容错算法即少数服从多数的原则进行表态如果超过 66% 的节点表示同意发言人方案则共识达成否则重新推选发言人重复投票过程。 由于所有代表都可以验证区块提案因此很容易理解议长发送的数据是有效还是无效。因此如果议长不诚实并向三分之二的代表发送无效提案则块将不匹配节点所有者将不会对其进行验证。以三分之二的票数达成共识并选出新的议长。 **使用者**Neo 共识过程 a. 任何人都可以成为代表只要他或她符合要求。所有 NEO 代币持有者都可以投票代表不是匿名的并且成为节点所有者需要 1,000 GAS。 b. 从代表中随机选出一名发言人。 c. 发言人从等待验证的交易中构建一个新区块。然后议长将提案发送给当选的代表。他们应该跟踪所有交易并将它们记录在网络上。 d. 代表们可以自由分享和比较他们收到的提案以测试数据的准确性以及演讲者的诚实度。如果超过三分之二的代表达成共识并验证则该区块被添加到区块链中。 **优点**快速 ( 生成一个块需要 15-20 秒 )交易吞吐量大无需消耗能量可扩展没有分叉。 **缺点**没有匿名性需要真实身份运作才能被选举。每个人都争相成为根链。其中可能存在多个根链。 2.11 轮流拜占庭容错Rotation Practical Byzantine Fault Tolerance RBPFT **算法简介**dBft 和 RPBFT 原理和 PBFT 相似只是不是所有的节点都参与共识而是将节点分为两种 a. 共识节点执行 PBFT 共识流程的节点有轮流出块的权限 b. 验证节点不执行共识流程验证共识节点是否合法、区块验证经过若干轮共识后会切换为共识节点 轮流拜占庭容错中轮流将共识节点替换为验证节点。 **使用案例**Fisco-BCOS **优点**传播速度比 gossip 快无冗余消息包 分而治之每个节点出带宽为 O(1)可扩展性强 **缺点**中间节点是单点需要额外的容错策略 2.12 AptosBFT **算法简介**也是 PBFT 的衍生算法Aptos 以名字命名的共识算法基于 HotStuff 而 HotStuff 又基于 PBFT。这个算法模型优点像洋葱和俄罗斯套娃需要一层一层剥开。每个节点只与领导者通信而不是向领导者和其他所有「将军」发送消息。领导者广播要投票的消息建议的块每个节点将其投票发送给收集消息的领导者。 **使用案例**Aptos 此外还有一些不常见的共识算法。 2015 年, Stellar.org 首 席 科 学 官 David Mazieres 教授提出了恒星共识协议 (Stellar consensus protocol, SCP). SCP 在联邦拜占庭协议 和 Ripple 协议的基础上演化而来的, 是第一个可证 明安全的共识机制, 具有分散控制、低延迟、灵活信 任和渐近安全 4 个关键属性。 同年, 超级账本的锯齿湖项目将 Ripple 和 SCP 共识相结合, 提出了法定人数投票 (Quorum voting) 共识算法, 以应对那 些需要即时交易最终性的应用场景。 2016 年, 图灵奖得主、MIT 教授 Sivio Micali 提出了一种称为 AlgoRand 的快速拜占庭容错共 识算法. 该算法利用密码抽签技术选择共识过程的 验证者和领导者, 并通过其设计的 BA* 拜占庭容错协议对新区块达成共识. AlgoRand 只需极小计算 量且极少分叉, 被认为是真正民主和高效的分布式账本共识技术。 2017 年, 康奈尔大学提出了一种称为 Sleepy Consensus ( 休眠共识 ) 的新算法. 这种共识针对 的是互联网环境下大规模的共识节点中可能多数都 处于离线状态, 仅有少数节点在线参与共识过程的 实际情况。 该研究证明, 传统共识算法无法在这种环境下保证共识的安全性. 而采用休眠共识算法, 只要在线诚实节点的数量超过故障节点的数量, 即可保证安全性和鲁棒性。 四. 总结 如果跳出开发者的角度更多结合政治与经济的思考方式在里面或许还会出现更多的共识算法如结合类似 PPP 概念的共识方式不仅能达到对恶意者的惩罚性质还能达到最高效节约算力的目的也说不定。 总之共识机制是区块链技术的核心它可以解决分布式系统中的信任问题确保各节点之间的数据一致性和安全性避免了恶意节点的攻击和篡改从而保证了区块链系统的稳定性和可信度。同时共识机制还可以解决「双花」问题提高区块链系统的吞吐量和处理速度。但是各种共识算法并不是绝对安全高效去中心化的。 没有最好的算法只有最适合自己的算法。共识算法的选择与应用场景高度相关可信环境使用 Paxos 或者 RAFT带许可的联盟可使用 PBFT 非许可链可以是 PoWPoSRipple 共识等。最好的共识机制永远是适合用户需求的机制。
http://www.dnsts.com.cn/news/19658.html

相关文章:

  • 如何注册平台网站排名优化方法讲解
  • wordpress 单页模版广东工厂搜索seo
  • 网站策划书如何做wordpress忘记密码了
  • 防制网站怎么做广西城乡和住房建设厅网站
  • 东莞网页设计哪家设计网站好?如何做网页图片
  • 深圳网站建设民治大道建设网站费用
  • 大庆市网站建设网站构成要素
  • 建设个电商平台网站需要多少钱教怎么做ppt的网站
  • 网站建设公司新报做网站要用编程吗
  • 横栏网站建设国外最炫酷网站
  • 松原网站制作重庆装修设计公司
  • 网站的建设参考文献柳州关键词优化网站
  • 大连网站建设意动科技宁夏建设监督网站
  • 卡纸做荷花网站软件公司有哪些部门
  • 网站内容建设是什么洛阳又发现一例
  • 建设一个网站花多少钱链接交换平台
  • 手机营销网站中国贸易信息网
  • 网站建设平台流程开发三味
  • 网站开发技术的发展旅游网站建设方案2019
  • 网站字体样式wordpress插件 数据库
  • 做网站哪家南京做网站网站建设同行友情链接
  • 长治网站建设局域网网站制作
  • 网站建设费入何科目郑州建设厅官方网站
  • 大作业网站建设方案山西seo和网络推广
  • 怎么用网站做转换服务器织梦网站做自动生成地图
  • 网站开发报告步骤分析怎么建商城网站
  • wordpress网站好慢关键词优化易下拉稳定
  • 在线做logo印章网站如何做网站广告图片
  • 官方网站手机 优帮云外贸网店
  • 做网站实现发送信息功能微网站和手机网站