挖礦(Mining)
是指去中心化驗證區塊的機制,而從挖礦兩個字可以知道,分為挖和礦兩個字挖:指的是需要付出某種工作
礦:指的是高價值的獎勵
隱藏含義是指不容易得到(成功的機率很小)
而在比特幣上的應用指的是礦工消耗電腦算力,時間,來驗證區塊,獲取比特幣
而驗證區塊可以比喻成比特幣系統出一道數學題,看誰先解出來
為什麼要挖礦?
因為區塊鏈沒有中心化伺服器來處理交易,所以用挖礦的方式來獎勵其他人(礦工)來做這項工作
實際流程:
這裡有一串交易資料,誰先把這些資料加上一個隨機數(Nonce),湊出前面有四個0的Hash值就贏了礦工:猜隨機數的數值,通常是從0開始把每個組合都試一遍
礦工:第一個找出正確隨機數的人才能拿到比特幣,所以礦工會用最好的設備來挖礦
會消耗許多電力和資源
礦池(mining pool)的出現:因為要搶第一,但個人的設備有限,所以會找一群人一起挖礦,如果挖到礦後會把利益均分
本來區塊鏈想要去中心化,但礦池的出現,,比特幣網絡的算力都平分在這些礦池上,於是比特幣區塊鏈被中心化的礦池掌控了
Hash
特性
輸入任何資料,都輸出固定長度把巨大的資料濃縮表示
從結果回推原資料非常難
兩筆不同的資料不會有重複的結果(即兩個輸入即使差距很小,輸出即是兩個截然不同的結果,沒辦法用兩個相似的結果回推原資料)
產生結果非常快、容易
用途:
資料摘要保護機密資料
例如帳戶的登入:在用戶登入時需要用戶登入的密碼跟後方資料庫的密碼作比對確認,但如果資料庫存的是明碼,很容易有安全的疑慮,但如果資料庫存的是Hash過後的值,那用戶輸入的密碼可以先Hash後,在跟資料庫做比對,如果有人中間攔截,攔截到的是Hash值,就不會有密碼洩漏的問題了確保資料的真實完整性
在挖礦的應用
從結果回推資料非常難,所以礦工必須不斷猜數字
確保資料的真實完整,區塊鏈的不可竄改性
挖礦難度
有多難挖到礦:區塊鏈定義輸出Hash值前面有幾個0
比特幣區塊鏈用挖礦難度控制每10分鐘產生一個區塊
沒有留言:
張貼留言