比特幣的密碼原理是什麼?比特幣的密碼原理講解

買賣虛擬貨幣

 我們都知道,比特幣就是一種運用密碼學來投資的加密貨幣,那麼,比特幣究竟是透過什麼樣的操作來保證交易過程中的保密性呢?比特幣的密碼原理又是什麼?

比特幣錢包中包括了一個私匙和一個公匙,簡單的來說私匙就像我們自己的銀行賬戶密碼,只有透過這個密碼才能開啟我們的賬號去轉賬,而公匙就是我們的賬號,當我們把賬號發給別人對方才可以轉賬給我們。而私匙和公匙的單一轉換性確保了轉賬來源方的私密安全。什麼叫單一轉換性?就是說只有私匙可以轉化為公匙,公匙不能反向轉化為私匙。私匙是一串隨機選擇的數字,透過橢圓曲線運算(elliptic curve multiplication),轉化成另一串數字,也就是公匙。接著,再透過一則單向性雜湊密碼方程(one-way cryptographic hash function),得到比特幣地址。在這兩個運算當中,因為他們均非對應方程,也就是說輸入值(input)只會有一個對應的輸出值(output),但輸出值會有多個對應的輸入值,所以沒有人能透過公匙反方向追查私匙,確保了私匙的安全性。

為了方便大家理解,我來舉個例子:在一個鵝毛大雪的冬天,小明從吉林步行送外賣到大連,但是雪太大了,他居然可以做到踏雪無痕。所以,當小明走到大連,當地人問他:“你的外賣是從哪裡來的?”小明微微一笑,不予回答。這時,大連人無計可施,因為他們不能從腳步印去判斷小明從哪裡來的,只有小明自己知道他是從吉林來的。

找到一個隨機的數字是在生成“鑰匙”裡面第一也是最重要的一步。那麼,區塊鏈是怎麼樣使得這個隨機生成的數字不會與另一個數字重合呢?原來,在比特幣系統裡面包含了2^256(準確的來說是n=1.158*10^77)個數字,這個數字有多大呢?大過宇宙裡面所有原子數量的總和。基於這一點,這個隨機生成的數字與另一個隨機生成數字重合的機率微乎其微。

選擇了這個隨機數字之後,我們需要透過橢圓曲線運算來生成公匙。它的代表公式為:K=k*G。大K就是公匙,小k是私匙,G是一個常數,我們稱之為轉化常數(generatingconstant)。

上面的圖片就是比特幣的橢圓曲線,這個特殊的曲線叫secp256k1曲線,它包含了一個這樣的方程:y^2 = x^3 + 7 在 有限集的p的域裡。而p是一個很大,接近2^256的質數。但又由於這個方程是被定義在有限的數里面,事實上,這個曲線並不平滑,而是由很多密密麻麻的小點組成,儘管我們可以理解這個曲線是平滑並具有在實數集的性質。

接著,我們需要在這個函式方程裡找到G,透過數學計算,把G放大小k倍,得到大K。這步數學計算相當複雜,並且不能反向操作。

比特幣的地址可以理解為交易中的收款地址。在獲得公匙後,我們需要透過單向性雜湊密碼方程去得到地址。這個方程通常可以理解為A=RIPEMD160(SHA256(K))。這其實是兩個方程,先把公匙代入安全雜湊演算法,SHA256,再代入到完整性原語評估訊息摘要(RIPEMD160)。為了避免一些數字和字母的混淆,例如1和I,0和o,比特幣地址只使用58個字元,這種用法我們稱之為Base58Check。

就這樣,透過層層加密,我們的私匙終於演化為一個比特幣的地址,付賬人也終於可以透過這個地址來轉賬了。

比特幣理論以密碼學為支撐,構建了一個完備、安全、去中心化的數字貨幣體系,解決了數字資產所有權問題、雙重支付問題、現實世界的通貨膨脹問題甚至還預留了機制使得構建在資產轉移之上的智慧合同成為可能。比特幣當然是偉大的創造,期待比特幣有更好的未來。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;