首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从公钥生成bech32地址?比特币

如何从公钥生成bech32地址?比特币
EN

Stack Overflow用户
提问于 2020-08-31 11:41:43
回答 3查看 3.8K关注 0票数 0

我正在使用bitcoinjs-lib来生成比特币密钥对。

我有足够的例子从公钥生成遗留地址和分段地址,但是对于bech32地址,我什么都找不到。

P2PKH,以数字1开头,

例:1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2

P2SH类型以数字3开头,

例:3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy

Bech32类型从bc1开始,

例:bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq

谢谢你的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-09-15 09:31:52

其中涉及到许多步骤。

hash160(publickey),即ripemd160(sha256(publickey))

之后,将0 Uint8添加到bech32单词的输出中。

然后使用bech32用比特币的前缀bc对其进行编码。

它也适用于litecoin,将bc更改为ltc

对于宇宙原子,除了跳过将0添加到bech32的输出之外,它也可以工作。

代码语言:javascript
复制
const crypto = require("crypto");
const bech32 = require("bech32");

const sha256Digest = crypto
  .createHash("sha256")
  .update(data, "hex")
  .digest("hex");

const ripemd160Digest = crypto
  .createHash("ripemd160")
  .update(sha256Digest, "hex")
  .digest("hex");

const bech32Words = bech32.toWords(Buffer.from(ripemd160Digest, "hex"));
const words = new Uint8Array([0, ...bech32Words]);
address = bech32.encode("bc", words);
console.log(address);
票数 3
EN

Stack Overflow用户

发布于 2020-09-02 17:08:21

它是作为BIP 0173提交的。您可以在比特币Wiki中找到有关它的文档。Wiki BIP0173

票数 1
EN

Stack Overflow用户

发布于 2021-12-01 02:28:13

或者你可以直接使用bitcoin.payments.p2wpkh({pubkey:yourpubkey,network });

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63670096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档