<p>That's a question about Ethereum, a system that's notoriously difficult to accept payments with due to some incredibly bad design decisions. Ethereum has operational costs for making new addresses which make this sort of poor engineering attractive.</p>
<p>We have no need to do anything ridiculous like that to try to distinguish payments, we can just make a new address per payment and have people pay to it. There's no need to try to re-use addresses as there's no resource being consumed by you creating new ones. All this would serve to do is cause mass confusion, difficulty when people made two transactions to pay an invoice, and unmitigated confusion about who owns what payment if anything goes awry.</p>
<p>There is no pros at all to what you're describing.</p>
<p>One new address, per invoice, per user. There's no reason to over think it.</p>

CC BY-SA 4.0
2021-01-14T17:48:21.387Z
Thanks for your reply. I thought the reason to force everyone to send payment to one address is to save us from needing to consolidate (forward) all funds to a single "master" address (to make it easier to manage). On the other hand, since Bitcoin uses UTXO model, perhaps receiving all payments to the same address would be of no benefit as each transaction received (even to the same address) would still have a different UTXO. Thus, if I wanted to send one large payment from funds in the single Bitcoin address, it would still be necessary to consolidate everything again during off peak hours..
S.O.S
CC BY-SA 4.0
2021-01-14T17:49:33.903Z
Why would you want to "consolidate" UTXOs, that's just adding extra cost and time for absolutely no purpose. Nobody does this because there's absolutely no reason to. Doing so would even make spending your money more difficult because you would even up making chains of transactions.
Claris
CC BY-SA 4.0
2021-01-14T17:55:30.103Z
because the deposits are made by buyers and payments are made to vendors. Average deposit = 0.001 BTC (1/1,000 BTC) and average withdrawal by vendor = 0.1 (1/10th BTC). It means that when a vendor withdraws his funds we are forwarding on average 100 buyer deposits to the vendor which means 100 transaction fees.. If we don't consolidate during "off peak" hours the fees to send funds to vendor are going to be astronomical..
S.O.S
CC BY-SA 4.0
2021-01-14T17:56:57.037Z
There’s no difference. You have to consolidate them at some point, doing it before sending it to its destination doesn’t really solve any problem. The sizes of the transactions will even be larger if you do it ahead of time.
Claris
CC BY-SA 4.0
2021-01-14T18:17:39.510Z
https://bitcoinops.org/en/xapo-utxo-consolidation/
S.O.S
CC BY-SA 4.0
2021-01-14T20:40:07.353Z
@S.O.S paying repeatedly to one address is no different than paying to new addresses each time in terms of UTXO consolidation costs. Using a single address is a bad idea.
chytrik
CC BY-SA 4.0
2021-01-14T23:12:02.453Z
@S.O.S It sounds like your confusion stems from thinking that consolidation has something to do with addresses - it does not. If you have N incoming payments, you have N UTXOs, regardless of whether they're sent to distinct addresses or the same address. Consolidation combines them into a single UTXO, again regardless of whether what was consolidated was sent to distinct addresses or not. Addresses and how funds are sent/assigned to them is completely independent of transaction costs.
Pieter Wuille
CC BY-SA 4.0
2021-01-14T23:18:49.727Z
Answer up-voted and accepted! Thanks to @PieterWuille and @_Pseudonymous for clarifying the subject. It's a bit counterintuitive but I think it all makes sense now..
S.O.S
CC BY-SA 4.0
2021-01-14T17:41:09.583Z
2021-01-14T17:46:49.987Z
2021-01-14T17:46:49.987Z
Claris
<p>In <a href="https://ethereum.stackexchange.com/questions/27826/is-creating-new-account-per-unique-user-ok-in-ethereum">this question</a> user @lungj suggests using &quot;satoshi&quot; as a marker for user deposits.</p>
<blockquote>
<p>Another method I’ve seen used on bitcoin is using satoshis as a
marker. For example, when paying for a one bitcoin item, an additional
7 satoshi could be added to the amount due to distinguish from another
user asked to add 6 satoshi. Payments must be in exact amounts for
this to work (but you can always refund an incorrect payment, less
fees, to a sender). This does not scale all that well if your IDs must
be permanent. This avoids the need for users to interact with a
contract to include metadata.</p>
</blockquote>
<p>This method basically allows all users of a service to deposit funds to the same Bitcoin address while allowing us to keep track of who deposited which funds.</p>
<p>Off hand I can think of two potential issues with this method:</p>
<ul>
<li>If we reserve 1 Bitcoin address to 100 users, we are adding a minuscule amount of $$$ to each payment (between 1 - 10 cents if Bitcoin exchange rate = $100,000)</li>
<li>It only works when we know in advance how much the user intends to deposit (otherwise there's no way of calculating how much extra &quot;satoshi&quot; was added to a payment (so it won't work for general deposits)</li>
</ul>
<p>What are some of the other pros and cons of using this protocol to keep track of user deposits? Are the issues above solvable?</p>
<p>Thanks</p>

