GaiaEx AcademyGaiaEx Academy
加密貨幣交易所如何運作:訂單撮合與託管
進階區塊鏈10 min read

加密貨幣交易所如何運作:訂單撮合與託管

中心化交易所與去中心化交易所,以及它們如何撮合交易

分享文章

你從未看見的那筆交易

你點下買入。一個數字變成了綠色。感覺就在瞬間完成——就好像資產憑空出現在了你的帳戶裡。但在你點選和那個綠色數字之間的那半秒裡,發生了一些真正精密的事:你的訂單被校驗、排隊,與成千上萬筆其他訂單賽跑,撮合到一位願意成交的賣家,然後完成結算。交易所就是執行這場賽跑的機器,每秒數百萬次,足夠公平,以至於素不相識的人願意把真金白銀交由它流轉。

大多數人從不去看這臺機器的內部——直到它出故障。2014 年,Mt. Gox 處理著全部比特幣交易中約 70% 的份額,而在多年未被察覺的盜竊和混亂記帳中,850,000 BTC 悄無聲息地從它的錢包裡流走。2022 年 11 月,FTX——當時全球第二大交易所——以一個 80 億美元的窟窿轟然倒塌,原因不是被駭客攻擊,而是客戶的存款被秘密挪用給了一家關聯交易公司。在這兩個案例裡,交易介面直到最後一刻看上去都完全正常。介面沒問題,問題出在底層的管道全是謊言。

要明智地使用交易所,你必須理解藏在那個綠色數字背後的兩套系統:決定誰與誰成交的撮合引擎,以及決定究竟誰真正持有你的錢的託管模式。本課會把兩者都拆開來講。

兩種架構,兩種哲學

每家交易所首先都要回答一個問題:在你交易的時候,錢放在哪裡?這個答案把整個行業一分為二。

中心化交易所(CEX)——Binance、Coinbase、以前的 FTX——運作起來就像一家銀行外加一個交易大廳。你把加密貨幣存入由公司控制的錢包,從那一刻起,你的「餘額」只不過是它們資料庫裡的一行記錄。當你交易時,並沒有任何區塊鏈交易發生;交易所只是在自己的帳本里改動兩個數字。這極其快速又便宜,因為內部資料庫寫入幾乎零成本、瞬間確認。代價是信任:你是在賭這家公司有償付能力、誠實且有能力,因為你無法看到它帳本的內部。

去中心化交易所(DEX)——Uniswap、經典的鏈上兌換——把這一切反了過來。在交易執行之前,資金永遠不會離開你的錢包,而交易本身就是一筆簽名並廣播到區塊鏈上的交易。沒有哪家公司持有你的幣,也沒有可供挪用的混合資金池。這裡的代價不同:你為每一個操作支付 Gas(手續費 / 燃料費),你要承受智慧合約漏洞MEV(最大可提取價值)(機器人透過重排交易來榨取價值)的風險,而且如果你簽了不該籤的東西,沒有客服臺來幫你。

誠實的表述:這裡沒有「安全」選項和「危險」選項之分——有的是兩種不同的風險畫像。CEX 把風險集中在一家運營方的操守與償付能力上。DEX 則把風險分散到你必須讀懂的程式碼和你必須守護的私鑰上。真正的本事,是睜大眼睛去選擇你更願意管理哪一類風險。

由於速度快、流動性深、且有法幣入金通道,交易量仍然嚴重偏向 CEX。但隨著鏈變得更快、工具更完善,鏈上份額一直在穩步增長——而且已經出現了第三類,試圖兼取兩者之長,我們會在結尾再回來講它。

Where money sits CEX deposit → omnibus wallets internal ledger trades withdrawal = on-chain event trust: ops + solvency Classic DEX wallet signs each swap atomic settlement on-chain gas + MEV surface trust: contracts + oracles
各有各的毒藥:對手方運營風險 vs 鏈與合約的暴露風險。

訂單簿:供需的實時地圖

在任何撮合發生之前,交易所需要一個地方來記帳計分。這個地方就是訂單簿——一份針對某個市場、實時、雙邊的列表,囊括了所有掛著的買單和賣單。

它分兩半。買價(買一價)這一側是買單,按價格從高到低排列——也就是當前有人願意出的最高價。賣價(賣一價)這一側(或稱報價)是賣單,按從低到高排列——也就是當前有人願意接受的最低價。最高買價與最低賣價之間的差距就是價差,它是你能從訂單簿上讀出的最有用的一個數字:價差窄說明買賣雙方几乎達成一致,意味著這是個流動性好、健康的市場;價差寬說明交易清淡,進出場都更貴。

把每個價位上等待成交的量堆疊起來,你就得到了市場深度——一幅描繪當前價格上方和下方各有多少量的剖面圖。一大堆密集的買單會形成一道買牆,可以充當支撐;一摞賣單會形成一道賣牆,可以壓住漲勢。深度還決定了滑點:在深度厚的訂單簿裡,你可以買入很多而不會怎麼推動價格;而在深度薄的訂單簿裡,單一筆大額市價單在成交前就可能把價格往上推好幾個價位。

在交易之前讀訂單簿,而不是之後。價差告訴你進出場的即時成本;深度告訴你一筆大單會把價格往不利方向推多狠。在一個薄訂單簿上看到的好價格,往往是海市蜃樓——你真正想要的那個量並不在那裡。

一個誠實的提醒:可見的訂單簿是可以被操縱的。訂單可以在毫秒之間掛出又撤回,而像幌騙(spoofing,掛出大額訂單卻無意成交,以偽造需求)這類手法之所以存在,正是因為訂單簿被太多人盯著看。把深度當作證據,別當作聖旨。

撮合引擎內部:訂單如何變成成交

訂單簿是記分牌;撮合引擎是裁判。它是那一段軟體,持續不斷地拿進來的訂單去比對掛著的訂單簿,並且確定性地決定哪些成交觸發、以及按什麼順序觸發。在一家繁忙的交易所,它以嚴格、可審計的公平性每秒處理數千筆訂單——而把這份公平做對,就是整場遊戲的全部。

主流規則是價格-時間優先,它分兩輪起作用。第一輪看價格:最優價格永遠勝出——最高的買價和最低的賣價最先被撮合。第二輪看時間:當幾筆訂單掛在同一價格上時,最早到達的那筆最先成交(先進先出佇列)。所以如果你和另一位交易者都報 $100.00 的買價,誰的訂單早到一毫秒,誰就排在你前面成交。這就是為什麼延遲對專業交易者如此重要,也是為什麼嚴肅的 CEX 引擎用 C++ 或 Rust 編寫、配以手工調優的資料結構:在邊際上,微秒決定誰能成交。

讓我們追一筆訂單走完全程。一筆 $100.05 的買入限價單進來,撞上一個最優賣價為 $100.04 的訂單簿。因為這筆買單越過了價差,它立即與那筆掛著的賣單成交——進來的訂單是吃單方(它移除了流動性),而掛著的賣家是掛單方(它提供了流動性)。如果進來的訂單比它越過的那筆賣單更大,剩下的部分不會憑空消失——它會作為一筆新的掛單方訂單掛在訂單簿上,在佇列裡等待輪到自己。

這個掛單方/吃單方的區分不只是個詞彙遊戲;它是交易所塑造行為的方式。大多數費率表都對吃單方收得更多、對掛單方收得更少(有時還給掛單方返傭),因為正是掛單方掛出的常駐流動性讓市場變得可用。搞清楚自己在哪一側,是直接通向更低成本的捷徑:一筆耐心掛著的限價單通常比一筆越過價差的市價單更便宜。

Price-time priority (simplified book) Asks 100.05 — 2.1 (t1) 100.04 — 1.4 (t0 earlier) Bids 100.00 — 5.0 (t2) 99.99 — 3.2 (t3) Incoming aggressive limit crosses best opposite → immediate fill (taker) rests if not fully filled → maker queue same price: earlier time wins
撮合規則是公開的;但在邊際上,速度與費率仍決定誰能成交。

