導航:首頁 > 比特幣區 > 比特幣源碼工作量證明

比特幣源碼工作量證明

發布時間:2024-11-24 15:58:52

❶ 什麼是工作量證明

區塊鏈里很重要一個概念就是工作量證明,英文全稱為Proof of Work,縮寫為POW。相信很多人剛接觸到這個概念的時候都很費解,「 咦,工作量證明?意思是要證明我做了多少工作嗎? 」;我更相信很多投資比特幣或者被一些所謂的「 可以一夜暴富 」的「 新型數字貨幣 」所忽悠的投資人,對這個概念更加「 耳熟能詳 」,因為他們聽到太多那些「貨幣」宣稱自己有更安全的演算法、更可靠的工作量證明機制。 因為聽得多,似乎很懂,但就是不真正理解它,這種認知上的不對稱,往往是傳銷幣等妖物有機可趁的主要原因。

之前給大家介紹「拜占庭將軍問題」的時候,提到過拜占庭將軍解決的主要是多個節點之間如何取得共識的問題(如果你忘了當時的故事背景是怎樣,那再去好好翻翻之前的課程吧),但是並沒有深入介紹如何進行共識。如何進行共識,是區塊鏈里最關鍵的一個問題,也是被討論得最多的一個,在區塊鏈誕生之前,分布式系統領域里對共識演算法就有很多研究,但是這里並不打算展開了。

1、工作量證明真的是用來證明你做了多少工作

其實,正如本文第一段提到的,很多人剛開始理解的那個概念,「工作量證明主要用來證明一個人做了多少工作」,基本是正確的,計算機領域並不是只有一些生澀的概念的,這個概念通俗易懂,反倒讓我們困惑了。

還是要回到拜占庭將軍問題的故事場景,在那個故事裡,我們應該信任誰,誰能擔此大任成為那個英雄卓絕的將軍呢?

可能因為城邦之間信息在不斷傳輸,傳輸量太大,每個城邦的將軍都王婆賣瓜,自賣自誇,到底該信任誰,基本上很難區分。細心的朋友可以好好發揮一下想像力。其實,有種最簡單粗暴的方法: 看誰最聰明!誰最聰明,我們就相信誰。

誰最聰明這個問題其實太主觀了,沒辦法,只能拿實力說話。就像我們經歷過無數的考試一樣——來,將軍們,大家做道題吧,解答准確且最快的人勝出。

於是,智多星旁白:請聽題兒, 請問在一個值比如123456789,後面追加一個5位隨機數,請找到一個隨機數,使得所計算的哈希值前5位都是0。

將軍們千萬不要懵逼,你不知道並不代表別人不知道,於是那個最聰明的將軍快速的算了出來,並 寫上自己的名字 ,交了試卷。老師一驗證,完全正確,於是選出他作為那個拜占庭將軍,號令群雄。

如果你不知道哈希演算法,請回去復習之前的課程。另外,這里提醒一點,將軍必須寫上自己的名字表明是自己算對的這道題,這在區塊鏈里也很重要,它表示簽名表明自己勝出,最後還能獲得獎勵喲。

以上介紹的這個有的意思的過程,就是所謂的工作量證明。

2、怎麼理解挖礦礦機礦池

工作量證明最常見是在比特幣里,當大家還不太理解這個玩意兒的時候,已經很多地方見到「挖礦」「礦機」這些宣傳字眼了,那個時候我們根本不能理解的是,在電腦裡面怎麼挖礦?腦洞完全打不開啊。我也困惑了很久,當在淘寶上看到有人賣礦機的時候,我一臉鄙夷,說這一定是忽悠。

很多時候鄙視其實更多是自己不理解造成的,直到它長成龐然大物,直到羅胖提到的「旁邊有個物種坐了起來」,才發現我們理解地似乎有點晚了。即便如此,我們不能因此放棄對一個新鮮事物的認識呀。

