Một giao dịch chỉ được thực thi khi nó mang chữ ký hợp lệ từ mọi người ký bắt buộc. Trong quá trình phát triển cục bộ, bạn thường giữ khóa đó dưới dạng Keypair và ký trực tiếp. Trong môi trường production, câu hỏi quan trọng lại khác: khóa riêng tư được lưu ở đâu, và ai được phép ủy quyền chữ ký với nó?
Không bao giờ nhúng khóa riêng tư vào mã phía client, đóng gói chúng vào frontend, hoặc commit chúng vào source control. Bất kỳ ai lấy được khóa sẽ có toàn quyền kiểm soát tài sản của tài khoản đó.
Các phương pháp ký
| Phương pháp | Nơi lưu trữ khóa | Ai ký | Phù hợp nhất cho |
|---|---|---|---|
| Keypair cục bộ | Một tệp hoặc biến môi trường trên máy | Mã của bạn, trực tiếp | Phát triển cục bộ, kiểm thử, CI |
| Ví trình duyệt | Ví của người dùng cuối (ví dụ: Phantom, Solflare) | Người dùng cuối, theo từng giao dịch | Các dApp frontend nơi người dùng ký giao dịch của chính họ |
| Cloud KMS / HSM | Dịch vụ khóa được hỗ trợ bởi phần cứng (AWS KMS, GCP KMS, Vault) | Backend của bạn yêu cầu chữ ký từ dịch vụ | Dịch vụ backend, vận hành kho bạc, môi trường được quản lý |
| Ví Managed / MPC | Được phân tách hoặc lưu ký qua cơ sở hạ tầng của nhà cung cấp | Nhà cung cấp đồng ký theo chính sách của bạn | Ví tích hợp, quy trình phê duyệt, lưu ký tổ chức |
Keypair cục bộ là phương pháp duy nhất đặt vật liệu khóa thô vào trong ứng dụng của bạn. Mọi phương pháp production đều giữ khóa trong cơ sở hạ tầng chuyên dụng và yêu cầu cơ sở hạ tầng đó ký thay mặt bạn.
Ký phía Backend
Khi một máy chủ cần ký (trả phí, gửi các giao dịch của chương trình hoặc
vận hành một kho quỹ), hãy dùng một backend quản lý khóa chuyên dụng thay vì một
keypair thô. Solana Foundation duy trì Keychain, một
thư viện ký thống nhất (Rust, TypeScript, Python và Go) cung cấp một giao diện
SolanaSigner duy nhất trên mọi backend trong bảng trên: Memory,
HashiCorp Vault, AWS KMS, GCP KMS, Fireblocks, Privy, Turnkey, CDP, Crossmint,
Dfns, Para, Openfort, Utila và Fordefi.
Vì giao diện được dùng chung cho mọi backend, bạn có thể phát triển cục bộ với một
khóa trong bộ nhớ và chuyển sang backend production thông qua cấu hình, mà không cần
viết lại mã ứng dụng (các backend tự phát sóng giao dịch thay bạn, chẳng hạn như Crossmint,
sẽ được gọi qua luồng ký và gửi thay thế). Keychain tương thích với
@solana/kit,
Rust SDK, solders (Python) và solana-go v2
(Go).
Keychain
Ký thống nhất trên khóa cục bộ, KMS, HSM và các backend ví được quản lý.
Lựa chọn Backend
So sánh các mô hình lưu ký và chọn backend ký phù hợp cho ứng dụng của bạn.
Để xem danh sách kiểm tra production đầy đủ — quản lý khóa, bảo mật RPC và giám sát — xem Sẵn sàng cho Production.
Is this page helpful?