【发布时间】:2018-12-29 02:34:21
【问题描述】:
我正在尝试查找与比特币区块的交易输入和输出相关的公钥。
谁能告诉我这些是在哪里编码的?
谢谢。
【问题讨论】:
标签: blockchain bitcoin blockchain.info-api nbitcoin
我正在尝试查找与比特币区块的交易输入和输出相关的公钥。
谁能告诉我这些是在哪里编码的?
谢谢。
【问题讨论】:
标签: blockchain bitcoin blockchain.info-api nbitcoin
简单地说,一般情况下你不能。
根据签名架构,您所能得到的只是该公钥的 hash,或者更糟糕的是,redeem 脚本的 hash .
更具体地说,在某些情况下,您可以获得 一些 公钥。 这是您可以获得的部分列表:
还有其他签名方案,在标准交易中,您应该能够获得源公钥或目标公钥。
您可以做的是为整个区块链编制索引,并填补未将 BTC 地址与其公钥一起包含在内的交易中的空白。但是,例如,如果您的 BTC 地址仅出现在 P2PKH 输出中,则您无法找到该公钥。
【讨论】:
bitcoind 节点的网络根本不跟踪余额。它所做的只是执行共识规则_。之间没有这样的关联: 1. 账户和公钥 2. 账户和 BTC 地址 3. BTC 地址和余额 您可能在bitcoind 中找到的钱包支持只是跟踪其所有相关地址。它需要特定的索引(例如,如果您从外部导入密钥,则必须重新索引它)。
bitcoind 验证 共识规则(例如,一个输出不能被花费两次)。钱包通常会创建一笔交易,前提是它有足够的未使用输出来发送指定数量的 BTC。用户通常可以查看总余额,因此他看不到钱包系统在后台做了什么。假设每个公钥只有一个 BTC 地址。这并不适用于所有地址类型,但大多数情况下都是这样。