所謂挖礦,其實就是計算機對上面提到的工作量證明進行的一個運算過程。大家或許會奇怪,將軍算題這么高大上的一個比喻到了這里怎麼變成挖礦這么苦逼的一個概念呢?其實,拜占庭將軍只是以一種有趣的方式描述了故事背景,及工作量證明的一些細節,而挖礦更貼近區塊鏈里工作量證明的一個過程——因為,確實很苦逼!

其實,上面提到的「智多星」或者「老師」,就是那個神秘人物中本聰,比特幣的發明人(或組織)。中本聰出的這道難題說白了就是一個傻瓜式地,只能吭哧吭哧,老老實實地,從1,2,3...n不斷嘗試計算的一個計算題,也即密碼學里提到的 暴力破解 的概念。這種計算過程,枯燥乏味,耗費精力時間,這么苦逼,用「挖礦」形容最好不過了。而這個「礦」就是比特幣,一種如黃金般稀缺的玩意兒。

但是我們不要忘了,這種機械化的計算是計算機最擅長的事兒了,於是所有的都交給計算機吧,這才有了「礦機」的概念。隨著技術的發展,大家發現,計算機功能太強大,完全沒有必要全部用來進行這種計算,於是不斷精簡,將挖礦演算法集成到一些晶元里,不僅節省能源,而且算得更快。這就有了CPU挖礦,GPU挖礦,FPGA挖礦,ASIC挖礦等這類說法。

而礦池的出現,是隨著比特幣數量的總數限制,以及四年減半的硬性要求,挖礦到後期競爭越來越激烈,挖到比特幣的難度越來越大,於是只能抱團並肩作戰,這個團體就叫做「礦池」。有礦機的人可以選擇加入某個礦池,礦池集合所有礦機的力量,進行類似上面算術難題的計算;在計算時,將隨機數號碼段進行分配,不同號碼段交給不同的礦機計算,於是計算的效率大大提升,這樣便可以集合作戰,共享收益。

其實上面介紹的一些概念都非常初級,目的還是希望很多沒有相關基礎的人都能搞懂,只有把這些最基本的概念都理解了,走到後面才更容易,不是嗎?

❷ 比特幣的工作量證明要怎麼理解

客戶端不需要知道真正的隨機數,客戶端(也是系統)其實就是要「隨機數」所求的哈希值小於某個值。
如:041665464(隨機數)的SHA256的值是:(16進制)0FFFFFFFFFF...(假如)
它不符合小於00FFFFFFFF的規定,所以不是區塊。
041665465(隨機數)的SHA256的值是:(16進制)000FFFFFFFF...(假如)
它符合小於00FFFFFFFF的規定,所以它是區塊。

實際上找小於一個哈希值的隨機數很難的,這正是工作量證明的原理。
要小於的這個值(00FFFF...)是可變的(難度),這個隨時間和計算力的大小而變化。

❸ 什麼是工作量證明

工作證明(Proof Of Work,簡稱POW),顧名思義,即工作量的證明。通常來說只能從結果證明,因為監測工作過程通常是繁瑣與低效的。
比特幣在Block的生成過程中使用了POW機制,一個符合要求的Block Hash由N個前導零構成,零的個數取決於網路的難度值。要得到合理的Block
Hash需要經過大量嘗試計算,計算時間取決於機器的哈希運算速度。當某個節點提供出一個合理的Block
Hash值,說明該節點確實經過了大量的嘗試計算,當然,並不能得出計算次數的絕對值,因為尋找合理hash是一個概率事件。當節點擁有佔全網n%的算力時,該節點即有n/100的概率找到Block
Hash。
工作證明機制看似很神秘,其實在社會中的應用非常廣泛。例如,畢業證、學位證等證書,就是工作證明.

❹ FileCoin: 有用的工作量證明

有用的工作量證明(Proof of Useful Work)是由著名的去中心化存儲項目 FileCoin 在它的白皮書里提出來的一個概念。工作量證明,Proof of Work,POW 是實現區塊鏈的一個重要共識方式,FileCoin 要實現一個基於區塊鏈的存儲平台。所以它也要做共識,它選擇的就是工作量證明共識。

