区块广播:

请教大神,3开头btc地址和普通1开头的有啥区别?

悟空水手发布在 技术交流
 5215  41

请教下,现在下载的bitcoin-core客户端默认生成的是3开头的地址,请教几个问题:
1、新的core客户端如何生成1开头的地址?
2、3开头的地址在使用上有什么区别吗,特别是1开头的地址我只要保存好私钥就天下太平了,3开头地址是否只要导出并保存好私钥就可以了?
3、看了一些资料,说3开头的地址解锁支付需要一个特殊的脚本还啥的,但是我试验了下也能导出私钥,也能发送,也能导入私钥,貌似使用上没有什么区别呢。

本主题由 等一轮残月 于 2019-02-14 13:24:41 删除回复
  • 正序
  • 最新
只看帖主楼层直达
  • 价值投资理念 船员 2019-02-11 21:49:14 来自App沙发
    3开头的是隔离验证的那种地址
  • 悟空 水手 2019-02-11 22:07:12 来自PC板凳
    价值投资理念发表于2019-02-11 21:49:143开头的是隔离验证的那种地址
    那和1开头的使用上有什么区别吗
    楼层直达
  • 比特别致 副船长 2019-02-11 22:17:25 来自App地板
    悟空 发表于 2019-2-11 22:07 那和1开头的使用上有什么区别吗
    没大明显区别, 私钥上一般多3~5位。
  • 悟空 水手 2019-02-11 22:26:43 来自PC5楼
    比特别致 发表于 2019-2-11 22:17 没大明显区别, 私钥上一般多3~5位。
    私钥包含了多重签名的哈希是吗?多重签名的哈希只能由一个人持有,那多重签名有啥意义呢,哈哈
    楼层直达
  • 悟空 水手 2019-02-12 11:21:42 来自PC6楼
    大神帮忙解答
  • 价值投资理念 船员 2019-02-12 12:34:54 来自App7楼
    悟空 发表于 2019-2-11 22:07 那和1开头的使用上有什么区别吗
    没多大区别,隔离验证地址更省费用一点点
  • 悟空 水手 2019-02-12 14:15:18 来自PC8楼
    价值投资理念发表于2019-02-12 12:34:54 没多大区别,隔离验证地址更省费用一点点
    备份的话,还是备份wallet.dat文件和私钥即可了对吗?
    楼层直达
  • BurntCoins 版主 2019-02-12 14:19:17 来自PC9楼
    悟空 发表于 2019-2-12 14:15 备份的话,还是备份wallet.dat文件和私钥即可了对吗?
    整个备份wallet.dat最好,不建议折腾单独私钥,因为容易犯低级错误“找零丢币”:
    新安装Core钱包,自动生成新wallet.dat->importprivkey导入单个私钥->转账,忘记改找零地址->因为安全强迫症格盘/删掉新wallet.dat->币跑到新找零地址上去了,然而包含它的新wallet.dat已经被删,永久丢币
    现在的Core钱包新生成的wallet.dat已经是HD的了,然而仍然不影响上述套路坑到人……也许未来开发者会想办法提醒用户来避免这个问题吧。
    楼层直达
  • BurntCoins 版主 2019-02-12 14:26:48 来自PC10楼
    3开头的是P2SH地址。P2SH地址以前最常用于多重签名,但是更复杂的脚本也可以放进去。后来隔离见证(SegWit,SW)激活了,P2SH就多了第二大用途:嵌套隔离见证地址。

    隔离见证定义了一种新的地址,bc1开头,bech32编码(纯小写字母+数字)。很显然这种原生SW地址老钱包是不认识的,所以就造成只能新钱包给老钱包发币,老钱包(尤其是交易所提币)不能给新钱包发币的蛋疼。

    为了保持兼容,开发者就定义了另一种SW地址,这就是LZ提到的3开头的SW地址了。
    实际上从这种3开头的地址发出的交易会有更多的字节数开销(因为额外存了一个脚本hash),但是因为SW交易是有折扣的,所以“虚拟字节数”仍然要比老格式交易小得多,对应手续费也更低。
  • BurntCoins 版主 2019-02-12 14:36:57 来自PC11楼
    所有SW地址目前都不支持用Bitcoin Core做消息签名/验证。有的钱包(比如Electrum)抢先做了,但是和其他钱包不兼容。

    开发者现在应该在讨论消息签名/验证的新标准:BIP322
  • jake马 副船长 2019-02-12 14:38:18 来自PC12楼
    BurntCoins 发表于 2019-2-11 20:26 3开头的是P2SH地址。P2SH地址以前最常用于多重签名,但是更复杂的脚本也可以放进去。后来隔离见证(SegWit ...
    1开头的地址不能给3开头的地址转币?
    楼层直达
  • BurntCoins 版主 2019-02-12 14:50:19 来自PC13楼

    jake马 发表于 2019-2-12 14:38

    1开头的地址不能给3开头的地址转币?

    所有地址之间都是可以自由互转的。问题是老钱包不识别bc1开头的原生SW地址,这样当然就不能转币了。

    新钱包就没有这个问题。

    用3开头的SW地址也可以避开这个问题(不过老钱包看不到零确认,必须进链才能看到到账信息)。

  • 悟空 水手 2019-02-12 15:00:03 来自PC14楼
    BurntCoins发表于2019-02-12 14:50:19> jake马 发表于 2019-2-12 14:38 1开头的地址不能给3开头的地址转币?

    所有地址之间都是可以自由互转的。问题是老钱包不识别bc1开头的原生SW地址,这样当然就不能转币了。
    新钱包就没有这个问题。
    用3开头的SW地址也可以避开这个问题(不过老钱包看不到零确认,必须进链才能看到到账信息)。

    多谢大神。还想请问:
    1、现在的core客户端生成wallet文件,wallet.dat是放在一个子文件夹里的,需要整个子文件夹备份吗?
    2、HD钱包好像是什么树形的父子钱包,保留一个父私钥和什么编码,就能推导出子私钥,但是不知道哪个是父私钥,编码也不知道,大神有没有教程啊,谢谢。

    3、最新的core客户端能产生1开头的地址吗,感觉3开头的地址总是怪怪的。。。。。
    楼层直达
  • zhc666888 禁止发言 2019-02-12 15:10:34 来自App15楼
    提示: 作者被禁止或删除 内容自动屏蔽
  • BurntCoins 版主 2019-02-12 15:27:20 来自PC16楼

    悟空 发表于 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开头的地址了。

  • 1
  • 2
  • 3
登录 账号发表你的看法,还没有账号?立即免费 注册
推荐节点 更多
热帖榜 本周最热本月最热