tft每日頭條

 > 生活

 > 比特币網絡中的哈希算力

比特币網絡中的哈希算力

生活 更新时间:2025-02-10 12:48:07

比特币是世界上第一種成功的加密貨币,之前的嘗試都沒有像比特币這樣有效解決有關貨币的各種問題。

比特币本身是密碼學發展的産物,利用了密碼學中的很重要的“單向散列函數”以及數字簽名兩大技術來構建,今天我們來集中精力講解單向散列函數的5種重要的特性,以及比特币挖礦相關的技術原理。

下面我們先講哈希函數的特性:

單向散列函數(one-wayhash function),也就是通俗叫的哈希函數。

第一個特點:輸入可以任意長度,輸出是固定長度

哈希函數不用知道輸入信息代表的是什麼意思,也無所謂信息的長度有多長,隻要輸入hash函數出來的都是固定長度的比特值。比如非常有名的SHA256 哈希函數,輸入任何值出來的都是256比特的0和1. 輸入一本《三國演義》或者僅僅輸入一個字母a,出來的都是256位比特長度的數據。

第二個特點:計算hash值的速度比較快

這一點經常被大家所忽略,似乎是習以為常的東西就不去在意,其實這一點同樣重要,因為單向哈希的計算很快,才能保證加密或者驗證的速度。

你要得到一個hash值前面K位是0。你無法知道怎麼得到前面是這麼多0的x。

挖礦就是找nonce,就是這個随機數。

H(block header nonce)≤target

這就是比特币挖礦的基本原理,就是哈希碰撞去找到這個nonce,讓他小于一個target(比如32個0等等)。Block header(或者block head)就是區塊頭包括的信息都是所有礦工都知道的信息(比如version,prehash,merkle root,ntimenbits等等信息),所以大家競争的是誰先猜出來nonce。

備注:在二進制的世界裡,因為每一位比特都是0或者1,所以比大小,就是比前面的0的數量,前面32位是0,自然小于前面31位是0(第32位是1),這個target的所謂比大小也就是限定個範圍,因為sha256出來的數字都是256位的二進制數字(哈希函數輸出值長短固定的特性),比誰前面的0多是很方便的劃定結果值的區域的方式。這一點大家忽略的人很多,其實是一個很基礎的數學知識,值得注意。

挖礦的基本思想就是來自上述的信息。在比特币中的挖礦的過程裡實際上就是去找nonce也就是确定了輸出範圍後,去找輸入的值。H(block header nonce)≤target

當輸入的值(各種信息 nonce)進行hash運算後得到的值符合target的範圍,比如說前面35個0就可以了,你猜出來的值輸入後得到hash值前面40個都是零,那麼肯定符合要求,實際上前面35個0就滿足條件了嘛。

然後你把這個信息公布出去,别的礦工看到你的nonce值,也去hash一下,很快就知道你這個nonce是合适的,可以滿足target的要求。這裡就用到了哈希函數的計算速度快的特性(第二個特性)。

本文總結了單數散列函數也就是哈希函數的特性,這就是很多區塊鍊應用的基礎以及比特币加密挖礦的基本原理。文章開頭說過,比特币運用的密碼學除了函數函數,還有一個非常重要的内容是:數字簽名。這個我們很快就會講到。

比特币網絡中的哈希算力(比特币中的密碼學)1

目前世界上所謂的區塊鍊落地應用,其實有時候用的是比特币的數據結構(默克爾樹等),有時候用的是UTXO模型來結算。有的時候說是溯源,有的時候說是合約。很多的應用出來,不管是什麼樣的概念,多數都要用到哈希函數,利用哈希函數5種特性中的一部分。

随着文章講解的深入,關于比特币,關于行業的信息都在展開,慢慢的大家更能明白,為什麼說哈希函數是比特币和區塊鍊行業的基礎了。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved