做了一个完全手动生成加密币助记词的小工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MuskLee
V2EX    Bitcoin

做了一个完全手动生成加密币助记词的小工具

  •  
  •   MuskLee 2024-07-21 13:54:01 +08:00 2202 次点击
    这是一个创建于 493 天前的主题,其中的信息可能已经有所发展或是发生改变。
    记词的方法一般由钱包生成,存在风险,因为内部运行我们并不知道,所以做了一个完全手动透明可离线的

    使用说明:

    https://yes.do/d/31

    工具地址:

    https://yes.do/tools/bip39/bip39.html
    7 条回复    2024-07-23 14:56:34 +08:00
    zictos
        1
    zictos  
       2024-07-21 14:13:45 +08:00
    直接用私钥就行了,没必要用助记词,根本就不指望能记在心里。而且助记词必须用 24 个单词,不然安全性比直接用私钥低很多。
    agegcn
        2
    agegcn  
       2024-07-21 15:13:17 +08:00
    python 下也就几行代码吧
    acess
        3
    acess  
       2024-07-22 21:55:35 +08:00
    @zictos
    secp256k1 作为非对称密码,强度只相当于 128bit 的对称密码,也就是 BIP39 12 单词的强度。

    要是说地址是公钥的 hash ,而不是公钥本身……确实币圈流传过一篇文章,说不直接暴露公钥含有一定程度的量子计算机抗性,但……btc 这边最新一代的 taproot 地址全都是裸公钥,开发者为了给这个做辩护就在 stackexchange 上说过这个问题,里面还提到过,比如上古时代巨量的币都是 p2pk 裸公钥,还有很多其他情况也会暴露公钥,比如地址重用,比如 hd xpub 主公钥被透露(比如透露给钱包服务器),于是从经济方面考虑,这些公钥暴露的币仍然足以摧毁 btc ,于是就不用担心这个问题( x

    嘛反过来说如果未来哪天真的有了量子计算机,是不是还存在某种迁移方案?或者说很久以前我听说过也许可以做个零知识证明,既能对外界证明我知道一个 hash 对应的公钥,又不用把公钥公开透露出去,不知道能不能做,如果能具体又是怎么做的。


    再有一个就是,可以上溯到神圣的白皮书本身的,地址不要重用以便一定程度上保护隐私,所以为了方便换地址,乃至扩大一点概念为了方便管理钱包(分账户,分不同用途),甚至是扩展到方便管理其他币种、全部都用一个种子,所以有了 BIP32 HD 钱包、BIP44/49/84 等等规定标准推导路径……但老实说我感觉隐私方面是否有益处好像受到很大挑战,HD 钱包本身就给我一种好像是……

    过度工程的感觉,老实说。确实,感觉实际上可能并没有那么大好处,反倒各种蛋疼。

    只是看上去很优雅又能全面地照顾各种需求,但落到实际上各种蛋疼,从历史遗留问题( BIP49 提出较迟,有些钱包在有 BIP49 统一标准之前就找一个简单的路径先行实现了 HD 钱包,但这个其实蛮特殊,作为例子提出来不好),到 gap limit……
    acess
        4
    acess  
       2024-07-22 21:59:53 +08:00
    作为很久以前有过类似想法的人,“同行”相轻,我对楼主的作品天然就有一种偏见(

    于是在我的视角看来就想挑刺……比如 ian coleman 的 bip39 工具本来就支持 raw entropy 输入不是么?那么楼主这个工具有什么独到的地方?难道是照顾没有键盘只有触屏的平板电脑?
    acess
        5
    acess  
       2024-07-22 22:27:07 +08:00
    我的想法是这样的:

    BIP39 是 11bit 编码一个单词,而且 checksum 还放在最后,而不是分散给每一个单词,所以,

    可以把 11bit 拆分成两部分,后半部分 6bit 展开是 0 到 64 ,作为列标签;前半部分 5bit 展开是 0-32 ,作为行标签,于是就可以做出来一张 64x32 的表格,把全部 2048 个单词都放在一个 excel 表里面。

    BIP39 英文单词还经过特别挑选,前 4 个字母保证唯一,所以表格里只需要填前 4 个字母。

    不考虑色盲问题的话,可以红线切割表格(横向可以,纵向也可以)为 2 个部分,第一个 bit 是 0 就是上半部分/左半部分,或者说在红线的上方/左方;然后用橙线继续细分,第二个 bit 是 0 就是橙线的……我懒得重复打字了。

    整张表格甚至可以直接打印或者抄写(抄写过程中本身即可检查字母顺序是否有颠倒)到一张纸上,所以除了最后 4bit 或者 8bit 是 checksum (取决于你要 12 或 24 单词),前面 128/256bit 可以绝对保证是你自己抛硬币生成的,而不是做了什么手脚提前设置好的。
    acess
        6
    acess  
       2024-07-22 22:27:12 +08:00
    不过老实说我自己觉得做到这种地步意义仍然不大,因为从种子到公钥到地址,乃至后面的每一次签名,你都不可能像这样“肉眼可见的透明”,仍然必须依赖电子计算机,那么如果里面做了什么手脚你还是一点办法也没有。

    尤其是很久以前就有人说过 btc 用的 secp256k1 签名存在 kleptography 攻击,可以操纵 k 值或者 nonce 值来非常隐蔽地夹带泄露数据,而且只泄露给攻击者: https://bitcointalk.org/index.php?topic=883793.0

    (这个问题我记得 Pieter Wuille 讲过一个对策,但现在搜不到了……我大致印象里好像也不太那啥)

    或者不说别的,只要你不是当面交易,那比如交易所的充币地址(又或者是商户的收款地址)你必须从网上才能看到吧,然后浏览器里有恶意插件什么的,给你劫持替换了,还是完蛋。

    (这方面倒是可以缓解,比如 bitmex 就是做了虚荣地址挖矿我记得,3BMEX 开头,这样一来,生成这种地址多少稍微有点计算成本……还有像是 Andreas Antonopoulos 他就是找了个虚荣矿池挖了一个多星期才挖出来自己公开用的地址)
    lisxour
        7
    lisxour  
       2024-07-23 14:56:34 +08:00
    我用大牌钱包不比用你这种私人软件安全一亿倍?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1528 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 19ms UTC 16:40 PVG 00:40 LAX 08:40 JFK 11:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86