Self-custody hay tự lưu ký luôn là phương án được khuyến nghị để quản lý tài sản số, dù vậy số đông vẫn chọn sử dụng các sàn điện tử cho thuận tiện cũng như tiết kiệm chi phí. Sự đổ vỡ của FTX và Celsius vừa rồi một lần nữa nhắc nhở người dùng crypto về câu nói quen thuộc “not your keys, not your coin”. May thay, một hệ sinh thái Wallet - Ví self-custody đang phát triển rất nhanh cho phép người dùng thông thường, các tổ chức và DAOs có thêm nhiều sự lựa chọn.
// Những yếu tố cần xem xét ở Wallet
- Security: Mức độ an toàn bảo mật trước các cuộc tấn công từ đơn giản tới phức tạp.
- Cost: Chi phí tạo account, quản lý truy cập và thực hiện giao dịch..
- UX & Flexibility: Tính thuận tiện và linh hoạt ở khâu trải nghiệm.
- Recoverability: Khả năng truy cập và phục hồi tài sản.
- Extensibility: Hst sản phẩm và dịch vụ bổ sung các tính năng mới.
- Privacy: Khả năng tìm ra cá nhân, tổ chức liên quan từ một địa chỉ ví.
// Conventional (HD) Wallets
Các ví thông thường sử dụng cấu trúc hierarchical deterministic (HD) để lấy private key, public key và địa chỉ on-chain tương ứng từ seed phrase. Private key được dùng để ký tx và seed phrase sẽ giúp phục hồi keys.
Những ví này từ lâu đã trở thành entry point cho người dùng hướng tới self-custody, có thể kể tới browser extension như Metamask, mobile app như Rainbow hay các loại ví lạnh như Ledge và Trezor để trữ private key offline nếu cần mức bảo mật cao hơn. Tuy nhiên, để mất private key vẫn là vấn đề lớn, không thể đơn phương phụ thuộc vào sự chủ động từ phía người dùng mà cần có cách loại bỏ hoàn toàn single point of failure này. Từ đó ta có Multi-Party Computation (MPC) wallet và Smart Contract wallet, 2 loại ví này tuy có sự khác biệt về mặt kỹ thuật, nhưng mục tiêu chung là loại bỏ sự phụ thuộc vào private key.
// MPC Wallets
Với MPC wallets, một private key sẽ được chia thành nhiều mảnh key shares – key thành phần mà không đơn vị riêng lẻ nào nắm quyền kiểm soát hoàn toàn. Quy trình này là Distributed Key Generation (DKG) mình từng nhắc tới ở bài viết về Obol Network. Các bên cầm key shares không cần tiết lộ chúng mà vẫn có thể ghép lại với nhau tạo public key để xác thực chữ ký.
Do quá trình kết hợp key shares và xuất chữ ký diễn ra off-chain, sẽ không phân biệt được tx gửi đi từ MPC wallet hay ví thông thường. Điều này mang tới tính riêng tư nhất định, cho phép các tổ chức muốn tránh sự dòm ngó từ bên ngoài vào hoạt động của họ.
Private Key Rotation là một sản phẩm phụ liên quan tới MPC. Giao thức này tiếp nhận set các mảnh key shares và nhả ra một set khác, có thể xóa set cũ đi và thay bằng set mới mà không làm thay đổi public key cũng như địa chỉ on-chain tương ứng.
/ Ưu điểm
- Loại bỏ single point of failure: Không sử dụng seed phrase, một private key hoàn chỉnh cũng sẽ không bao giờ xuất hiện trên một thiết bị đơn lẻ nào.
- Có thể điều chỉnh signing schemes.
- Trình quản lý truy cập chi tiết.
- Phí giao dịch và phí phục hồi thấp.
- Có thể áp dụng cho nhiều blockchain, miễn sao thuật toán tương thích.
/ Hạn chế
- Quy trình xuất chữ ký off-chain, khó khăn hơn để track và audit.
- Không tương thích với hầu hết các loại ví thông thường.
- Chủ yếu là các sản phẩm tự làm hoặc đặt làm riêng.
/ Phát triển đáng chú ý ở MPC: Programmable Key Pairs (PKP)
Lit là blockchain trữ các mảnh key shares trên nodes của mình. Mỗi cặp public/private key được đại diện bởi một PKP NFT mà chủ sở hữu sẽ nắm quyền kiểm soát cặp key đó. Họ có thể kích hoạt mạng lưới sử dụng key shares để giải mã một file bất kì hoặc ký messages thay cho mình khi đạt đủ các điều kiện nhất định.
// Smart Contract Wallets
Smart wallet về cơ bản là smart contract hoạt động như ví, tức có giao diện để người dùng thao tác, quản lý tài sản, đăng nhập web3, tương tác với dApps các kiểu.. Khác với các loại ví thông thường, smart wallet cần phí khởi tạo để trả gas cho việc deploy smart contract lên on-chain.
Multi-sig wallet là smart wallet cần chữ ký của x/y keys để ủy thác giao dịch. Multisig dùng các chữ ký riêng biệt từ các private keys riêng biệt thay vì một chữ ký xuất ra từ nhiều mảnh key shares như ở MPC wallet. Điều này giúp multisig wallet tương thích và hoạt động như một lớp đặt bên trên các ví thông thường.
/ Ưu điểm
- Loại bỏ single point of failure: Cần nhiều chữ ký để thông qua giao dịch.
- Lập trình quyền truy cập: Người dùng có thể set up các tùy chỉnh riêng như timelocks, giới hạn chi tiêu, thiết lập tự động hóa claim farming rewards, set limit orders..
- Gộp các giao dịch lại để tiết kiệm chi phí, vd như approve token và trade trong cùng một tx.
- Nhờ vào khả năng mở rộng của smart contract, các nhà phát triển có thể thêm nhiều tính năng dưới dạng extension cho phép người dùng tùy ý add thêm vào ví của mình.
- Có thể lập trình các phương án phục hồi như social recovery, deadman switch hoặc một giải pháp hybrid (trữ backup key ở một bên cung cấp dịch vụ này).
- Kiểm toán on-chain thuận tiện do địa chỉ nào, kí giao dịch nào đều được ghi lại minh, dễ dàng kiểm tra khi xảy ra sự cố.
- Có thể chuyển đổi sang các signing schemes khác thuận tiện, tiết kiệm gas hơn hoặc loại có kháng lượng tử (quantum-resistant). Còn có thể set chế độ an toàn trên thiết bị iOS và Android hoặc bật Ed25519 để dùng iOS sinh trắc học và WebAuthn.
- Open Source / Mã nguồn mở: Các tích hợp có thể audit bởi bất kì ai, thúc đẩy hst nhìn ra điểm yếu, từ đó khắc phục và phát triển.
/ Hạn chế
- Chi phí cao hơn ví thông thường.
- Không hỗ trợ non-EVM chains.
- Không tương thích với các non-upgradeable contracts (không thể nâng cấp).
/ Phát triển đáng chú ý ở smart wallets: Account Abstraction
Bấy giờ trên Ethereum tồn tại 2 loại account, externally-owned account hay EOA được người dùng quản lý thông qua private key và smart contract account hoàn toàn do bộ code điều khiển. Cái khó là giao dịch luôn luôn phải được gửi đi từ EOA, đây là quy tắc đã được mã hóa cứng trên EVM. Smart contract wallets hiện tại có rồi nhưng tích hợp chúng gặp nhiều khó khăn do mọi giao dịch đều phải đưa về dạng EOA tx trước khi được Ethereum xử lý.
Mục tiêu của AA là giúp toàn bộ người dùng truy cập tới Ethereum với smart wallets. Bằng cách biến mọi accounts thành smart contracts, giúp linh hoạt hơn trong việc thiết lập quản lý cũng như nâng cao đáng kể trải nghiệm cho người dùng, cho phép họ tự do tùy chỉnh account của mình theo nhu cầu cá nhân.
EIP-4337 là đề xuất quan trọng giúp hiện thực hóa AA trên Ethereum. Về cơ bản, đây là cải tiến hỗ trợ smart contract wallets mà không cần đưa ra bất kì điều chỉnh nào từ giao thức lõi Ethereum. Entry point contract của EIP-4337 đã được deploy lên Ethereum Mainnet vào đầu tháng 3 năm nay.
Các L2s như Starknet hay zkSync đều đang đẩy mạnh các giải pháp AA của riêng mình, lợi thế của họ là các dApps mới xây dựng bên trên có thể xem xét để phát triển sao cho mặc định tương thích / hỗ trợ AA.
// Những thách thức chung
- Các lỗ hổng kĩ thuật: Ý tưởng lưu ký tài sản an toàn nhất cũng không có nghĩa lý gì nếu việc triển khai gặp sai sót.
- Các điểm xâm nhập khác: Ronin Bridge bị hack $600m không phải do lỗi kỹ thuật mà vì nhân viên của Sky Mavis để lộ validator keys. Ngoài việc chọn dùng ví nào để trữ tài sản thì các tổ chức cũng cần đảm bảo quản lý chặt chẽ các yếu tố quan trọng khác trong hệ thống.
- Chi phí chuyển đổi tài khoản: Dù có các giải pháp mới thay thế, người dùng vẫn cần bỏ công sức và chi phí để chuyển qua từ tài khoản EOA của họ.
- Các tính năng bảo vệ chung: Người dùng thông thường sẽ khó có thể đọc hiểu tx data và dễ mắc sai lầm khi thao tác, vấn đề này cần toàn bộ hst phát triển những bộ công cụ hỗ trợ và mẫu UX tối ưu hơn.
// Tổng kết
Tuy được phân thành hai hạng mục khác nhau, song MPC và smart wallets chẳng những không cạnh tranh mà có thể còn hỗ trợ, bổ sung cho nhau về lâu dài. MPC sẽ hữu ích ở giai đoạn xuất và quản lý keys, trong khi đó smart contracts mang tới khả năng mở rộng dồi dào làm tiền đề cho các tính năng mới.