Pelajari Cara Aztec Menggabungkan Eksekusi Pribadi dan Publik di L2

Konten Pembelajaranicon

Pelajari dengan Aztec (AZTEC): Kontrak Pintar Berbasis Privasi di Ethereum L2

Pengantar: Aztec adalah Layer 2 yang berfokus pada privasi yang memungkinkan pengembang membangun kontrak pintar dengan status pribadi & publik serta eksekusi pribadi & publik, memungkinkan aplikasi "privasi selektif" yang terasa seperti DeFi biasa—tanpa mengekspos semuanya di blockchain.

Apa Itu Aztec?

Aztec adalah jaringan Layer 2 yang berfokus pada privasi-berbasis-desain sambil tetap mendukung komposabilitas publik saat diperlukan.
Gagasan utamanya sederhana:
  • Eksekusi pribadi & keadaan pribadi untuk tindakan pengguna sensitif (saldo, identitas, niat, strategi).
  • Eksekusi publik & status publik untuk hal-hal yang harus terlihat secara global (likuiditas publik, logika kontrak publik, status bersama).
Jadi, alih-alih memilih "semua publik" atau "semua pribadi," Aztec mendukung aplikasi hibrida.

Cara Kerja Transaksi di Aztec

Aztec membagi eksekusi menjadi dua lingkungan terpisah:
  1. Lingkungan Eksekusi Pribadi (PXE) — berjalan di sisi pengguna

Fungsi privat dieksekusi di sisi klien di dalam PXE (dibaca “pixie”) untuk memaksimalkan privasi.
PXE:
  • mengeksekusi fungsi pribadi secara lokal
  • memegang kunci + catatan
  • menghasilkan zero-knowledge proof untuk operasi pribadi
  • termasuk dalam aztec.js (TypeScript), dapat dijalankan di Node atau browser
  1. VM Publik (AVM) — berjalan pada node Aztec

Fungsi publik dieksekusi di jaringan dalam Aztec Virtual Machine (AVM), secara konseptual mirip dengan EVM (jadi "intuisi efisiensi gas" lebih berlaku seperti Solidity).

Aturan eksekusi arah (penting)

Sebuah transaksi mengalir dari pribadi → publik:
  • Fungsi pribadi dapat menambahkan fungsi publik ke antrian untuk dijalankan nanti.
  • Fungsi publik tidak dapat memanggil fungsi privat.
Pemisahan tersebut disengaja: jaringan publik tidak boleh dapat "menjangkau" eksekusi pribadi.

Keadaan Pribadi vs Publik: Catatan, Nullifier, dan Pohon

Aztec menggunakan model state yang berbeda tergantung pada privasi:

Status pribadi = "catatan" bergaya UTXO

Status pribadi disimpan sebagai catatan (potongan data mirip UTXO). Untuk menjaga kerahasiaan:
  • Catatan ditambahkan ke pohon UTXO yang hanya dapat ditambahkan
  • Ketika sebuah catatan "dibelanjakan/dihapus," sebuah nullifier dibuat
  • Nullifier disimpan dalam pohon nullifier terpisah
Ini memungkinkan jaringan untuk menegakkan “sudah dibelanjakan sekali” tanpa mengungkapkan konten pribadi dari catatan.

Status publik = penyimpanan publik seperti akun

Status publik berperilaku lebih seperti Ethereum:
  • disimpan dalam pohon data publik
  • diperbarui secara langsung dan terlihat di blockchain
Poin penting pengembang:
  • Pekerjaan state pribadi = komitmen + nullifier (buktikan kebenaran tanpa mengungkapkan data)
  • Pekerjaan status publik = pembaruan langsung (perilaku penyimpanan blockchain normal)

Abstraksi Akun: Setiap Akun Adalah Kontrak Pintar

Aztec memiliki abstraksi akun asli di tingkat protokol:
  • Tidak ada EOA (tidak ada akun “keypair” sederhana)
  • Setiap akun adalah kontrak pintar
  • Pengembang dapat menentukan aturan mereka sendiri untuk:
    • otentikasi (tanda tangan, multisig, passkey, logika khusus)
    • kebijakan otorisasi (batasan, izin, kunci sesi)
    • nonce / perlindungan replay
    • strategi pembayaran biaya (membayar biaya dengan berbagai token, model sponsor, dll.)

Mengapa ini membantu melawan DoS (masalah "validasi mahal")

Model Aztec mendorong validasi kompleks di sisi klien:
  • Klien memvalidasi dan menghasilkan bukti ZK bahwa “validasi berhasil”
  • Sequencer memverifikasi bukti berukuran konstan
  • Jadi kompleksitas validasi tidak membuat biaya verifikasi jaringan melonjak
Ini memungkinkan logika akun "pengguna lanjutan" tanpa membuat rantai menjadi lambat.

Kunci di Akun Aztec (Fokus Privasi)

Setiap akun Aztec didukung oleh 3 pasangan kunci:
  • Pasangan kunci Nullifier: digunakan untuk menghitung nullifier catatan
  • Pasangan kunci melihat yang akan datang: digunakan untuk mengenkripsi catatan untuk penerima
  • Pasangan kunci tampilan keluar: digunakan untuk mengenkripsi catatan untuk pengirim
Karena akun adalah kontrak pintar, akun tidak secara otomatis memiliki pasangan kunci tanda tangan—otentikasi bergantung pada desain kontrak akun.

Saksi Otentikasi: Lebih Aman Daripada “Persetujuan Tak Terbatas”

Aztec menggantikan pola "persetujuan tak terbatas" yang berisiko dengan Authentication Witnesses (AuthWit):
  • daripada memberikan izin tanpa batas selamanya,
  • pengguna memberikan otorisasi untuk tindakan tertentu dengan parameter tertentu
Ini dirancang untuk mengurangi risiko persetujuan yang berkelanjutan sambil tetap memungkinkan UX yang baik (penggabungan, otomatisasi).

Bangun di atas Aztec dengan Noir

Kontrak pintar Aztec ditulis dalam Noir, bahasa yang berfokus pada ZK untuk menulis program/kontrak yang dapat dibuktikan. Satu peringatan penting dari dokumentasi: fungsi pribadi dapat ditulis dengan cara yang tidak dioptimalkan secara merugikan karena pembuktian memiliki intuisi kinerja yang berbeda daripada eksekusi normal—jadi mempelajari “cara menulis Noir yang berkinerja tinggi” sangat penting.