比特幣是世界上第一種成功的加密貨幣,之前的嘗試都沒有像比特幣這樣有效解決有關貨幣的各種問題。
比特幣本身是密碼學發展的產物,利用了密碼學中的很重要的“單向散列函數”以及數字簽名兩大技術來構建,今天我們來集中精力講解單向散列函數的5種重要的特性,以及比特幣挖礦相關的技術原理。
下面我們先講哈希函數的特性:
單向散列函數,也就是通俗叫的哈希函數。
第一個特點:輸入可以任意長度,輸出是固定長度
哈希函數不用知道輸入信息代表的是什么意思,也無所謂信息的長度有多長,只要輸入hash函數出來的都是固定長度的比特值。比如非常有名的SHA256?哈希函數,輸入任何值出來的都是256比特的0和1.?輸入一本《三國演義》或者僅僅輸入一個字母a,出來的都是256位比特長度的數據。
第二個特點:計算hash值的速度比較快?
歷史上的今天丨比特幣當日最高漲至19875.85美元,創2017年以來歷史新高:2017年12月17日,據火幣全球站數據顯示,比特幣當日最高漲至19875.85美元,創2017年以來歷史新高。
2019年12月17日,國家外匯管理局黨組書記、局長潘功勝同志主持召開黨組擴大會議,會議要求,支持自由貿易試驗區、自由貿易港等對外開放高地在外匯管理改革方面先行先試。擴大跨境金融區塊鏈服務平臺試點范圍,緩解中小企業融資難、融資貴問題。[2020/12/17 15:35:22]
這一點經常被大家所忽略,似乎是習以為常的東西就不去在意,其實這一點同樣重要,因為單向哈希的計算很快,才能保證加密或者驗證的速度。
第三個特點,防碰撞特性
X≠y,H=H(y)?輸入空間遠遠大于輸出空間,比如256位的哈希值指的就是輸出空間是2^256這么多,輸入是無限可能的,輸出是固定長度。
動態 | 加密托管公司Casa引入了激勵功能 以鼓勵定期維護比特幣節點:據The Block消息,加密托管公司Casa宣布推出新功能Node Heartbeats,用戶可定期檢查比特幣節點的狀態。此外,Casa還宣布了Heartbeat SatsBack獎勵計劃,該計劃將獎勵定期使用Node Heartbeats 0.0001BTC(約合1美元)的用戶。與所有比特幣全節點一樣,Casa Nodes通過驗證交易和塊來幫助保護比特幣網絡。[2019/8/22]
但是,目前沒有找到沒有好的方法去找出一個x能得到H等于右邊的值。
遍歷所有輸入的可能能去找到這個值,叫做brute-force暴力破解嗎,也就是現在礦機所謂的“哈希碰撞”這個詞的來源。
哈希防碰撞用處是保證上傳和下載的數據是一樣的,就是改一點點出來的結果差很多。舉個例子,你輸入的信息是一部《紅樓夢》,然后你在紅樓夢的第100頁的第五句話把一個逗號改成句號,然后輸出的hash值就完全不同了。這就是哈希函數一個非常重要的特性。
俄羅斯聯邦儲蓄銀行CEO:不應該禁止比特幣:俄羅斯最大銀行Sberbank銀行CEO Herman Gref表示他反對關于虛擬貨幣的禁令。俄羅斯當局和金融官員對待數字貨幣和區塊鏈技術應更寬松,因為這是一個正在發展的偉大技術。Sberbank曾于1月19日宣布啟動區塊鏈實驗室。[2018/1/25]
但是collisionresistance目前沒有數學證明這個碰撞不會發生,MD5就是最好的例子,之前是很安全的,但是后來找到了破解方法。
第四個特點:隱藏性或者叫做單向性
哈希函數的計算過程是單向不可逆的。x推出H,但是反推沒有法子,也就是說,哈希值沒有泄露輸入的x的信息。也就是說x的信息被隱藏了起來,這也就就是隱藏性。
輸入空間要足夠大,取值是均勻的,這樣就很難暴力破解。
利用第三和第四個特性可以做出很有趣的應用場景。
原始比特幣協議開發者之一對比特幣現金提出一個新的概念:原始比特幣協議開發者之一加文·安德向Github提出了一個名為“將UTXO作為一個位向量存儲”的想法。這個特定的想法就是比特幣現金(BCH)網絡。安德森將這個概念稱之為“完整實現比特幣現金(BCH)模式的半熟想法”,是將全部交易數據的存儲轉移到錢包上的一個想法。[2018/1/3]
比如預測一個事情。現實世界中預測和結果很多時候是有微妙的關系的,比如三國時期,曹操專門去找當時的人物品鑒專家許劭,讓他看看自己是什么材料,許劭評價曹操是“治世之能臣,亂世之奸雄”,這個很難說他評的準不準,或許因為這個評語,影響了曹操的心理,他就朝這個方向發展了,就成了自我驗證的預言了。所以,很難判斷預測是否真的準。
更簡單例子是,有影響力的股評師,今天預測一下明天的股價是不是增長,那么,他如果公開表明幣價,可能會影響幣價。
數字支付公司Square允許用戶購買比特幣:根據彭博社的消息,Square允許Square Cash 移動應用程序用戶進行比特幣購買。Square在一份聲明中說,該公司正在探索如何通過推出向其少量現金用戶購買比特幣的能力,使移動應用程序更快、更容易使用。[2017/11/20]
所以如何表明他確實很準確呢?讓他把股評信息寫到紙上,或者存到電腦里,但是要求是第二天開盤后,不能偷偷修改內容,這樣就不用擔心預測影響股價了。那么現在需要做的只是一件事兒:保證他沒有篡改自己已經寫好的內容。
那么,可以用hash算法,預測的結果是x,對x?哈希函數一下,公布hash值,第二天收盤再把x放出來,如果你改了昨天的數據,hash就變了。所有人都可以用hash算一下這個x和昨天公布的hash值進行對比。
實際情況下,實際的輸入空間不是很大,輸入不夠隨機,擔心有人對上升下跌這樣的詞匯語句進行組合排列,找到這個x,為了保證安全性,會加入一個nonce隨機數,公式表達如下。
H?nonce是一個隨機數
意思就是預測的結果信息x后面加個隨機數,一起得到hash。
第五點:謎題友好
就是說看x不知道H是什么?這個無法從輸入數據,判斷到底輸出是什么樣子。就是說,知道輸入的信息,無法一眼看出來輸出的hash值是什么,謎題友好性值得就是這一點:你無法通過控制輸入值x來獲得想要的輸出值H
所以,綜合隱藏性和謎題友好性兩個特點,知道輸入信息也不知道哈希值是什么,可以很快算出來,但是無法預先判斷;知道哈希值也不能知道輸入值是什么,反向計算是非常非常困難的,只能暴力破解。
所以如果你想要輸出的值落在某一個范圍里,比如小于某個數值,計算機只能一個一個去試去猜答案,看哪個輸入算出來的輸出值正好是落在你想要的范圍內。
你要得到一個hash值前面K位是0。你無法知道怎么得到前面是這么多0的x。
挖礦就是找nonce,就是這個隨機數。
H≤target
這就是比特幣挖礦的基本原理,就是哈希碰撞去找到這個nonce,讓他小于一個target。Blockheader就是區塊頭包括的信息都是所有礦工都知道的信息,所以大家競爭的是誰先猜出來nonce。
備注:在二進制的世界里,因為每一位比特都是0或者1,所以比大小,就是比前面的0的數量,前面32位是0,自然小于前面31位是0,這個target的所謂比大小也就是限定個范圍,因為sha256出來的數字都是256位的二進制數字,比誰前面的0多是很方便的劃定結果值的區域的方式。這一點大家忽略的人很多,其實是一個很基礎的數學知識,值得注意。
挖礦的基本思想就是來自上述的信息。在比特幣中的挖礦的過程里實際上就是去找nonce也就是確定了輸出范圍后,去找輸入的值。H≤target
當輸入的值進行hash運算后得到的值符合target的范圍,比如說前面35個0就可以了,你猜出來的值輸入后得到hash值前面40個都是零,那么肯定符合要求,實際上前面35個0就滿足條件了嘛。
然后你把這個信息公布出去,別的礦工看到你的nonce值,也去hash一下,很快就知道你這個nonce是合適的,可以滿足target的要求。這里就用到了哈希函數的計算速度快的特性。
本文總結了單數散列函數也就是哈希函數的特性,這就是很多區塊鏈應用的基礎以及比特幣加密挖礦的基本原理。文章開頭說過,比特幣運用的密碼學除了函數函數,還有一個非常重要的內容是:數字簽名。這個我們很快就會講到。
目前世界上所謂的區塊鏈落地應用,其實有時候用的是比特幣的數據結構,有時候用的是UTXO模型來結算。有的時候說是溯源,有的時候說是合約。很多的應用出來,不管是什么樣的概念,多數都要用到哈希函數,利用哈希函數5種特性中的一部分。
隨著文章講解的深入,關于比特幣,關于行業的信息都在展開,慢慢的大家更能明白,為什么說哈希函數是比特幣和區塊鏈行業的基礎了。
作者:村頭二舊
Tags:比特幣ASHHASHNCE40億比特幣能提現嗎CashCow FinanceFilecoin Standard Hashrate TokenChickenKebab Finance
本周一Forbes刊文列舉了企業區塊鏈想要成功必須要具備的五個關鍵要素。文中稱,區塊鏈的作用是由網絡效應驅動的。也就是說,共享平臺上的參與者越多,其潛在價值就越大.
1900/1/1 0:00:00在被稱為區塊鏈1.0的比特幣和2.0的以太坊出現之后,很多期待抓住下一個風口的人就開始樂此不疲地尋找能被稱為“區塊鏈3.0”的種子項目。其執著的程度,簡直不亞于歐洲人尋找“第三羅馬”的熱情.
1900/1/1 0:00:00今日,據多方消息,礦機生產商嘉楠耘智將在10月中下旬附近披露招股說明書,并于10月底公開路演、認購,具體上市時間為11月8日上市。歷經坎坷,礦業巨頭的上市夢終于要成真了.
1900/1/1 0:00:00以太坊上的去中心化自治組織MakerDAO的穩定幣Dai,是目前最受歡迎的DeFi之一。目前,大約有2%左右的以太幣在Maker的抵押債務頭寸的智能合約里,價值約為3億美元.
1900/1/1 0:00:00隱私保護將成為無國界加密貨幣的一個特征,但不會成為其核心特征。用戶不應該單純為了實現金融隱私(financialprivacy),而在價值較低、安全性較差的加密貨幣上承擔資產負債表風險(例如,出.
1900/1/1 0:00:00據Bitcoinist10月2日報道,比特幣網絡挖出了一個出塊時間異常緩慢的區塊,挖出該區塊總共耗費了119分鐘。盡管比特幣網絡的挖礦算力在近期創下了新高,但這種反常的現象還是發生了.
1900/1/1 0:00:00