Pelajari bagaimana Aztec menyatukan pelaksanaan peribadi dan awam di L2

Kandungan Pembelajaranicon

Belajar bersama Aztec (AZTEC): Kontrak Pintar Berfokus Privasi di Ethereum L2

Pengenalan: Aztec adalah Layer 2 yang mengutamakan privasi yang membolehkan pembangun membina kontrak pintar dengan keadaan peribadi dan awam, serta pelaksanaan peribadi dan awam, membolehkan aplikasi "privasi pilihan" yang terasa seperti DeFi biasa—tanpa mendedahkan segala sesuatu di atas rantai.

Apa itu Aztec?

Aztec ialah rangkaian Layer 2 yang berfokus pada privasi berdasarkan reka bentuk, sambil masih menyokong komposabiliti awam apabila diperlukan.
Gagasan utamanya adalah mudah:
  • Pelaksanaan peribadi & keadaan peribadi untuk tindakan pengguna sensitif (baki, identiti, niat, strategi).
  • Pelaksanaan awam & keadaan awam untuk perkara yang mesti kelihatan secara global (cairan awam, logik kontrak awam, keadaan bersama).
Jadi, alih-alih memilih “semua awam” atau “semua peribadi,” Aztec menyokong aplikasi hibrid.

Bagaimana Transaksi Berfungsi di Aztec

Aztec memisahkan pelaksanaan ke dalam dua persekitaran yang berasingan:
  1. Persekitaran Pelaksanaan Peribadi (PXE) — berjalan di sisi pengguna

Fungsi peribadi dieksekusi di sisi klien di dalam PXE (dibaca “pixie”) untuk memaksimakan privasi.
PXE:
  • melaksanakan fungsi peribadi secara tempatan
  • memegang kunci + nota
  • menghasilkan bukti tanpa pengetahuan untuk operasi peribadi
  • disertakan dalam aztec.js (TypeScript), boleh dijalankan di Node atau pelayar
  1. VM Awam (AVM) — berjalan pada nod Aztec

Fungsi awam dilaksanakan pada rangkaian dalam Aztec Virtual Machine (AVM), secara konseptual serupa dengan EVM (jadi "intuisi kecekapan gas" berlaku lebih seperti Solidity).

Peraturan pelaksanaan berarah (penting)

Satu transaksi mengalir dari peribadi → awam:
  • Fungsi peribadi boleh menkuiskan fungsi awam untuk dijalankan kemudian.
  • Fungsi awam tidak boleh memanggil fungsi peribadi.
Pemisahan itu adalah sengaja: rangkaian awam tidak seharusnya mampu “mencapai” pelaksanaan peribadi.

Keadaan Peribadi vs Awam: Nota, Nullifier, dan Pokok

Aztec menggunakan model keadaan yang berbeza bergantung kepada privasi:

Keadaan peribadi = "catatan" bergaya UTXO

Keadaan peribadi disimpan sebagai nota (bahagian data seperti UTXO). Untuk mengekalkan kesendirian:
  • Nota ditambahkan ke dalam pokok UTXO yang hanya boleh ditambahkan
  • Apabila satu nota “dibelanjakan/dihapus,” satu nullifier dicipta
  • Nullifier disimpan dalam pokok nullifier yang berasingan
Ini membolehkan rangkaian memaksakan “digunakan sekali” tanpa mengungkapkan kandungan sulit nota.

Keadaan awam = penyimpanan awam seperti akaun

Keadaan awam berkelakuan lebih seperti ethereum:
  • disimpan dalam pokok data awam
  • dikemas kini secara langsung dan kelihatan di atas rantai
Ambilan pembangun:
  • Kerja keadaan peribadi = komitmen + peniadaan (buktikan kebenaran tanpa mengungkap data)
  • Kerja keadaan awam = kemas kini terus (perilaku penyimpanan blok rantai biasa)

Abstraksi Akaun: Setiap Akaun Adalah Kontrak Pintar

Aztec mempunyai abstraksi akaun asli pada peringkat protokol:
  • Tidak ada EOA (tiada akaun “pasangan kunci” mudah)
  • Setiap akaun adalah kontrak pintar
  • Pembangun boleh mentakrifkan peraturan sendiri untuk:
    • pengesahan (tandatangan, multisig, passkeys, logik tersuai)
    • polisi autorisasi (had, kebenaran, kunci sesi)
    • nonce / perlindungan ulangan
    • strategi pembayaran yuran (membayar yuran dalam pelbagai token, model penyokong, dsb.)

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

Model Aztec mendorong pengesahan kompleks di sisi klien:
  • Klien mengesahkan dan menghasilkan bukti ZK bahawa “pengesahan berjaya”
  • Sequencer mengesahkan bukti berukuran malar
  • Jadi, kerumitan pengesahan tidak meningkatkan kos pengesahan rangkaian
Ini membolehkan logik akaun "pengguna kuat" tanpa membuat rantai menjadi perlahan.

Kunci di Akaun Aztec (Berfokus pada Privasi)

Setiap akaun Aztec disokong oleh 3 pasangan kunci:
  • Pasangan kunci Nullifier: digunakan untuk mengira nullifier nota
  • Pas kunci melihat yang akan datang: digunakan untuk mengenkripsi nota untuk penerima
  • Pas kunci melihat keluar: digunakan untuk menyulitkan nota untuk pengirim
Kerana akaun adalah kontrak pintar, ia tidak mempunyai pasangan kunci tanda tangan secara automatik—pengesahan bergantung pada reka bentuk kontrak akaun.

Saksi Autentikasi: Lebih Selamat Daripada “Persetujuan Tanpa Had”

Aztec menggantikan pola "persetujuan tanpa had" yang berisiko dengan Authentication Witnesses (AuthWit):
  • sebaliknya daripada memberikan kebenaran tanpa had selamanya,
  • pengguna mengesahkan tindakan tertentu dengan parameter tertentu
Ini direka untuk mengurangkan risiko persetujuan yang berterusan sambil masih membolehkan UX yang baik (pengumpulan, automatik).

Bina di atas Aztec dengan Noir

Kontrak pintar Aztec ditulis dalam Noir, bahasa yang berfokus pada ZK untuk menulis program/kontrak yang boleh dibuktikan. Satu amaran utama daripada dokumen: fungsi persendirian boleh ditulis dengan cara yang tidak optimum secara merugikan kerana pembuktian mempunyai intuisi prestasi yang berbeza daripada pelaksanaan biasa—jadi, mempelajari “cara menulis Noir yang berprestasi tinggi” adalah penting.