【问题标题】:Can a Bitcoin address be used to verify a signature made with a given private key?可以使用比特币地址来验证使用给定私钥进行的签名吗?
【发布时间】:2026-01-23 21:00:01
【问题描述】:

问题: 我有一个比特币地址,即 1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm。我有一个私钥列表,我不确定这个地址是从哪里得到的。我想找出这些私钥中的哪一个派生了该地址(通过公钥)。对于上面的地址,私钥是1(00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01)。

根据我的理解,从私钥派生公钥有不同的方法(ECDSA 是最常见的,但也是 HD/BIP 32 | https://en.bitcoin.it/wiki/Private_key)。然后,从公钥可以生成一个 BTC 地址(通过多次哈希和其他操作 |https://en.bitcoin.it/wiki/Address),这使得从比特币地址中无法找到公钥。

如果我的上述假设是正确的,我的问题是:是否仍然可以验证私钥和比特币地址之间的关系?

我想用私钥签署消息并使用公钥来验证。由于我没有公钥,我必须从私钥中派生一个,然后生成一个比特币地址来与我拥有的地址进行比较。但是,如果地址是使用 HD/BIP 32 方法生成的呢?

PS:我正在使用 BouncyCastle 和 NBitcoin 库来运行测试。

【问题讨论】:

    标签: cryptography bitcoin


    【解决方案1】:

    如果您使用的是比特币核心并且您想知道属于您的地址之一的私钥,请转到控制台或使用 RPC 并调用 dumpprivkey "myaddress".

    并以 WIF 格式抛出私钥。

    【讨论】: