Tác giả: Bennet
Nguồn: https://bennet.org/learn/silent-payments-bitcoin-privacy/
“Mỗi giao dịch nên sử dụng một cặp khóa mới để đảm bảo rằng các giao dịch này không bị liên kết với nhau và không thuộc về cùng một chủ sở hữu.”
—Satoshi Satoshi Nakamoto
Trong Sách trắng Bitcoin , Satoshi Nakamoto đã ám chỉ rằng việc sử dụng lại cùng một địa chỉ sẽ trả giá sự riêng tư.
Việc công khai địa chỉ Bitcoin giống như địa chỉ email—ví dụ, để nhận quyên góp—có nghĩa là để lộ toàn bộ thông tin về các khoản thanh toán nhận được tại địa chỉ đó cho cả thế giới biết, chưa kể đến bất kỳ khoản chi tiêu nào trong tương lai từ địa chỉ đó. Vấn đề càng trở nên nghiêm trọng hơn nếu địa chỉ đó được liên kết với danh tính thật của bạn. Một cách tiếp cận khác là liên tục xoay vòng địa chỉ, tạo ra một địa chỉ nhận mới cho mỗi người trả tiền. Cách này tốt hơn cho quyền riêng tư, nhưng cũng phức tạp hơn một chút (nhân tiện, tôi đã từng phát triển một công cụ mã nguồn mở để tự động hóa quá trình này).
Ngày nay, thanh toán im lặng cung cấp một lựa chọn thứ ba. Bạn công bố một địa chỉ bắt đầu bằng sp1 và có thể chia sẻ nó tùy ý. Sau đó, mỗi người trả tiền cho bạn sẽ gửi tiền đến một địa chỉ Bitcoin khác nhau, nghĩa là không ai có thể biết người nhận là cùng một người. Hơn nữa, người nhận không cần tương tác với người trả tiền—không cần cung cấp Hóa đơn Lightning hoặc điểm cuối LNURL, chứ chưa nói đến XPUB (Khóa công khai mở rộng).
Trên thực tế, về mặt lý thuyết điều này hoàn toàn có thể đạt được kể từ khi tiêu chuẩn BIP-352 được hoàn thiện, nhưng việc hỗ trợ cơ sở hạ tầng trong ngành chỉ mới bắt đầu. Vào năm 2026, Sparrow Wallet đã phát hành hỗ trợ thanh toán im lặng (tôi rất ủng hộ ví điện tử dành cho máy tính để bàn này). Kết hợp với phần mềm phía máy chủ mới có tên " Frigate ", thanh toán im lặng cuối cùng đã trở nên khả thi.
Đây là hướng dẫn từng bước do tôi viết. Sau khi đọc hết bài viết, bạn sẽ có địa chỉ thanh toán im lặng sp1 của riêng mình.
Cách thức hoạt động của thanh toán im lặng
Trước tiên, bạn cần biết rằng các địa chỉ thanh toán im lặng bắt đầu bằng sp1 không phải là các địa chỉ Bitcoin"thông thường". Các địa chỉ Bitcoin thông thường tương ứng với một tập lệnh Bitcoin; các địa chỉ Segregated Witness bắt đầu bằng bc1q và các địa chỉ Taproot bắt đầu bằng bc1p là những ví dụ về điều này. Các địa chỉ thanh toán im lặng mã hóa các khóa công khai, nhưng các khóa công khai này không xuất hiện trực tiếp trên blockchain— chúng ta sẽ thảo luận chi tiết hơn về điều này sau. Do đó, bạn sẽ không tìm thấy các địa chỉ sp1 bằng cách tìm kiếm trực tiếp trên trang web Block Explorer.
Địa chỉ sp1 bao gồm hai loại phần tử sau:
- Khóa công khai dùng để quét được sử dụng để phát hiện các khoản thanh toán đã được thực hiện cho bạn.
- Khóa công khai để chi tiêu tiền.
Cả hai khóa công khai đều có private key. Hai khóa công khai này, cùng với mã kiểm tra và tiền tố sp1 , tạo thành một địa chỉ thanh toán ẩn có thể được tiết lộ.
Sau đây là quy trình mà những người khác gửi tiền đến địa chỉ thanh toán ẩn danh này:
- Phần mềm ví của người gửi sẽ truy xuất private key của mỗi giao dịch đầu vào , kết hợp chúng với khóa công khai đã quét của người nhận (một trong hai khóa công khai được mã hóa trong địa chỉ
sp1) và tính toán giá trị bí mật được chia sẻ . - Giá trị bí mật được chia sẻ này sau đó được sử dụng để điều chỉnh khóa công khai chi tiêu của người nhận, tạo ra một địa chỉ Bitcoin hoàn toàn mới (cụ thể là đầu ra
bc1pTaproot); chỉ người gửi và người nhận mới biết nguồn gốc của địa chỉ này. - Khi tiền điện tử được gửi đến địa chỉ Taproot này, không có đánh dấu bên ngoài nào cho thấy đó là một khoản thanh toán ẩn danh, nhưng ví của người nhận có thể xác định đó là khoản thanh toán cho chính họ bằng cách quét private key.
graph TD sa[发送者A] --> sp[sp1 地址] sb[发送者B] --> sp sp -.-> ta1[bc1p...q7x] sp -.-> ta2[bc1p...m4k]Ở phía người nhận , nhiệm vụ của phần mềm ví là xác định các khoản thanh toán này. Bởi vì địa chỉ nhận cuối cùng của một khoản thanh toán im lặng phụ thuộc một phần vào các thông tin đầu vào của giao dịch (tức là các UTXO được sử dụng để tạo ra giao dịch), nên không có cách nào để tính toán trước tất cả các địa chỉ nhận có thể có. Thay vào đó, ví chỉ có thể quét blockchain, tìm kiếm đầu ra Taproot dành cho người nhận. Sau khi tìm thấy, ví có thể chi tiêu số tiền bằng cách sử dụng private key chi tiêu — được điều chỉnh bằng cùng một giá trị bí mật được chia sẻ.
Điểm mấu chốt là ngay cả khi hai người gửi khác nhau thanh toán cùng một địa chỉ sp1 , họ sẽ tạo ra hai kết quả Taproot dường như không liên quan. Không có kết nối công khai nào giữa chúng và không thể truy ngược lại địa chỉ sp1 ban đầu. Sự không tương quan này mang lại lợi ích về quyền riêng tư cho cả hai bên.
Hãy thỏa mãn sự tò mò của bạn với nhiều chi tiết mật mã hơn nữa.
Công nghệ mã hóa đằng sau các khoản thanh toán im lặng được gọi là "Trao đổi khóa Diffie-Hellman đường cong Elliptic (ECDH)". Công nghệ này cũng được sử dụng để bảo mật phần lớn các liên lạc crypto trên internet hiện nay. ECDH cho phép người gửi và người nhận độc lập có được cùng một giá trị bí mật được chia sẻ, do đó cả hai bên có thể tính toán địa chỉ mà không cần thông báo trước.
Nếu bạn đã bắt đầu đọc những văn bản này, điều đó có nghĩa là bạn có lẽ đang tìm kiếm một lời giải thích sâu sắc hơn. Tôi không thể cung cấp điều đó ở đây, vì vậy tôi đề xuất hai tài liệu đọc hữu ích nhất đối với tôi:
- Bài viết đầu tiên là " Mật mã đường cong Elliptic trong Bitcoin " của Greg Walker, đây là một bài giới thiệu tổng quan và đáng đọc.
- Loạt bài thứ hai, do Sebastian và Benma viết, giải thích về ECDH trong các khoản thanh toán im lặng ; đây là phần giới thiệu rất hay và dễ hiểu.
Sau khi đọc hai tài liệu này, tôi khuyên bạn nên tự mình đọc tài liệu đặc tả BIP352 .
Tại sao việc quét lại khó khăn đến vậy? Tại sao lại phải dùng tàu khu trục?
Việc tìm ra các khoản thanh toán này đòi hỏi tính toán phức tạp. Ví điện tử phân cấp xác định có một tập hợp địa chỉ cố định mà máy chủ Electrum tiêu chuẩn có thể giám sát. Tuy nhiên, trong các khoản thanh toán im lặng, không có địa chỉ cố định nào để quan sát: mỗi khoản thanh toán tạo ra một kết quả đầu ra mới, được suy ra mà người nhận không thể dự đoán. Cách duy nhất để tìm ra tiền của bạn là thu thập mọi giao dịch có thể, lặp lại phép tính giá trị bí mật được chia sẻ bằng cách sử dụng khóa quét và xem liệu có tìm thấy sự trùng khớp hay không.
Công việc bổ sung này có thể quản lý được đối với một nút đầy đủ (mặc dù hỗ trợ rất hạn chế trong các triển khai nút phổ biến hiện nay). Tuy nhiên, điều này hoàn toàn không thực tế đối với ví di động: ví di động chỉ hoạt động không liên tục, với băng thông và thời lượng pin hạn chế, và không được coi là nút đầy đủ.
Frigate là câu trả lời của Sparrow. Nó là một máy chủ Electrum – cùng một máy chủ giúp bạn kết nối ví của mình với một nút đầy đủ – nhưng được bổ sung thêm phương pháp để quét các khoản thanh toán im lặng. Nó được tối ưu hóa cho tốc độ: các phép toán đường cong elliptic diễn ra trong cơ sở dữ liệu và có thể được tăng tốc bằng GPU . Nó cũng nhận dữ liệu nhóm giao dịch theo thời gian thực, vì vậy bạn có thể thấy giao dịch đến trong ví của mình ngay cả trước khi nó được xác nhận khối.
Hiện nay đã có một máy chủ ảo công khai hoạt động trên frigate.2140.dev — được duy trì chung bởi Sparrow và 2140.dev — mà bất kỳ ai cũng có thể sử dụng. Nhờ vậy, thanh toán ngầm trở nên khả dụng với hầu hết mọi người, kể cả những người không tự vận hành nút chủ của mình. Tất nhiên, bạn cũng có thể tự vận hành máy chủ riêng, trong đó chúng ta sẽ thảo luận về những lợi ích của việc này sau.
Việc quét private key của bạn nhạy cảm đến mức nào?
Để quét các khoản thanh toán ngầm được gửi cho bạn, Frigate cần hai thứ từ ví của bạn: private key để quét và khóa công khai để chi tiêu . Nếu bạn giao phó những thứ này cho một máy chủ Frigate công khai, về mặt lý thuyết, máy chủ đó có thể làm gì?
Nói một cách đơn giản, nó có thể xác định mọi khoản thanh toán được gửi đến địa chỉ sp1 của bạn và liên kết chúng với bạn . Nó không thể tiêu số tiền đó, nhưng một máy chủ độc hại hoặc bị chiếm quyền kiểm soát có thể ghép nối thông tin cá nhân của bạn từ lịch sử thanh toán — điều mà các khoản thanh toán ẩn danh nhằm mục đích ngăn chặn. Theo nghĩa này, khóa bạn cung cấp tương tự như XPUB — nó tiết lộ lịch sử thanh toán của bạn, nhưng không thể chuyển tiền.
Việc tin tưởng vào một máy chủ Frigate công khai cũng tương tự như việc tin tưởng vào một máy chủ Electrum công khai, vì máy chủ này có thể thấy các địa chỉ mà ví của bạn đang truy vấn. Frigate (một phần mềm mã nguồn mở, giống như Sparrow) lưu trữ các khóa bạn gửi trong bộ nhớ, chỉ cho phép phiên của bạn truy cập chúng, giống như một máy chủ thông thường lưu trữ tạm thời các địa chỉ của bạn. Bạn cần tin tưởng rằng người điều hành sẽ không lừa đảo bạn. (BIP-352 có hỗ trợ chế độ riêng tư hơn—máy chủ gửi cho bạn dữ liệu"điều chỉnh", và phần mềm ví của bạn sẽ khớp dữ liệu đó cục bộ mà không tiết lộ các khóa quét—nhưng điều này phức tạp hơn nhiều đối với máy trạm, đó là lý do tại sao Frigate chọn quét phía máy chủ.) Nếu mức độ tin tưởng này vượt quá giới hạn chấp nhận được của bạn, bạn có thể tự chạy máy chủ Frigate. Tuy nhiên, các phương pháp thực hiện việc này nằm ngoài phạm vi bài viết này.
Tạo ví thanh toán im lặng trong Sparrow
Bây giờ, hãy tạo một ví thanh toán im lặng mới. Bạn cần cài đặt phiên bản Sparrow mới nhất (phiên bản 2.5.2 tại thời điểm cập nhật lần này) trên máy tính của mình.
Tạo ví
Mở giao diện phần mềm Sparrow, chọn File → New Wallet từ menu, đặt tên cho ví và bắt đầu tạo ví. Trong phần "Policy Type", chọn "Single Signature SP" (Thanh toán im lặng bằng chữ ký đơn). Taproot là loại script duy nhất có sẵn, như chúng tôi đã giải thích trước đó.

Trong mục " Keystores ", nhấn"New or Imported Software Private key". Trong mục "Mnemonic Words (BIP39)", chọn độ dài Cụm từ hạt giống bạn muốn. Nhấn"Generate New", sau đó dùng một tờ tiền để ghi lại bộ từ khóa này và giữ chúng an toàn .

Sau khi tạo bản sao lưu đúng cách, nhấn"Xác nhận sao lưu ". Một cửa sổ bật lên sẽ xuất hiện yêu cầu bạn nhập lại cụm từ để xác minh tính toàn vẹn của bản sao lưu. Sau khi xác minh, nhấn"Nhập kho khóa" để quay lại giao diện chính của phần mềm. Không thay đổi đường dẫn dẫn xuất của m/352'/0'/0' . Nhấn nút "Áp dụng" ở góc dưới bên phải - bạn sẽ được hỏi liệu bạn có muốn thêm mật khẩu cho ví này hay không.
Sau khi hoàn tất mọi thao tác, bạn sẽ quay lại giao diện chính của ứng dụng ví Sparrow:

Xin lưu ý rằng bạn vừa tạo một " ví nóng ", nghĩa là tất cả private key được lưu trữ trên máy tính (đã kết nối) của bạn. Chúng ta sẽ thảo luận về việc hỗ trợ gửi và nhận thanh toán im lặng bằng ví lạnh (tức là các thiết bị ký phần cứng chuyên dụng) ở phần dưới đây.
Kết nối với máy chủ thanh toán im lặng
Một nút Bitcoin thông thường không thể thông báo cho bạn biết rằng một khoản thanh toán im lặng đã được chuyển, vì vậy Sparrow yêu cầu bạn thông báo cho một máy chủ có thể quét khoản thanh toán đó — nói cách khác, đó là máy chủ Frigate.
Mở trang " Cài đặt " của phần mềm và nhấn" Máy chủ " ở bên trái. Nếu bạn đang chạy phiên bản Frigate riêng (trên nút của riêng bạn), hãy chọn "Electrum riêng" và nhập thông tin chi tiết. Nếu không, hãy sử dụng máy chủ công cộng nhấn"Máy chủ công cộng" và chọn frigate.2140.dev . Nhấn"Kiểm tra kết nối" và đợi thông báo thành công.

Đóng trang cài đặt và mở thanh bên " Giao dịch " trong ví của bạn. Bạn có thể thấy một thông báo như " Ví đang tải lịch sử cho SP-Demo ", cho biết rằng nó đang tải lịch sử của bạn. Hãy đợi một chút—có thể lâu hơn thời gian bạn chờ máy chủ Electrum thông thường quét một ví thông thường—và cuối cùng bạn sẽ thấy " Đã tải xong ". Hành trình bảo mật của bạn bắt đầu!
Nhận địa chỉ thanh toán ẩn danh
Mở mục " Nhận " ở thanh bên. Khác với ví thông thường, bạn sẽ không thấy địa chỉ mới lần; bạn chỉ thấy cùng một địa chỉ thanh toán ẩn danh , đó là chuỗi ký tự sp1... và mã QR tương ứng. Đây là địa chỉ thanh toán ẩn danh của bạn, bạn có thể công khai, chia sẻ nhiều lần và tự do! Bạn không bao giờ cần phải thay đổi địa chỉ này.

Khi mở các thanh bên " Giao dịch " và " UTXO ", bạn sẽ nhận thấy giao diện của chúng hơi khác so với ví Bitcoin"thông thường": ban đầu chúng hoàn toàn trống vì địa chỉ chưa được tạo trước. Các màn hình này chỉ bắt đầu được điền thông tin sau khi bạn nhận được khoản thanh toán. Đây là hình ảnh sau khi bạn nhận được khoản thanh toán im lặng đầu tiên:


Lần bạn tải ví này vào phần mềm Sparrow, máy chủ sẽ quét các khoản thanh toán ngầm được gửi đến bạn. Các khoản thanh toán xuất hiện trên trang " Giao dịch " và " UTXO " của bạn hoàn toàn giống với bất kỳ khoản thanh toán "bình thường" nào vì, từ nhìn lên blockchain , thực sự không có sự khác biệt: chúng chỉ là các đầu ra Taproot thông thường và chỉ ví của bạn mới có thể nhận ra chúng là các khoản thanh toán cho bạn.
Như vậy, chúng ta đã kết thúc phần thảo luận về việc nhận thanh toán . Bây giờ, làm thế nào để gửi thanh toán đến một địa chỉ thanh toán ẩn danh?
Gửi thanh toán đến địa chỉ thanh toán ẩn danh.
Hỗ trợ gửi tiền đến địa chỉ sp1 hoàn thiện hơn so với hỗ trợ nhận tiền. Bên cạnh Sparrow, các ví phần mềm như BlueWallet , Wasabi , Nunchuk và Cake cũng hỗ trợ thanh toán im lặng. Trang Silentpayments.xyz cung cấp bảng tương thích đầy đủ.
Tôi sẽ giải thích quy trình gửi thanh toán ẩn danh trên Sparrow. Nhấn nút " Gửi " ở bên cạnh, sao chép và dán địa chỉ sp1 của người khác mà bạn biết, nhập số tiền bạn muốn gửi và phí giao dịch, sau đó nhấn"Tạo giao dịch ". Trên trang tạo giao dịch, bạn sẽ thấy địa chỉ người nhận vẫn được liệt kê là địa chỉ sp1 :

