Các ví nhúng

Các cụm từ khôi phục từng là một điều cần thiết nhưng phiền toái. Trong suốt một thập kỷ, chúng ta đã yêu cầu người dùng ghi lại 12 hoặc 24 từ ngẫu nhiên, lưu trữ chúng một cách an toàn và không bao giờ được làm mất chúng. Những người quen thuộc với tiền điện tử chấp nhận điều này như là cái giá của việc tự quản lý tài sản. Còn những người khác thì bỏ cuộc.
Ví nhúng loại bỏ hoàn toàn cụm từ khôi phục. Người dùng xác thực bằng sinh trắc học, email hoặc tài khoản mạng xã hội: các cách mà họ đã sử dụng cho mọi ứng dụng khác. Ví tồn tại bên trong ứng dụng của bạn, vô hình với người dùng, được bảo mật bằng các kỹ thuật mật mã không yêu cầu họ phải hiểu về mật mã học.
Vấn đề của các ví truyền thống
Yêu cầu đối với bất kỳ ai mới sử dụng ứng dụng Web3 mà không quen thuộc với tiền điện tử. Cuộc trò chuyện thường theo một kịch bản dự đoán được:
"Tải ứng dụng ví này"
"Ghi lại 24 từ này"
"Không được mất chúng nếu không bạn sẽ mất tất cả"
"Bây giờ hãy kết nối nó với ứng dụng của chúng tôi"
Ở bước 2, bạn đã mất 80% người dùng tiềm năng. Ở bước 3, họ bắt đầu nghi ngờ về lựa chọn của mình.
Ví truyền thống đã được thiết kế cho một thời đại khác: khi tiền điện tử chỉ có Bitcoin, người dùng có kỹ thuật cao, và "phi tập trung bằng mọi giá" là triết lý duy nhất. Mobile Wallet Adapter (MWA) cải thiện trải nghiệm kết nối nhưng vẫn yêu cầu người dùng quản lý các ứng dụng ví bên ngoài.
Đối với hầu hết trải nghiệm trên thiết bị di động, việc này là không thể chấp nhận được. Người dùng mong đợi mở một ứng dụng và bắt đầu sử dụng nó trong vài giây, không phải cấu hình các phụ thuộc bên ngoài trước.
Ưu tiên trải nghiệm người dùng
Hãy xem người dùng thực sự muốn gì từ một ví:
Ký khi cần thiết: Thực hiện giao dịch, chứng minh quyền sở hữu
Không phải nghĩ về nó: Ví nên là hạ tầng, không phải giao diện
Phục hồi truy cập nếu có sự cố: Không mất mát thảm khốc
Các ví truyền thống đảo ngược thứ tự ưu tiên này. Chúng làm cho ví trở thành trải nghiệm trung tâm, đòi hỏi sự chú ý liên tục và trừng phạt bất kỳ sai lầm nào bằng việc mất vĩnh viễn quỹ.
Ví nhúng là gì?
Ví nhúng là một cặp khóa mật mã được quản lý bằng mã bởi một dịch vụ hoặc SDK, xác thực thông qua các phương pháp quen thuộc như email, đăng nhập mạng xã hội hoặc sinh trắc học. Khóa riêng tư có thể là:
Chia sẻ giữa nhiều bên sử dụng MPC (Tính toán đa bên)
Lưu trữ trong các mô-đun bảo mật phần cứng (passkey lưu trên vùng bảo mật thiết bị)
Được kiểm soát bởi logic hợp đồng thông minh (PDAs với ủy quyền linh hoạt)
Từ góc nhìn của người dùng, họ đăng nhập bằng FaceID trên điện thoại hoặc tài khoản Google của mình. Đằng sau hậu trường, việc xác thực này cho phép truy cập để ký các giao dịch với một cặp khóa Solana.
Lợi ích chính
Không khó tiếp cận khi bắt đầu: Người dùng xác thực bằng các cách mà họ đã quen thuộc
Không phải chịu trách nhiệm về cụm từ khôi phục: Không cần ghi lại, không có gì để làm mất
Trải nghiệm nhúng: Ví tồn tại bên trong ứng dụng của bạn, không phải là một phụ thuộc bên ngoài
Việc phục hồi có thể lập trình: Phục hồi thông qua mạng xã hội, các yếu tố sao lưu hoặc các tùy chọn lưu ký khác
Bốn cách tiếp cận đến khóa bảo mật
Các nhà cung cấp ví nhúng sử dụng các phương pháp mật mã cơ bản khác nhau. Hiểu được các kiến trúc này quan trọng hơn việc hiểu bất kỳ SDK cụ thể nào.
Tính toán đa bên (MPC)
MPC loại bỏ điểm thất bại duy nhất bằng cách chia khóa riêng thành các phần có thể được chia sẻ cho nhiều bên. Không có bên đơn lẻ nào giữ toàn bộ khóa.
+------------------+ +------------------+
| User Device | | Provider HSMs |
| (Share A) | | (Share B) |
+------------------+ +------------------+
| |
+---- Threshold Signing ----+
|
+----------------+
| Valid Signature|
+----------------+Để ký một giao dịch, các bên được chia sẻ khóa phối hợp thông qua các giao thức mật mã tạo ra các chữ ký hợp lệ mà không tái tạo lại khóa gốc. Kẻ tấn công phải xâm nhập nhiều hệ thống độc lập cùng một lúc.
Từ góc nhìn của nhà phát triển, các nhà cung cấp MPC trừu tượng hóa sự phức tạp này:
// Privy: MPC shares coordinate behind the scenes
const { wallets } = useEmbeddedSolanaWallet();
const provider = await wallets[0].getProvider();
await provider.request({ method: 'signAndSendTransaction', params: { transaction } });Các nhà cung cấp sử dụng MPC: Privy, Dynamic, Para, Web3Auth
Môi trường thực thi tin cậy (TEE/HSM)
Các nhà cung cấp TEE lưu trữ khóa riêng hoàn chỉnh trong phần cứng chuyên dụng: hoặc HSM (Mô-đun bảo mật phần cứng) phía máy chủ hoặc vùng bảo mật an toàn phía khách hàng. Khóa tồn tại ở một nơi, nhưng nơi đó được cách ly bằng mật mã khỏi phần còn lại của hệ thống.
+----------------+ +-------------------+
| User Auth | | Provider TEE |
| (OAuth/Email) |---->| (HSM/SGX) |
+----------------+ +-------------------+
|
[Isolated Enclave]
Key exists here only
|
+----------------+
| Sign & Return |
+----------------+Đánh đổi: bạn tin tưởng vào sự cách ly phần cứng của nhà cung cấp thay vì phân phối sự tin cậy giữa các bên. Ưu điểm: kiến trúc đơn giản hơn, ký nhanh hơn và thường là hạ tầng đã được kiểm chứng từ các nhà cung cấp uy tín.
Các nhà cung cấp sử dụng TEE/HSM: Phantom Connect, Magic Link, Turnkey
Passkey-Native
Passkeys sử dụng vùng bảo mật an toàn trên thiết bị của bạn để giữ khóa riêng. Khóa không bao giờ rời khỏi phần cứng. FaceID hoặc dấu vân tay kiểm soát quyền truy cập. Các chương trình trên chuỗi xác minh chữ ký passkey trực tiếp bằng cách sử dụng secp256r1 đã được biên dịch của Solana.
+----------------+ +-------------------+ +-----------------+
| User Device | | Solana Program | | Smart Wallet |
| (Passkey) |---->| (Verifier) |---->| (PDA) |
+----------------+ +-------------------+ +-----------------+
|
[Secure Enclave]
Key never leavesChữ ký passkey LÀ ủy quyền blockchain. Không có hạ tầng nhà cung cấp trong quá trình ký.
// LazorKit: Passkey triggers device biometric, signs on-chain
const { signAndSendTransaction } = useWallet();
await signAndSendTransaction(
{ instructions, transactionOptions: { feeToken: USDC_ADDRESS } },
{ redirectUrl: 'myapp://callback' }
);Các nhà cung cấp sử dụng passkeys: LazorKit
Modular Signers
Một vài nhà cung cấp cung cấp ví thông minh có thể được kiểm soát bởi nhiều cách ký khác nhau: passkeys, xác thực email, đăng nhập mạng xã hội, ví bên ngoài hoặc khóa API.
Smart Wallet (PDA)
├── Primary: Passkey (điện thoại của người dùng)
├── Backup: Email (khôi phục)
└── Admin: API Key (tự động hóa)Sự linh hoạt này cho phép các ứng dụng đáp ứng xác thực cho các phân khúc người dùng và trường hợp sử dụng khác nhau.
Các nhà cung cấp sử dụng modular signers: Crossmint
Tổng quan về các nhà cung cấp
Một số nhà cung cấp đã xuất hiện với các cách tiếp cận kiến trúc khác nhau. Dưới đây là cách họ ánh xạ đến các mô hình mật mã:
| Nhà cung cấp | Kiến trúc chính | Phương thức xác thực | Thuộc tính khóa |
| Privy | MPC (2-of-2) | Email, phone, social, passkey, MWA | Hỗ trợ lai giữa ví nhúng và ví bên ngoài |
| Dynamic | MPC với TSS-FROST | Email, social, passkey | Chữ ký Ed25519 gốc, cho phép xuất khóa |
| Turnkey | Hạ tầng HSM | Phương pháp xác thực của bạn | Tối đa hóa kiểm soát nhà phát triển |
| LazorKit | Passkey Smart Wallets | Chỉ Passkey | Không có nhà cung cấp luồng ký, bao gồm paymaster tích hợp |
| Para | MPC phân tán | Email, phone, social, passkey | Đa chuỗi (Solana, EVM, Cosmos) |
| Crossmint | Modular Smart Wallets | Passkey, email, social, external, API | Kiến trúc ký linh hoạt, đa chuỗi |
| Phantom Connect | TEE/HSM qua OAuth | Google, Apple | Ví Solana gốc, mô phỏng giao dịch |
| Magic | TEE (Fortanix SGX) | Email, SMS, social | Chứng thực không mật khẩu, phần mở rộng đa chuỗi |
| Web3Auth | MPC (Torus Network) | Social, passwordless, tùy chỉnh | Mức độ tùy biến cao, tài khoản trừu tượng sẵn có |
Privy
Privy's MPC phân tán khóa giữa thiết bị của người dùng và hạ tầng HSM của Privy. Họ hỗ trợ cả ví nhúng và kết nối ví bên ngoài qua MWA, khiến cho họ là nhà cung cấp lý tưởng cho các ứng dụng lai phục vụ cả người dùng quen thuộc với tiền điện tử và người dùng chính thống.
Dynamic
Dynamic triển khai EdDSA FROST cho chữ ký Solana gốc. Kiến trúc MPC của họ bao gồm các tính năng Wallet-as-a-Service: người dùng có thể sao lưu các phần chia sẻ ví lên Google Drive hoặc xuất khóa riêng hoàn chỉnh của họ.
Turnkey
Turnkey cung cấp hạ tầng khóa an toàn mà không áp đặt lựa chọn xác thực. Bạn tự mang đến xác minh danh tính của mình. Turnkey cung cấp HSM và các giao thức ký. Tối đa sự linh hoạt, nhưng cần nhiều nỗ lực tích hợp hơn.
LazorKit
LazorKit tạo ví thông minh (PDA) được kiểm soát bởi passkey WebAuthn. Khóa riêng không bao giờ rời khỏi vùng an toàn của thiết bị bạn. Bao gồm paymaster tích hợp để tài trợ gas.
Para (Tên cũ Capsule)
Para phân phối các MPC chia sẻ trên mạng lưới của họ với hỗ trợ cho EVM, Solana và Cosmos từ cùng một xác thực. Lý tưởng cho các ứng dụng đa chuỗi.
Crossmint
Crossmint triển khai ví thông minh với các cách ký mô-đun. Nhiều phương thức xác thực có thể kiểm soát cùng một ví. Hỗ trợ nâng cấp bảo mật dần dần khi người dùng trở nên tinh vi hơn.
Phantom Connect
Phantom Connect tạo ví nhúng thông qua xác thực OAuth (Google hoặc Apple). Khóa được lưu trữ trong hạ tầng TEE/HSM. Điều này đặc biệt hấp dẫn đối với các ứng dụng Solana vì Phantom đã xử lý mô phỏng giao dịch, bảo vệ chống spam và cảnh báo bảo mật mà người dùng tin tưởng.
// From @phantom/react-native-sdk
const { connect } = useConnect();
await connect({ provider: 'google' }); // or 'apple'Magic Link
Magic sử dụng Fortanix SGX (Software Guard Extensions) để tạo các vùng bảo vệ phần cứng nơi khóa được lưu trữ và việc ký được thực hiện. Người dùng xác thực qua các liên kết email không mật khẩu, mã SMS hoặc đăng nhập xã hội. Khóa không bao giờ rời khỏi vùng bảo vệ an toàn.
// From @magic-ext/solana
const magic = new Magic('YOUR_API_KEY', {
extensions: [new SolanaExtension({ rpcUrl })]
});
await magic.solana.signTransaction(transaction);Web3Auth (MetaMask Embedded Wallets)
Web3Auth phân phối các MPC chia sẻ trên mạng Torus với nhiều lựa chọn tùy chỉnh. Hỗ trợ hàng chục nhà cung cấp xác thực và bao gồm các tích hợp tài khoản trừu tượng . Gần đây được MetaMask mua lại, trở thành một phần của hệ sinh thái Consensys.
// From @web3auth/react-native-sdk + @web3auth/solana-provider
const solanaWallet = new SolanaWallet(web3auth.provider);
await solanaWallet.signAndSendTransaction(transaction);Khi nào nên xem xét các lựa chọn thay thế
Các ví nhúng không phải lúc nào cũng là câu trả lời. Hãy xem xét trường hợp sử dụng:
Các ví nhúng tốt khi:
Việc ký là thường xuyên (games, social tipping, DeFi)
Người dùng không phải là chuyên gia tiền điện tử (ứng dụng tiêu dùng)
Bạn cần tài trợ gas (quy trình onboarding)
Việc khôi phục phải liền mạch (không cần sao lưu cụm từ hạt giống)
Các ví ngoài có thể tốt hơn khi:
Người dùng là quen thuộc với tiền điện tử và ưu tiên các ví hiện có
Ứng dụng của bạn chủ yếu là đọc với ít nhu cầu ký
Yêu cầu tối đa hóa phi tập trung
Người dùng không tin tưởng bất kỳ sự tham gia của bên thứ ba nào
Cách tiếp cận lai hoạt động khi:
Bạn phục vụ cả hai đối tượng
Người dùng có thể bắt đầu với ví nhúng và chuyển sang ví ngoài
Bạn muốn có sự lựa chọn
Cấu trúc khóa học
Khóa học này dạy các nền tảng mật mã của ví nhúng, không phải hướng dẫn SDK. API thay đổi. Khái niệm tồn tại.
| Bài học | Chủ đề |
| 1 | Giới thiệu (bạn đang ở đây) |
| 2 | Mật mã MPC: Cách chữ ký ngưỡng loại bỏ điểm thất bại đơn lẻ |
| 3 | Passkeys và WebAuthn: Cách các mô-đun bảo mật phần cứng bảo vệ khóa |
| 4 | Kiến trúc ví Thông minh: PDA, trừu tượng tài khoản và bảo mật lập trình được |
| 5 | Lựa chọn cách tiếp cận của Bạn: Khung quyết định dựa trên yêu cầu của bạn |
Sau khi hoàn thành khóa học này, bạn sẽ hiểu:
Tại sao MPC an toàn hơn một khóa đơn
Cách passkeys cung cấp xác thực chống lừa đảo
Điều gì làm cho ví thông minh "có thể lập trình"
Cách đánh giá nhà cung cấp dựa trên kiến trúc, không phải tiếp thị
Yêu cầu tiên quyết
Hoàn thành khóa học Mobile Wallet Adapter (hoặc kiến thức tương đương)
Hiểu biết về tài khoản và giao dịch Solana
Hiểu biết cơ bản về mật mã khóa công khai
Lưu ý: Chức năng passkey yêu cầu kiểm tra trên thiết bị thực. Trình giả lập không có quyền truy cập vào vùng bảo vệ an toàn của thiết bị.
Hãy bắt đầu bằng cách hiểu cách MPC loại bỏ điểm yếu cơ bản trong lưu trữ khóa truyền thống.