返回 Expert 笔记
Expert Day 268

Phase 4 资深密码学面试题集编纂日

Phase 4 资深密码学面试题集编纂日

2027-01-24
Phase 4 综合产出(前置篇)
面试准备题集编纂方法论Phase4End

日期: 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 / lattice620%
二、经典密码学Day 195-208签名 / hash / accumulator / commitment / threshold620%
三、ZK 理论Day 209-222Groth16 / PlonK / STARK / Halo / Sumcheck620%
四、ZK 工程Day 223-243电路设计 / zkEVM / 审计 / zkML / ZK 桥723%
五、隐私技术Day 244-258FHE / MPC / TEE / Privacy Pools / 合规517%

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%+)。

这道题如果你只能讲"约束不够",那不到位;要讲到:

  1. 数学定义:约束系统 R(x, w) 不构成 witness 唯一性的函数关系
  2. 常见模式:bit decomposition 没约束 0/1、范围检查遗漏
  3. 检测方法:fuzz、formal verification、SMT solver
  4. 真实案例: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 个问题做"自我面试":

  1. 能不能在不看答案的情况下,30 秒回答出核心观点?

    • 如果 30 题里 < 25 题能做到,说明笔记还没真正吸收。
  2. 白板能徒手推出关键公式吗?

    • Groth16 等式、Sumcheck reduction、ECDSA 签名公式、KZG 验证 pairing equation——这 4 个是我会强制自检的。
  3. 能用一句话总结这道题的"so what"吗?

    • 比如"under-constrained 是 ZK 审计 #1 bug 类型"——这就是 so what。
    • 没有 so what 的题,就是漂亮的废话。
  4. 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 个新发现:

  1. 我以为自己懂了 Halo IPA,但写到 Q17(Halo recursion)的"模拟"答案时卡了 20 分钟。回去看 Day 219 笔记才能写下去。说明"读懂论文"和"能讲明白论文"之间还有 1 个 gap。

  2. Q21 (under-constrained) 让我重新意识到 ZK 审计的稀缺性。这是一个 2027 年仍然严重 understaffed 的方向——全球能做 ZK formal verification 的人不超过 200 个。这是个潜在的"技能-需求 arbitrage"。

  3. 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