Author

Topic: Why Are Internal Transactions In Exchanges Free? (Read 191 times)

hero member
Activity: 1008
Merit: 960
Because they're not real Bitcoin transactions.

You can confirm this by setting up a watch-only wallet with the address they gave to you in the exchange.

Blue Wallet allows you to do this easily. Just import the address and wait for it to sync. Then make a transaction in the exchange. You won't see that transaction at Blue Wallet because it was done internally, not in the blockchain.
hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
I would like to know is there any resource where I can further learn how exchanges work?
I don't know of 'one resource' which explains everything about them, but they're also not very complicated. In essence:
You have a deposit address; any coins getting there are credited as a number to your account and periodically sweeped & collected in the excahange's main wallet.
When you trade, your funds (just numbers in the database) are shuffled around according to the trades you make (always subtracting a bit as a fee).
For withdrawing, you provide them an address, they send you your balance minus a fee (usually pretty hefty) from one of their main wallets.

If you want to know more details about specific topics, for instance how they come up with a spot price, or more general concepts like how leverage trading works on user & exchange sides, there's lots of resources available by simply looking online. You could also use forum search or open new threads about specific topics; make sure to try finding answers yourself first, though.
newbie
Activity: 13
Merit: 3
Thank you to NeuroticFish and everyone for excellent replies. Very informative.

I would like to know is there any resource where I can further learn how exchanges work?
sr. member
Activity: 1190
Merit: 469
Hi,

Why are transactions from one account to another in the same exchange free?



I'm not sure they are in all cases but I guess they *could* be. It all depends on who is running the exchange and what their policies are. Keep in mind that they can freeze the assets at any time...
legendary
Activity: 3542
Merit: 1965
Leading Crypto Sports Betting & Casino Platform
Yea, also..... you never have access to the Private Key for the tokens you own, so you cannot "sign" an address to verify that you own the Bitcoin address on the Exchange.

The database in the Exchange are centralized, so it is a target for anyone that wants to sabotage the Exchange or simply hack it and block people from withdrawing the tokens they own. (Exchanges should have backups of the database, but that backup might be old and might not have entries of the latest transactions.)

The transactions between wallets on the Exchange should also be almost instantaneous, because it is off-chain and no Blocks needs to be mined to validate the transactions.  Wink
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
How does the exchange generate the addresses and assign to new users? What sort of wallet does it use?

Also if I check on the Blockchain, will my address in the exchange be there? Will it continue to show the changing balances as I transfer from one account to another in the exchange? I noticed thag the exchanges keep changing the deposit address during a period of time.

First of all: I've never seen the internals of an exchange, hence all I tell is what I'd expect to see in there. Probably some parts are simplified because I don't know whether they integrate some automation in the handling of their cold storage, for example.


For Bitcoin they probably use Bitcoin Core because I don't know any other wallet that can handle such load. They probably use it with a software built on top of it (probably something custom, but similar to what I'd expect from an e-commerce package). They have to use many more wallets to cover all the coins they operate with, for allowing deposits and withdrawals.

At the request of the exchange platform the wallet can create a new receiving address and hand it back. The exchange database will contain an information for each user (and each chain/coin) : a list of addresses (it has to be a list because if, for some reason, you are allowed to change address, the old one should still work for deposits).. And the wallet or a software on top of the wallet will monitor each new block. When a transaction comes to one of the monitored addresses, the exchange knows; when the transaction reaches a certain number of confirmations, the exchange software will credit the user's account with the corresponding amount.

So yes, your deposit address is a valid address on the blockchain and you can see on any block explorer all the transactions made with it: your deposits and also withdrawals of the platform, probably triggered by other users.

When you transfer from one account to another inside the platform, as already said, you don't transfer money from that address, you transform "numbers" from the exchange's database (the money your account was credited with). So no, if handled correctly, in-house transfers will not be visible anywhere.

Changing the deposit address is a good practice and helps for your own privacy. As I wrote, if handled correctly even the old deposit address should work (but please don't count on that, read what the specific exchange tells). And as I wrote, it doesn't matter what's the deposit address, since after the deposit has the number of confirmation it no longer matters what has happened on that deposit address (probably the funds will be withdrawn for other users), since your account is credited (the amount = number is written elsewhere in their internal database, related to your account).
newbie
Activity: 13
Merit: 3
Why are transactions from one account to another in the same exchange free?
I understand that it could be due to the transfers taking place in the internal database of the exchange. It is not updated on the chain.
Is it only updated on the chain when a withdrawal takes place? How does it actually work?

First of all, the address you consider "your address" at an exchange it's not yours at all, it's the exchange's. It's a deposit address for your account. That means that the coins you put there are afterwards (automatically) credited into your account on the exchange's platform (they become entries in their internal database).

This means that when you send to another user they can easily adjust their own database so user1 has less coins and user2 has more coins.
Similar adjustments of values actually happen when you trade too - just 2x adjustments happen for both seller and buyer (+coin 1, -coin 2).

Those numbers become your coins only when you withdraw (and you'd be surprised, it will most probably happen from other addresses than you deposited to).

How does the exchange generate the addresses and assign to new users? What sort of wallet does it use?

Also if I check on the Blockchain, will my address in the exchange be there? Will it continue to show the changing balances as I transfer from one account to another in the exchange? I noticed thag the exchanges keep changing the deposit address during a period of time.
hero member
Activity: 2282
Merit: 589
I understand that it could be due to the transfers taking place in the internal database of the exchange. It is not updated on the chain.
The system only uses balance database transfers between users using off-chain or internal networks. But I'm wondering, why off-chain withdrawals take up to 5 minutes, it should be instant just 1 minute,

Quote
Is it only updated on the chain when a withdrawal takes place? How does it actually work?
Thank you.
Only updated on the internal network (if any) or only proof of transfer transaction ID (internal), unless you withdraw funds to non-custodial wallet then it works normally from blockchain sending balance from wallet exchange.
legendary
Activity: 2212
Merit: 7064
Why are transactions from one account to another in the same exchange free?
This is not the case with all exchanges and I used some in past that don't have this option, but I know Binance and few others have this.
It's free because it's just internal transfer and no coins are really moved in this process, unless until you withdraw them to your own wallet.

Is it only updated on the chain when a withdrawal takes place? How does it actually work?
On chain updates could only happen for decentralized exchanges, but they don't have internal transfers as fart as I know.
For centralized exchanges it's working similar like merits in bitcointalk forum, it's just numbers on screen and you don't have to pay transaction fees.
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
Why are transactions from one account to another in the same exchange free?
I understand that it could be due to the transfers taking place in the internal database of the exchange. It is not updated on the chain.
Is it only updated on the chain when a withdrawal takes place? How does it actually work?

First of all, the address you consider "your address" at an exchange it's not yours at all, it's the exchange's. It's a deposit address for your account. That means that the coins you put there are afterwards (automatically) credited into your account on the exchange's platform (they become entries in their internal database).

This means that when you send to another user they can easily adjust their own database so user1 has less coins and user2 has more coins.
Similar adjustments of values actually happen when you trade too - just 2x adjustments happen for both seller and buyer (+coin 1, -coin 2).

Those numbers become your coins only when you withdraw (and you'd be surprised, it will most probably happen from other addresses than you deposited to).
hero member
Activity: 1106
Merit: 912
Not Your Keys, Not Your Bitcoin
Off-chain transaction happens within the exchanges that's why they don't get included on the blockchain. For a transaction to be visible on the ledger, they have to be validated by all the nodes and verify by miners which don't happen when transaction happen within an exchange. Internal transactions don't usually count unless they follow the consensus rule of Bitcoin.
So, when you make bitcoin withdrawal, in order to receive it, they charge you for a fee to facilitate that transaction to your designated external wallet.
legendary
Activity: 1512
Merit: 4795
Leading Crypto Sports Betting & Casino Platform
You have answered the question yourself, all the amount you are seeing on exchanges are not coins, they are just numbers representing the amount you deposit on the exchange. Transferring internally just means no transfer happened at all and no onchain transaction involved, the coin is still within the owner of the exchange and no fee needed to just change numbers representing the coin on the exchanges by subtracting the amount sent from User A and adding it to the amount received by User B, provided if User A is the one that sent coin to User B.
newbie
Activity: 13
Merit: 3
Hi,

Why are transactions from one account to another in the same exchange free?

I understand that it could be due to the transfers taking place in the internal database of the exchange. It is not updated on the chain.

Is it only updated on the chain when a withdrawal takes place? How does it actually work?

Thank you.
Jump to: