在比特币世界中矿工的作用是什么
轉載自? ?在比特幣世界中礦工的作用是什么
如題。本人技術小白,花了大量時間查閱了比特幣的一些資料。雖然不敢說把每個細節都完全搞懂了,不過整體思路和關鍵部分的主要原理還是搞明白了。
要說礦工的作用就要先講解比特幣世界的運行方式。
其實我們現在的貨幣發展進程已經到達了虛擬貨幣的時代。具體方式如圖
?
貨幣的基礎完全依賴于記賬者
例如老 張要拿一克金子向老李換一只羊,就一起給二狗子打個電話,說明要將老張名下的一克金子劃歸老李名下,二狗子拿出賬本,看看老張名下是否有一克金子,如果有 就在老賬的名下減掉一克,在老李的名下加上一克,這樣就完成了支付,此時老李在電話中聽到二狗子確認轉賬完成,就可以放心讓老張把羊牽走了。
這樣就帶來兩點問題
1.這個體系完全依賴于賬本持有人的個人信用,如果這個人不守規矩,隨意篡改賬本,那么整個貨幣系統就會崩潰
2.如果這個人家里失火或者賬本失竊,同樣也會為整個體系帶來毀滅性的打擊
而比特幣的革命之處在于,它使用的是完全區別于傳統記賬方式的分布式記賬。
現在我們就來看一下中本聰設計的比特幣的計賬方式是怎樣的。
賬簿公開機制
中本聰首先說明,要對現有賬簿進行如下改造:
1.賬簿上不再記載每個賬戶的余額,而只記載每一筆交易。即記載每一筆交易的付款人、收款人和付款金額。只要賬簿的初始狀態確定,每一筆交易記錄可靠并有時序,當前每個人持有多少錢是可以推算出來的。
2.賬簿由私有改為公開,只要任何人需要,都可以獲得當前完整的賬簿,賬簿上記錄了從賬簿創建開始到當前所有的交易記錄。
比特幣礦工的工作
由于比特幣的去中心化的特點。它是沒有一個集中的運算中心的,比特幣的清算任務就由比特幣礦工擔任。
中本聰規定,每筆交易的發起人,不但要將交易單給到收款人,還要同時復制若干份一模一樣的交易單投遞到每個礦工小組的收件箱里。
礦工小組的人定期到自己的收件箱里把收集到的交易單一并取出來。
然后把自己收到的交易單貼到原始賬簿上,將這樣賬簿紙放入編號生成器,打印好編號,一張賬簿就算完成了。
然后就是最關鍵一步,比特幣系統會提供一組高難度的數學迷題。礦工要成功的把新的交易單粘貼造歷史賬戶上,需要跟其他的礦工競爭算力。最后由第一個解開數學謎題的礦工得到記賬權利, 記賬成功后該礦工會得到比特幣獎勵。比特幣網絡會自動調整數學問題的難度,讓整個網絡約每10分鐘得到一個合格答案。
總量及發行
由算法規定,比特幣總量會持續增長直到達到2100萬個。礦工在總量達到1050萬之前是每成功完成一次計賬的獎勵金是50個比特幣,當總量達到1050萬時(2100萬的50%),賞金減半為25個。當總量達到1575萬(新產出525萬,即1050的50%)時,賞金再減半為12.5個。
根據其設計原理,比特幣的總量會持續增長,直至100多年后達到2100萬的那一天。但比特幣貨幣總量后期增長的速度會非常緩慢。事實上,87.5%的比特幣都將在頭12年內被“挖”出來。
確認賬簿
當某挖礦小組幸運的生成了一張有意義的賬簿,為了得到獎勵,必須立刻請其它小組確認自己的工作。
中本聰規定,當某個小組接到其他小組送來的賬簿紙時,必須立即停下手里的挖礦工作進行賬簿確認。
如果完成了所有驗證并全部通過,這個小組就認可了上述賬簿紙有效,然后將這張賬簿紙并入小組的主賬簿,舍棄目前正在進行的工作,后面的挖礦工作會基于這本更新后的主賬本進行。
賬簿確認反饋
對于挖礦小組來說,當賬簿送出去后,如果后面有收到其他小組送來的賬簿,其“上一頁賬簿編號”為自己之前送出去的賬簿,那么就表示他們的工作成功被其他小組認可了,因為已經有小組基于他們的賬簿繼續工作了。此時,粗略的說可以認為已經得到了50個比特幣。
另外,任何一個小組當新生成有效賬簿或確認了別的小組的賬簿時,就將最新被這個小組承認的交易寫到公告牌上,那么收款人只要發現相關交易被各個小組認可了,基本就可以認為這筆錢已經到了自己的賬上,后面他就可以在付款時將錢的來源指向這筆交易了。
因為比特幣網絡是分布式記賬的。所以它的賬本沒有可能被黑客完全攻擊。而且因為所有人都有記賬的權利,也很難有人能私自篡改。
但因為計算權利是由算力競爭來決定,這就提供了一種攻擊比特幣網絡的可能性。
51%攻擊。
先讓我們回到礦工們的計賬和確認方式上,因為挖礦小組是并行工作的,因此完全可能出現這樣的情況:某小組收到兩份不一樣的賬簿頁,它們都基于當前這個小組的主賬簿的最后一頁,并且內容也都完全合法。
關于這種情況,中本聰說:小組不應該以線性方式組織賬簿,而應該以樹狀組織賬簿,任何時刻,都以當前最長分支作為主賬簿,但是保留其它分支。
?
舉個例子,某小組同時收到A、B兩份賬簿頁,經核算都是合法的,此時小組應該將兩頁以分叉的形式組織起來,如上圖所示
?
黑色表示當前賬簿主干。此時,可以隨便選擇一個頁作為當前主分支,例如選擇A
?
此時如果有一個新的賬簿頁是基于A的,那么這個主干就延續下去
?
如果這個主干一直這么延續下去,表示大家基本都以A為主干,B就會被遺忘。但是也有可能忽然B變成更長了
?
那么我們就需要將B分支作為當前主干,基于這個分支進行后續工作。
從局部來看,雖然在某一時刻各個小組的賬簿主干可能存在不一致,但大方向是一致的,那些偶爾由于不同步產生的小分支,會很快被淹沒在歷史中。
51%攻擊,就是在掌握了比特幣全網51%以上的計算能力的之后。先讓其他的礦工進行工作,等受害者完成了交易之后再通過計算力的優勢,覆蓋掉原先分支。
先假設有一個攻擊者擁有10個比特幣,他準備將這筆錢同時支付給兩名受害者A和B,并都得到承認。
?
第一步,攻擊者準備從受害者A手里買10比特幣的黃金,他簽署交易單給受害者A,轉10個比特幣給受害者A。
?
第二步,這筆交易在最新的賬簿頁中被確認,并被各個挖礦小組公告出來。受害人A看到公告,確認比特幣到賬,給了攻擊者10個比特幣等值的黃金。
?
第三步,攻擊者找到賬簿,從包含剛才交易的賬簿頁的前一頁做出一個分支,生成更多的賬單頁,超過剛才的分支。由于此時剛才攻擊者制造的分支變成了主干分支,而包含受害者A得到錢的分支變成了旁支,因此挖礦組織不再承認剛才的轉賬,受害者A得到的10比特幣被取消了。
?
第四步,攻擊者可以再次簽署交易單,將同一筆錢支付給受害者B。受害者B確認錢到賬后,支付給攻擊者等值黃金。
至此,攻擊者將10個比特幣花了兩次,從兩名受害者那里各購得等值黃金。攻擊者還可以如法炮制,取消與受害者B的轉賬,將同一筆錢再支付給其他人。。。。。。
中本聰給出的解決方案是,建議收款人不要在公告掛出時立即確認交易完成,而是應該再看一段時間,等待各個挖礦小組再掛出6張確認賬簿,并且之前的賬簿沒有被取消,才確認錢已到賬。
比特幣達到2100萬枚之后
等賬簿達到6,930,000頁后,新生成賬簿頁就沒有獎勵了。到時,礦工的收益會由挖礦所得變為收取手續費。例如,你在轉賬時可以指定其中1%作為手續費支付給生成賬簿頁的小組,各個小組會挑選手續費高的交易單優先確認。
?
總結
以上是生活随笔為你收集整理的在比特币世界中矿工的作用是什么的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 誓言是什么意思 词语誓言什么意思
- 下一篇: 深入解读Service Mesh背后的技