【问链-区块链基础知识系列】 第十五课 数字货币交易所的前世、今生和未来(二)
編者按:在上一篇文章中,我們介紹了數字貨幣交易平臺的概念,那么今天我們就來重點聊聊數字貨幣交易平臺的技術。如果你有過設計或實現傳統金融交易系統的經驗,那么你閱讀本篇就會更加容易。
由于中心化交易所是主流應用,所以今天我主要介紹的是中心化模式下的數字貨幣交易平臺。
兩套賬本
數字貨幣交易平臺的技術基本沿用了金融交易技術中的系統架構,只是把原來針對法幣和證券(或平臺代幣)的部分,也就是我們通常稱作資金管理系統的部分,完全替換為針對數字貨幣的數字貨幣管理系統,換句話說,就是換了一套內部賬本。
然而我們知道,區塊鏈本身也是用來記賬的,也算作一種金融賬本,所以一套內部賬本,一套區塊鏈本身的賬本,這里就出現了兩套賬本,如何管理這兩套賬本,就是資金管理系統的首要任務。
如下圖所示。由于中文語境下的交易有多重含義,本篇會用英文單詞標注,以示區別。
解釋一下這張圖,圖的左邊表示了多個區塊鏈賬本,右邊的數字貨幣交易所有自己的內部賬本,這兩套賬本是獨立的。
交易所內部的賬本記錄的是交易Trade,這個交易是由用戶掛單,接著被撮合引擎撮合成交而產生的,而區塊鏈賬本上的交易Transaction,是當且僅當用戶發起充幣提幣請求并被執行時,才會產生的。
這兩種交易都用了中文“交易”來表示,但是它們所屬的語境不同,前者的交易表示的是金融交易語境下的資產交換,也就是Deal;后者表示的是區塊鏈上的技術概念,表示資產轉移的一次記賬過程,上述特意用英文以表區別,希望你能夠區分。
數字貨幣交易所包含哪些系統模塊
一個數字貨幣交易所的后端其實至少有四部分構成:Web業務邏輯系統、交易撮合系統、運營后臺管理系統、資金管理系統。資金管理系統其實就是剛才說到的內部賬本。
- Web業務邏輯系統:這個模塊通常包含了用戶賬戶模塊、登錄網關、賬戶安全管理、KYC認證、行情推送等等,這個模塊更偏向用戶,也與通常的電商賬戶系統十分類似。
- 交易撮合系統:這個模塊是一個交易所的核心模塊,為所有的用戶提供訂單撮合。
- 運營后臺管理:這個模塊是一個交易所運營人員使用的系統,交易所內部人員才能訪問。
- 資金管理系統:這里的資金管理其實包含了三部分,第一部分是法幣的支付網關,可能需要對接銀行或第三方支付機構;第二部分就是數字貨幣錢包管理,它提供了大部分主流數字貨幣的支付功能;第三部分是用戶持倉信息,所謂持倉就是用戶持有多少數字貨幣,這個是記錄在數據庫中的,不需要與區塊鏈保持一致,但是要求交易所的總賬是平的。
各自模塊的特征
一個交易所可能的結構如下圖。
上圖中,MatchingGroup相當于是交易撮合系統;Web-Group相當于Web業務邏輯系統;Back-office相當于后臺管理系統;AssetsManagement相當于是資金管理系統。
涉及的技術棧
如果我們再將剛才提到的各個模塊細分,會看到以下的功能。
按照上圖的細分功能,我們可以得到哪些技術支持一目了然。
首先是Server需要數據庫作為支撐,其次是Restful API作為基礎通訊協議,并且集成錢包相關的技術,撮合引擎為Sever提供撮合服務。
在這里面,例如需要SMS系統,所以可以使用云服務中的SMS組件,這些都可以是成熟的通用組件技術。我們可以發現中心化交易使用的技術與互聯網技術并無不同。
把這些通用組件塞到下圖中各個層次和大模塊當中,所以最終一個交易所的詳細架構可能是下圖的樣子。
(圖片來自網絡,缺失了資金管理部分)
我們來解釋一下這張圖。
首先是存儲,持久存儲通常可以選擇MySQL,撮合相關的模塊由于要避免接觸磁盤IO,所以需要為撮合模塊提供Redis類型的內存存儲,二者需要保證最終一致性。
撮合和行情部分,幾乎與傳統技術無異,行情推送可以類比到其他推送系統,只是頻率更高,一般首選Websocket技術。
這與傳統互聯網應用的最大區別里主要是數字貨幣錢包管理,這塊完全是新的內容,對安全性、易用性提出了相當高難度的挑戰,這里也是交易所資金托管的根本,所以如何管理好大量數字貨幣,往往要結合運營、內部管理制度、冷熱錢包技術一起才能做好交易所的資金管理。
那么用戶是如何掛單的,又是如何產生區塊鏈交易的呢?我們來看一看。
##交易過程
那么說,用戶A拿0.01BTC 換取了B的10個ETP 的過程究竟是什么樣的呢,我來舉一個例子。
要注意的是這一步并不是登記到區塊鏈上。
在步驟3中,我們可以看到用戶所持有的資產,相當于是交易所對用戶的負債,但這也只是數據庫中的一個數字,并不是真正的鏈上資產。
在步驟6中,我們看到區塊鏈上的“交易”與步驟3中的“交易”完全不是一個概念,同時用戶的資產是否安全,完全取決于交易平臺的技術是否安全,對交易所是否信任。
再來看看充值階段。
簡單來說,充值是與提幣相反的過程,不同的是,充值不需要審核,一般數字貨幣交易所的原則都是“寬進嚴出”,在充值過程中,交易平臺通常不直接使用數字貨幣錢包檢測用戶是否充值到賬,而是使用“掃塊”(block_scan)這一方法檢測用戶的充值。
總結
今天我簡單介紹了數字貨幣交易所的業務邏輯,相信你已經對數字貨幣交易所有了一個初步的了解,數字貨幣交易所是區塊鏈行業最重要的業務,全世界每個月都有新的數字貨幣交易所誕生。
今天我只講了中心化的數字貨幣交易所,而去中心化的交易所,除去資金管理系統,基本業務邏輯是不變的。
總結
以上是生活随笔為你收集整理的【问链-区块链基础知识系列】 第十五课 数字货币交易所的前世、今生和未来(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【问链-区块链基础知识系列】 第十四课
- 下一篇: 【问链财经-区块链基础知识系列】 第十八