
Social Recovery Wallet: Vẻ Đẹp Của Sự An Toàn Giả Tạo
Trương Quân
Hôm nay, tôi nhận được một cuộc gọi từ một quỹ đầu tư đang muốn đưa sản phẩm wallet thông minh của họ ra thị trường Việt Nam. Họ tự hào giới thiệu tính năng "social recovery" – khôi phục ví bằng bạn bè và người thân. Tôi chỉ hỏi một câu: "Nếu tôi có 10 triệu USD trong ví, và tôi cần 3 trong 5 người giám hộ đồng ý để khôi phục, thì tôi đang sở hữu ví đó hay tôi đang sở hữu một danh sách bạn bè?" Đầu dây bên kia im lặng. Đây chính là lý do tôi viết bài này.
Social recovery wallet không phải là một khái niệm mới. Từ năm 2018, Argent đã giới thiệu cơ chế này, và sau đó Safe (trước đây là Gnosis Safe) đã module hóa nó. Vitalik Buterin liên tục ca ngợi social recovery như một giải pháp cho vấn đề mất khóa cá nhân – rào cản lớn nhất cho người dùng mới. Khái niệm này nghe có vẻ hoàn hảo: một người dùng mới không cần phải ghi nhớ 12 từ seed phrase; họ chỉ cần chọn 5 người bạn đáng tin cậy, và nếu mất khóa, họ có thể nhờ bạn bè giúp khôi phục. Nhưng khi tôi đào sâu vào mã nguồn, tôi thấy một vực thẳm giữa lý thuyết và thực tế.
Technical debt ở đây là thiết kế cơ chế phục hồi dựa trên con người, trong khi blockchain sinh ra để loại bỏ sự phụ thuộc đó. Blockchain được xây dựng trên triết lý "trustless" – không cần tin tưởng ai. Nhưng social recovery đưa con người trở lại làm trung tâm của mô hình bảo mật. Bạn không còn phải tin tưởng một thực thể tập trung, nhưng bạn phải tin tưởng một nhóm người quen biết. Và con người thì có thể bị mua chuộc, bị ép buộc, hoặc chỉ đơn giản là bị lừa bởi một cuộc gọi lừa đảo qua điện thoại.
Hãy nhìn vào cách hoạt động thực tế của social recovery. Khi bạn tạo một ví thông minh, bạn chỉ định danh sách những người giám hộ – thường là 3/5 hoặc 2/3. Khi bạn cần khôi phục, bạn gửi một giao dịch đề xuất thay đổi khóa sở hữu. Các giám hộ sẽ ký vào giao dịch đó. Nếu đủ số chữ ký, giao dịch sẽ được thực thi sau một khoảng thời gian chờ (timelock). Về lý thuyết, điều này ngăn chặn một người giám hộ độc nhất tự ý thay đổi quyền kiểm soát. Nhưng thực tế, các cuộc tấn công không bao giờ chỉ nhắm vào một người.
Setup tôi đang theo dõi ngay bây giờ là các hợp đồng thông minh của Argent và Safe, nơi mà logic khôi phục có thể bị tấn công bởi chính những người giám hộ. Kịch bản tấn công điển hình: kẻ tấn công thực hiện một chiến dịch phishing nhắm vào hai trong ba người giám hộ của nạn nhân. Họ gửi cho những người này một token hợp lệ, yêu cầu họ ký một "giao dịch xác minh" mà thực chất là đề xuất thay đổi khóa sở hữu. Người giám hộ không có đủ kiến thức kỹ thuật để phân biệt. Khi nạn nhân phát hiện ra, thời gian chờ có thể đã trôi qua và quyền kiểm soát ví đã nằm trong tay kẻ tấn công. Đây không phải là một khả năng viễn tưởng; nó là một vector tấn công đã được chứng minh trong nhiều hệ thống xã hội khác. Con người là điểm yếu nhất trong chuỗi bảo mật, nhưng chúng ta lại đặt trọng trách bảo vệ tài sản lên chính họ.
Những người ủng hộ social recovery thường lập luận rằng nó an toàn hơn so với việc tự lưu trữ private key vì private key có thể bị mất hoặc bị đánh cắp. Nhưng điều này trộn lẫn hai loại rủi ro khác nhau. Rủi ro mất khóa là một vấn đề về tính khả dụng, còn rủi ro bị đánh cắp là một vấn đề về tính bảo mật. Social recovery giải quyết vấn đề mất khóa nhưng đồng thời làm tăng diện tích tấn công cho vấn đề đánh cắp. Thay vì phải đánh cắp một chiếc khóa, kẻ tấn công chỉ cần thao túng 3 người bạn không được đào tạo của nạn nhân. Đây là một sự dịch chuyển rủi ro, không phải là một sự giảm thiểu rủi ro.
Insight ở cấp độ giao thức mà hầu hết mọi người bỏ lỡ là sự khác biệt giữa "trust-minimization" và "trust-elimination". Không có hệ thống nào hoàn toàn loại bỏ niềm tin. Ngay cả việc tự lưu trữ private key cũng đòi hỏi bạn phải tin rằng chiếc máy tính của bạn không bị nhiễm malware, tin rằng bạn sẽ không bao giờ quên mật khẩu, tin rằng bạn không bị ai đó theo dõi khi nhập khóa. Nhưng có một sự khác biệt quan trọng: trong một hệ thống tự lưu trữ thuần túy, niềm tin nằm ở một thực thể duy nhất là chính bạn. Bạn có thể quản lý rủi ro này bằng cách sử dụng nhiều lớp bảo vệ. Trong social recovery, niềm tin được phân tán đến những người khác, những người có động cơ và khả năng bảo mật khác nhau. Bạn không thể kiểm soát họ. Đó là lý do tại sao cụm từ "broken by design" có cơ sở kỹ thuật vững chắc.
Nền kinh tế chú ý của crypto hoạt động như sau: khi một cơ chế an toàn được coi là "đủ tốt", giá trị tài sản được đặt trên nó sẽ tăng, và đồng thời động cơ tấn công cũng tăng. Nếu social recovery wallet trở thành tiêu chuẩn cho người dùng mới, tổng giá trị tài sản được bảo vệ bằng mô hình giám hộ con người sẽ tăng lên hàng tỷ đô la. Khi đó, các cuộc tấn công có tổ chức nhắm vào những người giám hộ – những người thường không có chuyên môn bảo mật – sẽ trở thành một ngành công nghiệp ngầm. Kẻ tấn công không cần hack ví; họ chỉ cần hack danh bạ điện thoại của nạn nhân để tìm ra bạn bè, sau đó thực hiện một chiến dịch kỹ thuật xã hội dài hơi. Đây là một vấn đề kinh tế, không phải chỉ là một vấn đề kỹ thuật.
Nếu bạn lọc Smart Money, bạn sẽ thấy các quỹ đầu tư lớn đang đặt cược vào account abstraction và smart contract wallet, nhưng họ thường không hiểu rõ rủi ro xã hội này. Họ nhìn thấy tiềm năng tiếp cận hàng triệu người dùng mới và bỏ qua các cảnh báo từ các nhà nghiên cứu bảo mật. Tôi đã có cơ hội nói chuyện với một vài quỹ đầu tư mạo hiểm tại Châu Âu, và hầu hết họ đều tập trung vào tốc độ ra mắt sản phẩm mà ít ai đặt câu hỏi về mô hình mối quan hệ con người trong hệ thống. Điều này gợi nhớ đến giai đoạn đầu của các giao thức DeFi, khi các nhà phát triển vội vàng tung ra sản phẩm trước, bảo mật tính sau. Kết quả là hàng trăm triệu đô la bị mất trong các vụ hack.
Khi tôi phân tích chi tiết hơn về các triển khai hiện tại, tôi thấy rằng hầu hết các xã hội phục hồi đều có thời gian chờ (timelock) và cơ chế hủy bỏ. Điều này có nghĩa là nạn nhân có thể phát hiện ra một cuộc tấn công đang diễn ra và hủy bỏ trước khi giao dịch được thực thi. Nhưng làm thế nào để nạn nhân phát hiện? Họ phải mở ứng dụng ví thường xuyên và kiểm tra trạng thái. Một người dùng mới có thể không làm điều này. Và nếu nạn nhân là người nổi tiếng, họ có thể bị theo dõi liên tục. Kẻ tấn công có thể chọn một thời điểm khi nạn nhân đang bận rộn, hoặc trong kỳ nghỉ, hoặc khi họ mất khả năng phản ứng. Thời gian chờ trở thành một cửa sổ rủi ro, không phải là một biện pháp bảo vệ.
Một lập luận khác mà tôi nghe được là "người giám hộ có thể được chọn từ các cá nhân có kỹ năng công nghệ cao". Nhưng điều đó đặt ra một câu hỏi: tại sao một người có kỹ năng công nghệ cao lại muốn chịu trách nhiệm về tài sản của bạn? Nếu họ là bạn thân, họ sẽ phải đối mặt với sức ép tình cảm và pháp lý. Nếu họ là dịch vụ chuyên nghiệp, thì lại quay về mô hình tập trung. Và nếu họ là một công ty bảo mật, thì bạn đang trả phí cho một dịch vụ mà có thể bạn không thể kiểm soát. Sự mơ hồ này làm cho mô hình trở nên không bền vững.
Tôi nhớ lại sự kiện UST depeg vào tháng 5 năm 2022, khi tôi mất gần như toàn bộ tài sản của mình trong 72 giờ. Kinh nghiệm đó dạy tôi rằng sự an toàn rõ ràng thường là dấu hiệu của một cái bẫy. Khi một giao thức hoặc cơ chế được ca ngợi như một "cuộc cách mạng", hãy kiểm tra các giả định ẩn bên dưới. Social recovery có vẻ như một mạng lưới an toàn, nhưng thực chất nó là một mạng lưới phụ thuộc lẫn nhau. Trong một cuộc khủng hoảng, sự phụ thuộc lẫn nhau có thể trở thành một chuỗi sụp đổ, khi mọi người đều cùng lúc bị ảnh hưởng. Nếu hai người giám hộ là vợ chồng bạn thân của bạn, và cả hai đều bị lừa bởi cùng một chiến dịch phishing, thì ngưỡng an toàn 3/5 của bạn coi như sụp đổ.
Giao dịch thay đổi mọi thứ. Mỗi giao dịch trên blockchain đều có thể được phân tích và theo dõi. Tôi đã dành nhiều năm làm due diligence analyst, theo dõi dòng tiền của các quỹ đầu tư. Khi tôi nhìn vào các hợp đồng thông minh của một số ví social recovery, tôi thấy rằng logic khôi phục thường được ủy quyền cho một module riêng. Module này có thể được nâng cấp. Và nếu một trong những người giám hộ là một hợp đồng thông minh, thì có thể có một lỗ hổng logic trong hợp đồng đó. Điều này tạo ra một lớp tấn công thứ hai mà người dùng không nhận thức được. Họ nghĩ rằng họ đang bảo vệ ví bằng bạn bè, nhưng thực ra họ đang tin vào một chuỗi phụ thuộc mà họ không thể kiểm soát.
Khi tôi so sánh social recovery với các giải pháp thay thế, tôi nhận thấy rằng hardware wallet vẫn là tiêu chuẩn vàng cho việc lưu trữ lạnh. Một chiếc Ledger hoặc Trezor không có kết nối internet, vì vậy việc tấn công từ xa gần như không thể. Nhưng hardware wallet cũng đòi hỏi người dùng phải hiểu biết về seed phrase, và nếu họ mất seed phrase, họ sẽ mất tất cả. Một số người dùng giải quyết bằng cách viết seed phrase lên giấy và cất trong két sắt. Điều này có thể an toàn, nhưng không thể phục hồi nếu người dùng qua đời. Trong khi đó, social recovery có thể giúp chuyển tài sản cho người thừa kế. Tuy nhiên, sự tiện lợi này không đáng để đánh đổi bằng sự an toàn. Chúng ta có thể kết hợp cả hai: sử dụng hardware wallet làm khóa chính, và sử dụng một hợp đồng thông minh cho phép người thừa kế yêu cầu chuyển tài sản sau một thời gian trì hoãn nếu chủ sở hữu không phản đối. Điều này tránh phụ thuộc vào con người, trong khi vẫn đạt được mục tiêu là chuyển tài sản cho người thân.
Một điểm mù quan trọng mà hầu hết các bài phân tích bỏ qua là sự khác biệt giữa việc sử dụng social recovery như một cơ chế khôi phục khẩn cấp và việc sử dụng nó như một cơ chế xác thực hàng ngày. Trong thực tế, một số ứng dụng ví tích hợp luồng khôi phục vào quá trình đăng nhập hàng ngày, khiến người dùng phụ thuộc vào phản hồi của người giám hộ một cách liên tục. Điều này mở rộng diện tích tấn công lên rất nhiều. Nếu một người vào một trang web lừa đảo và ký một thông điệp yêu cầu một người giám hộ xác nhận, thì ngay cả khi giao dịch không thay đổi khóa, nó có thể bị lợi dụng để làm rò rỉ thông tin.
Câu hỏi cốt lõi là: chúng ta có nên đánh đổi tính bảo mật để lấy tính dễ sử dụng? Tôi không tin rằng đó là một sự đánh đổi cần thiết. Chúng ta có thể xây dựng các hệ thống vừa an toàn, vừa dễ dùng, bằng cách sử dụng mật mã tiên tiến hơn. Ví dụ, MPC (multi-party computation) cho phép chia nhỏ khóa thành nhiều phần và yêu cầu sự kết hợp của các phần để tạo ra chữ ký. Mỗi phần có thể được lưu trữ trên các thiết bị khác nhau. Điều này không phụ thuộc vào con người như người giám hộ. Passkey cũng là một hướng đi đầy hứa hẹn, sử dụng sinh trắc học và khóa phần cứng tích hợp trên điện thoại. Những công nghệ này có thể mang lại trải nghiệm tốt hơn mà không tạo ra các lỗ hổng xã hội.
Vậy tại sao social recovery vẫn nhận được sự ủng hộ mạnh mẽ như vậy? Tôi nghĩ đó là bởi vì câu chuyện của nó rất dễ hiểu và dễ bán. "Bạn bè giúp bạn lấy lại ví" nghe có vẻ thân thiện và gần gũi. Nhưng trong thế giới tài sản kỹ thuật số, sự thân thiện có thể là một chiến thuật để che giấu sự phức tạp và rủi ro. Khi một sản phẩm quá dễ hiểu, thường thì nó đã che giấu đi các lớp phức tạp bên dưới. Tôi nhớ đến câu nói của một nhà nghiên cứu bảo mật: "Nếu bạn nghĩ rằng một hệ thống an toàn bởi vì nó phức tạp, bạn đang nhầm lẫn giữa sự phức tạp và sự an toàn." Thực tế, sự đơn giản dễ hiểu thường đi kèm với sự thiếu sót trong các mô hình mối đe dọa.
Đối với các nhà phát triển đang xây dựng ví tại Việt Nam, tôi có một lời khuyên: hãy thiết kế một hệ thống không dựa trên sự tin tưởng vào bạn bè, nhưng hãy cung cấp một lớp phục hồi dựa trên bằng chứng mật mã. Ví dụ, bạn có thể tạo ra một bản sao khóa được mã hóa bằng mật khẩu yếu, và yêu cầu người dùng gửi bản mã hóa này đến nhiều nơi khác nhau. Nếu họ cần khôi phục, họ có thể giải mã bằng mật khẩu, nhưng mật khẩu yếu có thể bị brute-force. Điều này không tốt hơn social recovery. Hãy sử dụng một mô hình kết hợp: sử dụng khóa chính trên thiết bị an toàn, và sử dụng một khóa phụ được lưu trữ tại một trung tâm dữ liệu độc lập, được mã hóa bằng một mã PIN. Mã PIN nên dài và được thay đổi thường xuyên. Đây không phải là một giải pháp hoàn hảo, nhưng nó không đặt trọng trách bảo mật lên những người không được đào tạo.
Một khía cạnh khác cần được xem xét là trách nhiệm pháp lý. Nếu một người giám hộ ký một giao dịch khôi phục từ thiện và sau đó bị kiện vì làm mất tài sản của chủ ví, thì họ sẽ phải đối mặt với những rắc rối pháp lý. Liệu có một khuôn khổ pháp lý để bảo vệ họ không? Tại hầu hết các quốc gia, câu trả lời là không. Điều này tạo ra một rào cản lớn cho việc áp dụng, vì không một ai có hiểu biết sẽ muốn trở thành người giám hộ cho một người bạn sở hữu crypto lớn. Họ sẽ lo lắng về trách nhiệm hình sự và dân sự. Ngay cả khi họ không bị kiện, họ vẫn có thể bị tống tiền.
Hãy nhìn vào một ví dụ cụ thể. Giả sử bạn có một người bạn là người nổi tiếng, sở hữu một bộ sưu tập NFT trị giá hàng triệu đô la. Bạn là một trong năm người giám hộ. Một kẻ tấn công có thể liên hệ với bạn và đe dọa sẽ phát tán những hình ảnh nhạy cảm nếu bạn không ký một giao dịch thay đổi khóa của ví người nổi tiếng đó. Bạn có chịu ký không? Đa số mọi người sẽ ký. Điều này cho thấy social recovery không chỉ là một vấn đề kỹ thuật, mà còn là một vấn đề xã hội và tâm lý. Những người giám hộ là những người bình thường, có những yếu đuối và sợ hãi giống như tất cả chúng ta. Đặt họ vào một vị trí quyền lực như vậy là không công bằng.
Tôi tin rằng sự thổi phồng của social recovery là một phần của một xu hướng lớn hơn trong crypto – sự lạm dụng từ "decentralized". Nhiều dự án tự gọi mình là phi tập trung trong khi thực chất vẫn có một nhóm nhỏ kiểm soát. Tương tự như vậy, social recovery được gọi là "khôi phục phi tập trung", nhưng thực chất nó là "sự phân tán trách nhiệm". Sự phân tán trách nhiệm không có nghĩa là an toàn; nó có nghĩa là không ai chịu trách nhiệm. Khi không ai chịu trách nhiệm, sẽ không ai có động lực để bảo vệ hệ thống. Đây là một vấn đề nghiêm trọng hơn nhiều so với một lỗ hổng kỹ thuật đơn lẻ.
Tôi nhớ khi tôi còn làm việc trong lĩnh vực due diligence, tôi thường phải đọc những báo cáo về các vụ lừa đảo tài chính. Điểm chung của tất cả các vụ lừa đảo lớn là sự tin tưởng quá mức vào một người hoặc một tổ chức. Khi một hệ thống phụ thuộc vào niềm tin, nó sẽ luôn bị khai thác. Social recovery về cơ bản đang tạo ra một hệ thống niềm tin xã hội, và các hệ thống như vậy luôn dễ bị tấn công bởi những kẻ lợi dụng lòng tin. Có một lý do tại sao các ngân hàng không cho phép bạn bè của bạn là người bảo lãnh cho tài khoản của bạn – bởi vì ngân hàng hiểu rằng mối quan hệ bạn bè có thể bị phá vỡ.
Thay vì social recovery, tôi đề xuất một mô hình "khôi phục dựa trên thời gian" (time-based recovery). Ý tưởng là bạn có thể cài đặt một khoảng thời gian trì hoãn cho việc khôi phục, và trong thời gian đó, bạn có thể hủy bỏ nếu bạn vẫn còn khóa. Nếu bạn mất khóa, bạn đợi một khoảng thời gian nhất định (ví dụ 30 ngày), sau đó một khóa mới được phát hành. Khóa mới được gửi đến một địa chỉ email hoặc một thiết bị khác. Mô hình này không đòi hỏi sự tham gia của người khác, giảm thiểu rủi ro xã hội. Tuy nhiên, nó có một nhược điểm là nếu bạn mất cả email và thiết bị, bạn sẽ không thể khôi phục. Nhưng nó an toàn hơn social recovery rất nhiều.
Cuối cùng, tôi muốn đặt một câu hỏi cho những người đang quảng bá social recovery: Bạn có sẵn sàng trở thành người giám hộ cho ví của những người dùng của bạn không? Bạn có sẵn sàng chịu trách nhiệm pháp lý và đối mặt với áp lực tâm lý khi một người bạn mất tài sản? Nếu câu trả lời là không, thì bạn đang tạo ra một sản phẩm mà bạn không dùng. Điều đó nói lên rất nhiều điều về tính bền vững của sản phẩm đó.
Trong bối cảnh thị trường đi ngang như hiện nay, khi mọi người đang tìm kiếm những cơ hội đầu tư và bảo toàn vốn, điều quan trọng nhất là phải hiểu rõ các mô hình bảo mật. Đừng để những câu chuyện đẹp đẽ che giấu những rủi ro cơ bản. Hãy luôn tự hỏi: "Nếu tôi bị tấn công, ai sẽ là người cứu tôi? Và tại sao họ lại cứu tôi?" Nếu câu trả lời là bạn bè, hãy tự hỏi: "Họ có đủ khả năng để chống lại một cuộc tấn công có tổ chức không?" Rất có thể là không.
Xây dựng một hệ thống bảo mật vững chắc không đến từ việc tìm kiếm những người đáng tin cậy, mà đến từ việc thiết kế các giao thức hoạt động ngay cả khi tất cả những người tham gia đều độc hại. Đây là nguyên tắc cơ bản của blockchain, và chúng ta nên nhớ nguyên tắc này khi thiết kế bất kỳ sản phẩm nào. Đừng bán cho người dùng sự yên tâm giả tạo; hãy bán cho họ những hệ thống thực sự hoạt động. Có lẽ, đã đến lúc chúng ta phải thẳng thắn rằng social recovery không phải là một cải tiến bảo mật, mà là một sự đánh đổi. Và trong hầu hết các trường hợp, sự đánh đổi đó là không đáng.