Address

如何獲得私鑰或公鑰 BTC 的全部餘額

  • October 30, 2019

由於一個私鑰或公鑰有一些比特幣地址類型。我可以得到一個地址的餘額,但是我怎樣才能得到私鑰或公鑰的全部餘額。如何從一個私鑰或公鑰中列出所有地址。更重要的是如何處理從公鑰的不同私鑰生成的多重簽名地址。

您必須生成與要檢查的公鑰或私鑰對應的所有地址,然後在 UTXO 集中查找它們。例如,您可能希望僅使用該公鑰查找 P2PK、P2PKH、P2WPKH、1-of-1 多重簽名地址等。沒有“一個搜尋適合所有人”

在 MeshCollider 的答案旁邊,我想再概述一下,可以/不能做什麼……

  1. 如何獲得私鑰或公鑰的全部餘額?

一個 priv/pubkey 對可以生成多個地址。私鑰是用於 P2PKH 地址的最標準(在比特幣網路上以“1”開頭)。它們可以從壓縮或未壓縮的公鑰中派生。一個很好的遊樂場在這裡. 然後,您可以使用此密鑰創建各種 P2SH 地址。他們會以“3”開頭。是的,多重簽名地址只是其中一種可能性。有許多可能的組合(1-of-1、1-of-2、1-of-3、2-of-3、2-of-4 …),每種組合都會產生不同的“類型 3”地址. 因此,如果您在比特幣客戶端中創建了地址,則可以使用命令“getbalance”。此命令與賬戶相關聯,一旦將地址分組到賬戶中,就可以顯示錢包或特定賬戶中的總餘額。使用“getaddressesbyaccount”可以查看帳戶中使用的地址,然後可以使用“listunspent”評估地址,從而找到您需要的地址。還有一個命令可以查看每個地址收到的總金額(getreceivedbyaddress)。

總之:您可能想要創建一些編碼邏輯來使用 API 呼叫。API 呼叫列表可在原始碼或wiki中找到。

  1. 如何列出一個私鑰或公鑰中的所有地址?

正如 MeshCollider 解釋的那樣,這需要一些手動設置,比特幣客戶端中沒有任何東西適合該請求。

  1. 更重要的是如何處理由不同的publickey私鑰生成的multisig地址?

當您使用比特幣核心客戶端(“addmultisigaddress”)創建多重簽名地址時,客戶端應顯示此地址上的值。當在客戶端“外部”創建多重簽名時,即使您將地址添加為“僅監視”地址,它也不會顯示帳戶的值(setaccount 現在已棄用,而 impogrtaddress 顯然是要走的路)。無論如何,我無法讓我的錢包看到這些導入地址的餘額(儘管我在 regtest 上,並且在 bitcoin.conf 中使用了 txindex=1)。更重要的是,如果地址是“唯一的”已知的,並且沒有在區塊鏈上使用過,那麼 P2SH 多重簽名地址被覆蓋在雜湊後面,這是一種單向函式。所以你永遠不知道裡面使用的鍵或邏輯的細節……

引用自:https://bitcoin.stackexchange.com/questions/73604