Sebuah transaksi hanya akan dieksekusi jika memiliki
tanda tangan yang valid dari setiap
penandatangan yang diperlukan. Selama pengembangan lokal, kamu biasanya menyimpan kunci tersebut sebagai
Keypair dan menandatangani secara langsung. Di
lingkungan produksi, pertanyaan pentingnya berbeda: di mana private key
disimpan, dan siapa yang diizinkan untuk mengotorisasi tanda tangan dengannya?
Jangan pernah menyematkan private key dalam kode sisi klien, membundel ke dalam frontend, atau melakukan commit ke source control. Siapa pun yang mendapatkan kunci tersebut akan memperoleh kendali penuh atas dana akun tersebut.
Pendekatan penandatanganan
| Pendekatan | Lokasi penyimpanan kunci | Yang menandatangani | Paling cocok untuk |
|---|---|---|---|
| keypair lokal | Sebuah file atau variabel lingkungan pada mesin | Kode kamu, secara langsung | Pengembangan lokal, pengujian, CI |
| Dompet browser | Dompet pengguna akhir (misalnya Phantom, Solflare) | Pengguna akhir, per transaksi | dApps frontend di mana pengguna menandatangani transaksi mereka sendiri |
| Cloud KMS / HSM | Layanan kunci berbasis perangkat keras (AWS KMS, GCP KMS, Vault) | Backend kamu meminta tanda tangan dari layanan | Layanan backend, operasi treasury, lingkungan yang diregulasi |
| Dompet Terkelola / MPC | Dibagi atau dikustodikan di seluruh infrastruktur penyedia | Penyedia ikut menandatangani sesuai kebijakan kamu | Dompet tertanam, alur persetujuan, kustodi institusional |
keypair lokal adalah satu-satunya pendekatan yang menempatkan material kunci mentah di dalam aplikasi kamu. Setiap pendekatan produksi menyimpan kunci dalam infrastruktur khusus dan meminta infrastruktur tersebut untuk menandatangani atas nama kamu.
Penandatanganan backend
Ketika server perlu menandatangani (membayar biaya, mengirim transaksi program, atau
mengelola treasury), gunakan backend manajemen kunci khusus alih-alih
keypair mentah. Solana Foundation memelihara Keychain, sebuah
library penandatanganan terpadu (Rust, TypeScript, Python, dan Go) yang menyediakan satu antarmuka
SolanaSigner di semua backend pada tabel di atas: Memory,
HashiCorp Vault, AWS KMS, GCP KMS, Fireblocks, Privy, Turnkey, CDP, Crossmint,
Dfns, Para, Openfort, Utila, dan Fordefi.
Karena antarmuka ini digunakan bersama di seluruh backend, Anda dapat mengembangkan secara lokal dengan
kunci in-memory lalu beralih ke backend produksi melalui konfigurasi, tanpa
perlu menulis ulang kode aplikasi (backend yang melakukan broadcast untuk Anda, seperti Crossmint,
dipanggil melalui jalur sign-and-send). Keychain kompatibel dengan
@solana/kit,
Rust SDK, solders (Python), dan solana-go v2
(Go).
Keychain
Penandatanganan terpadu di seluruh kunci lokal, KMS, HSM, dan backend dompet terkelola.
Memilih backend
Bandingkan model kustodi dan pilih backend penandatanganan yang tepat untuk aplikasi kamu.
Untuk daftar periksa produksi lengkap — manajemen kunci, keamanan RPC, dan pemantauan — lihat Kesiapan Produksi.
Is this page helpful?