比特幣求工作量證明
㈠ 什麼是工作量證明機制(POW)
工作量證明機制(POW)不難理解,很多情況下我們都使用POW,只是不自知而已。在不考慮驗證的情況下(無論是中心化還是非中心化的驗證),我們可以認為任何具有概率性事件的累計都是工作量證明,如淘金。假設礦石含金量為p%質量,當你得到一定量黃金時,我們可以認為你一定挖掘了1/p 質量的礦石。而且得到黃金數量越多,這個證明越可靠。
在一個簡單的釣魚游戲里,如果釣到魚的概率是較小的,我們可以認為玩家持有一定數量的魚就相當於完成了一定量的釣魚工作,從而可以認為玩家完成了釣魚任務。
一個人具有的一些技能如外語口語,樂器或是運動技巧,通常也是一種工作量證明。不用檢查四六級證書,一個人能流利的說外語或者演奏樂器,那麼TA一定在這些技能上投入了足夠的工作量,而且這個工作量與技能的熟練程度是正相關的。數字貨幣交易平台「幣匯」。
再說這四六級證書,一般認為在不能作弊的考試里採用足夠多的客觀題,也可以做到工作量證明的效果,因為一個人從概率上不可能連續蒙對大量的客觀題。因此一般認為文憑也是有說服力的。同樣的,飛行員的飛行小時數也說明問題,如果你飛了一萬小時還活著,大概率就不是靠運氣。
在一些其他場合我們也可以見到POW的蹤影,比如電子游戲里的勝率、K/D比率,在大量的交戰中一定的勝率能說明玩家的實力。同樣有些游戲里的成就系統、裝備體系也是POW,一般認為成就點數高的玩家在游戲里投入更多,更不容易詐騙,有時候交易點卡要求裝備等級或者成就點數也是這個道理。
因此,POW要求出示一定的證明表明工作量,證明可以是直接記錄也可以是以概率表示,其中對於由小概率事件累計的工作,出示結果等同於證明了工作量(因為不太可能直接得到小概率結果)
在比特幣和其他類比特幣的系統中,POW系統是以合乎要求的HASH作為工作結果。由於礦工要取得合法的計算結果需要一定量的計算,因此得到合法的計算結果就可以證明完成了一定量的計算。
㈡ 比特幣的工作量證明要怎麼理解
客戶端不需要知道真正的隨機數,客戶端(也是系統)其實就是要「隨機數」所求的哈希值小於某個值。
如:041665464(隨機數)的SHA256的值是:(16進制)0FFFFFFFFFF...(假如)
它不符合小於00FFFFFFFF的規定,所以不是區塊。
041665465(隨機數)的SHA256的值是:(16進制)000FFFFFFFF...(假如)
它符合小於00FFFFFFFF的規定,所以它是區塊。
實際上找小於一個哈希值的隨機數很難的,這正是工作量證明的原理。
要小於的這個值(00FFFF...)是可變的(難度),這個隨時間和計算力的大小而變化。
㈢ 比特幣演算法原理
比特幣演算法主要有兩種,分別是橢圓曲線數字簽名演算法和SHA256哈希演算法。
橢圓曲線數字簽名演算法主要運用在比特幣公鑰和私鑰的生成過程中,該演算法是構成比特幣系統的基石。SHA-256哈希演算法主要是運用在比特幣的工作量證明機制中。
比特幣產生的原理是經過復雜的運演算法產生的特解,挖礦就是尋找特解的過程。不過比特幣的總數量只有2100萬個,而且隨著比特幣不斷被挖掘,越往後產生比特幣的難度會增加,可能獲得比特幣的成本要比比特幣本身的價格高。
比特幣的區塊由區塊頭及該區塊所包含的交易列表組成,區塊頭的大小為80位元組,由4位元組的版本號、32位元組的上一個區塊的散列值、32位元組的 Merkle Root Hash、4位元組的時間戳(當前時間)、4位元組的當前難度值、4位元組的隨機數組成。擁有80位元組固定長度的區塊頭,就是用於比特幣工作量證明的輸入字元串。不停的變更區塊頭中的隨機數即 nonce 的數值,並對每次變更後的的區塊頭做雙重 SHA256運算,將結果值與當前網路的目標值做對比,如果小於目標值,則解題成功,工作量證明完成。
比特幣的本質其實是一堆復雜演算法所生成的一組方程組的特解(該解具有唯一性)。比特幣是世界上第一種分布式的虛擬貨幣,其沒有特定的發行中心,比特幣的網路由所有用戶構成,因為沒有中心的存在能夠保證了數據的安全性。
㈣ 工作量證明機制(pow)是什麼
工作證明(Proof Of Work,簡稱POW),顧名思義,即工作量的證明。通常來說只能從結果證明,因為監測工作過程通常是繁瑣與低效的。
比特幣在Block的生成過程中使用了POW機制,一個符合要求的Block Hash由N個前導零構成,零的個數取決於網路的難度值。要得到合理的Block Hash需要經過大量嘗試計算,計算時間取決於機器的哈希運算速度。當某個節點提供出一個合理的Block Hash值,說明該節點確實經過了大量的嘗試計算,當然,並不能得出計算次數的絕對值,因為尋找合理hash是一個概率事件。當節點擁有佔全網n%的算力時,該節點即有n/100的概率找到Block
Hash。
工作證明機制看似很神秘,其實在社會中的應用非常廣泛。例如,畢業證、學位證等證書,就是工作證明,擁有證書即表明你在過去投入了學習與工作。生活大部分事情都是通過結果來判斷的。
㈤ 比特幣為什麼採用工作量證明(POW)來產生區塊
防偽。
這個跟進化論一樣,主鏈是通過不斷篩選共識後得出來的,累計的運算量高,想要偽造主鏈,必須付出更高昂的代價(全網一半的算力)。比如說比特幣現在挖礦用的電量已經和新加坡的國家電量持平。 你想偽造必須付出一半新加坡的發電量
㈥ 什麼是工作量證明
工作量證明(Proof Of Work,簡稱POW),簡單理解就是一份證明,用來確認你做過一定量的工作。監測工作的整個過程通常是極為低效的,而通過對工作的結果進行認證來證明完成了相應的工作量,則是一種非常高效的方式。比如現實生活中的畢業證、駕駛證等等,也是通過檢驗結果的方式(通過相關的考試)所取得的證明。
權益證明機制
POW是達成共識的一種方式,不過他不是唯一的方式,還可以有其他的方式讓各個節點達成共識,例如POS。
POS不同於POW之處在於,在POS系統上挖礦是以貨幣持有數量為基礎,換句話說,在POS的情況下,一個人擁有虛擬貨幣的5%和在比特幣系統上擁有系統5%的算力的效果是一樣的。
工作量證明的基本原理工作量證明系統主要特徵是客戶端需要做一定難度的工作得出一個結果,驗證方卻很容易通過結果來檢查出客戶端是不是做了相應的工作。這種方案的一個核心特徵是不對稱性:工作對於請求方是適中的,對於驗證方則是易於驗證的。它與驗證碼不同,驗證碼的設計出發點是易於被人類解決而不易被計算機解決。下圖表示的是工作量證明的流程:
舉個例子,給定的一個基本的字元串"Hello, world!",我們給出的工作量要求是,可以在這個字元串後面添加一個叫做nonce的整數值,對變更後(添加nonce)的字元串進行SHA256哈希運算,如果得到的哈希結果(以16進制的形式表示)是以"0000"開頭的,則驗證通過。為了達到這個工作量證明的目標。我們需要不停的遞增nonce值,對得到的新字元串進行SHA256哈希運算。按照這個規則,我們需要經過4251次計算才能找到恰好前4位為0的哈希散列。
.工作量證明的過程 我們可以把比特幣礦工解這道工作量證明迷題的步驟大致歸納如下: 生成Coinbase交易,並與其他所有準備打包進區塊的交易組成交易列表,通過Merkle Tree演算法生成Merkle Root Hash 把Merkle Root Hash及其他相關欄位組裝成區塊頭,將區塊頭的80位元組數據(Block Header)作為工作量證明的輸入 不停的變更區塊頭中的隨機數即nonce的數值,並對每次變更後的的區塊頭做雙重SHA256運算(即SHA256(SHA256(Block_Header))),將結果值與當前網路的目標值做對比,如果小於目標值,則解題成功,工作量證明完成。 該過程可以用下圖表示:
比特幣的工作量證明,就是我們俗稱「挖礦」所做的主要工作。理解工作量證明機制,將為我們進一步理解比特幣區塊鏈的共識機制奠定基礎。
㈦ 區塊鏈挖礦工作量證明是什麼
POW的拼法是Proof of Work(工作證明)。簡單說就是需要干非常多的苦力,才能獲得相對優厚報酬的工作模式。
礦工們在挖一個新的區塊時,必須對SHA-256密碼散列函數進行運算,區塊中的隨機散列值以一個或多個0開始。隨著0數目的上升,找到這個解所需要的工作量將呈指數增長,礦工通過反復嘗試找到這個解。
最先算出正確答案的礦機可獲得當前區塊的記賬權,同時獲得新發行比特幣的獎勵。理論上來說,算力(力氣)越大,算(搬)得越快,收益值就越高。這個你們應該看得懂的說,POW 的意思就是按勞分配,多勞多得。目前,幣界老大哥比特幣、現在的二哥以太幣等都是這種模式。
㈧ 比特幣中怎麼證明是自己挖礦成功,而不是其他人呢
我們知道了信息計算Hash打包的過程:交易記錄、時間、賬本序號、上一個Hash值。也知道所有的計算和存貯是需要消耗計算機資源。在中本聰的設計里,完成記賬可以獲得系統給與比特幣獎勵,這個過程也就是比特幣發行過程,因此把記賬成為挖礦。
記賬工作
因為記賬是有獎勵,每次記賬都可以為自己增加一定個數的比特幣,因此大家爭相記賬,當然能也就引發了問題:出現記賬不一致的是後,系統引入工作量證明來解決這個問題,規則如下:
1.在一段時間內,只有一個人能記賬成功。
2.通過解決密碼學難題競爭獲得唯一記賬權
3.其他節點復制記賬結果
不過在進行工作量證明之前,記賬節點會做進行如下准備工作:
1.收集廣播中還沒有被記錄賬本的原始交易信息
2.檢查每個交易信息中付款地址有沒有足夠的余額
3.驗證交易是否有正確的簽名
4.把驗證通過的交易信息進行打包記錄
5.添加一個獎勵交易:給自己的地址增加12.5比特幣
如果爭奪記賬權成功的話,就可以得到12.5比特幣的獎勵。
工作量證明
每次記賬的時候會把上一個塊的Hash值和當前的賬頁信息一起作為原始信息進行Hash。為了確保10分鍾前後只有一個人可以記賬,就只有提高記賬的難度,用Hash的結果必須以若干個0開頭。為了滿足條件,進行Hash是引入一個隨機數變數。
用偽代碼表示一下:
1.Hash(上一個Hash值,交易記錄集) = 456635BCD
2.Hash(上一個Hash值,交易記錄集,隨機數) = 0000aFD635BCD
改變Hash的原始信息的一部分,Hash值也會不斷變化,因此在運行Hash的時候,不斷改變隨機數的值,總可以找到一個隨機數使得Hash的結果以若干個0開頭,率先找到隨機數的節點從此獲得記賬的唯一記賬權。
驗證
在節點成功找到Hash值之後,會馬上對全網進行廣播打包區塊,網路的節點收到廣播後會對其進行驗證。如果驗證通過,表明已經有節點成功解密,就不會在競爭當前區塊,而是選擇接受區塊,記錄到自己的賬本中,進行下一輪競爭猜謎。網路中只有最快解密的區塊才會添加到賬本中,其他的節點進行復制,確保整個賬本的唯一性。
如果節點有作弊行為,會導致網路的節點驗證不通過,直接放棄其打包的區塊,也無法記錄到總賬本中,那麼作弊節點的消耗成本就白費了。因此礦工自覺的遵守比特幣系統的共識協議,也確保整個系統的安全。
這個問題就好像你去工地搬磚,搬完一天磚,包工頭問你你怎麼證明自己一天在工地搬磚呢?
㈨ 揭秘比特幣和區塊鏈(二):什麼是工作量證明
工作量證明(Proof Of Work,簡稱POW),簡單理解就是一份證明,用來確認你做過一定量的工作。監測工作的整個過程通常是極為低效的,而通過對工作的結果進行認證來證明完成了相應的工作量,則是一種非常高效的方式。比如現實生活中的畢業證、駕駛證等等,也是通過檢驗結果的方式(通過相關的考試)所取得的證明。