5 ms·
It appears that the bug is that the change address is always the last one, which defeats the purpose of having a change address. You can see that this is what t
by jordigh 12y ago
It appears that the bug is that the change address is always the last one, which defeats the purpose of having a change address. You can see that this is what their commit changed:
https://github.com/BitGo/BitGoJS/pull/12/files https://github.com/BitGo/BitGoJS/pull/12/files
A change address is designed to enhance anonymity on the blockchain (to anyone who says this doesn't exist, prove it and tell me which bitcoin transactions I've done). With a change address, whenever Alices makes a payment from address X, during a single transaction part of the money goes to Bob's bitcoin address Y and the rest of the money goes to another address Z under Alice's control. The idea is that people should not be able to tell whether Alice controls Y or Z, so it should make it more difficult to know exactly how much money Alice and Bob ended up with.
Of course, if you always know that Alice's change address Z is last, this whole exercise is futile.
- ikeboy 12y ago>A change address is designed to enhance anonymity on the blockchain Don't think that's actually true. A change address may help for anonymity, but the design of bitcoin (specifically, "outputs"), means that change addresses must be used. I doubt the idea was specifically to help anonymity.
- jordigh 12y agoNo, change addresses are optional. The protocol allows transactions with one input and one output: https://en.bitcoin.it/wiki/Transaction#Principle_example_of_a_Bitcoin_transaction_with_1_input_and_1_output_only https://en.bitcoin.it/wiki/Transaction#Principle_example_of_...
- ikeboy 12y agoYes, but that's if you want it all to go to one place. I don't see any specific design choice involving change addresses that seems specifically for anonymity.
- jordigh 12y agoChange addresses aren't part of the design at all. Multiple outputs are. By convention, an output to an address you control is called a change address, but it's just a convention on top of the protocol, not something the protocol is aware of. And yes, their purpose is very explicitly extra anonymity. Gavin named a branch without change addresses a "noprivacy" branch: http://bitcoin.stackexchange.com/questions/1629/why-does-bitcoin-send-the-change-to-a-different-address#comment2139_1629 http://bitcoin.stackexchange.com/questions/1629/why-does-bit...
- deleted 12y ago[deleted]
- ikeboy 12y ago>By convention, an output to an address you control is called a change address, but it's just a convention on top of the protocol, not something the protocol is aware of. I'm aware of that, it's part of what I was trying to say. >Gavin named a branch without change addresses a "noprivacy" branch: That branch apparently just sends it to the sending address. There are other reasons not to reuse addresses unrelated to anonymity, see https://en.bitcoin.it/wiki/Address_reuse https://en.bitcoin.it/wiki/Address_reuse. So I still don't see a design choice that is specifically for anonymity.
- markburns 12y agoAnonymity and lack of susceptibility to a certain class of quantum computing attacks