涵蓋現貨、合約、理財、資產管理四大核心模組。9 大系統獨立部署、撮合引擎 10 萬 TPS、冷熱錢包分離、KYC 三級分流。一套白標方案可同時服務多個 B 端客戶。團隊規模約 30 人,主導完整 PRD 與系統設計。
這是我設計的 BTC/USDT 現貨交易頁。你可以選擇交易對、切換限價/市價、輸入數量並按 25%/50%/75%/100% 快捷鍵。Orderbook 每 1.5 秒模擬即時更新。
技術架構只是手段 — 下方五個區塊才是我做這個產品時真正交付的東西:問題定義、目標用戶、競品差異化、成功指標、MVP 假設。
我接手的不是空白專案 — 是一份滿是 bug、只有現貨功能的交易所代碼。沒有合約、沒有理財、自建 K 線常崩。
所以我的工作不是「從零設計白標 CEX」,而是一邊修 bug、一邊補功能、一邊把它改造成可服務多個 B 端客戶的白標方案。三件事同時做,這才是真實情境。
三個並行的挑戰:
實際運作後我發現,客戶對「基礎套組」幾乎沒爭議,差異全在客製模組 — 有客戶要幣安廣場式社群、有客戶要內建 IM、有客戶要紅包功能、有客戶要 KOL 帶單系統。這個觀察改變了我規劃 roadmap 的方式。
白標產品最大的挑戰是兩層用戶:B 端客戶(買白標的人)+ 終端用戶(客戶的用戶)。兩邊需求都要顧到,而且 B 端客戶之間需求差異還很大。
所有客戶都拿到「現貨 + 合約 + 理財」三大基礎套組,差異在他們各自要的客製模組:
我學到的事:白標客戶不是同一種人。同樣是「想做交易所」,要的東西可能完全相反 — 廣場型重視 UGC、純交易型嫌社群是雜訊。
| 類型 | 佔比 | 主要需求 | 關鍵體驗 |
|---|---|---|---|
| 📱 散戶 | ~70% | 追漲殺跌、現貨為主 | Mobile App、簡單下單、KOL 帶單 |
| 📊 進階用戶 | ~25% | 合約、技術指標、止盈止損 | PC Web、K 線深度、API 半自動 |
| 🏦 機構/做市商 | ~5% | API 交易、低延遲、大流動性 | FIX/REST/WS API、< 5ms 延遲 |
| 方案 | 上線時間 | 客製化 | 成本 | 主要缺點 |
|---|---|---|---|---|
| 自建 from 0 | 12+ 個月 | 100% | $5M+ | 太慢、資本門檻太高 |
| Binance Cloud | 4~6 個月 | ~60% | $$$$ | 綁 Binance 生態、抽成高 |
| 我們(白標) | 12 週 | ~80% | $$$ | —(市場甜蜜點) |
| Open-source(Honey Framework) | 6~9 個月 | ~95% | $$ | 仍要自養工程團隊 |
我們的差異化:不是技術最強、不是最便宜、不是最自由 — 但在「速度 × 客製化 × 成本」三角找到甜蜜點。我們不打 Binance Cloud 的價格戰,也不跟自建方案比深度,而是定位給「想做交易所但沒能力自建」的客戶。
| 階段 | 指標 | 設計目標 |
|---|---|---|
| Acquisition | 新簽約客戶 / 月 | 2 個 |
| Activation | 上線後 30 天達 $100K USDT 日交易量比例 | ≥ 60% |
| Retention | 連續 6 個月使用的客戶比例 | ≥ 80% |
| Revenue | 平均客戶 ARR | $500K |
| Referral | 客戶 NPS 推薦轉介率 | ≥ 30 |
因為起點是「接手 + 修 + 補 + 改造」四件事並行,MVP 不是「做最小版本」,而是「驗證這條路走得通」。三個核心假設:
在 buggy 舊代碼上「修 bug + 補合約理財 + 改造白標」三件事並行可行,不需要重寫。
驗證方法:第一個白標客戶能在 12 週內帶著「現貨+合約+理財」上線,且舊用戶體驗不退化。
「基礎套組統一 + 客製模組 plug-in」架構,能讓 30 人團隊同時服務多個需求不同的客戶。
驗證方法:第二、三個客戶上線時間從 12 週縮短到 6~8 週,因為基礎套組已沉澱。
某些客製模組(廣場 / IM / 紅包)會被多個客戶要,開發成本可攤平。
驗證方法:每個客製模組至少有 2 個客戶買單,否則該模組改為「客戶獨家報價」而非進產品線。
下方四個決策都是 trade-off — 沒有「對」的答案,只有「為這個產品最合適」的答案。
舊代碼有不少 bug、只有現貨,重寫看起來更乾淨。但評估後:重寫要 6+ 個月、丟掉現有客戶與用戶累積、團隊熟悉度歸零。最終決定在現有代碼上修 bug + 補功能 + 重構為白標,三件事並行。這是「在飛機上換引擎」式的高難度路線,但保住了既有業務不停擺。
舊代碼用的是自建 K 線元件,常崩、技術指標少、開發成本持續燒。我主導把它換成 TradingView Charting Library:省 3~4 週後續維護、用戶熟悉度高、技術指標完整、授權成本可接受。這是「敢砍掉前人遺產」的決策 — 不是工程偏好,是我主動評估後拍板。
客戶需求差異大(廣場 / IM / 紅包 / 純交易),如果完全客製化我們會死。決定基礎套組(現貨+合約+理財)所有客戶一致,客製模組做成可插拔的 plug-in 架構。客戶要紅包就裝紅包模組、要 IM 就裝 IM 模組。維護成本可控,又能滿足差異化需求。
槓桿代幣是 Crypto 圈很賺的產品,但散戶誤解率高、客訴比例 5 倍於現貨、各國監管最嚴。決定徹底不做 — 一個產品該不該做,不只看 ARR,更要看「長期客訴與聲譽成本」。客戶問起來會解釋為什麼不做,反而建立信任。
以下技術方案由我主導定義 — 從市場調研、PRD 到原型皆一手完成;30 人工程團隊負責實作落地。在還沒有 AI 工具的年代,這些規格是我一頁一頁手寫、一張一張手畫出來的。
每個 B 端客戶資料完全隔離,但共用撮合引擎。採 tenant_id 分庫 sharding 策略。
單交易對需達 10 萬 TPS、延遲 < 5ms。記憶體撮合 + Kafka 落地 + ClickHouse 行情聚合。
125x 槓桿下強平三層機制:市價減倉 → 保險基金 → ADL。標記價格三所加權平均防插針。
每個模組獨立部署、透過內部 API 與 Kafka 消息隊列互通。下方為各模組職責與技術選型。
註冊、登入、2FA、KYC 三級、設備管理、API Key。
充值、提現、餘額管理、三帳戶劃轉、資產快照。
記憶體撮合引擎,10 萬 TPS,限價/市價/止盈止損/OCO。
USDT 本位 + 幣本位永續,1x~125x 槓桿,逐倉/全倉。
活期 / 定期 / Staking / 雙幣投資,APY 計息。
KYC / AML / 規則引擎 + ML 模型雙軌並行。
VIP 分級、Maker/Taker、平台幣抵扣 25% 折扣。
Email / Push / SMS / 站內信,事件驅動推送。
用戶管理、資產監控、交易監控、操作日誌雙人審批。
用戶系統 ──→ 所有模組(身份驗證基礎) 資產系統 ──→ 現貨 / 合約 / 理財(帳本核心) 撮合引擎 ──→ 資產系統(成交後更新帳本) 合約引擎 ──→ 資產系統 + 風控系統(保證金 + 強平) 理財系統 ──→ 資產系統(鎖定/釋放資金) 風控系統 ──→ 所有交易模組(即時監控) 手續費系統 ──→ 現貨 + 合約(成交扣費) 通知系統 ──→ 所有模組(事件驅動) 後台管理 ──→ 所有模組(監控與干預)
頂部「總資產估值」默認 USD 計價、支援 BTC/CNY/EUR 切換;估值基於即時中間價 (Bid+Ask)/2。提供「隱藏小額資產」開關(< $1 自動隱藏)+ 眼睛圖示一鍵隱藏餘額。
| 帳戶類型 | 顯示內容 | 操作入口 |
|---|---|---|
| 現貨帳戶 | 各幣種可用 + 凍結餘額 | 交易 / 充值 / 提現 / 劃轉 |
| 合約帳戶 | 總保證金 / 可用保證金 / 未實現盈虧 | 劃轉 / 交易 |
| 理財帳戶 | 活期 + 定期 + 累計收益 | 申購 / 贖回 / 劃轉 |
整合 TradingView 圖表庫,支援 1m/5m/15m/1h/4h/1D/1W。內建 MA/EMA/BOLL/MACD/RSI/VOL 等技術指標。Orderbook WebSocket 推送,延遲 < 50ms,顯示最佳 20 檔買賣價量 + 累計深度條形圖。
| 訂單類型 | 說明 | 參數 |
|---|---|---|
| 限價單 Limit | 指定價格掛單等待成交 | 價格 + 數量 |
| 市價單 Market | 以最優價即時成交 | 數量(或金額) |
| 止盈止損 Stop-Limit | 觸發價到達後掛限價單 | 觸發價 + 限價 + 數量 |
| OCO | 限價 + 止損二選一,一方成交另一方自動取消 | 限價 + 止損觸發 + 止損 + 數量 |
USDT 本位 + 幣本位永續合約 (Perpetual)。永續合約無交割日,靠資金費率錨定現貨。槓桿滑桿 1x~125x,BTC/USDT 最高 125x、山寨幣最高 20~75x。開倉前需先選保證金模式(逐倉 / 全倉),兩者可在該幣種無持倉、無掛單時切換。下單面板常駐顯示:預估強平價、預估開倉手續費、下一次資金費率倒數與預測值。
保證金模式決定「行情不利時最多會賠掉多少」以及「帳戶其他資金會不會被牽連」,是合約新手最常誤解、也最容易爆倉的地方,因此完整列出兩者的行為差異、適用情境與強平邏輯。
| 比較項目 | 逐倉 Isolated | 全倉 Cross |
|---|---|---|
| 保證金來源 | 只用分配給該倉位的保證金 | 整個合約帳戶餘額作為所有倉位的共同保證金 |
| 最大虧損 | 僅限該倉位保證金,帳戶其餘資金安全 | 可能損失整個合約帳戶權益 |
| 強平影響範圍 | 只強平該單一倉位,不波及其他倉位 | 帳戶權益低於總維持保證金時,全帳戶倉位一起被強平 |
| 抗插針能力 | 較弱,保證金固定用完即強平 | 較強,可用餘額自動補倉延後強平 |
| 資金效率 | 低,每倉獨立鎖保證金 | 高,餘額共用可對沖抵銷 |
| 可手動加減保證金 | 可,持倉中隨時追加或減少 | 否,自動以帳戶餘額計算 |
| 適用情境 | 高槓桿試單、風險隔離、單筆控損 | 多倉位對沖組合、專業用戶、追求資金效率 |
切換規則:模式綁定「幣種 × 持倉方向」,必須在該幣種無持倉且無未成交掛單時才能切換,切換不影響其他幣種。逐倉可在持倉中手動追加保證金以降低強平價;全倉則由系統以帳戶可用餘額自動承接。
永續合約沒有到期交割,價格會偏離現貨。資金費率是一種多空之間週期性互付的機制(平台不抽成,屬 P2P 轉移),用來把合約價格拉回現貨:合約溢價、做多過熱時費率為正,多方付給空方以抑制做多;合約折價、做空過熱時費率為負,空方付給多方。
結算週期:每 8 小時一次,結算時點為 00:00 / 08:00 / 16:00(UTC)。只有在結算時點仍持有倉位者才需收付;在兩次結算之間開平倉不產生資金費用。費用直接進出保證金餘額,不是手續費。
資金費率 F = 溢價指數 P + clamp( 利率 I − P , −0.05%, +0.05% ) 利率 I:USDT 本位預設 0.01% / 8h(約 0.03% / 日) 溢價指數 P:合約標記價相對現貨指數的加權溢價 單次費率上下限:±0.75%(依風險限額分級調整) 單次資金費用 = 持倉名義價值 × F 例:持有 BTC 多單名義 $50,000,本次 F = +0.01% 應付 = 50,000 × 0.0001 = $5(多方付給空方)
| 費率情境 | 市場含義 | 收付方向 |
|---|---|---|
| 正費率(F 大於 0) | 合約溢價、做多情緒過熱 | 多方付給空方 |
| 負費率(F 小於 0) | 合約折價、做空情緒過熱 | 空方付給多方 |
| 費率趨近 0 | 合約價貼近現貨、多空平衡 | 幾乎無收付 |
面板顯示:合約交易頁頂部常駐「當前費率+下次結算倒數+預測費率」;持倉面板估算下一次應收或應付金額,讓用戶在結算前可自行決定是否減倉以避開高費率。
持倉面板常駐顯示強平價格(紅色)。標記價格接近強平價時(差距小於 5%),觸發 Push 通知與頁面閃爍警告。標記價格為三所(Binance/OKX/Bybit)現貨指數加權平均,作為未實現盈虧與強平的唯一判定價,防止單一交易所插針造成不合理強平。
【逐倉】強平價(做多)= 開倉價 × (1 − 1/槓桿 + MMR) 例:BTC $50,000 開多、10x 槓桿、MMR = 0.5% 強平價 = 50,000 × (1 − 0.1 + 0.005) = $45,250 → 只賠掉該倉保證金,帳戶其餘資金不受影響 【全倉】觸發條件:帳戶權益 低於 各倉位維持保證金總和 帳戶權益 = 錢包餘額 + 未實現盈虧總和 → 系統以整個帳戶可用餘額承接,強平時可能損失全部保證金 MMR(維持保證金率)依倉位名義價值階梯遞增,見 6.3 風險限額分級
活期:T+0 贖回、利率浮動、現貨閒置可自動申購。定期:7/14/30/60/90/120 天,到期自動到帳,可勾選自動續期。Staking:PoS 鏈原生質押 (ETH/SOL/ADA/DOT),鎖倉期間每日發放收益。
日收益 = 持倉金額 × APY / 365 APR vs APY 轉換: APY = (1 + APR/n)^n - 1 (n = 複利頻率)
用戶鏈上轉帳
↓
[區塊鏈節點監聽] → 掃描新區塊,匹配平台地址
↓
[確認數檢查] → BTC: 2 確認 / ETH: 12 確認 / USDT-TRC20: 20 確認
↓
[入帳服務]
1. asset_ledger 記錄充值流水 (credit)
2. 用戶現貨帳戶餘額 +N
3. 發送 Kafka 事件: asset.deposit.confirmed
↓
[歸集] → 定時將用戶充值地址歸集至熱錢包
熱錢包餘額超閾值 → 自動轉入冷錢包
核心帳本邏輯:每筆資產變動都是一條 ledger entry (借/貸),採複式記帳。帳本操作必須在資料庫事務中完成 (SELECT FOR UPDATE + INSERT + UPDATE balance),杜絕超發。
| 等級 | 要求 | 權限 |
|---|---|---|
| Lv0 (未驗證) | 僅註冊 | 瀏覽行情,無法交易/充提 |
| Lv1 (基礎) | 身份證 + 人臉辨識 | 充提 ≤ 2 BTC/日,合約 ≤ 20x |
| Lv2 (進階) | 地址證明 + 影片驗證 | 充提 ≤ 100 BTC/日,合約 ≤ 125x |
| 機構帳戶 | 營業執照 + 法人 + 受益人 | 自定義額度 |
熱錢包僅保留平台總資產 2%~5% (滿足日常提現)。冷錢包保管 95%~98%。冷錢包私鑰分片存於不同地理位置 (Shamir's Secret Sharing / MPC 多簽)。每日自動對帳 (鏈上 vs 帳本),差異即時告警。
倉位越大,最大可用槓桿越低(階梯式限額),防止巨鯨單方向操縱市場。
| 倉位名義價值 (USDT) | 最大槓桿 | 維持保證金率 |
|---|---|---|
| 0 ~ 50,000 | 125x | 0.4% |
| 50,000 ~ 250,000 | 100x | 0.5% |
| 250,000 ~ 1,000,000 | 50x | 1.0% |
| 1,000,000 ~ 5,000,000 | 20x | 2.5% |
| > 5,000,000 | 10x | 5.0% |
第一層 用戶端:2FA 雙重驗證、提現白名單、防釣魚碼。
第二層 系統端:新地址 24h 鎖定、累計提現限額 (按 KYC 等級)、異常行為偵測。
第三層 人工端:大額 (> $10K) 人工審核 (2h SLA)、可疑交易人工複查、凍結帳號需雙人審批。
2025 年有兩起真實事件,是任何合約產品都必須正面回應的壓力測試題:10/10 事件(單日約 $190 億強制清算、一分鐘蒸發 $32 億,幣安因內部訂單簿定價使 USDe、wBETH、BNSOL 僅在該所脫錨,交叉保證金把單一資產虧損擴散成全帳戶爆倉);Hyperliquid JELLY 狙擊(攻擊者用數個新帳戶自己當雙方,拉抬低流動性幣種現貨、透過標記價把清算來的有毒空單灌進強制接盤金庫,一度造成金庫 27% 帳面回撤)。兩者根因重疊:標記價格可被扭曲,加上強平與接盤機制在極端行情下反而放大傷害。以下是為 SimonEx 設計的防護。
| 事件 | 真正的破口 | 對應防線 |
|---|---|---|
| 10/10(幣安為主) | 內部訂單簿定價致單所脫錨;合成資產 USDe 與 USDT 等權當抵押;全倉把單幣虧損擴散全組合;強平踩踏;API 過載補不了保證金 | 防線 1、2、3、5、6 |
| Hyperliquid JELLY | 低流動性幣種標記價貼著可操縱現貨;無單一市場部位上限;金庫被迫吞下有毒部位;攻擊者自成交對敲 | 防線 1、4、5、6 |
| 防線 | 針對 | 核心機制 |
|---|---|---|
| 1 標記價格防操縱 | 10/10 與 JELLY | 多源中位數加權(Binance/OKX/Bybit 加自家指數)先剔除離群再取值,不用單一內部訂單簿;來源自身脫錨即自動剔除;長尾與低流動性幣種標記價改用 TWAP 或 EWMA 降低對即時現貨敏感度 |
| 2 抵押品分級折價 | 10/10 | 合成與生息資產設折價率(haircut)與單一抵押佔比上限,波動時動態調高;長尾幣禁止作為全倉抵押,斷開借 USDe 再買更多 USDe 的槓桿迴圈 |
| 3 保證金傳染控制 | 10/10 | 長尾與高風險幣種強制逐倉且不計入全倉共用保證金,把單幣爆倉關在隔離倉;全倉在 ADL 前設跨幣種緩衝(見 2.3.1) |
| 4 部位集中度與 OI 上限 | JELLY | 每市場未平倉量上限綁保險基金規模;單一帳戶部位上限;關聯帳戶偵測與自成交防制(STP),封死自己當雙方路徑(見 6.3) |
| 5 強平抗踩踏 | 10/10 | 分批漸進強平,強平單走智能路由或 TWAP 拆單避免自我砸盤;斷路器與價格帶在極端行情限速;保險基金充足率即時監控,接近耗盡即提前收緊全市場槓桿(見 3.3) |
| 6 基礎設施與治理 | 10/10 與 JELLY | 高負載降級策略、風控與撮合水平擴展,保留極端行情仍能減倉或補保證金的保命通道;上下架與極端事件處置事前明訂、可預期,不臨時裁量 |
標記價格更新(多源中位數)
→ 來源脫錨或離群? 是 → 剔除該來源並重算
否 ↓
→ 觸及價格帶或波動閾值? 是 → 斷路器:暫停或限速撮合 → 回到重算
否 ↓
→ 帳戶權益 低於 維持保證金? 否 → 持倉正常
是 ↓
→ 分批漸進強平(TWAP 拆單)
→ 保險基金充足? 是 → 基金承接,單市場曝險封頂 → 持倉正常
否 → ADL,並提前收緊全市場槓桿與新倉 → 持倉正常
12 週不是「我們從零開發 CEX 的時間」— 基礎套組與客製模組庫已經沉澱好了。12 週是一個新 B 端客戶從簽約到正式上線的完整交付時間。這才是白標真正賣的東西。
客戶簽約那一刻起,他能拿到的不是空白專案,而是下面這些已經做好、隨時可組裝的模組:
| 模組 | 內容 | 客戶可否關閉 |
|---|---|---|
| 用戶系統 | 註冊 / 登入 / 2FA / KYC 三級 / 設備管理 | ❌ 必裝 |
| 資產系統 | 充值 / 提現 / 三帳戶劃轉 / 帳本 | ❌ 必裝 |
| 現貨交易 | 撮合引擎 / Orderbook / K 線(TradingView)/ 四種訂單 | ❌ 必裝 |
| 合約交易 | USDT 本位永續 / 1x~125x 槓桿 / 強平三層機制 | ✅ 可關閉 |
| 理財模組 | 活期 / 定期 / Staking | ✅ 可關閉 |
| 風控系統 | 提現限額 / AML / 異常交易偵測 | ❌ 必裝 |
| 冷熱錢包 | 熱錢包自動 / 冷錢包 3/5 多簽 | ❌ 必裝 |
| 後台管理 | 用戶 / KYC 審核 / 報表 / 操作日誌 | ❌ 必裝 |
| 模組 | 適合客戶 | 開發狀態 |
|---|---|---|
| 🎪 幣安廣場式內容社群 | 廣場社群型客戶 | 已沉澱 |
| 💬 IM 即時通訊 | IM 社交型客戶 | 已沉澱 |
| 🧧 紅包活動系統 | 中華圈拉新客戶 | 已沉澱 |
| 📢 KOL 帶單系統 | 社群帶量型客戶 | 已沉澱 |
| 🎯 社群任務 / 簽到 | 留存型客戶 | 已沉澱 |
| 🎁 空投 / Launchpad | 新項目發行型 | 客戶需求觸發開發 |
第一個客戶 12 週是「沉澱期 + 交付期」加總。從第二個客戶開始,因為基礎套組與客製模組都已存在,交付時間應該縮短到 6~8 週:
| 客戶序號 | 預估交付時間 | 縮短原因 |
|---|---|---|
| 第 1 個客戶 | 12 週 | 沉澱基礎套組 + 第一輪流程 |
| 第 2 個客戶 | ~8 週 | 基礎套組複用、流程已知 |
| 第 3 個客戶 | ~6 週 | 客製模組已存在(除非要新模組) |
| 需要全新客製模組的客戶 | +2~4 週 | 新模組開發週期 |
驗收這個假設(呼應 Story 區的 H2 模組化規模化假設):第二、三個客戶實際交付時間如果接近 12 週,代表基礎套組沉澱不夠紮實,需要回頭重構。
客戶上線後,可隨時加購進階模組 — 我們的營收不是「12 週賣斷」,而是「持續加值」:
常見加購:幣本位合約、定期理財 + Staking、自動複利、冷錢包 MPC 多簽自動化、ML 風控模型、API 交易、子帳戶體系、多語言、移動端 App(Flutter 雙平台一次出包)、額外客製模組(按需報價)。