导航:首页 > 以太坊区 > 以太坊选举机制

以太坊选举机制

发布时间:2024-02-23 00:25:29

1. eth挖矿是什么原理

凡是涉及到币,就一定离不开挖矿。以太坊网络中,想要获得以太坊,也要通过挖矿来实现。说到挖矿,就一定离不开共识机制。
不知道大家还记得比特币的共识机制是什么吗?比特币的共识机制是 PoW (这是英文 Proof of Work 的缩写,意思是“工作量证明机制”)。简单来说,就是多劳多得,你付出的计算工作越高,那么你就越有可能第一个找到正确的哈希值,就越有可能得到比特币奖励。
但是,比特币的PoW存在着一定的缺陷,就是它处理交易的速度太慢,矿工们需要不断地通过计算来碰撞哈希值,这是劳民伤财且效率低下的。对区块链知识有涉猎的朋友们应该看到这样一种说法:
以太坊为了弥补比特币的不足,提出了新的共识机制,名叫 PoS(这是英文的缩写,意思是“权益证明”,也有翻译成“股权证明”的)。
PoS 简单来讲,其实就跟它的字面意思一样:权益嘛,股权嘛,你持有的币越多相当于你的股权越多,你的权益越高。
以太坊的PoS就是说:你持币越多,你持有币的时间越久,你的计算难度就会降低,挖矿会容易一些。
在以太坊最初的设定中,以太坊希望能够通过阶段性的升级,在前期依旧采用PoW来构建一个相对稳定的系统,之后逐渐采用 PoW+PoS,最后完全过渡到 PoS。所以,说以太坊的共识机制是PoS,没错,但是PoS只是以太坊发布之初的一个计划或者说目标,目前以太坊还没有过渡到 PoS,以太坊采用的共识机制仍是 PoW,就是比特币那个 PoW,但是又和比特币的PoW稍稍不同。
这里的信息量有点大,
第一个信息点是:以太坊目前采用的共识机制也是PoW,但是和比特币的PoW稍稍不同。那么,和比特币的PoW到底有什么不同呢:简单来说,就是以太坊挖矿难度可以调节,比特币挖矿难度不能调节。就好比咱们高考,因为各个省份的教学情况、生源人数都不一样,所以高考分为全国卷和各省自主命题。
以太坊说我赞成这样分地区出题,比特币说:不行,必须全国同一卷,大家难度都一样!
通俗解释,就是,比特币是利用计算机算力做大量的哈希碰撞,列举出各种可能性,来找到一个正确哈希值。而以太坊系统呢,它有一个特殊的公式用来计算之后的每个块的难度。如果某个区块比前一个区块验证的更快,以太坊协议就会增加区块的难度。通过调整区块难度,就可以调整验证区块所需的时间。
以太坊协议规定,难度的动态调整方式是使全网创建新区块的时间间隔为 15 秒,网络用 15 秒时间创建区块链,这样一来,因为时间太快,系统的同步性就大大提升,恶意参与者很难在如此短的时间发动51%(也就是半数以上)的算力去修改历史数据。
第二个信息点是:以太坊最初的设定中,希望通过阶段性升级来最终实现由 PoW 向
PoS过渡的。
时间追溯到 2014 年,在以太坊发布之初,团队宣布将项目的发布分为四个阶段,即 Froniter(前沿)、Homestead(家园)、Metropolis(大都会)和 Serenity(宁静)。前三个阶段共识机制采用 PoW(工作量证明机制),第四个阶段切换到 PoS(权益证明机制)。
2015年7月30号,以太坊第一个阶段“前沿”正式发布,这个阶段只适用于开发者使用,开发人员可于在以太坊网络上编写智能合约和去中心化应用程序 DAPP,矿工开始进入以太坊网络维护网络安全并挖矿得到以太币。前沿版本类似于测试版,证明以太坊网络到底是不是可靠的。
2016年3月14日,以太坊进入到第二个阶段“家园”,这一阶段,以太坊提供了钱包功能,让普通用户也可以方便体验和使用以太坊。其他方面没有什么明显的技术提升,只是表明以太坊网络已经可以平稳运行。
2017 年 9 月,以太坊已经进行到第三个阶段“大都会”。“大都会”由拜占庭和君士坦丁堡两次升级组成,这个阶段的的目标是希望能够引入 PoW 和 PoS 的混合链模式,为 PoW向PoS的顺滑过渡做准备。最近比较热门的“以太坊君士坦丁堡升级”升级的就是这个,在君士坦丁堡升级中呢,以太坊将对底层协议和算法做一些改变,来为实现 PoW 和
PoS奠定良好的基础。
以太坊挖矿会得到对多少奖励呢?赢得区块创建竞争成功的矿工会得到这么几项收入:
1、 静态奖励,5个以太坊;
2、 区块内所花费的燃料成本,也就是Gas,这部分我们上一期内容讲过;
3、 作为区块组成部分,包含“叔区块”的额外奖励,叔就是叔叔的叔,每个叔区块可以得到挖矿报酬的1/32作为奖励,也就是5乘以1/32,等于0.15625 个以太坊。这里我们简单解释一下“叔区块”,“叔区块”这个概念是以太坊提出来的,为什么要引进叔块的概念?这还要从比特币说起。在比特币协议中,最长的链被认为是绝对的正确。如果一个块不是最长链的一部分,那么它被称为是“孤块”。一个孤立的块是一个块,它也是合法的,但是可能发现的稍晚,或者是网络传输稍慢,而没有能成为最长的链的一部分。在比特币中,孤块没有意义,随后将被抛弃掉,发现这个孤块的矿工也拿不到采矿相关的奖励。
但是,以太坊不认为孤块是没有价值的,以太坊系统也会给与发现孤块的矿工回报。在以太坊中,孤块被称为“叔块”(uncle block),它们可以为主链的安全作出贡献。 以太坊十几秒的出块间隔太快了,会降低安全性,通过鼓励引用叔块,使引用主链获得更多的安全保证(因为孤块本身也是合法的) ,而且,支付报酬给叔块,还能激发矿工积极挖矿,积极引用叔块,所以,以太坊认为,它是有价值的。

