㈠ 區塊鏈的共識機制是什麼
所謂共識,簡單理解就是指大家都達成一致的意思。
在區塊鏈中,其實就是一個規則,每個節點都按照這個規則去確認各自的數據,最後維護整個網路的資料庫保持一致。
如果以生活中的例子來舉例的話,比如今天公司開個會議,但是由於老總不在,需要大家討論決定一個項目做與否。
在這么一個群龍無首的環境中?
㈡ 區塊鏈需要關注的核心邏輯問題
區塊鏈需要關注的核心邏輯問題
區塊鏈是去中心、去中介、點對點的交易處理體系,是全網驗證、全網記錄、不可逆轉、難以篡改、可以溯源、公開透明的分布式帳戶體系,這是到目前區塊鏈定義兩個主要的內容。但是如果按照去中心、去中介、點對點交易這個標准去卡,很多人所說的運用了區塊鏈,那基本上都不是。因為現在幾乎沒有真正去中心的區塊鏈應用。很多人說區塊鏈將是信任的機器,是價值的互聯網,區塊鏈將再造生產關系、經濟組織、運行模式,將顛覆法定貨幣體系,顛覆復式記賬法,甚至將出現人人可發幣、人人自金融、人人自組織的全新的社會。是不是這樣?
今天我想給大家就在這么熱的氛圍裡面,我們怎麼看區塊鏈,怎麼抓住它的核心邏輯,避免出現顛覆式的重大錯誤做一點交流。
這里主要是基於比特幣區塊鏈來看。
第一個就是比特幣這一類的加密數字貨幣能不能成為真正的貨幣,這一類的數字貨幣能不能顛覆法定貨幣體系。
我們知道貨幣在人類社會存續了幾千年,不斷地演進,從最初的實物貨幣到規制化的金屬貨幣,再到金屬本位下的紙幣,再到去金屬本位的信用貨幣。不斷地演進到今天它的邏輯和規律是什麼,這是正需要我們去准確把握的。
貨幣在演化過程裡面,特別是出來紙幣以後,人們逐步發現貨幣的功能越來越多,貨幣的影響力越來越大,但是它最重要、最核心的功能是價值尺度。
要發揮價值尺度的功能,最基本的要求是幣值一定要相對穩定。要做到幣值相對穩定,理論上必須是一個國家的貨幣總量要與這個國家主權范圍內法律可以保護的能夠貨幣化的財富規模相對應。也就是說貨幣總量和財富規模要對應。
怎麼對應呢?不可能一個個完全對應,所以就出來一個中介目標的概念。有一個全社會消費物價總指數的概念,所謂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個數越多,難度越大。
可以把比特幣將這道工作量證明謎題的步驟大致歸納如下:
該過程可以用下圖表示:
比特幣的工作量證明,就是我們俗稱「挖礦」所做的主要工作。理解工作量證明機制,將為我們進一步理解比特幣區塊鏈的共識機制奠定基礎。