Pages:
Author

Topic: move 1 BTC from one wallet to another, third wallet pay for transaction? (Read 309 times)

HCP
legendary
Activity: 2086
Merit: 4361
it's more about how actual Bitcoin transactions work, and whether this specific case (CPFP) segregates the inputs of the parent from the child.
Well, given that the CPFP is simply spending the UTXO from a previous (unconfirmed) transaction (with a high fee), it's technically, no more or less "linked" than any other "normal" BTC transaction.

However, if one were to analyse the transaction fees of a given block... and possibly the "Received Time" of a transaction (such as displayed by blockchain.com)... it might be possible to identify CPFP transactions.

Basically, you'd be looking for the following conditions:
- 2 transactions in the same block (Transaction A and Transaction B)
- Transaction B spends UTXO created by Transaction A
- Transaction A has a "low" fee relative to current fees being paid by other transactions in the block
- Transaction B has a "high" fee relative to current fees being paid by other transactions in the block

Less conclusive indicator would also be looking for Transaction A to have been received several "blocks" before Transaction B... as theoretically someone attempting to do this on purpose could broadcast Trans A and then immediately broadcast Trans B.
legendary
Activity: 3430
Merit: 3080
If the child transaction is confirmed and included in a block, then the parent transaction would have to be in the same or a previous block as well.

right


Not sure about taint, maybe it won't, but do we know how companies like chainalysis works? Or do they use the same definition of taint as blockchain.info (.com) used to?

it's more about how actual Bitcoin transactions work, and whether this specific case (CPFP) segregates the inputs of the parent from the child.
legendary
Activity: 3416
Merit: 1912
The Concierge of Crypto
If the child transaction is confirmed and included in a block, then the parent transaction would have to be in the same or a previous block as well.

Not sure about taint, maybe it won't, but do we know how companies like chainalysis works? Or do they use the same definition of taint as blockchain.info (.com) used to?

Which is why, CoinJoin and the wallets that use them like Wasabi are good options. Taint everything. The original thread was "I taint rich."

I think I want to create a new mixer, which really mixes, as in all the inputs go into one address, then all the inputs in that address go to one giant input. Everything is mixed. Then it goes and sends back out to everyone else. Maybe it's not a mixer but a melter. Or something crazy like "Diversity Lottery" ... 100% chance to win dice game, 1% house edge.

I wonder if anyone will use such a service. I'll call it The TaintMixer or TaintMelter. No privacy. Maybe anonymous. No accounts. Send back to whatever address you used.
legendary
Activity: 3430
Merit: 3080
That's why I said "in this instance"... OP has 1 BTC input that they don't want to break. So zero fee would be required to preserve the 1 BTC... which wouldn't get relayed.

sorry, I thought it was you that didn't read properly, it was actually me Cheesy

If you don't mind "sacrificing" a small amount of your original input (or you have a small amount extra), then "yes", you can totally send with min fee and then CPFP to get it pushed through (assuming that min relay isn't enough to get it confirmed)


but my real question was, will the outputs of the parent tx be tainted by the inputs in the child tx used to bump the fee? The more I think about it, there's no reason this should work any differently to a regular transaction, as the parent outs are just inputs to the child tx




a future possibility is the 'package relay' feature (not yet merged into Bitcoin, possibly for 0.20.0). That would let the OP send the original 1 BTC with zero fees, which should be accepted into mempools if simultaneously broadcast with a child tx with the fees to get them both confirmed. Expensive, but not quite the cost of 2 consecutive transactions, as the child needs only 1 input and 1 output + 1 input and 1 output in the parent. Anyone know if package relay could prevent the inputs used as fees in the child tx from tainting the outputs of the parent tx?
HCP
legendary
Activity: 2086
Merit: 4361
That's why I said "in this instance"... OP has 1 BTC input that they don't want to break. So zero fee would be required to preserve the 1 BTC... which wouldn't get relayed.

If you don't mind "sacrificing" a small amount of your original input (or you have a small amount extra), then "yes", you can totally send with min fee and then CPFP to get it pushed through (assuming that min relay isn't enough to get it confirmed)
legendary
Activity: 3430
Merit: 3080
The problem would be that no node would accept your original transaction with zero fee (zero fee required in this instance to avoid "breaking" the 1 BTC input).

not zero. Above the default relay fee, but too low to confirm in the next several blocks

Option #2 is more expensive and arguably just as bad for privacy as you can track the coins being sent to the address anyway... but this way you can't for certain claim they were both "owned" by the same person.

I'm not thinking necessarily of outright privacy

If you had an address that was sent spam dust payments, the dust may be enough to pay the fees of a future transaction (unlikely), or at least contribute something to the fees. If you can structure the transaction in a way that the spam/dust goes only as fees to the miner, then no extra information is revealed that was not already public, you didn't taint your outputs with the spam dust, and the stupid spammer just paid some of your fees Grin
HCP
legendary
Activity: 2086
Merit: 4361
The problem would be that no node would accept your original transaction with zero fee (zero fee required in this instance to avoid "breaking" the 1 BTC input).

The only options the OP has are:
1. Include a 2nd input in the transaction (thus connecting the 2 inputs)
2. Sending a small amount to the original wallet to cover the fee (essentially doubles the total fees as it means creating a 2nd transaction)

Option #1 is arguably bad for privacy
Option #2 is more expensive and arguably just as bad for privacy as you can track the coins being sent to the address anyway... but this way you can't for certain claim they were both "owned" by the same person.

If privacy is the overriding concern, then, as stated earlier, you'd probably be better off dumping all your coins into a mixer/coinjoin and then creating fresh 1 BTC outputs from there.
legendary
Activity: 3430
Merit: 3080
a question on this has occurred to me

if you do this, the inputs get essentially merged, and so are forever "tainted" with one another (not the right expression, but I hope you all see what I mean)

But what if you used CPFP? (child pays for parent)


Couldn't you

  • create the parent 1 BTC transaction with sufficiently low fees that it won't get confirmed any time soon
  • create a child tx that spends the output of the parent, and an input to cover the (total) fees that is not sent to an output

would that not avoid tainting the 1 BTC output in the parent with the input used as fees in the child transaction? Or is this somehow possible without using CPFP at all?
HCP
legendary
Activity: 2086
Merit: 4361
I have all keys to all three wallets. I created all wallets with vanitygen so I did not use any specific software. I could use either core or electrum or sign a transaction offline and broadcast it from a USB pendrive.
Then you can do exactly what you want... follow nc50lc's advice... use Electrum or Bitcoin Core, it doesn't really matter. They'll both achieve the same thing. Hell, you could probably even do it with https://coinb.in

Although, you would be well advised to make sure you have an offline computer for handling the private keys and signing... and an online computer for creating the initial transaction and broadcasting of signed transaction(s).
legendary
Activity: 2408
Merit: 2226
Signature space for rent
Thanks everyone for your input. Being a bit sentimental, i have those 1BTC wallets created using 1NAME for different family members and its pretty cool telling your kid you gave them 1 whole BTC for christmas at address 1John telling them their Bitcoin is at that name address and not 0.99 or 1.01, but exactly 1 BTC
I am guessing you want to send 1 btc fully by a single transaction for your family member. Its would be best solution, move your btc from second wallet to first wallet. And send 1 btc to 3rd wallet, so 3rd wallet will fully 1 btc. There is not too much fee so you should not worry about this since your are going to send this btc for presentations. I am not sure but I don't think there is such as program or script that would send btc from both wallet but transaction fee will deduct from 1 wallet.
jr. member
Activity: 87
Merit: 5
I'd use Core if I were you, but it will work just as well with Electrum. You simply need to import the private keys, select all the inputs and send.

You might want to precalculate the transaction fee, or add a little bit more satoshis (or use more than one other input) ...

I understand the different wallets are not connected and you may want to keep them that way, however you could do one giant consolidation transaction (which would break privacy), but at the same time you could also just run something like Wasabi wallet to make it CoinJoin with a bunch of others and then come up with a nice chunk of pretty good anonymized coins in new native segwit addresses.

Also, I know 0.9999 isn't that much different than 1.0000 (yah, it is 0.0001 less), but what's so bad about that? Unless you really like and must have a whole coin.

When you do send it in the future, it will use up transaction fees again, so might as well put more than a whole coin. Like 1.0001 so that includes the tx fee for a future transaction when you sweep the address.

Thanks everyone for your input. Being a bit sentimental, i have those 1BTC wallets created using 1NAME for different family members and its pretty cool telling your kid you gave them 1 whole BTC for christmas at address 1John telling them their Bitcoin is at that name address and not 0.99 or 1.01, but exactly 1 BTC
legendary
Activity: 2170
Merit: 1427
I am sure you know Chipmixer has an entire category for this whole bitcoin vs broken bitcoin thing lol apparently it is a big issue for some people. I guess it would be for me as well, if I had 1 btc with me.

I find it a bit of a non issue.

I get why people like round numbers and not 0.xxx, but those seeking privacy should take that for granted when using ChipMixer. I have withdrawn a 1BTC chip once thus far, and it was split into smaller fractions all finding their way to cold wallets of mine with some extra movements, all costing additional transaction fees. In other words, I wouldn't get that perfect 1BTC in my cold wallets anyway.

In the end, what matters to me is the total number of coins that I hold, and not even or odd individual balances of my cold wallets.
legendary
Activity: 3416
Merit: 1912
The Concierge of Crypto
I think I've read that, have not had the chance to use ChipMixer personally, I do my own pseudo-mixing, which isn't as anonymous or secure or less tainted, plus I'd prefer to use something like CoinJoin as I understand how that works.

So as annoying as 0.9999 looks like .... well, what I would do is total up all my coins, say you had 10 of them, so 10 x 1 BTC = 10 BTC, I'd somehow acquire maybe another 0.01 from somewhere (buy it, trade it, mine it, earn it ... probably just buy it.) Then you have 10.01 to work with, and that's more than enough to send to 10 new addresses that will contain 1 BTC each with some left over.

Again, I'd probably make it 1.0001 just to cover any future transaction fees, and barring any philosophical differences, would use a native segwit address (begins with bc1qxxxxxxx) so save on fees in the future. There are over 350k BTC in native segwit addresses already, so if anything is likely to get attacked, those would be first before your 1 BTC one.
hero member
Activity: 1778
Merit: 764
www.V.systems
I'd use Core if I were you, but it will work just as well with Electrum. You simply need to import the private keys, select all the inputs and send.

You might want to precalculate the transaction fee, or add a little bit more satoshis (or use more than one other input) ...

I understand the different wallets are not connected and you may want to keep them that way, however you could do one giant consolidation transaction (which would break privacy), but at the same time you could also just run something like Wasabi wallet to make it CoinJoin with a bunch of others and then come up with a nice chunk of pretty good anonymized coins in new native segwit addresses.

Also, I know 0.9999 isn't that much different than 1.0000 (yah, it is 0.0001 less), but what's so bad about that? Unless you really like and must have a whole coin.

When you do send it in the future, it will use up transaction fees again, so might as well put more than a whole coin. Like 1.0001 so that includes the tx fee for a future transaction when you sweep the address.

I am sure you know Chipmixer has an entire category for this whole bitcoin vs broken bitcoin thing lol apparently it is a big issue for some people. I guess it would be for me as well, if I had 1 btc with me.

Anyways, @OP

You could follow what Dabs said above. You could also sweep your funds from your addresses #1 & #2 to a wallet like Armory and then send a tx from there to a new address #3 which could - at least in theory - receive 1 whole 1 BTC with no breakage.

PS: I say theoretically because I have not tried this myself.
legendary
Activity: 3416
Merit: 1912
The Concierge of Crypto
I'd use Core if I were you, but it will work just as well with Electrum. You simply need to import the private keys, select all the inputs and send.

You might want to precalculate the transaction fee, or add a little bit more satoshis (or use more than one other input) ...

I understand the different wallets are not connected and you may want to keep them that way, however you could do one giant consolidation transaction (which would break privacy), but at the same time you could also just run something like Wasabi wallet to make it CoinJoin with a bunch of others and then come up with a nice chunk of pretty good anonymized coins in new native segwit addresses.

Also, I know 0.9999 isn't that much different than 1.0000 (yah, it is 0.0001 less), but what's so bad about that? Unless you really like and must have a whole coin.

When you do send it in the future, it will use up transaction fees again, so might as well put more than a whole coin. Like 1.0001 so that includes the tx fee for a future transaction when you sweep the address.
legendary
Activity: 2618
Merit: 6452
Self-proclaimed Genius
I have all keys to all three wallets. I created all wallets with vanitygen so I did not use any specific software. I could use either core or electrum or sign a transaction offline and broadcast it from a USB pendrive.
1BTC is at stake so, go for "offline keys - online addresses" electrum setup.

  • Download electrum install it in your offline and online machine.
  • In your offline machine, create an imported wallet "import addresses or prv keys" and paste W1 and W2's prv keys.
  • In your online machine, create a watch-only imported wallet using the same option but paste W1 & W2's addresses instead.
  • Create a raw transaction using your online machine sending 1BTC to W3, click "preview" and check if W2's balance isn't enough for the fee & destination addr, etc; then "export" and save.
  • Transfer the file to your offline machine then import it using "Tools->load transaction->from file".
  • Sign it and copy the raw tx or export to USB pendrive, then broadcast using your online machine.
jr. member
Activity: 87
Merit: 5
I mean why not you just send 1+tx fee from wallet #1 to wallet #3 so that wallet #3 receives the whole 1 BTC.
Sorry if I am really missing something that you are not wanting to do that way.
I believe you are... Wallet #1 would appear to have exactly 1 BTC:
I have a wallet with 1 BTC (WALLET #1)


and OP wants wallet #3 to receive exactly 1 BTC.
Quote
... and would like to transfer the 1 BTC as a whole to a third party (WALLET #3)


Quote
Is it possible to program a transaction moving 1 BTC from wallet #1 to wallet # 3 and use wallet #2 to pay for the transaction?
If you have access to the private keys from Wallet #1 and #2, you will be able to create and sign a raw transaction that combines the 1 BTC from #1 and the satoshis from #2 and sends exactly 1 BTC to wallet #3 (with the rest being used for the transaction fee).

What wallet application(s) are you attempting to send from? Bitcoin Core? Electrum? something else? Huh


I have all keys to all three wallets. I created all wallets with vanitygen so I did not use any specific software. I could use either core or electrum or sign a transaction offline and broadcast it from a USB pendrive.

The reason is like you said, I have 1 BTC wallet #1 and dont want to split it (as there is several wallets like this, yes I prefer to split up my funds in smaller wallets) and believe one of them might have a private key which could be exposed (written on a paper I cannot find), therefor I would like to move it to wallet #3 to be safe, without the need to receive 0.9999 BTC to wallet #3.

thanks in advance
HCP
legendary
Activity: 2086
Merit: 4361
I mean why not you just send 1+tx fee from wallet #1 to wallet #3 so that wallet #3 receives the whole 1 BTC.
Sorry if I am really missing something that you are not wanting to do that way.
I believe you are... Wallet #1 would appear to have exactly 1 BTC:
I have a wallet with 1 BTC (WALLET #1)


and OP wants wallet #3 to receive exactly 1 BTC.
Quote
... and would like to transfer the 1 BTC as a whole to a third party (WALLET #3)


Quote
Is it possible to program a transaction moving 1 BTC from wallet #1 to wallet # 3 and use wallet #2 to pay for the transaction?
If you have access to the private keys from Wallet #1 and #2, you will be able to create and sign a raw transaction that combines the 1 BTC from #1 and the satoshis from #2 and sends exactly 1 BTC to wallet #3 (with the rest being used for the transaction fee).

What wallet application(s) are you attempting to send from? Bitcoin Core? Electrum? something else? Huh
legendary
Activity: 1876
Merit: 3132
Is it possible to program a transaction moving 1 BTC from wallet #1 to wallet # 3 and use wallet #2 to pay for the transaction?

Can't you import the private keys of the second wallet to the first one or vice-versa? There might be an easier way to do what you want. Note that the coins from the second wallet will make the transaction bigger so you might pay less without them. Each legacy input adds another 0.00000158 BTC to the fee, assuming that the fee rate is 1 sat/byte.

Edit: Ah, I didn't pay attention to 'program'. The other half of my message is still valid, though.
legendary
Activity: 2464
Merit: 3878
Hire Bitcointalk Camp. Manager @ r7promotions.com
Send coin from wallet #1 to #3. Wallet three receives 1 - tx fee.
Send tx fee from wallet #2 LOL
I mean why not you just send 1+tx fee from wallet #1 to wallet #3 so that wallet #3 receives the whole 1 BTC.

Sorry if I am really missing something that you are not wanting to do that way.
Pages:
Jump to: