我正在使用BitcoinJ API创建我的钱包。当我创建一个事务时,我提供应该发送更改的更改地址。例如:让地址A有1比特币;然后我创建一个事务,将0.1比特币发送到地址B,并将更改(0.9比特币)返回到地址a。
在BitcoinJ钱包中,我看到零钱(0.9比特币)没有收到。为了解决这个问题,我创建了一个自定义的硬币选择器来显式地选择由我自己生成的未确认交易——但我仍然没有看到钱包中的变化(0.9比特币)。
这是事务视图https://www.biteasy.com/testnet/transactions/db66d5058e5773f353447ffa2174a417867e9aa134113f01359576f5e6f2b4c6
这是我的钱包https://www.biteasy.com/testnet/addresses/mnj3589DHMoCyhxDSvWKubjkUoTenmrGkE.
根据我在Biteasy上的地址,余额是4BTC,但我的BitcoinJ钱包显示只有0.069BTC
现在我的问题是:为什么我不能把寄回的零钱寄到同一个地址呢?
客户
地址
发展
比特币
改变
分享
改进这个问题
跟随
12月7日12:19编辑
大卫A。哈丁
10.9k22金徽章3838银徽章6565铜徽章
12月7日11:09问
迪帕克·阿格拉瓦尔
12911银徽章33铜徽章
添加评论
2个答案
5.
如果您手动创建原始交易,或者如果您使用的钱包在每次进行交易时都不会创建新的更改地址,则可以将比特币发送到发送源的相同地址。
这个新地址进程存在的一个原因是为了保护隐私。如果你考虑一个有变化的事务的输出,其中一个输出指向自身,你马上就能确定你付出了多少,事实上,你支付了这个数额给别人,保持了变化。
如果另一方使用不同的地址进行更改,独立观察员无法确定这两个金额中的哪一个是更改的,哪一个是付款。
然而,我怀疑你所做的是一个典型的错误,即认为你支付给另一个地址的钱与原始地址的钱之间的差额会自动发送回你。
我再怎么强调也不为过——差价是作为采矿费发给矿工的。实际上,您没有明确告知交易如何处理差额,因此假设这是您支付的费用,由开采包含您交易的区块的矿工收取。
为了避免这种情况,每笔交易必须至少有两次明示付款和一次暗示付款:
投入量
付款到地址1(必须小于输入)
付款至地址2(必须更改减去您要支付的费用)
输入必须显式地大于付款1和付款2的总和,并且任何剩余的都隐式地是矿工费用
分享
改进这个答案
跟随
于2014年12月9日10:53编辑
我把比特币从我的信托钱包寄到了同一个地址。现在我的btc处于不确定状态。我怎样才能把它拿回来?显示未使用
分享
改进这个答案
跟随