比特幣私鑰是什麼?如何生成比特幣私鑰?

買賣虛擬貨幣

如何生成比特幣私鑰?近年來,很多人都把投資的目光,從理財產品上面,轉移到了數字貨幣上來,提到數字貨幣的投資,很多人第一個想到的肯定就是比特幣了,從最開始的幾元一枚,瘋漲到現在的幾千元以內,比特幣給人帶來的收益,可以說是無法想象的,也可以說是獨一無二的,很多朋友在投資比特幣之後,就開始擔心他的安全問題,怎樣給他,生成一個私鑰呢?其實方法特別簡單,小編就在這裡來教大家。如果你擁有比特幣,你可能最關心的是餘額,而決定餘額的是私鑰,所以你最應該關心的,其實是私鑰。當我們談到比特幣安全相關的問題時,我們也會提到私鑰,之前的文章《比特幣的助記符是什麼》裡提到的助記符,其實也可以理解為私鑰的一種表現形式,但私鑰究竟是什麼?也許鮮有人知道。

私鑰是什麼

私鑰是一個256位的隨機數

私鑰的定義非常簡單,但其中有2個專業術語可能會使不瞭解計算機的同學感到困惑,一個是256位,另一個是隨機數,下面內容是該定義的白話文解釋,已經理解了的同學可以跳過:

256位 - 字面上很容易被理解為256個十進位制數字,其實不是的,因為計算機是用二進位制來儲存和計算的,所以256位指代的是256個二進位制數字,下圖是一個例子

隨機數 - 意思是這個數的產生沒有規律

私鑰是一個數字,這個數字可以取從0到2²⁵⁶-1之間的任意值

私鑰可以被破解嗎

看到這裡,你可能也會產生和我一樣的疑惑——私鑰也太簡單了把,我隨便寫一個數,只要不超過最大值,就可以用作私鑰,對嗎?是這樣的,沒錯。

那按照私鑰可以算出公鑰,公鑰可以產生地址的邏輯,豈不是我隨便選一個數作為私鑰,然後算出它的地址,如果這個地址上正好有未使用的比特幣,是不是就代表我破解了別人的賬號呢?

年輕人,你說得沒錯,其實我一開始也是這樣想的,雖然現在回想起來覺得有點Naive……

雖然私鑰只是一個簡單的數字,但它仍然很難被破解,原因在於這個數字的集合足夠大,大到我們很難窮盡所有數字,並對它們進行逐一的驗證。2的256次方近似於10的77次方,10的77次方有多大,我再舉個例子你就清楚了

到目前為止,人類可觀測的宇宙中的原子數約為10的80次方

進一步,因為這個數的範圍很大,所以我們能猜中一個正確私鑰的概率就變得非常低,假設地球上使用比特幣的人數達到100億,也就是10的10次方,則你猜中一個比特幣私鑰的概率是

這個概率到底有多小呢,我再給你舉兩個例子:

"雙色球"一等獎的中獎概率是8×10ˉ⁸。——摘自《中國福利彩票的中獎概率》

從全世界範圍來看(假設全世界人口為70億),一年中每個人遭遇雷擊的概率是175萬分之一(5×10ˉ⁷)。——摘自中國氣象局-《遭遇雷擊的概率有多高》

說明什麼呢?說明被雷擊中的概率 > 抽中500萬的概率 >> 猜中比特幣私鑰的概率

上面的不等式中,我用了>>這個符號表示遠遠大於

從概率的角度,我們確實很難破解私鑰,但此時你可能會問,彩票一等獎和被雷擊中很難發生,在於它們發生的頻率很低,但計算機不一樣,計算機的計算速度很快,我們可以很容易的利用計算機的處理速度,來提升猜中私鑰的可能性,也就是快速計算10的67次方個私鑰,總有一次猜中把。

是的,透過這種暴力破解的方法確實可以實現破解比特幣的私鑰,但它要付出的代價也是極其高昂的,下面我們就來做個試驗。

我在我的Macbook Pro 2015版上執行了一條命令

$ begin=`date +%s`; for ((i=0;i<10;i++));do bx="" seed="" |="" bx="" ec-new="" |="" bx="" ec-to-public="" |="" bx="" ec-to-address="" |="" xargs="" -i@="" ./btc_balance="" -addr="" @=""> /dev/null; done; end=`date +%s` ; echo `echo "scale=2;$end-$begin" | bc`

15

這條命令看不明白沒關係,我來介紹下它的功能:

這條命令會隨機產生10個比特幣的私鑰和地址,並獲取它的餘額,這是暴力破解的基本步驟(其實還差一步判斷餘額是否大於0,如果大於0就代表猜中了,但我們這裡只預估成本,可以省去這一步),產生10個私鑰的目的是為了利用計算機的並行能力,因為我的CPU有4個核心;這條命令還會輸出程式執行所需要的時間,可以看到最後一行的15表示執行了15秒

利用這個程式的輸出,我們就可以計算出猜中一個私鑰需要花多長時間了,猜10個私鑰需要15秒,那麼10⁶⁷次猜測,需要

注意,經過換算,等式右邊的單位已經是年了,透過簡單的實驗和計算,我們可以估算出,想要暴力破解比特幣私鑰,幾乎是不可能完成的任務。

使用安全的演算法產生私鑰

即便私鑰的設計已經足夠安全,但如果使用不當,仍然會產生嚴重的後果,正如統計結果顯示:目前還是有很多人使用1234567作為他們的賬戶密碼——就是一個典型的例子。我們不要自己去生成私鑰,最好借用比特幣軟體,例如錢包或bitaddress.org這樣的站點來幫你產生私鑰,這裡簡單介紹下這些軟體產生私鑰的原理,大致分為3個步驟:

產生一個很長的隨機字串(隨機源)——例如bitaddress.org網站就是透過捕捉人們滑動滑鼠的隨機行為來產生隨機源的。

將步驟1的資料輸入到SHA256 hash演算法,輸出一個256位的數確保產生的數在私鑰規定的範圍之內,否則重新回到第1步

好了,透過對以上的總結,大家對虛擬幣的各個方面有沒有了很深的瞭解呢?希望這篇文章會解答一下您的疑惑和讓您對您的幣種更加了解,會更加深入瞭解虛擬幣。希望大家收穫多多,錢包越來越鼓最後虛擬幣也有一定的風險,希望大家量力而行,要謹慎客觀的分析各方面的因素,綜合自己的自身條件來考慮到底要不要選擇一個幣種。希望本篇文章會幫助到你。如果有其他需要,大家也可以繼續多關注關注我們的文章,會不定時的推送,希望大家透過閱讀我們的文章對您的虛擬幣會有一個更加清晰的瞭解那麼謝謝您的閱讀。

免責聲明:

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

推荐阅读

;