Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Confidential Voting DApp (Zama FHEVM)

Minimal contoh proyek FHE untuk encrypted on-chain voting menggunakan Zama fhEVM.

Fitur

  • Suara dikirim dalam bentuk terenkripsi (euint8) dan dihitung tanpa dekripsi.
  • Tally (perolehan suara) disimpan sebagai euint64 terenkripsi.
  • allowResults(addr) memberi izin dekripsi hasil kepada alamat tertentu (off-chain via coprocessor).
  • Contoh test Foundry dengan helper createEncryptedInput.

Catatan: Paket & tool @fhevm harus tersedia (lihat bagian Setup). Kontrak ini mengimpor @fhevm/solidity/lib/FHE.sol (API baru).

Setup Cepat

  1. Install Foundry
curl -L https://foundry.paradigm.xyz | bash
foundryup
  1. Init NPM dan install dependensi fhEVM Solidity
npm init -y
npm install @fhevm/solidity
  1. Konfigurasi remappings (opsional jika diperlukan) Tambahkan di foundry.toml:
remappings = ["@fhevm/solidity/=node_modules/@fhevm/solidity/"]
  1. Compile & Test
forge build
forge test -vv
  1. Deploy (contoh) Edit script/Deploy.s.sol untuk chain yang kamu pakai, lalu:
forge script script/Deploy.s.sol --rpc-url <RPC_URL> --private-key <PK> --broadcast

Alur Vote (2 kandidat: 0 atau 1)

  • Pengguna mengirim encChoice (terenkripsi) ke vote(encChoice).
  • Kontrak menggunakan operasi FHE (eq, not, cmux, add) untuk menambah tally kandidat terkait.
  • Siapa pun tidak bisa melihat isi suara; hanya alamat yang di-allow yang dapat mendekripsi hasil melalui coprocessor.

Disclaimer

Ini contoh minimal untuk edukasi/testnet. Sesuaikan dengan versi SDK fhEVM yang kamu pakai.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages