巴比特论坛

BurntCoins | 副船长 | 发表于 5 天前 | 显示全部楼层

悟空 发表于 2019-2-12 15:00
多谢大神。还想请问:1、现在的core客户端生成wallet文件,wallet.dat是放在一个子文件夹里的,需要整个子 ...

1.只用备份wallet.dat就可以了。钱包图形界面里就有啊,“文件”菜单里有备份钱包,不用你自己去找。
其他的数据,你也可以备份,不过只是起到方便的作用,毕竟重新下载200多GB的区块还是挺难受的,哈哈。
注意:启用修剪只是一边下载新的区块一边删掉旧的,不能避免下载旧区块,也不是白皮书的“剪枝”。

2.我只知道Core钱包的HD是hardened deviation,不能导出xpub主公钥,所以光是从这一点上Core钱包就
很难做冷热分离。
想要HD主私钥,可以用dumpwallet命令导出文本,里面有,不过你顶多把这个当作后备,不要太依赖它
(而且还得考虑额外的泄露风险)。
注意有些时候是会生成新HD主私钥的,比如启用加密、从非HD升级到HD(用-upgradewallet参数
重启钱包)等。而且导入的单个地址私钥很显然也不在HD的覆盖范围之内。

3.在Core钱包的控制台里,可以用getnewaddress "标签" "legacy"这个命令来得到1开头的老式(P2PKH)
地址。
如果修改bitcoin.conf配置,或者修改bitcoin-qt.exe的启动参数,加上-addresstype=legacy,
那钱包默认生成的就都是1开头的地址了。

BurntCoins | 副船长 | 发表于 5 天前 | 显示全部楼层

悟空 发表于 2019-2-12 15:00
多谢大神。还想请问:1、现在的core客户端生成wallet文件,wallet.dat是放在一个子文件夹里的,需要整个子 ...

如果用importprivkey命令导入压缩私钥(SW规定公钥必须压缩;WIF私钥是用一个字节标记区分是否要
压缩公钥的),就可以看到Core钱包会自动生成三个地址:1开头的P2PKH地址、3开头的P2SH-P2WPKH
地址(“兼容SW地址”)、bc1开头的P2WPKH地址(“原生SW地址”)。
这三种地址都可以在图形界面上正常收发币。

实际上Core钱包是同时监控着1开头的P2PKH、3开头的P2SH-P2WPKH、bc1开头的P2WKH三种地址的,
哪怕表面上没显示出来。

BurntCoins | 副船长 | 发表于 5 天前 | 显示全部楼层
3开头地址是P2SH,币之前是“发到脚本的哈希上”的,所以很显然需要把脚本原文(redeemScript)拿出来,才知道需要满足什么条件才能花这笔钱。
只有用控制台命令对原始交易数据签名的时候才会面对这个问题。
而且从3开头的SW地址(P2SH-P2WPKH)发币,貌似并不需要手动指定这个。
悟空 | 水手 | 发表于 5 天前 | 显示全部楼层
BurntCoins发表于2019-02-12 15:27:20

悟空 发表于 2019-2-12 15:00 多谢大神。还想请问:1、现在的core客户端生成wallet文件,wallet.dat是放在一个子文件夹里的,需要整个子 ...

1.只用备份wallet.dat就可以了。钱包图形界面里就有啊,“文件”菜单里有备份钱包,不用你自己去找。 其他的数据,你也可以备份,不过只是起到方便的作用,毕竟重新下载200多GB的区块还是挺难受的,哈哈。 注意:启用修剪只是一边下载新的区块一边删掉旧的,不能避免下载旧区块,也不是白皮书的“剪枝”。

2.我只知道Core钱包的HD是hardened deviation,不能导出xpub主公钥,所以光是从这一点上Core钱包就 很难做冷热分离。 想要HD主私钥,可以用dumpwallet命令导出文本,里面有,不过你顶多把这个当作后备,不要太依赖它 (而且还得考虑额外的泄露风险)。 注意有些时候是会生成新HD主私钥的,比如启用加密、从非HD升级到HD(用-upgradewallet参数 重启钱包)等。而且导入的单个地址私钥很显然也不在HD的覆盖范围之内。

3.在Core钱包的控制台里,可以用getnewaddress "标签" "legacy"这个命令来得到1开头的老式(P2PKH) 地址。 如果修改bitcoin.conf配置,或者修改bitcoin-qt.exe的启动参数,加上-addresstype=legacy, 那钱包默认生成的就都是1开头的地址了。

天哪,好复杂。
本来以为导出一个私钥最安全、最简单,因为之前因为保存了wallet文件忘记密码丢币(不多),还有就是之前保存的qt钱包的wallet在最新的core里面居然打不开,所以有所顾忌。按照你的说法HD钱包我导出私钥也不安全了,因为不知道是不是主私钥,不过也无所谓了,只要每次备份wallet和私钥,应该就没问题了?
另外请教下,我按这样流程储存比特币有么有问题:
1、在一台新电脑上安装core客户端,离线产生3开头的地址,然后保存wallet.dat文件(同时导出私钥)。这台电脑保持离线。
2、往这个3开头的地址转比特币。
3、当我需要使用的时候,用保存的wallet文件在另外一台同步了core客户端的电脑上打开,确保一次性使用,或者把剩余的钱再次转到离线电脑生成一个新的地址和钱包,备份。

多谢大神。
xyz001 | 副船长 | 发表于 5 天前 来自手机版 | 显示全部楼层
到账时间一样不?
BurntCoins | 副船长 | 发表于 5 天前 | 显示全部楼层
xyz001 发表于 2019-2-12 15:50
到账时间一样不?

一样。

不过从SW地址发币是有折扣的,所以在有拥堵的时候用更少的手续费就能“插队”到更靠前的位置。
BurntCoins | 副船长 | 发表于 5 天前 | 显示全部楼层
悟空 发表于 2019-2-12 15:49
天哪,好复杂。本来以为导出一个私钥最安全、最简单,因为之前因为保存了wallet文件忘记密码丢币(不多), ...

Core钱包没有自带冷热分离功能。
想搞的话就需要折腾命令行了……麻烦且容易犯错。

你可以用Armory、Electrum、比太这些支持冷热分离的钱包。Armory本来就是对接全节点的。Electrum可以用Electrum Personal Server对接Core全节点。

不过Armory貌似设置比较麻烦,需要手动改配置(satoshi-datadir指定到Bitcoin Core的区块存储目录,就是blocks),而且它自己也要扫区块,要扫很久才能用。
悟空 | 水手 | 发表于 5 天前 | 显示全部楼层
BurntCoins发表于2019-02-12 16:05:25 Core钱包没有自带冷热分离功能。 想搞的话就需要折腾命令行了……麻烦且容易犯错。 你可以用Armory、Electrum、比太这些支持冷热分离的钱包。Armory本来就是对接全节点的。Electrum可以用Electrum Personal Server对接Core全节点。 不过Armory貌似设置比较麻烦,需要手动改配置(satoshi-datadir指定到Bitcoin Core的区块存储目录,就是blocks),而且它自己也要扫区块,要扫很久才能用。
好的,感觉都挺折腾啊,这可能也是比特币推广慢的原因。。。。。。

那像我上面说的,用离线电脑生成3开头的地址,往里面转比特币,然后保存wallet;需要使用的时候整个wallet搬到联网电脑,应该也是可行的?
BurntCoins | 副船长 | 发表于 5 天前 | 显示全部楼层
悟空 发表于 2019-2-12 16:19
好的,感觉都挺折腾啊,这可能也是比特币推广慢的原因。。。。。。那像我上面说的,用离线电脑生成3开头的 ...

把wallet.dat搬到联网电脑,不就触网了嘛……如果那台电脑被黑了,那黑客就可以偷币了。
BurntCoins | 副船长 | 发表于 5 天前 | 显示全部楼层

悟空 发表于 2019-2-12 16:19
好的,感觉都挺折腾啊,这可能也是比特币推广慢的原因。。。。。。那像我上面说的,用离线电脑生成3开头的 ...

一般冷热分离钱包,是联网的热钱包负责监控余额、生成未签名交易、广播已签名交易。断网的冷钱包
负责生成私钥、检查交易信息、对交易签名。
(实际上还可以更灵活一些:把收款交易导入给冷钱包,然后冷钱包端自己也可以生成交易、然后签名)

Core钱包只支持监控余额,图形界面既不支持从监控地址生成未签名交易,也不支持对原始交易进行签名。
需要先listunspent列出可以动用的币(UTXO),然后命令行createrawtransaction
(一不小心犯错就是巨额矿工费,要上新闻了);然后需要命令行signrawtransactionwithkey或
signrawtransactionwithwallet(需要输入 raw transaction和被花费的UTXO信息)。
如果想多重签名,那还得记得一开始createmultisig生成的redeemScript。

悟空 | 水手 | 发表于 5 天前 | 显示全部楼层
BurntCoins发表于2019-02-12 16:31:36

悟空 发表于 2019-2-12 16:19 好的,感觉都挺折腾啊,这可能也是比特币推广慢的原因。。。。。。那像我上面说的,用离线电脑生成3开头的 ...

一般冷热分离钱包,是联网的热钱包负责监控余额、生成未签名交易、广播已签名交易。断网的冷钱包 负责生成私钥、检查交易信息、对交易签名。 (实际上还可以更灵活一些:把收款交易导入给冷钱包,然后冷钱包端自己也可以生成交易、然后签名)

Core钱包只支持监控余额,图形界面既不支持生成未签名交易,也不支持对原始交易进行签名。 需要先listunspent列出可以动用的币(UTXO),然后命令行createrawtransaction (一不小心犯错就是巨额矿工费,要上新闻了);然后需要命令行signrawtransactionwithkey或 signrawtransactionwithwallet(需要输入 raw transaction和被花费的UTXO信息)。 如果想多重签名,那还得记得一开始createmultisig生成的redeemScript。

哈哈哈,越来越不懂了,你是真大神。谢谢。
悟空 | 水手 | 发表于 5 天前 | 显示全部楼层
BurntCoins发表于2019-02-12 16:21:04 把wallet.dat搬到联网电脑,不就触网了嘛……如果那台电脑被黑了,那黑客就可以偷币了。
如果我屯币,上期不懂,还是可行的是吧。我把wallet搬到联网电脑的时候就是清仓的时候,哈哈
悟空 | 水手 | 发表于 5 天前 | 显示全部楼层
悟空发表于2019-02-12 16:43:09如果我屯币,上期不懂,还是可行的是吧。我把wallet搬到联网电脑的时候就是清仓的时候,哈哈
如果我屯币长期不动,还是可行的是吧?
BurntCoins | 副船长 | 发表于 5 天前 | 显示全部楼层
悟空 发表于 2019-2-12 16:42
哈哈哈,越来越不懂了,你是真大神。谢谢。

可能我说了太多……有点跑题了……
我这其实是无耻的现学现卖

我的意思很简单,想要冷钱包的话,不用在Bitcoin Core自带的钱包这一颗树上吊死,有其他更方便更好的选择,比如比太、Electrum、Armory等等。
光是备份就已经不一样了,比太和Electrum都只需要记住一串单词密语(不过注意Electrum不是BIP39标准的,和其他钱包不兼容)。
BurntCoins | 副船长 | 发表于 5 天前 | 显示全部楼层

悟空 发表于 2019-2-12 16:43
如果我屯币长期不动,还是可行的是吧?

冷钱包就是让私钥的生成、保存和使用都放在离线的机器上(甚至是不在电子设备上长期保存私钥),
黑客黑不了断网的机器,篡改劫持交易信息的话,冷钱包机器上也能检查出来。

其实我对这块也比较迷惑——如果是登录交易所一股脑清仓呢?这个总得联网吧。如果黑客劫持了你的
浏览器,把网页给劫持替换了,给你看假的充币地址、假的到账信息,又该怎么办呢?

高级模式
您需要登录后才可以发帖 登录 | 立即注册 | 用新浪微博登录

本版积分规则

搜索

0关注 1粉丝 5主题
返回顶部 返回列表

登录

分享 发帖