首先我們來解釋一下常規的工作量證明。它是區塊鏈實現共識的一種方式。是比特幣採用的方式,所以,工作量證明就是俗稱的「挖礦」。比特幣做為一個去中心化的點對點交易系統,要在不同的節點上維護一個共同的完全相同的帳本,來記錄所有的交易,而且確保交易不會重復,不會一筆錢多花,就需要一個維護這個賬本一致性的規則。大家一起遵守這個規則,就是共識。區塊鏈常用的方法是,把這個賬本分成很多頁,每個頁就是一個區塊。每個區塊由一個節點來記賬,然後分發給其他節點復制,這樣所有節點上的賬本都是一樣的。但是每個區塊都由哪個節點來記錄,就需要一個大家都能遵守的規則。比特幣採用的方法,是讓所有的節點做一道簡單的數學題,題目很簡單,但是計算量很大,一般要10分鍾左右才能做出答案來。得到答案雖然很費時間,但是驗證答案是否正確很容易。然後所有的節點同時做題,第一個做出來的節點,就得到下一個區塊的記賬權。因為每個區塊都只有唯一一個最早做出題的節點,所以,每個區塊的記賬權是唯一的,而且也是很容易被其他節點驗證的。節點一旦驗證到其他節點得到了區塊記賬權,就必須復制區塊,加到本地區塊鏈中,同時開始下一個區塊記賬權的競爭。通過這種方式,比特幣就能確保所有節點的區塊鏈是一致的。

節點通過大量計算競爭區塊記賬權的的過程,就是工作量證明。所以,工作量證明系統(或者說協議、函數),是一種應對拒絕服務攻擊和其他服務濫用的經濟對策。它要求發起者進行一定量的運算,也就意味著需要消耗計算機一定的時間。這個概念由 Cynthia Dwork 和 Moni Naor 1993 年在學術論文中首次提出。而工作量證明(POW)這個名詞,則是在 1999 年 Markus Jakobsson 和 Ari Juels 的文章中才被真正提出。

實現區塊鏈共識的方式還有很多,如POS,DPOS,POA,PBFT等等,但是工作量證明是唯一被時間驗證過(11年)的在公鏈上運行的區塊鏈共識機制。

工作量證明存在一個什麼樣的問題呢?還是用比特幣為例。比特幣節點為了獲取出塊權做得那個數學題,叫哈希運算。計算量非常大,每一台參與比特幣挖礦的礦機都要時刻進行這個計算,耗費大量的電力。這個計算不像其他的如大數據處理的計算,可以產生一些價值,它的唯一目的,就是競爭出一個節點,成為下一區塊的出塊者。目前比特幣每年消耗電量約25.5億瓦,這相當於全球電量的0.5%,是愛爾蘭一年的耗電量。反對POW的人紛紛指責挖礦將電力資源浪費在虛無縹緲的數字貨幣上,還稱之為自由主義的「泔水」。

但是,認為POW是浪費的電的人不知道,正是能源和算力打造了比特幣安全不可攻破的體系。

一張100元的現金不只是你我認為他值100,而是整個社會群體都認為他值100,價值就是來自於共識。比特幣是社區行為,來自不同國家的人聚集到社區,用互聯網來建立秩序,它的意義也是來自於群體共識,只要大家都相信比特幣有價值,只共識存在,那麼他就有價值,和法幣一模一樣。所以產生價值認同並不一定需要國家來驅動,比特幣改革了一種傳遞信任的載體和媒介,千百年來,人類社會通過多少流血戰爭建立的政權和共識,現在兵不血刃,只是耗費些電力就實現,豈不是更先進。

總結而言,要想設計一個去中心化而且安全的數字貨幣,能源和算力是必要的代價。工作量證明是以去中心化形式構建安全產權認證系統的唯一方案。所以認為POW是浪費的電的人不知道,正是能源和算力打造了比特幣安全不可攻破的體系。現在比特幣全網算力已經達到一個非常恐怖的地步,任何人想要發動51%算力攻擊已經是不可能的事情了,POW演算法使比特幣系統牢不可破。

