私钥公钥学习心得(二)比特币与支付宝
“本文由幣乎(bihu.com)優質內容計劃支持”
上一篇文章,我寫下了公鑰、私鑰、數字簽名與數字證書之間的關系。
大概總結一下就是下面三項:
1 公鑰與私鑰是一對秘鑰。私鑰用來加密,公鑰用來解密。私鑰自己保存,公鑰是公開的。可以通過私鑰推導出公鑰,公鑰卻不能推導出私鑰。
2 數字簽名的意思就是將待加密內容哈希運算得到一個哈希值,用私鑰進行加密這個哈希值。如此便可以通過簽名驗證內容是否是真實未被篡改過的。(具體可以查看上一篇文章的東邪西毒的例子)。
3 數字簽名只是保證了內容的完整性,數字證書則表明了此數字簽名屬于誰。通過數字簽名和數字證書則可以驗證某一段內容是否被修改過以及是否來自于某人。
這篇文章我將繼續寫下我的學習心得,主要是這兩個方面:
一、公鑰、私鑰、非對稱加密算法與哈希運算。
二、比特幣體系與支付寶的區別(繼續用東邪西毒的例子來寫)
一、公鑰、私鑰、非對稱加密算法與哈希運算
先簡單介紹一下,私鑰與公鑰是一對秘鑰,公鑰是根據私鑰進行數學運算得到的(比如橢圓曲線算法)。私鑰可以是隨機產生的,只要有一個足夠隨機性的熵源。可以利用系統隨機數,也可以自己拋硬幣產生隨機數。那么私鑰可以推導公鑰,公鑰不能推導私鑰如何理解呢?可以想象有兩個非常大的質數,可以很容易算出這兩個質數的乘積。當質數足夠大的時候,拆分這個乘積找到這兩個質數就會變得非常困難。
說人話:拋硬幣256次,得到一個私鑰,再進行運算得到公鑰,公鑰無法計算得到私鑰。
非對稱加密算法:利用公鑰私鑰對來進行加密解密的算法,比如RSA算法,除了加密貨幣之外,上段時間爆發的勒索病毒采用的也是這種加密算法。
說人話:非對稱加密算法就是采用了這種公鑰私鑰方式的的加密算法。
哈希運算:指的是將待加密內容進行數學運算,得到指定長度的加密串。其一個最重要的特點便是無法進行逆運算。比如MD5算法可以將任意長度的內容,加密為長度為16個字節的值。CRC32算法可以將任意長度的內容,加密為4個字節的值(一個字節是八個二進制位)。但是CRC32相對于MD5來說更容易發生碰撞。
說人話:哈希運算就是對文件內容求得一個固定長度的指紋(或者理解為拍了張照片)
二、比特幣體系與支付寶的區別
第一代貿易交換(銀票紙幣年代)
東邪和西毒都很有錢,但是當時條件有限,只能用銀票來交換。每次西毒想找東邪買幾本九陰真經來看,便需要長途跋涉,把錢送到東邪手里,再從東邪手里拿到九陰真經,極其不方便。
第二代貿易交換(網銀支付寶年代)
過了一段時間,東邪西毒進入了網絡社會,這時候中原大地出現了一個叫做銀行的機構。銀行給了東邪西毒一個建議:你們二位把錢都給我,我給你們保存著。以后你們交易的時候,告訴我醫生就好了。就這樣,西毒又想找東邪買九陰真經了,然后他這樣做:
(1) 西毒給銀行打電話,告訴銀行給東邪轉100塊錢。
(2) 銀行便從西毒的錢袋子里拿了100塊錢放到東邪錢袋子里,然后告訴的東邪,西毒給了你100塊錢。
(3) 東邪收到錢,把九陰真經發給了西毒。
第三代貿易交換(去中心化的區塊鏈交易(比特幣體系))
我們想想,第二代確實很方便了。但是同樣出現了幾個問題:1 我們的錢并不屬于我們自己,我們能拿到的只是一個虛擬的數值,銀行擁有著對我們財富生殺予奪的權利。2 銀行的擁有鑄幣的權利,每一次鑄幣都可能是對我們財富的剝奪。 3 整個體系運行在不透明的機制下,我們對于銀行毫無隱私,銀行對于我們來說卻是無比神秘,不透明就容易出現腐敗。東邪和西毒開始思考如何擺脫銀行的控制,于是他們想到了利用非對稱加密算法來聲明自己的財富所有權。
于是,他們每個人生成了自己的私鑰和公鑰,他們的交易便有了如下幾步:
(1 )西毒首先用自己的私鑰加密了自己的錢包。只有自己的私鑰才能打開錢包,世界上除了西毒自己沒有人能夠控制這筆錢。
(2)西毒想給東邪打100塊錢,西毒便用自己的私鑰打開錢包拿了100塊錢,然后寫一條消息(將這100塊錢給東邪),再用自己的私鑰對這條消息進行數字簽名。然后把簽名好的消息和自己的公鑰發到網絡上。
(3)這時候網絡上出現無數個節點,就是曠工。這些曠工收到這個交易之后,拿到里面的公鑰,然后用公鑰去驗證消息的真實性,發現確實是西毒發的,交易有效,根據這條消息,便有100塊錢流入到了東邪的賬號里。
后來,東邪西毒發現這種方法,自己的錢只有自己能夠控制,確實比之前的神秘的網絡銀行更加安全透明,于是推廣給了更多人使用。
注:文章中沒有設計到挖礦,和比特幣的交易過程有些出入,希望大家理解。
前一篇文章:公鑰、私鑰學習心得(一)https://steemit.com/cn/@mooninwater/67d3ho
轉載于:https://www.cnblogs.com/wingss/p/8431600.html
總結
以上是生活随笔為你收集整理的私钥公钥学习心得(二)比特币与支付宝的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BIOS 编译过程:C文件到EFI文件
- 下一篇: SuperMap GIS 10i大数据G