【问题标题】:get bitcoin cash address from public key, using bitcoin-abc使用 bitcoin-abc 从公钥获取比特币现金地址
【发布时间】:2020-02-18 20:27:56
【问题描述】:

嘿,我正在使用 https://github.com/Bitcoin-ABC/bitcoin-abc 并试图从 ecdsa 公钥中获取 bch 地址。

我有这个压缩的公钥:

     publickKey = "02c0fe3501b514b1b2136b4d923de0907314a7c92499fd29a0cb7cf9f731711a19"

这是它的比特币地址:“39n8cpkeHhJDzhTVkboagHMbr9WYSLv2Yk”

根据https://cashaddr.bitcoincash.org/,这是它的比特币现金地址:“bitcoincash:ppvt3t9zkp3flgvgunp0wpp6l9t9tc85kvhtg5zkvr”

我试图像这样获取 bch 地址:

    const auto netParams = bCreateChainParams(bCBaseChainParams::MAIN);
    CTxDestination dst = CKeyID(uint160S(publickKey));
    std::string encoded = EncodeCashAddr(dst, *netParams);

我得到不同的 bitcoincash 地址(不是上面那个)

我也试过了:

    std::vector<uint8_t> hashVector = std::vector<uint8_t>(uncompressKey(publickKey));
    bCashAddrContent keyContent{PUBKEY_TYPE, hashVector};
    string encoded = EncodeCashAddr("bitcoincash", keyContent);

当 uncompressKey 函数解压缩 ecdsa 密钥并从中删除头文件时。

我也尝试使用 SCRIPT_TYPE 而不是 PUBKEY_TYPE,但我没有得到正确的地址....

我也找不到任何示例代码

有什么想法吗?

【问题讨论】:

  • 欢迎来到 crypto.stackexchange - 这似乎是一个编程问题。编程问题在这里是题外话,即使它们是关于密码学程序/库的。编程问题属于stackoverflow。我可以帮你迁移到那里。

标签: public-key cryptocurrency


【解决方案1】:

我成功到达压缩比特币现金地址:

CPubKey cPubKey = CPubKey(hash.begin(), hash.end()); 
auto dst = GetDestinationForKey(cPubKey, OutputType::LEGACY); 
std::string encoded = EncodeCashAddr(dst, *netParams);

当“hash”是压缩公钥(66 个字符)的 std::vector 并且“encoded”是比特币现金地址压缩时

如果有人知道如何获取常规地址(未压缩),请告诉我

【讨论】:

    猜你喜欢
    • 2019-05-16
    • 2013-07-14
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 2020-06-14
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多