a16z: Penjelasan detail tentang prinsip kerja proyek pemungutan suara Cicada di rantai ZK

Sumber:《Building Cicada: Private on-chain voting menggunakan time-lock puzzles》oleh Michael Zhu,a16z

Kompilasi: Kxp, BlockBeats

Semua sistem pemungutan suara harus mengandalkan integritas dan transparansi agar efektif. Di permukaan, blockchain tampaknya menjadi platform yang ideal untuk membangun sistem ini. Faktanya, pemungutan suara tanpa izin telah diadopsi oleh banyak organisasi terdesentralisasi untuk mengekspresikan keinginan kolektif, seringkali dalam konteks menjalankan kekuatan finansial yang signifikan atau menyesuaikan parameter protokol utama. Namun, pemungutan suara on-chain memiliki beberapa kelemahan, dan masalah privasi belum sepenuhnya dieksplorasi untuk sistem pemungutan suara Web3, yang membawa dampak negatif. Di sebagian besar protokol pemungutan suara on-chain yang digunakan saat ini, surat suara dan hasil pemungutan suara sepenuhnya terbuka untuk umum. Kurangnya perlindungan privasi berarti bahwa hasil pemungutan suara rentan terhadap manipulasi, sementara juga mengarah pada insentif yang tidak konsisten bagi pemilih, yang berpotensi mengarah pada hasil yang tidak demokratis.

Untuk itu, kami meluncurkan Cicada: pustaka Soliditas sumber terbuka baru yang memanfaatkan teka-teki timelock dan bukti tanpa pengetahuan untuk pemungutan suara pribadi on-chain. Dibandingkan dengan sistem yang ada, Cicada memiliki properti privasi yang unik, meminimalkan ketergantungan pada kepercayaan, dan juga sangat efisien di mainnet Ethereum.

Dalam makalah ini, kami mensurvei keadaan privasi pemungutan suara saat ini dan memberikan pengantar tingkat tinggi tentang cara kerja Cicada (bukti formal akan menyusul). Kami juga mendorong pengembang untuk membuka repositori GitHub untuk detailnya - Cicada dapat disesuaikan dan diperluas secara fleksibel untuk skema dan fitur pemungutan suara yang berbeda. Kami berharap dapat bekerja sama dengan komunitas untuk mengeksplorasi kemungkinan ini bersama.

Ikhtisar Privasi Pemberian Suara

Dalam sistem pemungutan suara apa pun (on-chain atau lainnya), kami perlu mempertimbangkan berbagai tingkat privasi. Pengungkapan surat suara individu, penghitungan suara yang sedang berlangsung, dan identitas pemilih semuanya memengaruhi pemilih dengan cara yang berbeda. Sifat privasi yang diinginkan bervariasi dari satu suara ke suara lainnya, tetapi berikut adalah beberapa yang sering dibahas dalam literatur kriptografi dan ilmu sosial:

**·**Privasi Surat Suara: Pemungutan suara rahasia, juga dikenal sebagai "surat suara Australia", adalah cara untuk melindungi privasi pemilih individu dalam sistem pemungutan suara dunia nyata dan mengurangi penyuapan dan paksaan (pada rantai Di lingkungan di atas, kami mungkin memerlukan mekanisme yang lebih kuat daripada pemungutan suara rahasia, lihat "tidak ada tanda terima" di bawah untuk detailnya). Privasi suara juga dapat mengurangi bias keinginan sosial—orang cenderung memilih berdasarkan pendapat orang lain tentang pilihan mereka.

**·**Privasi Penghitungan Suara: Banyak sistem pemungutan suara menyembunyikan penghitungan suara yang sedang berlangsung, yaitu jumlah suara yang diterima setiap opsi, selama pemungutan suara pemilih untuk menghindari dampak pada kehadiran dan insentif pemilih. Kami telah melihat ini terjadi di dunia nyata: misalnya, senator A.S. yang memberikan suara belakangan lebih cenderung sejalan dengan partainya daripada senator yang memilih lebih awal. Dalam pemungutan suara berbobot Token pada rantai, paus raksasa dapat mempertahankan rasa aman palsu mereka dengan menjaga lawan mereka di depan (beberapa orang mungkin terlalu malas untuk memilih karena mereka pikir orang-orang ini akan tetap menang), dan kemudian memilih diri mereka sendiri di saat-saat terakhir.suara untuk menentukan hasilnya.

· Anonimitas Pemilih: Dalam banyak sistem pemungutan suara dunia nyata, suara Anda dirahasiakan, tetapi apakah Anda memilih atau tidak sering diketahui orang lain. Ini dapat berfungsi sebagai perlindungan terhadap penipuan pemilih, karena menerbitkan catatan tentang siapa yang memilih akan memungkinkan orang untuk memeriksa apakah seseorang memilih atas nama mereka. Namun, secara on-chain, kami dapat menggunakan kriptografi primitif untuk mencegah penipuan pemilih sembari mempertahankan anonimitas — misalnya, menggunakan Semaphore, Anda dapat membuktikan dengan cara tanpa pengetahuan bahwa Anda adalah pemilih yang memenuhi syarat dan belum memberikan suara.

· Tidak Dapat Diterima: Pemilih tidak boleh memberikan "tanda terima" surat suara kepada pihak ketiga untuk membuktikan bagaimana suara mereka diberikan untuk seseorang, yang dapat mengakibatkan penjualan surat suara. Paksaan-perlawanan adalah properti lain yang terkait erat, mencegah seseorang dipaksa untuk memilih dengan cara tertentu. Properti ini sangat menarik di lingkungan yang terdesentralisasi, di mana kekuatan voting dapat menjadi likuid melalui pasar smart contract. Sayangnya, sifat ini sangat sulit dicapai. Memang, Juels dkk menunjukkan bahwa properti ini tidak mungkin dicapai dalam pengaturan tanpa izin tanpa perangkat keras tepercaya.

Cicada berfokus pada privasi penghitungan suara berkelanjutan, namun (seperti yang akan kita bahas nanti), ini dapat digunakan bersama dengan bukti keanggotaan kelompok tanpa pengetahuan untuk anonimitas pemilih dan privasi surat suara.

Cicada: Privasi Penghitungan Suara Menggunakan Homomorphic Timelock Puzzles

Untuk mencapai privasi penghitungan suara berkelanjutan, Cicada meminjam kriptografi primitif yang belum pernah (setahu kami) digunakan secara on-chain.

Pertama, teka-teki kunci-waktu (Rivest, Shamir, Wagner, 1996) adalah teka-teki kriptografi yang rahasianya hanya dapat diungkapkan setelah periode waktu yang telah ditentukan berlalu — lebih khusus lagi, hanya dengan berulang kali mengeksekusi perhitungan tertentu yang tidak dapat diparalelkan. digunakan untuk memecahkan teka-teki. Teka-teki timelock berguna dalam konteks pemungutan suara untuk privasi penghitungan suara yang sedang berlangsung: pengguna dapat mengirimkan suara mereka sebagai teka-teki timelock, sehingga suara mereka akan tetap pribadi selama proses pemungutan suara, tetapi dapat diakses setelah pemungutan suara diungkapkan. Tidak seperti kebanyakan struktur pemungutan suara swasta lainnya, ini memungkinkan privasi penghitungan suara tercapai tanpa bergantung pada lembaga statistik (seperti petugas pemilu yang menghitung kertas atau surat suara digital), enkripsi ambang batas (beberapa pihak tepercaya harus bekerja sama untuk mendekripsi pesan) atau pihak tepercaya lainnya : siapa pun dapat memecahkan teka-teki timelock untuk memastikan hasilnya terungkap setelah pemungutan suara.

Kedua, teka-teki timelock homomorfik (Malavolta Thyagarajan, 2019) memiliki properti tambahan bahwa beberapa perhitungan dapat dilakukan pada nilai terenkripsi dengan pengetahuan tentang kunci rahasia, dekripsi teka-teki, atau penggunaan pintu belakang. Secara khusus, teka-teki timelock homomorfik linier memungkinkan kita menggabungkan teka-teki bersama untuk menghasilkan teka-teki baru yang berisi jumlah nilai rahasia dari teka-teki asli.

Seperti yang ditunjukkan oleh penulis makalah, teka-teki timelock homomorfik linier sangat cocok untuk pemungutan suara pribadi: suara dapat dikodekan sebagai teka-teki, dan mereka dapat digabungkan secara homomorfik untuk mendapatkan teka-teki yang mengkodekan statistik akhir. Ini berarti bahwa hanya diperlukan satu perhitungan untuk mengungkapkan penghitungan akhir, daripada memecahkan teka-teki unik untuk setiap suara.

Sistem Baru: Efisiensi dan Pengorbanan

Untuk skema pemungutan suara yang dapat diterapkan secara on-chain secara praktis, ada beberapa faktor yang perlu dipertimbangkan. Pertama, penyerang dapat mencoba memanipulasi hasil pemungutan suara dengan mengirimkan surat suara yang dikodekan secara tidak benar. Misalnya, kita mungkin mengharapkan teka-teki timelock setiap surat suara untuk menyandikan nilai boolean: "1" untuk resolusi yang dipilih, dan "0" untuk melawan. Seorang pendukung yang bersemangat mungkin mencoba menggunakan kode seperti "100" untuk meningkatkan kekuatan voting efektif mereka.

Kami dapat mencegah serangan ini dengan meminta pemilih untuk menyerahkan bukti tanpa pengetahuan selain menyerahkan surat suara itu sendiri. Namun, bukti tanpa pengetahuan bisa mahal secara komputasi - untuk menjaga biaya partisipasi pemilih serendah mungkin, bukti harus (1) dihitung secara efisien di sisi klien dan (2) diverifikasi secara on-chain secara efisien.

Untuk membuat pembuktian seefisien mungkin, kami menggunakan protokol sigma khusus. Ini adalah bukti tanpa pengetahuan yang dirancang untuk hubungan aljabar tertentu, bukan sistem pembuktian umum. Ini sangat mempercepat waktu pembuktian: pada laptop off-the-shelf, dibutuhkan hanya 14 milidetik untuk menghasilkan bukti validitas surat suara dengan Python.

Meskipun proses verifikasi protokol sigma ini secara konseptual sederhana, sebenarnya membutuhkan beberapa operasi eksponensial modulo besar. Skema homomorfik linier Malavolta dan Thyagarajan menggunakan enkripsi Paillier, sehingga operasi eksponensial ini akan dilakukan modulo beberapa modulus RSA N^2. Untuk N yang cukup besar, operasi eksponensial ini dilarang di sebagian besar rantai EVM (membutuhkan jutaan gas). Untuk mengurangi biaya ini, Cicada menggunakan eksponen ElGamal sebagai gantinya, yang masih memberikan homomorfisme aditif, tetapi beroperasi pada modulus yang lebih kecil (N alih-alih N^2).

Salah satu kelemahan menggunakan ElGamal adalah memerlukan logaritma diskrit lengkap untuk mendekripsi statistik (perhatikan bahwa ini dilakukan secara off-chain dan diverifikasi secara efisien secara on-chain). Oleh karena itu, seharusnya hanya digunakan jika penghitungan akhir yang diharapkan relatif kecil (misalnya, kurang dari 2^32, sekitar 4,3 juta suara). Dalam skema berbasis Paillier asli, itu dapat didekripsi secara efisien terlepas dari ukuran statistiknya.

Memilih modulus N RSA juga melibatkan pertukaran. Metode kami menggunakan modulus 1024 bit untuk meningkatkan efisiensi gas. Meskipun ini jauh di atas modulus RSA maksimum untuk faktorisasi (yaitu 829 bit), ini di bawah ukuran 2048-bit yang umumnya direkomendasikan untuk enkripsi atau penandatanganan RSA. Namun, dalam aplikasi kami, kami tidak memerlukan keamanan jangka panjang: setelah pemilihan selesai, tidak ada risiko jika N di masa mendatang difaktorkan. Setelah timelock berakhir, masuk akal untuk menggunakan modulus yang relatif kecil, dengan asumsi bahwa statistik dan suara akan dipublikasikan. (Ini juga dapat dengan mudah diperbarui di masa mendatang jika algoritme faktorisasi meningkat.)

Anonimitas dan Kelayakan Pemilih

Seperti disebutkan di atas, Cicada memberikan privasi penghitungan suara berkelanjutan - teka-teki timelock menjaga kerahasiaan penghitungan suara selama pemungutan suara. Namun, setiap surat suara juga merupakan teka-teki timelock, dienkripsi dengan parameter publik yang sama. Ini berarti bahwa sama seperti statistik dapat didekripsi (dengan melakukan perhitungan yang diperlukan), demikian juga setiap suara.

Dengan kata lain, Cicada hanya menjamin kerahasiaan surat suara pada saat pencoblosan. Jika seorang pengamat yang penasaran ingin menguraikan surat suara pemilih tertentu, mereka juga dapat melakukannya setelah pemungutan suara ditutup. Biaya mendekripsi satu surat suara sama dengan biaya mendekripsi penghitungan akhir, jadi mendekripsi penuh surat suara n pemilih membutuhkan O(n) pekerjaan. Namun, semua suara ini dapat didekripsi secara paralel (dengan asumsi ada cukup komputer) dalam proses yang memakan waktu yang sama dengan mendekripsi penghitungan akhir.

Untuk beberapa jajak pendapat, ini mungkin tidak ideal. Meskipun kami senang dengan privasi penghitungan suara sementara, kami mungkin ingin memiliki privasi suara permanen. Untuk mencapai ini, kami dapat menggabungkan Cicada dengan protokol kelayakan pemilih anonim melalui bukti tanpa pengetahuan tentang keanggotaan grup. Dengan begitu, meskipun surat suara dideklasifikasi, itu hanya akan mengungkapkan bagaimana seseorang memilih, yang sudah terungkap dalam penghitungan.

Di repositori kami, kami memberikan contoh kontrak yang menggunakan Semaphore untuk anonimitas pemilih. Perhatikan bahwa kontrak Cicada sendiri tidak membuat asumsi tentang penentuan atau penegakan kelayakan pemilih. Secara khusus, Anda dapat mengganti Semaphore dengan Semacaulk atau ZK Proof of State.

Lembaga penghitungan suara

Salah satu tujuan pertama kami saat merancang Cicada adalah untuk menghindari ketergantungan pada lembaga penghitungan suara: banyak suara pribadi memerlukan lembaga penghitungan semi tepercaya (atau komite yang bekerja sama melalui penghitungan multi-partai yang aman) yang menerima dan mengumpulkan suara. Dalam konteks blockchain, ini berarti bahwa skema ini tidak dapat dilakukan hanya melalui kontrak pintar, tetapi memerlukan intervensi dan kepercayaan manusia.

Di sebagian besar rezim, lembaga statistik dipercaya dalam hal integritas (mereka tidak dapat memanipulasi penghitungan suara), tetapi mereka juga harus tetap aktif - jika offline, hasil akhir tidak dapat dihitung dan hasil pemungutan suara terhenti tanpa batas waktu. Dalam beberapa sistem, lembaga statistik juga dipercaya untuk menjaga privasi. Artinya, mereka mengetahui suara masing-masing pemilih, tetapi mempublikasikan hasilnya tanpa mengungkapkan informasi tersebut.

Meskipun lembaga statistik masuk akal (dan perlu) dalam banyak skenario dunia nyata, mereka tidak ideal dalam konteks blockchain, di mana tujuan kami adalah meminimalkan kepercayaan dan memastikan penolakan sensor.

Kesimpulan

Cicada menjelajahi banyak arah di bidang privasi pemungutan suara on-chain dan melengkapi penelitian yang sedang berlangsung oleh kelompok lain. Seperti disebutkan di atas, Cicada melengkapi teknologi keanggotaan grup anonim seperti Semaphore, ZK proof-of-storage, dan rate-limiting nullifiers. Cicada juga bisa digabungkan dengan pemeriksa bukti optimis yang diusulkan oleh tim Nouns Vortex untuk mengurangi beban gas para pemilih.

Selain itu, kami memiliki kesempatan untuk menyetel Cicada untuk mendukung skema pemungutan suara yang berbeda (misalnya pemungutan suara berbobot, pemungutan suara kuadratik), sementara skema yang lebih kompleks mungkin mahal secara komputasi untuk mainnet Ethereum, skema tersebut mungkin layak dilakukan pada jaringan Lapisan 2. Dengan mengingat hal ini, kami menyambut setiap saran untuk arah masa depan Cicada.

Lihat Asli
Konten ini hanya untuk referensi, bukan ajakan atau tawaran. Tidak ada nasihat investasi, pajak, atau hukum yang diberikan. Lihat Penafian untuk pengungkapan risiko lebih lanjut.
  • Hadiah
  • Komentar
  • Bagikan
Komentar
0/400
Tidak ada komentar
  • Sematkan
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate.io
Komunitas
Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • ไทย
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)