Private Key Tools

3P9MeMMeyMh…aKTez5Qrn —— P2SH (Pay to Script Hash) —— 比特币地址分析器

粘贴任意比特币地址:本页会校验它、给出它的精确类型、重建它对应的脚本、推导出与它共用同一把密钥的其它地址,然后从公开区块浏览器读出它的余额与转账记录。

隐私提示。 地址校验完全在本服务器完成,不向外发送任何内容。但链上查询不是:下面的概要与交易表是由本服务器向公开区块浏览器抓取的,也就是说本服务器和那家浏览器都会知道你查了哪个地址。把「链上数据」选成「否」即可让这次查询完全留在本地。
任何标准形式都可以:1…、3…、bc1q…、bc1p…,以及测试网的 m…/n…/2…/tb1… 变体。Base58 不区分大小写,bech32 允许全小写或全大写 —— 但不能混用。
开关服务端的区块浏览器查询。无论开关如何,校验、类型识别与兄弟地址推导都照常工作。
1–50。

转换结果

全部计算在本机服务端完成,数据不外发

校验

本节的每一项都只由字符串本身算出,不访问网络。

✓结论
VALID — a well-formed P2SH (Pay to Script Hash)
编码家族
Base58Check
字符长度
34 characters
链
Bitcoin
网络
Mainnet
P2SH地址类型
P2SH (Pay to Script Hash)

结构拆解

这串字符按字节看究竟装了什么。

校验和字符
5Qrn
最后 4 个 Base58 字符,编码的是 SHA256(SHA256(payload)) 的前 4 字节。
版本字节
0x05 (5)
这一个字节同时决定链与脚本类型。它被校验和覆盖,所以改动它会让整个地址失效。
载荷(版本 + 哈希)
05eb55eb28545fad126bc5db568876d57a1ee5363d
hash160/承诺值
eb55eb28545fad126bc5db568876d57a1ee5363d
这 20 字节到底是什么取决于类型:hash160(redeemScript)。
scriptPubKey
a914eb55eb28545fad126bc5db568876d57a1ee5363d87
这个地址真正代表的输出脚本 —— 23 字节。区块链上存的是它,而不是地址。
可读脚本
OP_HASH160 <eb55eb28545fad126bc5db568876d57a1ee5363d> OP_EQUAL
A P2SH address commits to the hash of a script, and the address does not say which script. It may be a nested-SegWit P2SH-P2WPKH, a multisig, or anything else, so this page cannot name the redeem script or derive any sibling address from it.

兄弟地址

能否从本地址推导出其它地址。

可推导?
NO — this type does not carry hash160(pubkey)
推导兄弟地址需要「公钥的哈希」。而 P2SH (Pay to Script Hash) 承诺的是hash160(redeemScript),所以密钥哈希根本不在字符串里。这是刻意设计的:正因如此,Taproot 输出才能隐藏它的花费条件,P2SH 地址也才能承诺任意复杂的脚本。

链上数据 —— 由本服务器从公开区块浏览器抓取

这部分是第三方给出的说法,不是算出来的事实。下面每项都会注明是哪个浏览器回答的。

是否被使用过?
NO — no transactions seen by this explorer
₿已确认余额
0.00000000 BTC
区块内未花费输出之和。比特币没有「余额」字段 —— 这是算出来的。
未确认余额
0.00000000 BTC
仍在内存池中的交易带来的净变化。若交易被替换或挤出,它会消失。
累计收到
0.00000000 BTC
累计花出
0.00000000 BTC
交易笔数
0 confirmed, 0 pending
未花费输出(UTXO)数
0
这个地址持有几笔独立的币。下次花钱时它们每一个都会变成一个输入,这就是「碎片化」的地址花钱更贵的原因。
余额自检
0.00000000 = 0.00000000 − 0.00000000
数据来源:https://mempool.space/api · 查询时间 2026-10-09 23:33:51 UTC
这个浏览器从未见过与该地址相关的交易,因此没有记录可展示。注意「没有记录」只是这一家浏览器所知道的情况 —— 只收到过一笔未确认交易的地址,在这里同样看起来是空的。

实时余额 —— 由你的浏览器当场查询

这一块由你浏览器里的 JavaScript 直接联系公开区块浏览器后填入。这里的数据不经过本服务器 —— 所以在服务器没网时它依然可能成功,也所以如果中间有新块产生,这里的余额可能与上面不同。

