
Nếu bạn từng sở hữu tiền mã hóa, gần như chắc chắn bạn đã nghe cùng một lời cảnh báo: "hãy bảo vệ seed phrase của bạn". Mười hai hoặc hai mươi bốn từ, được viết trên giấy, mà bất kỳ ai tìm thấy chúng đều có thể dùng để rút sạch ví của bạn từ bất cứ đâu trên thế giới. Chuỗi từ duy nhất đó chính là toàn bộ mô hình bảo mật đằng sau hầu hết các ví self-custody — và đó chính là vấn đề. Mất nó, tiền của bạn biến mất. Để ai đó sao chép nó, tiền của bạn biến mất. Một sai lầm, một khoảnh khắc lơ là, một trang phishing đủ thuyết phục, và kết quả vẫn như nhau.
2-of-2 multisig là câu trả lời dễ tiếp cận nhất cho sự mong manh đó. Nó chia khóa của ví bạn ra giữa hai thiết bị, sao cho không một seed, màn hình hay chữ ký đơn lẻ nào có thể tự mình di chuyển coin của bạn. Bài viết này giải thích nó hoạt động ra sao, vì sao điều đó quan trọng, và những kiểu tấn công nào nó ngăn được — cùng những kiểu nào nó không thể ngăn.
Chế độ thất bại của seed phrase đơn lẻ
Hầu hết các ví tiền mã hóa — dù nằm trên điện thoại, trong tiện ích mở rộng của trình duyệt hay trên thiết bị phần cứng — đều được xây dựng quanh một bí mật duy nhất. Bí mật đó là một seed phrase: một chuỗi từ được tạo ra khi bạn thiết lập ví lần đầu, từ đó mọi khóa riêng tư trong ví ấy đều được suy ra về mặt toán học. Bất kỳ ai có seed phrase đều có quyền kiểm soát toàn bộ và không thể đảo ngược đối với mọi đồng coin trong ví đó, trên mọi blockchain mà nó bao phủ.
Điều đó cực kỳ tiện lợi. Nhưng nó cũng là một điểm thất bại duy nhất.
Hãy nghĩ xem bí mật đó phải vượt qua những gì trong suốt những năm bạn dự định giữ coin. Nó phải sống sót qua kẻ trộm đột nhập vào nhà bạn và tìm thấy mảnh giấy trong ngăn kéo. Nó phải sống sót qua hỏa hoạn, lũ lụt hay một đứa trẻ tò mò. Nó phải sống sót qua chiếc laptop nhiễm malware quét clipboard và chụp màn hình. Nó phải sống sót qua mọi email phishing, mọi cửa sổ pop-up giả mạo trong trình duyệt, mọi cuộc gọi từ "bộ phận hỗ trợ" yêu cầu bạn gõ các từ vào biểu mẫu "xác minh". Nó phải sống sót qua chính những sai lầm tương lai của bạn, những điều mà hôm nay bạn không thể đoán trước.
Năm 2022, FBI ước tính rằng chỉ riêng người tiêu dùng tại Hoa Kỳ đã mất hơn 2,5 tỷ đô la vì trộm cắp và lừa đảo liên quan đến tiền mã hóa, và phần lớn trong số tổn thất đó bắt nguồn từ một bí mật duy nhất bị xâm phạm. Mt. Gox, Bitfinex, cầu Ronin — mọi thảm họa tiền mã hóa nổi tiếng đều có cùng một dạng: một bí mật, một vụ xâm nhập, một giao dịch không thể đảo ngược.
Một thiết lập 2-of-2 là cách nói rằng: coin của tôi không nên chỉ cách "biến mất" bằng một tờ giấy ghi chú bị đánh cắp.
Multisig M-of-N, tóm lược
Multisig — viết tắt của "multi-signature" — là một ví yêu cầu nhiều hơn một chữ ký để gửi một giao dịch. Dạng tổng quát được gọi là M-of-N: có tổng cộng N khóa, và bất kỳ M trong số đó phải ký trước khi coin có thể di chuyển.
<span id="signer"></span>Một signer là một thiết bị hoặc một bên giữ một trong N khóa đó. Trên thực tế, một signer thường là một thành phần phần cứng hoặc phần mềm riêng biệt: điện thoại của bạn, một hardware wallet trên bàn, một laptop, một dịch vụ co-signer, hoặc thậm chí là một người bạn đáng tin cậy. Tính chất quan trọng là các signer phải độc lập — việc xâm phạm một trong số chúng không nên cho phép kẻ tấn công truy cập vào bất kỳ signer nào khác.
<span id="threshold"></span>Threshold (M) là số chữ ký cần thiết để chi tiêu. Nếu threshold là 2, thì hai trong số N signer phải mỗi người phê duyệt và ký bằng mật mã trước khi blockchain chấp nhận giao dịch là hợp lệ. Một ví 2-of-3 có ba signer và yêu cầu bất kỳ hai trong số đó. Một ví 3-of-5 có năm signer và yêu cầu bất kỳ ba. Threshold được cố định khi bạn tạo ví và được chính blockchain thực thi, chứ không phải bởi bất kỳ công ty nào.
Threshold và số lượng signer cùng nhau định nghĩa mô hình bảo mật của một ví: bao nhiêu việc phải đúng để bạn chi tiêu, và bao nhiêu việc phải sai cùng lúc để kẻ trộm có thể chi tiêu.
Mô hình cụ thể của 2-of-2
<span id="2-of-2"></span>Trong multisig 2-of-2, threshold bằng tổng số signer: có chính xác hai khóa, và cả hai đều phải ký mỗi lần chi tiêu. Không có khóa dự phòng, không có signer dự phòng, không có quorum để rút lui. Hoặc cả hai thiết bị đều phê duyệt một giao dịch, hoặc giao dịch đó không xảy ra.
Đây là cấu hình multisig đơn giản nhất mà vẫn cung cấp được sự bảo vệ có ý nghĩa. So với 2-of-3, nó dễ thiết lập hơn — bạn chỉ quản lý hai signer thay vì ba — và không yêu cầu chọn một bên thứ ba hoặc một địa điểm để giữ khóa dự phòng. Đánh đổi là 2-of-2 không có lộ trình phục hồi tích hợp sẵn: nếu một trong hai signer bị mất hoặc bị phá hủy vĩnh viễn, bạn không còn có thể chi tiêu coin từ địa chỉ đó nữa. Việc phục hồi trong 2-of-2 được xử lý bằng cách sao lưu riêng seed của từng signer, thường dùng bản sao lưu giấy hoặc thép được niêm phong và cất riêng so với chính thiết bị.
Đối với người dùng self-custody, cặp ghép 2-of-2 phổ biến nhất là "điện thoại cộng với khóa phần cứng" hoặc "điện thoại cộng với thiết bị niêm phong thứ hai". Người dùng ký trên cả hai, mỗi lần.
Cách ví tìm địa chỉ của nó: BIP48
<span id="bip48"></span>BIP48 — Bitcoin Improvement Proposal 48 — là tiêu chuẩn kỹ thuật cho biết các ví multisig phải suy ra khóa công khai và địa chỉ của chúng từ seed phrase của từng signer như thế nào, theo cách có thể tương thích giữa các nhà cung cấp phần mềm. Đó là lý do vì sao một ví 2-of-2 được tạo trong một ứng dụng có thể được mở lại, kiểm tra hoặc khôi phục trong một ứng dụng tương thích khác nhiều năm sau.
Phiên bản đơn giản: seed phrase của từng signer được biến đổi thành một hệ thống phân cấp khóa theo một đường dẫn xác định. BIP48 chỉ định đường dẫn chính xác cho ví multisig — bao gồm một vị trí ghi lại việc ví đang sử dụng địa chỉ legacy, SegWit hay native SegWit — và một vị trí cho "tài khoản" nào bên trong seed đang được dùng. Khi hai signer mỗi người suy ra khóa công khai của mình dọc theo cùng một đường dẫn BIP48, ví sẽ kết hợp hai khóa công khai đó thành một địa chỉ multisig duy nhất. Coin được gửi đến địa chỉ đó chỉ có thể mở khóa bằng chữ ký từ cả hai seed ban đầu.
Vì sao tiêu chuẩn lại quan trọng? Bởi vì nếu không có nó, một ví multisig sẽ là một hộp đen. Nếu nhà cung cấp biến mất, bạn sẽ có hai seed phrase và không có cách nào tương thích để tái dựng địa chỉ mà chúng bảo vệ. BIP48 khiến địa chỉ chỉ thuần túy là một hàm của seed và đường dẫn — bất kỳ ai có tiêu chuẩn và seed đều có thể xây lại ví, mãi mãi, mà không cần tin tưởng vào bất cứ công ty nào.
Ethereum và các chuỗi EVM sử dụng một cơ chế khác (ví hợp đồng thông minh và ERC-4337), nhưng mô hình hiển thị với người dùng vẫn giống nhau: hai signer, một địa chỉ, cả hai đều bắt buộc.
2-of-2 thực sự ngăn chặn được điều gì
Cách rõ ràng nhất để thấy giá trị của 2-of-2 là điểm qua những cuộc tấn công cụ thể và đặt câu hỏi: điều gì thay đổi khi kẻ tấn công phải xâm phạm hai thiết bị độc lập thay vì chỉ một?
Phishing. Người dùng nhấp vào một liên kết "di chuyển ví" rất thuyết phục và gõ một trong các seed phrase của mình vào một trang giả. Với ví dùng seed đơn lẻ, tiền bay đi trong vài phút — kẻ tấn công nhập seed và phát đi một lệnh chuyển. Với 2-of-2, kẻ tấn công bây giờ chỉ nắm giữ một nửa ví. Hắn không thể di chuyển dù chỉ một coin nếu không đồng thời đánh cắp seed thứ hai, vốn nằm trên một thiết bị khác mà người dùng chưa từng gõ vào trang phishing. Cuộc tấn công phishing chuyển từ thảm khốc sang chỉ còn ở mức đáng lo.
Malware trên điện thoại hoặc laptop. Một phần mềm chiếm quyền clipboard hoặc info-stealer xâm phạm một thiết bị ký. Trên ví khóa đơn, ngay khi thiết bị đó cố thực hiện bất kỳ giao dịch nào, malware có thể thay thế địa chỉ đích và người dùng tự ký vào. Với 2-of-2, thiết bị thứ hai hiển thị cho người dùng chi tiết giao dịch thật, không bị sửa đổi, trên một màn hình mà malware không kiểm soát. Người dùng nhìn thấy sự khác biệt và từ chối đồng ký.
Mất thiết bị. Điện thoại của người dùng bị trộm trên tàu. Trên ví hot dùng chữ ký đơn chỉ được bảo vệ bằng mã PIN, một kẻ tấn công quyết tâm có thể trích xuất seed trong vài giờ. Với 2-of-2, chiếc điện thoại bị mất chỉ là một trong hai signer — vô dụng nếu đứng một mình. Người dùng có thời gian để chuyển tiền sang một địa chỉ mới bằng signer còn lại cộng với bản sao lưu seed của điện thoại.
Cưỡng ép ("$5 wrench attack"). Một kẻ có quyền tiếp cận vật lý đòi seed phrase của người dùng. Với seed đơn lẻ, tuân theo có nghĩa là mất toàn bộ. Với 2-of-2, trong đó hai signer nằm ở các địa điểm vật lý khác nhau — chẳng hạn một ở nhà, một trong két an toàn ngân hàng, hoặc một do dịch vụ co-signer đáng tin cậy giữ — người dùng thực sự không thể hoàn tất một giao dịch tại chỗ. Kẻ tấn công bị tước đi phần thưởng tức thời, thứ khiến những cuộc tấn công như vậy đáng được thử ngay từ đầu.
Trong mọi trường hợp, nguyên tắc nền tảng là như nhau: hai vụ xâm phạm độc lập trong cùng một khoảng thời gian ngắn là bài toán khó hơn nhiều so với chỉ một.
2-of-2 không bảo vệ trước những gì
Multisig không phải phép màu. Nó không bảo vệ bạn khỏi việc cố ý ký một giao dịch độc hại — nếu cả hai thiết bị của bạn đều hiển thị cùng một địa chỉ đích sai và bạn vẫn phê duyệt, blockchain không có cách nào biết được. Nó không bảo vệ bạn khỏi việc mất cả hai bản sao lưu trong cùng một đám cháy hay trận lụt, đó là lý do hai bản sao lưu nên nằm ở những nơi tách biệt về mặt vật lý. Nó không bảo vệ bạn khỏi lỗi trong chính phần mềm ví, dù bản chất mã nguồn mở và tuân thủ BIP48 của những ví này có nghĩa là các lỗi như vậy có thể được kiểm toán và lách qua theo cách mà một hệ thống lưu ký đóng không thể làm được. Và nó không bảo vệ bạn khỏi chính mình, khi bạn tự nguyện ký bỏ coin trên cả hai thiết bị để phản ứng với một trò lừa đủ thuyết phục. Threshold nâng cao rào cản; nó không loại người dùng ra khỏi vòng lặp.
Hãy tự thử
Cách hữu ích nhất để thấm thía multisig 2-of-2 là tự mình thiết lập một cái và chứng kiến một giao dịch thật yêu cầu hai lần phê duyệt trước khi được phát đi. SSP Wallet được thiết kế đúng quanh mô hình này ngay từ đầu — điện thoại và trình duyệt của bạn đóng vai trò là hai signer, và không hề có chế độ seed đơn lẻ nào ẩn sau hậu trường.
Thiết lập ví SSP đầu tiên của bạn hướng dẫn từng bước qua quá trình ghép cặp, sao lưu và giao dịch được ký đầu tiên.


