0

In this question 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

5

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.

8
  • 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 Jan 14 at 17:48
  • 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. – Anonymous Jan 14 at 17:49
  • 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 Jan 14 at 17:55
  • 4
    @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 Jan 14 at 20:40
  • 1
    @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 Jan 14 at 23:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.