Tachyon 암호를 Zakura Common에 통합
Tachyon의 재귀 증명을 Zcash의 최신 암호 스택인 Zakura Common 핵심부로 편입하는 작업을 시작했습니다. 첫 단계로 Ragu 코드의 성숙한 구성요소를 담은 새 크레이트를 공개합니다.
Project Tachyon이 Valar Group과 함께 만든 Zcash 새 풀노드 Zakura의 암호 스택 Common에 Tachyon의 재귀 증명을 통합하는 작업을 시작했다. Common은 Zakura를 비롯한 여러 프로젝트에서 쓰이며 Ironwood zk-SNARK 증명을 크게 빠르게 만들었다. Tachyon의 재귀 증명은 원래 비용이 더 크고 메모리와 바이너리 크기도 크지만, Ironwood 암호를 상당 부분 재사용하므로 Common의 최적화된 코드베이스로 그 부담을 줄일 수 있다고 한다.
Tachyon과 Ironwood는 모두 Pasta 곡선 순환을 쓰지만 요구 조건이 완전히 같지는 않다. Tachyon은 일부 겹치지만 더 긴 생성자 벡터가 필요하고, 순환의 두 곡선 모두에서 증명해야 하며, Poseidon 파라미터도 조금 다르다. 이런 요구를 Common의 산술 인터페이스에 넣으면 최적화를 공유하고 코드 중복을 피할 수 있다. 형식 검증 측면에서도 공유 코드가 작을수록 검증할 대상이 줄어든다는 설명이다.
첫 결과물로 Rust crate Udon(zakura-udon)을 공개했다. Udon은 Common의 pasta_curves 포크와 Ironwood가 쓰는 Halo 2 증명기 halo2_proofs의 산술 상당 부분을 대체하는 Pasta 곡선·체의 저수준 구현이다. 기존에는 ff/group의 범용 trait 때문에 곡선 전용 최적화가 확장 trait와 우회 함수를 거쳐야 하는 기술 부채가 있었는데, Udon은 이를 해소한다.
Udon은 산술 방식을 정하고 실행 환경과 작업 버퍼는 호출자가 소유한다. no_std이고 스스로 할당하거나 스레드를 만들지 않으며, FftPlan과 MsmPlan으로 전략과 필요한 저장 공간을 미리 정해 재사용할 수 있다. Executor는 fork-join 방식이고 직렬 구현과 Rayon 어댑터가 있다. 작업 수와 메모리 한도는 ExecutionOptions로 지정하고, FFT와 MSM은 증분 실행으로 중간 결과를 먼저 소비할 수 있다.
컴파일 타임 동반 crate인 Bento(zakura-bento)는 준비된 데이터를 바이너리에 내장하고 런타임에 복사 없이 빌려 쓰게 해, Common이 아직 치르던 중복 할당 비용을 없앤다. 또 Udon은 기본값을 뒤집어 모든 체·곡선 산술을 가변 시간으로 두고, 부채널 저항이 필요한 부분만 명시적으로 표시한다. 증명기에서는 상수 시간 산술이 현실적이지 않았다는 이유다.
한국어 요약은 원문을 바탕으로 정리한 것으로, 정확한 내용은 원문을 확인하세요.