SBF의 선고 일정은 변경되지 않았습니다: 판사, 선고 연기 거부
판사는 SBF의 선고 연기 요청을 거부하고 준비 시간을 더 달라는 변호인의 호소에도 불구하고 그의 법적 절차 일정을 유지했습니다.

원제: "서클 스타크 탐색하기" 이더리움 공동창립자 비탈릭 부테린 글, 크리스 편집, 테크큐브뉴스
이 글을 이해하기 위한 가정은 여러분이 이미 스나크와 스탁의 기본을 이해하고 있다는 것입니다. 익숙하지 않다면 이 글의 처음 몇 섹션을 읽고 기본 사항을 이해하는 것이 좋습니다.
최근 몇 년 동안 STARK 프로토콜 설계의 추세는 더 작은 필드로 이동하는 것이었습니다. STARKs의 초기 프로덕션 구현은 256비트 필드, 즉 큰 숫자(예: 21888.... .95617), 즉 타원 곡선 기반 서명과 호환되는 256비트 필드를 사용했습니다. 그러나 이 설계는 상대적으로 비효율적이며 일반적으로 이러한 큰 숫자의 계산을 처리하는 데 실용적이지 않고, 예를 들어 특정 숫자를 나타내는 X를 처리하는 것과 계산 시간이 9분의 1밖에 걸리지 않는 X를 4배로 하는 데 많은 산술이 낭비됩니다. 이 문제를 해결하기 위해 스타크는 처음에는 <골디락스>, 그다음에는 <메르센31>, <베이비베어> 등 작은 필드를 사용하는 방식으로 전환하기 시작했습니다.
이 같은 전환을 통해 다음과 같이 증명 속도가 빨라졌습니다. Starkware는 M3 노트북에서 초당 620,000개의 포세이돈2 해시를 증명할 수 있었습니다. 즉, 포세이돈2를 해시 함수로 신뢰할 수 있다면 효율적인 ZK-EVM 개발의 과제를 해결할 수 있습니다. 그렇다면 이러한 기술은 어떻게 작동할까요? 이러한 증명은 어떻게 더 작은 필드에 구축될까요? 이러한 프로토콜은 비니우스 같은 솔루션과 어떻게 비교될까요? 이 백서에서는 이러한 세부 사항을 살펴보고, 특히 Mersenne31 필드와 호환되는 고유한 속성을 가진 Circle STARKs(Starkware의 stwo, Polygon의 plonky3, 파이썬으로 구현된 제 버전)라는 체계에 초점을 맞춰 살펴봅니다. 고유 프로퍼티가 있는 Mersenne31 필드와 호환됩니다.
작은 수학 필드를 사용할 때 흔히 발생하는 문제
해시 기반 증명(또는 모든 종류의 증명)을 만들 때 매우 중요한 요령은 임의의 지점에서 다항식의 결과를 평가하여 다항식을 증명하는 것입니다. 이를 통해 다항식의 속성을 간접적으로 검증할 수 있습니다. 이 방법은 일반적으로 전체 다항식을 다루는 것보다 임의의 지점에서 평가하는 것이 훨씬 쉽기 때문에 증명 과정을 크게 간소화할 수 있습니다.
예를 들어 증명 시스템에서 A^3 (x) + x - A (\omega*x) = x^N(ZK-SNARK 프로토콜에서 매우 일반적인 증명 유형)을 만족해야 하는 다항식 A에 대한 약속을 생성하도록 요청한다고 가정해 보겠습니다. 프로토콜은 임의의 좌표를 선택하도록 요청할 수 있습니다. A (r) + r - A (\omega*r) = r^N임을 증명한 다음, A (r) = c를 반전시켜 Q = \frac {A - c}{X - r}이 다항식임을 증명할 수 있습니다.
프로토콜의 세부 사항이나 내부 메커니즘을 미리 알고 있다면 이를 우회하거나 깨뜨리는 방법을 찾을 수 있습니다. 이를 달성하기 위한 구체적인 작업이나 방법은 다음에 언급할 수 있습니다. 예를 들어, A(\오메가 * r) 방정식을 만족시키기 위해 A(r)를 0으로 설정한 다음 A가 두 점을 통과하는 직선이 되도록 할 수 있습니다.
이러한 공격을 방지하려면 공격자가 A를 제공한 후 r을 선택해야 합니다. (피아트-샤미르는 특정 매개변수를 특정 해시값으로 설정하여 공격을 피하기 위해 프로토콜의 보안을 강화하는 데 사용되는 기법입니다. 선택한 매개변수는 공격자가 예측하거나 추측할 수 없을 정도로 충분히 큰 집합이어야 시스템의 보안을 강화할 수 있습니다.
타원 곡선 기반 프로토콜과 2019년형 STARK에서는 모든 수학적 연산이 256비트 숫자로 수행되기 때문에 r을 임의의 256비트 숫자로 선택해도 문제가 없을 수 있습니다. 그러나 더 작은 필드의 STARK에서는 선택할 수 있는 r의 값이 약 20억 개에 불과하므로 증명을 위조하려는 공격자는 20억 번만 시도하면 되는데, 이는 많은 작업이지만 결단력 있는 공격자에게는 여전히 완벽하게 해낼 수 있는 문제입니다!
이 문제에 대한 두 가지 해결책이 있습니다:
복수의 무작위 검사 수행
복수의 무작위 검사를 수행하는 방법은 가장 간단하고 효율적인 방법으로, 한 좌표에서 검사하는 대신 4개의 무작위 좌표에서 검사를 반복하는 것입니다. 이 방법은 이론적으로는 효과가 있지만 효율성 문제가 있습니다. 특정 값보다 작은 차수의 다항식을 다루고 특정 크기의 도메인에서 작업하는 경우 공격자는 실제로 모든 위치에서 정상적으로 보이는 악성 다항식을 만들 수 있습니다. 따라서 프로토콜을 성공적으로 깨는 것은 확률적인 문제이므로 전반적인 보안을 강화하고 공격자를 효과적으로 방어할 수 있도록 검사 횟수를 늘려야 합니다.
이것은 복소수와 유사하지만 유한 도메인을 기반으로 하는 확장 도메인이라는 또 다른 해결책으로 이어집니다. α\알파α로 표시되는 새로운 값을 도입하고 α2=어떤 값\알파^2 = \text {어떤 값}α2=어떤 값과 같은 어떤 관계를 만족한다고 선언합니다. 이런 식으로 유한 필드에서 더 복잡한 연산을 수행할 수 있는 새로운 수학적 구조를 만들 수 있습니다. 이 확장된 영역에서 곱셈 계산은 새로운 값 α\알파α를 사용한 곱셈이 됩니다. 이제 개별 숫자가 아닌 확장된 영역에서 값의 쌍을 조작할 수 있습니다. 예를 들어, 메르센이나 베이비베어와 같은 필드에서 작업하는 경우 이러한 확장을 통해 더 다양한 값을 선택할 수 있으므로 보안이 강화됩니다. 필드의 크기를 더 늘리려면 동일한 기법을 반복해서 적용할 수 있습니다. 이미 α\알파α를 사용했으므로 α2=어떤 값\알파^2 = \text {어떤 값}α2=어떤 값이 되도록 α\알파α를 선택해 메르센31에서 표현되는 새로운 값을 정의해야 합니다.
코드(Karatsuba로 개선 가능)
도메인을 확장함으로써 이제 보안 요구 사항을 충족할 수 있는 충분한 값을 선택할 수 있게 되었습니다. ddd보다 작은 차수의 다항식을 처리하는 경우 라운드당 104비트의 보안을 제공할 수 있습니다. 이는 보안이 충분하다는 뜻입니다. 128비트와 같이 더 높은 수준의 보안이 필요한 경우, 프로토콜에 추가 계산 작업을 추가하여 보안을 강화할 수 있습니다.
확장 도메인은 FRI(Fast Reed-Solomon Interactive) 프로토콜과 임의의 선형 조합이 필요한 기타 시나리오에서만 실질적으로 사용됩니다. 대부분의 수학적 연산은 여전히 기본 필드에서 수행되며, 이는 일반적으로 모듈러스 ppp 또는 qqq의 필드입니다. 동시에 거의 모든 해싱이 기본 필드에서 수행되므로 각 값의 4바이트만 해싱하면 됩니다. 이렇게 하면 작은 필드의 효율성을 활용하면서 보안 강화가 필요한 경우 더 큰 필드를 사용할 수 있습니다.
정규 FRI
일반적으로 SNARK 또는 STARK를 구축할 때 첫 번째 단계는 산술화입니다. 이는 임의의 계산 문제를 특정 변수와 계수가 다항식인 방정식으로 변환하는 것입니다. 구체적으로 이 방정식은 일반적으로 P (X,Y,Z) = 0P (X,Y,Z) = 0P (X,Y,Z) = 0으로, 여기서 P는 다항식이고 X, Y, Z는 주어진 파라미터이며 솔버가 X와 Y의 값을 제공하면 다음과 같은 방정식이 됩니다. 이러한 방정식을 구할 수 있으면 해당 방정식의 해는 기본 계산 문제의 해에 해당합니다.
해법이 있다는 것을 증명하려면 제안하는 값이 실제로 합리적인 다항식(분수 또는 어떤 곳에서는 하나의 다항식처럼 보이지만 다른 곳에서는 다른 다항식으로 보이는 다항식과 반대)이며 이러한 다항식이 일정한 최대 차수를 가지고 있음을 보여 주어야 합니다. 이를 위해 단계별로 적용되는 확률적 선형 조합 트릭을 사용합니다.
평가된 다항식 A가 있고 그 차수가 <2^{20}보다 작다는 것을 증명하고 싶다고 가정해 보겠습니다.
다항식 B (x^2) = A (x) + A (-x) 및 C (x^2) = \frac {A (x) - A (-x)}{x}
D는 B의 임의 선형 조합입니다. C의 임의의 선형 조합, 즉 D = B + rCD = B + rCD = B + rC, 여기서 r은 임의의 계수입니다.
본질적으로, B는 짝수 계수 A를 분리하고 ? 는 홀수 계수를 분리합니다. B와 C가 주어지면 원래의 다항식 A를 복구할 수 있습니다: A (x) = B (x^2) + xC (x^2). A의 차수가 실제로 2^{20}보다 작으면 짝수와 홀수의 항을 조합해도 차수가 증가하지 않으므로 B와 C의 차수는 각각 A의 차수와 A의 차수에서 1을 뺀 값이 됩니다. D는 B와 C의 임의의 선형 조합이므로 D의 차수 역시 A의 차수여야 합니다. 따라서 D의 차수를 통해 A의 차수가 요건을 충족하는지 확인할 수 있습니다.
첫째, FRI는 다항식의 차수 d를 증명하는 문제를 다항식의 차수 d/2를 증명하는 문제로 축소하여 검증 과정을 간소화합니다. 이 과정은 여러 번 반복할 수 있으며, 매번 문제를 절반으로 단순화할 수 있습니다.
이 단순화 과정을 반복하여 작업합니다. 예를 들어 다항식의 차수가 d임을 증명하는 것으로 시작하면 일련의 단계를 거쳐 결국 다항식의 차수가 d/2임을 증명하게 됩니다. 단순화할 때마다 결과 다항식의 차수는 점점 작아집니다. 어떤 단계의 출력이 다항식의 예상 차수가 아닌 경우, 해당 단계의 검사는 실패합니다. 누군가 이 기법을 통해 차수 d가 아닌 다항식을 밀어 넣으려고 하면 두 번째 출력 라운드에서 차수가 예상과 일치하지 않을 확률이 있고, 세 번째 라운드에서도 일치하지 않을 확률이 더 높아져 최종 확인이 실패하게 됩니다. 이 설계는 부적합한 입력을 감지하고 거부하는 데 효과적입니다. 데이터 세트가 대부분의 위치에서 차수 d의 다항식과 같다면 이 데이터 세트는 FRI 유효성 검사를 통과할 가능성이 높습니다. 그러나 이러한 데이터 집합을 구성하기 위해서는 공격자가 실제 다항식을 알아야 하므로, 약간 결함이 있는 증명이라도 증명자가 '참' 증명을 생성할 수 있음을 보여줍니다.
이제 여기서 어떤 일이 일어나고 있는지, 그리고 이 모든 것을 작동시키는 데 필요한 속성을 더 자세히 살펴봅시다. 각 단계에서 다항식의 수를 절반으로 줄이고 포인트 세트(우리가 보고 있는 점의 집합)도 절반으로 줄입니다. 전자는 FRI(Fast Reed-Solomon Interactive) 프로토콜을 작동시키기 위한 핵심 요소입니다. 후자는 알고리즘을 매우 빠르게 실행합니다. 각 라운드의 크기가 이전 라운드에 비해 절반으로 줄어들었기 때문에 총 계산 비용이 O(N)가 아닌 O(N*로그(N))가 됩니다.
도메인을 단계적으로 축소하기 위해 각 지점이 두 지점 중 하나에 매핑되는 2대 1 매핑이 사용됩니다. 이 매핑을 사용하면 데이터 집합의 크기를 절반으로 줄일 수 있습니다. 이 2대 1 매핑의 중요한 장점은 반복이 가능하다는 것입니다. 즉, 이 매핑을 적용할 때 결과 결과 집합은 여전히 동일한 속성을 유지합니다. 곱셈 하위 그룹으로 시작한다고 가정해 보겠습니다. 이 하위 그룹은 집합 S이며, 모든 원소 x는 그 곱인 2x도 집합에 있습니다. 집합 S를 제곱하면(즉, 집합의 각 원소 x를 x^2에 매핑하면) 새 집합 S^2는 동일한 속성을 유지합니다. 이 작업을 통해 결국 하나의 값만 남을 때까지 데이터 집합의 크기를 계속 줄일 수 있습니다. 이론적으로는 데이터 집합을 단 하나의 값으로 줄일 수 있지만, 실제로는 더 작은 집합에 도달하기 전에 중단하는 것이 일반적입니다.
이 작업은 원 둘레를 중심으로 선(예: 선분 또는 호)을 늘려 원을 두 바퀴 회전하는 과정으로 생각할 수 있습니다. 예를 들어 원주에서 x도 위치에 있는 점이 이 작업 후 2배도 위치로 이동합니다. 원주의 0도에서 179도까지의 모든 점에는 180도에서 359도에 해당하는 점이 있으며, 이 두 점은 일치합니다. 즉, 한 점을 x도부터 2배도까지 매핑하면 x+180도의 위치와 일치하게 됩니다. 이 과정은 반복할 수 있습니다. 즉, 이 매핑 작업을 여러 번 적용할 수 있으며 매번 둘레의 점을 새 위치로 이동할 수 있습니다.
매핑 기법이 효과적이려면 원래 곱셈 하위 그룹의 크기에 2의 큰 거듭제곱을 곱해야 합니다. BabyBear는 특정 계수를 가진 시스템으로, 가장 큰 곱셈 하위 그룹이 0이 아닌 값을 모두 포함하는 값이므로 하위 그룹의 크기는 2k -1(여기서 k는 모듈러스의 비트 수)입니다. 이 크기의 하위 그룹은 매핑 연산을 반복적으로 적용하여 다항식의 차수를 효과적으로 줄일 수 있기 때문에 위의 기법에 적합합니다. BabyBear에서는 2^k 크기의 하위 그룹(또는 전체 집합을 사용)을 선택한 다음 FRI 방법을 적용하여 다항식의 차수를 15까지 점진적으로 줄이고 마지막에 다항식의 차수를 확인할 수 있습니다. 이 방법은 계수와 곱셈 부분집합의 크기를 사용하여 계산을 매우 효율적으로 만듭니다. 메르센31은 곱셈 부분집합의 크기가 2^31 - 1이 되도록 어떤 값의 계수를 가진 또 다른 시스템입니다. 이 경우 곱셈 부분집합의 크기는 2의 거듭제곱으로만 인수분해되므로 2로 한 번만 나눌 수 있습니다. 이후 처리에는 더 이상 위의 기법이 적용되지 않으므로 BabyBear처럼 효과적인 다항식 차수 감소를 위해 FFT를 사용할 수 없습니다.
메르센31 영역은 기존 32비트 CPU/GPU 연산에서 산술 연산에 매우 적합합니다. 계수 속성(예: 2^{31} - 1)은 효율적인 비트 단위 연산을 사용하여 많은 연산을 수행할 수 있게 해줍니다. 두 수를 더한 결과가 계수를 초과하는 경우 결과를 계수로 이동시켜 결과를 적절한 범위로 줄일 수 있습니다. 비트 연산은 매우 효율적인 연산입니다. 곱셈 연산에서는 특정 CPU 명령어(흔히 높은 비트 시프트 명령어라고 함)를 사용하여 결과를 처리할 수 있습니다. 이러한 명령어는 곱셈의 높은 비트 부분을 효율적으로 계산하여 연산 효율을 높입니다. 메르센31 영역에서는 위의 기능으로 인해 산술 연산이 베이비베어 영역보다 약 1.3배 빠르며, 메르센31은 계산 효율성이 더 높습니다. Mersenne31 도메인에서 FRI를 구현할 수 있다면 계산 효율성이 크게 향상되어 FRI를 더욱 효율적으로 사용할 수 있습니다.
원 FRI
이것은 소수 p가 주어졌을 때, 비슷한 2대 1의 속성을 갖는 크기 p의 그룹을 찾을 수 있는 비슷한 2대 1 속성을 가진 그룹을 찾을 수 있습니다. 이 모집단은 특정 조건을 만족하는 모든 점으로 구성됩니다(예: x^2 mod p가 특정 값과 같은 점의 집합).
점들은 삼각함수나 복소수 곱셈과 관련된 문제를 풀어본 적이 있다면 익숙하게 보일 수 있는 덧셈 패턴을 따릅니다.
(x_1, y_1) + (x_2, y_2) = (x_1x_2 - y_1y_2, x_1y_2 + x_2y_1)
이중 형태는 다음과 같습니다:
2 * (x, y) = (2x^2 - 1, 2xy)
자, 이 원의 홀수 위치에 있는 점들에 집중해 보겠습니다.
먼저 모든 점을 직선으로 수렴합니다. 일반 FRI에서 사용하는 B(x²) 및 C(x²) 공식의 등가 형태는 다음과 같습니다.
f_0 (x) = \frac {F (x,y) + F (x,-y)}{2}
그런 다음 무작위 선형 조합을 수행하여 x 선의 하위 집합에 정의된 다항식인 1차원 P(x)를 구할 수 있습니다.
두 번째 라운드부터 매핑이 변경됩니다:
f_. 0 (2x^2-1) = \frac {F (x) + F (-x)}{2}
이 매핑은 실제로 위 집합의 크기를 매번 절반으로 줄이며, 여기서 일어나는 일은 각 x가 어떤 의미에서 (x, y) 및 (x, -y)라는 두 점을 나타낸다는 것입니다. 그리고 (x → 2x^2 - 1)은 위의 점 곱셈 법칙입니다. 따라서 원에 있는 두 개의 반대쪽 점의 x 좌표를 곱한 점의 x 좌표로 변환합니다. 예를 들어 원에서 오른쪽에서 두 번째 점인 2 값을 가지고 2 → 2 (2^2) - 1 = 7 매핑을 적용하면 7이 됩니다. 원래 원으로 돌아가면 (2, 11)은 오른쪽에서 세 번째 점이므로 이를 곱하면 오른쪽에서 여섯 번째 점이 됩니다. (7, 13).
이 작업을 2차원에서 수행할 수도 있지만 1차원에서 작업하면 프로세스가 더 효율적입니다.
원 FFT
FRI와 밀접한 관련이 있는 알고리즘 중 하나는 n보다 작은 차수의 다항식의 평가값을 그 값으로 변환하는
FFT
입니다. FFT 프로세스는 FRI와 유사하지만, 각 단계에서 임의의 선형 조합인서클 그룹도 FRI와 비슷한 방식으로 구성되는 FFT를 지원합니다. 그러나 중요한 차이점은 원형 FFT(및 원형 FRI)가 다루는 객체가 엄밀히 말해 다항식이 아니라는 점입니다. 대신 수학적으로 '리만-로흐 공간'이라고 알려진 공간으로, 이 경우 다항식은 모듈로 원형(x^2 + y^2 - 1 = 0)입니다. 즉, x^2 + y^2 - 1의 배수는 모두 0으로 취급합니다. 이를 이해하는 또 다른 방법은 &y의 거듭제곱만 허용한다는 것입니다: &y^2 항이 나타나면 바로 &1 - x^2로 대체합니다.
이것은 또한 원형 FFT가 출력하는 계수가 일반 FRI에서처럼 단항식이 아니라는 것을 의미합니다(예: 일반 FRI가 [6, 2, 8, 3]을 출력한다면, 이는
을 의미한다는 것을 알 수 있습니다). 반면, 원형 FFT의 계수는 {1, y, x, xy, 2x^2 - 1, 2x^2y - y, 2x^3 - x, 2x^3y - xy, 8x^4 - 8x^2 + 1...}와 같이 원형 FFT의 기초에 따라 달라집니다.
좋은 소식은 개발자는 이를 완전히 무시할 수 있다는 것입니다.STARKs에서는 계수를 알 필요가 없습니다. 대신 다항식을 특정 도메인에 대해 평가된 값의 집합으로 저장하기만 하면 됩니다. FFT를 사용해야 하는 유일한 경우는 (리만-로흐 공간과 유사한) 저차 확장의 경우로, N개의 값이 주어지면 모두 동일한 다항식에 대해 k*N 값을 생성하는 것입니다. 이 경우 FFT를 사용하여 계수를 생성하고, 해당 계수에 (k-1) n개의 0을 더한 다음 역 FFT를 사용하여 더 큰 평가 값 집합을 얻을 수 있습니다.
원 FFT만이 특별한 FFT 유형은 아닙니다. 타원 곡선 FFT는 모든 유한 필드(소수 필드, 이진 필드 등)에서 작동하기 때문에 더 강력합니다. 그러나 ECFFT는 더 복잡하고 효율성이 떨어지므로
에서 원형 FFT를 사용할 수 있으므로 이를 사용하기로 했습니다.
이제부터는 일반 스타크와 다르게 구현된 서클 스타크를 구현하는 데 있어 좀 더 잘 알려지지 않은 세부 사항에 대해 알아보겠습니다.
쿼티엔팅
스타크 프로토콜의 일반적인 연산 중 하나는 의도적으로 또는 무작위로 선택할 수 있는 특정 포인트 집합에 대해 쿼티엔팅 연산을 수행하는 것입니다. 예를 들어 P(x) = y임을 증명하려면 다음 단계를 수행하면 됩니다.
몫 계산: 다항식 P(x)와 상수 y가 주어지면 몫 Q = {P - y}/{X - x}를 계산하고, 여기서 X는 선택된 점입니다.
다항식 증명하기: Q가 분수 값이 아닌 다항식임을 증명합니다. 이렇게 하면 P(x)=y가 유지됨을 알 수 있습니다.
또한, DEEP-FRI 프로토콜에서는 머클 분기 수를 줄이기 위해 평가 지점이 무작위로 선택되어 FRI 프로토콜의 보안과 효율성이 향상됩니다.
원 그룹에 대한 STARK 프로토콜을 다룰 때는 단일 지점을 통과할 수 있는 선형 함수가 없기 때문에 기존의 몫 방식 대신 다른 기법이 필요합니다. 이를 위해서는 종종 원 그룹의 특정 기하학적 속성을 사용하여 새로운 알고리즘을 설계해야 합니다.
원 그룹에서 접선 함수를 구성하여 그 점(P_x, P_y)에서 절단되도록 할 수 있지만, 그 함수는 그 점을 통해 2의 관련성을 가지므로, 즉 다항식이 그 선형 함수의 배수이기 위해서는 그 점에서 0이 되는 것보다 더 엄격한 조건을 만족해야만 합니다. 따라서 한 지점에서만 평가 결과를 증명할 수는 없습니다. 그렇다면 이 문제를 어떻게 해결할 수 있을까요?
두 지점에서 평가하여 더미 지점을 추가함으로써 문제를 해결하고 이를 증명해야 합니다.
선 함수: ax + by + c . 이를 방정식으로 바꾸어 0이 되도록 강제하면 고등학교 수학에서 표준 형식이라고 하는 선으로 인식할 수 있습니다.
x_1에서 y_1, x_2에서 y_2와 같은 다항식 P가 있다면 x_1에서 y_1, x_2에서 y_2와 같은 보간 함수 L을 선택할 수 있습니다. 이는 간단히 L = \frac {y_2 - y_1 }{x_2 - x_1} \cdot (x - x_1) + y_1.
그런 다음 P가 x_1에서 y_1, x_2에서 y_2와 같음을 L을 빼서(두 점에서 P - L이 0이 되도록) 증명한 다음 L(즉, x_2 - x_1 사이의 선형 함수)로 나누어 증명합니다. 몫 Q가 다항식임을 증명하기 위해 L로 나눕니다.
소실 다항식
스타크에서 증명하려는 다항식은 일반적으로 C(P (x), P ({next}(x)) = Z와 같이 보입니다. (x) ⋅ H (x)로, 여기서 Z (x)는 원래 평가 영역 전체에서 0과 같은 다항식입니다. 일반 STARK에서 이 함수는
Z_1 (x,y) = y
Z_2 (x,y) = x
Z_{n+1}(x,y) = (2 * Z_n (x,y)^2) - 1
소실 다항식을 붕괴 함수에서 도출할 수 있습니다. 일반 STARK에서는 x → x^2를 재사용하고, 순환 STARK에서는 다음과 같이 사용합니다. 원형 STARK에서는 'x → 2x^2 - 1'을 반복합니다. 그러나 첫 번째 라운드의 경우 첫 번째 라운드가 특별하기 때문에 다르게 처리합니다.
역 비트 순서
스타크에서 다항식은 일반적으로 "자연스러운" 순서로 평가되지 않습니다. (예: P (1),P (ω),P (ω2),...,P (ωn-1)이 아니라 역 비트 순서라고 부르는 순서로 평가됩니다.
P (\. omega^{\frac {3n}{8}})
n=16으로 설정하고 평가하는 ω의 어느 거듭제곱에만 집중하면 목록은 다음과 같이 표시됩니다.
< em>{0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15}
이 정렬에는 FRI 평가 프로세스 초기에 함께 그룹화된 값이 정렬에서 서로 옆에 위치한다는 핵심 속성이 있습니다. 예를 들어, FRI의 첫 번째 단계에서는 x와 -x를 함께 그룹화합니다. n = 16인 경우, ω^8 = -1이며, 이는 P (ω^i) )와 (P (-ω^i) = P (ω^{i+8})\)를 의미합니다. 우리가 보았듯이, 이들은 정확히 서로 바로 옆에 있는 쌍입니다.FRI 그룹 P (ω^i), P (ω^{i+4}), P (ω^{i+8}) 및 P (ω^{i+12})의 두 번째 단계입니다. 이것이 바로 우리가 네 개의 그룹에서 보는 것과 정확히 일치합니다. 이렇게 하면 함께 접힌 값에 대해 머클 증명을 제공할 수 있으므로(또는 한 번에 2^k 라운드씩 접는 경우, 모든 2^k 값에 대해) FRI를 훨씬 더 공간 효율적으로 만들 수 있습니다.
원형 STARK에서는 접는 구조가 약간 다릅니다. 첫 번째 단계에서는 (x, y)를 (x, -y)와 쌍을 이루고, 두 번째 단계에서는 x를 -x와 쌍을 이루고, 이후 단계에서는 &p를 q와 쌍을 이루고, &p를 q와 쌍을 이루고, &p를 q -x와 쌍을 이루고, &p를 q -x와 쌍을 이루는 식이죠. 쌍을 이룰 때,
와 를 선택하여 Q^i(p) = -Q^i(q)가 되도록 하는데, 여기서
는
이 접힌 구조를 반영하도록 역방향 비트 순서를 조정하려면 마지막 비트를 제외한 모든 비트를 반전시켜야 합니다. 마지막 비트를 유지하여 다른 비트의 반전 여부를 결정하는 데 사용합니다.
사이즈 16의 접힌 역 비트 순서는 다음과 같습니다:
{0, 15, 8, 7, 4, 11, 12, 3, 2, 13, 10, 5, 6, 9, 14, 1}
이전 섹션의 원을 보면 0, 15, 8, 7(오른쪽에서 시계 반대 방향)이 (x, y), (x, -y), (-x, -y), (-x, y) 형태라는 것을 알 수 있습니다.
효율
서클 스타크(그리고 일반적으로 31비트 프라임 스타크)에서 이러한 프로토콜은 매우 효율적입니다. 서클 스탁에서 증명되는 연산에는 일반적으로 다음과 같은 여러 유형의 연산이 포함됩니다.
1. 기본 산술: 계산과 같은 비즈니스 로직에 사용됩니다.
2. 네이티브 산술: 암호화에 사용되는 해시 함수, 예를 들어 '포세이돈'과 같은 해시 함수.
3. 조회 인수: 테이블에서 값을 읽어 다양한 계산을 수행하는 범용적이고 효율적인 방법입니다.
효율성의 핵심 척도는 전체 공간을 유용한 작업에 완전히 활용하고 있는지, 아니면 계산 추적에 많은 여유 공간을 남겨두고 있는지 여부입니다. 비즈니스 로직과 조회 테이블은 종종 작은 숫자(여기서 N은 계산의 총 단계 수이므로 실제로는 2^{25} 미만)를 계산하는 경우가 많지만 2^{256} 비트 크기의 필드 사용 비용을 지불해야 하기 때문에 필드가 큰 SNARK에서는 여유 공간이 많이 남는 경우가 많습니다. 이 경우 필드 크기는 2^{31}이므로 낭비되는 공간은 크지 않습니다. SNARK용으로 설계된 낮은 산술 복잡도 해시(예: 포세이돈)는 모든 필드에서 추적에 있는 모든 숫자의 모든 비트를 최대한 활용합니다.
Binius는 크기가 다른 필드를 혼합하여 보다 효율적인 비트 패킹을 할 수 있고, 조회 테이블 오버헤드를 추가하지 않고 32비트 추가를 수행할 수 있는 옵션도 제공하므로 Circle STARK보다 더 나은 솔루션입니다. 그러나 이러한 장점은 (제 생각에는) 개념적으로 더 복잡해지는 대가를 치르는 반면, 서클 스타크(및 BabyBear 기반의 일반 스타크)는 개념적으로 훨씬 더 간단합니다.
결론: 서클 스타크에 대한 제 생각
서클 스타크는 개발자에게는 스타크보다 더 복잡하지 않습니다. 위에서 언급한 세 가지 이슈가 구현 과정에서 일반 FRI와 차별화되는 핵심 요소입니다. 서클 FRI가 작동하는 다항식의 수학은 매우 복잡하고 수학을 이해하고 이해하는 데 시간이 걸리지만, 이러한 복잡성은 실제로는 덜 분명하게 숨겨져 있어 개발자가 직접 느끼지 못합니다.
서클 FRI와 서클 FFT를 이해하는 것은 다른 특수 FFT, 특히 Binius와 그 이전에는 LibSTARK에서 사용한 것과 같은 이진 도메인 FFT를 이해하는 방법이 될 수도 있습니다. Binius와 그 이전 버전인 LibSTARK에서 사용하는 것과 같은 FFT, 그리고 소수 대 다수의 매핑을 사용하고 타원 곡선 점 연산에 잘 작동하는 타원 곡선 FFT와 같은 더 복잡한 구조의 FFT가 있습니다.
Mersenne31, BabyBear, Binius와 같은 이진 도메인 기술을 결합하면 STARKs 기본 계층의 효율성 한계에 가까워지고 있다고 생각합니다. 이 시점에서 STARK 최적화의 방향은 다음과 같은 것에 초점을 맞출 것으로 예상합니다.
해시 함수, 서명 등의 연산 효율성 극대화: 해시 함수, 디지털 서명 등의 기본 암호화 프리미티브를 가장 효율적인 형태로 최적화하여 STARK 증명에 사용할 때 가능한 최상의 성능을 달성할 수 있습니다. 즉, 이러한 기본 요소를 구체적으로 최적화하여 계산을 줄이고 효율성을 높이는 것입니다.
병렬화를 위한 재귀적 구조: 재귀적 구조는 STARK 증명 프로세스를 여러 계층에 재귀적으로 적용하여 병렬 처리 능력을 높이는 것을 의미합니다. 이러한 방식으로 계산 리소스를 더 효율적으로 사용할 수 있고 증명 프로세스를 가속화할 수 있습니다.
가상 머신을 산술화하여 개발자 환경 개선: 가상 머신을 산술화하면 개발자가 보다 효율적이고 간편하게 계산 작업을 생성하고 실행할 수 있습니다. 여기에는 스마트 컨트랙트 또는 기타 연산 작업을 구축하고 테스트할 때 개발자 경험을 개선하고, STARK 증명에 사용하기 위해 VM을 최적화하는 것이 포함됩니다.
판사는 SBF의 선고 연기 요청을 거부하고 준비 시간을 더 달라는 변호인의 호소에도 불구하고 그의 법적 절차 일정을 유지했습니다.
영국 대법원은 획기적인 판결을 통해 인간만이 발명가로 인정받을 수 있다는 법적 입장을 강화하며 AI의 발명가 지위를 부정했습니다.
이제 사용자는 지갑을 사용하여 모바일 앱과 브라우저 플러그인에서 ZKFair 계정을 원활하게 생성하고 가져올 수 있으며, 주요 네트워크 자산 관리, 전송, 생태계 내 디앱과의 상호작용이 용이해집니다.
블리핑컴퓨터가 발견한 결함을 통해 사기꾼은 URL을 조작하여 합법적인 계정에서 게시한 것처럼 트윗을 표시하는 동시에 사용자를 사기성 콘텐츠로 리디렉션할 수 있습니다. 계정 이름을 확인하지 않고 상태 ID를 사용하여 게시물을 검색하는 X의 메커니즘은 사기꾼이 유명 계정 이름도 쉽게 수정할 수 있게 해줍니다.
.shib 도메인 출시와 함께 시바견의 토큰 소각률이 급상승하여 향후 가격 상승 가능성을 암시합니다.
솔라나의 시가총액은 50억 달러로 XRP를 넘어서며 상위 4개 알트코인에 진입했습니다.
파산 절차를 밟고 있는 싱가포르의 쓰리 애로우즈 캐피털은 창업자 수 주와 카일 데이비스가 영국령 버진 아일랜드 법원의 10억 달러가 넘는 자산 동결 결정으로 큰 난관에 직면했습니다.
머스크는 2024년 중반까지 암호화폐에 초점을 맞춘 X의 결제 서비스를 출시할 계획입니다.
명시적으로 태그를 지정하고 식별하지 않는 한, 거래소가 소유하고 있거나 소유할 가능성이 있는 지갑을 추적하는 것은 불가능했습니다. 그 결과, 보유 증명(PoR)이라는 개념이 등장했습니다.
엘살바도르가 선두를 유지한 가운데 브라질이 나이지리아를 제치고 비트코인에 대한 관심도가 가장 높았으며, 이는 이들 국가 전반에서 암호화폐 선호도와 규제 역학 관계의 변화 추세를 보여줍니다.