中本聪在2009年1月3日于赫尔辛基的某服务器挖出了比特币。我认为,比特币最为神奇之处即在于其共识机制,因为共识的存在,人类可以完成大规模的协作,取得超越个人的成果和影响力。
分布式系统或者说P2P网络中的节点,可以用一盘散沙来形容,在这种节点非常分散的情况下极需解决信息传递过程中的可信性问题。如何判定他人发给我的信息,是真实准确的信息,而非某个恶意节点篡改过的信息?如何保障输入的信息与输出的结果是相匹配的,这是计算机领域存在多年的问题,也即”拜占庭将军问题“。
为了解决“拜占庭将军问题”,各种共识机制应运而生:
选择不同的共识算法,会对区块链上应用有较大的影响。不同的区块链技术,一般会选择不同的共识机制,这跟区块链技术本身的价值主张也有关系。有的区块链应用可能就是要做公有链,面向公开网络;有的区块链应用做的是联盟链,有限节点,追求高性能、高吞吐量,它们选用的共识算法一定是不同的。让我们先从最为基础的共识机制说起:
一、POW
POW是最早的共识机制,其代表当然是比特币。我想中本聪设计POW的初衷,肯定是希望每个人都有平等获得比特币的权利,完成的最大限度的民主和去中心化,虽然其中依据人性的逐利性设计了挖矿和记账的奖励机制,但是他也远远未曾想到,水能载舟亦能覆舟,逐利的本性一旦被激发,将一发不可收拾,为了获得更大的收益,人们开始建立日趋中心化的矿池、矿场采取联合挖矿的方式来获取收益,某种程度上背离了比特币的初衷。另外,中心化的矿场也意味着更加容易受到监管者和政府机构的控制。
POW的工作原理我觉得说的最为清楚的一个人是汤强,无私推荐两篇他的文章:
概念和名词这种东西,就是越少越好,越简单越好。否则,无端的增加认知门槛。
挖矿,我的理解就是帮助比特币网络记录数据的动作;矿机的发展历史经历了CPU/GPU/ASIC芯片时代。这一系列的迭代,无非是为了更加高效地挖出比特币。
CPU(中央处理单元)是计算机的主要执行器件,根据程序代码来控制其他所有元件的运作,CPU能进行所有种类的数学运算,同样非常适于快速的任务切换与逻辑判断。
最初中本聪的构想是一CPU一算力,因为个人电脑的普及,绝大多数人都可以参与到挖矿的行列中,帮助维护一个共同的账本。
GPU(图形处理单元)是计算机视频渲染系统的一部分。GPU类似于劳工,GPU虽然也能做数学运算,但是它最主要的设计用途是进行视觉图形处理而不是执行者的角色。图形处理是大量的重复任务,因为它被安排对屏幕上大量的像素进行处理,为了更有效率的运算,图形处理器的巨大优势在于执行大量重复劳动,而不是快速的任务切换。
一个形象的比喻是CPU如同一小组快速执行任务的精兵良将,GPU如同一大群相对迟缓的笨人,他们单个看上去并不那么精干快捷,但是被训练去做大量的重复劳动,而在整体的角度上可能就会更有效率。
后来人们还是不满足于GPU的算力,开始投入更多的人力、物力、财力,投入到一场”军备竞赛“中。ASIC芯片上场了,它是一种为专门目的而设计的集成电路。相当于一支训练精良的特种部队,每个环节都经过精心的设计,只为追求最大的产出效能。
这场”军备竞赛“到底是为了什么?天下熙熙皆为利来,挖矿的回报又是什么呢?
挖矿收益,分为两种类型:
- 区块奖励
区块奖励,是指对矿工记录一个新区块的奖励。只有实际记账的矿工才能获得奖励,但是谁有记账权呢?
这要根据算力而定,计算能力越强,越有机会在十分钟一次的“相扑”比赛中拔得头筹,获得记账权。每挖21万个区块(约4年)后奖励减半,从2009年的创世区块到今天,区块奖励已经从50个降到12.5个(2013年第一次减半,2017年第二次减半)。
- 记账手续费
针对现已存在的比特币,其每一笔交易,都需要消耗一定数量的比特币作为GAS(燃料费),这笔燃料费就是发给矿工的小费,感谢他们辛勤的劳作,维护账本。
每一种共识机制的产生都有其特定的历史环境和特定的需求,POW是共识机制的鼻祖,在2008年全球金融危机的背景下应运而生,致力于解决中央银行不可避免地滥用权力,造成法币超发,和通货膨胀的问题。但是历经九年的发展,我们也看到了POW机制下的弊病:
- 需要消耗大量的电能
摩根士丹利分析师此前在报告中表示,虚拟货币挖矿在2018年可能会消耗140太瓦时的电力,约占全球电力需求的0.6%。看起来可能不是很多,但这意味着比特币挖矿所使用的电量已经超过了世界上至少159个国家的年度用电了。
中国曾占全网算力资源的80%,很大一部分原因在于,中国拥有价格低廉的电力资源,甚至早年间一些矿场会偷电来挖矿。国内的矿场,大多分布在新疆、内蒙、山西、四川一带,那里有价格低廉的火电和水电。随着国家监管的趋紧,国内大量矿工远走他乡,开始在加拿大、冰岛、俄罗斯等地开始设立矿场。
- 处理效率
现在链圈的创业团队总是大呼TPS,TPS到底是什么?
TPS也称—— Transaction Per Second,每秒事务处理量,假如TPS每秒并发太低,很容易造成网络拥堵严重,从而使得区块链在高价值的高并发业务领域无法落地。
比特币的TPS=7,也就是每秒钟只能处理7笔交易。另外,比特币是每十分钟生成一个区块,也就是一次转帐的确认时间要花十分钟。而一般连续生成 6 个区块,也就是大概 1 个小时的时间,我们才认为你的这次转账已经在链上比较稳定,不太容易被篡改了。十分钟的时间,如果是跨国支付,这相比于传统 T+2、 T+3 的到账时间已经大大缩短了。但是如果做一些面向消费者的应用,则远远无法满足高频消费的需求。当然目前在比特币上也有很多像微支付通道、闪电网络、隔离见证这样的技术去改善比特币的吞吐量和交易确认时间的问题。
- 愈发中心化
比特币是解决”拜占庭将军“问题很好的解决方案,但是在POW的共识机制中,有一个前提条件,那就是大部分的节点,至少是51%的节点应该是”好人“。否则会出现51%的算力攻击。事实上,现在已经存在了这样的风险,BTC.COM,Antpool,ViaBTC前三大矿池,已经占到了全网52.4%的算力水平。如果他们想联合起来,篡改数据或者对比特币进行分叉,则会影响到比特币系统的稳定性。
二、POS
POS共识机制则诞生于人们对于POW日趋中心化的算力分布心怀忌惮之际。虚拟货币爱好者开始研究另一种共识机制——POS(Proof of Stake):权益证明机制。
对于验证人/节点的奖励,不是通过算力挖矿,而是通过持币而产生利息,这里就要引入一个概念叫做---币龄,币龄=币量x持有天数。这是根据你持有货币的量和时间,给你发利息的一个制度。当你获得了利息以后,你的所有币龄将被清空,你的持币时间将从0重新算起。
黑币是历史上第一个纯POS数字货币,首创快速挖矿+低股息发行模式,发行前7天采用Scrypt算法挖矿,第八天开始进入纯POS阶段。ETH目前也在根据这一思路进行POW到POS的转换过程。
PoS 挖矿和 PoW 矿机挖矿一样,都可以维护区块链的增长和安全。
POW共识同样可以理解为是一个下注机制:矿工选择一个块基于它进行挖矿,也就是赌这个块会成为主链的一部分;如果赌对了,他可以收到奖励,而如果赌错了,他会损失电费。只要所有的矿工都将他们的算力下注到同一条链上,使这条链拥有最多的工作量,共识就是安全的。
以以太坊为例,Casper协议下的POS共识机制可以解决早期POS无惩罚机制的问题。因为Casper协议要求验证人需通过抵押保证金(ETH)对共识结果进行下注。而共识结果又通过验证人的下注情况形成:验证人必须猜测其他人会赌哪个块胜出,同时也下注这个块。如果赌对了,他们就可以拿回保证金外加交易费用,也许还会有一些新发的货币;如果下注没有迅速达成一致,他们只能拿回一部分保证金。因此数个回合之后验证人的下注分布就会收敛。
三、DPOS
可以说DPOS是POS共识机制理念的一个变种,之所以单独拿出来说明,主要是因为目前应用DPOS共识机制的明星项目太多了。大名鼎鼎的当属BM的EOS了,这位大神之前的两个项目,Bitshares和Steem也同样使用了这一机制。
DPOS让每一个持有代币的人都有权利通过投票给验证人的方式行使自己的权利,利用科技的手段实现民主治理。当然我们会不可避免的遇到“选民冷漠”的难题,但相信通过将利益分配给每个选民,让每个代币的持有人获得系统良好发展所带来的红利,一定会刺激人们积极地参与“治理”。相比于POW机制下,靠算力比“谁力气大”的方式,将比特币矿工群体与社区渐行渐远,DPOS在很大程度上将权利重又附于给了每个社区成员,也即真正关心项目的人。
最近EOS正在如火如荼地进行全球超级节点的选举,EOSGO上可以看到节点竞选的相关信息,想要了解或者参与竞选的朋友们,可以看看这篇文章。
能够见证、伴随、参与一个项目的发展真是件有趣的事情,长这么大第一次对民主选举有了亲身体验。(下图是按照国家统计的EOS超级节点竞选团队的情况)
按照国家统计的EOS超级节点竞选团队分布
网友评论