1. 程式人生 > >比特幣原理入門之三:比特幣私鑰和地址

比特幣原理入門之三:比特幣私鑰和地址

在前面的文章中我們提到,在整個比特幣的系統中,有一個東西在其中扮演了非常重要的角色,就是那個神奇的錢包。關於錢包,它那麼神奇,那我呢準備在下一個視訊中再詳細介紹,在介紹錢包之前,我們先插入今天的這文章,講講比特幣的祕鑰和賬號,為下個文章錢包的隆重出場做個鋪墊。

首先,大家來回憶一下,那個神奇的錢包,到底神奇在哪?對了,它能根據需要,產生很多的賬號,那什麼東西能證明這個賬號裡的錢是你的呢,就是跟這個賬號對應的密碼。你只要擁有這個賬號的密碼,這個賬號裡的錢你就可以使用。我們暫且把這樣一一對應的一個密碼和一個賬號稱為一個密碼賬號對。

我們重複一下我剛才說的話,根據需要,產生很多賬號。從這句話我們衍生出兩個問題,第一,根據需要,那什麼時候你需要呢?就是你要交易的時候吧,無非是兩種情況,要麼是別人給你轉錢的時候,要麼是你給別人轉錢的時候。這個很好理解,你可以把一個密碼賬號對想象成一張銀行卡。當別人給你銀行卡打錢的時候,你只要把銀行卡的帳號,也就是比特幣賬號告訴別人就行了。但是當你要給別人打錢,那你就必需知道密碼,當然卡里還得有餘額,對應的比特幣系統,你必須知道賬號和與之相對應的密碼,並且該賬號中得有餘額。好了第一個問題解決了,那第二個問題,如何產生賬號呢?想象一下在現實生活中,你想有張新的銀行卡就必需去銀行辦理,辦理的時候會讓你設定一個密碼。在比特幣系統中這個過程就簡單多了,但順序卻不一樣,是先有密碼,再有賬號。也就是說,你先得想好一個密碼,然後根據一種特定的演算法,自動生成一個賬號與密碼對應。當然剛生城的賬號是沒餘額的,跟新辦的銀行卡一樣。所以說新銀行卡再多也沒用,關鍵的是,卡里得有錢!

好了,上面的這個過程應該是很好理解的,接下來,我們再把上述過程引入到比特幣系統中,用專業術語講一遍。

上面我們提到了密碼,現實生活中銀行卡密碼是一個6位數,也就是說範圍從000000到999999之間的任意一個數字。比特幣系統中,我們把這個密碼稱為私鑰。私鑰的取值範圍有多少呢,可以從0到2的256次方之間的任意一個數字,2的256次方到底有多大呢,你有多少種選擇呢,大致可以理解為整個地球上有多少個原子,你就有多少種密碼選擇。在這麼多的選擇中,比特幣錢包會依賴外界的各種隨機性,隨機產生一個私鑰。就像這樣,0100110100101…010001,共256位,這樣的一個私鑰。那麼這是個二進位制數字,計算機的世界用這種格式啊,我們人類可記不住啊,所以我們會看到實際應用中,我們會有很多其他形式的私鑰,比如用一個64位的字串,或者是16個單詞,或者是一句話,等等來表示私鑰,這都是將上述原始的私鑰採用不同的編碼方式展示給我們使用的人,便於我們記憶。大家只需要記住,私鑰就像白骨精,可以有各種不同的外在形象和表現形式,但無論變成什麼樣子,它還是它。

好了,現在私鑰產生了。接下來,根據比特幣系統的規則,我們會把這個私鑰,我們記為小k,把它經過一個密碼學上的加工轉換,變成另外一串字元大K,我們稱大K為公鑰。然後再經過另外一個密碼學特定轉換,把公鑰大K轉換成再另外一串字串A,最後的這個字串A,就是賬號了,在比特幣系統中,我們稱它為地址。整個轉換過程,由小k到大K再到A的過程,是不可逆的。大家一定要跟上面私鑰的編碼轉換區分開來,上面提到私鑰可以有各種不同的表達形式,這各種不同的表達形式之間可以相互變換,這是編碼上的轉換。但咱們這個私鑰到公鑰再到地址的轉換,是密碼學上的轉換,就是說,由私鑰可以得到公鑰,卻不能由公鑰得私鑰,可以由公鑰得到地址,卻不能有地址得到公鑰,他是單方向的,有去無回的。另外,某個私鑰,在任何情況下,不同的時間,不同的地點,均只能得到同樣的公鑰,也就只能得到同樣的地址,他們是一一對應的。所以,我們如果先忽略掉大K,你的某個私鑰就轉換成了特定的某個地址A。如此一來,一個私鑰和一個與之對應的地址配成對,就類似於現實生活中開了一張銀行卡了,而且這一切,你自己就可以一鍵完成哦。

好了,學到這,你相當於已經學會在比特幣系統中無限開通新銀行卡的技能了,現在你缺的只是一個工具,那就是比特幣錢包了。我們下個文章就講講它,讓你先在比特幣網路上開上幾張銀行卡,敬請繼續關注吧。

如果你喜歡區塊鏈喜歡昂刺魚老師,可以掃碼加入我的小密圈,我們一起親密的玩耍


也可以加入我剛建的QQ群71789361,裡邊有一些不錯的學習資料供下載。