Single-signer multisig: SSP làm hai thiết bị cảm thấy như một ví thế nào

·9 phút đọc·Bởi SSP Editorial Team
Bìa SSP xanh hải quân với biểu tượng khóa, tia sét và khiên trên nền gradient tối, chương UX single-signer của Multisig Deep Dive

Nếu bạn đã theo loạt bài này từ multisig là gì, bạn biết giao thức: nhiều hơn một khóa riêng phải ký trước khi tiền di chuyển. Bạn đã thấy bộ chọn m-of-n, kết nối BIP48, chân trời gộp Schnorr, và so sánh với social-recovery. Tất cả đó là máy móc. Bài này về trải nghiệm.

Phê bình lịch sử trung thực với multisig là nó từng thù địch với người dùng. Nhiều ví, trao đổi PSBT thủ công, phần mềm điều phối, buổi ký — giao thức thì vững, nhưng UX là một sự trừng phạt. Single-signer multisig là ý tưởng sản phẩm sửa điều đó: một ví dùng quy tắc chi tiêu multisig đầy đủ trên chuỗi, nhưng cảm thấy — với người dùng nó — như một ví duy nhất với một nút duy nhất. SSP được xây quanh ý tưởng đó.

TL;DR

  • "Single-signer" không nghĩa là một khóa. Nghĩa là giao thức vẫn có m trong n khóa, nhưng UX ký được nén thành một luồng duy nhất. Người dùng ký ở một chỗ; ví xử lý phối hợp giữa thiết bị.
  • Hình dạng cụ thể của SSP: một tiện ích trình duyệt, một ứng dụng di động (SSP Key), một bản dạng ví. Bạn nhấn Send, xác nhận trên điện thoại, giao dịch được phát đi. Hai chữ ký xảy ra; bạn trải nghiệm một.
  • Cái thắng là lợi ích ngưỡng (chống trộm, không single-point-of-failure) được giữ trong khi chi phí phối hợp giảm gần như UX single-sig.
  • Cái mất là điều này chỉ hoạt động khi cả hai thiết bị của bạn có thể truy cập. Khoảnh khắc UX phải lộ ra tính đa — phục hồi, thay thiết bị, khôi phục ở bên thứ ba — sự trừu tượng bị vỡ, theo thiết kế.
  • Mẫu này gần nhất với một câu trả lời "không thỏa hiệp" cho self-custody solo ở quy mô retail. Đó là canh bạc của SSP, và ngày càng là canh bạc của mọi sản phẩm multisig hiện đại (Coinbase Wallet, câu chuyện custody đang tiến hóa của Phantom, luồng smart-account của Safe trên Ethereum).

Lý tưởng single-signer: người dùng thực sự muốn gì

Nếu bạn hỏi một người dùng self-custody họ muốn gì, bạn nhận được những câu trả lời mâu thuẫn:

  • "Tôi muốn tiền của tôi an toàn." — Hàm ý multisig, hardware, dự phòng.
  • "Tôi muốn ký một giao dịch trong năm giây." — Hàm ý một thiết bị, một chạm.
  • "Tôi muốn phục hồi nếu tôi mất gì đó." — Hàm ý sao lưu seed, dự phòng.
  • "Tôi không bao giờ muốn ghi seed nữa." — Hàm ý custody khóa do nền tảng quản lý.
  • "Tôi muốn nó rẻ." — Hàm ý dấu chân trên chuỗi tối thiểu.

Những mục tiêu này không cùng xếp hàng. Lịch sử thiết kế ví self-custody là lịch sử của việc tôn trọng mục tiêu nào và lịch sự từ chối mục tiêu nào. Ví cứng tôn trọng an toàn và phục hồi với cái giá UX. Ví smart-contract tôn trọng UX và phục hồi với cái giá tầm với cross-chain. Hot wallet thuần túy tôn trọng UX và rẻ với cái giá an toàn.

Single-signer multisig là một nỗ lực để tôn trọng cả năm — một phần — bằng cách tách ngữ nghĩa giao thức khỏi ngữ nghĩa giao diện. Ví vẫn làm điệu nhảy multisig đầy đủ trên chuỗi; người dùng chỉ không phải tham gia điệu nhảy đó nhiều hơn một lần mỗi giao dịch.

SSP cung cấp điều đó thế nào

Cách triển khai cụ thể của SSP, nói thẳng:

  1. Lúc cài đặt, bạn cài tiện ích trình duyệt và ứng dụng di động (SSP Key). Mỗi cái sinh ra seed riêng, bạn sao lưu riêng (đây là bước trong checklist 1000 đầu tiên). Hai thiết bị trao đổi khóa công khai; từ thời điểm đó, chúng chia sẻ một bản dạng ví ở mức giao thức.
  2. Lúc ký hằng ngày, bạn nhấn Send trong tiện ích trình duyệt, xem lại giao dịch, và phê duyệt. Tiện ích dựng một giao dịch ký một phần và đẩy thông báo tới điện thoại của bạn. Ứng dụng di động hiển thị chi tiết giao dịch, bạn chạm phê duyệt, và ứng dụng tạo chữ ký thứ hai. Tiện ích gộp cả hai chữ ký và phát đi. Tổng thời gian: khoảng 8 giây khi cả hai thiết bị đều trước mặt bạn.
  3. Lúc nhận tiền, địa chỉ hiển thị là địa chỉ multisig dẫn xuất BIP48 từ cả hai xpubs. Bạn quét hoặc copy; người gửi không thấy gì lạ. Từ phía họ, nó trông giống bất kỳ địa chỉ crypto nào khác.
  4. Lúc đối chiếu, ví hiển thị số dư, lịch sử, phí v.v., y như ví single-sig. Không có "màn hình multisig" riêng biệt. Hình dạng giao thức là vô hình trong sử dụng thông thường.

Lựa chọn thiết kế then chốt là chữ ký thứ hai là tính đa duy nhất mà người dùng phải nghĩ về. Cài đặt là hai thiết bị, ký là một chạm thêm, và đó là toàn bộ bề mặt của giao thức multisig từ góc nhìn người dùng.

Một chi tiết nhỏ nhưng quan trọng: tiện ích trình duyệt SSP và SSP Key không cùng chỗ. Chúng trên các OS khác nhau, phần cứng khác nhau, bề mặt tấn công khác nhau. Đó là điều làm cài đặt hai-chữ-ký thành rào cản trộm thực sự chứ không chỉ là gờ giảm tốc UX. (Chúng tôi mở chi tiết trong bài bảy chế độ thất bại và trong 2-of-2 multisig là gì.)

Điều người dùng không bao giờ thấy

Rất nhiều công đoạn dành để giữ người dùng khỏi phải xử lý hệ thống ống của multisig. Cụ thể:

  • PSBT (Partially Signed Bitcoin Transactions) là các cấu trúc dữ liệu cồng kềnh di chuyển giữa các thiết bị cùng ký. Trong setup multisig truyền thống bạn sao chép-dán chúng thủ công. SSP tuần tự hóa và truyền qua kênh phối hợp của riêng nó; người dùng thấy một thông báo, không phải chuỗi base64.
  • Trao đổi xpubs của cosigner là sự kiện cài đặt một lần. Trong multisig truyền thống, bạn nhập xpubs từ mỗi cosigner một cách tường minh. SSP bọc điều này vào luồng ghép cặp tại cài đặt; bạn xác nhận một mã QR hoặc mã sáu chữ số và không bao giờ chạm vào vật liệu bên dưới.
  • Ước tính phí, xử lý tiền thừa, và xoay vòng địa chỉ được ví xử lý chính xác cách ví single-sig làm, dù chính ví là multisig bên dưới mui xe.
  • Redeem script — script BIP48-chuẩn mô tả quy tắc multisig — được ví dựng tự động. Người dùng không thấy nó, không phê duyệt từng dòng, không cần biết nó tồn tại. (Họ có thể thấy nó trên block explorer nếu nhìn, đó là tính chất "hãy cho xem việc của bạn" sạch nhất của ví multisig.)

Tất cả sự trừu tượng đó là công việc cần thiết, nhưng cũng là rủi ro — mỗi khi giao thức bị giấu khỏi người dùng, ví chịu trách nhiệm làm đúng phần bị giấu. Công việc kiểm toán của SSP (Halborn) phần lớn về chính những đường mã vô hình này.

Khi nào không còn cảm giác single-signer

Trừu tượng không hoàn hảo, và quan trọng phải biết nó vỡ ở đâu. UX single-signer giữ được khi cả hai thiết bị đều có sẵn. Các vết nứt xuất hiện khi một cái không có:

  • Thay thiết bị. Khi bạn đổi điện thoại, thiết bị mới phải ghép cặp lại. Đó là bước phối hợp multisig một lần thực sự hiển thị — ví hướng dẫn bạn hiển thị lại hai thiết bị cho nhau.
  • Phục hồi từ seed. Nếu một thiết bị bị phá hủy, bạn phục hồi nó từ seed phrase sang một thiết bị mới, rồi ghép cặp lại. Sự thật rằng bạn có hai seed (mỗi thiết bị một) trở nên hiển thị trong khoảnh khắc này theo cách không có trong sử dụng thông thường.
  • Phục hồi cross-software. Nếu một ngày bạn nạp hai seed SSP vào một ví multisig bên thứ ba (Sparrow, Electrum, v.v.), toàn bộ hệ thống ống multisig trở nên hiển thị — đó là tính năng, không phải lỗi, vì nó chứng minh ví của bạn có thể tương tác, nhưng đó không phải UX SSP.
  • Chi tiêu khi một thiết bị offline. Ví không thể cùng ký nếu không có cả hai thiết bị; đó là giao thức. Bạn sẽ thấy trạng thái "đang chờ chữ ký thứ hai" cho đến khi thiết bị kia online.

Ba điều đầu hiếm đến mức không thực sự làm xấu UX trung bình. Cái thứ tư là điểm ma sát phổ biến nhất — và là điểm ma sát đúng. Nếu ví cho phép bạn chi mà không có thiết bị thứ hai, nó không còn là ví 2-of-2. Ma sát đó là an toàn; bạn không thể kỹ thuật bỏ nó mà không loại bỏ tính chất bạn đang trả tiền cho.

Thiết kế quanh UX single-signer

Ba nguyên tắc thiết kế mà SSP — và các sản phẩm multisig hiện đại khác — tuân theo để giữ trừu tượng này chặt:

  1. Hai cosigner phải sống trên các bề mặt mối đe dọa khác nhau. Một ví đặt cả hai khóa cùng ký trên cùng một OS thực sự không cung cấp lợi ích an toàn; nó chỉ trải một bề mặt tấn công lên hai khóa. Sự phân chia của SSP giữa tiện ích trình duyệt và ứng dụng di động bắt buộc điều đó một cách tự nhiên.
  2. Kênh phối hợp phải không thể giả mạo. PSBT mà tiện ích trình duyệt gửi cho ứng dụng di động phải được liên kết về mặt mật mã với đúng ví và đúng giao dịch; nếu không trừu tượng trở thành bề mặt tấn công của chính nó. SSP ký và xác thực vật liệu này ở lớp giao thức.
  3. Hợp đồng người dùng phải trung thực về điều bị giấu. Các ví nói "trải nghiệm single-signer hoàn toàn trustless" mà không giải thích điều gì xảy ra ở phục hồi đặt người dùng vào bất ngờ khó chịu. Onboarding của SSP đi rõ ràng qua cả hai seed, cả hai bản sao lưu, và cả hai kịch bản phục hồi — trừu tượng bị giấu trong sử dụng nhưng được phô bày trong onboarding để nó không phục kích bạn sau.

account abstraction trên Ethereum có công cụ thứ tư: lớp smart-contract. Với ERC-4337, ví có thể hấp thụ phí gas, gộp giao dịch, và trình bày UX còn "giống single-signer" hơn triển khai multisig dưới mui xe. SSP không có lớp đó trên Bitcoin (không có smart contract), nên trừu tượng dựa vào kỹ thuật UX hơn là hấp thụ phía chain. Cả hai con đường đều hợp lệ; đường Ethereum linh hoạt hơn với cái giá là đặc thù chain, đường SSP cơ động hơn với cái giá là nhiều công việc UI hơn.

Điều này có nghĩa gì với bạn

Ba điều rút ra:

  1. Trải nghiệm "cảm thấy như một ví" là tính năng tiêu đề, không phải multisig tự nó. Nếu bạn của bạn hỏi "SSP có phải ví multisig không?", câu trả lời đúng về kỹ thuật là có, nhưng câu trả lời hữu ích là "đó là ví 2 thiết bị nơi một chạm trên điện thoại xác nhận một lần chi". Điều đó nắm bắt cái mà người ta thực sự cảm.
  2. Ma sát bạn thấy đang làm việc thật. Mỗi khi SSP yêu cầu bạn xác nhận trên điện thoại, nó áp dụng giao thức ngăn một laptop bị xâm phạm vét sạch tiền của bạn. Ma sát đó là lý do chính bạn dùng ví 2-of-2 thay vì hot wallet ngay từ đầu.
  3. Coi trừu tượng như một hợp đồng, không phải phép thuật. Bài cuối của loạt này, Các chế độ thất bại multisig và cách SSP giảm thiểu, đi qua điều gì xảy ra khi mỗi mảnh của trừu tượng vỡ — mất thiết bị, khóa bị xâm phạm, máy chủ ký gián đoạn. Đọc một lần. Trừu tượng được thiết kế tốt, nhưng hiểu các chế độ thất bại là điều biến bạn thành loại người dùng self-custody mà toàn bộ loạt này hướng tới.

Chia sẻ bài viết này

Bài viết liên quan