當前位置:首頁 > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 比特幣是世界上第一種成功的加密貨幣,之前的嘗試都沒有像比特幣這樣有效解決有關(guān)貨幣的各種問題。 比特幣本身是密碼學發(fā)展的產(chǎn)物,利用了密碼學中的很重要的“單向散列函數(shù)”以及數(shù)字簽名

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

比特幣本身是密碼學發(fā)展的產(chǎn)物,利用了密碼學中的很重要的“單向散列函數(shù)”以及數(shù)字簽名兩大技術(shù)來構(gòu)建,今天我們來集中精力講解單向散列函數(shù)的5種重要的特性,以及比特幣挖礦相關(guān)的技術(shù)原理。

下面我們先講哈希函數(shù)的特性:

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

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

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

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

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

第三個特點,防碰撞特性(Collisionresistance)

X≠y,H(x)=H(y) 輸入空間遠遠大于輸出空間,比如256位的哈希值指的就是輸出空間是2^256這么多,輸入是無限可能的,輸出是固定長度。

但是,目前沒有找到?jīng)]有好的方法去找出一個x能得到H(x)等于右邊的值。

遍歷所有輸入的可能能去找到這個值,叫做brute-force暴力破解嗎,也就是現(xiàn)在礦機所謂的“哈希碰撞”這個詞的來源。

哈希防碰撞用處是保證上傳和下載的數(shù)據(jù)是一樣的,就是改一點點出來的結(jié)果差很多。舉個例子,你輸入的信息是一部《紅樓夢》(當然電腦識別出來就是0和1),然后你在紅樓夢的第100頁的第五句話把一個逗號改成句號,然后輸出的hash值就完全不同了。這就是哈希函數(shù)一個非常重要的特性。

但是collision resistance目前沒有數(shù)學證明這個碰撞不會發(fā)生,MD5就是最好的例子,之前是很安全的,但是后來找到了破解方法。

第四個特點:隱藏性(Hiding)或者叫做單向性(one-way)

哈希函數(shù)的計算過程是單向不可逆的。x推出H(x),但是反推沒有法子(單向性),也就是說,哈希值沒有泄露輸入的x的信息。也就是說x的信息被隱藏了起來,這也就就是隱藏性。

輸入空間要足夠大,取值是均勻的,這樣就很難暴力破解。

利用第三和第四個特性可以做出很有趣的應(yīng)用場景。

比如預(yù)測一個事情。現(xiàn)實世界中預(yù)測和結(jié)果很多時候是有微妙的關(guān)系的,比如三國時期,曹操專門去找當時的人物品鑒專家許劭,讓他看看自己是什么材料,許劭評價曹操是“治世之能臣,亂世之奸雄”,這個很難說他評的準不準,或許因為這個評語,影響了曹操的心理,他就朝這個方向發(fā)展了,就成了自我驗證的預(yù)言了。所以,很難判斷預(yù)測是否真的準。

更簡單例子是,有影響力的股評師,今天預(yù)測一下明天的股價是不是增長,那么,他如果公開表明幣價,可能會影響幣價。

所以如何表明他確實很準確呢?讓他把股評信息寫到紙上,或者存到電腦里,但是要求是第二天開盤后,不能偷偷修改內(nèi)容,這樣就不用擔心預(yù)測影響股價了。那么現(xiàn)在需要做的只是一件事兒:保證他沒有篡改自己已經(jīng)寫好的內(nèi)容。

那么,可以用hash算法,預(yù)測的結(jié)果(信息)是x,對x 哈希函數(shù)一下,公布hash值,第二天收盤再把x放出來,如果你改了昨天的數(shù)據(jù),hash就變了。所有人都可以用hash算一下這個x和昨天公布的hash值進行對比。

實際情況下,實際的輸入空間不是很大,輸入不夠隨機,擔心有人對上升下跌這樣的詞匯語句進行組合排列,找到這個x,為了保證安全性,會加入一個nonce隨機數(shù),公式表達如下。

H(x丨丨nonce) nonce是一個隨機數(shù)

意思就是預(yù)測的結(jié)果信息x后面加個隨機數(shù),一起得到hash。

第五點:謎題友好(puzzlefriendly)

就是說看x不知道H(x)是什么?這個無法從輸入數(shù)據(jù),判斷到底輸出是什么樣子。就是說,知道輸入的信息,無法一眼看出來輸出的hash值是什么,謎題友好性值得就是這一點:你無法通過控制輸入值x來獲得想要的輸出值H(x)

所以,綜合隱藏性和謎題友好性兩個特點,知道輸入信息也不知道哈希值是什么,可以很快算出來,但是無法預(yù)先判斷;知道哈希值也不能知道輸入值是什么,反向計算是非常非常困難的,只能暴力破解。

所以如果你想要輸出的值落在某一個范圍里,比如小于某個數(shù)值,計算機只能一個一個去試去猜答案,看哪個輸入算出來的輸出值正好是落在你想要的范圍內(nèi)。

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

挖礦就是找nonce,就是這個隨機數(shù)。

H(block header + nonce)≤target

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

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

挖礦的基本思想就是來自上述的信息。在比特幣中的挖礦的過程里實際上就是去找nonce也就是確定了輸出范圍后,去找輸入的值。H(block header + nonce)≤target

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

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

本文總結(jié)了單數(shù)散列函數(shù)也就是哈希函數(shù)的特性,這就是很多區(qū)塊鏈應(yīng)用的基礎(chǔ)以及比特幣加密挖礦的基本原理。文章開頭說過,比特幣運用的密碼學除了函數(shù)函數(shù),還有一個非常重要的內(nèi)容是:數(shù)字簽名。這個我們很快就會講到。

目前世界上所謂的區(qū)塊鏈落地應(yīng)用,其實有時候用的是比特幣的數(shù)據(jù)結(jié)構(gòu)(默克爾樹等),有時候用的是UTXO模型來結(jié)算。有的時候說是溯源,有的時候說是合約。很多的應(yīng)用出來,不管是什么樣的概念,多數(shù)都要用到哈希函數(shù),利用哈希函數(shù)5種特性中的一部分。

隨著文章講解的深入,關(guān)于比特幣,關(guān)于行業(yè)的信息都在展開,慢慢的大家更能明白,為什么說哈希函數(shù)是比特幣和區(qū)塊鏈行業(yè)的基礎(chǔ)了。
來源: 加密二鍋頭?

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