Skip to content
Go back

密码学 · Demo

Edit page

这是零知识证明从数学基础到基本算法的一个总结,我很久没看了,准备从头看一遍,会持续更新。

数论基础

模运算与同余

  1. 核心概念与直觉 直觉: 时钟算术,想象一个只有 12 个刻度的时钟(0 到 11,把 12 看作 0)。10点再过3个小时,时钟指向1点(时钟世界) 模运算: 我们把所有数字限制在一个范围内(例如 0 到 11)。无论怎么加减乘,结果永远都会“卷”回这个范围。

  2. 数学定义与公式 ab(modn)a \equiv b(mod n) ,读作“a 与 b 在模 n 下同余”,意思是:aabb 除以 nn 的余数相同。

  3. 基础运算规则

    • 加法: (a+b)(modn)=((a(modn))+(b(modn)))(modn)(a + b) \pmod n = ((a \pmod n) + (b \pmod n)) \pmod n
      例子: (8+5)(mod12)=13(mod12)=1(8 + 5) \pmod{12} = 13 \pmod{12} = 1
    • 减法: (ab)(modn)(a - b) \pmod n 例子:(25)(mod12)=3(mod12)=(3+12)=9(2 - 5) \pmod{12} = -3 \pmod{12} = (-3 + 12) = 9
    • 乘法: (a×b)(modn)=((a(modn))×(b(modn)))(modn)(a \times b) \pmod n = ((a \pmod n) \times (b \pmod n)) \pmod n 例子:(4×4)(mod12)=16(mod12)=4(4 \times 4) \pmod{12} = 16 \pmod{12} = 4
  4. 作用

ZK系统为了安全和效率,不能处理无限大的数,也不能处理小数(精度丢失会破坏证明)。 通过模运算,我们把计算限制在一个巨大的素数域中。这就像一个巨大的时钟,指针转一圈需要极其漫长的时间,这让攻击者很难通过“逆向旋转”来破解密码(离散对数难题的基础)。

欧拉函数与费马小定理

  1. 核心概念与直觉
  1. 作用: 在 ZK 电路中,我们需要做除法。但在有限域里,没有“除以 5”这种操作,只有“乘以 5 的逆元”。 逆元(记作 a1a^{-1})是指满足 a×a11a \times a^{-1} \equiv 1 的那个数。 那么利用费马小定理,我们可以把除法变成乘法:
    1. 根据费马小定理: ap11(modp)a^{p-1} \equiv 1 \pmod p
    2. 拆分一下: a×ap21(modp)a \times a^{p-2} \equiv 1 \pmod p
    3. 对比定义 a×a11a \times a^{-1} \equiv 1,你会发现: a1ap2(modp)a^{-1} \equiv a^{p-2} \pmod p 结论: 在模 pp(素数)的世界里,“除以 aa” 等于 “乘以 ap2a^{p-2}”。这就是为什么 ZK 系统必须构建在素数域上的原因——为了保证除法永远可行。

群、环、域


Edit page
Share this post on:

Previous Post
I Reverse Engineered ChatGPT's Memory System, and Here's What I Found!
Next Post
Value Flows in the MEV Ecosystem(MEV生态的价值流动)