比特幣挖礦是怎么一會事兒

比特幣 挖礦


什么是比特幣

都 2020 年了莱睁,比特幣這個(gè)詞兒大家肯定不陌生炫掐。經(jīng)過各方面的宣傳炒作,比特幣這個(gè)概念本身已經(jīng)被賦予了很多玄乎的職能表鳍。有關(guān)比特幣具體的技術(shù)細(xì)節(jié)有很多团甲,這次我們只探討“挖礦”相關(guān)的部分逾冬。
要想解釋清楚挖礦,你首先要知道伐庭,比特幣是一個(gè)去中心化的分布式自治網(wǎng)絡(luò)粉渠》指裕或者可以這么理解,比特幣是個(gè)大型賬本霸株,還是個(gè)分布式的賬本雕沉,也就是說,比特幣網(wǎng)絡(luò)上有許許多多的節(jié)點(diǎn)去件,每個(gè)節(jié)點(diǎn)的任務(wù)就是記賬坡椒。

為什么比特幣要挖礦

因?yàn)楸忍貛攀莻€(gè)去中心化的分布式網(wǎng)絡(luò),而且大家都能加入這個(gè)網(wǎng)絡(luò)中尤溜,所以就可能存在惡意節(jié)點(diǎn)倔叼,這些節(jié)點(diǎn)就是不按規(guī)矩來搗亂的。
必須有個(gè)辦法來增加搗亂的成本宫莱,讓惡意節(jié)點(diǎn)自己覺得不值得丈攒,這樣才能使整個(gè)網(wǎng)絡(luò)正常發(fā)展下去。
比特幣網(wǎng)絡(luò)中增加搗亂成本的方案就是“挖礦”授霸。

怎么挖礦

這里不討論比特幣是怎么做節(jié)點(diǎn)發(fā)現(xiàn)的巡验,假設(shè)這個(gè)分布式網(wǎng)絡(luò)已經(jīng)運(yùn)行起來了,節(jié)點(diǎn)之間可以進(jìn)行消息廣播碘耳。當(dāng)有人想要轉(zhuǎn)賬显设,那么就需要把轉(zhuǎn)賬信息在節(jié)點(diǎn)之間進(jìn)行廣播,節(jié)點(diǎn)收到之后就會把轉(zhuǎn)賬信息記下來辛辨。
挖礦馬上就要開始了 --- 節(jié)點(diǎn)剛收到轉(zhuǎn)賬信息(下文稱為交易)后捕捂,僅僅是放在內(nèi)存池里,真正想讓交易生效斗搞,需要經(jīng)過一系列步驟

  1. 先從內(nèi)存池中取出一些交易指攒,計(jì)算這些交易的 hash 值
  2. 將交易 hash 值與一個(gè)隨機(jī)數(shù)一起進(jìn)行 hash,也就是 hash(hash(交易) + 隨機(jī)數(shù))
  3. 判斷上一步 hash 的結(jié)果的開頭幾位是不是有很多 0僻焚,具體要有多少個(gè) 0 是動(dòng)態(tài)調(diào)整的
  4. 如果 0 的數(shù)量不夠幽七,則換一個(gè)隨機(jī)數(shù),不斷重復(fù)嘗試溅呢,直到 0 的個(gè)數(shù)足夠多
  5. 找到隨機(jī)數(shù)之后,將這個(gè)隨機(jī)數(shù)與交易的 hash 值猿挚,以及交易本身咐旧,一起打包成一個(gè)數(shù)據(jù)包,稱之為一個(gè)區(qū)塊绩蜻,把區(qū)塊廣播出去
  6. 各個(gè)節(jié)點(diǎn)收到后铣墨,也來拿這個(gè)隨機(jī)數(shù) hash 驗(yàn)證一下是不是真的有那么多 0,如果驗(yàn)證成功办绝,則記錄下來

這個(gè)過程一般都叫它交易打包伊约,或者說挖出了一個(gè)區(qū)塊姚淆。可以看出來這個(gè)操作是比較累的屡律,為了不讓節(jié)點(diǎn)白干活腌逢,在交易列表中會有一筆特殊的轉(zhuǎn)賬,內(nèi)容就是從天而降一筆比特幣超埋,轉(zhuǎn)給打包的節(jié)點(diǎn)搏讶。
所以挖礦是個(gè)形象的比喻,隨機(jī)數(shù)嘗試的過程就好比在礦坑中亂挖霍殴,運(yùn)氣好就能敲到礦媒惕,所以你現(xiàn)在知道有人說挖礦賺了多少多少是什么意思了吧。

block

區(qū)塊鏈

