比特幣搬家小記

話說美股漲得很高, 不知道要投資啥好? 所以想起我挖的比特幣, 是不是該搬出礦場了呢? 雖然不知道搬出來幹嗎? 但是萬一礦場倒了或是被駭客入侵了, 那我不就虧了? 因此詢問 Google 大神後, 決定把錢包搬到手機的某個 APP. 幾年前開挖的時候沒有很認真想, 一口氣裝了好多個 APP, 有些現在不紅, 網路上沒人推薦了. 那些能夠長青的 APP 還滿厲害的.

從 NiceHash 搬出來時, 它扣了我一點手續費 (0.0001 BTC ~= 4.25 USD). 好消息是 24 小時內果然就入帳了, 取款相當順利. 倒是在手機登入時很搞笑! 要兩階段認證!? 蛤? 我完全不記得是那個 auth 軟體, 想半天也試半天才找出它的身影. 就這樣安然過了一段時間, 原本以為這樣就搞定了.

萬般無奈想不到, 昨天我的手機電池忽然不行了. 到 25% 左右就直接歸零關機, 我只好再幫比特幣搬一次家. 首先當然是在第二台手機上裝 APP, then…我就不會了. Google 了一下說是有 private key 或是當初的種子就能直接轉移.

不過手機 APP 這邊要先決定好是哪一種錢包, 才能走上面的流程. 例如標準錢包, 兩階端認證錢包 (wallet with 2FA), 多人授權錢包 (multi-signature wallet)…等等. 從上面的經驗, 當然是選兩階段認證錢包對吧! 不過它還有一個 import private key 的功能, 這讓我誤以為可以直接 import private key [1] 或是輸入種子就好. 結果這條路走不通. 只好先去吃早餐.

有個霸氣的方法, 只要再開新個錢包,自己轉給自己總行了吧!理論上是可以, 不過這樣還會被 APP 收手續費, 感覺是耍白癡送錢給人家! 直到吃完晚餐後, 多少變聰明一點點, 乖乖回去選兩階段認證錢包, 然後選我已經有種子了, 再把珍藏的 12 個英文單字輸進去, 錢包就轉過來了. 當然這個過程還要做一次兩階段輸入的驗證. 安全性還滿高的.

非當事 seeds

最後 APP 有個選項看起來是指可以讓兩個錢包並存, 所以我兩隻手機上都有比特幣了. 當然地址是一樣的, 錢沒有多一倍! 題外話是上次轉帳完有點不甘心, 所以想叫 GTX4090 幫我把手續費挖回來, 結果半天只挖到 0.5 USD, 算起來要挖一週多才可以拿到 4.5 USD, 而且未必能賺回電費. 想想還是算了. 挖礦的黃金歲月已經過了.

[REF]

  1. https://pascal-bergeron.com/en/posts/export-private-keys-electrum/

PKI 小檔案

看完了秘鑰, 再來看一種公開鑰匙的加密方法 – PKI (Public key infrastructure). PKI 和 public key algorithm 加密並不一樣, 主要的差別在於 CA (certification authority) 的有無.

先來看一般的公開金鑰加密方法 (個人一直不懂的是, 為何沒事要把鑰匙取名叫金鑰, 純金又不能做鑰匙?).

如果仍然用 A 和 B 來舉例, 此時還需要其他的人或物介入其中. 一個是公正的第三人 C, 另外一個是數位憑證.

當 A 想要在 B 證券公司網路下單,  此時 A、B 不但要彼此檢查對方的身分, 也要防止下單資料被駭客修改了.

為了辨識資料是否被修改, 需要用到雜湊 (hash) 的技術. 首先把文件經過雜湊演算法計算, 產生一組固定長度的指紋 (fringer print) 或是數位摘要 (digital digest), 比方說 128 或 160 bits. 此時, 只要文件的內容經過修改, 就很難得到一模一樣的指紋.

當然, 這個指紋的傳送, 也不適合適明文, 它也是要加密的. 經過 A 的 private key 以 RSA 之類的演算法加密之後, digital digest 就變成了 digital signature (數位簽章).此時 A 已經準備好要傳送的明文文件, 以及數位簽章, 接著就可以透過 share private key (所謂共同金鑰) 加密 (如 DES 演算法).

不過, 此時 B 公司並不一定會保管與 A 共有的 share private key . 畢竟 B 公司可能有很多很多的客戶, 要是幫每個客戶、每筆交易都存一隻鑰匙的話, 那也挺麻煩的. 鑰匙可以重複使用的話, 感覺又太不保險了.

所以 B 公司希望 A 乾脆即時產生一隻share private key , 然後一起送給 B, 這樣就省事了. 當然, 鑰匙不能就這樣大剌剌地傳過來, 順便加個密吧! 因此 A 要用 B 公司指定的 B public key 來加密 share private key (如 RSA 演算法)

當 B 公司收到資料之後, 首先用 B 的 private key 來解 B 的 public key 加密的 share private key. 得到 share private key之後, 再用它來解 DES, 得到 A 的明文和 A 的數位簽章.

接著 B 公司再用 A 的 public key 來解數位簽章, 得到數位摘要. 這個數位摘要就可以用來判斷 A 的文件, 是否遭到竄改.

到這裡為止, A、B 雙方已經可以互相溝通了. 只要 A 和 B 都有 private key、public key 就行.

繼續閱讀「PKI 小檔案」