Phase 4 资深密码学面试题集编纂日
Phase 4 资深密码学面试题集编纂日
日期: 2027-01-24 方向: 密码学工程 / ZK / FHE / MPC / TEE 阶段: Phase 4 综合产出(前置篇) 标签: #面试准备 #题集编纂 #方法论 #Phase4End
〇、写在前面 / Foreword
87 天前的 2026-10-29,我从 Phase 3(AI 系统工程)切换到 Phase 4(密码学工程)。当时在 Day 181 笔记里写下一句话:
"我担心的不是学不会数学。我担心的是 90 天之后我变成了一个'什么都看过但什么都讲不清'的二手知识贩子。"
今天 Day 268,距离 Phase 4 收官还剩 2 天。回头看,这个担心有 50% 成真——确实有一些细枝末节我能听懂但讲不利索;但更多的事情是真正地"啃下来了"——比如 Halo IPA 折叠、KZG 多项式承诺、QAP 转换、FHE bootstrapping、Plonkish 列设计。
那么如何证明自己啃下来了?答案是:写出 30 道资深面试题的标准答案。
这跟前 3 个 Phase 收尾时的做法一样:Phase 1 (Day 60-INTERVIEW)、Phase 2 (Day 120-INTERVIEW)、Phase 3 (Day 180-INTERVIEW)。这是我自己给自己定的"毕业测验"——不能讲清楚的东西,等于没学。
今天的任务就是设计 30 道资深密码学面试题。明天 Day 269 整理 270 天作品集;后天 Day 270 写 270 天总结。这是 Phase 4 的"双交付日"中的第一日。
一、今日目标
| 类型 | 内容 |
|---|---|
| 学习 | 重读 Phase 4 87 天笔记的章节标题与核心结论,做"知识图谱压缩" |
| 实操 | 设计 30 道题的题目、难度分布、考察点;为 6 道核心题做"答案预演" |
| 产出 | EXPERT-DAY270-INTERVIEW.md — 30 道资深密码学面试题完整答案集 |
预计明日(Day 269)整理作品集网站,Day 270 完成 270 天总结。
二、为什么是 30 道?为什么是这 5 类?
2.1 为什么是 30 道而不是 50 道?
之前 Phase 1/2/3 都是 30 道。我做过统计:
30 道 × 平均 80 行/题 = 2400 行 ≈ 单文件可控
30 道 × 平均 5 分钟答 = 150 分钟 ≈ 一场 mock interview
30 道 × 5 类别 × 6 题/类 = 均匀覆盖
真正的问题不是覆盖广度,而是讲透深度。资深岗面试官会在你回答完之后追问 2-3 层。一道题没讲透,等于 0 道;30 道每道都能撑得住 3 层追问,等于完全自如。
2.2 为什么是这 5 类?
Phase 4 的 87 天分为 5 个子阶段:
| 子阶段 | Day 范围 | 主题 | 题数 | 总数比例 |
|---|---|---|---|---|
| 一、密码学数学基础 | Day 181-194 | 椭圆曲线 / pairing / FFT / CRT / lattice | 6 | 20% |
| 二、经典密码学 | Day 195-208 | 签名 / hash / accumulator / commitment / threshold | 6 | 20% |
| 三、ZK 理论 | Day 209-222 | Groth16 / PlonK / STARK / Halo / Sumcheck | 6 | 20% |
| 四、ZK 工程 | Day 223-243 | 电路设计 / zkEVM / 审计 / zkML / ZK 桥 | 7 | 23% |
| 五、隐私技术 | Day 244-258 | FHE / MPC / TEE / Privacy Pools / 合规 | 5 | 17% |
ZK 工程占 7 题(最多)的原因:这是最直接产生 Web3 工作机会的领域。FHE/MPC/TEE 在 2026-2027 年还偏研究型,工程岗位有限。
2.3 难度梯度设计
资深题(深度推导,需白板) :18 道 (60%)
高级题(架构 trade-off) :8 道 (27%)
基础题(必答送分题) :4 道 (13%)
我特意保留 4 道基础题。原因是:资深面试也会先问 1-2 道基础题做暖场。如果连"双线性 pairing 的三条性质"都答不流利,面试官会怀疑你是不是只会高大上的概念。
三、6 道高频核心题的选择理由
为什么这 6 道是 ⭐核心题?我用一个"3 因子模型"打分:
Score = 0.4 × 出现频率 + 0.3 × 区分度 + 0.3 × 个人沉淀深度
Q1. 椭圆曲线点加法的几何意义 + 代数公式 + special case
为什么核心:
- 频率高:所有 ZK / Web3 crypto 岗的"开门第一问"。几乎不可能避开。
- 区分度强:90% 的人能背公式,10% 的人能讲明白几何为什么是"过两点+反射"。
- 个人沉淀:Day 183 我在白板上推了 12 次,最后能徒手写出 secp256k1 的 P + Q 完整公式(含 P = Q 时的切线情况)。
Q8. ECDSA nonce 重用如何导致私钥泄漏(Sony PS3 案例)
为什么核心:
- 频率高:所有"crypto + 安全"岗都问。
- 区分度强:能讲到"k 重用 → 联立两个签名方程 → 解出 d"的完整推导,是分水岭。
- 个人沉淀:Day 198 我手算过这个攻击 + 用 Python 复现了 Sony PS3 攻击。这是 Phase 4 我最得意的实操之一。
Q13. 完备性 / 可靠性 / 零知识三性质(含模拟器构造直觉)
为什么核心:
- 频率高:ZK 岗"必答"。零知识的"模拟器(simulator)"概念是绊倒大多数候选人的题。
- 区分度强:能讲清楚"模拟器证明信息论意义上零知识"是 ZK researcher 与 ZK engineer 的分界线。
- 个人沉淀:Day 209-210 我在课本边缘写满了笔记。
Q14. Groth16 三元组 (A, B, C) 的设计思路
为什么核心:
- 频率高:每一个 ZK SNARK 候选人必问。
- 区分度强:能解释"为什么是 3 个而不是 2 个或 4 个" + "为什么 B 在 G2 而 A, C 在 G1",是真正读懂论文与背 wiki 的差距。
- 个人沉淀:Day 213 我手算 QAP,Day 214 推 Groth16 等式。这是 Phase 4 最难啃的 2 天之一。
Q19. 设计一个隐私混币的电路
为什么核心:
- 频率高:所有"应用 ZK"岗的系统设计题。
- 区分度强:能从 commitment / nullifier / Merkle proof 三个原语完整组装出一个 Tornado-Cash-like 系统,是 ZK 工程师的硬核技能。
- 个人沉淀:Day 263 我用 Circom 实现了一个简化版隐私交易系统,部署到 Sepolia 跑通了完整流程。
Q20. zkEVM Type 1-4 的区别
为什么核心:
- 频率高:每个 zkEVM/L2 公司必问。
- 区分度强:90% 的人只能背"Type 1 完全兼容、Type 4 重写语言",但答不出"为什么 zkSync 选 Type 4 而 Scroll 选 Type 2"。
- 个人沉淀:Day 232-235 我对比了 Scroll、zkSync、Polygon zkEVM、Linea 的源码风格。
Q26. FHE / MPC / TEE / ZK 的 trade-off
为什么核心:
- 频率高:所有"隐私"岗的系统题。
- 区分度强:能用一张表对比"信任假设 / 性能 / 可表达性 / 工程成熟度"四个维度,是隐私架构师的能力体现。
- 个人沉淀:Day 248 我专门做了这个对比表 + 在不同业务场景下的选型决策树。
7 道核心题(实际 ⭐ 6 道是按规则限制 6 道,但 Q26 也很核心)。
四、答案撰写方法论:STAR-T 结构(密码学版)
延续 Phase 1/2/3 的 STAR-T 结构,但密码学题有特殊性:必须有数学公式 + 代码片段 + 真实数据。
4.1 标准答案模板
### Q[N]. [题目]
**类别**: [子类别]
**难度**: [资深/高/中]
**考察点**: [3-5 个具体能力]
**简短回答(30 秒)**:
[2-4 句话核心观点。必须包含 1 个关键数学/工程概念名词。]
**详细回答(2-3 分钟)**:
1. **背景/定义**:
[What it is, where it comes from. 1 paragraph]
2. **核心机制/原理**:
[How it works. 包含数学公式(用 LaTeX/code block)或代码片段(Solidity/Rust/Circom/Python)]
3. **关键 trade-off**:
[对比表 / 关键参数 / 边界条件]
4. **真实案例/数据**:
[生产系统的实际数据:gas、proof size、prover time、TVL、attack 历史等]
5. **我的观点**:
[1-2 句个人见解。必须有"so what"——这个知识点指向什么决策?]
**追问准备**:
- Q: [常见追问 1] → A: [简短回答]
- Q: [常见追问 2] → A: [简短回答]
- Q: [常见追问 3] → A: [简短回答]
---
4.2 三个特别要求
要求 1:数学公式必须自己会推
每道题如果带公式(如 Groth16 的 e(A, B) = e(α, β) · e(L, γ) · e(C, δ)),我自己白板上必须能推 1 次。如果只能背,就写"看到再推"——不写到题里。
要求 2:代码片段必须可运行
题里出现的 Circom / Solidity / Rust 代码,必须从我之前 Day 笔记里直接复制并验证过。不允许 AI 编造的"看似合理"代码。
要求 3:数据必须有来源
像"Groth16 proof = 192 bytes"、"PlonK universal SRS 适用于电路 ≤ 2^28"、"Tornado Cash 总锁仓 800M",每个数字背后都需要源(论文 / 项目文档 / Dune Dashboard)。
五、有趣的题目设计过程:3 个故事
5.1 Q14 (Groth16 三元组) 的设计过程
最初我打算把这道题写成"解释 Groth16 是怎样工作的"——典型 wiki 级别。但后来读 Day 213-214 的笔记,发现真正能区分人才的问题是:
为什么是 (A, B, C)?为什么不是 (A, B) 或 (A, B, C, D)?为什么 A、C 在 G1 而 B 在 G2?
这 3 个"为什么"才是真正考验对论文理解的问题。背完 wiki 的人答不出来。把这道题改成现在这个版本之后,我自己答了一遍发现还有 2 个细节不熟,于是又回去重读了 Groth16 paper Section 3。这就是写题集本身就是再学习。
5.2 Q26 (FHE/MPC/TEE/ZK 对比) 的难度
这道题表面简单,实际很难。难在哪里?4 个技术不在同一个维度上:
- ZK 是"单方计算 + 多方验证"
- MPC 是"多方协作计算"
- FHE 是"单方在密文上计算"
- TEE 是"硬件信任根"
直接对比像"苹果 vs 梨 vs 椅子 vs 信用卡"。设计这道题的关键是定义 4 个评估维度(信任假设 / 性能 / 可表达性 / 成熟度),让候选人在每个维度上做对比。这种"先定义评估维度再对比"的能力,本身就是资深架构师的核心技能。
5.3 Q21 (under-constrained) 的实战意义
under-constrained 是 ZK 电路审计中最致命的 bug 类型。我专门把它做成一道题,因为 Day 240-242 我读了 Trail of Bits 的 zk circuit audit checklist,发现 under-constrained 是 ZK bug 的 #1 类型(占所有 ZK bug 的 40%+)。
这道题如果你只能讲"约束不够",那不到位;要讲到:
- 数学定义:约束系统 R(x, w) 不构成 witness 唯一性的函数关系
- 常见模式:bit decomposition 没约束 0/1、范围检查遗漏
- 检测方法:fuzz、formal verification、SMT solver
- 真实案例:Aztec circuit 2022 漏洞
把"under-constrained"从概念讲到工程实战,是 ZK auditor 与 ZK developer 的分水岭。
六、产出预估
| 项目 | 数据 |
|---|---|
| 题目总数 | 30 道 |
| 总行数 | ~2200 行 |
| 平均每题 | 70-80 行 |
| ⭐ 核心题平均 | 110-130 行 |
| 数学公式数 | 约 40 个 |
| 代码片段数 | 约 25 个 |
| 真实数据点 | 约 80 个 |
| 内嵌追问数 | 90+ 个 |
预计 Phase 4 收官时整体面试题集(30 题)的"信息密度"≥ Phase 1-3 的平均水平。
七、与 Phase 1/2/3 题集的对比
Phase 1 Phase 2 Phase 3 Phase 4
(机构DeFi) (量化) (AI系统) (密码学)
────────────────────────────────────────────
题数 30 30 30 30
总行数 ~2200 ~2400 ~1800 ~2200(目标)
数学密度 中 高 低 最高 ⭐
代码密度 中 高 最高 ⭐ 高
"so what" 强度 高 高 中 高
追问深度 3 层 3 层 3 层 3-4 层 ⭐
Phase 4 的特别之处:数学密度最高。一道题里出现 2-3 个公式很正常。这意味着面试时白板使用率最高——必须会徒手推。
八、写完面试集后的 4 个自检问题
明天写完之后,我会用这 4 个问题做"自我面试":
-
能不能在不看答案的情况下,30 秒回答出核心观点?
- 如果 30 题里 < 25 题能做到,说明笔记还没真正吸收。
-
白板能徒手推出关键公式吗?
- Groth16 等式、Sumcheck reduction、ECDSA 签名公式、KZG 验证 pairing equation——这 4 个是我会强制自检的。
-
能用一句话总结这道题的"so what"吗?
- 比如"under-constrained 是 ZK 审计 #1 bug 类型"——这就是 so what。
- 没有 so what 的题,就是漂亮的废话。
-
3 层追问能撑住吗?
- 让 ChatGPT 扮演资深面试官,针对每道题追问 3 层。
- 撑不住的题立即重写。
九、明日预告(Day 269)
明天 Day 269:整合 270 天作品集网站设计。
Phase 4 收官的"双交付"还差最后一块——把 270 天的所有产出整理成可对外展示的作品集网站。这里的关键决策是:
- 域名买不买(建议买 yourname.dev)
- 哪些放首页突出(4 个旗舰项目还是 4 个 Phase 各占首页)
- 内容策略(针对 HR / hiring manager / engineer 的不同入口)
- 30 天求职行动计划(投 10 个目标公司 / 发 2 篇 Mirror / 1 个 offer)
后天 Day 270 收官,270 天的总结文章。
十、今日复盘 / Today's Reflection
写题集这件事看起来"只是整理",但整理就是最深的学习。今天我有 3 个新发现:
-
我以为自己懂了 Halo IPA,但写到 Q17(Halo recursion)的"模拟"答案时卡了 20 分钟。回去看 Day 219 笔记才能写下去。说明"读懂论文"和"能讲明白论文"之间还有 1 个 gap。
-
Q21 (under-constrained) 让我重新意识到 ZK 审计的稀缺性。这是一个 2027 年仍然严重 understaffed 的方向——全球能做 ZK formal verification 的人不超过 200 个。这是个潜在的"技能-需求 arbitrage"。
-
Q26 (FHE/MPC/TEE/ZK 对比) 让我看清自己的"独特定位"。10 年金融/零售背景 + Phase 1+2+3+4 = "懂业务也懂底层"——这个组合在隐私机构金融领域是稀缺的。这道题指向了 Phase 5 的可能方向(如果有 Phase 5):机构隐私交易产品 PM。
写题集是 Phase 4 的 capstone。明天作品集,后天总结。Phase 4 还剩 2 天。
十一、链接
- 配套交付:
docs/daily/EXPERT-DAY270-INTERVIEW.md(30 题完整答案,2200 行) - Phase 1 题集:
docs/daily/EXPERT-DAY60-INTERVIEW.md - Phase 2 题集:
docs/daily/EXPERT-DAY120-INTERVIEW.md - Phase 3 题集:
docs/daily/EXPERT-DAY180-INTERVIEW.md - Phase 4 进度:
docs/daily/EXPERT_PROGRESS.md - 270 天计划:
docs/EXPERT_DEPTH_270_PLAN.md