Kandungan
200x
Pecutan Maksimum berbanding CPU
90%
Sumbangan NTT kepada Kependaman
32-bit
Penggunaan Saluran Paip Integer
1. Pengenalan
Bukti Tanpa Pengetahuan (ZKPs) mewakili protokol kriptografi revolusioner yang membolehkan satu pihak (Pembuktian) menunjukkan pengetahuan tentang input rahsia tanpa mendedahkan sebarang maklumat tentang rahsia itu sendiri. Keupayaan ini telah membolehkan aplikasi transformasi dalam kriptomata persendirian, pengoutsoran pengiraan yang boleh disahkan, dan penyelesaian penskalaan rantaian blok. Cabaran asas dalam penggunaan ZKP ialah overhead pengiraan yang besar yang diperlukan untuk penjanaan bukti, yang boleh mengambil masa beberapa minit pada CPU moden untuk pengiraan kompleks.
GPU telah muncul sebagai platform pecutan utama untuk ZKP disebabkan sifat data-selari teras pengiraan kernel. Seperti yang ditunjukkan dalam Rajah 1, ZKP dipercepatkan GPU menunjukkan pecutan sehingga 200x berbanding pelaksanaan CPU. Walau bagaimanapun, walaupun terdapat peningkatan yang mengagumkan ini, pencirian sistematik tentang kesesakan prestasi dan batasan kebolehskalaan pada seni bina GPU moden ketara tiada dalam literatur.
2. Latar Belakang dan Kerja Berkaitan
2.1 Asas Bukti Tanpa Pengetahuan
Bukti Tanpa Pengetahuan beroperasi berdasarkan prinsip bahawa Pembuktian boleh meyakinkan Pengesah tentang pengetahuan saksi $w$ untuk fungsi awam $f$ dan input $x$ supaya $f(x,w) = y$, tanpa mendedahkan sebarang maklumat tentang $w$. Protokol Groth16, yang membentuk asas kajian ini, menyediakan bukti ringkas dan masa pengesahan sub-milisaat, menjadikannya amat sesuai untuk aplikasi dunia sebenar.
2.2 Pecutan GPU dalam Kriptografi
Kerja sebelumnya dalam pecutan GPU primitif kriptografi telah menunjukkan peningkatan prestasi yang ketara. Kajian seperti [19,30,31,42] telah menunjukkan bahawa seni bina selari GPU amat sesuai untuk operasi kriptografi, terutamanya yang melibatkan pengiraan matematik berskala besar. Walau bagaimanapun, usaha ini tertumpu terutamanya pada kernel individu dan bukannya prestasi sistem menyeluruh.
3. Metodologi dan Persediaan Eksperimen
3.1 Rangka Kerja ZKProphet
ZKProphet menyediakan rangka kerja analisis komprehensif untuk menilai prestasi ZKP pada GPU. Rangka kerja ini menilai secara sistematik teras pengiraan kernel termasuk Pendaraban Skalar Berganda (MSM) dan Transformasi Teori Nombor (NTT), yang secara kolektif menyumbang lebih 95% daripada beban kerja pengiraan dalam penjanaan ZKP.
3.2 Konfigurasi Penanda Aras
Persediaan eksperimen kami menggunakan seni bina GPU moden daripada generasi Ampere dan Ada Lovelace NVIDIA. Kami menilai prestasi merentasi pelbagai kiraan kekangan, yang mewakili kerumitan pengiraan yang dibuktikan. Penanda aras termasuk kedua-dua beban kerja sintetik dan aplikasi ZKP dunia sebenar daripada domain kriptomata dan rantaian blok.
4. Keputusan Analisis Prestasi
4.1 Pecahan Prestasi Kernel
Analisis kami mendedahkan perubahan kritikal dalam kesesakan prestasi. Walaupun penyelidikan sebelum ini tertumpu berat pada mengoptimumkan operasi MSM, kami mendapati bahawa dengan pelaksanaan MSM dioptimumkan moden, operasi NTT kini menyumbang sehingga 90% kependaman penjanaan bukti. Ini mewakili perubahan paradigma yang ketara yang memerlukan tumpuan baharu pada pengoptimuman NTT.
Rajah 1: Pecutan Pembuktian vs Bilangan Kekangan
Keputusan eksperimen menunjukkan bahawa pelaksanaan GPU menyediakan pecutan yang besar berbanding garis dasar CPU, dengan prestasi menskala secara linear dengan kiraan kekangan sehingga peningkatan 200x untuk set kekangan besar.
4.2 Analisis Kebolehskalaan
Kami memerhatikan bahawa pengiraan ZKP dilaksanakan secara eksklusif pada saluran paip integer 32-bit GPU dan mempamerkan paralelisme peringkat-arahan yang terhadap disebabkan kebergantungan data semula jadi. Ini secara asasnya menghadkan penskalaan prestasi berdasarkan unit pengiraan integer yang tersedia dan bukannya keupayaan titik terapung.
5. Butiran Pelaksanaan Teknikal
5.1 Asas Matematik
Operasi matematik teras dalam ZKP bergantung pada aritmetik medan terhingga atas medan perdana besar. Operasi NTT, yang merupakan bentuk khusus transformasi Fourier dalam medan terhingga, boleh dinyatakan sebagai:
$$X_k = \sum_{j=0}^{n-1} x_j \cdot \omega^{jk} \mod p$$
di mana $\omega$ ialah punca primitif $n$-keesaan modulo $p$, dan $p$ ialah perdana besar. NTT songsang ditakrifkan sama dengan $\omega^{-1}$.
5.2 Pelaksanaan Kod
Pseudokod berikut menunjukkan pelaksanaan NTT dioptimumkan untuk seni bina GPU:
__global__ void ntt_kernel(uint32_t *a, uint32_t *roots, int n) {
int tid = threadIdx.x + blockIdx.x * blockDim.x;
int stride = blockDim.x * gridDim.x;
for (int i = tid; i < n/2; i += stride) {
int j = bit_reverse(i, log2(n));
if (i < j) {
swap(a[i], a[j]);
}
}
__syncthreads();
for (int len = 2; len <= n; len <<= 1) {
int half = len >> 1;
for (int i = tid; i < n; i += stride) {
if ((i & (len - 1)) < half) {
uint32_t u = a[i];
uint32_t v = mul_mod(a[i + half], roots[len + (i & (half - 1))]);
a[i] = add_mod(u, v);
a[i + half] = sub_mod(u, v);
}
}
__syncthreads();
}
}
6. Aplikasi dan Hala Tuju Masa Depan
Pengoptimuman ZKP pada GPU membuka banyak kemungkinan aplikasi. Dalam teknologi rantaian blok, ZKP dioptimumkan boleh membolehkan penyelesaian gulungan yang lebih cekap dan kontrak pintar pemeliharaan privasi. Untuk pembelajaran mesin yang boleh disahkan, seperti yang diterokai dalam kerja seperti [32], ZKP dipercepatkan GPU boleh membolehkan pengesahan praktikal inferens model tanpa mendedahkan parameter model proprietari.
Hala tuju penyelidikan masa depan termasuk meneroka aritmetik ketepatan-campuran untuk menggunakan teras tensor GPU dengan lebih baik, membangunkan pendekatan reka bentuk bersama perkakasan-perisian khusus, dan mencipta rangka kerja pengoptimuman adaptif yang boleh menala parameter ZKP secara automatik berdasarkan keupayaan perkakasan khusus dan keperluan aplikasi.
Analisis Asal
Kajian ZKProphet mewakili kemajuan ketara dalam memahami ciri prestasi Bukti Tanpa Pengetahuan pada seni bina GPU moden. Walaupun penyelidikan sebelumnya, seperti kerja asas mengenai zk-SNARKs oleh Ben-Sasson et al. (2014), mewujudkan asas teori, dan pelaksanaan berikutnya seperti libsnark dan bellman menyediakan rangka kerja praktikal, terdapat jurang ketara dalam analisis prestasi sistematik merentasi keseluruhan saluran paip pengiraan.
Pengenalpastian NTT sebagai kesesakan utama baharu (menyumbang sehingga 90% kependaman) menandakan perubahan kritikal dalam keutamaan pengoptimuman. Penemuan ini selari dengan pemerhatian dalam domain pengiraan intensif lain di mana pengoptimuman awal mensasarkan kesesakan yang paling jelas, hanya untuk mendedahkan kekangan sekunder yang menjadi dominan selepas peningkatan awal. Corak serupa telah diperhatikan dalam pelaksanaan kriptografi untuk sistem rantaian blok, di mana selepas mengoptimumkan operasi lengkung eliptik, corak akses memori menjadi faktor penghad.
Penggunaan eksklusif saluran paip integer 32-bit membentangkan kedua-dua cabaran dan peluang. Tidak seperti beban kerja pembelajaran mesin yang banyak menggunakan teras tensor dan aritmetik FP32/FP16, ZKP tidak boleh mendapat manfaat daripada unit khusus ini dalam seni bina GPU semasa. Ini mencadangkan potensi untuk reka bentuk bersama perkakasan-perisian, serupa dengan pendekatan yang diambil dalam seni bina TPU Google untuk rangkaian neural, tetapi khusus untuk operasi kriptografi. Paralelisme peringkat-arahan terhadap disebabkan kebergantungan data seterusnya menekankan keperluan untuk inovasi algoritma yang boleh mendedahkan lebih banyak paralelisme.
Berbanding dengan usaha pecutan kriptografi lain, seperti untuk penyulitan homomorfik (seperti yang dirujuk dalam [9]) atau rangka kerja pengiraan yang boleh disahkan, tumpuan ZKProphet pada prestasi menyeluruh dan bukannya pengoptimuman kernel individu memberikan pandangan yang lebih praktikal untuk penyebaran dunia sebenar. Rujukan kepada aplikasi pembelajaran mesin yang boleh disahkan dalam [32] mencadangkan aplikasi silang-domain yang menjanjikan di mana ZKP dipercepatkan GPU boleh membolehkan model kepercayaan baharu dalam sistem AI.
Batasan kebolehskalaan prestasi yang dikenal pasti dalam kerja ini mempunyai implikasi yang signifikan untuk penyebaran praktikal ZKP dalam sistem pengeluaran. Apabila kiraan kekangan meningkat dengan pengiraan yang lebih kompleks, hubungan penskalaan linear mencadangkan bahawa seni bina GPU semasa mungkin menghadapi had asas tanpa inovasi seni bina yang khusus mensasarkan beban kerja kriptografi.
7. Rujukan
- Groth, J. (2016). "On the Size of Pairing-Based Non-interactive Arguments." EUROCRYPT 2016.
- Ben-Sasson, E., et al. (2014). "Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture." USENIX Security Symposium.
- Parno, B., et al. (2013). "Pinocchio: Nearly Practical Verifiable Computation." IEEE Symposium on Security and Privacy.
- Setty, S., et al. (2013). "Resolving the conflict between generality and plausibility in verified computation." EuroSys.
- Zhang, J., et al. (2020). "vCNN: Verifiable Convolutional Neural Network based on zk-SNARKs." Cryptology ePrint Archive.
- Wahby, R.S., et al. (2018). "Full accounting for verifiable outsourcing." CCS.
- Kosba, A., et al. (2016). "C∅C∅: A Framework for Building Composable Zero-Knowledge Proofs." USENIX Security.
- Xie, T., et al. (2022). "zkCNN: Zero Knowledge Proofs for Convolutional Neural Network Predictions and Accuracy." CCS.