惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Latest
Security Latest
Recorded Future
Recorded Future
人人都是产品经理
人人都是产品经理
S
SegmentFault 最新的问题
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
P
Privacy & Cybersecurity Law Blog
WordPress大学
WordPress大学
Know Your Adversary
Know Your Adversary
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
量子位
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tor Project blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
T
Threatpost
T
Tenable Blog
有赞技术团队
有赞技术团队
大猫的无限游戏
大猫的无限游戏
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
C
Cisco Blogs
H
Heimdal Security Blog
Attack and Defense Labs
Attack and Defense Labs
A
About on SuperTechFans
Last Week in AI
Last Week in AI
N
News and Events Feed by Topic
T
Threat Research - Cisco Blogs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
I
Intezer
V
V2EX
Cyberwarzone
Cyberwarzone
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
B
Blog RSS Feed
V
Vulnerabilities – Threatpost
N
Netflix TechBlog - Medium
T
The Blog of Author Tim Ferriss
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
U
Unit 42
PCI Perspectives
PCI Perspectives
P
Privacy International News Feed
D
Docker

土法炼钢兴趣小组的算法知识备份

国密算法与国密 TLS 系列索引 【系统架构设计】架构质量属性:不只是"高可用高性能" 【系统架构设计百科】告警策略:如何避免"狼来了" 【系统架构设计】CQRS:读写分离的架构哲学 【系统架构设计】空间架构:极端扩展场景的解法 【系统架构设计】微服务架构深度审视:优势、代价与适用边界 【系统架构设计】扩展性原理:水平、垂直与对角扩展 【系统架构设计】无状态设计:扩展的第一步也是最难的一步 【系统架构设计】缓存架构:从本地到分布式的多级缓存体系 【系统架构设计】管道与过滤器:Unix 哲学的架构表达 【系统架构设计】复杂性管理:架构的核心战场 【系统架构设计】消息队列架构:异步解耦的设计与陷阱 【系统架构设计】CDN 架构:全球加速的设计原理 【系统架构设计】连接池设计:被忽视的性能杀手 【系统架构设计】弹性设计模式:熔断器、舱壁与超时 【系统架构设计】高可用设计模式:冗余、故障转移与仲裁 【系统架构设计】容量规划:从拍脑袋到数据驱动 【系统架构设计】数据库扩展:分库分表的工程实践与替代方案 【系统架构设计】SLO 工程:可靠性的量化管理 【系统架构设计】性能建模:用数学思维分析系统瓶颈 【系统架构设计】混沌工程:主动验证系统的韧性 【系统架构设计】零拷贝与内存映射:数据搬运的极致优化 【系统架构设计】线程模型:从 thread-per-request 到协程 【系统架构设计】容灾架构:多活与灾备设计 【系统架构设计】数据库性能模式:索引、查询与连接管理 【系统架构设计】数据建模:从关系范式到文档模型的真实权衡 【系统架构设计】吞吐量优化:批处理、流水线与并发模型 【系统架构设计】流处理架构:从批处理到实时的范式迁移 【系统架构设计】搜索引擎架构:倒排索引之上的系统设计 【系统架构设计】时序数据架构:监控与 IoT 的存储设计 【系统架构设计】数据迁移与版本化:在线不停机的数据演进 【系统架构设计】数据湖与数据仓库:分析架构的演进路线 【系统架构设计】API 网关设计:入口层的职责边界 【系统架构设计】应用层数据一致性模式:在正确性与性能之间走钢丝 【系统架构设计】多模数据库选型:Polyglot Persistence 的工程实践 【系统架构设计】服务发现与注册:动态拓扑的基础设施 【系统架构设计】配置管理架构:从配置文件到配置中心 【系统架构设计】全链路压测:大规模系统的性能验证 【系统架构设计】幂等性设计:分布式环境下的安全重试 【系统架构设计】契约测试与 Schema 演进:服务间的信任协议 【系统架构设计】长连接与推送架构:WebSocket、SSE 与 MQTT 【系统架构设计】延迟分析:从 P50 到 P999 的全链路追踪 【系统架构设计百科】DDD 战术模式:聚合、实体与值对象 【系统架构设计百科】防腐层与开放主机服务:系统集成的 DDD 方案 【系统架构设计百科】领域事件与事件风暴:从业务到架构的桥梁 【系统架构设计百科】CQRS + Event Sourcing 完整实战:从领域建模到部署 【系统架构设计百科】DDD 与微服务:用领域模型划分服务边界 【系统架构设计】DDD 战略设计:限界上下文与上下文映射 【系统架构设计百科】认证架构:从 Session 到 JWT 到 OIDC 【系统架构设计】API 设计哲学:REST vs GraphQL vs gRPC 的真实权衡 排序算法专题:从 TimSort 到并行排序 【密码学百科】国密算法体系:SM2/SM3/SM4/SM9 全景解读 【密码学百科】承诺方案:Pedersen 承诺、向量承诺与多项式承诺 【密码学百科】不经意传输与隐私信息检索:OT、OT 扩展与 PIR 【密码学百科】门限密码学:门限签名、门限解密与分布式密钥生成 完美哈希:从理论到 gperf 实践 【密码学百科】安全多方计算:从 Yao 的混淆电路到实用 MPC 【密码学百科】同态加密:从 Paillier 到全同态加密(FHE) 【密码学百科】零知识证明系统:zk-SNARKs、zk-STARKs 与 Bulletproofs 【密码学百科】概率论与密码分析:生日攻击、差分分析与线性分析 【密码学百科】计算复杂性与归约:密码安全性证明的基石 【密码学百科】秘密共享:Shamir 方案、VSS 与安全多方计算入口 【密码学百科】椭圆曲线代数:Weierstrass 方程、点群运算与曲线选择 【密码学百科】离散对数与配对密码学:从 DLP 到 BLS 签名 【密码学百科】格密码数学基础:SVP、LWE 与格基约化 【密码学百科】抽象代数:群、环、域的密码学视角 【密码学百科】有限域算术:GF(2^n) 运算与在 AES/ECC 中的应用 【密码学百科】数论进阶:二次剩余、椭圆曲线上的 Weil 配对 【密码学百科】密码学简史:从凯撒密码到量子时代 【密码学百科】威胁模型与安全目标:CIA 三要素之外 【密码学百科】Kerckhoffs 原则与现代密码设计哲学 【密码学百科】随机性:密码学的基石 【密码学百科】信息论入门:熵、完美保密与 Shannon 定理 【密码学百科】分组密码原理:Feistel 网络与 SPN 结构 【密码学百科】AES 逐步拆解:SubBytes 到 MixColumns 的数学 【密码学百科】分组密码工作模式全览:ECB/CBC/CTR/OFB/CFB 【密码学百科】流密码:RC4 的兴衰与 ChaCha20 的崛起 【密码学百科】密码学哈希函数:MD5→SHA-2→SHA-3 的进化之路 【密码学百科】MAC 与 HMAC:消息认证的正确姿势 【密码学百科】认证加密(AEAD):GCM、ChaCha20-Poly1305 与 OCB 【密码学百科】密钥派生函数:HKDF、PBKDF2、Argon2 与密码存储 【密码学百科】公钥密码的数论基础:模运算、群、原根 【密码学百科】RSA 从原理到攻击:教科书 RSA 为什么不安全 【密码学百科】Diffie-Hellman 密钥交换与离散对数问题 【密码学百科】椭圆曲线密码学(ECC):从几何直觉到点群运算 【密码学百科】数字签名:ECDSA、EdDSA 与 Schnorr 签名 【密码学百科】现代密钥交换:X25519、ECDHE 与前向保密 【密码学百科】混合加密与 KEM/DEM 范式:ECIES 与 HPKE 【密码学百科】填充方案:PKCS#1 v1.5、OAEP 与 PSS 【密码学百科】TLS 协议全解析:从握手到 0-RTT 【密码学百科】PKI 与数字证书:信任链的构建与崩塌 【密码学百科】密码认证协议:从 SRP 到 OPAQUE 【密码学百科】零知识证明入门:如何证明你知道而不泄露 【密码学百科】安全信道构造:Noise 协议框架与 Signal 协议 【密码学百科】密钥管理工程:HSM、KMS 与密钥生命周期 【密码学百科】侧信道攻击:从时序攻击到功耗分析 【密码学百科】密码学实现陷阱:三层漏洞分类、审计工具链与系统性预防 密码敏捷性:如何设计可升级的密码系统 【密码学百科】OpenSSL/BoringSSL 架构剖析:ENGINE、Provider 与 FIPS 模块 排序基准测试:用数据说话
【金融科技工程】金融科技工程全景:从支付到交易所的系统分类与读图
Liao Tonglang · 2026-04-22 · via 土法炼钢兴趣小组的算法知识备份

金融科技工程全景:从支付到交易所的系统分类与读图

你大概率在某个瞬间动过这样的念头:

  • “不就是一张 accounts 表 + 一张 transactions 表吗,余额加加减减?”
  • “支付宝微信都有 SDK,接一下回调就行吧?”
  • “风控不就是 if-else 几条规则?”
  • “交易所?Matching Engine 在 GitHub 上随便一搜一把。”

这些想法都没错,它们都能在周末跑出一个 demo。问题是,这个 demo 离可以真的碰钱的系统,距离比你想象得远得多。真正难的不是写一个能加能减的余额,而是当同一笔钱在网络分区、上下游超时、队列重放、人工补单、监管查询、跨币种汇兑、跨时区对账这些事同时发生时,它还能是正确的一笔钱

这篇文章是【金融科技工程】系列的第 1 篇,承担两件事:

  1. 把”金融科技为什么比普通后端难”这个问题讲清楚,让后续 24 篇的每一条约束都有来处;
  2. 给出一张系统分类骨架与完整阅读地图,读者可以按图索骥,按需跳读。

这个系列的读者画像是:写过几年后端、读过一些分布式系统资料、对钱有敬畏但没做过核心账务/支付/交易所的工程师。不会从零讲 TCP 和 SQL,但会从零讲复式记账和 ISO 8583。

更具体地说,下面四类读者最能从本系列受益:

  • 互联网后端转金融:在电商/社交/内容公司做过三五年 Java/Go,准备加入支付、数字银行、券商、交易所或金融中台团队。你最需要的是”把已有的分布式知识映射到金融语境”的翻译层。
  • 小型支付/资金业务线的独立负责人:公司不大,你一个人既要设计又要写又要推。你最需要的是”最小可用的工程蓝图”与”踩过的坑清单”。
  • 做交易所撮合/券商 OMS 的性能工程师:你对低延迟熟,但清算、结算、托管这一段陌生。本系列第 11、18 篇的工程要点正是给你准备的。
  • 风控/合规工程师:你熟悉规则引擎与模型,但账务与支付链路像个黑盒。第 3、9、11 篇会把这个黑盒拆开。

如果你已经是某个细分领域十年以上的专家(例如资深核心银行工程师),本系列在你的主场可能偏浅,但邻域章节对你依然是有效的补课材料——很多金融事故恰恰发生在”我熟悉的部分边界之外”。


一、为什么金融科技比普通后端更难

用一句话概括:普通后端追求”大部分时候对”,金融系统追求”任何时候都对,且对得起审计”。下面拆成五层来看。

1.1 钱的原子性:不是技术名词,是法律名词

在一般的业务系统里,“原子性”一般指数据库事务的 ACID。订单创建失败了,回滚就好。但在金融系统里,原子性有一层更硬的含义:

  • 用户 A 的余额 -100 与用户 B 的余额 +100,必须同生共死。要么都发生,要么都不发生,不允许”我这边扣了,对方没收到”。这不只是技术要求,是《民法典》《支付结算办法》与各国央行结算规则共同画出的红线。
  • 更严苛的是”已入账”的不可撤销性。在央行大额支付系统(如 CNAPS HVPS、Fedwire)里,一笔报文一旦完成清算确认,法律上就是最终的;任何”撤回”都只能通过反向再发一笔达成,原记录不得删除、不得覆盖。

工程含义:

  1. 数据库事务的边界不等于业务原子性的边界,跨库/跨系统/跨机构的原子性要用 SAGA、TCC、对账补偿、两阶段提交、外部一致性时钟等工具拼出来(见第 5 篇)。
  2. “软删除”和”直接 UPDATE 余额”在账务系统里是禁忌。账务库应是只追加(append-only)的事件流 + 物化视图,改错只能靠冲正(reversal)分录(见第 3、4 篇)。

1.2 监管边界:这是一条硬约束,不是可配置项

普通业务的”合规”往往是产品经理口中的一句”我们要 GDPR 合规”,实际落地靠打码加协议弹窗。金融系统的监管边界是:

  • 准入:支付牌照、清算会员资格、交易所撮合牌照、银行分行牌照。没牌照连接口都拿不到。
  • 数据驻留:中国境内用户的支付数据不得出境(《个人信息保护法》《数据安全法》《网络安全法》),欧盟 GDPR 对跨境传输有 SCC / 充分性认定。系统架构不是”全球一个单元”就能了事。
  • 交易监测与报文:反洗钱 STR/SAR 报告(第 21 篇)、大额和可疑交易上报、FATF Travel Rule、SWIFT CBPR+ 的 ISO 20022 迁移(第 7、12 篇)。
  • 审计轨迹:监管随时有权调阅任意一笔交易的完整还原,保留期通常 5–10 年,且不得篡改。这直接塑造了账务系统的存储与索引设计(第 4 篇)。

这意味着一个合格的金融后端工程师,读过的不是只有《Designing Data-Intensive Applications》,还有至少三四份监管文件:以中国为例,《非银行支付机构条例》《支付业务许可证》《反洗钱法》《征信业管理条例》。后续每一篇都会在合适的地方指出它所踩的监管边界,但不会罗列条文,只讲这条边界怎么变成了代码里的一行约束

1.3 一个小数点的代价:浮点数是禁区

普通系统里 double 可能够用。金融系统里,double 是工程事故的入口。

  • 0.1 + 0.2 != 0.3 这件事在展示层可能无所谓,在账务里会直接让分录不平(SUM(debits) - SUM(credits) != 0)。
  • 不同币种精度不同:日元 0 位,港币/美元 2 位,人民币 2 位(业务展示)但某些清算口径 4 位,比特币 8 位,以太坊 18 位。用一个全局 scale=2 的 decimal 一把梭,会在接入稳定币那天炸掉(第 2 篇)。
  • 利率、汇率、手续费的中间计算常带超出展示精度的多位小数,舍入方向(ROUND_HALF_EVEN / ROUND_HALF_UP / ROUND_DOWN)在不同国家不同产品下规则不同。

工程含义:金额字段一律用定点数(decimal / 大整数 + scale),中间计算保留”全精度”,只在向外展示/入账那一刻做明确的舍入策略,且舍入产生的尾差(rounding residual)要有专门的科目兜底(第 2、3 篇)。

1.4 时间也是钱:T+0、T+1、截止时间与窗口

在一般的 Web 系统里,“时间”是个日志字段,谁不是毫秒精度呢。在金融系统里,时间是:

  • 清算日:T+0 / T+1 / T+2 意味着现金流实际到账的日期。错一天就是资金占用成本、利息、甚至违约。
  • 业务截止时间(cutoff):CNAPS 大额在 17:00 关闭当日清算,过了就是下一工作日。跨境汇款涉及多个时区的 cutoff 串联,一个晚了全链路往后一天。
  • 会计期间:日终切换、月结、年结,切换过程中到账的交易归属哪一天,必须有明确规则,否则对账日日不平。
  • 延迟本身就是风险:高频交易里,几十微秒的撮合延迟差距决定盈亏(第 16 篇)。

1.5 错一个小数点的代价:公开事件清单

抽象讲再多不如看真实事件:

  • 2014,瑞穗证券乌龙指:某交易员把”61 万日元 1 股”下成了”1 日元 61 万股”的卖单,几秒钟内损失超 400 亿日元,东京证交所当时无法撤单,事件直接推动了日本交易所前端风控强化。
  • 2015,德意志银行 60 亿美元误付:操作员把净额当成毛额付给了对冲基金客户,次日追回,但事件成为金融操作风险教材。
  • 2012,Knight Capital 45 分钟破产:老旧代码模块被部署重启,触发了本应废弃的路由规则,45 分钟亏掉 4.4 亿美元,公司濒临破产。灰度发布与单元化(第 24 篇)的现代实践很大程度上源自此类事件。
  • 2013,光大证券 816 乌龙指:策略交易系统缺陷,瞬时生成 234 亿元错单,A 股指数当日异动剧烈,证监会认定构成内幕交易(事后处置)。
  • 2020,花旗 9 亿美元误转:软件确认界面设计问题,员工勾选错误,9 亿美元本息误付给化妆品公司 Revlon 的债权人,法院一度判决不得追回(后经上诉改判)。
  • 2022,某国内银行”假币转账”:报文字段解析 bug 导致转账金额小数位错位,几千笔交易被放大/缩小 100 倍,事后靠对账与冲正修复。

这些事件的共性:不是算法不够先进,而是在某个”一般工程师不会想到”的角落,一个本该被守住的不变量(invariant)失守了

我们可以把这些失守点归到几类:

  • 输入校验缺失(瑞穗、光大):订单金额/数量的上下界、对象合理性校验没有做到位;
  • 发布治理不足(Knight Capital):新旧代码共存、开关遗留,灰度和回滚预案失效;
  • 操作风险 UI 设计(花旗 Revlon 案):界面未做”反直觉二次确认”,默认项带有危险含义;
  • 报文/协议解析缺陷(某行小数位事件):字段长度、小数位、符号处理不严谨;
  • 对账滞后(很多事故):事故发生到被发现之间隔了数小时到数日,损失放大。

本系列会在每类失守点上给出具体的”守不变量”的工程手法。整个【金融科技工程】系列,本质上是在给读者一张清单:金融系统里有哪些不变量,如何在代码层面守住它们

1.6 一段最小代码,展示一个最常见的不变量

为了让”不变量”这个词落到代码层面,看下面这张最小分录表。它是后续第 3、4 篇的主角,也是整个对账体的原子单位:

-- 仅作示意。真实系统字段会更多,且分片键、时间列、审计列需要额外考虑。
CREATE TABLE journal_entry (
    id              BIGINT       PRIMARY KEY,
    txn_id          VARCHAR(64)  NOT NULL,            -- 业务事务号
    booking_date    DATE         NOT NULL,            -- 记账日
    currency        CHAR(3)      NOT NULL,            -- ISO 4217 币种
    created_at      TIMESTAMP(6) NOT NULL,
    description     VARCHAR(256) NOT NULL
);

CREATE TABLE journal_line (
    id              BIGINT       PRIMARY KEY,
    entry_id        BIGINT       NOT NULL REFERENCES journal_entry(id),
    account_id      BIGINT       NOT NULL,
    direction       CHAR(1)      NOT NULL CHECK (direction IN ('D','C')),
    amount          NUMERIC(32,0) NOT NULL,           -- 最小单位整数(fen/satoshi...)
    scale           SMALLINT     NOT NULL,            -- 该币种小数位
    currency        CHAR(3)      NOT NULL,
    CONSTRAINT amount_positive CHECK (amount > 0)
);

不变量

  1. 同一 entry_id 下,SUM(amount) WHERE direction='D' 必须等于 SUM(amount) WHERE direction='C'(借贷相等);
  2. journal_line.currency 必须与 journal_entry.currency 相同(不跨币种混记);
  3. 任一账户余额 balance(account_id) = SUM(amount * sign(direction, account_type)),其中 sign 依赖科目类型(资产/负债/损益)的借贷方向规则(第 3 篇详解);
  4. 表只允许 INSERT,不允许 UPDATE / DELETE。错账用冲正分录处理。

只要上面四条在代码里被机制化地守住,90% 的资金事故可以被堵在产线之前。本系列的每一篇都会围绕”如何守住某一类不变量”展开。

1.7 一笔 100 元充值的完整旅程

抽象归抽象,用一个最常见的业务流程把 1.1–1.6 串起来,你会对”为什么这么多环节”有直观认识。假设用户 Alice 用工行储蓄卡给某持牌支付平台 P 充值 100 元,最终进入她在 P 内的钱包余额。

阶段 A:用户侧

  1. Alice 在 App 点击”充值 100 元”,客户端生成 client_request_id = uuid(),向平台 P 发起 HTTP 请求。
  2. 平台 P 的支付网关(第 9 篇)收到请求,按 client_request_id 查询幂等表:首次出现则新建,非首次则直接返回上次结果。
  3. 网关把请求交给风控(第 19 篇):检查限额(单日、单月)、设备指纹、命中黑名单与制裁名单(第 21 篇)。返回”放行”。

阶段 B:账务记账(在途)

  1. 平台 P 的账务核心(第 3 篇)创建一笔分录:
    • 借:客户备付金-在途(资产)100.00 CNY
    • 贷:Alice 钱包-可用(负债)100.00 CNY
    注意:此时钱尚未从工行划出,但平台 P 在自己账本上记了”我即将欠 Alice 100 元”,同时以”在途”作为对账依据。这条分录带 state = PENDING 标签,余额物化暂不反映到 Alice 的可用余额。
  2. 账务核心通过事务消息把”待发起支付”事件投递到支付渠道网关。

阶段 C:支付通道

  1. 支付渠道网关按路由规则(第 9 篇)选中一家合作的银行通道(例如快捷支付),发起 ISO 8583 报文或自有协议报文(第 7 篇)。
  2. 工行端做发卡行风控、账户校验、密码/短信验证,扣 Alice 卡 100 元,返回”成功”响应。
  3. 渠道网关收到同步响应后,不直接入账。金融系统里同步响应只作为”引导客户端前端展示”的依据,真正的入账以异步清算回单为准。

阶段 D:清算与结算

  1. 当日日切前,银联/网联(第 12 篇)对所有交易做轧差清算,生成净额结算指令。
  2. 央行 CNAPS 或网联 IBPS 完成资金实际划拨:工行扣 100 元 → 平台 P 的备付金银行账户 +100 元(通常是 T+0 或 T+1,依通道而定)。
  3. 平台 P 收到清算回单(电子对账单 + 明细),由对账系统(第 23 篇)与步骤 4 的 PENDING 分录匹配。匹配成功后:
    • 冲销原 PENDING 分录的在途标记,物化到 Alice 的可用余额;
    • 把”客户备付金-在途”科目的金额转到”客户备付金-已结算”。
  4. 如果匹配失败(金额不符、订单号对不上、超时未到),进入差错处理流程(第 23 篇):短期挂账 + 人工介入 + SLA 内回写或冲正。

阶段 E:监管与审计

  1. 交易进入反洗钱监测(第 21 篇),命中规则则生成 STR 草稿等待人工复核。
  2. T+1 汇总到监管报送批次,按《非银行支付机构条例》相关要求报送人行与外管。
  3. 审计日志永久保留,保留期至少 5 年。

一笔简单的 100 元充值,完整旅程涉及五个阶段、约 15 个关键动作、至少 4 套不同的不变量(幂等、借贷、清算、监管)。每个阶段都可能失败,每种失败都要有对应的补偿路径。这就是”金融工程比普通后端难”的直观证据。

本系列每一篇都会围绕这张旅程图上的某一段展开:第 9 篇讲网关、第 3 篇讲分录、第 11 篇讲清算、第 23 篇讲对账、第 21 篇讲监管报送。读完 25 篇,你会对这张图上每一个小方格都了如指掌。


二、分类学:把金融科技系统拆成四体

25 篇内容多,若不分层,读者会被”账务、支付、清算、撮合、风控、反洗钱、征信”这些词砸晕。我们把整个领域拆成四体

2.1 对账体(Ledger / Accounting Core)

把”钱的状态”固化为不可篡改事实的系统。它是整个金融公司的真相源(source of truth),一切对外报表、对监管报送、对用户展示的余额,都出自它。

关键词:复式记账、科目体系、分录(journal entry)、试算平衡、日终结账、余额物化、对账差错处理。

典型系统:银行核心(core banking)、支付公司总账、交易所账务引擎、记账中台。

这个体的特征:写多读重、强一致、单点账户热点、日切窗口敏感。工程难点集中在”如何让每日万亿级分录仍然满足借贷相等”,以及”热点账户(平台手续费账户、大商户收款账户)如何不成为单点瓶颈”。本系列会在第 4 篇给出分片与热点治理的具体方案。

本系列覆盖:第 2、3、4、5、23 篇。

2.2 支付体(Payment / Clearing / Settlement)

把”钱在机构之间移动”这件事做成一张网的系统。它在对账体之上,负责路由、报文、清算、结算与跨境。

关键词:收单、发卡、聚合支付、支付网关、卡组织、ISO 8583、ISO 20022、清算、结算、CNAPS、CIPS、Fedwire、TARGET2、SWIFT、CBDC、代理行。

典型系统:支付宝收银台、微信支付商户平台、银联 CUPS、第三方支付网关、跨境汇款、央行大小额系统、稳定币发行与赎回。

这个体的特征:长链路、多机构协同、报文标准繁多、对账周期天级。工程难点集中在”链路中任一节点失败后,如何把钱不丢不重地还原到一致状态”,以及”如何用有限的幂等键和补单机制覆盖无限种失败组合”。

本系列覆盖:第 6、7、8、9、10、11、12、13、14 篇。

2.3 交易体(Exchange / Matching / Market Data)

把”价格发现 + 头寸变更”做成一个低延迟、高并发、强一致的系统。与支付体的不同在于:一笔报单进入撮合引擎,不是为了改变一个余额,而是为了发现一个价格;但成交之后,依然要通过对账体落账。

关键词:订单簿、撮合算法、价格优先时间优先、行情分发、做市、FIX、ITCH/OUCH、证券登记结算、DvP、PvP。

典型系统:证券交易所、期货交易所、加密货币交易所、做市系统、订单管理系统(OMS)、执行管理系统(EMS)。

这个体的特征:极低延迟、极高并发、确定性回放、风险实时计算。工程难点在于”用单线程撮合核心 + 外围并行化”的取舍,以及”如何在微秒级延迟下仍然完成盘前/盘中风控(自成交防护、熔断、涨跌停、前端额度)“。

本系列覆盖:第 15、16、17、18 篇。

2.4 风控合规体(Risk / Compliance)

横跨对账、支付、交易三体,负责”这笔交易/客户能不能做”这个判断。分实时风控(交易毫秒级拦截)、批量风控(离线画像、评分卡)、合规监测(反洗钱、反欺诈、制裁筛查)、信用风险(评级、违约)。

关键词:规则引擎、特征平台、决策流、黑产对抗、设备指纹、关系图谱、KYC、AML、STR/SAR、评分卡、巴塞尔协议。

这个体的特征:跨时序(实时拦截 + 离线画像)、跨数据源(交易流 + 行为流 + 第三方征信 + 名单库)、强审计(拒绝必须可解释)。工程难点在”特征一致性(实时链路与离线训练特征口径一致)“、”规则/模型组合决策的可解释性”以及”监管要求的可审计日志”。

本系列覆盖:第 19、20、21、22 篇。

2.5 横切关注点:可靠性与未来

金融级可靠性(两地三中心、单元化、RPO/RTO、灰度发布)是所有四体的共同约束,单独成篇;行业未来趋势(AI 风控、稳定币、开放银行、Web3 合规)作为展望。

本系列覆盖:第 24、25 篇。

2.6 四体之间的接口:事件、报文、指令

四体之间并不是 REST API 式的松耦合调用,而是以事件报文串起来:

  • 支付体 → 对账体:事件(“收款成功”/“扣款成功”),通过事务消息入账;
  • 对账体 → 对账体(机构间):清算报文(净额/全额轧差结果);
  • 交易体 → 对账体:成交回报(含成交价、成交量、费用),对账体把它拆成分录;
  • 风控合规体 → 支付体/交易体:决策(放行/拒绝/加审),走同步 RPC;
  • 风控合规体 → 监管:监管报文(STR/SAR、每日头寸),走离线批处理。

下面这张表汇总”四体之间谁找谁、走什么接口、有没有同步要求”,贯穿本系列所有后续章节:

发起方 接收方 载体 同步性 失败处理 相关章节
支付体 对账体 记账事件 异步(事务消息) 重试+幂等+对账差错 5、23
对账体 监管 报送文件 批处理(T+1) 人工复核 21
对账体A 对账体B(跨机构) 清算报文 半同步 冲正再发 11、12
交易体 对账体 成交回报 近实时 重放 15、16
风控体 支付体 决策 RPC 同步 超时降级 19
风控体 监管 可疑报告 批处理 人工复核 21
合规体 支付体 名单/限额 订阅推送 安全默认(拒绝) 21

设计要点:同步调用越少越好,资金相关的调用几乎都应异步化 + 事件溯源;越靠近用户的链路(风控决策)才允许同步。这是金融系统与一般互联网业务在架构取舍上的一个显著差异。


三、一张大图:25 篇与数据流

