自己写了个比特币钱包,能用的加密手段都用上了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
bfbd
V2EX    程序员

自己写了个比特币钱包,能用的加密手段都用上了

  •  
  •   bfbd 2017-07-25 07:53:42 +08:00 6722 次点击
    这是一个创建于 3029 天前的主题,其中的信息可能已经有所发展或是发生改变。

    随机密码管理不方便,无论是记忆还是打印,都挺麻烦。
    脑钱包网上诟病颇多,主要是密码短语设计太简单的话容易被暴力穷举。
    但大脑记忆和短语复杂度之间难于平衡,太复杂的密码又不容易记住。

    借鉴 WrapWallet 思路,加上 HDWallet 算法(BIP38),用复杂的密码短语和一个盐值短语组合生成根私钥,再逐级派生出海量子孙私钥。根私钥永不展示,生成的多个私钥、地址对可以导入官方 Bitcoin 钱包中使用。这样就有了海量的钱包地址,还不用备份操心。只要记住密码和盐值,随时可以找回。

    推荐的做法是使用一个复杂的秘钥短语配合多个不同盐值,生成不同用途的多个主账号( Account )。
    例如零钱地址使用 WangZheNongYao 或 w\x0angzhenongy\x0ao,主账户使用 v\02ex_bfbd

    密码短语可以很复杂,写在纸上记下来,记不住有纸条,纸条丢了有记忆,双重备份。
    如果不幸被人偷取了密码短语,不知道盐值短语也拿不到秘钥。
    如果再用\xFF 这样的十六进制表示法把短语中的个别数字、字母转换一下,暴力穷举的难度也直线提升。

    关注项目: https://github.com/aiportal/gowallet

    24 条回复    2018-08-28 18:52:54 +08:00
    csil1990
        1
    csil1990  
       2017-07-25 08:33:17 +08:00 via Android
    厉害
    shenyangno1
        2
    shenyangno1  
       2017-07-25 08:39:51 +08:00 via iPhone
    厉害
    gulangyu
        3
    gulangyu  
       2017-07-25 08:41:49 +08:00 via Android
    厉害
    WinG
        4
    WinG  
       2017-07-25 09:31:47 +08:00
    发币功能都没有,这个算钱包吗?

    跟自己生成私钥冷储存的安全性有什么差别?
    bfbd
        5
    bfbd  
    OP
       2017-07-25 09:43:23 +08:00
    @WinG 其他功能还在添加中。
    这个是脑钱包,私钥可以不存储,需要的时候随时生成。
    21grams
        6
    21grams  
       2017-07-25 09:45:14 +08:00
    这谁敢用,谁知道有没有后门
    WinG
        7
    WinG  
       2017-07-25 09:46:18 +08:00
    @bfbd 明白,谢谢解答。
    tlday
        8
    tlday  
       2017-07-25 09:49:31 +08:00 via Android   1
    是我见识太少还是楼主 Go 项目的代码组织方式确实不对?
    li02
        9
    li02  
       2017-07-25 09:53:14 +08:00
    没看明白,成品在哪
    dndx
        10
    dndx  
       2017-07-25 09:53:57 +08:00
    @21grams 代码都是开源的,不放心自己检查编译就好了
    Rice
        11
    Rice  
       2017-07-25 10:21:47 +08:00
    @21grams #6 开源的,自己检查代码
    type
        12
    type  
       2017-07-25 10:56:18 +08:00
    厉害
    MC
        13
    MC  
       2017-07-25 11:06:36 +08:00
    厉害
    xbdsky
        14
    xbdsky  
       2017-07-25 11:14:14 +08:00
    厉害
    liuminghao233
        15
    liuminghao233  
       2017-07-25 11:17:19 +08:00 via iPhone
    @21grams 自己看代码咯
    一行一行的看
    看不出来那就没办法咯
    bfbd
        16
    bfbd  
    OP
       2017-07-25 11:58:24 +08:00
    @21grams 开源哦
    @tlday 嗯,自由度大了点,回头规范下。
    @li02 目前版本 0.15: https://github.com/aiportal/gowallet/releases
    bfbd
        17
    bfbd  
    OP
       2017-07-25 11:59:07 +08:00
    @tlday 感谢提醒。:)
    Phariel
        18
    Phariel  
       2017-07-25 12:24:25 +08:00
    厉害!!!
    dopppler
        19
    dopppler  
       2017-07-25 18:31:03 +08:00
    厉害
    goodman001
        20
    goodman001  
       2017-08-03 08:26:25 +08:00
    给力!
    zzlettle
        21
    zzlettle  
       2018-02-04 20:05:21 +08:00 via iPad
    生成的盐的值 你保存在哪里了? 要自己记住吗?那不是和记住两个密码一样了
    bfbd
        22
    bfbd  
    OP
       2018-02-09 15:58:24 +08:00
    @zzlettle 的确是两个密码,但只有一个密码在大脑里。

    第一个密码写在纸上,可以放保险柜里,离线保存。
    第二个密码记在心里,没人能知道你想些什么。

    关键是两个密码都离线,黑客黑不走。
    zzlettle
        23
    zzlettle  
       2018-02-09 17:52:06 +08:00
    @bfbd 口令心中留,盐就秘密压箱底 o yeah
    buseni
        24
    buseni  
       2018-08-28 18:52:53 +08:00
    niubi
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1087 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 23:30 PVG 07:30 LAX 15:30 JFK 18:30
    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