為締造價值而產生的消耗不叫浪費。

但是,如此多的算力,是否可以用來創造更多的價值呢?用 FileCoin 的話說,工作量證明,還有沒有其他用途呢?

FileCoin 是分布式存儲行業的明星項目。他的開發團隊 Protocol Lab 就是開發 IPFS 協議的團隊,以至於很多人都分不清FileCoin 和 IPFS 的區別。可以說是2017年 FileCoin 的1CO,把這個行業推向巔峰,也引出了一系列的同類型項目。本文無意於贊譽或者貶低這個項目,只想結合自己從事這個行業的經驗,表達一些自己的觀點,盡量做到客觀公正。希望對從事這個行業的人有一些啟發。

FileCoin 在白皮書中提出要實現一個有用的工作量證明,實際上就是認可了,要打造一個安全不可攻破的區塊鏈,就必須消耗工作量。但是,他們不希望為這個工作量做出的計算完全被浪費,所以想把這個工作量利用起來。所以,他們想到的方法是,在工作量證明裡加入存儲空間的使用率。這樣,所有的節點為了形成共識,就必須提供存儲空間來存文件。這個存儲空間就可以存用戶數據,就是有用的。

那我們來看一下FileCoin是怎樣實現這種有用的工作量證明共識的。

Filecoin採用的共識機制並不是簡單的工作量證明,而是一種叫做預期共識(Expected Consensus,簡稱 EC)的機制。和其他主流共識機制目標一樣,讓礦工爭奪某一個高度唯一的出塊權而獲得獎勵。這個獲得出塊權的礦工叫做 Leader。在每一輪的出塊爭奪中,為了保證賬本的可靠性,都有一個唯一的 leader 來進行記賬。

也就是說,共識的核心就是選擇誰來當 Leader。選 Leader 的方式一般有兩種,互動式或者非互動式。互動式是要礦工之間互相投票的。比如 PBFT 就是互動式的,幾個參與選舉的人通過互發信息,得到多數票( 超過 2/3 )的人就是 Leader。預期共識採用了非互動式的方式來選舉 Leader。參與的各方根本不給彼此發消息,而是每個節點各自獨立私下進行運算。最後某個節點說,我贏得了選舉,然後提供一個證明,其他人可以很容易就驗證,他確實贏得了選舉。這個驗證方法就是零知識證明。

預期共識機制會為區塊鏈網路預設一個出塊的期望值。比如每1個紀元(epoch)生成1個區塊(block),但也有一個紀元可能出現空塊或多個區塊的情況。所以在 Filecoin 中,每個高度不是一個區塊,而是一個區塊集,叫做 TipSet,這個 TipSet 中可能包含了多個區塊。所以實際上 Filecoin 是 TipSet 鏈。預期共識無法保證每一輪只選舉出一個 Leader,所以會出現一輪中有多個 Leader 的可能,這樣鏈式結構就變成了DAG的網狀結構。所以 FileCoin 還會對 block 賦權重,實現有效收斂。

FileCoin 採用的 EC 共識有一個好處。對於傳統的 POS 共識機制來說,有一個重大問題就是無法控制分叉。也就是說,由於挖礦成本低,參與者可以同時挖多個鏈獲取利益。而預期共識對這一點做了設計,那就是通過權重和抵押機制來促使礦工選擇一條最好的鏈,對同時挖多個鏈的礦工進行懲罰,這樣可以非常快速地促進收斂。這說明 POW 和 POS 共同使用會是一種好的方式。

