Bitcoin Forum
May 04, 2024, 03:00:10 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Change addresses: What was the motive of Satoshi?  (Read 1446 times)
AlexGR (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1049



View Profile
June 14, 2014, 03:54:32 PM
 #1

We know that "change" in real life are useful because you give ten dollars and you get back change. However in Bitcoin you can send a precise amount of coins, so change is not really "necessary" - not even as an option. It's not needed and adds bloat out of nowhere.

Some say "change increase privacy so that's why it was placed in there". Surely, a protocol as transparent as bitcoin, wouldn't increase its privacy by any significant amount through change (not to mention that change can be linked during future spending). This is stuff that even a script can put together, deanonymizing transactions.

And why, if it is privacy-related, wouldn't one be able to control change spending so as to not be linked together?

So there has to be something else here that Satoshi saw.

I'm thinking it may be related to Quantum-Computing resistance. By moving the amount to the recipient + change to a new address (which hasn't yet published its public key), a good portion of the network's money will remain uncrackable by a quantum computer as the QC won't know the public key to extrapolate the private key.

If control of change is going to be implemented in future versions of Bitcoin, this quantum-resistance could be broken. Perhaps it should also be accompanied by a change in the private/public key algorithm to a quantum-resistant one.

Or, alternatively, introduce a button in the wallet that places one's funds into "quantum storage" - aggregating them automatically in a single address with no spends (that prevent QC cracking). One could even checkbox something like "automatic quantum storage" so that when one wants to spend money, one amount would go to the destination and the other would go to a new address with zero spends. Thus change control won't affect the principle of QC-resistance, if that's the rationale of Satoshi.
1714791610
Hero Member
*
Offline Offline

Posts: 1714791610

View Profile Personal Message (Offline)

Ignore
1714791610
Reply with quote  #2

1714791610
Report to moderator
1714791610
Hero Member
*
Offline Offline

Posts: 1714791610

View Profile Personal Message (Offline)

Ignore
1714791610
Reply with quote  #2

1714791610
Report to moderator
1714791610
Hero Member
*
Offline Offline

Posts: 1714791610

View Profile Personal Message (Offline)

Ignore
1714791610
Reply with quote  #2

1714791610
Report to moderator
It is a common myth that Bitcoin is ruled by a majority of miners. This is not true. Bitcoin miners "vote" on the ordering of transactions, but that's all they do. They can't vote to change the network rules.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
joshraban76
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250



View Profile
June 14, 2014, 04:19:57 PM
 #2

I'm using it as a sort of privacy, I don't feel that I want to share my MAIN address with everyone for example.

\   \  \ \\\\\\\\\\\\\\\\◥◣◢◤//////////////// /  /   /
Win88.me ❖ Fair, Trusted Online BTC Gambling ❖
/   /  / ////////////////◢◤◥◣\\\\\\\\\\\\\\\\ \  \   \
jl2012
Legendary
*
Offline Offline

Activity: 1792
Merit: 1093


View Profile
June 14, 2014, 04:51:01 PM
 #3

No, you don't know how bitcoin works at protocol level. It has nothing to do with privacy or quantum computing.

Bitcoin is like a banknote. You can only spend it as one piece. You can't cut it into 2 halves by yourself. If you want to spend part of its value, you need someone (e.g. a bank) to divide it into 2 banknotes for you. That's how "change" comes. (of course, we don't have a bank in bitcoin, but miners are doing such job)

Donation address: 374iXxS4BuqFHsEwwxUuH3nvJ69Y7Hqur3 (Bitcoin ONLY)
LRDGENPLYrcTRssGoZrsCT1hngaH3BVkM4 (LTC)
PGP: D3CC 1772 8600 5BB8 FF67 3294 C524 2A1A B393 6517
Willisius
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

I'm really quite sane!


View Profile
June 14, 2014, 04:53:33 PM
 #4

I'm using it as a sort of privacy, I don't feel that I want to share my MAIN address with everyone for example.

Heh, speaking of privacy, we're not even supposed to -have- a main address. I'm guilty as well, of course.
joshraban76
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250



View Profile
June 14, 2014, 04:57:56 PM
 #5

I'm using it as a sort of privacy, I don't feel that I want to share my MAIN address with everyone for example.

Heh, speaking of privacy, we're not even supposed to -have- a main address. I'm guilty as well, of course.

Sorry, can't get you.

\   \  \ \\\\\\\\\\\\\\\\◥◣◢◤//////////////// /  /   /
Win88.me ❖ Fair, Trusted Online BTC Gambling ❖
/   /  / ////////////////◢◤◥◣\\\\\\\\\\\\\\\\ \  \   \
shorena
Copper Member
Legendary
*
Offline Offline

Activity: 1498
Merit: 1499


No I dont escrow anymore.


View Profile WWW
June 14, 2014, 04:59:23 PM
 #6

I'm using it as a sort of privacy, I don't feel that I want to share my MAIN address with everyone for example.

Heh, speaking of privacy, we're not even supposed to -have- a main address. I'm guilty as well, of course.

Sorry, can't get you.

One of the ideas with bitcoin is that you generate a new address for every input you get. So you have no main address you just have bunch of addresses.


No, you don't know how bitcoin works at protocol level. It has nothing to do with privacy or quantum computing.

Bitcoin is like a banknote. You can only spend it as one piece. You can't cut it into 2 halves by yourself. If you want to spend part of its value, you need someone (e.g. a bank) to divide it into 2 banknotes for you. That's how "change" comes. (of course, we don't have a bank in bitcoin, but miners are doing such job)

! If you get an input of .1 you have spend it as .1 you can split it into several outputs though. So you can use it to pay .05 to someone and get .05 as change.

Im not really here, its just your imagination.
AlexGR (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1049



View Profile
June 14, 2014, 05:18:11 PM
 #7

No, you don't know how bitcoin works at protocol level. It has nothing to do with privacy or quantum computing.

Bitcoin is like a banknote. You can only spend it as one piece. You can't cut it into 2 halves by yourself. If you want to spend part of its value, you need someone (e.g. a bank) to divide it into 2 banknotes for you. That's how "change" comes. (of course, we don't have a bank in bitcoin, but miners are doing such job)

Perhaps you are right. I am no expert on these matters - I try to understand them.

On what you say:

a) That's a very artificial limitation for an electronic payment system, wouldn't you agree?

b) 1 Bitcoin consists of millions of satoshis anyway - so again the fictional bank to do the division is quite redundant...

c) In terms of future-proofing, what's the chance that the coins remain undivided over the course of 10-20-30-40-50 years? They will be divided anyway, so? If the currency is successful it's almost a given that the vast majority of transactions will be conducted in fractional amounts. Why the need to divide them?

d) What about halvings in block reward that produce fractional coins to begin with?
justusranvier
Legendary
*
Offline Offline

Activity: 1400
Merit: 1009



View Profile
June 14, 2014, 05:22:08 PM
 #8

a) That's a very artificial limitation for an electronic payment system, wouldn't you agree?
Treating Bitcoin like an electronic payment system is a very artificial limitation for a distributed computer.
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1075


Ian Knowles - CIYAM Lead Developer


View Profile WWW
June 14, 2014, 05:23:25 PM
 #9

Understand that "coins" get split up and recombined all the time.

So your 100 received 0.001 BTC's can be sent out as 0.1 BTC (so the system doesn't *break down* because of everything turning into dust).

The point all along is to help keep things more "anonymous" and "coin control" can help in giving you more "control" over this process.

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
AlexGR (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1049



View Profile
June 14, 2014, 05:25:09 PM
 #10

a) That's a very artificial limitation for an electronic payment system, wouldn't you agree?
Treating Bitcoin like an electronic payment system is a very artificial limitation for a distributed computer.

"What is needed is an electronic payment system based on cryptographic proof instead of trust,
allowing any two willing parties to transact directly with each other without the need for a trusted
third party.
"

--Satoshi (whitepaper)

justusranvier
Legendary
*
Offline Offline

Activity: 1400
Merit: 1009



View Profile
June 14, 2014, 05:30:08 PM
 #11

a) That's a very artificial limitation for an electronic payment system, wouldn't you agree?
Treating Bitcoin like an electronic payment system is a very artificial limitation for a distributed computer.

"What is needed is an electronic payment system based on cryptographic proof instead of trust,
allowing any two willing parties to transact directly with each other without the need for a trusted
third party.
"

--Satoshi (whitepaper)
Think a bit more about what it means for Bitcoin to be a distributed computer.

Also, the word "Bitcoin" doesn't only have one meaning.
AlexGR (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1049



View Profile
June 14, 2014, 05:33:51 PM
 #12

Understand that "coins" get split up and recombined all the time.

So your 100 received 0.001 BTC's can be sent out as 0.1 BTC (so the system doesn't *break down* because of everything turning into dust).

Key question: Are change addresses *needed* for this splitting and recombination? Can't they just be performed on a transaction basis?
Peter R
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
June 14, 2014, 05:38:31 PM
 #13

No, you don't know how bitcoin works at protocol level. It has nothing to do with privacy or quantum computing.

Bitcoin is like a banknote. You can only spend it as one piece. You can't cut it into 2 halves by yourself. If you want to spend part of its value, you need someone (e.g. a bank) to divide it into 2 banknotes for you. That's how "change" comes. (of course, we don't have a bank in bitcoin, but miners are doing such job)

Perhaps you are right. I am no expert on these matters - I try to understand them.


He is right.  This is directly from Satoshi's white paper (Section 9): https://bitcoin.org/bitcoin.pdf

Quote
a) That's a very artificial limitation for an electronic payment system, wouldn't you agree?

No.  It is the most flexible way to solve the problem.

Key question: Are change addresses *needed* for this splitting and recombination? Can't they just be performed on a transaction basis?

Yes.  Transactions destroy inputs (in their entirety) and create new outputs.  The rule is that the sum of the outputs must be less than the sum of the inputs for the transaction to be valid.

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
joshraban76
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250



View Profile
June 14, 2014, 05:41:38 PM
 #14

I'm using it as a sort of privacy, I don't feel that I want to share my MAIN address with everyone for example.

Heh, speaking of privacy, we're not even supposed to -have- a main address. I'm guilty as well, of course.

Sorry, can't get you.

One of the ideas with bitcoin is that you generate a new address for every input you get. So you have no main address you just have bunch of addresses.


What if I created a account with my name on blockchain and there I've my only one BTC address, still it will be my main one.

\   \  \ \\\\\\\\\\\\\\\\◥◣◢◤//////////////// /  /   /
Win88.me ❖ Fair, Trusted Online BTC Gambling ❖
/   /  / ////////////////◢◤◥◣\\\\\\\\\\\\\\\\ \  \   \
gmaxwell
Staff
Legendary
*
Offline Offline

Activity: 4158
Merit: 8382



View Profile WWW
June 14, 2014, 05:52:50 PM
 #15

We know that "change" in real life are useful because you give ten dollars and you get back change. However in Bitcoin you can send a precise amount of coins, so change is not really "necessary" - not even as an option. It's not needed and adds bloat out of nowhere.
Sorry, you misunderstand Bitcoin horribly— you're in good company: The blockexplorers present a cooked view of the system to make things simpler, but promote this sort of misunderstanding as an unfortunate side effect.

In Bitcoin you cannot send a precise amount. You must send an amount which is a sum of some subset of the amounts you've previously received. A good mental model is to imagine that when someone pays you they give you a metal coin with a certain weight (value) with a public key of yours written on it.  You know which payment was being made by virtue of which public key received the funds.  When you later want to spend the coin you visit a forge (the network) and ask it to melt down one or more coins that you have and make one or more new coins of equal or lesser weight with whatever public keys you want to be paid paid inscribed on them and you present signatures to show you were authorized to spend the coin(s).

The Bitcoin blockchain has no "balances" and instead tracks atomic "coins" (transaction outputs). When your wallet authors a transaction it picks one or more of the payments you've previously received to spend completely. Often the amount is more than the amount you are spending (obviously it cannot be less), and so you need to take change as part of the transaction.