訂單型別與完整的交易生命週期

你用訂單型別來駕馭撮合引擎——每一種都是執行確定性與價格確定性之間的不同取捨。你幾乎永遠無法兩者兼得。

  • 市價單——「現在就給我成交,多少錢都行。」它越過價差,立即吃掉當前可得的最優價格。你能保證成交;但你不能保證價格,而在一個薄訂單簿裡,滑點可能極為慘烈。它永遠是吃單方。
  • 限價單——「只在這個價格或更好時才給我成交。」你設定你能接受的最差價格。如果它越過價差,就立即成交(吃單方);如果沒越過,它就作為掛單方訂單掛在訂單簿上等待。你掌控了價格,但你可能永遠不會成交。
  • 止損單——一種條件單,在市場價格穿過某個觸發價之前一直處於休眠狀態,觸發後以市價單或限價單的形式發出。經典用法是止損,用來自動給一個虧損頭寸封頂,而你無須一直盯著螢幕。

無論你選哪種型別,訂單都要跑過同一道關卡。提交:你的訂單被簽名併發出。校驗:交易所檢查你是否有足夠餘額、訂單是否透過風控限制。撮合:它在價格-時間優先下與訂單簿對接。結算:餘額變動,成交被記錄。在中心化交易所上,第二到第四步在一個私有資料庫裡無形地發生——你信任的是輸出結果。在鏈上訂單簿上,撮合與結算是公開的帳本事件,任何人都能獨立地重新計算。同樣的生命週期;透明度卻天差地別。

交易者的核心取捨:市價單買的是執行的確定性,代價是滑點和吃單方費用;限價單買的是價格的掌控權,代價是可能永遠不成交的風險。一筆一筆地選對,差不多就是好的執行的全部內涵。

The life of one order 1. Submit signed + sent 2. Validate balance + risk 3. Match price-time book 4. Settle balances move filled CEX: steps 2-4 happen inside a private database. On-chain CLOB: steps 3-4 are public ledger events anyone can recompute.
每一筆訂單都跑同樣的四個步驟——不同的只是你能否看見它們發生。

託管:究竟誰握著你的私鑰?

撮合決定了你和誰交易。託管決定了在你交易期間誰握著你的錢——而從歷史上看,託管正是那些災難性失敗的發生之處。它歸結為一個問題:誰控制著私鑰?

完全託管。交易所握著私鑰;你的餘額是它們帳本里的一張借條。找回很容易——忘了密碼,客服能幫你——但你已經交出了全部控制權。一次駭客攻擊、一次資不抵債,或者乾脆是一場欺詐,對你的資金都是生死攸關的。交易所透過把持倉分散在熱錢包(線上,用於快速提現,但有暴露風險)和冷錢包(離線,存放絕大部分儲備,盜取難度大得多)之間來管理這一點。「熱 vs 冷」描述的是聯網暴露程度,而不是私鑰歸誰所有——一家託管交易所對兩者都有控制權。

自我託管。你握著私鑰,就這麼簡單。沒有任何對手方能凍結、出借或弄丟你的資金——但也沒有任何人能幫你找回它們。弄丟了助記詞,錢就永久沒了。這是最大限度的主權,也是最大限度的個人責任,對人為失誤毫無容錯餘地。

MPC(多方計算)。一條加密學上的中間道路。私鑰從不在任何單一地點被完整組裝;相反,它被拆分成加密的分片,由相互獨立的各方持有,而簽署一筆交易是跨這些分片的協同計算。沒有任何單一的伺服器、裝置或個人會握有完整的私鑰,所以既沒有單一的熱私鑰可供盜取,也沒有單一的助記詞可供丟失——同時還能支援純冷儲存所做不到的實用找回流程。

