
Passkey trên Solana: Tương lai của trải nghiệm người dùng ví tiền mã hóa
Mục lục
Các ứng dụng Solana cần mang lại quy trình làm quen với ví tiền mã hóa nhanh chóng, an toàn và liền mạch. Phantom đã tiên phong, nhưng vẫn yêu cầu người dùng quản lý seed phrase.
Passkey thay đổi điều đó.
Được xây dựng trên tiêu chuẩn WebAuthn và giao thức FIDO2, passkey cho phép đăng nhập bằng sinh trắc học hoặc phần cứng (ví dụ: Face ID, Touch ID, Windows Hello, YubiKeys, v.v.) mà không cần lưu trữ hoặc làm lộ khóa riêng tư.
Passkey thay thế mật khẩu truyền thống bằng một cặp khóa mật mã, trong đó khóa riêng tư nằm trên thiết bị của người dùng trong một mô-đun phần cứng bảo mật và chỉ khóa công khai được chia sẻ.
Trong khi hầu hết ứng dụng dùng passkey để thay thế mật khẩu bằng phương thức xác thực không cần mật khẩu, Para sử dụng passkey theo cách khác: làm cơ chế ủy quyền bằng mật mã cho các phiên ví.
Không mật khẩu. Không seed phrase. Chỉ cần quyền truy cập bằng mật mã được tích hợp vào thiết bị của người dùng để mang lại trải nghiệm đơn giản hơn.
Tại sao passkey quan trọng với trải nghiệm ví Solana?
Nhu cầu về quy trình tiếp nhận người dùng tiền mã hóa không ma sát chưa bao giờ lớn đến thế.
Khi các ứng dụng Solana trên thiết bị di động, hoạt động của nhà phát triển và khối lượng stablecoin tăng trưởng nhanh chóng, việc hỗ trợ passkey giúp người dùng mới giao dịch trên chuỗi dễ dàng và an toàn hơn.
Khi kết hợp với SDK ví nhúng của Para, passkey mang lại:
- Tiếp nhận tức thì: không cần cài đặt hoặc seed phrase
- Phiên duy trì liên tục: người dùng luôn kết nối qua nhiều lần truy cập và thiết bị
- Quản lý khóa an toàn: khóa được gắn với thiết bị và có khả năng chống lừa đảo phishing
Hỗ trợ Passkey trên Solana và SIMD-0075
Hầu hết quy trình xác thực WebAuthn mặc định sử dụng đường cong P-256 (secp256r1), một đường cong elliptic được dùng rộng rãi và thiết kế để tương thích với nhiều trình duyệt và thiết bị. Đường cong P-256 phù hợp với mục đích đăng nhập web nói chung, nhưng không phù hợp với Solana. Nguyên nhân là Solana sử dụng một đường cong elliptic khác, Ed25519 (dựa trên Curve25519), được tối ưu hóa cho chữ ký nhanh, tất định và khả năng xác thực thông lượng cao thông qua các lệnh SIMD (Một lệnh, nhiều dữ liệu).
Sự khác biệt này rất quan trọng: P‑256 và Ed25519 không tương thích trực tiếp.
Passkey WebAuthn hiện không thể tạo chữ ký Ed25519, còn trình duyệt không cung cấp API để ký bằng Ed25519 thông qua enclave bảo mật. Vì vậy, passkey không thể trực tiếp ký các giao dịch Solana.
Khoảng trống đó khiến việc hỗ trợ passkey trên Solana trở thành một thách thức kỹ thuật. SIMD-0075 (được phê duyệt vào tháng 5 năm 2024) tái khẳng định Ed25519 là đường cong ưu tiên của Solana nhờ các lợi ích như ký tất định (không có rủi ro nonce), vector hóa SIMD và khả năng tương tác trong hệ sinh thái.
Vào tháng 6 năm 2025, Solana đã hỗ trợ xác minh trực tiếp trên chuỗi đối với chữ ký secp256r1 (P-256) thông qua một precompile mới, cho phép ứng dụng xác minh chữ ký passkey trên chuỗi (ví dụ: để xác nhận thông tin đăng nhập của người dùng hoặc bằng chứng danh tính).
Tuy nhiên, các giao dịch Solana vẫn yêu cầu chữ ký Ed25519, loại chữ ký mà passkey WebAuthn không thể tạo. Điều đó có nghĩa chỉ riêng passkey vẫn chưa đủ để ký ở cấp độ ví.
Đó là lúc cơ sở hạ tầng của Para phát huy tác dụng:
Thay vì dùng passkey để ký giao dịch, Para sử dụng chúng như một cơ chế ủy quyền cơ bản. Passkey mở khóa một phiên có phạm vi giới hạn, qua đó cấp quyền truy cập vào khóa ký tương thích với Ed25519 do cơ sở hạ tầng MPC (Tính toán đa bên) của Para quản lý.
Thiết kế này khắc phục sự không tương thích giữa các đường cong, đồng thời mang lại:
- Khả năng tương thích hoàn toàn với Solana
- Quy trình tiếp nhận nhanh chóng, liền mạch bằng passkey
- Khả năng tự lưu ký an toàn và quản lý khóa dựa trên MPC
Para Passkey: Ủy quyền, không chỉ xác thực
Para đã giới thiệu cơ chế ủy quyền phiên dựa trên passkey vào năm 2023, và đây là một phần cốt lõi trong SDK ví nhúng của họ.
Thay vì chỉ xem passkey là một phương thức đăng nhập, Para dùng chúng để kiểm soát an toàn quyền truy cập vào các thao tác ví.
Trong SDK của Para, passkey được dùng để ủy quyền cho các phiên ví sau khi người dùng đăng nhập qua OAuth, email/mật khẩu, v.v. Việc phân tách trách nhiệm này—xác thực danh tính và dùng passkey để truy cập ví—tạo ra nền tảng an toàn hơn cho ví nhúng Para.
Điều gì xảy ra khi một passkey mới được đăng ký với Para?
Ứng dụng khách (trình duyệt hoặc trình quản lý thông tin xác thực ở cấp hệ điều hành) tạo một cặp khóa:
- Khóa riêng tư được lưu trữ trong enclave bảo mật của thiết bị (ví dụ: TPM, Secure Enclave hoặc Android Keystore)
- Khóa công khai và siêu dữ liệu thông tin xác thực được gửi tới máy chủ
Siêu dữ liệu thông tin xác thực của passkey bao gồm:
- ID thông tin xác thực (duy nhất cho mỗi passkey)
- Nonce thử thách
- RP ID (tên miền của ứng dụng)
- Thuật toán mật mã (thường là P-256)
Điều gì xảy ra khi một ví mới được tạo?
Khi người dùng tạo ví bằng Para, một passkey sẽ được đăng ký và liên kết với thiết bị của họ. Cụ thể, passkey sẽ:
- Ký một yêu cầu ủy quyền
- Xác nhận người dùng kiểm soát thiết bị và ví
- Thiết lập một phiên đã ký, có phạm vi giới hạn và có thể được duy trì
Sau đó, phiên này mở khóa các thao tác nhạy cảm như:
- Gửi giao dịch
- Truy cập các khóa được mã hóa và gắn với phiên
- Phê duyệt tương tác với hợp đồng thông minh
Đây là lúc cách tiếp cận của Para trở nên quan trọng:
Bản thân passkey không được dùng trực tiếp để ký các giao dịch Solana (vốn bắt buộc dùng Ed25519).
Thay vào đó, SDK ví Para sử dụng passkey như một cơ chế ủy quyền cơ bản để mở khóa phiên, sau đó cấp quyền truy cập có phạm vi giới hạn vào khóa ký Ed25519 tương thích với Solana mà ví nhúng sử dụng.
Khóa ký này nằm trong cơ sở hạ tầng khóa dựa trên MPC an toàn của Para, tương thích với các yêu cầu về chữ ký của Solana.
Về bản chất, passkey thực hiện ủy quyền, còn khóa ví thực hiện việc ký. Cơ chế này mở khóa các thao tác nhạy cảm như gửi giao dịch, truy cập khóa được mã hóa và phê duyệt tương tác với hợp đồng thông minh.
Bằng cách tách danh tính khỏi quyền ký, Para bảo đảm rằng ngay cả các hành động có rủi ro cao cũng được bảo vệ bằng cơ chế ủy quyền mật mã, thay vì chỉ dựa vào việc đăng nhập của người dùng.
Para passkey tiến xa hơn nữa khi cho phép nhúng ví trực tiếp vào ứng dụng mà không cần tiện ích mở rộng trình duyệt hoặc cụm từ khôi phục.
Tại sao passkey quan trọng với các nhà phát triển Solana?
Đối với các nhà phát triển Solana, Para passkey mang lại:
- Tỷ lệ chuyển đổi cao hơn trong quá trình tiếp nhận vì ví được nhúng vào ứng dụng
- Không có nguy cơ mất khóa riêng tư hoặc seed phrase
- Trải nghiệm người dùng và khả năng bảo mật tốt hơn mà vẫn tương thích tự nhiên với Solana
Passkey đã được triển khai trong các ứng dụng như Xelio, sử dụng chúng để đưa người dùng vào ví nhúng qua SMS mà không gặp bất kỳ trở ngại nào.
Các dự án khác, chẳng hạn như Ví thông minh SWIG, cũng đang áp dụng các quy trình dựa trên passkey để tiếp nhận người dùng an toàn và liền mạch ngay trong ứng dụng.
Khi ngày càng nhiều ứng dụng sử dụng ví nhúng với quyền truy cập dựa trên passkey, chúng ta tiến gần hơn đến một lớp trải nghiệm ví phổ quát—nơi người dùng có thể mang theo danh tính và quyền ký của mình một cách liền mạch giữa các ứng dụng, thiết bị và phiên. Điều này đặc biệt quan trọng trong các hệ sinh thái như Solana, nơi khả năng kết hợp và liên kết ứng dụng đang trở thành tiêu chuẩn.
Cách thêm Passkey vào ứng dụng Solana
Việc tích hợp ví dựa trên passkey vào ứng dụng Solana bằng SDK ví của Para chỉ mất chưa đến năm phút.
Sau đây là cách hoạt động theo từng bước:
Điều kiện tiên quyết
Đầu tiên, hãy lấy khóa API Para từ Cổng thông tin dành cho nhà phát triển Para.
Tiếp theo, tạo tệp env.local trong thư mục gốc của dự án và thêm khóa của bạn:
NEXT_PUBLIC_PARA_API_KEY=your_para_api_key_here
Nếu không sử dụng Next.js, hãy điều chỉnh theo framework của bạn:
- Với Vite, sử dụng
VITE_PARA_API_KEY - Với Node.js, tham chiếu
process.env.PARA_API_KEY
1. Khởi tạo phiên bằng Para SDK
Bắt đầu bằng cách bọc ứng dụng trong ParaProvider và cấu hình Para SDK trên frontend. Thao tác này chuẩn bị môi trường ví nhúng và cho phép bạn tạo hoặc khôi phục phiên người dùng.
<ParaProvider
paraClientConfig={{
env: Environment.BETA, // or Environment.PROD
apiKey: YOUR_API_KEY,
}}
externalWalletConfig={{
appName: YOUR_APP_NAME,
wallets: ["PHANTOM","GLOW","BACKPACK"],
walletConnect: { projectId: YOUR_WALLET_CONNECT_PROJECT_ID },
solanaConnector: {
config: {
endpoint: ENDPOINT_FOR_SOLANA_CONNECTION,
chain: SOLANA_CHAIN,
},
},
}}
paraModalConfig={{
oAuthMethods: ["GOOGLE","TWITTER","TELEGRAM"]
authLayout: ["AUTH:FULL","EXTERNAL:FULL"]
recoverySecretStepEnabled: true
onRampTestMode: true
}}
>
{REST_OF_APP}
</ParaProvider>2. Dùng Helius để ký và gửi giao dịch
Khi phiên đang hoạt động, bạn có thể ký và gửi các giao dịch Solana qua SDK của Para và Helius. Trình ký này cung cấp phương thức signTransaction tiêu chuẩn từ JavaScript SDK @solana/kit.
const connection = new Connection(HELIUS_RPC_URL);
const solanaSigner = new ParaSolanaWeb3Signer(para, Connection);
const tx = new Transaction().add(...);
const signedTx = await solanaSigner.signTransaction(transaction);
await connection.sendRawTransaction(signedTx.serialize());Sử dụng Para mang lại trải nghiệm passkey và khả năng ký trên chuỗi tương thích tự nhiên với Solana mà không làm lộ khóa riêng tư hoặc yêu cầu tiện ích mở rộng trình duyệt.
Kết luận
Solana đang tiến vào thị trường đại chúng.
Để tiếp nhận thêm nhiều người dùng, passkey, chữ ký sinh trắc học và xác thực không cần mật khẩu sẽ giảm bớt trở ngại và đưa nhiều người hơn lên chuỗi.
Thêm khả năng hỗ trợ passkey vào ứng dụng Solana trong năm phút với SDK của Para.
Tài nguyên bổ sung
Bài viết liên quan
Đăng ký nhận tin từ Helius
Luôn cập nhật những thông tin mới nhất về phát triển Solana và nhận thông báo khi chúng tôi đăng bài


