3 个稳定版本
2.3.0 | 2021 年 5 月 1 日 |
---|---|
2.2.0 | 2021 年 5 月 1 日 |
2.1.0 | 2021 年 5 月 1 日 |
#12 在 #门罗币
59KB
1K SLoC
加密钱包生成器
这是一个生成助记词并从助记词生成加密货币钱包的工具。这样,你只需要记住一个助记词,就可以从中生成多个货币的钱包。在生成步骤中可以添加密码,这样你需要助记词和密码才能生成钱包并访问您的资金。我们支持从助记词生成密钥的BIP39和scrypt,并使用BIP32/BIP44进行推导。目前可以推导出比特币(BTC)、以太坊(ETH)和门罗币(XMR)钱包的密钥,相对容易地添加其他货币。
从助记词生成钱包是保护资金的好方法。例如,您可以打印出助记词(或将其刻在金属卡片上以增加耐用性)并离线存储。有了这个助记词(以及可选的密码),如果您的加密货币硬盘意外损坏,您始终可以恢复对资金的访问。或者您随身携带它以从其他地方访问您的资金。
使用方法
1. 生成助记词和相应的比特币钱包
$ crypto-wallet-gen -c BTC
Password:
Repeat Password:
Mnemonic: acid employ suggest menu desert pioneer hard salmon consider stuff margin over bus fiction direct useful tornado output forward wing cute chicken ladder hockey
Password: [omitted]
Private Key: xprv9yUdDyYgknA92Cb4xfsqSXxQzGtELBm1kvXVvmp5MpW3UwjevPGEX29pjR9MAL13UTE1ZDfCwZ7Y3Uwpqv5BGP4cvdkS6DSTbvdYK7RicHk
"mnemonic" 是您需要记住或打印的助记词。WIF 可以输入到您喜欢的比特币客户端中导入比特币钱包。
2. 使用相同的助记词生成门罗币钱包
$ crypto-wallet-gen -c XMR --from-mnemonic "acid employ suggest menu desert pioneer hard salmon consider stuff margin over bus fiction direct useful tornado output forward wing cute chicken ladder hockey"
Password:
Repeat Password:
Mnemonic: acid employ suggest menu desert pioneer hard salmon consider stuff margin over bus fiction direct useful tornado output forward wing cute chicken ladder hockey
Password: [omitted]
Address: 4295Lfg8n2pJiN5eC6YHMGGR4oZ1PuaGJNyNo24wNjrdNPLBSVFFHVEay83fFwJBCWPVumE8xW6wKB6Udj8ttmZoNLDTgsn
Private View Key: c2e6e8597bb5050e57a98d284faf27edc3587d57cccd8a2b3edfd38cdd23af0b
Private Spend Key: 4d93d393f0f2c4a9837524f9d740fa85af54c464864aa8c16d39ef3409781802
就这么多。地址、私钥和私钥可以用于将钱包导入门罗币客户端。
现在假设您失去了对您的比特币或门罗币钱包的访问权限,使用上述短语和步骤 2,您始终可以恢复门罗币钱包,同样您也可以恢复您的比特币钱包。
$ crypto-wallet-gen -c BTC --from-mnemonic "acid employ suggest menu desert pioneer hard salmon consider stuff margin over bus fiction direct useful tornado output forward wing cute chicken ladder hockey"
Password:
Repeat Password:
Mnemonic: acid employ suggest menu desert pioneer hard salmon consider stuff margin over bus fiction direct useful tornado output forward wing cute chicken ladder hockey
Password: [omitted]
Private Key: xprv9yUdDyYgknA92Cb4xfsqSXxQzGtELBm1kvXVvmp5MpW3UwjevPGEX29pjR9MAL13UTE1ZDfCwZ7Y3Uwpqv5BGP4cvdkS6DSTbvdYK7RicHk
安装
1. 安装 cargo(Rust 编程语言的包管理器)
您可以使用这个一步式安装命令。
之后可能需要调用此命令,或者也可以简单地重新启动您的 bash 会话。
$ source $HOME/.cargo/env
此外,请确保您已安装 openssl 和链接器,例如,可以通过运行以下命令来完成:
$ sudo apt install libssl-dev pkg-config gcc
2. 安装 crypto-wallet-gen
$ cargo install crypto-wallet-gen
密钥是如何生成的
该工具使用BIP39来生成助记词,并使用BIP32/BIP44从种子短语和密码派生出派生路径 m/44'/{coin}'/{address}'
。也就是说,对于比特币地址 0
(默认值)我们使用 m/44'/0'/0'
,而对于门罗币(Monero)我们使用 m/44'/128'/0'
。对于比特币,派生的密钥可以直接用作比特币钱包。如果将此类密钥导入比特币客户端(如 electrum),electrum 将从给定的密钥派生出 m/{change}/{index}
,因此完整的派生路径将与 BIP44 方案中的 m/44'/{coin}'/{address}'/{change}/{index}
相匹配。对于门罗币,我们遵循这里描述的算法,这意味着我们将派生的 BIP32 扩展密钥的私钥部分解释为门罗币的私钥。
该网站的示例是此存储库中的一项集成测试之一。还有一些示例在https://iancoleman.io/bip39/上生成。
Scrypt 派生
有一个可选的--scrypt
参数,它将PBKDF2哈希函数替换为scrypt。这有三个效果
- 知道您的助记词但不知道密码的人将面临更大的困难。
- 从助记词生成密钥不再即时完成,现在需要几秒钟(或根据您的硬件几分钟)。
- 您正在离开BIP标准领域,对此没有BIP标准。您不能切换到不同的工具,并且当您需要从助记词生成密钥时,将依赖于此工具可用。为了安全起见,最好保留源代码副本。
依赖项
约20MB
约343K SLoC