Go-Ethereum

載入 HD(分層確定性)錢包

  • December 28, 2017

我正在嘗試找到一種方法來基於初始種子以程式方式生成乙太坊地址,然後提取落在這些地址中的任何資金。

這是我嘗試過的:

  • 使用生成的 24 字助記符和種子Bitcoin::Trezor::Mnemonic.generate
  • 將其傳遞給digix-gethHD Vault 以生成地址:0xf2D5286B51a8a3326CBC007477435EeC47722228
  • 使用 Rinkeby 水龍頭向其中發送 3 個乙太幣
  • 使用種子和派生路徑 m/0’/0’/0’/0(與 digix-eth 預設使用的相同)在 MyEtherWallet.com 上傳入錢包,但餘額顯示為 0。(這個 gem 似乎只是在下面使用金錢樹
  • 我也嘗試過使用派生路徑m/44'/60'/0'/0來匹配 Trezor 和 setting chain_id = 4,沒有運氣。MyEtherWallet 提供的錢包地址與 Ruby 庫生成的錢包地址不匹配。

在這一點上,我不確定是 Ruby 庫有問題,MyEtherWallet 有問題還是我做錯了什麼。

我現在可以嘗試提取 3 醚嗎?

編輯:這個單獨的工俱生成的地址與 MyEtherWallet 生成的地址匹配。所以這很可能是 Ruby 庫的問題。

我設法讓這個工作。寶石的那個digix-eth叉子肯定有問題。eth我懷疑這是他添加到助記符的填充。無論如何,以下是使用種子生成高畫質地址的方法:

require 'bitcoin'
require 'eth'

NODE_INDEX = 0    # An index corresponds to a unique Ethereum address.
MNEMONIC = '...'  # Generate this using `Bitcoin::Trezor::Mnemonic.generate`.

master = MoneyTree::Master.new(seed_hex: Bitcoin::Trezor::Mnemonic.to_seed(MNEMONIC))
node = master.node_for_path("m/44'/60'/0'/0/#{NODE_INDEX}")
key = Eth::Key.new(priv: node.private_key.to_hex)

puts key.to_address

引用自:https://ethereum.stackexchange.com/questions/34481