Quay lại blog
MultiSig

Vì sao MultiSig 2-of-3 là điểm cân bằng lý tưởng cho lưu ký cá nhân

Quanh một két 2-of-3, một khóa bị gạch bỏ vì đã mất và một khóa bị đánh cắp bị chặn bên ngoài ranh giới, trong khi hai khóa còn lại vẫn mở được két.

Mọi kế hoạch self-custody thực chất đều là một canh bạc về việc thảm họa nào ập đến trước. Giữ một seed phrase duy nhất không sao chép, và bạn đang đặt cược rằng mất mát sẽ không bao giờ tìm đến nó. Rải nhiều bản sao của cụm từ đó cho an toàn, và bạn đang đặt cược rằng không bản nào bị tìm thấy. Một MultiSig 2-of-3 từ chối chọn một phía: ba khóa độc lập kiểm soát ví, bất kỳ hai khóa nào cũng có thể chuyển tiền, và không khóa đơn lẻ nào làm được. Một khóa có thể bị mất, mà tài sản của bạn vẫn sống sót. Một khóa có thể bị đánh cắp, và tài sản của bạn cũng sống sót qua điều đó.

Khả năng chịu đựng kép đó chính là toàn bộ lập luận, và nó xứng đáng được nói cho chính xác, bởi không một cách sắp đặt bằng khóa đơn nào — ví phần cứng, tấm thép, két ngân hàng — mang lại được điều đó. Dưới đây: vì sao việc chống mất mát và chống trộm cắp kéo về hai hướng ngược nhau, ngưỡng 2-of-3 thực sự đảm bảo điều gì và dừng lại ở đâu, cách bố trí ba khóa sao cho chúng không thể chung một số phận, và bài diễn tập duy nhất giữ cho mô hình khỏe mạnh suốt hàng chục năm.

Mất mát và trộm cắp kéo về hai hướng ngược nhau

Tài sản chết theo hai cách. Chúng bị lấy đi — phishing, mã độc, một vụ trộm, một bên lưu ký sụp đổ — hoặc chúng bị mắc kẹt, vì khóa duy nhất có thể chuyển chúng đi không còn tồn tại ở bất cứ đâu. Kiểu thất bại thứ hai không phải là kiểu hiếm gặp: Chainalysis ước tính khoảng 20% toàn bộ bitcoin nằm trong những ví mà khóa dường như đã mất vĩnh viễn. Không ai tấn công số coin đó. Ai đó đã làm mất một tờ giấy, một chiếc điện thoại, hoặc một ký ức.

Với một seed phrase duy nhất, mọi biện pháp phòng vệ chống lại một kiểu thất bại lại nuôi dưỡng kiểu còn lại. Tạo thêm bản sao và phân tán chúng, thì mất mát trở nên khó xảy ra — nhưng mỗi bản sao là một chứng chỉ chi tiêu hoàn chỉnh, nên giờ trộm cắp có nhiều mục tiêu thay vì một. Giữ đúng một bản sao và giấu thật kỹ, thì trộm cắp trở nên khó hơn — nhưng một trận lụt, một đám cháy, hoặc một chỗ giấu bị quên đi là chấm dứt tất cả. Chúng tôi đã đi qua cái bẫy này trong Seed phrase của bạn là một điểm lỗi duy nhất; nói gọn lại, với một khóa thì không có nấc nào trên mặt số bảo vệ được cả hai đầu cùng lúc.

Bảo mật chống trộm muốn ít bản sao của một khóa hơn. Bảo mật chống mất mát lại muốn nhiều hơn. Một ngưỡng ký là cách để bạn thôi phải chọn lựa.

MultiSig 2-of-3 thực sự đảm bảo điều gì

MultiSig 2-of-3 là một ví được kiểm soát bởi ba khóa độc lập, bất kỳ hai khóa nào trong đó cũng phải ký trước khi tiền có thể chuyển đi. Quy tắc này được thực thi bởi chính blockchain, không phải bởi một ứng dụng hay một công ty: Bitcoin đã hiểu multisig ở tầng script ngay từ những năm đầu, và pay-to-script-hash đã khiến nó trở nên thực dụng để sử dụng vào năm 2012 — còn taproot đã và đang giúp những giao dịch chi tiêu như vậy gọn gàng và riêng tư hơn kể từ năm 2021 — trong khi trên Ethereum và các mạng tương tự, ngưỡng nằm trong một contract mà bất kỳ ai cũng có thể đọc.

