比特币一个私钥可以生成几个地址? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ling516
V2EX    Bitcoin

比特币一个私钥可以生成几个地址?

a href="Javascript:" Onclick="upVoteTopic(772048);" class="vote">
  •  
  •   ling516 2021-04-21 03:45:52 +08:00 1171 次点击
    这是一个创建于 1642 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问下比特币一个私钥可以生成几个地址?我看到有 1 开头和 3 开头的

    如果同时向一个私钥的 2 个地址各发送 1 个比特币,那 2 个地址是各自都能查到 2 个比特币,还是 2 个地址各自只能查到 1 个比特币

    8 条回复    2021-04-23 01:46:57 +08:00
    frienmo
        1
    frienmo  
       2021-04-21 20:29:30 +08:00
    其实你看到的地址 内涵了(公约+包公约定格式)
    所以一个私钥可以生产多个地址(基于不同格式)
    所以 2 地址各自查到一个比特币
    acess
        2
    acess  
       2021-04-22 01:34:52 +08:00
    一个私钥可以控制很多很多种地址。

    一般来讲,不同的地址就是不同的地址。
    acess
        3
    acess  
       2021-04-22 01:39:41 +08:00
    按理说,A 地址有币就是 A 地址有币,不会用 B 地址去查,结果却查到了 A 地址上的币。

    (不过很显然,不同地址上的币是可以一起花出去的,毕竟比特币从一开始就推荐地址用一次就换一个,尤其是后来有了 HD 钱包,换地址后不需要重新备份私钥,只要备份好一个助记词种子就一劳永逸)

    但是因为历史遗留问题,在极少见的情况下(比如中本聪的币,用了 P2PK 裸公钥输出)在这方面会存在一些混淆。
    acess
        4
    acess  
       2021-04-22 02:42:11 +08:00
    中本聪那个时代我没经历过,不过从当时的官网软件截图来看,1 开头的地址(公钥哈希)只是考虑收款方不在线的时候才要用到的。如果收款方在线,就直接用 IP 地址从对方下载一个公钥回来,然后支付给这个公钥(而不是公钥哈希)。这个“付款给 IP 地址”的功能后来被删掉了。

    不仅如此,那个时候挖矿得到的币,也大多放到这种“裸公钥输出”( P2PK )上,而不是现在常用的公钥哈希输出( P2PKH )上。

    就比如 9 号区块,没记错的话这个区块挖到的币公认是中本聪的,中本聪后来用这些币发起第一笔比特币转账给 Hal Finney 。

    你去不同的区块浏览器查 9 号区块,显示出来的样子是就不一样的,虽然表示的内容实际上是一样的。
    blockchair . com 会显示 12cbQLTFMXRnSzktFkuoG3eHoMeFtpTu3S 这个地址;
    而 blockstream . info 和 btc . com 就不显示这个 1 开头的地址。

    9 号区块的 coinbase 输出用的就是这种 P2PK 裸公钥输出,而不是现在通用的 P2PKH 公钥哈希输出。

    如果继续查 12cbQLTFMXRnSzktFkuoG3eHoMeFtpTu3S 这个地址的交易记录,不同区块浏览器显示的结果也不一样。不出意外的话,就是因为有的区块浏览器把 P2PK 和 P2PKH 都统计在内;而有的区块浏览器就只统计 P2PKH,不包括 P2PK 。

    很多开发者都觉得,1 开头的地址就是 P2PKH 地址,只应该用来表示 P2PKH 输出,把它借用过来表示其他的东西是不对的,造成了混淆。但是毕竟这个“混淆”多年以前就一直这么干,现在要“纠正”反而还有点难受。毕竟,如果你一开始只知道 1 开头的 P2PKH 地址,它编码表示的是公钥哈希,从公钥哈希是无法逆推计算得到公钥的,只能扫描区块链账本才能找到哈希值匹配的公钥。
    acess
        5
    acess  
       2021-04-22 04:25:04 +08:00
    P2PK 这个中本聪时代的梗其实相对不太重要……

    楼主的问题,确实说来话长,我一写就刹不住车,新开了一个帖子:
    /t/772332
    acess
        6
    acess  
       2021-04-22 05:08:21 +08:00
    在 BTC 里面,一般而言(不去想 P2PK 这个历史包袱),不同的地址就是不同的地址。


    考虑其他币种的话……

    莱特币还有 M 开头的地址,表示的意思和 3 开头的地址一样,就是因为 3 开头的地址和比特币混淆了(),所以才改成 M 开头。这两种只是地址格式不一样,表示的内容是完全一模一样的,就是换了个编码方式,所以甚至还可以互相转换。不过很显然,这个转变有阵痛,而且也许很长很长时间都不能覆盖到所有人。

    BCH 的 CashAddr 也是类似的情况。
    acess
        7
    acess  
       2021-04-22 05:18:06 +08:00
    莱特币的 M 开头地址表示的是 P2SH,和比特币这边 3 开头的地址一样。原先两个币种 P2SH 都是 3 开头的地址,所以偶尔会出现 BTC 打到 LTC 地址(或反之)之类的错误……嗯,(据我所知)按理说出现这个情况,其实币没丢,只要私钥倒腾一下,从 LTC 钱包倒腾到 BTC 钱包(或反之)即可;不过像交易所充错地址之类情况,可能交易所就以各种理由拒绝找回了。

    BCH 因为去掉了隔离见证(当初从 BTC 分叉出去就是为了抵制隔离见证),貌似还新加了脚本操作码,所以情况会更复杂,打错币种可能出现币被锁死或者“任何人都可以花”的情况。
    ling516
        8
    ling516  
    OP
       2021-04-23 01:46:57 +08:00
    @acess 谢谢大佬的讲解
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2771 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 13:01 PVG 21:01 LAX 06:01 JFK 09:01
    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