<bitcoin-core><transactions><transaction-fees>
Pros & Cons of Using the "Satoshi" Method to Track User Deposits
S.O.S
# Pros & Cons of Using the "Satoshi" Method to Track User Deposits

(Asked by: username_0 on 2021-01-14)

In [this question](https://ethereum.stackexchange.com/questions/27826/is-creating-new-account-per-unique-user-ok-in-ethereum) user @lungj suggests using "satoshi" as a marker for user deposits.

> Another method I’ve seen used on bitcoin is using satoshis as a
> marker. For example, when paying for a one bitcoin item, an additional
> 7 satoshi could be added to the amount due to distinguish from another
> user asked to add 6 satoshi. Payments must be in exact amounts for
> this to work (but you can always refund an incorrect payment, less
> fees, to a sender). This does not scale all that well if your IDs must
> be permanent. This avoids the need for users to interact with a
> contract to include metadata.

This method basically allows all users of a service to deposit funds to the same Bitcoin address while allowing us to keep track of who deposited which funds.

Off hand I can think of two potential issues with this method:

* If we reserve 1 Bitcoin address to 100 users, we are adding a minuscule amount of $$$ to each payment (between 1 - 10 cents if Bitcoin exchange rate = $100,000)
* It only works when we know in advance how much the user intends to deposit (otherwise there's no way of calculating how much extra "satoshi" was added to a payment (so it won't work for general deposits)

What are some of the other pros and cons of using this protocol to keep track of user deposits? Are the issues above solvable?

Thanks

**Tags:** bitcoin-core, transactions, transaction-fees


---

## 1 answers

### Answer by username_1 on 2021-01-14. Score: 5 | Accepted answer

That's a question about Ethereum, a system that's notoriously difficult to accept payments with due to some incredibly bad design decisions. Ethereum has operational costs for making new addresses which make this sort of poor engineering attractive.

We have no need to do anything ridiculous like that to try to distinguish payments, we can just make a new address per payment and have people pay to it. There's no need to try to re-use addresses as there's no resource being consumed by you creating new ones. All this would serve to do is cause mass confusion, difficulty when people made two transactions to pay an invoice, and unmitigated confusion about who owns what payment if anything goes awry.

There is no pros at all to what you're describing.

One new address, per invoice, per user. There's no reason to over think it.

> **Comments:**
> **username_0**: Thanks for your reply. I thought the reason to force everyone to send payment to one address is to save us from needing to consolidate (forward) all funds to a single "master" address (to make it easier to manage). On the other hand, since Bitcoin uses UTXO model, perhaps receiving all payments to the same address would be of no benefit as each transaction received (even to the same address) would still have a different UTXO. Thus, if I wanted to send one large payment from funds in the single Bitcoin address, it would still be necessary to consolidate everything again during off peak hours..  
> **username_1**: Why would you want to "consolidate" UTXOs, that's just adding extra cost and time for absolutely no purpose. Nobody does this because there's absolutely no reason to. Doing so would even make spending your money more difficult because you would even up making chains of transactions.  
> **username_0**: because the deposits are made by buyers and payments are made to vendors. Average deposit = 0.001 BTC (1/1,000 BTC) and average withdrawal by vendor = 0.1 (1/10th BTC). It means that when a vendor withdraws his funds we are forwarding on average 100 buyer deposits to the vendor which means 100 transaction fees.. If we don't consolidate during "off peak" hours the fees to send funds to vendor are going to be astronomical..  
> **username_1**: There’s no difference. You have to consolidate them at some point, doing it before sending it to its destination doesn’t really solve any problem. The sizes of the transactions will even be larger if you do it ahead of time.  
> **username_0**: https://bitcoinops.org/en/xapo-utxo-consolidation/  
> **username_2**: @username_0 paying repeatedly to one address is no different than paying to new addresses each time in terms of UTXO consolidation costs. Using a single address is a bad idea.  
> **username_3**: @username_0 It sounds like your confusion stems from thinking that consolidation has something to do with addresses - it does not. If you have N incoming payments, you have N UTXOs, regardless of whether they're sent to distinct addresses or the same address. Consolidation combines them into a single UTXO, again regardless of whether what was consolidated was sent to distinct addresses or not. Addresses and how funds are sent/assigned to them is completely independent of transaction costs.  
> **username_0**: Answer up-voted and accepted! Thanks to @username_3 and @_Pseudonymous for clarifying the subject. It's a bit counterintuitive but I think it all makes sense now..  

---