託管才是真正決定你風險的那個問題。你讀到的大多數「加密駭客事件」並不是區塊鏈被攻破——而是託管被攻破:資金被彙集、熱錢包暴露,或運營方挪用餘額。你的私鑰如何被持有,對你的安全比你選哪些幣更重要。

當託管失守——以及如何驗證它不會失守

加密交易所的墳場,是一座託管的墳場。Mt. Gox 因為它甚至都沒察覺的安全和記帳失誤,多年來一直在失血客戶的比特幣。Bitfinex 在 2016 年被黑,隨後把損失攤派給了所有使用者,並花了多年時間一點點追回。FTX 則根本沒被黑——它把客戶存款彙集起來,悄悄挪給一家關聯交易公司,直到一場擠兌暴露了那個窟窿。機制各不相同,卻有一條共同的主線:在缺乏足夠制衡的情況下,集中控制了他人的錢。

行業給出的答案是儲備金證明(PoR)。藉助一棵默克爾樹,交易所可以用加密學方式證明,所有客戶餘額之和由它實際持有在鏈上的資產 1:1 背書——而你可以驗證自己的餘額被包含在內,同時不暴露任何其他人的餘額。相比「就是信我們」,這是一項真正的進步。但要讀清楚附帶的細則:

  • PoR 是一張某一時刻的快照,不是實時保證。它證明的是審計當天的儲備,而不是你提現那天的儲備。
  • 它證明的是資產,但往往不證明負債。一家有隱藏債務的交易所可以展示出充足的儲備,卻仍然資不抵債——所以 PoR 並不等同於償付能力證明。
  • 那個老把戲:在審計視窗期借入資產,證明儲備,然後再還回去。一張快照是可以做局的。

這就是為什麼真正的前沿不是「證明一次」——而是「讓它始終一目瞭然」。當一家交易所的交易狀態存在於一條公開區塊鏈上時,儲備和持倉就不再是一張你不得不去信任的週期性照片;它們是一條實時的資料流,任何人都能在任何時刻從帳本里重新計算出來。這就是審計與透明之間的區別。

信任的光譜:不透明的 CEX(「信我們的資料庫」)→ 週期性的儲備金證明(「信我們最近的那張快照」)→ 實時的鏈上狀態(「你自己來驗證,就現在」)。你越往右走,需要去信任別人一面之詞的成分就越少。

GaiaEx 如何在這一基礎之上構建

GaiaEx 圍繞上文中一個樸素的論點構建:保留中心化交易所的速度與易用性,但移除那兩個曾毀掉每一場重大崩盤的單點故障——單一的熱私鑰,以及一本私有、無法驗證的帳本。

MPC 託管解決私鑰問題。你的私鑰從不在任何單一地點被完整儲存;它被拆分成加密分片,分佈在相互獨立的各方手中,簽名以協同方式發生,全程從不重建出完整的私鑰。沒有單一的熱錢包供攻擊者掏空,也沒有助記詞供你丟失——然而找回依然切實可行。「Mt. Gox 熱錢包」那種失敗模式根本就沒有可以發生的地方。

在 Hyperliquid L1 上的鏈上執行解決帳本問題。交易在一條專門打造的區塊鏈上撮合與結算,這條鏈執行著一個真正的中央限價訂單簿(CLOB),具備亞秒級的最終性——所以你保留了熟悉的掛單方/吃單方、價格-時間優先的體驗,但成交、撤單和餘額都是可驗證的帳本事件,而不是一個要你去信任的資料庫裡的記錄。「FTX 秘密電子表格」那種失敗模式同樣無處藏身。

這一切都不會讓風險消失——存款仍然要跨越鏈與跨鏈橋,你也仍然必須理解自己在籤的是什麼。但你在 GaiaEx 上做的那筆交易,不是某個你無法審計的私有系統裡一個數字的變動。它是一個真實的、公開的、可重新計算的事件,由沒有任何單一方能盜取的私鑰所保護。這正是理解交易所如何運作的全部意義所在:讓你能分辨出,哪一個綠色數字是別人你去信任的,哪一個是你能自己去驗證的。