作为比特币和编程的新手,我正在尝试从助记符生成BTC地址。所以我阅读了BIPs,在Github中找到了实现这些的代码。
我发现Electrum没有实现BIP-39(如果我没有弄错的话,默认情况下),因为Electrum接受BIP-39中无效的助记符!
所以我的问题是:Electrum如何做自己的“从记忆到种子”部分(至少是标准钱包)?如果我没弄错的话,这个“种子字节”就是BIP-32中用来生成密钥的那个。
我尝试了以下Python psuedocode(来自“Electrum Seed Version System”):
hmac=hmac摘要(b“种子版”,b“…(12字助记符)…”,hashlib.sha512文件)
bip32_thing=bip32(secret=hmac[:32],chain=hmac[32:])#默认值:bip32主网版本(idk what this means)
但是我生成的主公钥和Electrum的不匹配(很可能我完全误解了“种子版本系统”)。感谢您的回复!
如果有用的话:我在Python中使用bip-utils。
驻极体
种子
分享
改进这个问题
跟随
15小时前编辑的
16小时前问的
波依波扬
11133青铜徽章
新贡献者
添加评论
1个答案
1
几个小时后,我找到了!它到底是什么助记符()不在助记符.py! (链接)
最相关的部分是它返回的内容:
种子字节=hashlib.pbkdf2\u hmac文件(’sha512’,助记符编码(’utf-8’),b’electrum’+密码短语.encode(’utf-8’),迭代次数=PBKDF2(轮)
式中,PBKDF2_ROUNDS=2048。然后,我就。。。
bip32_node=bip32.FromSeed(seed_byte)#派生路径:“m/”
分享
改进这个答案
跟随