Sebuah transaksi hanya akan dieksekusi jika memuat
tanda tangan yang
valid dari setiap penandatangan yang diperlukan. Selama pengembangan lokal, Anda
biasanya menyimpan kunci tersebut sebagai
Keypair dan menandatangani
secara langsung. Di produksi, pertanyaan pentingnya berbeda: di mana kunci
privat disimpan, dan siapa yang berwenang mengotorisasi tanda tangan
dengannya?
Jangan pernah menyematkan kunci privat dalam kode sisi klien, membundel ke dalam frontend, atau menyimpannya ke dalam kontrol sumber. Siapa pun yang mendapatkan kunci tersebut akan mendapatkan kendali penuh atas dana akun tersebut.
Pendekatan penandatanganan
| Pendekatan | Tempat penyimpanan kunci | Siapa yang menandatangani | Terbaik untuk |
|---|---|---|---|
| keypair lokal | File atau variabel lingkungan pada mesin | Kode Anda, secara langsung | Pengembangan lokal, pengujian, CI |
| Dompet browser | Dompet pengguna akhir (misalnya Phantom, Solflare) | Pengguna akhir, per transaksi | dApp frontend di mana pengguna menandatangani transaksi mereka sendiri |
| Cloud KMS / HSM | Layanan kunci berbasis perangkat keras (AWS KMS, GCP KMS, Vault) | Backend Anda meminta tanda tangan dari layanan | Layanan backend, operasi treasury, lingkungan terregulasi |
| Dompet Terkelola / MPC | Dibagi atau dikustodikan di seluruh infrastruktur penyedia | Penyedia menandatangani bersama sesuai kebijakan Anda | Dompet tertanam, alur kerja persetujuan, kustodi institusional |
keypair lokal adalah satu-satunya pendekatan yang menempatkan materi kunci mentah di dalam aplikasi Anda. Setiap pendekatan produksi menyimpan kunci di infrastruktur khusus dan meminta infrastruktur tersebut untuk menandatangani atas nama Anda.
Penandatanganan backend
Ketika server perlu menandatangani — membayar biaya, mengirim transaksi program,
atau mengoperasikan treasury — gunakan backend manajemen kunci khusus, bukan
keypair mentah. Solana Foundation memelihara Keychain,
sebuah pustaka penandatanganan terpadu (Rust dan TypeScript) yang mengekspos
satu antarmuka SolanaSigner di seluruh backend dalam tabel di atas: Memory,
HashiCorp Vault, AWS KMS, GCP KMS, Fireblocks, Privy, Turnkey, CDP, Crossmint,
Dfns, Para, Openfort, dan Utila.
Karena antarmuka identik di semua backend, Anda dapat mengembangkan secara lokal
dengan kunci dalam memori dan beralih ke backend produksi melalui konfigurasi,
tanpa menulis ulang kode aplikasi. Keychain kompatibel dengan
@solana/kit dan
Rust SDK.
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 Anda.
Untuk daftar periksa produksi lengkap — manajemen kunci, keamanan RPC, dan pemantauan — lihat Kesiapan Produksi.
Is this page helpful?