日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【问链-区块链基础知识系列】 第十五课 数字货币交易所的前世、今生和未来(二)

發(fā)布時間:2025/3/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【问链-区块链基础知识系列】 第十五课 数字货币交易所的前世、今生和未来(二) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

編者按:在上一篇文章中,我們介紹了數(shù)字貨幣交易平臺的概念,那么今天我們就來重點聊聊數(shù)字貨幣交易平臺的技術(shù)。如果你有過設(shè)計或?qū)崿F(xiàn)傳統(tǒng)金融交易系統(tǒng)的經(jīng)驗,那么你閱讀本篇就會更加容易。

由于中心化交易所是主流應(yīng)用,所以今天我主要介紹的是中心化模式下的數(shù)字貨幣交易平臺。

兩套賬本

數(shù)字貨幣交易平臺的技術(shù)基本沿用了金融交易技術(shù)中的系統(tǒng)架構(gòu),只是把原來針對法幣和證券(或平臺代幣)的部分,也就是我們通常稱作資金管理系統(tǒng)的部分,完全替換為針對數(shù)字貨幣的數(shù)字貨幣管理系統(tǒng),換句話說,就是換了一套內(nèi)部賬本。

然而我們知道,區(qū)塊鏈本身也是用來記賬的,也算作一種金融賬本,所以一套內(nèi)部賬本,一套區(qū)塊鏈本身的賬本,這里就出現(xiàn)了兩套賬本,如何管理這兩套賬本,就是資金管理系統(tǒng)的首要任務(wù)。

如下圖所示。由于中文語境下的交易有多重含義,本篇會用英文單詞標(biāo)注,以示區(qū)別。
  
  解釋一下這張圖,圖的左邊表示了多個區(qū)塊鏈賬本,右邊的數(shù)字貨幣交易所有自己的內(nèi)部賬本,這兩套賬本是獨立的。

交易所內(nèi)部的賬本記錄的是交易Trade,這個交易是由用戶掛單,接著被撮合引擎撮合成交而產(chǎn)生的,而區(qū)塊鏈賬本上的交易Transaction,是當(dāng)且僅當(dāng)用戶發(fā)起充幣提幣請求并被執(zhí)行時,才會產(chǎn)生的。

這兩種交易都用了中文“交易”來表示,但是它們所屬的語境不同,前者的交易表示的是金融交易語境下的資產(chǎn)交換,也就是Deal;后者表示的是區(qū)塊鏈上的技術(shù)概念,表示資產(chǎn)轉(zhuǎn)移的一次記賬過程,上述特意用英文以表區(qū)別,希望你能夠區(qū)分。

數(shù)字貨幣交易所包含哪些系統(tǒng)模塊

一個數(shù)字貨幣交易所的后端其實至少有四部分構(gòu)成:Web業(yè)務(wù)邏輯系統(tǒng)、交易撮合系統(tǒng)、運營后臺管理系統(tǒng)、資金管理系統(tǒng)。資金管理系統(tǒng)其實就是剛才說到的內(nèi)部賬本。
  

  • Web業(yè)務(wù)邏輯系統(tǒng):這個模塊通常包含了用戶賬戶模塊、登錄網(wǎng)關(guān)、賬戶安全管理、KYC認(rèn)證、行情推送等等,這個模塊更偏向用戶,也與通常的電商賬戶系統(tǒng)十分類似。
  • 交易撮合系統(tǒng):這個模塊是一個交易所的核心模塊,為所有的用戶提供訂單撮合。
  • 運營后臺管理:這個模塊是一個交易所運營人員使用的系統(tǒng),交易所內(nèi)部人員才能訪問。
  • 資金管理系統(tǒng):這里的資金管理其實包含了三部分,第一部分是法幣的支付網(wǎng)關(guān),可能需要對接銀行或第三方支付機(jī)構(gòu);第二部分就是數(shù)字貨幣錢包管理,它提供了大部分主流數(shù)字貨幣的支付功能;第三部分是用戶持倉信息,所謂持倉就是用戶持有多少數(shù)字貨幣,這個是記錄在數(shù)據(jù)庫中的,不需要與區(qū)塊鏈保持一致,但是要求交易所的總賬是平的。