正在查询区块浏览器…
P2SH (Pay to Script Hash) · mainnet
…
这些地址合计—
技术原理详解

本页做什么 —— 以及每个答案是从哪里来的

关于一个地址,可以问两类本质不同的问题,本页刻意把它们分开:

问题由谁回答需要联网吗
这串字符是合法地址吗?本服务器上的纯计算不需要
它是什么类型,对应哪段脚本?本服务器上的纯计算不需要
还有哪些地址与它共用同一把密钥?本服务器上的纯计算不需要
它的余额和转账记录是什么?公开区块浏览器需要

前三项是从字符串本身推出来的事实,永远不会错。第四项是第三方给出的说法,本页会注明是哪个 浏览器说的。没有网络时,前三项照样完全可用,第四项会如实说明拿不到。

1. 比特币地址究竟是什么

地址不是密钥、不是账户、也不是钱包。它只是某个花费条件的一种带校验和的简短编码 —— 严格说,是对「未来某笔交易必须满足的脚本」的一个承诺。区块链上根本不存地址:它存的是被脚本锁住的 输出,地址只是把特定脚本写成人能抄下来的样子。

这个区别能解释大部分让人困惑的现象:

2. 两种编码家族

比特币写下一个地址只有两种方式,区分它们就是本页做的第一件事:

Base58CheckBech32 / Bech32m
长相1…、3…bc1q…、bc1p…
字母表58 个字符 —— 去掉了 0、O、I、l32 个字符 qpzry9x8gf2tvdw0s3jn54khce6mua7l
版本信息一个字节前缀(0x00、0x05…)可读部分(bc)加一个 5 位 witness 版本
校验和SHA256(SHA256(payload)) 的前 4 字节覆盖整串的 6 字符 BCH 码
能检出几乎必然检出任意单字符错误任意 4 个错误;更长连续错误有公布的保证
大小写区分大小写必须全小写或全大写,混用按设计即为非法
引入时间2009 年最初的客户端BIP173,2017 年(SegWit)

Base58 的字母表去掉 0、O、I、l,正是因为它们是人从纸上 抄写时最容易混淆的字符。bech32 更进一步:禁止大小写混用,把一整类抄写错误变成了硬失败。

3. 地址类型,以及每种类型承诺了什么

这正是「有些地址能互相推导、有些不能」的根源。每个地址都承诺唯一一段 20 字节或 32 字节的值, 但这段值是什么,取决于类型:

类型前缀承诺的是scriptPubKey大小
P2PKH1…hash160(公钥)OP_DUP OP_HASH160 <20B> OP_EQUALVERIFY OP_CHECKSIG25 B
P2SH3…hash160(redeemScript)OP_HASH160 <20B> OP_EQUAL23 B
P2WPKHbc1q…(20 B)hash160(公钥)OP_0 <20B>22 B
P2WSHbc1q…(32 B)SHA256(witnessScript)OP_0 <32B>34 B
P2TRbc1p…调整后输出公钥的 x 坐标OP_1 <32B>34 B
为什么本页有时候不肯再往下走

3… 地址只告诉你某段脚本的哈希,别的什么也没说 —— 它可能是嵌套 SegWit、多签,也可能是 时间锁。bc1q… 且程序为 32 字节的地址,告诉你的也是脚本哈希。bc1p… 地址告诉你的 是一个点。这三者都无法反推出「同一把密钥的其它地址」,因为密钥的哈希根本不在里面。只有 P2PKH 和 P2WPKH 携带 hash160(公钥),因此可以互相转换。

4. 兄弟地址:一把密钥,多个地址

因为 P2PKH、P2WPKH 与 P2SH-P2WPKH 承诺的都是同样那 20 字节(压缩公钥的哈希), 知道其中任意一个就等于知道了另外两个。这不是安全缺陷,只是同一个承诺写成了不同的脚本。

但在实践中它极其重要。最经典的灾难是:币躺在 P2PKH 地址上,而手上的钱包只看 P2WPKH 地址 (或者反过来,或者主网对测试网)。钱包显示余额为零,用户就以为钱没了。币通常都还在, 而查看兄弟地址正是找回它们的方法。

地址类型同一把密钥?
1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMHP2PKH 主网是
3JvL6Ymt8MVWiCNHC7oWU6nLeHNJKLZGLNP2SH-P2WPKH 主网是
bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4P2WPKH 主网是
mrCDrCybB6J1vRfbwM5hemdJz73FwDBC8rP2PKH 测试网是
2NAUYAHhujozruyzpsFRP63mbrdaU5wnEpNP2SH-P2WPKH 测试网是
tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsxP2WPKH 测试网是

上面六行都是同一把私钥。其中两个在测试网上,那是完全不同的网络 —— 币无法跨网转移, 但同一把密钥同时控制两边。

兄弟地址是强烈提示,不是证据

推导出兄弟地址,只说明「那把密钥会产生哪些地址」。它不能证明某个兄弟地址曾被使用过,也不能告诉你 谁掌握着那把密钥。注意这一家人的余额差异有多大 —— 一个空空的主网地址旁边躺着一个有余额的测试网地址, 是再正常不过的事。

5. 「校验通过」意味着什么,又不意味着什么

本页会检查校验和、字符集、长度、版本字节或 witness 版本、程序长度、大小写规则与补零规则。 全部通过只说明一件事:这串字符是一个格式良好的地址,没有任何比特币节点会因为格式问题 拒绝它。

它不意味着:

6. 正确理解「余额」

比特币里没有「余额」这个字段。存在的是「未花费输出」的集合,每一个都被某段脚本锁住。地址余额是把 支付给它的未花费输出加起来算出来的:

余额 = Σ(支付给该地址的未花费输出) = 累计收到 − 累计花出

由此有三个推论,本页把其中的组成部分分开显示,方便你自己核对:

7. 如何阅读交易列表

本页显示的记录是从「这个地址」的视角写的。每一笔交易都会算出该地址收到多少、花出多少,以及净效果:

方向含义
转入 in有输出付给这个地址,且没有输入来自它。
转出 out有输入花掉这个地址的输出,且没有钱回到它这里。
自身/净额两边都涉及这个地址 —— 归并、找零,或自己转给自己。

其它几列值得说明:

为什么列表可能比交易总数短

兼容 Esplora 的浏览器单次最多只返回某个地址最近 50 笔交易。本页请求的数量更少,并单独给出交易总数, 所以繁忙地址会显示成「172 笔中的 25 笔」。要翻阅多年历史,那是完整浏览器网站的活儿 —— 页面底部的链接就是通往那里。

8. 隐私:谁知道了你在查

校验全部发生在本服务器上。链上查询则不是,而且有两条不同的路径:

服务端查询(概要与交易表)

由本服务器发起请求。你的浏览器 IP 不会暴露给区块浏览器 —— 但本服务器和那家浏览器都会知道 你关心的是哪个地址。

浏览器端查询(实时余额区块)

下面的 JavaScript 在你的浏览器里运行,直接联系区块浏览器,所以你的 IP 对那家浏览器可见, 但本服务器完全看不到这次查询。把「链上数据」选项关掉即可彻底禁用第一条路径。

无论走哪条路,查询地址都是一次隐私泄露:问一个地址,就把你和这个地址关联了起来。每次付款都复用同一个 地址,等于把全部财务历史公开给任何来看的人;而拿自己的地址去问公共 API,等于告诉那家 API 的运营者你持有什么。 如果这让你介意,就自己跑一个节点,在本地查询。

9. 特殊地址与不可花费地址

有些地址足够有名,值得被认出来,本页会给它们打标签:

地址它是什么
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa创世区块 coinbase 输出 —— 最早的 50 BTC,从未被花掉。
1BitcoinEaterAddressDontSendf59kuE一个刻意的销毁地址,没人持有它的私钥。
1111111111111111111114oLvT2hash160 全零的地址。实际上无法花费:要花它需要一个哈希恰好是二十个零字节的公钥。

销毁币是一种真实存在的手法 —— 有些协议正是靠它做出一个永远无法赎回的承诺。当然,它同样不可撤销。

10. 速查表

项目取值
主网 P2PKH / P2SH 前缀0x00 → 1… / 0x05 → 3…
测试网 P2PKH / P2SH 前缀0x6F → m…/n… / 0xC4 → 2…
bech32 的 hrpbc 主网,tb 测试网,bcrt regtest
witness 程序长度2–40 字节;v0 必须恰好 20(P2WPKH)或 32(P2WSH)
校验和常量v0 用 1(bech32),v1+ 用 0x2bc830a3(bech32m)
地址长度上限bech32 为 90 个字符,Base58 主网约 34–35 个
可推导兄弟地址的类型只有 P2PKH 与 P2WPKH(它们携带 hash160(公钥))
浏览器单次交易上限每个地址最近 50 笔