Polygon zkEVM Arithmetic状态机

Posted mutourend

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Polygon zkEVM Arithmetic状态机相关的知识,希望对你有一定的参考价值。

1. 引言

Polygon zkEVM中将某类特定的计算表示为状态机。
Arithmetic状态机为Polygon zkEVM的6个二级状态机之一,主要由2大部分组成:

Polygon zkEVM的Arithmetic状态机主要是基于Secp256K1椭圆曲线E( y 2 = x 3 + 7 y^2=x^3+7 y2=x3+7,基域为 p = 2 256 − 2 32 − 2 9 − 2 8 − 2 7 − 2 6 − 2 4 − 1 p=2^256-2^32-2^9-2^8-2^7-2^6-2^4-1 p=225623229282726241)上的如下运算:

  • 1)域内加法和乘法等运算: x 1 ⋅ y 1 + x 2 = y 2 ⋅ 2 256 + y 3 x_1\\cdot y_1+x_2=y_2\\cdot 2^256+y_3 x1y1+x2=y22256+y3。若 y 1 = 0 y_1=0 y1=0,则表示的是field addition运算;若 x 2 = 0 x_2=0 x2=0,则表示的是field multiplication运算。
  • 2)椭圆曲线点加运算:椭圆曲线上2个不同点 P = ( x 1 , y 1 ) , Q = ( x 2 , y 2 ) P=(x_1,y_1),Q=(x_2,y_2) P=(x1,y1),Q=(x2,y2) x 1 ≠ x 2 x_1\\neq x_2 x1=x2, P + Q = ( x 3 , y 3 ) P+Q=(x_3,y_3) P+Q=(x3,y3)计算为:
    x 3 = s 2 − x 1 − x 2 , x_3=s^2-x_1-x_2, x3=s2x1x2,
    y 3 = s ( x 1 − x 3 ) − y 1 y_3=s(x_1-x_3)-y_1 y3=s(x1x3)y1
    其中 s = y 2 − y 1 x 2 − x 1 s=\\fracy_2-y_1x_2-x_1 s=x2x1y2y1
  • 3)椭圆曲线点倍加运算:椭圆曲线上点 P = ( x 1 , y 1 ) P=(x_1,y_1) P=(x1,y1),, 2 P = P + P = ( x 3 , y 3 ) 2P=P+P=(x_3,y_3) 2P=P+P=(x3,y3)计算为:
    x 3 = s 2 − 2 x 1 , x_3=s^2-2x_1, x3=s22x1,
    y 3 = s ( x 1 − x 3 ) − y 1 y_3=s(x_1-x_3)-y_1 y3=s(x1x3)y1
    其中 s = 3 x 1 2 2 y 1 s=\\frac3x_1^22y_1 s=2y13x12

将以上运算以约束形式表示为:
EQ 0  ⁣ : x 1 ⋅ y 1 + x 2 − y 2 ⋅ 2 256 − y 3 = 0 , EQ 1  ⁣ : s ⋅ x 2 − s ⋅ x 1 − y 2 + y 1 + q 0 ⋅ p = 0 , EQ 2  ⁣ : 2 ⋅ s ⋅ y 1 − 3 ⋅ x 1 ⋅ x 1 + q 0 ⋅ p = 0 , EQ 3  ⁣ : s ⋅ s − x 1 − x 2 − x 3 + q 1 ⋅ p = 0 , EQ 4  ⁣ : s ⋅ x 1 − s ⋅ x 3 − y 1 − y 3 + q 2 ⋅ p = 0 , \\beginaligned \\textEQ_0 \\colon \\quad &x_1 \\cdot y_1 + x_2 - y_2 \\cdot 2^256 - y_3 = 0, \\\\ \\textEQ_1 \\colon \\quad &s \\cdot x_2 - s \\cdot x_1 -y_2 + y_1 + q_0 \\cdot p = 0, \\\\ \\textEQ_2 \\colon \\quad & 2 \\cdot s \\cdot y_1 - 3 \\cdot x_1 \\cdot x_1 + q_0 \\cdot p = 0, \\\\ \\textEQ_3 \\colon \\quad & s \\cdot s - x_1 - x_2 - x_3 + q_1 \\cdot p = 0, \\\\ \\textEQ_4 \\colon \\quad & s \\cdot x_1 - s \\cdot x_3 - y_1 - y_3 + q_2 \\cdot p = 0, \\endaligned EQ0:EQ1:EQ2:<

以上是关于Polygon zkEVM Arithmetic状态机的主要内容,如果未能解决你的问题,请参考以下文章

Polygon zkEVM Prover

Polygon zkEVM网络节点

Polygon zkEVM节点代码解析

Polygon zkEVM——Hermez 2.0简介

Polygon zkEVM可验证计算简单状态机示例

Polygon zkEVM公式梳理