回覆列表
  • 1 # 打雜的碼農

    首先,要回答這個問題,需要對比特幣的公鑰私鑰和錢包地址,這幾個的關係搞清楚。

    一、比特幣公鑰私鑰演算法

    在《比特幣:一種點對點的電子現金系統》一文中,中本聰提到了用橢圓加密演算法(ECDSA)來產生比特幣的私鑰和公鑰。

    基於橢圓加密的原理:私鑰是可以計算出公鑰的,再由公鑰經過一系列數字簽名運算就會得到比特幣錢包地址。

    如下:

    私鑰 —— 公鑰 —— 比特幣錢包地址

    而比特幣中間用到了SHA256加密、RIPEMD160加密和BASE58編碼。

    二、私鑰

    私鑰就是個隨機數,只不過,這個隨機數的機率空間很大(256位,也即是2的256次方),什麼概念了,你可以數數地球上有多少粒沙子。因此別人是不可能和你生成一樣的私鑰的(1/2^256的機率),這是比特幣甚至整個密碼的根基。

    三、公鑰

    而比特幣客戶端看到的私鑰是一串字串呢?其實這字串只是私鑰進行了Base58校驗和編碼之後的格式而已。完整過程如圖:

    經過以上的複雜計算之後,進過11步,Base58編碼,就得到了我們經常看到地址了。

    oxWoHJrU7VBArBQYhCX9NxHa1RuQat5Bya(編造的,舉例用)。

    比特幣的使用者很少會直接看到數字金鑰。一般情況下,它們被儲存在錢包檔案內,由比特幣錢包軟體進行管理。

    四、交易確認

    比特幣錢包的私鑰,作用相當於密碼,用於證明比特幣的擁有者。擁有者必須使用私密金鑰給交易訊息簽名,以證明訊息的釋出者是相應比特幣地址的所有者。如果沒有私鑰,使用者傳送的簽名就無法被驗證。區塊鏈上賬本不會認可該比特幣的所有權,使用者也就不能使用相應的比特幣。

    回答問題,也就是說私鑰是唯一的,進過計算得到的公鑰是唯一的,錢包地址也是唯一的。如果別人拿到了你的私鑰,那麼他可以計算出公鑰,可以生產簽名,也就擁有了你的比特幣,如果該了私鑰剛好是別人的私鑰,(機率非常小,因為是隨機的,不重複的,空間地址那麼大,而且就比特幣的私鑰量來說,也只是佔隨機私鑰地址空間很小很小很小的部分。打個比方:就相當於整個私鑰空間是地球所有的沙子這麼大,每一粒沙子唯一標識,而比特幣私鑰只使用了你腳底下那麼一點沙子,你隨便改一個,可能改到上海某地的一粒沙子上了,而不是你腳底下的某粒沙子。而那樣的沙子地下是沒有比特幣的),而如果沒有備份私鑰,改了之後,你無法找到私鑰,那麼你將永遠失去這個私鑰下的比特幣。

  • 中秋節和大豐收的關聯?
  • 這些手機的外號真的都名副其實嗎?