㈠ 区块链的共识机制是什么
所谓共识,简单理解就是指大家都达成一致的意思。
在区块链中,其实就是一个规则,每个节点都按照这个规则去确认各自的数据,最后维护整个网络的数据库保持一致。
如果以生活中的例子来举例的话,比如今天公司开个会议,但是由于老总不在,需要大家讨论决定一个项目做与否。
在这么一个群龙无首的环境中?
㈡ 区块链需要关注的核心逻辑问题
区块链需要关注的核心逻辑问题
区块链是去中心、去中介、点对点的交易处理体系,是全网验证、全网记录、不可逆转、难以篡改、可以溯源、公开透明的分布式帐户体系,这是到目前区块链定义两个主要的内容。但是如果按照去中心、去中介、点对点交易这个标准去卡,很多人所说的运用了区块链,那基本上都不是。因为现在几乎没有真正去中心的区块链应用。很多人说区块链将是信任的机器,是价值的互联网,区块链将再造生产关系、经济组织、运行模式,将颠覆法定货币体系,颠覆复式记账法,甚至将出现人人可发币、人人自金融、人人自组织的全新的社会。是不是这样?
今天我想给大家就在这么热的氛围里面,我们怎么看区块链,怎么抓住它的核心逻辑,避免出现颠覆式的重大错误做一点交流。
这里主要是基于比特币区块链来看。
第一个就是比特币这一类的加密数字货币能不能成为真正的货币,这一类的数字货币能不能颠覆法定货币体系。
我们知道货币在人类社会存续了几千年,不断地演进,从最初的实物货币到规制化的金属货币,再到金属本位下的纸币,再到去金属本位的信用货币。不断地演进到今天它的逻辑和规律是什么,这是正需要我们去准确把握的。
货币在演化过程里面,特别是出来纸币以后,人们逐步发现货币的功能越来越多,货币的影响力越来越大,但是它最重要、最核心的功能是价值尺度。
要发挥价值尺度的功能,最基本的要求是币值一定要相对稳定。要做到币值相对稳定,理论上必须是一个国家的货币总量要与这个国家主权范围内法律可以保护的能够货币化的财富规模相对应。也就是说货币总量和财富规模要对应。
怎么对应呢?不可能一个个完全对应,所以就出来一个中介目标的概念。有一个全社会消费物价总指数的概念,所谓CPI的概念。当一个国家的CPI变动,即通货膨胀率的波动,在我们目标范围内,在可控的水平之内,我们就认为物价或币值是相对稳定的。
这里边我们讲的是相对稳定,因为一个国家越大,物价越不可能绝对稳定,同时又要将波动控制在一定范围里面不能失控。当你通货膨胀率的水平控制在一定上升范围里面,意味着货币在一定程度上是贬值的。货币的贬值有什么好处呢?它可以抑制存款、鼓励投资和消费,从而发挥货币政策的作用,促进经济的发展。正因为货币总量可以人为调控,而且有一个调控空间,货币政策才出来了,货币政策和财政政策一样,成为国家宏观调控的两大政策之一。但是有一个前提,货币的贬值或者通货膨胀不能失控,一旦失控,底层人民活不下去,社会就会发生剧烈的动荡,政府或朝代就会更替。历史上这种例子很多。
今天在货币政策上也面临着很多诱惑,诱惑人们超发货币。也正是因为这样的原因,使一些人开始说你们这个货币体系不对,人为能控制,就会有腐败、不公平,我们能不能用技术的手段形成一些人不能干预的货币体系?这也就催生了比特币这一类的加密数字货币。
但是我们要知道,货币发展的规律是货币要逐步从财富里面脱离出来的,成为一个财富的对应物,这样我们才能用货币总量完全跟财富对应,同时也跟着有一定的调控余地。因此像黄金这样实物属性强,受到它的储量和挖掘加工约束很大的东西要脱离货币,成为货币的对应物,当然可能有很大的储值的功能。这样就使货币发展到今天,成为人们所说的信用货币或者国家信用担保的货币。我自己觉得这个叫法不一定准确,因为很多国家政府的债务越来越大,是永远也还不了的,所以说是信用货币有点牵强。严格地讲今天的货币就是法定货币或者主权货币。是说一个国家的货币总量一定要跟这个国家主权范围内法律可以保护的财富规模相对应。也正因为这样大家会发现今天我们再回去用实物货币,用黄金做货币已经不可以了。同时我们再回去说民间发货币,货币的非国家化同样不可以。今天很多加密数字货币拥趸者都举一个圣典,说哈约克先生就说货币应该非国家化。但哈约克的想法到今天还没有落地,就是违反了货币发展的轨迹和逻辑。
我们来看看比特币。比特币运用了非常复杂的技术和严密的数学运算,但是在货币这个体系上是高度模仿黄金的,所以我们可以看到它是总量一定,而且每四年减一半,因为黄金储量是一定的,越容易挖的先挖出来,越往后越不容易挖,所以新增的产量理论上是越来越低的,总有一天会挖完。比特币也是一样,总量2100万个,每十分钟所含的含量系统设定好了,每四年自动减一半一次,到2140年基本上全部结束。
大家可能看到了现在的信用货币存在一些问题,但你再想回过去比照黄金设计出一种新的货币体系,本身就违反了货币的发展逻辑会规律,从这个角度来讲它不可能成为真正的货币。这些东西只能是一种网络虚拟资产,或者是在一个商圈里面运用的代币、商圈币。它不一定完全没有价值,难道说黄金脱离了货币就没有价值了吗?依然有价值,只要你有真正应用的场景。
大家会看到像比特币这样的东西,只要在大家认可的比特币圈里面,它也是有一定流通使用的基础。就像现在中国法定货币是人民币,不代表没有单位的饭菜票,商场的购物券一样。
一旦确定了属于商圈币,就要严格控制在商圈里面的使用,不能出商圈使用,否则就在挑战法定货币的应用,如果冲击法定货币了,就一定会受到国家的监管。只要你做大了,对法定货币体系构成了威胁,它一定会来监管你。今天你会看到这个趋势已经出现了,各国逐步开始强化对加密货币的监管。这是我们要注意的一个问题。
大家知道比特币尽管模仿黄金,但是它的设计比黄金要严格得多,因为它每十分钟产币多少都告诉你了,人为是调不了的。然而,严格限定每十分钟的产量,就会使货币的供应量和经济的发展,财富的变化产生严重的分离,然后货币的币值根本难以控制。如果真的像比特币2017年初一千美金到11月份将近两万美金,有人说未来可能十万美金,二十万美金一个比特币的话,以它作为货币,大家想想整个币值的波动会多大。因为你上涨得快,可能贬得也会很大。更重要的是,比特币一开始没有引起大家重视,很多学生在宿舍里玩,因为不值钱,所以前期挖出来的比特币密钥都丢了,成为死亡币,而且这个是激不活的。今天大概1700万的比特币挖出来,其中有三百七八十万是死亡币,那本来2100万个就很有限,再去掉三百七八十万个币的话,这个币的供应量就更有限了。更何况如果它真有上升空间的话,马上就会有很多人不是做币的支付,而是将其作为储藏物、收藏品,那供应量就更有限了。所以从这些角度来讲,真正搞货币的人就会发现,它其实很难发挥货币的作用,它更像是一个货币的对应物,像黄金一样作为储值物是可以的。
第二,我们来看看像比特币区块链能不能颠覆世界,能发挥什么样的作用。
比特币非常强调去中心、去中介、点对点。但是怎么实现去中心呢?一定需要社会上的计算机加盟共同运行,共同维护规则。因为如果系统运行的主机是某一家的主机,你要更改系统的规则是非常容易的,你怎么能讲是去中心呢?所以比特币一定是要社会上的计算机共同参与运行。要大家参与的话,第一个前提是系统要开源,自动下载马上能运行,不需要做大量测试才能联网运行,否则根本就应付不了社会化、全球化的加盟体系。
第二规则要内置到系统里面,所谓的编码即规则。大家在运行这个系统的同时就是维护这个规则,未来未经过加盟的节点一半以上的同意,你即使一开始维护这个编码的人员也无权更改系统的规则。但是要做到这一条谈何容易啊,它需要共识、需要激励。最后的结果就是越追求去中心,去中介,就形成了一种完全封闭的网络体系。你今天看到,比特币上面能运行什么东西呢?只有一个东西,就是比特币。而比特币是哪来的呢?是链生资产,是挖矿出来的,跟现实世界没有任何的关系。正因为这样,它才能做到从一开始产币到币任何的变动,每一个帐户都是全网监控的,是很难篡改的,是可以溯源的。正因为每个帐户可以保真,所以我们才可以做到根本不知道帐户后面的人是谁,只要保证这个帐户是真是的就可以做交易。
结果有人在这个基础上演绎出来说,用了区块链就可以不用知道对方是谁就可以做交易,真的是这样的吗?
比特币去中心、点对点的交易是有严格的前提的。从一开始就必须在一个封闭的网络体系里面,交易的资产只能是链生资产,不可能把现实的财富送上去。当不能把现实的财富送上去运行,这怎么能解决现实的问题呢?所以比特币今天依然需要兑换成法定货币才能实现它的价值。如果不能兑换成法定货币,其价值会大打折扣。更多比特币解读:www.yangfenzi.com/tag/bitebi
问题是比特币这个区块链本身没有交换的功能,只有挖矿、产币和内部的点对点的转移。没有兑换的功能,要兑换必须要出比特币的圈到外挂的交易体系。所以大家会看到今天出了很多数字货币的交易所,交易所出了问题不代表比特币体系出了问题。比特币的体系到了今天为止依然是安全的,前提是它是个完全封闭的,不受外面影响的体系。
还有一个,比特币产币的规则每十分钟多少个币,它忘了货币金融是连在一体的,金融是需要有贷款生息或者投资分红的。大家看看比特币生息产币的规则有没有贷款生息和投资分红额外币的产量呢?没有,必须出来换成法定货币以后,只有通过法定货币才能实现贷款和投资的需求。如果严格用比特币的区块链,金融的功能会大受影响,这是我们需要看到的。
正因为这样,我们比特币区块链带来一个问题,就是大家想象的非常好,它是一个全新的东西,但是它是完全封闭的体系,实际上解决不了我们现实问题。
因此,以太坊设计人说这样不行,这样就成为网络游戏了,在这个东西里面要解决实际的问题,所以以太坊加了一个智能合约,在上面可以做一些私活。但是一加智能合约以后就打破了传统的封闭,今天以太坊的安全性就比比特币要弱一点了。
同时,比特币、以太币坚持全网验证、全网记录,量一大以后全网的存储占的空间非常大,效率非常差,消耗的资源越来越大。今天又有人探索能不能进一步提升,比如,一定要全网验证,全网记录吗?现有的银行不也就两地三中心,不是也没有出现大问题?我们能不能在这里面选若干的核心节点,比如21个节点,31个节点就可以?EOS或者类似的东西所谓的区块链3.0,基本上是采用缩小节点,不再全网同时记录、同时存储了。
这又出来一个问题:这些核心节点谁来选呢?如果是由你某一方指定核心节点,那不就没有去中心了吗?所以大家又在探讨我们能不能编一个系统,在选节点的时候就是去中心的。现在都还在不断地探讨,甚至进一步说挖矿需要巨大的能量消耗,一定要挖矿吗?类似这些方面,今天区块链都还在不断地在探索。
那么,讲到这里我们可以得出一个结论,就是区块链目前还处在它的研发初期,我们可能认为它很有发展的空间,但是不要轻易地说它能颠覆这个,颠覆那个,目前可以看到真正的应用非常地有限,还需要做大量的探索。
正是从这个角度来看,我从去年以来一直呼吁大家,一定要理性看待数字币、区块链。从目前的发展阶段和应用场景来看,区块链研发会有两大分支:一个分支是继续聚焦于底层技术的发展,就是公链的研发,不断地去改进。但是一定要知道底层技术、公有链的研发需要大量长期的研发,这是很难的。我们希望有人继续沿着这条路扎扎实实地去研发、去突破。
另一个分支是应用。这个应用就不要想着像比特币一样的区块链,聚焦在挖矿造币上面去,我一直在呼吁大家要跳出比特币挖矿造币区块链的范式来找应用。找什么应用呢?那就不要再去追求去中心、去中介,追求的是信息的分布式处理,连续的加密,可以溯源,不可以篡改等,优先做这些方面解决实际问题。从这个方面大家看到有是很多应用场景的,因为这个社会在加快向信息社会迈进。
首先可以找跟我们的财产或者债权债务交互频繁没有那么密切关系的其他东西。大家会看到,现在像BAT他们都在做网络游戏,不管是养猫还是养宠物,是网络应用,不涉及现实的财物和法律法规。第二是做公益性事业,像捐款,是钱物单向出去不需要再回来,没有买卖关系,没有借贷关系,但是人们关心这个东西是不是按照我的意愿去了,所以可以溯源、可以追踪。
再进一步,我们现在很多行政事业单位在政务里面有大量的单证、合约、影像等等东西,我们能不能帮他推到链上,上网运行,保证这个东西是真的,合法的,不可逆转的,随时可以查的。这都是可以的。再进一步可能才是未来向着所谓计算机联网,信息联网和价值联网,也就是实物联网相融合的方向发展。所谓的真正的要解决我们现实问题,那可能还要有一段过程。
这是我想跟大家做的交流。区块链是多种技术的集成,比特币是第一个应用,也是到目前为止非常完整的一个封闭式的体系,它很安全,但是解决不了现实问题。越来越多的人发现,目前比特币区块链或者类似的区块链都存在着“去中心、高效率和安全性”三者不可兼得的三角关系,所以要实事求是,注重解决现实问题,注重应用的使用,要跳出比特币区块链的范式。这是我今天给大家分享的一个基本观点,供大家参考。
㈢ 号称“区块链的灵魂”的共识机制是什么
我们知道区块链是去中心化分布式记账技术,在区块链系统当中,没有一个像银行一样的中心化记账机构,如何保证每一笔交易在所有记账节点上的一致性呢?共识机制解决的就是这个问题,因此也可以说共识机制是区块链的灵魂。
目前比较常见的共识机制有:工作量证明 PoW(Proof of Work)、权益证明(Proof of Stake)以及委托权益证明(Delegated Proof of Stake):
01
PoW(Proof-of-Work)
工作量证明机制
POW的全称为Proof of Work,翻译过来即“工作证明”或者“工作量证明”。挖矿获得多少货币奖励,取决于挖矿贡献的有效工作,也就是说矿机的性能越好、挖矿的时间越长,所获得的货币奖励就越多。
BTC就是POW机制下最成功的加密货币。POW机制虽然已经成功证明了其长期稳定和相对公平,但在现有框架下,采用POW的“挖矿”形式,将消耗大量的能源。其消耗的能源只是不停的去做SHA256的运算来保证工作量公平,并没有其他的存在意义。而目前BTC所能达到的交易效率为约5TPS(5笔/秒),以太坊目前受到单区块GAS总额的上限,所能达到的交易频率大约是25TPS,与平均千次每秒、峰值能达到万次每秒处理效率的VISA和MASTERCARD相差甚远。
02
PoS(Proof-of-Stake)
权益证明机制
POS 即权益证明或者股权证明,全称为 Proof of Stake。权益证明模式就是根据所持有货币的量和时间,来发利息的的一个模式。
POS机制,相比于POW,POS机制节省了能源,引入了“币龄”这个概念来参与随机运算。POS机制能够让更多的持币人参与到记账这个工作中去,而不需要额外购买设备(矿机、显卡等)。每个单位代币的运算能力与其持有的时间长成正相关,即持有人持有的代币数量越多、时间越长,其所能签署、生产下一个区块的概率越大。一旦其签署了下一个区块,持币人持有的“币龄”即清零,重新进入新的循环。
在POS机制下,因为区块的签署人由随机产生,则一些持币人会长期、大额持有代币以获得更大概率地产生区块,尽可能多的去清零他的“币天”。因此整个网络中的流通代币会减少,从而不利于代币在链上的流通,价格也更易受到波动。由于可能会存在少量大户持有整个网络中大多数代币的情况,整个网络有可能会随着运行时间的增长而越来越趋向于中心化。相对于PoW而言,PoS机制下作恶的成本很低,因此对于分叉或是双重支付的攻击,需要更多的机制来保证共识。稳定情况下,每秒大约能产生12笔交易,但因为网络延迟及共识问题,需要约60秒才能完整广播共识区块。长期来看,生成区块(即清零“币龄”)的速度远低于网络传播和广播的速度,因此在PoS机制下需要对生成区块进行“限速”,来保证主网的稳定运行。
03
DPoS
委托权益证明机制
DPOS即授权股权证明(delegated proof of stake)。
DPoS机制要求在产生下一个区块之前,必须验证上一个区块已经被受信任节点所签署。相比于PoS的“全民挖矿”,DPoS则是利用类似“代表大会”的制度来直接选取可信任节点,由这些可信任节点(即见证人)来代替其他持币人行使权力,见证人节点要求长期在线,从而解决了因为PoS签署区块人不是经常在线而可能导致的产块延误等一系列问题。DPoS机制通常能达到万次每秒的交易速度,在网络延迟低的情况下可以达到十万秒级别,非常适合企业级的应用。
04 其他共识机制
区块链系统中还有其它共识机制比如联盟链常用的PBFT,新经币(NEM)用的POI等。这些共识机制是为了解决现有共识机制的一些缺点而被提出的。但目前使用的系统不如POW,POS和DPOS多。
共识机制是区块链系统的核心,它决定了一个区块链系统的去中心化程度,性能和安全性。因此公链的开发中,共识机制的设计是核心和关键。
㈣ 区块链的共识机制
所谓“共识机制”,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。北京木奇移动技术有限公司,专业的区块链外包开发公司,欢迎洽谈合作。下面我们将一下区块链的几种共识机制,希望对大家了解区块链基础技术有帮助。
因为区块链技术的发展, 大家对共识机制这个词也不再陌生,随着技术发展,各种创新的共识机制也在发展。
POW工作量证明
比特币就是使用PoW工作量证明机制,到后来的以太坊都是PoW的共识机制。Pow相当于算出很难的数学难题,就是计算出新区块的hash值,而且计算的难度会每一段时间就会调整。PoW虽然是大家比较认可的共识机制,计算会消耗大量的能源,还有可能会污染环境。
POS权益证明
通过持有Token的数量和时长来决定获得记账权的机率。相比POW,POS避免了挖矿造成大量的资源浪费,缩短了各个节点之间达成共识的时间,网络环境好的话可实现毫秒级,对节点性能要求低。
但POS的缺点同样明显,持有Token多的节点更有机会获得记账权,这将导致“马太效应”,富者越富,破坏了区块链的去中心化。
DPOS权益证明
DPOS委托权益证明与POS原理相同,其主要区别在于,DPOS的Token持有者可以投票选举代理人作为超级节点,负责在网络上生产区块并维护共识规则。如果这些节点未能履行职责,将投票选出新的节点。同样的弊端也是倾向于中心化。
POA权威证明
POA节点之间无需进行通信即可达成共识,因此效率极高。并且它也能很好地对抗算力攻击,安全性较高。但是POA需要一个集中的权威节点来验证身份,这就意味着它会损害区块链的去中心化,这也是在去中心化和提高效率之间的妥协。
㈤ 两种共识机制对比(PoW vs PoS)
区块链中最核心的架构就是共识机制,可以说是区块链的驱动引擎,发展这么多年,目前主流比较明确经得住考验的就只剩下PoW(Proof of Work)与PoS(Proof of Stake)两种机制。简单概述下,PoW系统的特点是通过消耗大量算力来计算特定算法的解(典型如哈希),第一个算出结果的有权生成区块,同时也会得到coin作为奖励(这也是coin的生产与分发过程,形象地称为Mining),采用PoW的典型区块链有Bitcoin和Ethereum,目前PoW也是运行时间最长,被公认为是最可靠安全的共识机制; 其本质是通过消耗大量算力来实现系统内的逆熵过程,保证系统的长期安全与稳定 。但PoW被广为诟病的也是其消耗太多的能源资源,这方面PoS就被认为是更为绿色的解决方案,顾名思义PoS是通过质押系统中的资产即coin来成为一个质押者(staker),这样就有权产出区块,质押份额越多,获得产出区块权的概率就越高,也代表着奖励越多。
在分布式系统中有一个 CAP 定理,是指一个分布式系统中存在着三元悖论,即不可能同时满足这三个特性:一致性(Consistency)、可用性(Availability)和分区容错性 (Partition tolerance),而只能满足其中两个。区块链作为一种分布式网络,这个定理也逐渐演变成了区块链的三元悖论,即 安全性(Security) 、 去中心化(Decentralization) 和 可扩展性 (Scalability) ,也是同时只能满足两个特性。
整体上看PoW系统更注重的是 安全性(Security) 与 去中心化(Decentralization) ,放弃 可扩展性 (Scalability) ,这也是Bitcoin网络的吞吐量非常慢的原因。而PoS系统更关注的是 可扩展性 (Scalability) 与 去中心化(Decentralization) ,但就PoS能否真的 实现 去中心化(Decentralization) ,我是比较持怀疑态度的。从保守主义与系统的更长期稳定的角度出发,我个人是坚定地站在PoW这边的,可能跟自身保守的性格有关,并不是特别看好PoS作为基础层能比较稳定。特别是像这次 5月份的Luna事件 ,事件大概的过程是Luna链上的算法稳定币UST缺乏价值支撑最终脱锚,其核心问题在于UST的锚定设计试图用一个PoS股权系统去支撑其锚定美元,而且还超发了太多UST,再加上UST与Luna的兑换设计缺陷最终导致Luna自身的死亡螺旋。但这个事件更大的意义应该是敲响了一个警钟,PoS机制在面对空头资本砸盘时真的还能维持稳定、维持所谓的去中心化吗?可能到时节点数量萎缩的速度会很快,逐渐趋于中心化。
所有系统设计都需要根据自身定位来折中,以下从价值锚定的角度,简单分析下为什么长期来看PoW会更有优势。
在PoW系统中三股主要的参与者分别是研发人员,投资者(或者叫用户)与Miner,这三者的相互制衡,使得这个系统达到一个稳定平衡的状态。而PoS系统中,将Miner这个重要的制衡力量移除了,投资者和Miner变成了同一群体 质押者(stakers) ,因此该群体滥用权力的行为会变得相对不受限制,并且该链随后的发展方向也可能会更加不平衡,更容易倾向有利于 质押者(stakers) 群体的方向。
PoW系统很好的阐述了什么是被普遍认可的价值,抽象上来看就是高代价的稀缺性 ,高代价与稀缺性两者缺一不可。PoS最多只能实现其中一个稀缺性。
Miner为了在链上生产区块赚取coin,不仅需要持续支付高额电力成本,还必须不断投入研发、升级硬件、优化基础设施和运营规模来保持其竞争力。最终结果是,能够长期持续盈利的Miner并不会是一个一层不变的群体,而是总在竞争中淘汰掉效率太低的Miner,使高效率的Miner能存活下来。这也更有利于 去中心化(Decentralization) ,因为不断变化的Miner群体意味着没有一个Miner可以在相当长的时间内保持网络的大部分算力,除非他们通过严酷的竞争考验,不断优化自身来提供更多的算力。
而PoS系统中的质押者实际上并多少真正的风险投入,也没有优胜劣汰的严酷竞争机制,他们只需要简单地运行一个staker节点就可以躺着赚利息,本质上只是将自己在银行系统里的钱简单的转化为链上资本,就可以坐地收割后进入这个系统的新人。这种行为并没有太多难度,只是简单地赚取“无风险”利息,他们并没有将资本转化为任何形式的需要面临风险考验的投资。
而且当发生硬分叉时,PoW的Miner选择支持哪条链时会更为谨慎,因为他们需要投入高昂的电力成本来为他们的选择背书,一旦选错了将损失所有投入成本。PoS系统如果发生硬分叉,质押的coin作为系统内部状态的一部分,硬分叉后质押者将在两条不同链上都拥有相同数量的资产,由于没有什么沉默成本,导致质押者更愿意两边都支持,从而使硬分叉更容易且更频繁地出现,这被称为 nothing at stake 问题。
PoW是真正能做到无准入限制的(Permissionless),就是说已经在这个系统中的老人无法限制新人加入,只要你有能力提供算力,就能直接接入网络中产出coin。而PoS系统中,新人要进入,都不得不先从老人手中买coin。
而且PoW中Miner为了支付各种高昂成本(电力,设备,基础设施等),产出coin后也不得不卖出一些以弥补成本,这同时也是一种把coin分发给更多人的过程; 特别是在熊市,Miner为了维持开销也不得不低价贱卖coin,这样新人才有机会以相对低的成本获得筹码入场,这才是一个健康的生态扩张过程 。而PoS中由于质押者并没有什么运行成本,也不需要面对太多竞争,质押者出块得到coin后不需要急着卖出,更容易哄抬价格,其实会变相激励场内老人剥削新入场者,不给后来人更多机会;整个系统会趋向于更封闭,逐渐演变成一个有限游戏,长期运行下去只会越来越中心化;系统中财富越来越集中,富者更富,穷者更穷,从而更不可能实现 去中心化(Decentralization) 。
由于PoW系统中是以提供工作量的方式产出区块的,随着时间的推移这些工作量都会被累积起来并使链不断向前延伸,这也是为什么叫区块链;这些累积的工作量也给攻击者造成了巨大障碍,如果想要反转整条链,不仅需要非常高的算力,还需要相当长的时间,这也为应对攻击提供了足够长的时间缓冲。
而PoS系统其实只是维护一个分布式账本, 并没有工作量累积的概念,一旦攻击成功,要反转整条链就是相当容易的,几分钟就可以搞定。
严格来说由PoW算力支撑的BTC不应归为高科技类,由于它整个系统架构更保守更稳定,提供的更多的是一种 物化价值(objective costliness) ,更能作为价值之锚,所以数字黄金这个称号很贴切。而像ETH(目前还是PoW,2.0升级后为PoS)这些更接近科技类创新平台,PoS本质上更像是一种股权系统,其实PoS系统反而是需要中心化,偏向更依靠整个社区的生命力,需要依靠核心团队的创新与开拓能力往前走;而PoW则需要去中心化,更偏向稳定与提供 物化价值(objective costliness) 。
区块链作为一个价值分配系统, 算力是它的价值之锚,如果没有算力,就会退化为一个股权系统 。算力在哪,资金就会跟去哪。目前的发展趋势也是逐渐往多层网络的方向发展,类似TCP/IP的多层协议栈。从作为基础层(Base Layer)的角度看,更需要的是长期稳定与提供价值支撑,因此PoW系统更合适;而PoS可能更多的是可以作为Layer2以实现 可扩展性 (Scalability) ,弥补PoW基础层的吞吐量不足,并通过锚定在PoW基础层上来获取算力安全性与价值支撑。
最后顺带说下最近市场行情,5,6月份以来的瀑布令很多人很恐慌,恐慌指数一度长时间停留在个位数;其实我觉得也没必要那么恐慌,要在这个圈子长期活下去,面对这种大波动的心理预期还是要有的。想起之前红杉资本的沈南鹏经常提到一个词Grit,沙砾,它是砾石在千万次打磨后留下来的细小颗粒;Grit代表了勇气和持之以恒的一种坚持,有种经常被按地上摩擦但依然勇往直前的感觉。这个和塔勒布讲的反脆弱性有异曲同工之妙,承载价值的东西就应该具有这种品质,PoW系统肯定是有反脆弱性的。
回望2017年入圈后经历过的各种事件,其实像这样的大波动近乎每年都有(除了2019年一年比较顺利外);像2017年国内的94事件,2018年一整年的大熊市,2020的312事件,2021的519事件,再到2022今年的5,6月份市场转熊,每次经历大波动后,市场都会淘汰掉该淘汰的,出清掉该出清的风险,对整个行业发展也是好事。眼光还是应该放远一点,至少看5到10年后的变化,科技发展过程中所带来的波动和风险是不可避免的,日光之下无新鲜事,每次科技革命过程中总会夹杂着众多的反对、质疑,还有众多的投机、骗局;这个过程也总是通过各种暴雷、回归,清除泡沫后价值重估,夯实了基础后积蓄能量再次进入跃升到新的发展阶段。 价值互联网的到来是一件无法回避的事情 ,当理解和看清了这种趋势后,规避掉各种坑和市场噪音,远离合约杠杆和各种山寨的诱惑,握住核心资产,时间本身就会带来回报。
㈥ 区块链的共识机制
1. 网络上的交易信息如何确认并达成共识?
虽然经常提到共识机制,但是对于共识机制的含义和理解却并清楚。因此需要就共识机制的相关概念原理和实现方法有所理解。
区块链的交易信息是通过网络广播传输到网络中各个节点的,在整个网络节点中如何对广播的信息进行确认并达成共识 最终写入区块呢? 如果没有相应的可靠安全的实现机制,那么就难以实现其基本的功能,因此共识机制是整个网络运行下去的一个关键。
共识机制解决了区块链如何在分布式场景下达成一致性的问题。区块链能在众多节点达到一种较为平衡的状态也是因为共识机制。那么共识机制是如何在在去中心化的思想上解决了节点间互相信任的问题呢?
当分布式的思想被提出来时,人们就开始根据FLP定理和CAP定理设计共识算法。 规范的说,理想的分布式系统的一致性应该满足以下三点:
1.可终止性(Termination):一致性的结果可在有限时间内完成。
2.共识性(Consensus):不同节点最终完成决策的结果应该相同。
3.合法性(Validity):决策的结果必须是其他进程提出的提案。
但是在实际的计算机集群中,可能会存在以下问题:
1.节点处理事务的能力不同,网络节点数据的吞吐量有差异
2.节点间通讯的信道可能不安全
3.可能会有作恶节点出现
4.当异步处理能力达到高度一致时,系统的可扩展性就会变差(容不下新节点的加入)。
科学家认为,在分布式场景下达成 完全一致性 是不可能的。但是工程学家可以牺牲一部分代价来换取分布式场景的一致性,上述的两大定理也是这种思想,所以基于区块链设计的各种公式机制都可以看作牺牲那一部分代价来换取多适合的一致性,我的想法是可以在这种思想上进行一个灵活的变换,即在适当的时间空间牺牲一部分代价换取适应于当时场景的一致性,可以实现灵活的区块链系统,即可插拔式的区块链系统。今天就介绍一下我对各种共识机制的看法和分析,分布式系统中有无作恶节点分为拜占庭容错和非拜占庭容错机制。
FLP定理即FLP不可能性,它证明了在分布式情景下,无论任何算法,即使是只有一个进程挂掉,对于其他非失败进程,都存在着无法达成一致的可能。
FLP基于如下几点假设:
仅可修改一次 : 每个进程初始时都记录一个值(0或1)。进程可以接收消息、改动该值、并发送消息,当进程进入decide state时,其值就不再变化。所有非失败进程都进入decided state时,协议成功结束。这里放宽到有一部分进程进入decided state就算协议成功。
异步通信 : 与同步通信的最大区别是没有时钟、不能时间同步、不能使用超时、不能探测失败、消息可任意延迟、消息可乱序。
通信健壮: 只要进程非失败,消息虽会被无限延迟,但最终会被送达;并且消息仅会被送达一次(无重复)。
Fail-Stop 模型: 进程失败如同宕机,不再处理任何消息。
失败进程数量 : 最多一个进程失败。
CAP是分布式系统、特别是分布式存储领域中被讨论最多的理论。CAP由Eric Brewer在2000年PODC会议上提出,是Eric Brewer在Inktomi期间研发搜索引擎、分布式web缓存时得出的关于数据一致性(consistency)、服务可用性(availability)、分区容错性(partition-tolerance)的猜想:
数据一致性 (consistency):如果系统对一个写操作返回成功,那么之后的读请求都必须读到这个新数据;如果返回失败,那么所有读操作都不能读到这个数据,对调用者而言数据具有强一致性(strong consistency) (又叫原子性 atomic、线性一致性 linearizable consistency)[5]
服务可用性 (availability):所有读写请求在一定时间内得到响应,可终止、不会一直等待
分区容错性 (partition-tolerance):在网络分区的情况下,被分隔的节点仍能正常对外服务
在某时刻如果满足AP,分隔的节点同时对外服务但不能相互通信,将导致状态不一致,即不能满足C;如果满足CP,网络分区的情况下为达成C,请求只能一直等待,即不满足A;如果要满足CA,在一定时间内要达到节点状态一致,要求不能出现网络分区,则不能满足P。
C、A、P三者最多只能满足其中两个,和FLP定理一样,CAP定理也指示了一个不可达的结果(impossibility result)。
㈦ 深入了解区块链的共识机制及算法原理
所谓“共识机制”,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。再通俗一点来讲,如果中国一名微博大V、美国一名虚拟币玩家、一名非洲留学生和一名欧洲旅行者互不相识,但他们都一致认为你是个好人,那么基本上就可以断定你这人还不坏。
要想整个区块链网络节点维持一份相同的数据,同时保证每个参与者的公平性,整个体系的所有参与者必须要有统一的协议,也就是我们这里要将的共识算法。比特币所有的节点都遵循统一的协议规范。协议规范(共识算法)由相关的共识规则组成,这些规则可以分为两个大的核心:工作量证明与最长链机制。所有规则(共识)的最终体现就是比特币的最长链。共识算法的目的就是保证比特币不停地在最长链条上运转,从而保证整个记账系统的一致性和可靠性。
区块链中的用户进行交易时不需要考虑对方的信用、不需要信任对方,也无需一个可信的中介机构或中央机构,只需要依据区块链协议即可实现交易。这种不需要可信第三方中介就可以顺利交易的前提是区块链的共识机制,即在互不了解、信任的市场环境中,参与交易的各节点出于对自身利益考虑,没有任何违规作弊的动机、行为,因此各节点会主动自觉遵守预先设定的规则,来判断每一笔交易的真实性和可靠性,并将检验通过的记录写入到区块链中。各节点的利益各不相同,逻辑上将它们没有合谋欺骗作弊的动机产生,而当网络中有的节点拥有公共信誉时,这一点尤为明显。区块链技术运用基于数学原理的共识算法,在节点之间建立“信任”网络,利用技术手段从而实现一种创新式的信用网络。
目前区款连行业内主流的共识算法机制包含:工作量证明机制、权益证明机制、股份授权证明机制和Pool验证池这四大类。
工作量证明机制即对于工作量的证明,是生成要加入到区块链中的一笔新的交易信息(即新区块)时必须满足的要求。在基于工作量证明机制构建的区块链网络中,节点通过计算随机哈希散列的数值解争夺记账权,求得正确的数值解以生成区块的能力是节点算力的具体表现。工作量证明机制具有完全去中心化的优点,在以工作量证明机制为共识的区块链中,节点可以自由进出。大家所熟知的比特币网络就应用工作量证明机制来生产新的货币。然而,由于工作量证明机制在比特币网络中的应用已经吸引了全球计算机大部分的算力,其他想尝试使用该机制的区块链应用很难获得同样规模的算力来维持自身的安全。同时,基于工作量证明机制的挖矿行为还造成了大量的资源浪费,达成共识所需要的周期也较长,因此该机制并不适合商业应用。
2012年,化名Sunny King的网友推出了Peercoin,该加密电子货币采用工作量证明机制发行新币,采用权益证明机制维护网络安全,这是权益证明机制在加密电子货币中的首次应用。与要求证明人执行一定量的计算工作不同,权益证明要求证明人提供一定数量加密货币的所有权即可。权益证明机制的运作方式是,当创造一个新区块时,矿工需要创建一个“币权”交易,交易会按照预先设定的比例把一些币发送给矿工本身。权益证明机制根据每个节点拥有代币的比例和时间,依据算法等比例地降低节点的挖矿难度,从而加快了寻找随机数的速度。这种共识机制可以缩短达成共识所需的时间,但本质上仍然需要网络中的节点进行挖矿运算。因此,PoS机制并没有从根本上解决PoW机制难以应用于商业领域的问题。
股份授权证明机制是一种新的保障网络安全的共识机制。它在尝试解决传统的PoW机制和PoS机制问题的同时,还能通过实施科技式的民主抵消中心化所带来的负面效应。
股份授权证明机制与董事会投票类似,该机制拥有一个内置的实时股权人投票系统,就像系统随时都在召开一个永不散场的股东大会,所有股东都在这里投票决定公司决策。基于DPoS机制建立的区块链的去中心化依赖于一定数量的代表,而非全体用户。在这样的区块链中,全体节点投票选举出一定数量的节点代表,由他们来代理全体节点确认区块、维持系统有序运行。同时,区块链中的全体节点具有随时罢免和任命代表的权力。如果必要,全体节点可以通过投票让现任节点代表失去代表资格,重新选举新的代表,实现实时的民主。
股份授权证明机制可以大大缩小参与验证和记账节点的数量,从而达到秒级的共识验证。然而,该共识机制仍然不能完美解决区块链在商业中的应用问题,因为该共识机制无法摆脱对于代币的依赖,而在很多商业应用中并不需要代币的存在。
Pool验证池基于传统的分布式一致性技术建立,并辅之以数据验证机制,是目前区块链中广泛使用的一种共识机制。
Pool验证池不需要依赖代币就可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础之上,可以实现秒级共识验证,更适合有多方参与的多中心商业模式。不过,Pool验证池也存在一些不足,例如该共识机制能够实现的分布式程度不如PoW机制等
这里主要讲解区块链工作量证明机制的一些算法原理以及比特币网络是如何证明自己的工作量的,希望大家能够对共识算法有一个基本的认识。
工作量证明系统的主要特征是客户端要做一定难度的工作来得到一个结果,验证方则很容易通过结果来检查客户端是不是做了相应的工作。这种方案的一个核心特征是不对称性:工作对于请求方是适中中的,对于验证方是易于验证的。它与验证码不同,验证码是易于被人类解决而不是易于被计算机解决。
下图所示的为工作量证明流程。
举个例子,给个一个基本的字符创“hello,world!”,我们给出的工作量要求是,可以在这个字符创后面添加一个叫做nonce(随机数)的整数值,对变更后(添加nonce)的字符创进行SHA-256运算,如果得到的结果(一十六进制的形式表示)以“0000”开头的,则验证通过。为了达到这个工作量证明的目标,需要不停地递增nonce值,对得到的字符创进行SHA-256哈希运算。按照这个规则,需要经过4251次运算,才能找到前导为4个0的哈希散列。
通过这个示例我们对工作量证明机制有了一个初步的理解。有人或许认为如果工作量证明只是这样一个过程,那是不是只要记住nonce为4521使计算能通过验证就行了,当然不是了,这只是一个例子。
下面我们将输入简单的变更为”Hello,World!+整数值”,整数值取1~1000,也就是说将输入变成一个1~1000的数组:Hello,World!1;Hello,World!2;...;Hello,World!1000。然后对数组中的每一个输入依次进行上面的工作量证明—找到前导为4个0的哈希散列。
由于哈希值伪随机的特性,根据概率论的相关知识容易计算出,预计要进行2的16次方次数的尝试,才能得到前导为4个0的哈希散列。而统计一下刚刚进行的1000次计算的实际结果会发现,进行计算的平均次数为66958次,十分接近2的16次方(65536)。在这个例子中,数学期望的计算次数实际就是要求的“工作量”,重复进行多次的工作量证明会是一个符合统计学规律的概率事件。
统计输入的字符创与得到对应目标结果实际使用的计算次数如下:
对于比特币网络中的任何节点,如果想生成一个新的区块加入到区块链中,则必须解决出比特币网络出的这道谜题。这道题的关键要素是工作量证明函数、区块及难度值。工作量证明函数是这道题的计算方法,区块是这道题的输入数据,难度值决定了解这道题的所需要的计算量。
比特币网络中使用的工作量证明函数正是上文提及的SHA-256。区块其实就是在工作量证明环节产生的。旷工通过不停地构造区块数据,检验每次计算出的结果是否满足要求的工作量,从而判断该区块是不是符合网络难度。区块头即比特币工作量证明函数的输入数据。
难度值是矿工们挖掘的重要参考指标,它决定了旷工需要经过多少次哈希运算才能产生一个合法的区块。比特币网络大约每10分钟生成一个区块,如果在不同的全网算力条件下,新区块的产生基本都保持这个速度,难度值必须根据全网算力的变化进行调整。总的原则即为无论挖矿能力如何,使得网络始终保持10分钟产生一个新区块。
难度值的调整是在每个完整节点中独立自动发生的。每隔2016个区块,所有节点都会按照统一的格式自动调整难度值,这个公式是由最新产生的2016个区块的花费时长与期望时长(按每10分钟产生一个取款,则期望时长为20160分钟)比较得出来的,根据实际时长一期望时长的比值进行调整。也就是说,如果区块产生的速度比10分钟快,则增加难度值;反正,则降低难度值。用公式来表达如下:
新难度值=旧难度值*(20160分钟/过去2016个区块花费时长)。
工作量证明需要有一个目标值。比特币工作量证明的目标值(Target)的计算公式如下:
目标值=最大目标值/难度值,其中最大目标值为一个恒定值
目标值的大小与难度值成反比,比特币工作量证明的达成就是矿中计算出来的区块哈希值必须小于目标值。
我们也可以将比特币工作量的过程简单的理解成,通过不停变更区块头(即尝试不同nonce值)并将其作为输入,进行SHA-256哈希运算,找出一个有特定格式哈希值的过程(即要求有一定数量的前导0),而要求的前导0个数越多,难度越大。
可以把比特币将这道工作量证明谜题的步骤大致归纳如下:
该过程可以用下图表示:
比特币的工作量证明,就是我们俗称“挖矿”所做的主要工作。理解工作量证明机制,将为我们进一步理解比特币区块链的共识机制奠定基础。