2. 莫斯科市采用以太坊区块链技术进行投票的目的

第一个真正的里程碑应该是一场地方选举,而最终目标则是全国性选举。

在西方国家民众对政府机关的信任度正以惊人的速度下滑之际,普京领导下的俄罗斯政府正采取措施试图加强民众对其系统的信任。

俄罗斯的民主制度已经历史悠久,但是苏联解体遗留的腐败余毒以及之后叶利钦执政时代遭到西方世界的掠夺仍是一个大问题。

俄罗斯推出这一系统恰逢“美国特别检察官穆勒以干涉2016年美国总统大选的理由对13个俄罗斯人和3个俄罗斯实体机构正式提起诉讼,引起全球轰动”的时候。对于反民主势力而言,这一事件令穆勒看起来更像可利用的傻瓜。

在华盛顿的大佬们仍不满和抱怨这个自己不喜欢的选举结果的时候,俄罗斯正展开行动,确保约瑟夫·斯大林最经常被人引用的格言之一——“投票的人决定不了什么,计票的人决定了一切”不适用于俄罗斯。

3. Quorum介绍(二):Quorum共识

我们知道,公共区块链是一个开放的社区,任何人都能够成为一个节点加入网络,在网络中计算,提交交易到链上等,因此公链是没有信任基础的,所以公链的共识第一要义就是证明交易的合法性和真实性,防止恶意成员的捣乱,效率不是第一要义。

与公链的环境不同,有准入门槛的企业链或者联盟链链上的所有成员在加入时实际上是已经获得了某些认可和许可的,因此企业链/联盟链上的成员是有一定信任基础的。在企业级链上我们没有必要使用POW或者POS这种浪费算力或者低效的交易共识。

Quorum提供了多种共识供用户采用:

在讲Raft前,有必要提一下Paxos算法,Paxos算法是Leslie Lamport于1990年提出的基于消息传递的一致性算法。然而,由于算法难以理解,刚开始并没有得到很多人的重视。其后,作者在八年后,也就是1998年在ACM上正式发表,然而由于算法难以理解还是没有得到重视。而作者之后用更容易接受的方法重新发表了一篇论文《Paxos Made Simple》。

可见,Paxos算法是有多难理解,即便现在放到很多高校,依然很多学生、教授都反馈Paxos算法难以理解。同时,Paxos算法在实际应用实现的时候也是比较困难的。这也是为什么会有后来Raft算法的提出。

Raft是实现分布式共识的一种算法,主要用来管理日志复制的一致性。它和Paxos的功能是一样,但是相比于Paxos,Raft算法更容易理解、也更容易应用到实际的系统当中。而Raft算法也是联盟链采用比较多的共识算法。

Raft一共有三种角色状态:

每个节点上都有一个倒计时器 (Election Timeout),时间随机在 150ms 到 300ms 之间。有几种情况会重设 Timeout:

在分布式系统中,“时间同步”是一个很大的难题,因为每个机器可能由于所处的地理位置、机器环境等因素会不同程度造成时钟不一致,但是为了识别“过期信息”,时间信息必不可少。

Raft算法中就采用任期(Term)的概念,将时间切分为一个个的Term(同时每个节点自身也会本地维护currentTerm),可以认为是逻辑上的时间,如下图。

每一任期的开始都是一次领导人选举,一个或多个候选人(Candidate)会尝试成为领导(Leader)。如果一个人赢得选举,就会在该任期(Term)内剩余的时间担任领导人。在某些情况下,选票可能会被评分,有可能没有选出领导人(如t3),那么,将会开始另一任期,并且立刻开始下一次选举。Raft 算法保证在给定的一个任期最少要有一个领导人。

特殊情况的处理

在以太坊中节点本身并没有角色,因此在使用Raft共识时,我们称leader节点为挖矿节点:

Raft共识机制本身保证了同一时间点最多只有一个leader,因此用在以太坊模型下也只会有一个出块者,避免了同时出块或者算力浪费的情况。

在单笔交易(transaction)层级Quorum依然沿用了Ethereum的p2p传输机制,只有在块(block)层级才会使用Raft的传输机制。

其中需要注意到一点,在以太坊中一个节点收到块以后就会立刻记账,而在Quorum模型中,一个块的记录必须遵从Raft协议,每个节点从leader处收到块以后必须报告给leader确认收到以后,再由leader通知各个节点进行数据提交(记录)

在Quorum模型中新块的信息是很有可能和已有块的header信息不符的,最容易发生这种情况的就是选举人更替(挖矿节点更替),具体描述如下:

假设有两个节点,node1和node2,node1是现有的leader,现有链的最新区块是0xbeda,它的父区块是0xacaa

对块“Extends”或者“No-op”的标记是在更上层完成的,并不由raft本身log记录机制实现。因为在raft内部,信息并不分为有效或无效,只有在区块链层面才会有有效区块和无效区块的含义。

需要注意的是,Quorum的这种记账机制和本身Ethereum的LVC(最长链机制)是完全不一样的

Quorum的出块频率默认是50ms一个块,可以通过 --raftblocktime 参数进行设置

投机性出块并不是以太坊Raft共识严格必须的核心机制之一,但是是提高出块效率的有效方式。

一个块从产生到实际被记录账本,走完整个raft流程实际上是需要耗费一定时间的。如果我们在上一个块被计入账本之后才开始产生下一个块,那么一笔交易想要成功被记录需要耗费较多的时间。

而在投机性(speculative minting)出块中,我们允许一个新块在它的父块被记录之前就产生。依次类推,在一段时间内,实际上会产生“投机链(speculative chain)”,在祖先块没有被记录进账本之前,一个一个新块已经依据先后关系组成了一条临时链片段,等待被记录。

对于已经被记录进投机块的交易,我们会在交易池中标记为“proposed transaction”

在之前我们说过,raft机制中是存在两个挖矿节点比赛出块和记账的可能的,因此,一条 speculative chain 中间的某一个块很有可能不会被记录到账本中。在这种情况下我们也会把交易池中的交易状态修改回来。( InvalidRaftOrdering event)

目前,Quorum并没有对speculative chain的长度做限制,但在它的未来规划中有讲这一点作为一个性能优化项加入开发进程,最后能够让一个挖矿节点即使在raft共识层没有连接上,它也可以离线一直出块,产生自己的speculative chain。

一条speculative chain有以下几个部分构成:

在块传输上我们使用etcd Raft默认的http传输,当然使用Ethereum的p2p传输也是可以的,但是Quorum团队在测试阶段发现,高负载的状态下,ETH p2p的性能没有raft p2p性能好。

Quorum使用50400端口作为Raft 传输层的默认监听端口,也可以通过 --raftport 参数自行设置。

一个集群默认的最大节点个数是25,可以通过 --maxpeers N 来设置,N是你的最大节点个数。

Quorum的IBFT其实就是PBFT,只不过摩根大通把它自己实现的PBFT叫做IBFT,所以IBFT的基本原理与PBFT是一样的,所不同的是,IBFT中把出块和共识的三阶段结合在了一起。

Istanbul BFT修改自PBFT算法,包括三个阶段: PRE-PREPARE 、 PREPARE 以及 COMMIT 。在 N 个节点的网络中,这个算法可以最多容忍 F 个出错节点,其中 N=3F+1 。

Istanbul BFT算法中的区块是确定的,意味着链没有分叉并且合法的区块一定是在链中。为了防止一个恶意节点生成不同的链,在把区块插入进链 之前 ,每一个validator必须把 2F + 1 个 COMMIT 签名放进区块头的 extraData 字段。因此,区块是可以自我验证的(因为有签名)并且轻客户端也支持。

然而动态的 extraData 也会造成区块的hash计算问题。因为一个区块可以被不同的validator验证,所以会有不同的签名,所以同一个区块会有不同的hash。解决的方案是,计算区块hash的时候把 COMMIT 签名排除在外。因此我们任然可以在保证block hash一致性的同时进行共识验证。

由于Ethereum POA共识在网上已经有大量介绍,笔者这里就不多做详细介绍,只对重要特点和POA的工作流程做大致梳理和介绍

4. eos和以太坊的区别

两者共识机制不同。
EOS和以太坊之间的另一个显著区别是区块链共识机制,以太坊使用的是工作量证明机制(类似按劳分配),而EOS将使用DPOS授权股权证明机制,类似于董事会,董事会成员数量有限,由大家选举产生,被选中的董事会成员可以行使权利。

阅读全文

与以太坊选举机制相关的资料

热点内容
曼谷港口BTC中文名称 浏览:830
比特币最低能卖多少钱的 浏览:569
数字现金和数字货币的区别 浏览:836
阿瓦隆920h矿机参数 浏览:872
btc忘记密码出售 浏览:125
maicoin超商购买btc 浏览:961
比特币系统怎样进入 浏览:594
g2设置备用矿池 浏览:354
cbt怎样可以有很多矿机 浏览:156
新发虚拟货币 浏览:532
挖矿软件无法打开 浏览:798
人民币能投资比特币 浏览:158
莱特币和比特币换算 浏览:376
两木板之间的摩擦力怎么算 浏览:631
BTN矿机app下载 浏览:434
比特币禁止提现影响 浏览:813
btc行情直播 浏览:501
哪看比特币全球行情 浏览:666
为何有人买比特币 浏览:698
挖矿显卡不足sli 浏览:396