先说数据流方向。一笔普通支付从用户到监管走过的路是:

用户 → 商户/前端 → 支付网关 → 风控决策 → 账务记账
     → 清算(机构间轧差)→ 结算(资金实际划拨)
     → 总账(对账体终局状态)→ 监管报送

一笔证券交易走过的路是:

客户 → 券商 OMS → 交易所撮合 → 行情发布
     → 清算所(净额/全额)→ 登记结算(DvP)
     → 券商账务 → 托管银行 → 监管报送

两条链路在”账务 + 清算 + 监管”三段上形状相似,差别在中段的”路由 vs 撮合”。把它画成分层图,每一层注明对应的本系列文章:

flowchart TB
    subgraph 用户接入层
        U1[用户/商户 APP]
        U2[券商客户端]
    end
    subgraph 接入网关层
        G1[支付网关<br/>第 9 篇]
        G2[OMS/FIX 网关<br/>第 17 篇]
    end
    subgraph 核心引擎层
        P1[收单/路由<br/>第 7、8 篇]
        E1[撮合引擎<br/>第 16 篇]
        R1[实时风控<br/>第 19、20 篇]
    end
    subgraph 账务层
        L1[复式记账<br/>第 3 篇]
        L2[账务数据库<br/>第 4 篇]
        L3[金额/币种模型<br/>第 2 篇]
        L4[幂等与事务<br/>第 5 篇]
    end
    subgraph 清结算层
        C1[清算与结算<br/>第 11 篇]
        C2[央行支付系统<br/>第 12 篇]
        C3[跨境代理行<br/>第 13 篇]
        C4[证券登记结算<br/>第 18 篇]
        C5[CBDC/稳定币<br/>第 14 篇]
    end
    subgraph 合规与监管
        K1[KYC/AML<br/>第 21 篇]
        K2[信用风险<br/>第 22 篇]
        K3[监管报送]
    end
    subgraph 基础设施
        B1[可靠性<br/>第 24 篇]
        B2[对账系统<br/>第 23 篇]
        B3[订阅计费<br/>第 10 篇]
    end

    U1 --> G1
    U2 --> G2
    G1 --> R1
    G2 --> R1
    R1 --> P1
    R1 --> E1
    P1 --> L1
    E1 --> L1
    L1 --> L2
    L2 --> C1
    C1 --> C2
    C1 --> C3
    C1 --> C4
    C1 --> C5
    L2 --> B2
    L2 --> K1
    K1 --> K3
    K2 --> K3
    C2 --> K3
    L3 -.支撑.-> L1
    L4 -.支撑.-> L1
    B1 -.横切.-> L2
    B1 -.横切.-> E1
    B1 -.横切.-> C2
    B3 -.商业化.-> L1

如果你更习惯阅读静态图,下面这张 SVG 用仓库深色主题重画了同一套分层:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1100 720" font-family="ui-monospace, SFMono-Regular, Menlo, monospace" font-size="13">
  <rect width="1100" height="720" fill="#2d333b"/>
  <style>
    .box{stroke-width:1.5;fill:#22272e}
    .lbl{fill:#adbac7}
    .hdr{fill:#adbac7;font-weight:bold;font-size:14px}
    .arrow{stroke:#768390;stroke-width:1.4;fill:none;marker-end:url(#a)}
    .ghost{stroke:#539bf5;stroke-dasharray:4 3;stroke-width:1.2;fill:none;marker-end:url(#a)}
  </style>
  <defs>
    <marker id="a" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto">
      <path d="M0,0 L10,5 L0,10 z" fill="#768390"/>
    </marker>
  </defs>

  <text x="20" y="30" class="hdr">用户接入层</text>
  <rect class="box" x="20" y="40" width="200" height="50" stroke="#388bfd"/>
  <text class="lbl" x="30" y="62">用户 / 商户 APP</text>
  <text class="lbl" x="30" y="80" font-size="11">Web / 小程序 / SDK</text>
  <rect class="box" x="240" y="40" width="200" height="50" stroke="#388bfd"/>
  <text class="lbl" x="250" y="62">券商 / 机构客户端</text>
  <text class="lbl" x="250" y="80" font-size="11">OMS / EMS</text>

  <text x="20" y="120" class="hdr">接入网关层</text>
  <rect class="box" x="20" y="130" width="200" height="50" stroke="#a371f7"/>
  <text class="lbl" x="30" y="152">支付网关(第 9 篇)</text>
  <text class="lbl" x="30" y="170" font-size="11">路由 / 限流 / 签名</text>
  <rect class="box" x="240" y="130" width="200" height="50" stroke="#a371f7"/>
  <text class="lbl" x="250" y="152">FIX / 行情网关(第 17 篇)</text>
  <text class="lbl" x="250" y="170" font-size="11">订单 / 回报</text>

  <text x="20" y="210" class="hdr">核心引擎层</text>
  <rect class="box" x="20" y="220" width="200" height="55" stroke="#3fb950"/>
  <text class="lbl" x="30" y="244">收单 / 路由(第 7、8 篇)</text>
  <text class="lbl" x="30" y="262" font-size="11">卡组织 / 三方支付</text>
  <rect class="box" x="240" y="220" width="200" height="55" stroke="#3fb950"/>
  <text class="lbl" x="250" y="244">撮合引擎(第 16 篇)</text>
  <text class="lbl" x="250" y="262" font-size="11">价格优先 时间优先</text>
  <rect class="box" x="460" y="220" width="220" height="55" stroke="#f0883e"/>
  <text class="lbl" x="470" y="244">实时风控(第 19、20 篇)</text>
  <text class="lbl" x="470" y="262" font-size="11">规则 / 模型 / 决策流</text>

  <text x="20" y="305" class="hdr">账务层</text>
  <rect class="box" x="20" y="315" width="160" height="60" stroke="#f0883e"/>
  <text class="lbl" x="30" y="340">复式记账(第 3 篇)</text>
  <text class="lbl" x="30" y="358" font-size="11">分录 / 试算平衡</text>
  <rect class="box" x="200" y="315" width="160" height="60" stroke="#f0883e"/>
  <text class="lbl" x="210" y="340">账务数据库(第 4 篇)</text>
  <text class="lbl" x="210" y="358" font-size="11">分片 / 热点账户</text>
  <rect class="box" x="380" y="315" width="160" height="60" stroke="#f0883e"/>
  <text class="lbl" x="390" y="340">金额模型(第 2 篇)</text>
  <text class="lbl" x="390" y="358" font-size="11">精度 / 币种 / 舍入</text>
  <rect class="box" x="560" y="315" width="160" height="60" stroke="#f0883e"/>
  <text class="lbl" x="570" y="340">幂等事务(第 5 篇)</text>
  <text class="lbl" x="570" y="358" font-size="11">SAGA / TCC / 对账</text>

  <text x="20" y="405" class="hdr">清结算层</text>
  <rect class="box" x="20" y="415" width="170" height="60" stroke="#539bf5"/>
  <text class="lbl" x="30" y="440">清算 结算(第 11 篇)</text>
  <text class="lbl" x="30" y="458" font-size="11">净额 / 全额 / T+N</text>
  <rect class="box" x="210" y="415" width="180" height="60" stroke="#539bf5"/>
  <text class="lbl" x="220" y="440">央行系统(第 12 篇)</text>
  <text class="lbl" x="220" y="458" font-size="11">CNAPS CIPS Fedwire</text>
  <rect class="box" x="410" y="415" width="170" height="60" stroke="#539bf5"/>
  <text class="lbl" x="420" y="440">跨境(第 13 篇)</text>
  <text class="lbl" x="420" y="458" font-size="11">代理行 nostro/vostro</text>
  <rect class="box" x="600" y="415" width="180" height="60" stroke="#539bf5"/>
  <text class="lbl" x="610" y="440">证券结算(第 18 篇)</text>
  <text class="lbl" x="610" y="458" font-size="11">DvP / 中证登 / DTCC</text>
  <rect class="box" x="800" y="415" width="180" height="60" stroke="#539bf5"/>
  <text class="lbl" x="810" y="440">CBDC 稳定币(第 14 篇)</text>
  <text class="lbl" x="810" y="458" font-size="11">双层运营 / 链上清算</text>

  <text x="20" y="505" class="hdr">合规 / 监管</text>
  <rect class="box" x="20" y="515" width="200" height="55" stroke="#f85149"/>
  <text class="lbl" x="30" y="540">KYC / AML(第 21 篇)</text>
  <text class="lbl" x="30" y="558" font-size="11">STR / SAR / FATF</text>
  <rect class="box" x="240" y="515" width="200" height="55" stroke="#f85149"/>
  <text class="lbl" x="250" y="540">信用风险(第 22 篇)</text>
  <text class="lbl" x="250" y="558" font-size="11">评分卡 / 巴塞尔 III</text>
  <rect class="box" x="460" y="515" width="220" height="55" stroke="#f85149"/>
  <text class="lbl" x="470" y="540">监管报送</text>
  <text class="lbl" x="470" y="558" font-size="11">数据驻留 / 审计留痕</text>

  <text x="20" y="600" class="hdr">基础设施与横切</text>
  <rect class="box" x="20" y="610" width="220" height="55" stroke="#adbac7"/>
  <text class="lbl" x="30" y="635">金融级可靠性(第 24 篇)</text>
  <text class="lbl" x="30" y="653" font-size="11">两地三中心 / 单元化</text>
  <rect class="box" x="260" y="610" width="220" height="55" stroke="#adbac7"/>
  <text class="lbl" x="270" y="635">对账系统(第 23 篇)</text>
  <text class="lbl" x="270" y="653" font-size="11">日切 / 差错 / 资金对账</text>
  <rect class="box" x="500" y="610" width="220" height="55" stroke="#adbac7"/>
  <text class="lbl" x="510" y="635">订阅计费(第 10 篇)</text>
  <text class="lbl" x="510" y="653" font-size="11">计量 / 账单 / 多国税务</text>
  <rect class="box" x="740" y="610" width="240" height="55" stroke="#adbac7"/>
  <text class="lbl" x="750" y="635">总览与展望(第 1、25 篇)</text>
  <text class="lbl" x="750" y="653" font-size="11">本文 / AI / Web3</text>

  <path class="arrow" d="M120,90 L120,130"/>
  <path class="arrow" d="M340,90 L340,130"/>
  <path class="arrow" d="M120,180 L570,220"/>
  <path class="arrow" d="M340,180 L570,220"/>
  <path class="arrow" d="M570,275 L120,315"/>
  <path class="arrow" d="M570,275 L280,315"/>
  <path class="arrow" d="M280,375 L105,415"/>
  <path class="arrow" d="M280,375 L300,415"/>
  <path class="arrow" d="M105,475 L105,515"/>
  <path class="ghost" d="M460,355 L570,355"/>
  <path class="ghost" d="M640,355 L700,355"/>
</svg>

两张图传达同一件事:四体之间不是并列,而是栈式。上层的支付和交易引擎,最后都要落到对账体这一层真相;风控合规体横切每一层;可靠性、对账、计费是横跨整个栈的基础设施。


四、中国 vs 国际基础设施速览

如果你在一家只服务国内用户的公司工作,可能从未碰过 SWIFT 报文;如果你在跨境公司,会发现国内清算与国际清算的术语几乎是两个世界。下表给出一份最小对照,后续专题会在第 7、11、12、13 篇展开。

4.1 大额/跨行清算

功能 中国 美国 欧元区 跨境
本币大额实时 CNAPS HVPS(大额) Fedwire、CHIPS TARGET2、EURO1
本币小额批量 CNAPS BEPS(小额) ACH(NACHA) STEP2
本币即时零售 网联、IBPS 超级网银 FedNow、RTP(TCH) TIPS、SCT Inst
跨境本币 CIPS(人民币跨境)
跨境报文通道 SWIFT / SWIFT gpi
外汇清算 CFETS(人民币对外汇) CLS CLS CLS

读图要点:

  • CNAPS 是中国人民银行运营的跨行清算骨干,分大额(HVPS,RTGS)与小额(BEPS,DNS);CIPS 是 2015 年起上线、专门服务于人民币跨境的清算系统。
  • SWIFT 本身不是清算系统,只是全球最大的金融报文网络。两家银行用 SWIFT 达成指令传递,真正的资金转移要落到上面各清算系统。
  • ISO 20022 是新一代金融报文标准,SWIFT 的 CBPR+、欧央行 TARGET2、美国 Fedwire、国内 CNAPS 都在 2022–2025 这个窗口迁移到 ISO 20022(见第 7、12 篇)。

4.2 卡组织与零售支付

维度 中国典型 国际典型
卡组织 银联(UnionPay),Visa/Master 外卡收单 Visa、Mastercard、American Express、JCB、Discover
移动支付入口 支付宝、微信支付 Apple Pay、Google Pay(套皮卡);Venmo、Cash App(账户);欧洲 iDEAL、SEPA Instant
监管 中国人民银行 + 国家外汇管理局 + 银联清算 各国央行 + 卡组织规则 + PCI DSS
费率典型 借记卡封顶、贷记卡分档,三方支付普遍 0.6% 左右 美国 Interchange 1.5%–3%,欧盟 IFR 上限 0.2%/0.3%

支付宝 / 微信支付与 Visa / Mastercard 最大的不同是:

  • Visa / Mastercard 是四方模式(持卡人–发卡行–收单行–商户 + 卡组织清算);
  • 支付宝 / 微信支付在其生态内更接近三方模式或封闭环路(walled-garden):账户余额内流转不走卡组织,只有充值/提现触及银行清算。

这种差异直接决定了接入复杂度和成本结构。第 7 篇会拆卡组织链路,第 8 篇会拆支付宝微信接入。

4.3 资本市场基础设施

功能 中国 美国 欧元区
证券登记结算 中证登(CSDC) DTCC(DTC/NSCC/FICC) Euroclear、Clearstream
主要交易所 上交所、深交所、北交所、港交所 NYSE、Nasdaq Euronext、Deutsche Börse、LSE
衍生品 中金所、上期所、郑商所、大商所 CME、ICE Eurex
典型结算周期 A 股 T+1(2025 起部分 T+0 探讨) 美股 T+1(2024 年起) 欧股 T+2 过渡 T+1
跨境通道 沪深港通、债券通、基金互认 ADR、QFI UCITS

第 15–18 篇会把交易体系从撮合、行情到结算讲透。

4.4 一张快速查询表:术语翻译

跨境工作最痛的不是英文,是术语不对齐。下表是本系列后续会频繁出现的中英文术语速查:

中文 英文 一句话解释
清算 clearing 确认双方债权债务净额的过程
结算 settlement 资金实际划拨完成
全额结算 RTGS(Real-Time Gross Settlement) 每笔逐笔实时全额划拨
净额结算 DNS(Deferred Net Settlement) 日终轧差后净额划拨
券款对付 DvP(Delivery versus Payment) 证券与资金同步交付
款款对付 PvP(Payment versus Payment) 两种货币同步交付
发卡行 issuer 持卡人账户所在银行
收单行 acquirer 商户账户所在银行
代理行 correspondent bank 跨境清算中的对手方银行
同业往来账 nostro/vostro “我们的账/你们的账”
备付金 reserve / client funds 支付机构存放客户资金的专户
对账 reconciliation 两方或多方账目一致性核对
冲正 reversal 用反向分录抵消错账
分录 journal entry 一笔会计记录,含至少一借一贷
试算平衡 trial balance 借贷合计相等的验证
报文 message 金融指令的结构化表示(ISO 8583/20022)
头寸 position 某时点的持仓或余额
敞口 exposure 面对某对手方或市场的风险额
净敞口 net exposure 相互抵扣后的剩余风险
保证金 margin 衍生品交易占用的资金
穿透 look-through 监管要求披露最终实际受益人

把这张表收藏起来。后续章节里,“清算”与”结算”这对术语最容易搞混,请特别留意。


五、绿地项目视角:从零搭一个支付 + 账务 + 风控公司

假设你现在要创建一家小型金融科技公司,做国内企业收付款(B2B 聚合支付 + 资金服务),目标 18 个月内拿下牌照并接入央行清算。你应该按什么顺序建系统?下面是一个务实的最小可用版本,刻意不先讲牌照问题,只讲工程顺序。

5.1 第 0 阶段:确定”真相的形状”

在写第一行业务代码之前,必须先回答四个问题:

  1. 记账单位是什么?——人民币到分,还是到厘?未来要不要接入美元、数字人民币?精度如何统一?(第 2 篇)
  2. 科目体系是什么?——用户余额、商户待结算、平台手续费、备付金(央行专户)、中间过渡户、汇差科目、冲正科目。草图至少 20 个科目起。(第 3 篇)
  3. 不变量有哪些?——任一时刻 SUM(debits) = SUM(credits);任一账户 balance = opening_balance + SUM(journal_lines);备付金账户余额 = 客户待结算合计。
  4. 事件模型是什么?——业务事件(下单、支付、退款)→ 记账事件(借贷分录)→ 清算事件(机构间轧差)→ 结算事件(资金实际划拨)。

5.2 第 1 阶段:对账体先行(月 0–3)

先把账务引擎和对账系统建起来,哪怕先不接外部支付:

  • 账务库(ledger):append-only 分录表 + 物化余额表,先用 PostgreSQL,预留分片位点;
  • 幂等层:每一笔业务请求一个 client_request_id,进入统一的幂等网关(第 5 篇);
  • 日切与对账:每日跑一次试算平衡,资金流水与账务分录交叉比对;
  • 模拟数据:自造一个”假银行”的回调服务,跑通完整的下单→支付→记账→对账链路。

没有对账的支付系统不配碰钱。第 23 篇会展开对账工程的全部细节。

5.3 第 2 阶段:支付接入(月 3–9)

拿到初步牌照或以持牌支付公司作为上游后:

  • 接入 1–2 家三方支付(支付宝、微信)或 1 家银行直连作为 MVP;
  • 支付网关(第 9 篇):路由、签名、防重放、异步通知处理、补单机制;
  • 把”记账时点”与”清算时点”分开:下单时先记”在途”,收到清算回单时再落”入账”。这是账务设计里最常被搞错的一件事。

5.4 第 3 阶段:风控与合规(与第 2 阶段并行)

  • 实时风控(第 19 篇):至少有设备指纹、限额、黑名单、规则引擎四件套;
  • KYC/AML(第 21 篇):企业 KYB + 法人 KYC,制裁名单(UN/OFAC/国内名单)筛查;
  • 审计日志:任何涉及资金与身份的操作,全部进入不可篡改的审计轨迹(建议走 append-only 表 + 定时 hash 归档)。

风控不是上线前一周加的”拦截层”,它必须从第 1 行交易代码开始就设计好决策点。

5.5 第 4 阶段:清结算与跨境(月 9–18)

  • 自有备付金账户接入央行清算(CNAPS/IBPS)或与持牌机构合作;
  • 清算与结算分离(第 11 篇):清算引擎做轧差,结算引擎发起央行报文;
  • 跨境需求出现时再接入 CIPS/SWIFT(第 12、13 篇),不要为了”看起来国际化”过早接入,运维成本非常高。

5.6 第 5 阶段:横切基础设施(贯穿全程)

  • 金融级可靠性(第 24 篇):两地三中心、单元化、灰度发布。不要等出事再补;
  • 可观测性(可观测性系列):金融系统的黄金指标是”分录失衡次数、补单次数、清算延迟、资金路径断点数”,而不是 QPS;
  • 变更管理:任何涉及资金路径的发布必须走”灰度 + 影子账 + 双跑对比”。

5.7 一句话总结

先建对账体,再建支付体,风控合规贯穿,交易体视业务需要再加。如果你的公司不做证券、不做自营撮合,第 15–18 篇可以完全跳过。

5.8 一个典型的 18 个月时间线

把前述阶段落到月度颗粒度,便于与业务方沟通交付预期:

主线 里程碑 风险项
M0–M1 团队与合规立项 科目表初稿、技术栈选型、牌照路径敲定 合规路径不通会推翻技术方案
M2–M3 对账体 MVP 分录表、物化余额、日切对账跑通 科目遗漏,后期返工
M4–M5 支付接入 MVP 首家上游支付通道联调通过,回调入账 上游沙箱与生产差异大
M6 风控 v0 限额、黑名单、设备指纹上线 规则冷启动无数据
M7–M8 对账系统 与上游、银行、内部三方对账日常化 差错处理没预案
M9 牌照与备付金账户 央行/监管现场检查通过 技术与合规文档缺口
M10–M12 多通道 + 结算分离 接入第二、三家上游,清结算分离 路由热切换演练不足
M13–M15 金融级可靠性 同城双活演练、异地灾备切换演练 RTO/RPO 未经真实测试
M16–M18 扩展(跨境/分账/计费) 按业务优先级展开 过早跨境导致成本暴涨

这张表里最容易被忽略的是 M6–M8 的”冷启动期”:风控模型缺数据、对账差错没人处理、监管报送字段不齐。很多公司在这三个月里出事。提前规划影子账(shadow ledger)与人工干预台账能显著降低风险。


六、完整阅读地图

下表给出 25 篇文章的 slug、标题、一句话摘要与推荐阅读顺序。推荐顺序有三种:

  • L(Linear):按 01 → 25 顺序读,适合系统学习者;
  • P(Payment):只关心支付收单业务的工程师;
  • E(Exchange):只关心交易所/撮合的工程师;
  • R(Risk):风控/合规方向。
# slug 标题 一句话摘要 推荐顺序
01 01-intro 金融科技工程全景 本文。系统分类与阅读地图。 L / P / E / R
02 02-money-model 钱的建模 金额精度、币种、会计单位、多语言金额的工程建模。 L / P / E / R
03 03-double-entry 复式记账工程化 科目、分录、余额、试算平衡在代码里长什么样。 L / P / E / R
04 04-ledger-db 账务数据库设计 TiDB/OceanBase/PG 下的分片、索引、热点账户治理。 L / P
05 05-idempotency-txn 幂等、事务与一致性 SAGA、TCC、对账补偿在金融系统的取舍。 L / P / E
06 06-payment-overview 支付系统全景 收单、发卡、聚合、跨境、B2B、C2C 一次看完。 L / P
07 07-card-payment 卡组织收单链路 银联/Visa/Mastercard、ISO 8583、ISO 20022 迁移。 L / P
08 08-alipay-wechatpay 支付宝、微信支付接入 服务商模式、预授权、分账、退款、对账实战。 L / P
09 09-payment-gateway 支付网关设计 路由、限流、补单、异步通知、签名与防重放。 L / P
10 10-billing-subscription 订阅与计费系统 用量计量、账单、发票、出海 VAT/GST。 L / P
11 11-clearing-settlement 清算、结算与资金归集 T+0/T+1、NDS、PvP/DvP 的工程含义。 L / P / E
12 12-central-banks 央行支付系统 CNAPS、CIPS、Fedwire、TARGET2、SWIFT gpi。 L / P
13 13-cross-border 跨境支付工程 代理行、nostro/vostro、汇率锁定、对手方风险。 L / P
14 14-digital-currency 数字人民币、稳定币与 CBDC 双层运营、离线支付、链上/链下清算。 L / P
15 15-exchange-arch 交易所核心系统架构 撮合、行情、做市、风控、清算五大件。 L / E
16 16-matching-engine 撮合引擎实现 价格时间优先、状态机、低延迟工程。 L / E
17 17-market-data 行情分发 MBP/MBO、快照+增量、组播/TCP、FIX/ITCH。 L / E
18 18-security-settlement 证券登记结算 中证登、DTCC、Euroclear、T+1、DvP。 L / E
19 19-risk-engine 实时风控引擎 规则、特征、模型、决策流、Flink/Spark。 L / R
20 20-fraud-detection 反欺诈 设备指纹、关系图谱、行为序列、黑产对抗。 L / R
21 21-aml-kyc 反洗钱与 KYC 客户尽调、交易监测、STR/SAR、FATF。 L / R
22 22-credit-risk 信用风险 评分卡、违约预测、巴塞尔 III。 L / R
23 23-reconciliation 对账系统工程 账单、总账、资金对账、差错处理全流程。 L / P / E
24 24-reliability-dr 金融级可靠性 两地三中心、单元化、RPO/RTO、灰度。 L / P / E / R
25 25-outlook 金融科技工程展望 AI 风控、稳定币、开放银行、Web3 合规。 L

6.1 针对支付工程师的最短路径

如果你就是做支付网关/聚合支付的,时间有限,建议顺序:

01 → 02 → 03 → 05 → 06 → 09 → 07 或 08 → 11 → 23 → 24

其中第 23 篇(对账)不要跳,它是支付工程师被问得最多的面试题,也是上线后出事最多的系统。

6.2 针对交易所工程师的最短路径

01 → 02 → 03 → 15 → 16 → 17 → 18 → 11 → 24

撮合工程师经常低估清算结算复杂度,第 11、18 篇请认真读。

6.3 针对风控工程师的最短路径

01 → 02 → 05 → 09 → 19 → 20 → 21 → 22 → 23

风控工程师对账务和支付链路的理解深度,决定了规则的质量。

6.4 针对数据库/基础设施工程师的最短路径

如果你是 DBA、SRE、数据库内核或存储工程师,想理解”金融业务对数据库的特殊要求”:

01 → 02 → 03 → 04 → 05 → 11 → 23 → 24

这条路径会让你看到金融场景如何把”一致性、持久化、审计、窗口批处理”这几件事推向工程极限。相比典型的互联网业务,金融业务会逼出一些在普通 OLTP 场景不必考虑的需求——比如”日切窗口内的读写隔离”、“单账户热点写”、“强一致的跨分片借贷分录”。

6.5 针对架构师/技术 Leader 的最短路径

如果你负责一个金融科技中台,需要做跨团队协同的架构决策:

01 → 02 → 03 → 06 → 11 → 19 → 23 → 24 → 25

这条路径偏重”取舍”与”组织边界”,而非具体的代码实现。第 25 篇展望部分会讨论未来 3–5 年可能改变架构假设的几项变化(稳定币主流化、开放银行 API、AI 风控、量子安全迁移),请在做长期规划时纳入考量。


七、与仓库既有系列的交叉引用

本系列不会重复造轮子,涉及底层基础设施时会直接指向仓库中的相关系列:

7.1 数据库与分布式数据库

  • 数据库基础系列 —— 数据库基础系列:事务、隔离级别、索引、WAL 等共性知识。第 4 篇账务库设计会假设读者已理解这些概念。
  • 数据库前沿系列 —— 数据库前沿系列:HTAP、列存、向量索引、分布式 KV。第 4 篇选型讨论会引用其中 TiDB、OceanBase 相关内容。

7.2 分布式系统

  • 分布式系统百科 —— 分布式系统百科:FLP、CAP、Raft、线性一致性等。第 5 篇(幂等事务)与第 24 篇(两地三中心)会频繁指回此系列的共识与复制相关文章。

7.3 身份与访问管理

  • IAM 系列 —— IAM 系列:OAuth、OIDC、SAML、权限模型。第 21 篇 KYC 会与 IAM 在”身份 vs 账户 vs 凭证”这条边界上重叠;商户端管理、员工操作审计依赖 IAM 的最小权限、职责分离原则。

7.4 可观测性

  • 可观测性系列 —— 可观测性系列:Metrics、Tracing、Logging。第 24 篇会讨论金融系统特有的”资金黄金指标”,但通用的三支柱(三大支柱)基础建设请参考该系列。

7.5 开源与供应链

  • 开源工程系列 —— 开源工程系列:许可证、SBOM、闭源依赖管理。金融系统对闭源依赖(HSM 驱动、核心银行厂商 SDK、卡组织认证库)的管理极其敏感,第 9、12 篇会回到这个话题。

阅读建议:把本系列当成一部”金融视角的索引”,底层技术细节请循引用深入各专题系列。这样既避免重复,也保证了本系列的篇幅聚焦在”金融业务如何塑造系统设计”这个主线上。

7.6 一张跨系列依赖矩阵

便于你对照阅读,下表给出本系列各篇与仓库其他系列的主要依赖关系:

本系列章节 强依赖 弱依赖
第 3 篇 复式记账 ../../db/index.html(事务基础)
第 4 篇 账务数据库 ../../db/index.html, ../../db-frontier/index.html ../../distributed/index.html
第 5 篇 幂等事务 ../../distributed/index.html ../../db/index.html
第 9 篇 支付网关 ../../observability/index.html ../../iam/index.html(商户身份)
第 12 篇 央行系统 ../../opensource/index.html(闭源 SDK)
第 16 篇 撮合引擎 ../../distributed/index.html ../../os/index.html(若已建立)低延迟调优
第 19 篇 实时风控 ../../distributed/index.html(流处理) ../../db-frontier/index.html(向量特征)
第 21 篇 KYC/AML ../../iam/index.html
第 24 篇 可靠性 ../../distributed/index.html, ../../observability/index.html ../../iam/index.html(双人复核权限)

“强依赖”意味着若完全没读过相应系列,可能会错过细节;“弱依赖”意味着相关章节只是点到即止,读过更佳。


八、本系列的写作原则

在进入正文之前,有几条本系列共同遵循的写作原则,交代给读者,也作为自我约束:

  1. 以不变量为纲:每一篇围绕”这个系统要守住哪些业务不变量”组织,而非围绕”这个技术栈有什么新特性”。技术栈是工具,不变量才是第一位。
  2. 真实胜过理论:每一篇至少引用一个真实公司或真实事件(中国/国际至少各一个),避免只讲抽象模型。
  3. 合规作为约束出现:不堆砌法条,而是指出”这一行代码是为了满足某条监管”。
  4. 工程坑点不回避:每一篇的”工程坑点”小节写的是作者或同行踩过的真实坑,不是从教科书里抄的”常见问题”。
  5. 选型给建议但不绝对:每个选型小节只表达”在某类约束下推荐什么”,不声称”某某是银弹”。金融系统没有银弹。
  6. 数据不伪造:金额、账号、监管编号要么来自公开资料,要么明确标注为”示例”。
  7. 时间锚点:文本以 2026 年 Q2 为写作时点;若某项基础设施在此前后发生过明确变更(例如 ISO 20022 迁移节奏、A 股 T+1 改革),会标注时间。
  8. 交叉引用不重复造轮子:涉及分布式共识、数据库事务、IAM、观测性等底层内容时,直接指向仓库中的相关系列,本系列只保留”金融特有”的那一层。

如果你发现某一篇偏离上述原则,欢迎在仓库里开 issue 指正。


九、工程坑点(总览级别)

每篇正文都会有自己的”工程坑点”小节;这里先列出任何金融系统都会踩的 10 个总览级坑点,后续会被逐一展开。

  1. 用浮点数存金额:上线半年后爆发,尾差难以追溯。第 2 篇。
  2. 直接 UPDATE balance:没有审计轨迹,监管一查全盘崩塌。第 3、4 篇。
  3. 业务主键 = 数据库自增 ID:跨机房同步、分库分表、冲正再插入都会出事。第 4 篇。
  4. 幂等 key 依赖时间窗:重试晚一点就穿透。第 5 篇。
  5. 异步通知不重放、不幂等:对账必定有差错。第 9、23 篇。
  6. 清算时点 = 记账时点:在途资金被当成实际到账,风险敞口巨大。第 11 篇。
  7. 把所有币种装进一列 decimal(18,2):接日元、比特币、稳定币时全部重构。第 2 篇。
  8. 风控规则硬编码:任何一次业务规则调整都要发版,事故率高。第 19 篇。
  9. KYC 数据与业务库同库:违反最小权限与数据驻留,出海直接卡审。第 21 篇。
  10. 两地三中心未做资金路径演练:切换时资金路径不闭合,差错积压。第 24 篇。

下面给出一份”金融系统新人最容易违反的 20 条单句守则”,可以直接当 code review checklist:

  1. 任何金额字段必须是 decimal 或整数 + scale,不允许 float/double;
  2. 任何资金相关的表必须 append-only,错账用冲正;
  3. 任何外部调用必须带幂等键(idempotency key),且键的有效期覆盖业务 SLA;
  4. 任何异步通知必须按”收到即 ACK,处理走本地事件”的两段式,保证重放安全;
  5. 任何跨系统流程必须有补偿分支(SAGA 反向动作),不能只写正向;
  6. 任何签名接口必须防重放(时间戳 + nonce + 服务端去重);
  7. 任何客户数据落盘必须考虑数据驻留区域,不能”默认全球复制”;
  8. 任何涉及资金的发布必须灰度,且可回滚(真正回滚过一次);
  9. 任何金额展示必须标币种,不允许”裸数字 100”;
  10. 任何定时任务必须考虑跨日、跨月、跨时区;
  11. 任何余额查询必须区分”可用余额/冻结余额/在途余额”,不允许合一展示;
  12. 任何汇率应用点必须记录使用汇率与时间戳,不允许”现查现用”不留痕;
  13. 任何手续费计算必须有”谁付、从哪扣、走哪个科目”的三要素记录;
  14. 任何批量文件处理必须校验文件完整性(行数、金额合计、哈希);
  15. 任何对外接口必须有压测报告和降级预案,不能”先上线再说”;
  16. 任何风控规则必须能在不发版的情况下热更新;
  17. 任何账户冻结必须有”由谁发起、依据是什么、何时解冻”的审计字段;
  18. 任何 KYC 数据的访问必须有”按字段最小可见”的权限切分;
  19. 任何对账差异必须有负责人、有 SLA、有结单流程;
  20. 任何”仅此一次的人工运维脚本”必须留档,并进入下一次常规能力规划。

这些守则看起来啰嗦,但正是”一般工程师不会想到”的那几条里,藏着下一次事故。


十、选型与落地建议(总览级别)

以下建议是后续各篇讨论的前置共识,放在这里以免后面每篇重复:

  1. 语言:对账核心建议 Java / Go / Rust 三选一,避免动态语言(精度 bug 难排查)。低延迟撮合建议 C++/Rust。风控规则层可用 Groovy/Kotlin/Lua 脚本化。
  2. 数据库:账务核心首选强一致分布式数据库(TiDB、OceanBase、Spanner 系)或单机 PG + 严格分片。避免 MySQL 主从异步作为唯一真相源。
  3. 消息队列:金融事件总线建议 Kafka + exactly-once 语义或 Pulsar 事务消息;不要用”at-most-once”的队列作为资金事件通道。
  4. 时钟:系统内部统一使用 UTC,业务展示按时区转换。关键路径用 NTP + PTP 做到毫秒内对齐;撮合核心在微秒级场景用 PTP + 硬件时钟。
  5. 密钥与签名:HSM(硬件安全模块)是硬要求,不要把私钥放在配置文件里。金融级签名 + 防重放必须到每一个外部接口。
  6. 人员与流程:生产资金系统的发布必须有”双人复核 + 灰度 + 可回滚”。这是监管要求,不是最佳实践。
  7. 环境隔离:生产、灰度、准生产(影子)、测试、开发五级环境,生产数据不得下放;支付通道的生产沙箱与真实生产密钥必须物理隔离。
  8. 密钥轮换:对外签名密钥与对内数据加密密钥都要有明确的轮换周期(通常 1–2 年),且轮换过程要做到”新旧并存的重叠窗口 + 平滑切换”。
  9. 时间同步:所有核心机房对齐同一 NTP 层级,撮合场景再叠加 PTP;对账系统对时间戳来源(客户端时间 vs 服务端时间 vs 上游回单时间)必须有统一规范。
  10. 容灾演练频率:同城双活每月一次切换演练、异地灾备每季度一次全流程拉起。没演练过的灾备 = 不存在的灾备

再往前一步,组织结构上也存在几条”金融特有”的共识:

  • 前中后台隔离:前台(业务)、中台(风控/合规)、后台(清算/会计)在权责上必须分工清晰,且禁止同一人同时拥有前后台关键操作权限(职责分离,Segregation of Duties)。
  • 双人复核(Four-Eyes Principle):任何涉及生产资金路径、风控规则、科目表、备付金账户配置的变更,必须由至少两位具备相应权限的人员独立复核通过。
  • 运维权限最小化:DBA 不得随意 SELECT 资金表、SRE 不得修改分录、运营不得直连数据库。所有对资金表的访问都经过统一的数据网关,并全量留痕。

这些实践在非金融公司可能被视为”官僚”,但它们是金融监管对任一家持牌机构的最低要求,且统计上确实降低了内部欺诈与误操作概率。本系列会在第 24 篇把”组织工程(organizational engineering)“与”技术工程”一起讨论。


十一、阅读本系列的小建议

  1. 不要跳过第 2 篇:金额模型是整个系列的 ABC。第 3、4、5、7、8、11、13、14 篇全部依赖第 2 篇的精度与币种约定。
  2. 先读骨架,再读分支:第 3、6、11、15、19 篇是五条主干;读懂这五篇,再去看各自下面的细节文章,会清晰得多。
  3. 动手写一张分录表:学复式记账的最快方式是拿一张 Excel,自己把一笔”用户充值 100 元”的事件拆成至少 3 行分录。第 3 篇会给模板。
  4. 合规是约束,不是主角:本系列刻意不把监管条文堆成长篇,而是在每处设计决策旁注明”这一行是为了满足 X”。如果你在做具体项目,仍需找合规同事对齐本地法规。
  5. 跨引用请点链接:凡是出现 ../../db/index.html ../../distributed/index.html 这样的链接,都是”这里的细节在那边系列讲过”的信号。一次深入,下次跳过。
  6. 带着真实业务问题阅读:每读完一章,试着问自己”如果是我们公司的 X 场景,这里的约束落到哪些代码上?“——不动手做一次翻译,读过的东西留存率极低。
  7. 动手写一条冲正:学”为什么不能 UPDATE balance”的最快方法,是故意写一段 UPDATE 代码,让它在分片/幂等/审计三方面同时出事,再用冲正分录把它修回来。这一次体验会胜过十篇论文。
  8. 关注日期与版本:本系列以 2026 年 Q2 为时点,部分基础设施(如 ISO 20022 迁移截止日、A 股结算周期改革)处于过渡期,阅读时请核对你当下的最新状态

希望 25 篇读完之后,你对”金融科技工程”不再是一张模糊的词云,而是一张可以在脑子里索引的地图:看到”清算延迟”你知道去第 11 篇,看到”分录不平”你知道去第 3 篇,看到”央行报文”你知道去第 12 篇,看到”乌龙指”你知道去第 24 篇。

下一篇(第 2 篇)我们从”钱到底是什么数”这个最朴素的问题讲起。


十二、常见误解与快速澄清

系列开篇之际,把几个在面试、团队讨论里反复出现的误解集中澄清一下。这些话题在后续章节会被充分展开,这里先给一个足以防坑的最短回答。

11.1 “有了数据库事务,就不用复式记账了吧?”

不对。数据库事务解决的是单机/单库内多行数据的原子性,复式记账解决的是会计等式恒成立这个业务不变量。两者是正交维度:即使你用最强的事务隔离级别,如果分录本身只记了一边,余额依然错。复式记账是一套”结构性约束”,在它之上才谈得上事务。详见第 3 篇。

11.2 “用区块链就不用对账了吧?”

区块链在”节点之间的账本复制一致性”这一小段上确实可以免对账,但这和金融公司语境下的”对账”不是一回事。真实业务里,对账的对象是:

  • 上游通道(支付宝/银联/银行)回单 vs 内部账务;
  • 清算所轧差结果 vs 双方对账表;
  • 商户端账单 vs 平台端账单;
  • 备付金银行流水 vs 监管要求的客户资金专户。

这几条线只要公司外部还有其他系统存在,对账就永远跑不掉。第 23 篇会专门讲”即使全链路上链,仍然要对账”这一现实。

11.3 “直接用 Redis INCR/DECR 做余额不就够了?”

Redis 的 INCR/DECR 是原子的,但它不是账务。它缺:

  • 不可篡改的分录轨迹(谁在什么时候动了账);
  • 借贷两边的对称性(没有对手方账户);
  • 与时序相关的业务约束(日切、月结);
  • 持久化保证与审计留痕能力。

Redis 可以做热余额的只读缓存(第 4 篇会讨论),但不能当账务核心。

11.4 “不就是下单扣款两步吗,两阶段提交上就好了?”

2PC 在跨系统协同时的可用性代价和阻塞问题(第三方支付通道 ≠ 你的数据库,无法参与 2PC)使其在金融跨域场景几乎不可用。工业界实际做法是 SAGA + 幂等 + 对账补偿,把原子性从”技术原子”降级为”最终一致 + 可审计 + 可补偿”。第 5 篇会给完整的状态机。

11.5 “风控就是规则引擎 + 黑名单”

规则和黑名单只是风控的”即时拦截层”。完整的风控体系包含特征平台(实时/离线)、模型层(评分卡/XGBoost/图神经网络)、决策流(多规则冲突时如何裁决)、策略回放(新规则上线前的影响评估)、案件中心(人工复核与反馈闭环)。第 19–22 篇会逐层展开。

11.6 “监管文件看不懂,留给合规同学就好”

绝大多数监管条文并不深奥,但它们决定了你字段设计的取舍。举个例子:《个人信息保护法》要求”撤回同意”后可继续进行”履行法定义务所必需”的处理——这意味着你的用户删除功能不能真的把 KYC 记录从库里扫掉,需要”逻辑删除 + 法定保留期”。这一条就能直接改变你的 user 表与 kyc_record 表的隔离策略。工程师不必精读全部法条,但必须理解”这一类约束为什么以这种方式落到代码里”。第 21 篇会给出一份最小法规速查。

11.7 “金融系统不就是慢一点但稳一点的后端吗?”

“慢一点”在零售支付和交易所里是反过来的:

  • 零售支付追求端到端秒级确认(第 9 篇);
  • 交易所撮合追求亚毫秒级,头部交易所已做到个位数微秒内完成一笔订单的接收、匹配、回报(第 16、17 篇);
  • 清算所追求的是”在 17:00 截止前完成今天所有净额计算”,批处理窗口极短。

金融系统不是”慢而稳”,而是”在约束条件下追求极致稳,并且该快的地方快到变态”。


十三、本篇要点回顾

  1. 金融科技比普通后端难,不是因为流量大,而是因为不变量多:钱的原子性、监管边界、精度、时间、审计追溯,全部在一条产线上同时生效。
  2. 系统可分为四体:对账体、支付体、交易体、风控合规体,外加可靠性与展望两条横切。25 篇文章逐一展开。
  3. 中国与国际基础设施在清算、报文、卡组织三条链路上结构类似但细节迥异,跨境工作要建立双语速查。
  4. 绿地项目顺序是:先对账体,再支付体,风控合规贯穿,交易体按需。18 个月可以拿下 B2B 聚合支付级别的 MVP。
  5. 本系列的每一篇,都是围绕”识别并守住某一类不变量”展开的。请把每篇的”工程坑点”与”选型建议”当作清单使用。
  6. 金融工程不是”慢而稳的后端”,而是”约束极多的后端”。约束来自业务(钱的守恒)、监管(审计追溯)、技术(低延迟/高一致)的三重交叠。
  7. 真正决定系统质量的往往不是某个”高大上”的技术选型,而是一群”看似琐碎”的工程守则:幂等键、append-only 分录、双人复核、灰度可回滚、备付金隔离、日切对账。这些守则构成了金融系统工程品味的底色。

如果你在阅读过程中发现某一章与你所在公司的实际做法有出入,大概率是场景差异而非对错——金融细分领域多,同一个问题在零售支付、B2B 清结算、证券登记、衍生品结算里可能有截然不同的最佳解。请把本系列当作”方法论脚手架”,而非”标准答案”。


参考资料

中国监管与基础设施

  • 中国人民银行. 《中国支付体系发展报告(2023)》. https://www.pbc.gov.cn/
  • 中国人民银行. 《非银行支付机构条例》. 国务院令第 768 号, 2023.
  • 中国人民银行. 《金融基础设施监督管理办法(征求意见稿)》. 2020.
  • 跨境银行间支付清算(上海)有限责任公司(CIPS). 《人民币跨境支付系统业务手册》. https://www.cips.com.cn/
  • 中国银联. 《银联卡受理业务规范》. https://cn.unionpay.com/
  • 中国证券登记结算有限责任公司. 《结算业务规则》. http://www.chinaclear.cn/

国际基础设施

标准与协议

权威教材与报告

  • 清华大学五道口金融学院 主编. 《中国金融科技运行报告(2023)》.
  • Rishi Narang. Inside the Black Box: A Simple Guide to Quantitative and High-Frequency Trading. 2nd ed., Wiley, 2013.
  • Martin Kleppmann. Designing Data-Intensive Applications. O’Reilly, 2017. (账务系统事件溯源的工程参考)
  • FATF. “International Standards on Combating Money Laundering and the Financing of Terrorism & Proliferation.” https://www.fatf-gafi.org/
  • Basel Committee on Banking Supervision. “Basel III: Finalising post-crisis reforms.” BIS, 2017. https://www.bis.org/bcbs/publ/d424.htm

公开事件参考

  • U.S. Securities and Exchange Commission. “In the Matter of Knight Capital Americas LLC.” Release No. 70694, Oct 16, 2013.
  • 中国证券监督管理委员会. “关于光大证券 8·16 异常交易事件的行政处罚决定.” 2013.
  • Tokyo Stock Exchange. “みずほ証券誤発注事件調査報告.” 2005.
  • U.S. District Court, Southern District of New York. “In re Citibank August 11, 2020 Wire Transfers.” 520 F. Supp. 3d 390 (2021).

延伸阅读(书目)

  • 黄世忠.《财务报表分析》(第 4 版). 中国人民大学出版社, 2018.(会计基础与分录思维)
  • 陈元《中国开发性金融论纲》系列.(中国金融基础设施演进视角)
  • Glenn Hubbard, Anthony Patrick O’Brien. Money, Banking, and the Financial System. 4th ed., Pearson, 2020.
  • Jack Bennett. The Essential Guide to Payments. Global Payments Innovation Jury, 2015.(支付行业鸟瞰)
  • Robert Kissell. The Science of Algorithmic Trading and Portfolio Management. Academic Press, 2013.
  • Larry Harris. Trading and Exchanges: Market Microstructure for Practitioners. Oxford University Press, 2002.(交易所微观结构经典)
  • 吴军.《数学之美》第 2 版之”搜索与排序”章.(撮合引擎的工程直觉参考)

技术与行业博客

  • Stripe Engineering Blog. https://stripe.com/blog/engineering(幂等、货币、API 设计)
  • Square / Block Engineering. https://developer.squareup.com/blog
  • PayPal Engineering. https://medium.com/paypal-tech
  • 蚂蚁技术(AntTech)公众号与官方博客.(分布式事务、OceanBase、SOFAStack 等金融基础设施)
  • 美团技术团队.(分布式系统与支付相关实战)
  • 币安工程博客(Binance Engineering).(加密撮合引擎视角)
  • LMAX Disruptor 论文与博客.(低延迟撮合内核的经典案例)

标准文档检索入口

把这些链接收藏进浏览器书签栏,后续 24 篇中涉及监管原文的引用几乎全部来自这些入口。


上一篇《金融科技工程》系列首页

下一篇《钱的建模:金额精度、币种、会计单位、多语言金额》

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。

2026-04-22 · architecture / fintech

金融科技工程

面向中国工程团队的金融科技系列。从账务底盘、支付、清结算、交易所、风控合规到可靠性与灾备,中国与全球视角并举,讲清楚金融系统在工程落地中的真实挑战。

2026-04-22 · architecture / fintech

【金融科技工程】交易所核心系统架构:撮合、行情、做市、风控、清算

从订单网关到撮合引擎、从 L1/L2/L3 行情到清算与结算,系统梳理证券、期货、加密货币交易所的五大核心子系统;给出低延迟工程技术栈(Disruptor、Kernel Bypass、FPGA)、订单生命周期状态机、主流交易所(NYSE Pillar、Nasdaq INET、上交所新一代、CME Globex、Binance、dYdX v4)对比、以及 Flash Crash 与 Knight Capital 的工程教训。