Author

Topic: How exactly do off-chain microtransactions avoid total transaction fees? (Read 1164 times)

hero member
Activity: 560
Merit: 509
I prefer Zakir over Muhammed when mentioning me!
I understand that, they have an onsite non-bitcoin ledger to keep track of the account balances, but I don't see how that escapes the fees.

If 1 million people send bitcoins to the sites pooled addresses in a single site-owned wallet, all of their accounts will be credited with what they sent. Then, those 1 million people send their coins to a business that also has an account on that site. The coins inside the sites wallet never move, but are still in 1 million different wallets. The business then tries to withdrawal their total received coins to their own private offsite wallet.

How does this save on transaction fees? It takes 1 million transactions to send to the site, and then it takes another million to send to the business offsite address. If anything, the total transactions are doubled, thus doubling the fees. The only advantage to this would be that the business could trust the site and know that the customers instantly has the correct amount of coins.


Where is the savings taking place? Is it merely just a matter of "batching" payments together for the chain? That is, bundling 1 million payments into a single 'transaction'? I didn't think the savings in doing this were too significant.

They send to multiple users in one transaction. It will only decrease total transaction fee.

-snip-
Take faucets for example. With most you do not pay any fees to get the dust to your wallet once it reaches a certain level. I guess there is a 'fee' built in on the side of the owner of the faucet i.e. he gets charged a percentage on total payments to be made from his faucet.
 -snip-

You sometimes have to spend more Bitcoins than the dust you get.

Xapo is advertising their service using faucets. AFAIK, Xapo does not charge any fees, they cover 'em all. Other micro-payment processors and faucet owners running their own daemons pay service fee(usually, 3%-5%) or transaction fees(usually, 0.0002-0.001BTC/week).
sr. member
Activity: 336
Merit: 251
I do not think micro transactions can avoid all fees, there will always be some to be paid in the end.

With micro transactions the fees are either just much lower and or they are paid for by a third party. Take faucets for example. With most you do not pay any fees to get the dust to your wallet once it reaches a certain level. I guess there is a 'fee' built in on the side of the owner of the faucet i.e. he gets charged a percentage on total payments to be made from his faucet.

With somebody like Xapo the total fees are also much lower. Yes everybody pays a fee to send coins there but those same fees do not apply when sending it out again. Its not a million inputs versus a million outputs. With a batch transaction Xapo pays the minimum fee yet they can move millions in one go. Look at this transaction, this was a transfer from my Xapo wallet to one of my Electrum addresses. Only one address in that list is mine and I paid no fee to have that sent.

https://blockchain.info/tx/4f346d700d585e9849207bfec4fb4105267338a62045eddae61735da62d34f64

Xapo ended up paying a $0.05 fee to send funds to 17 people.
newbie
Activity: 17
Merit: 0
I understand that, they have an onsite non-bitcoin ledger to keep track of the account balances, but I don't see how that escapes the fees.

If 1 million people send bitcoins to the sites pooled addresses in a single site-owned wallet, all of their accounts will be credited with what they sent. Then, those 1 million people send their coins to a business that also has an account on that site. The coins inside the sites wallet never move, but are still in 1 million different wallets. The business then tries to withdrawal their total received coins to their own private offsite wallet.

How does this save on transaction fees? It takes 1 million transactions to send to the site, and then it takes another million to send to the business offsite address. If anything, the total transactions are doubled, thus doubling the fees. The only advantage to this would be that the business could trust the site and know that the customers instantly has the correct amount of coins.


Where is the savings taking place? Is it merely just a matter of "batching" payments together for the chain? That is, bundling 1 million payments into a single 'transaction'? I didn't think the savings in doing this were too significant.

sr. member
Activity: 336
Merit: 251
Sites like CoinBase and Xapo and or others who do these off-chain transactions operate differently than a wallet on your pc and or phone.
 
When you open a wallet with Xapo you do not get a seed from which all your addresses are generated like you will get when setting up for example Electrum. You also do not get the private keys for your keys.

