比特幣原理(三):工作量證明(POW)與挖礦

上篇文章中爽茴,我們解釋了比特幣的賬戶系統(tǒng)葬凳,今天來(lái)看看記賬權(quán)限的界定是如何完成的。

我們知道室奏,傳統(tǒng)世界中火焰,記賬權(quán)限是完全交由中央銀行去處理的,哪筆交易有效胧沫,哪筆交易無(wú)效昌简,都由它來(lái)界定。
但在比特幣的世界里绒怨,記賬是由很多平行節(jié)點(diǎn)來(lái)完成纯赎,這些節(jié)點(diǎn)之間并沒有權(quán)限的高低之分,也沒有信用一說南蹂,都是網(wǎng)絡(luò)中的一個(gè)個(gè)體犬金。

這種情況下,記賬這一行為就會(huì)帶來(lái)分歧六剥,網(wǎng)絡(luò)中這么多節(jié)點(diǎn)當(dāng)中由誰(shuí)負(fù)責(zé)下一個(gè)記賬呢佑附?誰(shuí)來(lái)界定有效與無(wú)效呢?
我們需要一種算法仗考,這種算法既保證了每個(gè)節(jié)點(diǎn)都可以參與音同,也可以隨時(shí)驗(yàn)證,同時(shí)毫無(wú)捷徑可走秃嗜。

于是出現(xiàn)了工作量證明 - Proof of Work算法权均,中本聰將其應(yīng)用到了比特幣當(dāng)中。

哈希-Hash

為了講解POW锅锨,我們要弄清楚哈希的概念叽赊。

Hash,一般翻譯做“散列”必搞,也有直接音譯為“哈媳刂福”的,就是把任意長(zhǎng)度的輸入通過散列算法變換成固定長(zhǎng)度的輸出恕洲,該輸出就是散列值塔橡。
這種轉(zhuǎn)換是一種壓縮映射梅割,也就是,散列值的空間通常遠(yuǎn)小于輸入的空間葛家,不同的輸入可能會(huì)散列成相同的輸出户辞,所以不可能從散列值來(lái)確定唯一的輸入值。簡(jiǎn)單的說就是一種將任意長(zhǎng)度的消息壓縮到某一固定長(zhǎng)度的消息摘要的函數(shù)癞谒。

哈希的性質(zhì):

  • 不同的輸入值底燎,會(huì)通過算法出現(xiàn)不同的輸出值。(有可能出現(xiàn)同樣的輸出值弹砚,稱之為碰撞)
  • 無(wú)法根據(jù)輸出值推斷輸入值双仍。

我用“bitcoin”得出計(jì)算哈希值的話,我們就會(huì)看到:

假如我稍微變化“bitcoin”這段文字桌吃,比如后面加個(gè)“1”殊校,我們就會(huì)看到:

可以看到不管輸入什么值,最后的輸出值為衡長(zhǎng)的字符串读存。

大家可以在這個(gè)網(wǎng)站上試試哈希:http://www.kjson.com/encrypt/hash/?fm=map

工作量證明 - Proof of Work

一個(gè)區(qū)塊里有一些什么信息呢?假如當(dāng)前的區(qū)塊鏈高度為9999呕屎,現(xiàn)在需要計(jì)算第10000個(gè)區(qū)塊的數(shù)據(jù)让簿,那么第10000個(gè)區(qū)塊可能是這樣的:

當(dāng)前區(qū)塊高度:10000
前一區(qū)塊哈希:00001425cd88cbc87a6eee5ec70cfce3a8ab38fcabb92122a9
時(shí)間戳:2018-09-15 10:04:45
交易內(nèi)容:
A -> B 轉(zhuǎn)移 10 BTC
C -> D 轉(zhuǎn)移 20 BTC
Nonce:待計(jì)算
當(dāng)前區(qū)塊哈希:待計(jì)算

從區(qū)塊里我們可以看到:Nonce、當(dāng)前區(qū)塊哈希秀睛、時(shí)間戳是變動(dòng)信息尔当,而交易內(nèi)容與前一區(qū)塊哈希為固定信息。

當(dāng)前區(qū)塊哈希 = Hash(交易內(nèi)容 + 前一區(qū)塊哈希 + 當(dāng)前區(qū)塊高度 + 時(shí)間戳 + Nonce)蹂安;
挖礦難度 = 哈希的前4位數(shù)為0椭迎;

if ( 當(dāng)前區(qū)塊哈希 == 挖礦難度 )
  {
    Nonce 有效;
    當(dāng)前區(qū)塊哈希 有效田盈;
  }

它將 固定信息 - 交易內(nèi)容 + 前一區(qū)塊哈希 + 當(dāng)前區(qū)塊高度變動(dòng)信息 - 時(shí)間戳(根據(jù)計(jì)算時(shí)間變更) + Nonce 作為整段內(nèi)容進(jìn)行哈希運(yùn)算畜号,得出當(dāng)前區(qū)塊哈希值 - CurrentHash,如果CurrentHash滿足挖礦難度允瞧,即前4位數(shù)為0简软,我們就判斷為有效的新區(qū)塊。

這一計(jì)算Nonce述暂、得出新區(qū)塊哈希的過程 - 我們稱之為挖礦痹升。

挖礦的過程實(shí)際上就是代入不同的Nonce值,從1開始代入畦韭,一直到得出滿足挖礦條件的Hash值為止疼蛾;
當(dāng)計(jì)算出滿足條件的Hash值后,該節(jié)點(diǎn)會(huì)向網(wǎng)絡(luò)中其他節(jié)點(diǎn)廣播艺配,待其他節(jié)點(diǎn)驗(yàn)證成功后察郁,他們會(huì)根據(jù)最新區(qū)塊繼續(xù)計(jì)算下一區(qū)塊衍慎。

