區塊鏈概念 That You Must Know 第四期(2)

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

第四期 挖礦的相關演算法(2)

卡酷少

Wechat:13260325501

看過(1)篇,相信你一定對挖礦的機制有了一點瞭解。那麼本篇,我們來一起看一下挖礦中演算法。

下面的文章中,如果在文章的前半篇你遇到了不理解的詞彙,也許在文章的後半段就會給出答案。最後關於不理解的部分歡迎大家在文章下面留言,我會及時給出回覆。

區塊鏈的區塊到底是什嗎?

  • 挖礦是為了產生一個區塊,那麼區塊到底是什嗎?區塊的作用又是什嗎?一個區塊又包含了哪些資訊呢?
  • 簡單理解的話,一個區塊可以理解為一個結構體。我們知道結構體可以儲存不同類型的資訊,這些資訊可以是字串,可以是數字,也可以是日期。那一個區塊裡包含了哪些資訊呢?這裡我們給出一張圖來,先來瞭解一下區塊資訊有幾大類。
  • 圖1

  • 一個區塊中資訊按類別劃分,主要分為的這四大類,這點大家只做概念性瞭解即可。真正有作用於產生區塊的資訊,主要是區塊頭中這幾項:
  • index(記錄當前是第幾個區塊)
  • current hash(當前雜湊值)
  • previous hash(承接的上一區塊的雜湊值,可保證區塊按時間串聯)
  • timestamp(時間戳記,記錄該區塊的產生時間)
  • data(交易詳情,詳細記錄了每筆交易的轉出方和收入方,金額及數位簽章)
  • nounce(隨機數,即全網礦工一起pk計算的的,能滿足雜湊難度要求的答案)
  • 其中希望大家先對nounce值有個印象。這個nounce值不僅與挖礦有關,也在之後的代碼實現中有非常重要的身份。
  • 給出一個簡單的列表:
  • 圖2

什麼是雜湊和雜湊值?

  • 為理解挖礦的代碼機制,首先解決幾個概念。第一個就是“雜湊”。
  • 在上一篇挖礦中我們提到了算力。也說到算力就是一台礦機每秒鐘能做多少次雜湊碰撞。那麼,什麼是雜湊,什麼又是雜湊碰撞呢?
  • 簡單理解的話,雜湊就是一個函數。雜湊碰撞的本質,就是cpu在隨機窮舉數值的過程中,不斷尋找能夠產生匹配現階段比特幣“難度”條件的數值。一旦找到這個數值,那麼就產生了一次成功的雜湊碰撞。
  • 現在你一定很好奇雜湊是一個什麼樣的值呢?我們通過 ==SHA256== hash演算法來瞭解一下。
  • 這裡提供一個網址,感興趣的同學可以跟我一起做一些測試。

link

  • hello

  • helloworld

  • hello world

  • hello,world

  • 測試之後,我們可以發現,雜湊函數有一些非常獨特的特徵:
  1. 任意內容都可以產生雜湊值。
  2. 雜湊值為十六進位表示的數,且長度固定。
  3. 不同的內容產生不同的雜湊值。哪怕非常相似的內容產生的值也完全不同,且無規律可循。
  4. 相同的內容每次都會輸出相同的雜湊值。
  • 通過對比"hello","helloworld",“hello world”和“hello,world”的輸出結果,可以驗證驗證我們對於雜湊演算法的總結。感興趣的同學可以再驗證別的數值,你會發現,無論多麼微小的差別,都會導致雜湊值完全無跡可尋的改變。
  • 也正是雜湊值的這些特點,賦予了其加密資訊時更高的安全性。

有關挖礦的“難度”

  • 最後一個概念就是挖礦的難度。這裡的難度,由淺及深,我們先舉個例子來理解它的原理。

  • ,比如我們將一個5位元進行排列組合,分個十百千萬位。假如第一個排列組合,我指定萬位和千位都是5,其他位元不限;第二個排列組合,我只指定萬位為5,那麼得到誰的幾率大,得到誰的幾率小呢?
  • ——答案是第一個機率小,第二個機率大。因為被限定的個數越多,其他可選的可能性也就越少了。
  • 同理,挖礦就是去匹配已經被指定了位元的雜湊值。而挖礦的“難度”,就是由被指定位元的多少來決定的。這和被指定的是十六進位下的那個數無關。

  • 如框內所示,當雜湊值難度設定了前四位為“0”的時候,只有當匹配上前四位為“0”的時候,才產生了一次成功的雜湊碰撞。如果設定的“0”的個數越多,那麼雜湊成功的難度也越大,挖礦的難度也就越大。
  • 在比特幣最開始的時候,難度是很小的,只有第一位為“0”及碰撞成功。那是的挖礦是非常簡單的。而現在隨著全網算力的增加,挖礦的難度也大大,現在的雜湊難度已經是十幾個“0”了。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.