Bitcoin Forum
December 10, 2016, 04:42:44 PM *
News: Latest stable version of Bitcoin Core: 0.13.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: Incoming transactions are added?  (Read 707 times)
Bitsky
Hero Member
*****
Offline Offline

Activity: 542


View Profile
November 12, 2011, 01:41:21 PM
 #1

I just ran the following example in the testnet:

Bob has an address which holds 500BTC and he sends out a transaction to two recipient addresses (100BTC each), both of which belong to Alice. She however receives a single 200BTC transaction to the first address only and the second address isn't used.

Now, from what I know, the client sums up coins from multiple addresses to get the amount you want to send out, but shouldn't the recipient see the two transactions in his client?

Granted it's a very special case, but it's somewhat confusing, especially since the blockexplorer shows transactions to both addresses.

Bounty: Earn up to 68.7 BTC
Like my post? Feel free to drop a tip to 1BitskyZbfR4irjyXDaGAM2wYKQknwX36Y
1481388164
Hero Member
*
Offline Offline

Posts: 1481388164

View Profile Personal Message (Offline)

Ignore
1481388164
Reply with quote  #2

1481388164
Report to moderator
1481388164
Hero Member
*
Offline Offline

Posts: 1481388164

View Profile Personal Message (Offline)

Ignore
1481388164
Reply with quote  #2

1481388164
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
Meni Rosenfeld
Donator
Legendary
*
expert
Offline Offline

Activity: 1890



View Profile WWW
November 12, 2011, 04:00:49 PM
 #2

Looks like the same phenomenon I reported here. It's a bug if you ask me, but I didn't get taken seriously back then.

1EofoZNBhWQ3kxfKnvWkhtMns4AivZArhr   |   Who am I?   |   bitcoin-otc WoT
Bitcoil - Exchange bitcoins for ILS (thread)   |   Israel Bitcoin community homepage (thread)
Analysis of Bitcoin Pooled Mining Reward Systems (thread, summary)  |   PureMining - Infinite-term, deterministic mining bond
etotheipi
Legendary
*
expert
Offline Offline

Activity: 1428


Core Armory Developer


View Profile WWW
November 12, 2011, 04:37:59 PM
 #3

This is actually a feature, not a bug, for the sake of "let's dumb it down for the average user."    If you look at it in block explorer, you'll see what you expect.

Let's look at a simpler example: basically every transaction that is executed by the client.  You want to send someone 72 BTC.  So your client combines 4 different inputs that add up to 85, constructs an output transaction with 72 BTC and 13 BTC change back to yourself (at a different address).  

If what you suggest is a bug were fixed, the user would see 5 new transactions in their client... 4 transactions of arbitrary amounts (but adding up to 85) and one transaction in for 13.  The user never authorized 5 different transactions of any of those amounts:  he only issued one transaction for 72 BTC.  

By accumulating the data in the transaction ledger to only show the net outcome of a transaction, the user sees what they expected:  which is the total net debit to their wallet is 72 BTC.  The alternative would be ridiculously confusing.  It would even be annoying for users that understand it:  they know that multiple addresses were used, but they only want to see the net, too.

In your example, this is really the same thing.  It's just with multiple output addresses instead of input addresses.

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
Meni Rosenfeld
Donator
Legendary
*
expert
Offline Offline

Activity: 1890



View Profile WWW
November 12, 2011, 04:53:00 PM
 #4

In your example, this is really the same thing.  It's just with multiple output addresses instead of input addresses.
In other words, it's not the same thing at all. Senders are identified by the output address, not the input address. If I tell Bob to pay me by sending to address X, I know that anything that I receive to X is from Bob. I don't care what the input address is, only the output address (and indeed, the client tells me the output address but not the input address). If the client represents a payment to address X as a payment to my other address Y that's misleading.

True, there aren't many scenarios where this would happen. But for these scenarios we do want to know the true addresses, and there's absolutely no justification to merge them.

For me the scenario was mining pool rewards. Another imaginable scenario: Bob purchases products A and B from me, in amounts not agreed in advance but rather determined from the actual payment sent. I tell him to pay address X for product A and address Y for product B. If both payments are in the same block (I think it doesn't even have to be the same transaction), I don't know how much he paid for each. Also donations (send to X to support my project A, to Y to support B) and voting (X to vote A, Y to vote B - assuming one wants to vote for multiple items).

1EofoZNBhWQ3kxfKnvWkhtMns4AivZArhr   |   Who am I?   |   bitcoin-otc WoT
Bitcoil - Exchange bitcoins for ILS (thread)   |   Israel Bitcoin community homepage (thread)
Analysis of Bitcoin Pooled Mining Reward Systems (thread, summary)  |   PureMining - Infinite-term, deterministic mining bond
etotheipi
Legendary
*
expert
Offline Offline

Activity: 1428


Core Armory Developer


View Profile WWW
November 12, 2011, 04:58:20 PM
 #5

I don't really understand your example anymore.  Did you give Bob address X and Y?  Why is Bob sending you two outputs to two different addresses?

If you gave X to Bob, and Y to Alice, and you got a transaction with two outputs, one to each address... the only reasonable explanation is that Bob and Alice are the same person, or are doing something very creative -- Bob and Alice would have to get together, and create a single joint transaction using inputs from both of their wallets, and sending to outputs both X and Y in the same transaction.  That just doesn't happen, and the software has no incentive to try to distinguish this situation (if it were possible).

Or am I still misunderstanding?

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
Meni Rosenfeld
Donator
Legendary
*
expert
Offline Offline

Activity: 1890



View Profile WWW
November 12, 2011, 05:07:01 PM
 #6

I don't really understand your example anymore.  Did you give Bob address X and Y?  How is Bob sending you two outputs to two different addresses?
Yes, Bob was given both X and Y. See my edit for some example scenarios.

For me what happened is that I used a separate address for each worker in my mining pool. I wanted to know how much each generated. But instead, the client's display merged all coins received from the pool, so I didn't know which is which (of course I can collect the info from blockexplorer, and it didn't matter that much to me, but again, I could have really cared about this and I could have wanted to do this conveniently without hunting addresses in BE. And again, there's no justification to merge).

1EofoZNBhWQ3kxfKnvWkhtMns4AivZArhr   |   Who am I?   |   bitcoin-otc WoT
Bitcoil - Exchange bitcoins for ILS (thread)   |   Israel Bitcoin community homepage (thread)
Analysis of Bitcoin Pooled Mining Reward Systems (thread, summary)  |   PureMining - Infinite-term, deterministic mining bond
Bitsky
Hero Member
*****
Offline Offline

Activity: 542


View Profile
November 12, 2011, 08:01:34 PM
 #7

I stumbled across this when I was waiting for two transaction from the same sender, but to two different addresses which I used to keep both amounts separated for the sake of an overview. Let's say you do business with someone and work on two projects for that person. It still would be desireable to see that you got amount x for job 1 and amount y for job 2. Of course it doesn't make a difference balance-wise, but you can scroll back through your history and easily see which project earned you how much. It actually isn't confusing at all: I expect two transactions and the sender makes two transactions. But in the end it gets added up into one of both addresses.

It's kinda like shopping: you buy two items and pay the sum. But on the receipt, you still see how much each item cost (apples and oranges, I know). Of course you can go to the seller's website and search the prices, but it's simpler to just look at the receipt.

Bounty: Earn up to 68.7 BTC
Like my post? Feel free to drop a tip to 1BitskyZbfR4irjyXDaGAM2wYKQknwX36Y
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!