在币圈,没时间学习我理解,但是发生了大事件,借大事件延展学习下,也是种高效学习法则。
要弄懂EOS的内阁竞选——要懂共识机制——弄懂共识机制必须——从两军问题+拜占庭将军问题说起!记住了,这不是两个历史故事,是两个无解的问题。
1 两军问题
很多讲区块链文章讲到这个问题很难看懂,会绕来绕去。我仔细研究了之后,觉得要先讲个场景:平时我们使用社交软件,发出一条信息,有的社交软件在对方阅读之后,你可以看到“已读”字样,但是有的比如微信,你发出的信息,对方读没读你是不确定的。对吧?那么,如果是非常要命重要的一条微信信息,你必须第一时间得到回复,一般我们日常就会在重要信息后面附上一条:收到务必回复。那么假设对方一直没有回复,你就知道要么是他故意不爽你不搭理你,要么是在忙没有看见。
好,对方还是看见了,对方回复了,假设对方就是小芳,她回复了:“我收到了。”但是小芳在想,你这么着急,刚才一直忙没有回复,现在她想确认你知道她知道了,希望不给你留个坏印象。怎么办?一般现实中你收到后,会回个笑脸。
很多时候,即使用微信的人,都感觉到,当领导回了个笑脸,你总觉得是否要继续回复一朵玫瑰作为社交礼仪。这种无穷无止境的信息传达多多少少是有点的,大家也困扰过对吧。而且,这里面还有个悖论,如果有人偷了小芳的手机替她恶作剧回复了,你怎么办呢?
好,这就是两军问题。
如果在古代没有移动互联网没有微信,两军交战,要让信使去传话呢?
A将军可以先发送一个消息:6月1日凌晨发起攻击。但是,一旦消息发送出去,A将军并不知道B是否收到了这个消息。这种不确定性使得A将军攻击之前非常犹豫,因为有独自发起攻击的危险。
为了让A将军放心,B将军可能要发送一个确认的返回信息给A将军:“我收到了你消息,我会在6月1日凌晨发起攻击”。可是,这个给A将军的确认消息也面临着被守卫军截获的可能,B将军也犹豫了,如果A将军没有收到确认信息,那么A将军很有可能停止此次攻击。
OK 接下来你就很容易理解——
2 拜占庭将军问题
拜占庭罗马帝国在军事行动中,采取将军投票的策略来决定是进攻还是撤退,也就是说如果多数人决定进攻,就冲上去。但是军队中如果有奸细,比如将军已经反水故意乱投票,或者传令官叛变擅自修改军令,那怎么保证最后投票的结果真实反映了忠诚的将军的意愿呢?
不多解释这古老的名字,但是就是因为有这些古老的问题,而且这些名词一直被用在计算机领域,并且经常出现在计算机网络课程的开头。并且,两军问题是在计算机通信领域首个被证明无解的问题,由此也可推论出,随机通信失败条件下的“拜占庭将军问题”也同样无解。
所以,
由于上述的那些问题,需要达成共识。
共识机制 —— 区块链项目的灵魂设计!
解决一致性的问题。
区块链技术不是孤立于计算机信息技术成立的,这句话看似废话,但实则很多人容易走不通这逻辑。区块链技术在牛逼,它也是建立在过去计算机的发展,底层技术的基础上发展起来的,分布式云储存、密码学的发展,准确的说,区块链这个行业是社会各行各业,包括金融业在内发展到一定阶段,必然出现的大拼盘。不是说,大拼盘不伟大,恰恰相反,仍然是第四次科技革命。我只是要强调,区块链技术不是单独重新发明的一项技术,而是同样遵循互联网底层架构逻辑。
区块链从本质上而言是一种分布式账本技术。传统的账本,通常会以数据库的形式,集中存储在银行或公司的服务器节点上。而在区块链的网络中,每个节点都会保有一份完整的账本,且所有节点的账本内容完全一致。每个节点都可以根据自己本地的账本去查找交易,也可以往账本中添加交易。
这样就带来了一个问题,如果所有节点同时一起写入账本数据,那么肯定数据会不一致。因此需要一种机制来保证区块链中的每一区块只能由一个节点来负责写入,并且让所有其他节点一致认同这次写入。如何选出写入账本数据的节点,这就是共识机制。
既然如此,它就存在开篇说的问题。在区块链上面共识机制有很多种类,比特币采用的和EOS采用的是不同的,但是,你不能说哪种共识机制完美,哪种绝对的不好。没有笼统的答案,也就是说,不可能适用于所有的应用场景。
目前共识机制最常见的3种,再多了被一些专业技术专家提起的共9种。今天我们只简单讲PoW、PoS、DPoS。
PoW(工作量证明)采用简单粗暴但极为有效的方式,通过节点首先自证其资质后才进行广播的方式,大幅度减少了网络间的通讯压力,但与之带来的问题则在于自证资质的计算资源消耗极大。
比特币在区块的生成过程中使用了PoW机制,一个符合要求的区块哈希值由N个前导零构成,零的个数取决于网络的难度值。要得到合理的区块哈希值需要经过大量的尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的区块哈希值,说明该节点确实经过了大量的尝试计算,当然,这并不能得出计算次数的绝对值,因为寻找合理的哈希值是一个概率事件。当节点拥有占全网n%的算力时,该节点即有n%的概率找到区块哈希值。
PoW依赖机器进行数学运算来获取记账权,资源消耗大、共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错。
好处是PoW完全去中心化,节点自由进出。
PoS(权益证明)采用与传统分布式一致性验证类似的机制,通过代币数量(或存储容量等指标)作为权重依据,使用某种分布式算法选举出每次的检查点节点。这种机制的好处在于没有消耗计算资源的自证资质过程,但是带来的问题在于每次选举时在大量节点的网络中对网络压力极大。
在PoW中,一个用户可能拿1000美元来购买计算机,并加入网络来挖矿以此产生新区块,从而得到奖励。而在PoS中,用户可以拿1000美元购买等价的代币,并把这些代币当作押金放入PoS机制中,这样用户就有机会产生新区块而得到奖励。
DPoS(股份授权证明)作为PoS的变形,通过缩小选举节点的数量以减少网络压力,是一种典型的分治策略:将所有节点分为领导者与跟随者,只有领导者之间达成共识后才会通知跟随者。该机制能够在不增加计算资源的前提下有效减少网络压力,在优秀的软件实现中将会具有较强的应用价值。
EOS 采用的就是DPoS
节点选举若干代理人,由代理人验证和记账,但其合规监管、性能、资源消耗和容错性与PoS相似。类似于董事会投票,持币者投出一定数量的节点,进行代理验证和记账。
DPoS的工作原理如下:每个股东按其持股比例拥有相应的影响力,51%股东投票的结果将是不可逆且有约束力的,其挑战是通过及时而高效的方法达到“51%批准”。为了达到这个目标,每个股东可以将其投票权授予一名代表。获票数最多的前100位代表按既定时间表轮流产生区块。每位代表分配到一个时间段来生产区块。
从公有链的角度来看,共识算法就是公平和效率孰重孰轻的决策,技术实现不是难点,难点在于如何从社会学、从人性出发去设计激励机制。还有些为了规避风险也好,或者崇尚无币的链也好的机构团队,比如金融机构,由于不需要链上的代币激励,因而改进的拜占庭容错(PBFT)、PAXOS、RAFT等传统分布式一致性算法就成为首选。
EOS的超级节点竞选
EOS 是目前全球流通市值第六大的数字加密货币,备受关注的主链之一。目前EOS全球21个超级节点的竞争已进入白热化,薛蛮子、李笑来、老猫暴走恭亲王等投资人,EOS社区纷纷加入EOS超级节点之争。美国目前竞选主要有EOS 底特律、EOS 卡罗拉多、EOSSocal、EOS 纽约、EOS 俄克拉荷马、Blockgenic、EOS SLC等节点,据说EOS纽约是EOS创始人BM经常互动的社区,其入选被认为是板上定钉。虽然官方一再说ETH不会成为EOS的对手,但是很多投资人还是会拿来进行比较。除挖矿收益外,EOS将每年增发5%分给这些超级节点,大约每一个节点每年可以获得238 万个 EOS的收益。而且,如果EOS6月份主网上线后颠覆ETH,价格将暴涨几十倍甚至上百倍。
EOS采用的是DPOS(委托权益证明)共识机制,EOS持有者根据手里持有的EOS Token来给所有节点竞选人投票,得票数量前21位就可以当选主节点。可以理解为总统组建内阁,普通人进不了上议院,要投票选举代表,让内阁成员来做决策。
竞选者需要先提供网站和社交帐号,组织的名称、所在位置,服务器类型、位置,到2018年6月3号之前的预算支出以及技术方案,2018年6月3号之后的硬件扩容计划以及社区支持计划等。要给社区一个选你的理由。EOS的白皮书中提到,EOS每年会增发代币总量的5%给这21个主节点。EOS的总量是10亿枚,5%也就是5000万枚,按照EOS的市场价约36元人民币,分给21个节点,每个节点仍有8500万元收益。
我们这些小咖,吃着薯条,看看热闹就行。
EOSG(https://eos.io/)已经公布了参与竞选节点候选人需要提供的六点材料:
①公共网站和社交网站账号
②组织的名称、所在位置;服务器类型、位置;至少2/3的现有员工的图片及其背景信息
③2018年6月3日之前的预算支出以及技术方案
④2018年6月3日之后的硬件扩容计划
⑤社区支持计划
⑥电报和供社区成员测试的节点
感兴趣的可以看看这两个网站的信息:
https://forums.eosgo.io/
https://eos.io/
https://forums.eosgo.io/categories/chinese
中国EOS
http://myeos.world/
中文版本的EOS超级节点竞选候选人的网站
为了规避“贿选”,EOS官方设置了一种新的投票规则:任何一个EOS,都可以投出30票。也就是说,如果你持有一个EOS,你可以投给30个节点分别一票,也可以选择只投给某几个节点,但是只能给一个节点投票最多1票。
按照这个规则,投票不再有唯一性。这个规则在一定程度上避免了“贿选”的可能,对于各个节点而言,把自己做得更好显得更重要了;而用户,也不再需要在投给A节点还是B节点这个问题上犹豫了。
但是,这个规则也可能会产生新的问题。如果某几个节点(<21个)已经掌握了大量了EOS,并且这几个节点互相联盟互相投票,再加上一定力度的宣传。那么,产生的21个主节点很可能就是同一个阵营,并且在以后的每一届竞选中,他们都可以再次结成联盟,从而彻底掌握和影响EOS主节点竞选结果。
另外,按照此前 EOS 团队公布的准入门槛,光使用亚马逊 AWSEC 2 主机 x1.32x large 型的服务器的成本一年就高达 96.9 万人民币,并且随着EOS的交易量上升带宽成本也会增加;不过,成为EOS“超级节点”即使收入只为1%也足够支撑起EOS的运维成本。超级节点的运营平台至少要牵头搭建EOS生态的基础工作主要有:(1)贡献EOS底层代码;(2)开发安全的EOS冷热钱包;(3)保障智能合约的安全;(4)扶持EOS DApp开发者。
EOS内阁选举已经虚位以待了,该磨枪的磨枪,该摩拳的摩拳,该擦掌的擦掌吧。