每一個礦工獲得出塊的可能與其當前有效存儲量佔全網總存儲量正相關。這種期望共識機制其實是更像是 POS 權益證明,只是它將POS里邊的權益(Staking)換成了有效存儲佔比。但是礦工的有效存儲從何而來呢?是通過存儲用戶數據得來。如何證明礦工存儲了用戶的數據,FileCoin 創造出一個新的證明機制叫 POST 時空復制證明。這個 POST 就是 FileCoin 的工作量了。把耗電的算力換成存儲有用數據的存儲空間,無意義的軍備競爭變成了存儲服務市場競爭。這確實是 FileCoin 的進步之處。只不過,為了成功的出塊,礦工通過預期共識被選為出塊節點後,必須在一個塊的時間里(現在是45秒)做個 POST 證明,成功提交,才能出塊。否則就失去機會。所以,為了確保礦工能在指定時間內出塊,最終官方還是決定要使用 GPU。雖然這 GPU 不是像工作量證明那樣一直不停的工作,但是在整個實現共識的過程中還是出現了跟有用的工作量證明思想相違背的耗能計算。

還有,談到預期共識的時候,我們說到每一個紀元出塊都不是一個塊,而是一組塊,那麼紀元這個概念就很重要了。怎麼控制紀元呢?每個礦工在參與選舉前,需要先生成一個 Ticket,這個 Ticket 實際上是一個隨機數,他需要走一個 VDF 和 VRF 的流程,這個 VDF 全稱 Verifiable Delay Function,可驗證的延時函數。他的計算流程是串列的,需要花費一定的時間,並且這個時間無法通過多核並行的方式進行縮減。這保證了每個礦工產生 Ticket 時必須要消耗的時間,沒有人可以通過優化硬體的方式來獲得加速。聽上去這函數很完美,可是,這個 VDF 根本還不存在!現在 FileCoin 測試網直接使用了一個等待函數 sleep,這是 UDF,Unverifiable Delay Function。現在最接近的 VDF 解決方案,也是需要消耗大量計算資源的。說白了,還是要耗電,還是不環保。

所以,有用的工作量證明,依然只是一個美好的願望,理想很豐滿,但現實很骨感。被譽為下一個比特幣的 FIL,還要繼續為實現這個顛覆性的共識而努力。

總結一下FileCoin存儲礦工獲取激勵的流程:用戶存儲數據,支付FIL費用 -> 礦工存儲數據 -> 生成復制證明 -> 完成時空證明 -> 經過EC共識,選出出塊Leader -> 獲取打包權 -> 礦工獲取FIL獎勵

在這個流程圖上,可以看到,礦工可以在兩個地方獲取獎勵。一個是存儲用戶文件的時候可以得到用戶的FIL獎勵。一個是在獲取區塊打包權後獲得FIL。而得到區塊打包權的一個前提就是存有足夠多的用戶數據。所以,在存儲需求不夠大的情況下,礦工會從用戶那裡收取很低廉的費用。在用戶不夠的情況下,甚至會倒貼錢自己付FIL存數據,只為能夠存足夠多的數據,在 EC 共識中被選成 Leader 得到打包獎勵。這樣產生的效果是,FileCoin 對用戶非常友好,存儲費用非常低。所以,一定會吸引很多的應用來這個平台上做開發。但是缺點也很明顯,如果存儲量不夠大,礦工根本沒法跟其他人爭奪出塊權,所以得不到獎勵。最後整個平台會朝著大礦工,大礦池的方向發展,這跟 FileCoin 想把所有閑散伺服器利用起來實現分布式存儲的初衷是違背的。或者說,一定要等到這個行業具有一定規模,技術更成熟,才有小礦機挖礦的機會。

我們先來簡單的講一講中心化存儲和去中心化存儲各自的利弊。中心化存儲設備統一管理,可靠性好,性能高,去中心化存儲數據天然分散,易於流通,容災性好,但是可靠性低。從經濟角度來說,中心化存儲是重資產投入,成本高。去中心化存儲通過區塊鏈激勵層,用戶自行加入,輕資產,可降低存儲總成本。未來應用數據的存儲和處理還會是以中心化存儲為主,而去中心化存儲因為是分布式網路,主要可用於熱門數據流量分發。同時,因為沒有中心化所有權,可以成為去中心化應用的首選。

市場上有一種說法是,去中心化網路適合冷數據的備份,其實這並不是去中心化存儲的優點,實在是因為把熱數據放到去中心化網路上太不可靠,處理性能也跟不上。所以,如果去中心化存儲能實現一定的規模效應,大大降低存儲成本,把冷數據備份當作核心業務,並把目標定位在今天因為成本太高沒被企業存儲的冷數據,會是一個很好的發展方向。

