[C#] Ethereum 以太坊產生高清錢包 (HD Wallet)

2021-10-27

最近在弄一些東西,這篇來產一下以太坊 ( Ethereum ) 的高清錢包( HD Wallet )

我發現我之前有寫過比特幣的高清錢包  手把手來玩比特幣 (Bitcoin) - 製作高清錢包

這一篇來產一下 Ethereum  的高清錢包,加上如何產出可以匯入到 Metamask 的 JSON file. 




1. 首先,引入一個 library  Nethereum.HdWallet  



2. 接下來就是 code 的部分,在 new Wallet 的時候放入的 words 這字串是要用 空白隔開的單字,只是因為我是用中文,所以就是 24 個中文字。


所以在傳入之前,我是先把中文 24 個字用空白隔開,所以你看其他範例應該可能會是 "word1 word2 ... word24"
Result:

3. 轉換成 JSON ,其實你拿上面的 result , 你直接複製 privatekey 去 貼在 metamask 中,你也可以成功匯入



不過還有一種作法,就是匯入 json file 檔案,然後輸入密碼來匯入



C# Code :


Result:



總結一下,為何乙太跟比特不一樣不能合併打包打款為何還要 HD 錢包呢,其實主要就是 "方便管理" ,因為你的助記詞密碼就只會有一組

然後產出的錢包本身只有 privatekey 要保存,而且只要記住助記詞跟密碼都可以在把錢包推回來。不過不代表你資料庫可以不要記錄錢包只記錄index 

其實,推的速度蠻慢的,所以囉,建議就是 預產=>分配=>查詢 ,看懂的就知道我在說啥..

reference :


當麻許的超技八 2014 | Donma Hsu Design.