Wallet

無法訪問我的比特幣,因為我的錢包仍在同步。我該怎麼做才能立即花掉它們?

  • March 26, 2021

我已經購買了比特幣並下載了 Bitcoin-QT,但我的錢包需要很長時間才能同步到網路。

我無法訪問我的錢包,因為它仍在同步過程中。我有我支付比特幣的記錄、確認電子郵件等,以及它已發送到的地址。我非常想開始花錢。我可以做些什麼來立即獲得訪問權限而無需等待同步執行?

一種解決方案是(在您的隱私中)導出與您收到比特幣的地址相關的私鑰(或簡單地導出所有私鑰)。這可以使用稱為pywallet.

然後,您可以將此密鑰(或所有密鑰)導入另一個錢包。<https://blockchain.info/wallet>等基於瀏覽器的錢包不需要同步。因此,您可以立即花費您的硬幣。對於 bĺockchain.info 錢包,該過程在其網站上進行了描述。

我必須為曾經非常不同步的狗狗幣錢包這樣做。我將概述對我有用的步驟。不過,我的例子是比特幣,因為這可能是大多數人需要的。

注意:這有點技術性,但它有效。預計這可能需要 10-30 分鐘。這也假設您使用的是標準的 Pay-To-Pubkey-Hash 地址(對於比特幣,這僅表示以 1 開頭的地址)。

1.

獲取您收到硬幣的地址。這是未同步的 Bitcoin-QT 錢包之前生成的地址。對於這個例子,我將使用

13x1ZipMJJbVawV7voCtW5qSoBUTwx13Nr

作為我需要從中取出硬幣的地址。

2.

轉到<https://insight.bitpay.com/address/> {{ 您的地址 }}。

從區塊瀏覽器中找到您嘗試花費的交易 TXID、輸出索引和硬幣數量。

  • 要獲取交易 ID,請使用交易框頂部的十六進制程式碼。
  • 要獲取輸出索引,請從零開始計算交易輸出,直到找到您的地址。例如,在下面顯示的交易中,我的 13x… 地址在第一個輸出中收到硬幣,這意味著索引為零。如果它在第二個輸出中,它將是索引 1,等等。
  • 要獲得金額,請確保選擇“BTC”作為網站單位(在右上角)。然後從您看到您的地址接收硬幣的輸出中複製金額。

所以對我來說,這裡的重要資訊是:

txid:   83a1007401a6acb656668afc137b9c02ca023ae274e0f12abbc79395a89b6b79
index:  0
amount: 0.00231499

在此處輸入圖像描述

3.

我們需要的另一條資訊是scriptPubKey. 這基本上只是地址的更底層編碼。

要獲得此資訊,請點擊 TXID 左側的“+”圖示(仍位於與之前相同的洞察頁面上)。在您的地址下,它會說:

OP_DUP OP_HASH160 205799b3b8bdba5824b0129eec27450b0cfde7eb OP_EQUALVERIFY OP_CHECKSIG

現在,您想要的 scriptPubKey 正在使用中間的 40 個十六進製字元,再加上一些字元。基本公式是:

scriptPubKey = "76a914" concat {{ hex chars from above }} concat "88ac"

所以對於我的例子,我們有:

scriptPubKey: 76a914205799b3b8bdba5824b0129eec27450b0cfde7eb88ac

4.

快完成了!

獲取您要發送硬幣的地址。我會用

1PwFdFxP7uXrun8sToCrWXxVdpeDeX6dfq.

5.

現在我們將創建一個交易並將其發送到網路。

打開未同步的 Bitcoin-QT 錢包(或啟動 bitcoind 守護程序),然後轉到幫助菜單,然後選擇調試控制台。在打開的視窗中,替換相應的欄位,然後鍵入:

createrawtransaction '[{ "txid": "{{ your txid }}", "vout": {{ your index }} }]' '{ "{{ your address from step 4 }}": {{ amount - fee }} }'

通常,收取大約 0.0001 的費用。

所以,對我來說,這看起來像:

createrawtransaction '[{ "txid": "83a1007401a6acb656668afc137b9c02ca023ae274e0f12abbc79395a89b6b79", "vout": 0 }]' '{"1PwFdFxP7uXrun8sToCrWXxVdpeDeX6dfq": 0.00221499}'

結果是

0100000001796b9ba89593c7bb2af1e074e23a02ca029c7b13fc8a6656b6aca6017400a1830000000000ffffffff013b610300000000001976a914fb9570085ff3acfef21eac307223eaa499e1e21188ac00000000

現在我們只需要簽名即可。這必須在生成地址的同一守護程序上完成,以便您擁有私鑰。替換為適當的欄位,然後執行:

signrawtransaction {{ hex from createrawtransaction step above }} '[{ "txid": "{{ your txid }}", "vout": {{ your index }}, "scriptPubKey": "{{ your scriptPubKey }}" }]

所以,對我來說,這看起來像:

signrawtransaction 0100000001796b9ba89593c7bb2af1e074e23a02ca029c7b13fc8a6656b6aca6017400a1830000000000ffffffff013b610300000000001976a914fb9570085ff3acfef21eac307223eaa499e1e21188ac00000000 '[{ "txid": "83a1007401a6acb656668afc137b9c02ca023ae274e0f12abbc79395a89b6b79", "vout": 0, "scriptPubKey": "76a914205799b3b8bdba5824b0129eec27450b0cfde7eb88ac" }]'

結果如下所示:

0100000001796b9ba89593c7bb2af1e074e23a02ca029c7b13fc8a6656b6aca6017400a183000000006a4730440220000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000000012102e25c37498e9e62b2ebcc85780e10949eaacd29826b5ca97a1031ee22e55f0ab5ffffffff013b610300000000001976a914fb9570085ff3acfef21eac307223eaa499e1e21188ac00000000

6.

使用步驟 5 的最終結果,轉到

<https://live.blockcypher.com/btc-testnet/pushtx/>

並輸入原始交易十六進制。選擇“比特幣”網路,點擊“廣播交易”按鈕,您將成功從未同步的錢包中取出您的硬幣!

(我與這裡使用的任何服務都沒有任何從屬關係,我只是發現它們對這個答案很有用。)

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