Bitcoinj - 创建临时钱包

Bitcoinj - create temporary walllet

我是比特币新手。

我需要为货币兑换应用创建一个类似于临时比特币钱包的东西。钱包应该只存在一次交换交易或 2 天(如果交易未确认),然后应该被删除。 但正如我从比特币文档中理解的那样——我不能删除钱包,因为它是 "public key" 类型的。

有什么建议吗?

一个'wallet'实际上并不存在。它只是一组私钥(或者只是一个私钥,可以用来从中派生出其他密钥,就像 HD 钱包一样)。这些私钥允许您花费未花费的输出(UTXO),从而进行交易。

这些私钥用于生成 public 密钥,并从中生成地址。您无法删除这些地址,因为它们只是存在。事实上,每个地址都已经存在,你只需要私钥就可以访问它们。

无论如何从区块链中删除东西是没有意义的,区块链实际上是一个区块链,每个区块都是一个充满交易的容器。如果您要从一个区块中删除一笔交易,那么所有后续区块都将变得无效,因为您区块的 merkle 树的哈希值将不再相加。


话虽这么说,你可能想看看 HD 钱包。你可以这样做(见 BIP44):

m / purpose' / coin_type' / account' / change / address_index

这里可以使用递增的账号ID,这样每个用户都有自己的账号。然后,您可以为每笔收款创建一个新地址(change = 0 用于入站外部交易,change 1 = 用于来自您自己钱包的找零)。

这意味着每个 payment/whatever 都有自己的地址。因为它是一个高清钱包,如果你愿意,你仍然可以使用主密钥访问所有地址。