時間:2022-02-19|瀏覽:542
1.通過哈希函數的結果, 區(qū)塊鏈將數據串聯成一個難以篡改的連接
2. 比特幣、以太幣、瑞波幣等電子加密貨幣(題外話,有人說要正名為密碼貨幣),通過哈希函數產生錢包地址
3. 采礦加密貨幣(Mining)使用世界Hash Rate: TH/s(trillions of hashes per second)來計算區(qū)塊鏈 network的運算能力
4. Bitcoin通過調整哈希函數的難度Bitcoin network平均每10分鐘產生一個block內存塊。
讓我們開始了解哈希函數算法
首先,哈希函數有以下兩個特點:
1. 無論傳入(input)哈希函數的數據量和哈希函數回傳的數據長度固定相同input,回傳
2. 相同的output;不同的input,回傳不同的output;
換句話說,哈希函數的回傳結果(稱為hash value),是一個長度一致,但是數據內容卻是獨一無二(unique)值。所以,如果你看到兩者完全不同。hash value,我們可以推斷它的原始性input一定不一樣;相反,兩者是一樣的hash value,其原本的input就像兩顆豌豆一樣。
我們可以用Python內置的SHA-256 Hash Algorithm,展示上述哈希函數的特性
import hashlib
x1=”my 1st Bitcoin”.encode()
y1=hashlib.sha256(x1).hexdigest()
x2=”I am not Satoshi Nakamoto”.encode()
y2=hashlib.sha256(x2).hexdigest()
print(f’y1= {y1}’)
print(f’y2= {y2}’)
print(f’y1 include {len(y1)} words’)
print(f’y2 include {len(y2)} words’)
若未安裝Python,可以用下面的網站試試,看看my 1st Bitcoin Hash后面的值使用嗎?Python跑出來的值(y1=后串)是一樣的:
https://anders.com/區(qū)塊鏈/hash.html
加密哈希函數是哈希函數在密碼學中的應用。SHA-256是加密哈希函數的實用產品。
哈希函數還有另一個特點:one-way(單向)function
以上述的Python以程序為例,已知input值=”my 1st Bitcoin”,透過sha256 function,可快速計算hash value=”a5e4c0673fcedff2bc2174123e97b511d5d17f4317869e7bd60d0a6d3d7fa1c6”;但反過來說,我們想從”a5e4c0673fcedff2bc2174123e97b511d5d17f4317869e7bd60d0a6d3d7fa1c在這一系列數據中反推出input的值:”my 1st Bitcoin,唯一的辦法就是通過暴力解法,也就是不斷地把字串扔給sha256 function,直到得到hash value是一樣的,即傳入input字串為”my 1st Bitcoin只有這樣,我們才能得到答案。你能想象猜測的概率有多低?如果你能猜測,你就不必在這里研究內存塊鏈。直接買樂透更快。
通過上述哈希函數的三個特性,區(qū)塊鏈構建了內存塊鏈中的數據,一旦寫入就無法修改。
你可以去下面的網站體驗區(qū)塊鏈是如何通過哈希函數緊密連接每個的Block內存塊,并牢固保證已建立和完成Block區(qū)塊的內容很難被篡改。
Base58編碼
你可能在一些網站或Blog我見過這些亂碼數字。在實際應用中,部落客戶或賣家將提供一組非常相似的亂碼Bitcoin addresses,給對方支付比特幣;Bitcoin addresses,它看起來像一堆英文數字的隨機編碼,但也有特殊的設計:所有Bitcoin addresses都是使用Base58進行編碼。
解釋Base先來看看58前比較常見的,比如已經用過了Email上述計算機編碼:Base64。Base64編碼包含26個小寫英文字母,26個大寫英文字母,10個阿拉伯數字(0~9)和兩個特殊字元( 和-)。
Base58是Base64子集合提供了可讀性高、容易發(fā)現和防止錯誤的編碼格式,因此被許多加密貨幣廣泛使用。Base58消除了容易識別錯誤或在某些字體格式中看起來非常相似的字體:數字0,大寫英文字母O,英文字母小寫l、大寫英文字母I,并移除特殊字元( 和-)。換句話說,Base58就是包含了大、小寫英文字母,和阿拉伯數字,但移除了四個字元(0,O,l,I)的集合:
Bitcoin’s Base58 alphabet:
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Hashing Power
粗略估算,Bitcoin network整體的hashing power,2009年不到一秒鐘MegaHash(MH/sec),現在一秒鐘已經超過40秒了ExaHash(EH/sec),用表面數字計算,生長幅度超過40兆。