為了增加篡改難度来庭,前一個(gè)區(qū)塊的 hash 值也需要記錄在區(qū)塊中妒蔚,相應(yīng)的碰撞隨機(jī)數(shù)的算法就會改進(jìn)成 hash(hash(交易) + 前一個(gè)區(qū)塊的 hash + 隨機(jī)數(shù))
這樣新的區(qū)塊指向前一個(gè)區(qū)塊月弛,所有的區(qū)塊看起來就串成了一個(gè)鏈肴盏。
如果有人想篡改區(qū)塊鏈中的某個(gè)區(qū)塊中的交易,那么交易 hash 值就會發(fā)生變化尊搬,那么原來的隨機(jī)數(shù)就不能滿足要求叁鉴,篡改者就要重新計(jì)算隨機(jī)數(shù),整個(gè)區(qū)塊的 hash 自然也會跟著改變佛寿,
由于后一個(gè)區(qū)塊頭里記錄著前一個(gè)區(qū)塊正確的 hash幌墓,所以篡改者還要把后面所有的區(qū)塊都篡改了,重新去計(jì)算所有的隨機(jī)數(shù)冀泻,成本大大增加常侣。
所以在挖礦過程中,如果有人搶先挖出一個(gè)區(qū)塊弹渔,那么你就得停下計(jì)算胳施,因?yàn)樯弦粋€(gè)區(qū)塊的 hash 已經(jīng)過時(shí)了,需要把新的區(qū)塊作為上一個(gè)區(qū)塊肢专,然后能繼續(xù)開始嘗試舞肆。

blockchain

礦挖完了怎么辦

為了避免比特幣無限制的增加,在經(jīng)過一定時(shí)間后博杖,比特幣的出塊獎(jiǎng)勵(lì)將會減半椿胯,最終不再有挖礦獎(jiǎng)勵(lì)。
不過雖然挖出區(qū)塊的獎(jiǎng)勵(lì)沒有了剃根,但是區(qū)塊是依然能夠繼續(xù)挖出來的哩盲,那礦工怎么賺錢呢,這個(gè)時(shí)候就只能靠手續(xù)費(fèi)了。
每一筆交易都會設(shè)定一個(gè)手續(xù)費(fèi)廉油,成功打包的礦工將獲取這次打包交易中的手續(xù)費(fèi)惠险,所以礦工打包的時(shí)候肯定是先挑內(nèi)存池中手續(xù)費(fèi)高的出來進(jìn)行打包,
為了每次打包賺得更多抒线,可以一次打包很多的交易班巩,不過打包的交易多了,計(jì)算 hash 的速度就會慢十兢,區(qū)塊大了網(wǎng)絡(luò)中傳輸?shù)乃俣纫矔たⅲ赡茉谀阌?jì)算的時(shí)候,別人搶先打出一個(gè)小區(qū)塊你就白忙活了旱物,
所以最終選擇打包多少交易遥缕,就是個(gè)平衡的結(jié)果。

計(jì)算機(jī)性能提升對挖礦有啥影響

隨著計(jì)算機(jī)硬件的發(fā)展宵呛,計(jì)算 hash 的時(shí)間肯定會越來越短单匣,為了讓每次碰撞成功的時(shí)間大致相同,0 的個(gè)數(shù)具體是多少個(gè)就需要根據(jù)最近一段時(shí)間內(nèi)出塊的速度進(jìn)行動(dòng)態(tài)調(diào)整宝穗。
當(dāng)前全網(wǎng)計(jì)算機(jī)的算力越強(qiáng)户秤,那么難度就會提升,也就是需要的 0 的個(gè)數(shù)就會越多逮矛,碰撞的難度就會越高鸡号。結(jié)果就是不管你算的多快,難度系數(shù)的上升會讓出塊時(shí)間維持在同一個(gè)水平须鼎。

結(jié)尾

上面說到的算法只是個(gè)大概說個(gè)原理鲸伴,并不是比特幣實(shí)際使用的算法。

本人也是剛接觸這塊知識晋控,還處于學(xué)習(xí)過程中汞窗,文中難免出現(xiàn)錯(cuò)誤,歡迎各位指正赡译。
有機(jī)會可以再來探討下這些問題仲吏,
如何判斷你的比特幣是不是屬于你?智能合約是個(gè)啥蝌焚?
比特幣為啥要等待多個(gè)交易確認(rèn)裹唆?分叉重組是啥?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末只洒,一起剝皮案震驚了整個(gè)濱河市品腹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌红碑,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異析珊,居然都是意外死亡羡鸥,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門忠寻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惧浴,“玉大人,你說我怎么就攤上這事奕剃≈月茫” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵纵朋,是天一觀的道長柿顶。 經(jīng)常有香客問我,道長操软,這世上最難降的妖魔是什么嘁锯? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮聂薪,結(jié)果婚禮上家乘,老公的妹妹穿的比我還像新娘。我一直安慰自己藏澳,他們只是感情好仁锯,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著翔悠,像睡著了一般业崖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凉驻,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天腻要,我揣著相機(jī)與錄音,去河邊找鬼涝登。 笑死雄家,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的胀滚。 我是一名探鬼主播趟济,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼咽笼!你這毒婦竟也來了顷编?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤剑刑,失蹤者是張志新(化名)和其女友劉穎媳纬,沒想到半個(gè)月后双肤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钮惠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年规肴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了朴上。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匪凉。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡式矫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出预明,到底是詐尸還是另有隱情缩赛,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布撰糠,位于F島的核電站酥馍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏窗慎。R本人自食惡果不足惜物喷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望遮斥。 院中可真熱鬧峦失,春花似錦、人聲如沸术吗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽较屿。三九已至隧魄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間隘蝎,已是汗流浹背购啄。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嘱么,地道東北人狮含。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像曼振,于是被迫代替她去往敵國和親几迄。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345