Tuy nhiên, sau khi ký và phát sóng giao dịch, Sparrow sẽ hiển thị địa chỉ Taproot thực tế (bắt đầu bằng bc1p ) để cho biết tiền đã được gửi đến đâu:

Đằng sau trang này, Sparrow đã thực hiện các phép toán của người gửi được mô tả trong phần đầu tiên của bài viết này—tạo ra một đầu ra Taproot một lần từ các đầu vào khác nhau của giao dịch và khóa công khai của người nhận—và phát sóng giao dịch cuối cùng. Truy cập trang web mempool.space , và bạn sẽ thấy nó trông giống như một khoản thanh toán Taproot thông thường. Nó hoàn toàn không thể bị phát hiện là một khoản thanh toán ngầm và không thể liên kết với địa chỉ sp1 mà bạn biết.
Một chi tiết đáng chú ý liên quan đến các thiết bị ký phần cứng: đầu ra đích phụ thuộc vào đầu vào đang được sử dụng . Do đó, trong quá trình ký, ví phải thực hiện thao tác ECDH bằng cách sử dụng private key đầu vào. Điều này khá đơn giản đối với private key được lưu trữ trong phần mềm. Tuy nhiên, đối với thiết bị ví lạnh, mà mục tiêu thiết kế chính là đảm bảo private key không bao giờ rời khỏi thiết bị, điều này lại tạo ra một vấn đề tương thích hoàn toàn mới. Đây sẽ là trọng tâm của chương tiếp theo.
Thiết bị ký điện tử và kho lạnh
Hỗ trợ phần cứng là một trở ngại lớn làm chậm quá trình áp dụng các phương thức thanh toán im lặng.
Về phía người gửi , tôi dành lời khen ngợi lớn cho Bitbox ; họ là nhà sản xuất thiết bị ký phần cứng đầu tiên hỗ trợ đầy đủ việc gửi thanh toán đến các địa chỉ sp1 . Tôi tin rằng có thể sử dụng thiết bị ký Coldcard cách ly mạng để ký các giao dịch thanh toán im lặng thông qua tệp PSBT ( BIP 375 ), nhưng tôi chưa tự mình xác minh điều này. Tôi sẽ cập nhật trang này sau khi tìm ra câu trả lời.
Ngoài ra, người dùng của các nhà cung cấp khác còn kém may mắn hơn — người dùng các trình tạo chữ ký điện tử Trezor, Ledger và Blockstream Jade vẫn không thể gửi thanh toán đến các địa chỉ thanh toán ẩn danh.
Vậy còn việc nhận thanh toán thì sao ? Nếu bạn làm theo hướng dẫn của tôi nhưng thử nhập khóa từ phần cứng, bạn sẽ thấy thông báo như thế này:

Bỏ qua lỗi nhận dạng thiết bị — tôi đang kết nối với Safe 3, chứ không phải Trezor T — lỗi này là chính xác: bạn chưa thể nhận thanh toán im lặng vào ví lạnh. Như bạn đã đọc phần giải thích trước, bạn biết rằng việc sử dụng địa chỉ sp1 để nhận thanh toán không đơn giản như việc thay đổi đường dẫn tạo khóa công khai — để phát hiện các khoản thanh toán đến, ví phải giữ private key quét và chạy ECDH trên khóa công khai đầu vào cho hầu hết mọi giao dịch. Các thiết bị ký phần cứng được thiết kế để không bao giờ để lộ private key . Mặc dù BIP352 cho phép để lộ khóa quét (nó chỉ có thể quét, không thể chi tiêu), nhưng việc đó vẫn yêu cầu hỗ trợ phần mềm chuyên dụng.
Tóm lại: hầu hết mọi người có thể bắt đầu bằng cách nhận một khoản tiền nhỏ vào ví nóng một cách riêng tư, sau đó chuyển các khoản tiền lớn hơn sang ví lạnh của họ, giống như phương pháp ví nóng thông thường. Bạn cần chấp nhận rằng phần lớn người dùng thiết bị chữ ký phần cứng hiện chưa thể gửi thanh toán đến địa chỉ sp1 của bạn.
Nếu phương thức thanh toán im lặng chưa đủ chín chắn đối với bạn
Thanh toán im lặng là một khái niệm hoàn toàn mới. Những nhược điểm mà tôi đã đề cập trước đó có thể khiến nó không phù hợp với nhu cầu của bạn, điều này hoàn toàn dễ hiểu — và đó chính là lý do tại sao tôi đã phát triển phần mềm nhận quyên góp không cần máy chủ của mình. Việc liên tục thay đổi địa chỉ vẫn là một phương pháp đáng tin cậy để chấp nhận thanh toán Bitcoin , hoạt động với tất cả các ví và không làm ảnh hưởng đến quyền riêng tư của bạn.
Hãy tự mình thử xem
Cách tốt nhất để tìm hiểu thêm về thanh toán im lặng sau khi đọc hướng dẫn này là tự mình thử. Một lời cảnh báo: các thông số kỹ thuật cho thanh toán im lặng vẫn còn tương đối mới, vì vậy hãy hết sức cẩn thận khi thử nghiệm với tiền thật.
Nếu bạn không có ví tương thích với thanh toán im lặng và muốn thử nghiệm giao thức này, thì Silent Amulet đáng để xem xét. Đây là một ví BIP-352 đầy đủ chức năng, hoạt động như một tệp HTML duy nhất trong trình duyệt. Bạn thậm chí có thể cấu hình nó để kết nối với trình lập chỉ mục Blindbit của riêng bạn để quét cục bộ mà không cần phải chuyển khóa quét của bạn cho máy chủ — một chế độ riêng tư hơn mà tôi đã đề cập trong Phần 2.
Bạn có thể kiểm tra xem phần mềm ví của mình có thể phân tích địa chỉ sp1 hay không bằng cách quét mã QR bên dưới:

Nếu bạn cho rằng hướng dẫn này hữu ích và có ví tương thích, tôi rất cảm kích bất kỳ khoản quyên góp nào bằng satoshi, dù nhỏ đến đâu, để hỗ trợ việc duy trì hoạt động của trang web hướng dẫn này. Nếu ví của bạn không hỗ trợ thanh toán im lặng, bạn cũng có thể quyên góp cho hướng dẫn này thông qua ví Segregated Witness đáng tin cậy hoặc Lightning Payment .
Tôi cũng khuyên bạn nên quyên góp cho ví Sparrow . Đây là một trong những dự án Bitcoin tốt nhất, được duy trì bởi chỉ một nhà phát triển duy nhất, và hoàn toàn miễn phí và mã nguồn mở.
Cảm ơn bạn đã đọc. Chúc Tuncong mọi điều tốt đẹp nhất.
(qua)