當(dāng)網(wǎng)絡(luò)中同時(shí)出現(xiàn)兩個(gè)有效的新區(qū)塊時(shí),網(wǎng)絡(luò)中的其他節(jié)點(diǎn)會(huì)做出選擇绳锅,到底承認(rèn) A區(qū)塊還是承認(rèn) B區(qū)塊西饵;區(qū)塊鏈網(wǎng)絡(luò)中,最終只承認(rèn)高度最高的一條鏈鳞芙,因此經(jīng)過幾輪計(jì)算后眷柔,一條鏈會(huì)被放棄,所有節(jié)點(diǎn)又重新回到一條主鏈上原朝。

  • 既然是工作量證明驯嘱,是不是誰(shuí)算過的數(shù)值多,誰(shuí)就可以拿更多獎(jiǎng)勵(lì)喳坠?
  • 不鞠评,獎(jiǎng)勵(lì)只與是否最后得出有效Nonce與區(qū)塊有關(guān),一個(gè)節(jié)點(diǎn)為此付出了多少勞動(dòng)與獎(jiǎng)勵(lì)無(wú)關(guān)壕鹉。

挖礦獎(jiǎng)勵(lì)

現(xiàn)在我們知道了剃幌,挖礦的行為本質(zhì)就是獲得記賬權(quán),獲得記賬權(quán)后將交易寫入新區(qū)塊中晾浴,這些交易會(huì)率先獲得承認(rèn)负乡。

有人可能會(huì)好奇,挖礦獎(jiǎng)勵(lì)來(lái)自哪里呢脊凰?

中本聰將該部分邏輯寫進(jìn)了區(qū)塊鏈底層代碼當(dāng)中抖棘,任何新出區(qū)塊的地址將獲得比特幣的獎(jiǎng)勵(lì),這一獎(jiǎng)勵(lì)用于補(bǔ)償它在過程中消耗的硬件與電力資源狸涌。

  • 銀行為了維持它的業(yè)務(wù)順利進(jìn)行切省,會(huì)從客戶身上收取手續(xù)費(fèi)。
  • 比特幣節(jié)點(diǎn)為了鼓勵(lì)更多人參與到網(wǎng)絡(luò)同步與記賬帕胆,除了從客戶身上收取手續(xù)費(fèi)以外朝捆,還制定了出塊激勵(lì)。

良好的激勵(lì)機(jī)制導(dǎo)致了更多人加入到了比特幣的網(wǎng)絡(luò)當(dāng)中懒豹,參與了挖礦右蹦,加強(qiáng)了網(wǎng)絡(luò)的安全性。

當(dāng)前挖礦獎(jiǎng)勵(lì)為12.5BTC/個(gè)

很多人呼吁:區(qū)塊鏈?zhǔn)菂^(qū)塊鏈歼捐,虛擬幣是虛擬幣何陆;區(qū)塊鏈應(yīng)當(dāng)脫離虛擬幣、脫離炒幣存在豹储,而真正將目光集中在解決問題上贷盲。

對(duì)于這種看法我只想說:Too young, Too naive。

這個(gè)問題的具體解釋放到后面。

還有一個(gè)經(jīng)常聽到的問題是:挖礦能不能掙錢巩剖,我能不能也挖礦铝穷?

相信你已經(jīng)明白了什么是挖礦,那么挖礦能不能掙錢呢佳魔?
在當(dāng)前的算力難度以及比特幣價(jià)格下曙聂,個(gè)人很難通過挖礦去獲利;從經(jīng)濟(jì)學(xué)的角度來(lái)看鞠鲜,如果普通人也能在挖礦市場(chǎng)中獲利宁脊,那么參與者會(huì)越來(lái)越多,直到所有人都沒有短期利益為止贤姆。

所以我們能得到最后問題的答案:你也可以挖礦榆苞,但能不能獲利得認(rèn)真考究。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末霞捡,一起剝皮案震驚了整個(gè)濱河市坐漏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌碧信,老刑警劉巖赊琳,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異砰碴,居然都是意外死亡躏筏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門衣式,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人檐什,你說我怎么就攤上這事碴卧。” “怎么了乃正?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵住册,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我瓮具,道長(zhǎng)荧飞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任名党,我火速辦了婚禮叹阔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘传睹。我一直安慰自己耳幢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著睛藻,像睡著了一般启上。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上店印,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天冈在,我揣著相機(jī)與錄音,去河邊找鬼按摘。 笑死包券,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的院峡。 我是一名探鬼主播兴使,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼照激!你這毒婦竟也來(lái)了发魄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤俩垃,失蹤者是張志新(化名)和其女友劉穎励幼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體口柳,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡苹粟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了跃闹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嵌削。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖望艺,靈堂內(nèi)的尸體忽然破棺而出苛秕,到底是詐尸還是另有隱情,我是刑警寧澤找默,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布艇劫,位于F島的核電站,受9級(jí)特大地震影響惩激,放射性物質(zhì)發(fā)生泄漏店煞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一风钻、第九天 我趴在偏房一處隱蔽的房頂上張望顷蟀。 院中可真熱鬧,春花似錦骡技、人聲如沸衩椒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)毛萌。三九已至苟弛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間阁将,已是汗流浹背膏秫。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留做盅,地道東北人缤削。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像吹榴,于是被迫代替她去往敵國(guó)和親亭敢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容