Passpharse 隐藏钱包的原理是什么?

2022-02-01 15:19:12 +08:00
 TangMonk

我知道在以太坊一组助记词可以创建无数个钱包,Trezor 的 Passphrase 是助记词+passphrase 的基础上再生成一个钱包。

但是我不太明白的是,如果把助记词导入到其他的钱包,比如 metamask ,又怎么使用这个隐藏钱包呢?

2222 次点击
所在节点    加密货币
8 条回复
TangMonk
2022-02-01 15:20:58 +08:00
如何用 web3.js 实现类似的功能呢?
kkx
2022-02-01 18:38:14 +08:00
hdwallet(分层确定性钱包) 都是通过 master key 生辰各种无限个钱包, 你知道吧中间路径数改了又能生成新的系列了
如果加盐了 那应该需要吧加了盐之后的 key 倒入到 metamask 上而不是助记词本身
TangMonk
2022-02-01 18:53:32 +08:00
@kkx passphrase 是 BIP39 标准里的吧?为啥实现这个功能的钱包好少
acess
2022-02-04 14:04:55 +08:00
搜了一下,说别的 eth 钱包有支持 BIP39 ,比如 myetherwallet 。
另外我印象里 ian coleman 的 BIP39 工具也能输入 passphrase ,不过一般不推荐直接用这个工具导出的私钥,如果超过 BIP44 gap limit 导致钱包扫不到之类的。
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 派生路径”才能同时支持多个币种、多个地址格式、多个“子账户”,而且未来要支持新币种 /地址格式 /子账户都可以直接沿用老的、无需重新备份。
acess
2022-02-04 14:18:31 +08:00
啊,4 楼我漏打 passphrase 这个单词,更正一下:
搜了一下,说别的 eth 钱包有支持 BIP39 passphrase ,比如 myetherwallet 。
acess
2022-02-04 14:20:45 +08:00
BTC 隔离见证这个例子其实并不是最蛋疼的,bread wallet 这个才是蛋疼,因为它当年用 BIP39 的时候走的 HD 派生路径并不是(貌似是后来才出现的) BIP44 规定的,于是后来遵守 BIP44 标准的钱包反而扫不到 bread wallet 的 BTC 余额……
TangMonk
2022-02-04 22:18:21 +08:00
@acess 怎么收不到你的回复通知

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/831592

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX