Author

Topic: why there is change address. (Read 454 times)

legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
November 28, 2021, 05:02:39 AM
#23
I find it's weird they changed dynamic rule to static rate since static rate cover fewer user error.
Because it's not really designed to cover user error, but rather, software error. There is more discussion about it here (https://github.com/bitcoin/bitcoin/pull/16539), particularly this comment by Greg Maxwell here (https://github.com/bitcoin/bitcoin/pull/16539#issuecomment-578432863).

In short, if I wanted to make a high priority transaction and pay, say, 200 sats/vbyte, and my wallet then tried to include 500 additional inputs because of some bug, then a flat rate limit would prevent that from happening, while a feerate limit would not.

gmaxwell made good point, but it's trade-off and we know people doesn't always use tool as intended/original purpose. This shown by other contributor who ACK the concept. Nevertheless, it's not serious concern/priority so it's more practical to advice people to inspect signed transaction before broadcasting it.
legendary
Activity: 2268
Merit: 18771
November 28, 2021, 04:39:24 AM
#21
I find it's weird they changed dynamic rule to static rate since static rate cover fewer user error.
Because it's not really designed to cover user error, but rather, software error. There is more discussion about it here (https://github.com/bitcoin/bitcoin/pull/16539), particularly this comment by Greg Maxwell here (https://github.com/bitcoin/bitcoin/pull/16539#issuecomment-578432863).

In short, if I wanted to make a high priority transaction and pay, say, 200 sats/vbyte, and my wallet then tried to include 500 additional inputs because of some bug, then a flat rate limit would prevent that from happening, while a feerate limit would not.
legendary
Activity: 2268
Merit: 18771
November 28, 2021, 04:05:09 AM
#20
Yeah as if 0.1 btc isn't a large enough disaster. 0.1 btc is around $5000 so that's kind of alot to pay for a txn fee but I guess some people do that?? Shocked Whoever those devs are that set the default to 0.1btc must know some pretty big whales.

maybe that default setting is a carryover from something satoshi setup and they just never updated it Cheesy
It was first discussed back in 2015, when 0.1 BTC was worth around $20-30: https://github.com/bitcoin/bitcoin/pull/7084

It was originally defined as a rate of 10,000 times higher than the minimum relay transaction fee, which is 1000 sats per kB or 1 sat/byte, which worked out to 0.1 BTC per kB or 10,000 sats per byte. It was then switched to flat rate of 0.1 BTC. This is not an unreasonable amount given that there are plenty of consolidation transactions with 500+ inputs them. The limit is mostly there to stop someone emptying out their entire wallet of dozens of BTC by mistake, not to stop users overspending on fees.
sr. member
Activity: 1190
Merit: 469
November 27, 2021, 10:09:46 PM
#19

The good thing is, there actually is a setting for that (start parameter or bitcoin.conf entry):
maxtxfee = sets the maximum transaction fee in BTC that your node can broadcast/relay,
The default is 0.1BTC, still too high but at least it can prevent >1BTC disasters.


Yeah as if 0.1 btc isn't a large enough disaster. 0.1 btc is around $5000 so that's kind of alot to pay for a txn fee but I guess some people do that?? Shocked Whoever those devs are that set the default to 0.1btc must know some pretty big whales.

maybe that default setting is a carryover from something satoshi setup and they just never updated it Cheesy


legendary
Activity: 2618
Merit: 6452
Self-proclaimed Genius
November 27, 2021, 03:26:51 AM
#18
Quote
-snip-
Uh, yeah it's happened to someone before. most people it doesn't happen to though. that does bring up a good point though. maybe there needs to be something in bitcoin core that prevents it from happening. just reject the transaction if the transaction fee is **too much** greater than the "average transaction fee".
The good thing is, there actually is a setting for that (start parameter or bitcoin.conf entry):
maxtxfee = sets the maximum transaction fee in BTC that your node can broadcast/relay,
The default is 0.1BTC, still too high but at least it can prevent >1BTC disasters.

Bitcoin-qt - 'Help->Command-line options', under "Debugging/Testing options:":
Quote
-maxtxfee=
Maximum total fees (in BTC) to use in a single wallet transaction; setting this too low may abort large transactions (default: 0.10)
sr. member
Activity: 1190
Merit: 469
November 27, 2021, 12:03:55 AM
#17
Quote
This is bad, if I forget to send to an address all the amount from UTXO will be added to the transaction fee. Has this thing happen to somebody before?


Uh, yeah it's happened to someone before. most people it doesn't happen to though. that does bring up a good point though. maybe there needs to be something in bitcoin core that prevents it from happening. just reject the transaction if the transaction fee is **too much** greater than the "average transaction fee".
legendary
Activity: 2422
Merit: 2228
Signature space for rent
November 26, 2021, 09:58:49 PM
#16
This would happen if you are using a single address like a paper wallet. Yes, it has happened previously. You may read it here, WARNING: How I lost Bitcoins using a paper wallet . The problem is paper wallet unable to indicate the change address. As a result, the change fund would transfer to a change address that isn't handled by you. It would move into the miner address who validates the transaction.
This won't happen if you import the private key from  paper wallet into one of the known biwallet apps and use it to create the transaction. Even if your wallet consists of a single address, the app will send the change amount (if any) back to it.
The problem isn't due to having a single address but due to creating the raw transaction manually and forgetting to specify a change address (or using a poorly coded app).
Yea, you are right. But if you read the article above there is a solution as well and were suggested to use a wallet during making a transaction. So that you shouldn't lose the funds due to a change address. I just point out potential risks due to a changed address when using a paper wallet or something like that was using only a single address. It's important to know about the risk, so you can find a possible solution.

I click the link and it confirm that Alice can lost her bitcoin to miner if she use paper wallet to send to Bob if she did not create a change address.
Fine, a good practice always could help you to prevent potential loss. Always use a wallet that is non-custodial and well-reputed. So you don't need to worry about changing your address.
hero member
Activity: 1162
Merit: 643
BTC, a coin of today and tomorrow.
November 26, 2021, 03:57:12 PM
#15
So even if you disable change address, the rest of the amount from the UTXO that you're spending should be sent to an address;
Otherwise, it will be added to the transaction fee.
This is bad, if I forget to send to an address all the amount from UTXO will be added to the transaction fee. Has this thing happen to somebody before?
No, a well-written client/wallet will send the remaining amount to your 'receiving address' or back to the same address if 'change address' is disabled/not available.
It will only happen if you will create the transaction by hand and forgot to specify a change address, eg. through Bitcoin Core's createrawtransaction command.
I haven't heard of a wallet that fails to do that and forgot to claim the remaining balance from the UTXO.
Ok. Thank you there is so many thing to know.

You may read Binance academy explanation about change address and paper wallet, so you may realize what is the danger of using paper wallet because of change address.
I click the link and it confirm that Alice can lost her bitcoin to miner if she use paper wallet to send to Bob if she did not create a change address.
legendary
Activity: 2744
Merit: 3097
Top Crypto Casino
November 26, 2021, 02:26:54 PM
#14
This would happen if you are using a single address like a paper wallet. Yes, it has happened previously. You may read it here, WARNING: How I lost Bitcoins using a paper wallet . The problem is paper wallet unable to indicate the change address. As a result, the change fund would transfer to a change address that isn't handled by you. It would move into the miner address who validates the transaction.
This won't happen if you import the private key from  paper wallet into one of the known biwallet apps and use it to create the transaction. Even if your wallet consists of a single address, the app will send the change amount (if any) back to it.
The problem isn't due to having a single address but due to creating the raw transaction manually and forgetting to specify a change address (or using a poorly coded app).
legendary
Activity: 2422
Merit: 2228
Signature space for rent
November 26, 2021, 12:21:01 PM
#13
This is bad, if I forget to send to an address all the amount from UTXO will be added to the transaction fee. Has this thing happen to somebody before?
This would happen if you are using a single address like a paper wallet. Yes, it has happened previously. You may read it here, WARNING: How I lost Bitcoins using a paper wallet . The problem is paper wallet unable to indicate the change address. As a result, the change fund would transfer to a change address that isn't handled by you. It would move into the miner address who validates the transaction.

You may read Binance academy explanation about change address and paper wallet, so you may realize what is the danger of using paper wallet because of change address.
legendary
Activity: 2618
Merit: 6452
Self-proclaimed Genius
November 26, 2021, 10:07:32 AM
#12
So even if you disable change address, the rest of the amount from the UTXO that you're spending should be sent to an address;
Otherwise, it will be added to the transaction fee.
This is bad, if I forget to send to an address all the amount from UTXO will be added to the transaction fee. Has this thing happen to somebody before?
No, a well-written client/wallet will send the remaining amount to your 'receiving address' or back to the same address if 'change address' is disabled/not available.
It will only happen if you will create the transaction by hand and forgot to specify a change address, eg. through Bitcoin Core's createrawtransaction command.
I haven't heard of a wallet that fails to do that and forgot to claim the remaining balance from the UTXO.
hero member
Activity: 1162
Merit: 643
BTC, a coin of today and tomorrow.
November 26, 2021, 09:07:44 AM
#11
Those wallet that has not change address how will they solve the problem of privacy mention by Exodus?
They do not. If you choose to re-use an address for change you give that up. It's a matter of personal choice, even though it is not a very wise choice to do so.
Ok. it is not good but people that don't want delay can like it too.
Quote
Good non-custodial wallets such as Electrum allow you to select which inputs you want to spend from. It's a feature that was already mentioned in this thread and it's known as coin control. You control and decide which input to spend from. Therefore, you can select the first, the last, the smallest, or the biggest input in your wallet.
Very very much good. This is what i mean. So their is a solution. Wehdone.

Quote
So even if you disable change address, the rest of the amount from the UTXO that you're spending should be sent to an address;
Otherwise, it will be added to the transaction fee.
This is bad, if I forget to send to an address all the amount from UTXO will be added to the transaction fee. Has this thing happen to somebody before?


legendary
Activity: 2730
Merit: 7065
November 26, 2021, 02:55:43 AM
#10
I read that when you sent bitcoin to someone the output you are sending is the balance of the input you receive last.
Good non-custodial wallets such as Electrum allow you to select which inputs you want to spend from. It's a feature that was already mentioned in this thread and it's known as coin control. You control and decide which input to spend from. Therefore, you can select the first, the last, the smallest, or the biggest input in your wallet. 

Quote from:  Elyse Jupiter
Consider the example of taking a $20 bill out of your wallet to pay for a $5 cup of coffee. You would give the $20 to the cashier, and the cashier would give you back the $15. While the $15 belongs to you, it is not available for the time it takes the cashier to give you back your change
The comparison with individual bills is a good one. Each time someone sends you bitcoin to your personnel wallet (not an account on an exchange), that becomes a new bill that you have. The amounts don't matter, each transaction is a new separate unit. 

But if am using my ordinary fiat wallet and I use $20 to pay bill and I still have other dollars in my wallet I can use them to buy other things before my change will come. Why is  bitcoin spending different.
Again, it depends on how many UTXOs (bills) you have in your wallet. If you have multiple, you can spend one of those while you are waiting for your $20 UTXO to be confirmed on chain.
legendary
Activity: 2618
Merit: 6452
Self-proclaimed Genius
November 25, 2021, 10:28:50 PM
#9
-snip- So you will not use the balance in your wallet until the transaction is confirm and your balance is send back to you through change address.
Actually, this isn't because of the change address but because 'Bitcoin Transaction' is "UTXO" based (more info).
Each unspent transaction output in the blockchain should be spent whole so if you need to spend one with the huge amount, you'll need to send the excess amount to another address in your wallet
which is usually sent to a 'change address' but can also be sent to a 'receiving address' depending on the wallet.
So even if you disable change address, the rest of the amount from the UTXO that you're spending should be sent to an address;
Otherwise, it will be added to the transaction fee.

Your wallet is making you wait for confirmation, it must be because it's set to wait for confirmation before spending a UTXO (the change of the unconfirmed transaction).
Some wallets have a setting to be able to spend unconfirmed unspent transaction outputs.
sr. member
Activity: 310
Merit: 727
---------> 1231006505
November 25, 2021, 03:15:15 PM
#8
Those wallet that has not change address how will they solve the problem of privacy mention by Exodus?
They do not. If you choose to re-use an address for change you give that up. It's a matter of personal choice, even though it is not a very wise choice to do so. Although you should know giving up privacy in this case does not automatically mean it is clear which person/entity is connected to the address. But the other way around is true: as soon as it is clear address X belongs to person Z it means you can trace back every payment done and received to/by the re-used address of person Z because all bitcoin transactions are public.
hero member
Activity: 1162
Merit: 643
BTC, a coin of today and tomorrow.
November 25, 2021, 03:04:14 PM
#7
It depends on what wallet you use because there are some wallets that doesn't have a change address or you can disable it manually like Electrum you can disable that function.

Change address was generated for privacy purposes and it is an address where the remainder is being sent to your other address after you send a specified amount to the receiver.

Actually, it's no different there is also a coin control feature where you can choose any UTXO to spend. It is likely you have other dollars in your wallet sample you have $20 and $5 in your pocket since the coffee price is $5 you can pay it with your $5.

I read where it is said that the change address is use to make the public not to know the amount of bitcoin someone has in his balance.
Quote from: Exodus
For Example: if a transaction for 1 BTC moves a 2 BTC UTXO from Address X to Address Y, and the 1 BTC of change is returned to Address X, it would be obvious that Address X paid Address Y. On the other hand, if the 1 BTC of change is returned to a change address, Address Z, it wouldn’t be clear if the original payment of 1 BTC was meant for Address Y or Address Z, since both received 1 BTC
Those wallet that has not change address how will they solve the problem of privacy mention by Exodus?
hero member
Activity: 1162
Merit: 643
BTC, a coin of today and tomorrow.
November 25, 2021, 02:52:48 PM
#6
It's good for your privacy, here's a pretty good (and simple) explanation by Exodus: https://support.exodus.com/article/109-what-are-change-addresses#receive

Also, I don't see the problem? since even though the funds are being sent to another address, they would remain in the same software wallet, so it really doesn't affect the UX at all.

This link is helpful to me.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
November 25, 2021, 01:31:56 PM
#5
Quote from:  Elyse Jupiter
Consider the example of taking a $20 bill out of your wallet to pay for a $5 cup of coffee. You would give the $20 to the cashier, and the cashier would give you back the $15. While the $15 belongs to you, it is not available for the time it takes the cashier to give you back your change
Bitcoin change is instant: it's available at the exact same moment you make your transaction (but it might depend on wallet settings, in Bitcoin Core I've ticked "Spend unconfirmed change").

Quote
But if am using my ordinary fiat wallet and I use $20 to pay bill and I still have other dollars in my wallet I can use them to buy other things before my change will come. Why is  bitcoin spending different.
If you have multiple inputs in your wallet, you can use them separately. Or all at once. "Coin control" is the keyword you're looking for.



Does (for instance) Bitcoin "change" explained help?
legendary
Activity: 3472
Merit: 3217
Playbet.io - Crypto Casino and Sportsbook
November 25, 2021, 01:31:49 PM
#4
It depends on what wallet you use because there are some wallets that doesn't have a change address or you can disable it manually like Electrum you can disable that function.

Change address was generated for privacy purposes and it is an address where the remainder is being sent to your other address after you send a specified amount to the receiver.

Actually, it's no different there is also a coin control feature where you can choose any UTXO to spend. It is likely you have other dollars in your wallet sample you have $20 and $5 in your pocket since the coffee price is $5 you can pay it with your $5.
copper member
Activity: 2856
Merit: 3071
https://bit.ly/387FXHi lightning theory
November 25, 2021, 01:30:10 PM
#3
I read that when you sent bitcoin to someone the output you are sending is the balance of the input you receive last. So you will not use the balance in your wallet until the transaction is confirm and your balance is send back to you through change address.
Quote from:  Elyse Jupiter
Consider the example of taking a $20 bill out of your wallet to pay for a $5 cup of coffee. You would give the $20 to the cashier, and the cashier would give you back the $15. While the $15 belongs to you, it is not available for the time it takes the cashier to give you back your change
But if am using my ordinary fiat wallet and I use $20 to pay bill and I still have other dollars in my wallet I can use them to buy other things before my change will come. Why is  bitcoin spending different.


What your bank does is store a number for your balance and they keep changing this number based on the transactions you do.

With bitcoin you send funds to someone and the change back to yourself (often to your change address).

As to why this is actually done, I'm not sure - it might allow for privacy to be improved or security in some ways.
staff
Activity: 3500
Merit: 6152
November 25, 2021, 01:28:50 PM
#2
It's good for your privacy, here's a pretty good (and simple) explanation by Exodus: https://support.exodus.com/article/109-what-are-change-addresses#receive

Also, I don't see the problem? since even though the funds are being sent to another address, they would remain in the same software wallet, so it really doesn't affect the UX at all.
hero member
Activity: 1162
Merit: 643
BTC, a coin of today and tomorrow.
November 25, 2021, 01:07:55 PM
#1
I read that when you sent bitcoin to someone the output you are sending is the balance of the input you receive last. So you will not use the balance in your wallet until the transaction is confirm and your balance is send back to you through change address.
Quote from:  Elyse Jupiter
Consider the example of taking a $20 bill out of your wallet to pay for a $5 cup of coffee. You would give the $20 to the cashier, and the cashier would give you back the $15. While the $15 belongs to you, it is not available for the time it takes the cashier to give you back your change
But if am using my ordinary fiat wallet and I use $20 to pay bill and I still have other dollars in my wallet I can use them to buy other things before my change will come. Why is  bitcoin spending different.
Jump to: