共識演算法之開篇

2022-01-24 06:33:40 字數 853 閱讀 2812

初識共識演算法,還是在關注位元幣的時候。共識演算法是區塊鏈的核心,因此想要真正弄懂什麼是區塊鏈,首先就要理解什麼是共識演算法,為什麼要用共識演算法。

共識演算法並不是伴隨著位元幣的產生而出現的。

早在 2023年 adam back 就設計出了hashcash,可以認為是工作量證明的雛形,最初是為了預防垃圾郵件的。 

2023年satoshi nakamoto在位元幣上線時使用了一種工作量證明機制-pow,到後來以太坊為了防止位元幣pow造成的算力集中,設計和實現了基於記憶體的pow機制-ethash,再到後來為了減少pow電力浪費問題,出現了pos和dpos,以及基於bft的演算法,algrand等。 

粗略總結,共識演算法發展經歷了:pow -> pos -> bft以及他們的融合階段。但到目前為止由於pow本身的簡單性和安全性,仍然是開源公鏈的主流共識演算法~ 同時由於dpos在減少算力浪費和提公升tps方面的優勢,也被人們所接受和應用。

什麼是共識演算法?

簡單來說就是在乙個不可信網路中,通過大家投票的方式來對某個確定性結果達成一致,這是一種少數服從多數的方法。不管是pow、pos還是bft類共識演算法,本質上都是一種投票的方法。

1. 在pow中,當礦工挖到乙個塊後,需要迅速將塊公布到網路中,以使其他礦工得到確認,這裡投票的方式直觀上來看就是驗證區塊,如果合法就將區塊連線到區塊鏈的末端。

2. 在純pos共識中,節點不充當礦工的角色,也就是不需要挖礦,只需要打包自己的區塊,並一併提交本次作為出塊者的證明。其他節點首先驗證該證明有效,同時區塊合法,就認為該區塊是有效的。當然由於出塊不需要工作量證明,為了防止出塊節點作惡,pos共識一般會結合懲罰機制,該機制通過事後檢查的方式來懲罰作惡人,獎勵提供作惡證明的人。

未完待續……

演算法上路之開篇

題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1...

區塊鏈之共識演算法

在分布式系統中,為了使得整個系統正常工作,乙個非常核心的問題就是如何保證集群中所有節點中的資料完全相同並且能夠對發起的提案達成一致。共識演算法就是用來解決上述問題的的,從而保證分布式系統一致性的方法。共識的特性 終止性 termination 所有正常運作的程序 節點 最終會在有限步數中結束並作出決...

區塊鏈共識演算法之POW

pow,proof of work,即工作量證明,是著名公鏈bitcoin所採用的共識演算法。那麼pow到底是什麼玩意呢?簡單來說,pow就是乙個證明,證明你確實做了一定量符合要求的工作。通常 這份工作 做起來有些難度,但是驗證方卻很容易通過結果來驗證是否做了相應的工作。一句話介紹下位元幣的pow到...