如此說來,從技術上講,去中心化存儲並不一定比中心化存儲有優勢。如果能推行一種新的模式,把去中心化的經濟激勵和中心化的存儲合在一起,就能吸收兩者的長處。真正實現有用的工作量。FileCoin 未來可能促成的大礦場模式的數據中心,可能更有市場。

在11年後的今天,比特幣並沒有實現它成為一個點對點的電子支付貨幣的初衷,但阻止不了人類前赴後繼的去買它,擁有它。同樣,我相信 FileCoin 已經得到足夠大的社群,礦工和開發者的支持,即使在可預見的未來,它不會促成分布式存儲應用的全面落地(也許這從來不是 FileCoin 的目標),但我還是相信會有很多人會因為它的共識去購買它,持有它。上升到哲學層面,人類在為真理買單。

那麼在實際生活中,何為有用,或者說,我們到底是在用存儲做共識還是用共識做存儲?FileCoin 是前者。FileCoin 想要基於存儲工作量實現的去中心化的共識,理論上是完美的,追求完美,人類是要付出代價的。這也是為什麼在這個項目上我們等待了這么長的時間。但是一旦實現,它可能會為人類帶來巨大價值,對市場帶來無窮大的號召力。

只不過去中心化不是萬物的靈葯。中心化的一個最大優勢是它的效率非常高。像dPOS或者聯盟鏈這樣的弱中心化共識兼顧兩者優勢,能更快速的把應用推向市場,提前啟動分布式存儲行業,推進分布式存儲應用落地。所以,我們既追求用存儲做共識,也追求用共識做存儲,根據實際需求來做出我們的選擇。在這個過程中,相信區塊鏈也會進一步發展,逐步優化,變得越來越有用。

❺ 工作量證明機制(pow)是什麼

工作證明(Proof Of Work,簡稱POW),顧名思義,即工作量的證明。通常來說只能從結果證明,因為監測工作過程通常是繁瑣與低效的。
比特幣在Block的生成過程中使用了POW機制,一個符合要求的Block Hash由N個前導零構成,零的個數取決於網路的難度值。要得到合理的Block Hash需要經過大量嘗試計算,計算時間取決於機器的哈希運算速度。當某個節點提供出一個合理的Block Hash值,說明該節點確實經過了大量的嘗試計算,當然,並不能得出計算次數的絕對值,因為尋找合理hash是一個概率事件。當節點擁有佔全網n%的算力時,該節點即有n/100的概率找到Block
Hash。
工作證明機制看似很神秘,其實在社會中的應用非常廣泛。例如,畢業證、學位證等證書,就是工作證明,擁有證書即表明你在過去投入了學習與工作。生活大部分事情都是通過結果來判斷的。

閱讀全文

與比特幣源碼工作量證明相關的資料

熱點內容
洪蜀寧比特幣 瀏覽:66
數字貨幣與數學貨幣的區別 瀏覽:858
windows更新比特幣 瀏覽:282
以太坊錢包更新慢 瀏覽:928
比特幣第一年多少用戶 瀏覽:771
華擎h61probtc裝顯卡 瀏覽:205
eosbtc是什麼幣 瀏覽:912
btc分叉何時結束 瀏覽:98
比特幣怎麼領糖果 瀏覽:835
虛擬貨幣用英語怎麼說 瀏覽:597
礦機算力板維修論壇 瀏覽:263
擁有100p算力 瀏覽:989
比特幣源碼工作量證明 瀏覽:669
吉比特bd幣 瀏覽:88
btc合約對賭 瀏覽:733
比特幣礦工在給誰工作 瀏覽:90
比特幣礦機商城哪家靠譜 瀏覽:972
btc日均線怎麼看 瀏覽:954
以太坊比特幣通道 瀏覽:737
中國比特幣hsr會停幣么 瀏覽:710