Exchanges
交易所如何為使用者提供獨特的錢包,同時保持較低的交易費用?
所以我知道交易所不必在區塊鏈上執行更新。但是我不確定他們如何在無需支付區塊鏈費用的情況下找到以下解決方案?我想他們會
IE
- 交易所給 3 個使用者 Bill、Jane 和 Sally 一個 BTC 地址。
- 比爾和簡都從不同的交易所/錢包向該地址發送了 0.001 比特幣。
- 現在 Bill 和 Jane 都在同一個交易所向 Sally 發送了 0.0005 BTC。相同的交換,因此不必在鏈上。
- 所以現在比爾和簡都有 0.0005 比特幣,莎莉有 0.001 比特幣。然而,Bill 和 Jane 的實際錢包地址仍然是 0.001。
- Sally 現在提取了她的 0.001 BTC
交易所現在需要執行兩次區塊鏈更新來完成此提款,這意味著交易所需要在區塊鏈上支付兩次交易費用。
有人知道交易所是怎麼做到的嗎?
使用者在交易所沒有地址。當您向交易所存入資金時,您正在向交易所錢包存入一個唯一的地址,使他們能夠說明將內部餘額貸記給誰。提款只需要一個鏈上交易,只需從數據庫中扣除金額,然後將該值發送到請求的地址。
這就是它通常的工作方式。
- 當使用者第一次點擊“充值”按鈕時,交易所通過getnewaddress命令呼叫BTC節點生成地址,並顯示給使用者。
- 使用者向該地址存款。
- 比特幣具有 walletNotify 功能,所以當存款到達交易所節點時,它會通過 transactionHash 通知交易所 API。
- 使用該 txHash,交易所將呼叫比特幣節點的 getTransaction API 並獲取交易的所有詳細資訊,包括存款錢包地址。
現在回到你的問題。
一旦交易所滿足確認要求,它將簡單地使用相關存款詳細資訊更新其本地數據庫(Mongo/MySQL 或任何其他)。現在當使用者 1 在同一個交易所向使用者 2 發送 BTC 時,沒有鏈上交易。
交易所只是從使用者 1 數據庫中扣除提款金額,並將相同的金額記入使用者 2 數據庫。
但是,當使用者在交易所之外輸入提款地址時,即發生實際的區塊鏈交易。