各自模塊的特征

  • Web業(yè)務(wù)系統(tǒng)與我們常見的電商系統(tǒng)無異,主要是用戶賬戶以及簡單的業(yè)務(wù)邏輯,重點是可擴(kuò)展性,業(yè)務(wù)要求比較彈性
  • 交易撮合系統(tǒng)本質(zhì)上是一個高并發(fā)的計算系統(tǒng),特點是系統(tǒng)性能高和穩(wěn)定性好,其中訂單隊列可以是編程語言中的數(shù)據(jù)容器,也可以是內(nèi)存數(shù)據(jù)庫。
  • 運營后臺系統(tǒng)在整個交易所生命周期的早期并不凸顯重要性,但是運營后臺系統(tǒng)恰恰是交易所中后期發(fā)展的核心系統(tǒng),重點在數(shù)據(jù)準(zhǔn)確,要求網(wǎng)絡(luò)安全性高和可擴(kuò)展性好。
  • 資金管理系統(tǒng)包含用戶持倉狀態(tài),以及數(shù)字貨幣錢包服務(wù),它是一個交易平臺中安全性要求最高的系統(tǒng),資金管理系統(tǒng)往往要搭配一個內(nèi)存數(shù)據(jù)庫,其中數(shù)字貨幣錢包服務(wù)也可以拆出來做成獨立子系統(tǒng),甚至可以改造成整個公司的內(nèi)部區(qū)塊瀏覽器,因為錢包服務(wù)需要設(shè)計成多個錢包實例,并統(tǒng)一所有的幣種錢包接口。
  • 一個交易所可能的結(jié)構(gòu)如下圖。
      
      上圖中,MatchingGroup相當(dāng)于是交易撮合系統(tǒng);Web-Group相當(dāng)于Web業(yè)務(wù)邏輯系統(tǒng);Back-office相當(dāng)于后臺管理系統(tǒng);AssetsManagement相當(dāng)于是資金管理系統(tǒng)。
      
      涉及的技術(shù)棧

    如果我們再將剛才提到的各個模塊細(xì)分,會看到以下的功能。
      
      按照上圖的細(xì)分功能,我們可以得到哪些技術(shù)支持一目了然。

    首先是Server需要數(shù)據(jù)庫作為支撐,其次是Restful API作為基礎(chǔ)通訊協(xié)議,并且集成錢包相關(guān)的技術(shù),撮合引擎為Sever提供撮合服務(wù)。

    在這里面,例如需要SMS系統(tǒng),所以可以使用云服務(wù)中的SMS組件,這些都可以是成熟的通用組件技術(shù)。我們可以發(fā)現(xiàn)中心化交易使用的技術(shù)與互聯(lián)網(wǎng)技術(shù)并無不同。

    把這些通用組件塞到下圖中各個層次和大模塊當(dāng)中,所以最終一個交易所的詳細(xì)架構(gòu)可能是下圖的樣子。
      
      (圖片來自網(wǎng)絡(luò),缺失了資金管理部分)

    我們來解釋一下這張圖。

    首先是存儲,持久存儲通常可以選擇MySQL,撮合相關(guān)的模塊由于要避免接觸磁盤IO,所以需要為撮合模塊提供Redis類型的內(nèi)存存儲,二者需要保證最終一致性。

    撮合和行情部分,幾乎與傳統(tǒng)技術(shù)無異,行情推送可以類比到其他推送系統(tǒng),只是頻率更高,一般首選Websocket技術(shù)。

    這與傳統(tǒng)互聯(lián)網(wǎng)應(yīng)用的最大區(qū)別里主要是數(shù)字貨幣錢包管理,這塊完全是新的內(nèi)容,對安全性、易用性提出了相當(dāng)高難度的挑戰(zhàn),這里也是交易所資金托管的根本,所以如何管理好大量數(shù)字貨幣,往往要結(jié)合運營、內(nèi)部管理制度、冷熱錢包技術(shù)一起才能做好交易所的資金管理。

    那么用戶是如何掛單的,又是如何產(chǎn)生區(qū)塊鏈交易的呢?我們來看一看。

    ##交易過程

    那么說,用戶A拿0.01BTC 換取了B的10個ETP 的過程究竟是什么樣的呢,我來舉一個例子。

  • 用戶A掛10ETP買單,出價0.01BTC經(jīng)過Web業(yè)務(wù)系統(tǒng)進(jìn)入撮合系統(tǒng)訂單簿ETP-BTC買單隊列,等待撮合成交,同時資金管理系統(tǒng)凍結(jié)0.01BTC。
  • 用戶B掛10ETP賣單,出價0.01BTC經(jīng)過Web業(yè)務(wù)系統(tǒng)進(jìn)入撮合系統(tǒng)訂單簿ETP-BTC賣單隊列,與步驟1中A的訂單撮合匹配成功,生成Trade,同時資金管理系統(tǒng)結(jié)算對應(yīng)資產(chǎn),B的資產(chǎn)變化為增加0.01BTC并減少10ETP,A增加10ETP并減少0.01BTC。
  • 成交Trade以及資產(chǎn)變化通過資金管理系統(tǒng)寫RDB數(shù)據(jù)庫,形成成交記錄,同時更新行情,數(shù)據(jù)庫記錄可供用戶和運營后臺管理系統(tǒng)查詢。
    要注意的是這一步并不是登記到區(qū)塊鏈上。
  • 用戶B經(jīng)過Web業(yè)務(wù)系統(tǒng)發(fā)起提幣請求,請求提取10ETP進(jìn)入自己的數(shù)字貨幣錢包,這個請求進(jìn)入資金管理系統(tǒng),交易所運營人員可通過運營后臺觀察到這筆請求,運營人員審核用戶B的信息,比如實名認(rèn)證是否正常等。
  • 提幣請求進(jìn)入運營系統(tǒng)后,如果通過審核,則資金管理系統(tǒng)會凍結(jié)用戶B的10ETP,同時將提幣請求發(fā)起給數(shù)字貨幣錢包服務(wù)系統(tǒng),也就是WalletGroup,子系統(tǒng)發(fā)起區(qū)塊鏈上的交易x(Transaction),等待交易被打包,并根據(jù)更新提幣審核狀態(tài),供用戶查看。
  • 數(shù)字貨幣錢包服務(wù)根據(jù)區(qū)塊信息查詢交易x是否被打包,如果已經(jīng)打包,則資金管理系統(tǒng)將完全把用戶B被凍結(jié)的10ETP直接抹成0,更新提幣狀態(tài)最終為完成,提供區(qū)塊交易ID以供用戶和運營后臺系統(tǒng)進(jìn)行查詢。
  • 在步驟3中,我們可以看到用戶所持有的資產(chǎn),相當(dāng)于是交易所對用戶的負(fù)債,但這也只是數(shù)據(jù)庫中的一個數(shù)字,并不是真正的鏈上資產(chǎn)。

    在步驟6中,我們看到區(qū)塊鏈上的“交易”與步驟3中的“交易”完全不是一個概念,同時用戶的資產(chǎn)是否安全,完全取決于交易平臺的技術(shù)是否安全,對交易所是否信任。

    再來看看充值階段。

    簡單來說,充值是與提幣相反的過程,不同的是,充值不需要審核,一般數(shù)字貨幣交易所的原則都是“寬進(jìn)嚴(yán)出”,在充值過程中,交易平臺通常不直接使用數(shù)字貨幣錢包檢測用戶是否充值到賬,而是使用“掃塊”(block_scan)這一方法檢測用戶的充值。

    總結(jié)

    今天我簡單介紹了數(shù)字貨幣交易所的業(yè)務(wù)邏輯,相信你已經(jīng)對數(shù)字貨幣交易所有了一個初步的了解,數(shù)字貨幣交易所是區(qū)塊鏈行業(yè)最重要的業(yè)務(wù),全世界每個月都有新的數(shù)字貨幣交易所誕生。

    今天我只講了中心化的數(shù)字貨幣交易所,而去中心化的交易所,除去資金管理系統(tǒng),基本業(yè)務(wù)邏輯是不變的。

    總結(jié)

    以上是生活随笔為你收集整理的【问链-区块链基础知识系列】 第十五课 数字货币交易所的前世、今生和未来(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。