我知道在以太坊一组助记词可以创建无数个钱包,Trezor 的 Passphrase 是助记词+passphrase 的基础上再生成一个钱包。
但是我不太明白的是,如果把助记词导入到其他的钱包,比如 metamask ,又怎么使用这个隐藏钱包呢?
1
TangMonk OP 如何用 web3.js 实现类似的功能呢?
|
2
kkx 2022-02-01 18:38:14 +08:00 2
hdwallet(分层确定性钱包) 都是通过 master key 生辰各种无限个钱包, 你知道吧中间路径数改了又能生成新的系列了
如果加盐了 那应该需要吧加了盐之后的 key 倒入到 metamask 上而不是助记词本身 |
4
acess 2022-02-04 14:04:55 +08:00
搜了一下,说别的 eth 钱包有支持 BIP39 ,比如 myetherwallet 。
另外我印象里 ian coleman 的 BIP39 工具也能输入 passphrase ,不过一般不推荐直接用这个工具导出的私钥,如果超过 BIP44 gap limit 导致钱包扫不到之类的。 |
5
acess 2022-02-04 14:17:43 +08:00
另外币圈这个助记词其实蛮够呛。
不少开发者对 BIP39 挑毛病,然后整出来不兼容的新助记词格式,比如 electrum 2.0 助记词、还有 LND 在用的 aezeed 之类的,我没记错的话,最蛋疼的是后面这俩直接就把 BIP39 的英文单词表原封不动拿去用了,于是就可能产生混淆问题,如果运气“够好”就可能会生成按照不同 checksum 规则校验都通过的助记词,比如按照 BIP39 校验通过、按照 electrum2.0 校验也通过…… 那些开发者挑刺说“BIP39 缺少版本号设计、没有规定 HD 派生路径”也不是完全没道理。就比如,一个助记词一直都是当作 ETH 钱包用的,如果导入 BTC 单币种钱包,很显然扫出来 BTC 余额就是 0 。除此之外还有更蛋疼的案例,比如一些 BTC 钱包没支持隔离见证,然后如果导入的那个助记词原先在用隔离见证,那么很显然也会出现类似的现象,扫余额就扫不全,隔离见证的余额(因为不支持嘛)就扫不到,看上去好像丢币了一样。(而且我也不知道早年是啥情况,据说一开始并没有 BIP44/49/84 之类标准规定 HD 派生路径,像 bread wallet 就是这样) 但在 BIP39 设计的角度看,这不是 bug 而是 feature ,正是“缺少版本号设计、没有规定 HD 派生路径”才能同时支持多个币种、多个地址格式、多个“子账户”,而且未来要支持新币种 /地址格式 /子账户都可以直接沿用老的、无需重新备份。 |
6
acess 2022-02-04 14:18:31 +08:00
啊,4 楼我漏打 passphrase 这个单词,更正一下:
搜了一下,说别的 eth 钱包有支持 BIP39 passphrase ,比如 myetherwallet 。 |
7
acess 2022-02-04 14:20:45 +08:00
BTC 隔离见证这个例子其实并不是最蛋疼的,bread wallet 这个才是蛋疼,因为它当年用 BIP39 的时候走的 HD 派生路径并不是(貌似是后来才出现的) BIP44 规定的,于是后来遵守 BIP44 标准的钱包反而扫不到 bread wallet 的 BTC 余额……
|