Quay lại blog
Bảo mật

Ví watch-only là gì: thấy mọi thứ, không ký gì

Một con mắt lớn dõi theo các bảng số dư và địa chỉ trong khi một chiếc khóa nằm trong vòng tròn bị gạch chéo: ví watch-only thấy mọi thứ và không ký gì

Mọi ứng dụng ví đều gộp hai công việc rất khác nhau vào cùng một giao diện: cho bạn thấy những gì bạn sở hữu, và di chuyển chúng. Một ví watch-only tách hai việc đó ra. Nó chỉ nhập vào thông tin công khai — một danh sách địa chỉ, hoặc một extended public key (xpub) — và hoàn toàn không giữ bất kỳ chất liệu khóa riêng nào. Điều đó cho nó đúng một nửa quyền năng của một chiếc ví: nó có thể hiển thị số dư, theo dõi lịch sử, tạo địa chỉ nhận, và thậm chí chuẩn bị sẵn một giao dịch để ký. Điều nó không bao giờ làm được là ký. Không một vụ xâm nhập ví watch-only nào, dù triệt để đến đâu, tạo ra được một chữ ký hợp lệ, bởi chất liệu mà một chữ ký cần đến đơn giản là không có ở đó.

Nghe như một hạn chế, và đúng là vậy — một hạn chế có chủ đích. Sự tách bạch giữa theo dõi và ký là xương sống thầm lặng của mọi thiết lập lưu trữ lạnh nghiêm túc: thiết bị đối mặt với internet thì biết tất cả nhưng không làm được gì, trong khi các khóa sống trên một thiết bị chẳng đối mặt với gì cả. Dưới đây là cách một ví watch-only hoạt động, nó làm được và không làm được gì, một lưu ý về quyền riêng tư khiến nhiều người bất ngờ, và cách sự tách bạch này vận hành trong thực tế hằng ngày.

Một seed, hai loại khóa

Mọi thứ dựa trên một sự bất đối xứng dễ phát biểu mà khó nói cho hết tầm quan trọng. Một khóa riêng (private key) tạo ra chữ ký; khóa công khai (public key) tương ứng thì chỉ có thể xác minh chúng. Tính khóa công khai từ khóa riêng là tức thời; đi theo chiều ngược lại là bài toán khó mà toàn bộ hệ thống được dựng nên. Đến lượt mình, địa chỉ được suy ra từ khóa công khai, nên thông tin chảy nghiêm ngặt theo một chiều — seed, khóa riêng, khóa công khai, địa chỉ — và không bao giờ ngược trở lại chuỗi đó.

Ví phân cấp tất định (hierarchical deterministic) — chuẩn BIP32, ra đời năm 2012 và nay gần như phổ quát — mở rộng sự bất đối xứng đó từ những khóa đơn lẻ sang toàn bộ chiếc ví. Một seed sinh ra cả một cây cặp khóa, và cái cây đó có nửa công khai của riêng nó: extended public key, hay xpub. Một xpub có thể suy ra mọi địa chỉ nhận mà một chiếc ví sẽ từng dùng, nhưng nó không thể suy ra dù chỉ một khóa riêng. Nhập xpub đó vào một ứng dụng khác và bạn đã dựng lại toàn bộ khuôn mặt công khai của chiếc ví — mọi địa chỉ, mọi số dư, mọi giao dịch, cả quá khứ lẫn tương lai — mà bên trong không có gì có thể chi tiêu. Đó chính là một ví watch-only: tấm bản đồ đầy đủ, nhưng đã tháo động cơ.

Nó làm được gì — và dừng lại ở đâu

Cụ thể, một ví watch-only được dựng từ một xpub có thể:

  • Hiển thị số dư và lịch sử trên mọi địa chỉ được suy ra, cập nhật khi các khoản thanh toán đến và được xác nhận.
  • Tạo địa chỉ nhận mới, để bạn có thể nhận tiền gửi vào mà không cần chạm đến bất kỳ khóa riêng nào.
  • Dựng các giao dịch chưa ký — chọn coin, đặt phí, chỉ định điểm đến — được đóng gói theo một định dạng chuẩn (trên Bitcoin, thường là một PSBT) mà một signer riêng biệt có thể đọc và phê duyệt.
  • Phát đi một giao dịch đã ký khi một chữ ký từ nơi khác gửi tới.

Và đó là toàn bộ danh sách. Nó không thể ký, chi tiêu, quét sạch, hay ủy quyền bất cứ điều gì, trong bất kỳ hoàn cảnh nào. Nó có thể chuẩn bị một giao dịch đến tận byte cuối cùng, nhưng hành động quyết định luôn diễn ra ở nơi khác. Đánh cắp chiếc điện thoại đang chạy nó và bạn đã đánh cắp một tầm nhìn. Cái tên này là chính xác chứ không phải khiêm tốn: chiếc ví đúng nghĩa chỉ theo dõi.

Một góc nhìn watch-only biến thiết bị dễ bị phơi bày nhất mà bạn sở hữu thành thiết bị ít nguy hiểm nhất.
Nửa watch-only có thể hiển thị số dư, nhận tiền, và dựng các giao dịch chưa ký, nhưng việc ký bị gạch chéo; khóa riêng nằm trên một thiết bị offline riêng biệt
Ba khả năng ở lại trực tuyến; khả năng thứ tư thì không bao giờ.

Vì sao lưu trữ lạnh được dựng trên sự tách bạch này

Lưu trữ lạnh có một mâu thuẫn ngay ở lõi. Toàn bộ mục đích là để các khóa riêng không bao giờ chạm vào một cỗ máy có kết nối internet — thế nhưng bạn vẫn cần xem số dư, nhận tiền gửi, và cuối cùng là chi tiêu, mà tất cả những điều đó đều dính đến mạng. Phải có thứ gì đó đứng ở giữa, và thứ đó chính là ví watch-only.

Vòng lặp tiêu chuẩn trông như thế này. Góc nhìn watch-only, trên thiết bị trực tuyến, dựng một giao dịch chưa ký và trao nó qua khoảng cách ngăn cách (air gap) — thường dưới dạng một mã QR hoặc một tệp. Signer offline, vốn giữ các khóa và không có kết nối mạng, hiển thị thứ mà nó được yêu cầu phê duyệt, ký, và chỉ gửi trả lại mỗi chữ ký. Nửa theo dõi sau đó phát giao dịch đi. Các khóa không bao giờ di chuyển theo bất kỳ chiều nào; giao dịch chưa ký đi qua một chiều, chữ ký đi qua chiều còn lại. Quan trọng nhất, seed phrase không bao giờ phải được gõ vào, khôi phục trên, hay thậm chí trưng ra cho một cỗ máy từng ở trực tuyến — và vì seed phrase là một điểm lỗi duy nhất, giữ nó hoàn toàn tránh xa phần cứng nối mạng là đáng để bỏ ra chút nghi thức.

Ví phần cứng cũng là kiến trúc y hệt trong một lớp vỏ khác. Ứng dụng đồng hành trên máy tính của bạn, về mặt chức năng, chính là một ví watch-only, và thiết bị nối ở đầu dây cáp là signer — một thiết kế vững chắc ở cả hai hình thức. Điểm khác biệt là kênh truyền (USB hoặc Bluetooth so với mã QR, vốn dễ kiểm tra hơn khi chúng đi qua) và liệu bạn có mua phần cứng chuyên dụng hay không. Quy trình ví lạnh của Ownbit hiện thực hóa phiên bản QR với hai chiếc điện thoại thông thường — sẽ nói thêm về điều này bên dưới.

Lưu ý về quyền riêng tư: một xpub là một tấm bản đồ

Sự an toàn về mặt chi tiêu của các góc nhìn watch-only khiến người ta hờ hững với xpub, và điều đó cần được chấn chỉnh. Bất kỳ ai nắm xpub của bạn đều có thể thấy mọi địa chỉ mà ví của bạn đã dùng hoặc sẽ từng dùng — toàn bộ số dư, toàn bộ lịch sử, cập nhật mãi mãi. Họ không thể lấy đi bất cứ thứ gì, nhưng họ có thể theo dõi tất cả, và với nhiều người nắm giữ thì điều đó gần như cũng nhạy cảm ngang vậy. Một xpub bị rò rỉ cũng không thể được xoay vòng một cách lặng lẽ: lối thoát thực sự duy nhất là chuyển tiền sang một chiếc ví mới được dựng từ một seed mới.

Vậy nên hãy coi xpub là bí mật ngay cả khi về mặt kỹ thuật nó là chất liệu khóa công khai. Hãy đưa cho đối tác từng địa chỉ riêng lẻ, đừng bao giờ đưa chính cái xpub. Chỉ nhập nó vào những ứng dụng và dịch vụ mà bạn sẵn lòng tin tưởng với toàn bộ lịch sử tài chính của mình — một công cụ theo dõi danh mục là tiện lợi, nhưng nó cũng là một sự tiết lộ thường trực cho bất cứ ai vận hành nó. Nơi duy nhất mà việc chia sẻ rộng rãi xpub thực sự không thể tránh khỏi là MultiSig, nơi những người đồng ký phải trao đổi xpub để dựng nên chiếc ví chung; đó là một sự tiết lộ được kiểm soát, có chủ đích, giữa những người vốn đã cùng nhau lưu ký.

Một xpub suy ra một cây địa chỉ phân nhánh, tất cả đều hiện ra với bất kỳ ai nắm giữ xpub, trong khi một chiếc khóa bị gạch chéo cho thấy nó không chứa khóa riêng nào
Một chuỗi ký tự để lộ mọi địa chỉ — kèm cả số dư — nhưng không thể chi tiêu bất kỳ địa chỉ nào trong số đó.

Người ta thực sự dùng ví watch-only để làm gì

Ghép cặp với lưu trữ lạnh là công dụng chủ lực, nhưng mô hình này cũng chứng tỏ giá trị trong những tình huống thường ngày:

  • Theo dõi các khoản nắm giữ dài hạn. Để mắt tới khoản tiết kiệm ngay từ chiếc điện thoại trong túi mà không phải mang theo quyền chi tiêu bên mình.
  • Xác minh các khoản tiền vào. Xác nhận rằng một lệnh rút từ sàn hay một khoản thanh toán hóa đơn thực sự đã tới, mà không cần mở khóa bất cứ thứ gì có thể di chuyển tiền.
  • Quyền đọc mà không có quyền chi. Một kế toán viên, một kiểm toán viên, hay một đồng sáng lập có thể theo dõi lịch sử của một treasury mà hoàn toàn không có khả năng động vào nó — đọc và ghi trở thành hai quyền riêng biệt, đúng như lẽ ra chúng luôn phải như vậy.
  • Theo dõi một MultiSig chung. Mọi người tham gia trong một MultiSig 2-of-3 đều có thể theo dõi ví theo thời gian thực trong khi việc chi tiêu vẫn cần đủ số phiếu tối thiểu (quorum). Khả năng nhìn thấy là chung cho tất cả; quyền hạn thì vẫn bị giới hạn theo ngưỡng.

Ownbit ghép cặp một Watch Wallet với một điện thoại offline như thế nào

Ownbit xây sự tách bạch này thành một luồng hạng nhất chứ không phải một tính năng dành cho chuyên gia. Một chiếc điện thoại dư, được giữ offline vĩnh viễn, trở thành signer: nó tạo một seed phrase BIP39 tiêu chuẩn, giữ lấy nó, và không bao giờ kết nối với bất cứ thứ gì. Chiếc điện thoại thường ngày của bạn chạy Watch Wallet — nửa watch-only — vốn biết các địa chỉ của ví, hiển thị số dư, và dựng các giao dịch chưa ký. Để chi tiêu, Watch Wallet hiển thị giao dịch chưa ký dưới dạng một mã QR; chiếc điện thoại offline quét nó, cho thấy chính xác thứ sắp được ký, ký, rồi hiển thị chữ ký dưới dạng một mã QR khác để chiếc điện thoại trực tuyến quét lại và phát đi. Không gì ngoài hai mã QR đó từng đi qua khoảng cách ngăn cách, và không cần đến phần cứng bổ sung nào. Nếu bạn đã sở hữu một chiếc Ledger hay Trezor, cũng chính mnemonic đó có thể được nhập vào chiếc điện thoại offline để đưa các khóa hiện có vào một MultiSig lạnh.

Các ranh giới niềm tin áp dụng cho chúng tôi y như cách chúng áp dụng cho mọi người khác. Máy chủ của Ownbit điều phối việc ký nhưng không bao giờ giữ khóa của người dùng; mỗi khóa là một seed phrase BIP39 tiêu chuẩn; và mô hình bảo mật được thiết kế để việc khôi phục vẫn hoạt động ngay cả khi không có máy chủ của Ownbit. Một góc nhìn watch-only mà bạn không thể tự mình kiểm chứng chỉ là thêm một màn hình nữa mà bạn buộc phải tin tưởng — điểm mấu chốt của kiến trúc này là bạn thì không phải như vậy.

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

Ví watch-only có thể bị hack không?

Nó có thể bị xâm nhập, nhưng kẻ tấn công giành được khả năng nhìn thấy, chứ không phải tiền — không có chất liệu khóa riêng nào để đánh cắp, nên không thể giả mạo chữ ký nào cả. Mối nguy thực tế là sự lừa dối: mã độc trên thiết bị trực tuyến có thể hiển thị một địa chỉ nhận đã bị tráo đổi hoặc một giao dịch đã bị thao túng. Đó chính là lý do vì sao một signer offline hiển thị chi tiết giao dịch thật trước khi ký lại quan trọng, và vì sao những khoản tiền vào lớn xứng đáng được kiểm tra địa chỉ ngay trên thiết bị ký.

Chia sẻ xpub của tôi có an toàn không?

Nó an toàn về mặt chi tiêu nhưng nhạy cảm về quyền riêng tư. Một xpub không thể được dùng để di chuyển tiền, nhưng bất cứ ai nắm nó đều có thể thấy mọi địa chỉ mà ví của bạn suy ra, kèm đầy đủ số dư và lịch sử, một cách vô thời hạn. Hãy chia sẻ từng địa chỉ riêng lẻ với đối tác, và chỉ dành xpub cho những thiết bị, dịch vụ và người đồng ký mà bạn tin tưởng với toàn cảnh tài chính của mình.

Tôi có thể gửi crypto từ một góc nhìn watch-only không?

Không phải tự nó làm được. Một ví watch-only có thể dựng một giao dịch chưa ký và phát đi một giao dịch đã ký, nhưng chữ ký phải đến từ một thiết bị nắm giữ các khóa riêng — một chiếc điện thoại offline, một ví phần cứng, hoặc một signer khác. Chính sự ghép cặp của hai nửa mới tạo nên một luồng chi tiêu hoàn chỉnh.

Khác biệt giữa một góc nhìn watch-only và một ví lạnh là gì?

Chúng là hai nửa của cùng một thiết kế. Ví lạnh là thiết bị offline nắm giữ các khóa và thực hiện việc ký; ví watch-only là cửa sổ trực tuyến không giữ khóa nào nhưng xử lý mọi thứ mà mạng đòi hỏi — số dư, địa chỉ nhận, giao dịch chưa ký, việc phát đi. Dùng cùng nhau, các khóa ở lại offline vĩnh viễn mà không phải từ bỏ khả năng sử dụng hằng ngày.

Nếu bạn muốn thử sự tách bạch này mà không cần mua gì cả, quy trình ví lạnh của Ownbit biến một chiếc điện thoại dư thành một signer offline được ghép cặp với một Watch Wallet trên chiếc điện thoại hằng ngày của bạn — giao dịch chưa ký đi vào, chữ ký đi ra, các khóa không bao giờ trực tuyến. Mô hình bảo mật rộng hơn được dựng trên cùng nguyên tắc giảm thiểu niềm tin, và các khóa của bạn vẫn là của bạn bất kể tư cách thành viên. Mọi người dùng mới đều nhận được bản dùng thử miễn phí 7 ngày.