What they do is 'allocate' you an address in their wallet. So the address you see is not an address in 'your' own wallet but rather just one of their many addresses which gets allocated to you. Any funds sent to that address will thus be allocated to you in their database.

If you however lookup this address on the blockchain you will see that it does not reflect your balance. If I look at my Xapo address I can see the incoming transactions which was sent to me but there are also plenty of outgoing transactions which I did not make.

I know this sounds very confusing but as an earlier poster mentioned, your actual wallet balance is just a database entry. Let me try and explain it by means of an example...

1) John opens an account with Xapo and he is given address 1xyz.
2) In their database this address is linked to John's name and email address.
3) I send 10 coins to John on the address 1xyz.
4) Xapo updates their database to reflect that John has 10 coins as they picked up on the 'deposit' made to address 1xyz which is linked to John.
5) Peter, another client of Xapo sends out 5 coins to a friend. Xapo scans their addresses and find that address 1xyz has 10 coins on it and use that address to send the 5 coins.
6) John's balance is not affected as it still shows he has 10 coins in the database.
7) John wants to send the 5 coins to his wife. Xapos cans their addresses and picks and address, say 1ABCd which has 5 coins on it and sends this to Johns wife and update Johns balance in the database to reflect that he now only has 5 coins.

When I send coins from my Xapo wallet it never comes from my 'own' address. Also, its never just a single input and output. There are usually several inputs and several outputs as they batch the transactions together. So they do not send each transaction as an input/output to the blockchain but rather select enough inputs to makeup the amount required to be sent and then sends those outputs to the addresses where they should go.

One drawback of this kind of setup is that it's useless to try and monitor your address on the blockchain as there will be several transactions you will see that you did not make and the balance will thus never reflect your true balance.

One advantage of this kind of setup is that it gives you more privacy as every time you send coins it comes from any address in their wallet and thus not from an addresses directly linked to you. Yes internally Xapo will know what went where but for the receiving party it will be useless to try and see what your balances are on the blockchain.

EDIT: Forgot to add. When one client of Xapo send to another all that happens is a change in the database in regards to the balances of the two persons involved in the transaction. There will thus not be any transaction that go out to the blockchain. Its only transactions that leave the Xapo 'wallet' that gets sent to the blockchain and in the batch type format I explained above. So the 'internal' transactions never see the blockchain.

newbie
Activity: 17
Merit: 0
I was under the impression that they some how modify the chain with respect to the addresses they have, in bulk, for free in their own network, and then later broadcast it all at once as an updated part of the chain. Granted, I am not an expert, hence why I am asking.

In your explanation, I still don't see how they can negate the overall transaction fees. You are talking about their database being managed outside of the bitcoin framework, but at the end of the day the same net total of transactions are occuring.
legendary
Activity: 1232
Merit: 1094
It looks like they allow anyone to create an account on their system.

You need to pay a fee for the transaction that moves money to their service.  

Once there, they can move money around by just changing numbers is their database.

If you have more than 0.01BTC in your account, you are allowed to withdraw it.  That transaction is the a blockchain transaction and you have to pay a fee for it.

This means that you no matter how many times you move your money, you only need to pay the fee when you move money into and out of their system.

The disadvantage is that when money is in their system, it isn't secured by the blockchain.
newbie
Activity: 17
Merit: 0
It's kind of old, but I was reading about it here:
https://www.coindesk.com/coinbase-implements-zero-fee-microtransactions-off-the-block-chain/


I understand how the transactions can be sent within an isolated network without fees, in the above case of coinbase, but don't all these transactions still have to be published to the block chain at the end of the day? Would not all transactions still have to be published with their corresponding byte-size? If say 1000 micropayments are conducted off-chain, and then later transfered to the chain, how is the fee calculated to enable these transactions to be close to free? Or rather how are all these transactions sent to the blockchain in a way that negates fees?

I understand the concept of masspaying/masssending, packing multiple payments into a single transaction, but it was my understand that even this does not significnatly reduce transaction fees all too much.

Jump to: