Transactions

剩餘的比特幣地址工作流程

  • January 8, 2018

我需要了解交易的正確比特幣地址工作流程。不久前,我用一個普通的錢包創建了一個地址,並在那裡發送了一些硬幣。地址在 segwit m/49’/0’/0’/0/0。然後我花了一些硬幣。當我在區塊鏈上查找地址時,我注意到餘額為 0。發生的交易有兩個輸出地址。資金被發送到兩個地址。第二個是我向其匯款的人的非隔離見證地址。第一個是 segwit m/49’/0’/0’/1/0(我錢包裡的地址)。錢包似乎將我的資金轉移到了我錢包中的一個新地址。即m/49’/0’/0’/0/0 -> m/49’/0’/0’/1/0。

錢包是否應該總是將左側從 m/49’/0’/0’/0/ x移動到 m/49’/0’/0’/ x /0?***這是邏輯標準做法嗎?還是這是我使用的錢包特有的?有推薦的做法嗎?***我需要知道,因為我正在開發錢包,我需要遵循標準做法。

當我將資金從m/49’/0’/0’/ x /0轉移到另一個地址,並且有剩餘時,應該怎麼辦?剩菜的新地址應該搬到哪裡?m/49’/0’/ x ‘/0/0?

錢包似乎將我的資金轉移到了我錢包中的一個新地址。

這是正常和理想的行為。請參閱更改如何在比特幣交易中發揮作用?

錢包應該總是把剩下的從 m/49’/0’/0’/0/x 移動到 m/49’/0’/0’/x/0 嗎?

此錢包使用BIP 49,它擴展了BIP 44中描述的分層錢包組織。BIP 32中描述了分層確定性錢包的通用標準。如果您正在實施自己的錢包,您將需要仔細閱讀這些內容。

在 BIP 44 下,派生路徑的第四級是 0 表示“外部”密鑰對(那些作為接收地址呈現給使用者的,她可以發送給付款人),1 表示“內部”密鑰對(將使用作為更改地址)。

常量 0 用於外部鏈,常量 1 用於內部鏈(也稱為更改地址)。外部鏈用於在錢包之外可見的地址(例如用於接收付款)。內部鏈用於在錢包之外不可見的地址,並用於返回交易更改。

BIP 32 規定了類似的內容:

每個帳戶由兩個密鑰對鏈組成:一個內部的和一個外部的。外部鑰匙串用於生成新的公共地址,而內部鑰匙串用於所有其他操作(更改地址、生成地址……,任何不需要通信的東西)。不支持單獨鑰匙串的客戶應該對所有東西使用外部鑰匙串。

因此,為了符合這個標準,最初使用外部鑰匙串地址 …/0/x 來接收您的硬幣,而內部鑰匙串地址 …/1/y 用於從您的傳出交易中進行更改。(在這種情況下,x 和 y 都是 0 只是一個巧合;它通常只是每條鏈上的下一個未使用的值,但是由於您沒有對錢包進行任何其他操作,因此您獲得了每條鏈上的第一個密鑰對.)

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