The coin tracking design is important because it prevents replay and also allows clear deterministic behavior in the event of reorganization. The lack of any persistent accounts is also beneficial for privacy.
shorena
Copper Member
Legendary
*
Offline Offline

Activity: 1498
Merit: 1499


No I dont escrow anymore.


View Profile WWW
June 14, 2014, 06:19:59 PM
 #16

-snip-
What if I created a account with my name on blockchain and there I've my only one BTC address, still it will be my main one.

You can do this, but you should make a new address for every time you get some coins. Its not like you have to.

Im not really here, its just your imagination.
joshraban76
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250



View Profile
June 14, 2014, 06:25:01 PM
 #17

-snip-
What if I created a account with my name on blockchain and there I've my only one BTC address, still it will be my main one.

You can do this, but you should make a new address for every time you get some coins. Its not like you have to.

May I know why ?

Off-topic :- Your PD signature is messed somehow, the two blue lines are taller than the in-between sentence.

\   \  \ \\\\\\\\\\\\\\\\◥◣◢◤//////////////// /  /   /
Win88.me ❖ Fair, Trusted Online BTC Gambling ❖
/   /  / ////////////////◢◤◥◣\\\\\\\\\\\\\\\\ \  \   \
shorena
Copper Member
Legendary
*
Offline Offline

Activity: 1498
Merit: 1499


No I dont escrow anymore.


View Profile WWW
June 14, 2014, 06:28:33 PM
 #18

-snip-
What if I created a account with my name on blockchain and there I've my only one BTC address, still it will be my main one.

You can do this, but you should make a new address for every time you get some coins. Its not like you have to.

May I know why ?

Because it is harder to know which person has how many coins if you use a new address for every transaction. It helps with the ano-/pseudonymitiy. If you allways use the same address I only have to get that address and know how much bitcoins you have and where you spend them to.


Off-topic :- Your PD signature is messed somehow, the two blue lines are taller than the in-between sentence.

Thats the way Stunna wanted it when I copied it. I dont think its a problem.

Im not really here, its just your imagination.
AlexGR (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1049



View Profile
June 14, 2014, 06:38:00 PM
 #19

Nice analogy. Thank you for your time answering this... I still have a problem digesting the "why can't I simply cut the gold bar in half and pay with half of it and keep the rest" instead of remelting it / recasting it into new bars.

I think I understand why it happens as it happens (because obviously it was designed to be performed that way) but I still have questions on why it was designed that way when it could have been designed in a more straightforward manner. Maybe this is a multi-layered redundancy against a QC-attack-vector.

There are at least 2 "convenient" coincidences regarding quantum-computing protection...

1) the use of addresses as a hash of the public key (a quantum computer can't extrapolate the private key based on the hash of the public key, but it can do so with the public key itself - so as far as there is no spending, the money are safe from QC-attacks)

2) the use of change => destroying prior input and creating change. Thus the remains are not vulnerable to a QC attack to the public key (neither should the main output if the recipient follows best practices on how he uses his addresses).

The design doesn't seem arbitrary. The fact that Satoshi didn't go for a quantum-resistant algorithm for public/private keys is the only troubling aspect - unless we presume there wasn't an adequate solution at his time or the solutions he considered were probably deemed problematic in some other way that we don't know of. But he sure made his best to secure the system anyway despite the lack of QC-resistant algo.
Este Nuno
Legendary
*
Offline Offline

Activity: 826
Merit: 1000


amarha


View Profile
June 14, 2014, 06:38:40 PM
 #20

-snip-
What if I created a account with my name on blockchain and there I've my only one BTC address, still it will be my main one.

You can do this, but you should make a new address for every time you get some coins. Its not like you have to.

May I know why ?

Off-topic :- Your PD signature is messed somehow, the two blue lines are taller than the in-between sentence.

I like to do it keep everything separate. I can see which addresses received what funds from where just by looking at whatever address received the coins. If i gave address x to someone and it gets a 0.5 btc I know where it came from. That's one reason anyway.
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!