Hãy cho hai kiểu thất bại chạy qua quy tắc đó. Mất bất kỳ một khóa nào — điện thoại hỏng, tờ giấy cháy — thì hai khóa còn lại vẫn đạt ngưỡng: bạn ký một giao dịch chuyển toàn bộ sang một ví mới và tiếp tục. Giờ thử trộm cắp: một kẻ tấn công có được bất kỳ một khóa nào chỉ nắm một chữ ký trong khi cần hai, và không lấy được gì. Để thực sự trộm từ một ví 2-of-3 được bố trí tốt, kẻ tấn công phải xâm phạm hai khóa được giữ ở những nơi khác nhau, dưới những hình thức khác nhau, trước khi bạn nhận ra vụ xâm phạm đầu tiên — một tội ác khó hơn hẳn về bản chất so với việc chụp ảnh một seed phrase để quên trong ngăn kéo.

Một giới hạn cần nói thật. Nếu hai khóa hỏng cùng một lúc — một bị mất và, trước khi bạn kịp luân chuyển, một khóa khác bị đánh cắp hoàn toàn — thì một ví 2-of-3 không trao tiền cho kẻ trộm, nhưng nó có thể khiến tiền bị đóng băng: bạn nắm một chữ ký, kẻ tấn công nắm một, và không ai đạt được hai. Đóng băng là một trường hợp xấu nhất tốt hơn nhiều so với bị đánh cắp, và bài diễn tập luân chuyển ở phần sau của bài viết này tồn tại chính là để giữ cho kịch bản đó chỉ nằm trên lý thuyết.

Hai làn đi qua ngưỡng 2-of-3: khi một khóa bị mất, hai khóa còn lại tạo ra hai chữ ký và tiền được chuyển; khi một khóa bị đánh cắp, chữ ký đơn lẻ của kẻ trộm bị chặn
Mất một khóa thì hai khóa còn lại vẫn ký được; kẻ trộm với một khóa không bao giờ đạt tới ngưỡng.

Vì sao không phải 2-of-2, 3-of-5, hay một ví phần cứng thật tốt?

Mỗi phương án thay thế đều từ bỏ một trong hai khả năng chịu đựng.

  • 1-of-1 — một khóa duy nhất, dù được giữ kỹ đến đâu. Một ví phần cứng bảo vệ khóa đó một cách đáng nể khi nó nằm trong thiết bị, nhưng bản sao lưu bằng giấy đằng sau thiết bị lại có thể chi tiêu một mình, nên phép toán không bao giờ thay đổi: một chứng chỉ, toàn quyền, một điểm lỗi duy nhất.
  • 2-of-2. Chịu đựng trộm cắp trọn vẹn — không khóa nào hành động một mình được — và không chịu đựng nổi mất mát: mất bất kỳ khóa nào là tiền bị kẹt vĩnh viễn. Các tài khoản hai bên dùng 2-of-2 vì những lý do chính đáng, nhưng nó cần thêm bộ máy chống sự cố trước khi đủ an toàn để làm két chính của bất kỳ ai.
  • 3-of-5 và lớn hơn. Nhiều dự phòng hơn, và là hình dạng đúng cho các tổ chức có nhiều cán bộ và một quy trình được viết thành văn bản. Với một người, năm seed phrase nghĩa là năm bản sao lưu phải tạo, xác minh, tách biệt về địa lý, và kiểm tra lại trong nhiều năm. Bề mặt vận hành, chứ không phải mật mã học, mới là nơi sai sót sinh sôi.

2-of-3 là ngưỡng nhỏ nhất sống sót qua cả một khóa bị mất lẫn một khóa bị đánh cắp, đó là lý do nó là khuyến nghị tiêu chuẩn cho lưu ký cá nhân chứ không phải một sự thỏa hiệp giữa những lựa chọn tốt hơn. Ví MPC đạt tới một hình dạng rủi ro tương tự bằng cách chia một khóa về mặt toán học thay vì phối hợp ba khóa nguyên vẹn; có những đánh đổi thực sự ở cả hai phía, và chúng tôi đã so sánh chúng trong MPC vs MultiSig: một so sánh thẳng thắn. Đặc tính của multisig quan trọng nhất ở đây: mỗi khóa trong ba khóa là một khóa ví thông thường, có thể khôi phục độc lập, chứ không phải một mảnh của một giao thức độc quyền.

Bố trí ba khóa sao cho chúng không thể chung một số phận

Phép toán ngưỡng chỉ mang lại lợi ích nếu các khóa thực sự hỏng một cách độc lập. Mô hình bố trí mà chúng tôi khuyến nghị hoàn toàn không đòi hỏi mua phần cứng nào cả:

  1. Khóa 1 — chiếc điện thoại dùng hằng ngày của bạn. Chiếc signer bạn mang theo bên mình. Nó khởi tạo giao dịch và đóng góp chữ ký đầu tiên, và tự nó thì không chi tiêu được gì — điều đó lặng lẽ thay đổi giá trị của một tên trộm điện thoại hay một lần nhiễm mã độc.
  2. Khóa 2 — một chiếc điện thoại dư, ngoại tuyến vĩnh viễn. Hầu hết các gia đình đều đã có sẵn một chiếc. Được xóa sạch và giữ khỏi mạng mãi mãi, nó trở thành một cold signer air-gapped: giao dịch chưa ký đi vào dưới dạng mã QR, chữ ký đi ra dưới dạng mã QR, và vật liệu khóa không bao giờ chạm vào một cỗ máy trực tuyến.
  3. Khóa 3 — giấy, ở một nơi hoàn toàn khác. Một seed phrase được viết ra một lần và cất giữ trong một tòa nhà khác — một hộp két ngân hàng, hoặc két sắt của một người thân đáng tin cậy ở một thành phố khác. Nó tồn tại cho những ngày khôi phục, không phải cho thường nhật, và không bao giờ được gõ vào bất cứ thứ gì kết nối internet.

Hai quy tắc chi phối cách bố trí. Không bao giờ để hai khóa chung một tòa nhà, để không một vụ trộm, đám cháy hay trận lụt đơn lẻ nào có thể chạm tới số lượng tối thiểu. Và sự tách biệt về địa lý là một biện pháp kiểm soát bảo mật, không phải một sở thích lưu trữ — khoảng cách chính là thứ biến “xâm phạm hai khóa” từ công việc của một buổi tối thành một chiến dịch có phối hợp. Trong một multisig của Ownbit, mỗi khóa là một seed phrase BIP39 tiêu chuẩn, nên bất kỳ vị trí nào trong ba vị trí cũng có thể được lấp đầy từ phần cứng bạn đã sở hữu: một mnemonic của Ledger hay Trezor được nhập vào như một signer trong ba. MultiSig của Ownbit phối hợp việc đồng ký trên nhiều chain, nên cùng ba khóa đó có thể quản trị BTC, ETH và các L2 lớn của nó, TRON, Solana và nhiều hơn nữa — và một ví đa chữ ký Bitcoin được xây theo cách này thực thi 2-of-3 trực tiếp trong Bitcoin script, kèm những hướng dẫn tự khôi phục đã công bố để chuyển tiền ngay cả khi không có máy chủ của Ownbit.

Ba khóa ở ba vị trí riêng biệt — một điện thoại dùng hằng ngày, một điện thoại dư ngoại tuyến, và một bản sao lưu bằng giấy trong một tòa nhà khác — với các mũi tên cho thấy bất kỳ hai khóa nào cũng có thể gặp nhau để ký
Ba khóa trong ba miền sự cố; bất kỳ hai khóa nào trong số đó cũng có thể gặp nhau để ký.

Bài diễn tập cho sự cố đầu tiên

Một ví 2-of-3 giữ được sức khỏe nhờ một thói quen: xem bất kỳ sự cố nào với một khóa như một chuông báo cháy, chứ không phải một điều phiền toái.

  • Một khóa bị mất — chiếc điện thoại hằng ngày hỏng, tờ giấy không tìm thấy. Hai khóa còn lại vẫn chi tiêu được, nên hãy dùng chúng để chuyển toàn bộ sang một ví 2-of-3 hoàn toàn mới với đủ bộ ba khóa, rồi cho ví cũ nghỉ hưu. Trong vòng vài ngày, không phải vài tháng.
  • Một khóa có thể đã bị lộ — một vụ đột nhập, một thiết bị đáng ngờ, một phong bì sao lưu trông như đã bị mở. Cùng một bài diễn tập, cùng một mức khẩn cấp. Ngay khoảnh khắc tiền đáp xuống địa chỉ mới, bất cứ thứ gì kẻ tấn công nắm giữ chỉ là một chữ ký hướng tới một ngưỡng không còn canh giữ điều gì nữa.
  • Chưa có gì hỏng cả. Hãy chạy một giao dịch chi tiêu thử được đồng ký đầy đủ với một khoản nhỏ ngay khi thiết lập lần đầu, để mỗi khóa đã ký một lần và nghi thức trở nên quen thuộc. Một tình huống khẩn cấp là thời điểm sai để học quy trình.

Bài diễn tập chính là thứ biến “hai sự cố xảy ra đồng thời” từ một rủi ro có thật thành một điều gần như bất khả về mặt thiết kế: khoảng thời gian mà một sự cố thứ hai có thể gây hại kéo dài đúng bằng thời gian bạn cần để luân chuyển sau sự cố đầu tiên.

Nơi 2-of-3 không phải là câu trả lời

Chọn công cụ cho vừa với số tiền cũng là một phần của lập luận. Với một số dư mà bạn có thể mất chỉ với một cái nhún vai, nghi thức tốn kém hơn cả mức rủi ro mà nó bù đắp, và một seed phrase duy nhất được giữ kỹ là một lựa chọn có thể bảo vệ được. Một bên lưu ký có quản lý cũng chính đáng như vậy với người sẽ không bao giờ tự bảo trì khóa — miễn là sự sụp đổ của FTX năm 2022 được tính vào như một lời nhắc rằng một bên lưu ký là một đối tác giao dịch, không phải một bản sao lưu. Các tổ chức nắm giữ quỹ ngân khố thường cần nhiều hơn một ngưỡng trần trụi — vai trò, hạn mức, danh sách trắng — đó lại là một chủ đề riêng. Và bất kỳ mô hình nào lặng lẽ đưa trở lại một bên đáng tin duy nhất đều đáng bị soi xét dù nó xuất hiện ở đâu: làn sóng phản đối Ledger Recover năm 2023, xét cho cùng, là người dùng khước từ việc vật liệu seed rời khỏi thiết bị theo điều kiện của người khác. Một MultiSig 2-of-3 mà bạn tự bố trí không có bên nào như thế. Ba khóa thông thường, hai chữ ký thông thường, và một phép toán ai cũng có thể kiểm chứng.

Câu hỏi thường gặp

Ví MultiSig 2-of-3 là gì?

MultiSig 2-of-3 là một ví được kiểm soát bởi ba khóa độc lập, bất kỳ hai khóa nào trong đó cũng phải ký một giao dịch trước khi tiền có thể chuyển đi. Không khóa đơn lẻ nào chi tiêu được, nên việc đánh cắp một khóa chẳng lấy được gì; bất kỳ hai khóa nào cũng có thể khôi phục tiền, nên việc mất một khóa chẳng làm mắc kẹt điều gì. Ngưỡng được thực thi bởi chính blockchain — bằng script trên Bitcoin và bằng một contract có thể kiểm tra được trên các mạng như Ethereum.

Điều gì xảy ra nếu tôi mất một khóa của một MultiSig 2-of-3?

Không mất gì cả. Hai khóa còn lại vẫn đạt ngưỡng, nên bạn dùng chúng để ký một giao dịch chuyển toàn bộ tiền sang một multisig vừa tạo mới với đủ bộ ba khóa. Hãy làm ngay: khoảng thời gian giữa lúc mất một khóa và lúc luân chuyển ví là cửa sổ duy nhất mà một sự cố thứ hai có thể gây hại cho bạn.

Một kẻ trộm đánh cắp một trong ba khóa của tôi có lấy được gì không?

Không. Một khóa tạo ra một chữ ký còn ví cần hai, nên một kẻ trộm nắm bất kỳ một khóa nào — hoặc một tấm ảnh chụp bất kỳ seed phrase nào — cũng không chuyển được gì. Dù vậy hãy xem sự việc một cách nghiêm túc: luân chuyển sang một ví 2-of-3 mới với các khóa còn lại của bạn để khóa bị đánh cắp trở nên vô giá trị vĩnh viễn.

Tôi có cần ba ví phần cứng cho một MultiSig 2-of-3 không?

Không. Một chiếc điện thoại dùng hằng ngày, một chiếc điện thoại dư giữ ngoại tuyến vĩnh viễn làm cold signer dựa trên QR, và một seed phrase bằng giấy cất ở một nơi khác tạo thành một ví 2-of-3 hoàn chỉnh mà không cần phần cứng nào thêm. Trong Ownbit mỗi khóa là một seed phrase BIP39 tiêu chuẩn, và một mnemonic Ledger hay Trezor sẵn có có thể được nhập vào làm một trong ba khóa nếu bạn muốn.

Nếu mô hình đọc trên giấy thấy ổn, hãy thử nó với ít tiền lẻ trước khi tin tưởng giao cho nó những khoản đáng kể. MultiSig của Ownbit thiết lập một ví 2-of-3 trên hai chiếc điện thoại và một bản sao lưu bằng giấy chỉ trong một buổi chiều, không phần cứng nào phải mua, và cùng những khóa đó có thể vận hành một ví đa chữ ký Bitcoin mà ngưỡng của nó được thực thi bởi chính Bitcoin script. Mỗi người dùng mới đều được dùng thử miễn phí 7 ngày, và khóa cùng tài sản của bạn vẫn thuộc về bạn bất kể tư cách thành viên.