Coinjoin, được sử dụng rộng rãi để so sánh chất lượng.

Bài viết này được dịch máy
Xem bản gốc

Tác giả: Peter Todd

Nguồn: https://petertodd.org/2025/coinjoin-comparison

Bài báo gốc được xuất bản vào tháng 7 năm 2025.

Dự án Kruw đã yêu cầu tôi phân tích và phản hồi bài đăng "nothingmuch" của Yuval do Kogman viết, trong đó thảo luận về các cuộc tấn công nặc danh tập trung, dựa trên vòng đấu, nhắm mục tiêu cụ thể vào giao thức WabiSabi được sử dụng bởi ví Wasabi. Kogman đã tham gia vào thiết kế WabiSabi nhưng "đã rời đi để phản đối trước khi nó được phát hành " .

Kogman tuyên bố, "Phần mềm này về cơ bản không phù hợp với mục tiêu thiết kế của nó; nếu bạn không sẵn lòng giao phó thông tin cá nhân của mình cho người điều phối, bạn không nên sử dụng nó." Tuy nhiên, Kogman không đưa ra cơ sở kỹ thuật rõ ràng cho ý kiến ​​này. Do đó, tôi cho rằng rằng việc tiến hành phân tích bảo mật các tính năng của CoinJoin, các cuộc tấn công mà nó ngăn chặn, và liệu hai phiên bản CoinJoin hiện tại—Joinmarket và Wasabi—có thể chống lại các cuộc tấn công nặc danh trong thực tế hay không là rất cần thiết.

Tuyên bố miễn trừ trách nhiệm: Kruw đã thanh toán cho thời gian nghiên cứu của tôi theo mức phí tư vấn sự kiện mã nguồn mở thông thường; họ điều hành hệ thống điều phối Wasabi phổ biến nhất . Cá nhân tôi sử dụng Wasabi, và trên thực tế, tôi đã nhận được khoản thanh toán liên quan đến bài viết này trực tiếp từ ví Wasabi của Kruw.

1. Bối cảnh

Khái niệm “Coinjoin” lần đầu tiên được biết đến rộng rãi nhờ bài báo năm 2013 của Gregory Maxwell. Nguyên tắc cơ bản rất đơn giản: nếu hai hoặc nhiều người cùng tạo một giao dịch Bitcoin, thuật toán “ xác định quyền sở hữu đầu vào ” sẽ thất bại vì không phải tất cả các đầu vào của giao dịch đều thuộc về cùng một người. Cách đơn giản nhất để xây dựng một giao dịch coinjoin là để hai hoặc bên long bên đã sẵn sàng thanh toán kết hợp các đầu vào và đầu ra giao dịch tương ứng của họ thành một giao dịch duy nhất. Ngay cả cách tiếp cận đơn giản này cũng mang lại một khoản tiết kiệm chi phí nhỏ: các bên chia sẻ các byte trong “tiêu đề” giao dịch, do đó giảm phí giao dịch tổng thể.

Tuy nhiên, kỹ thuật đơn giản này lại đánh đổi quyền riêng tư vì hai lý do quan trọng:

  • Các nhà quan sát bên ngoài thường có thể liên hệ các yếu tố đầu vào và đầu ra dựa trên các đặc điểm tiền tệ cụ thể của chúng.
  • Các thành viên tham gia coinjoin sẽ biết đầu vào và đầu ra nào thuộc về các thành viên khác trong coinjoin.

Ví dụ, hãy xem xét một giao dịch như sau:

Nhập (số tiền) Sản lượng (số lượng)
61.836 53.467
98.902 61.736
45.235

Nếu bạn nghi ngờ đây là một giao dịch coinjoin hai bên rất đơn giản, thì có thể suy đoán rằng đầu vào thứ nhất và đầu ra thứ hai thuộc về cùng một người, và số tiền trong đầu vào thứ hai đã được chuyển vào đầu ra thứ nhất và thứ ba.

Phân tích trên dẫn chúng ta đến hai mô hình mối đe dọa chính:

  1. Phân tích thụ blockchain khối 4 : Kẻ tấn công sử dụng dữ liệu blockchain công khai, có thể kết hợp với dữ liệu khác, để cố gắng nặc danh các giao dịch thông qua phân tích thụ động.
  2. Tấn công chủ động (tấn Phù thủy): Kẻ tấn công chủ động tham gia vào các giao dịch coinjoin để thu thập dữ liệu không được công khai. Chúng ta có thể giả định rằng kẻ tấn công chủ động cũng sẽ sử dụng phân tích blockchain thụ động.

Điều thú vị là, dựa trên các cuộc trò chuyện riêng tư của tôi với các nhân viên hiện tại và cựu nhân viên của Chainalysis và các đối thủ cạnh tranh của nó, các nhà phân tích blockchain thực tế lại coi thường việc thực hiện ngay cả những phân tích thống kê cơ bản nhất, chẳng hạn như nặc danh các giao dịch coinjoin đơn giản. Trên thực tế, họ không bận tâm đến bất kỳ phân tích thống kê hợp lý nào: sản phẩm của họ rất thiếu tính khoa học và dựa vào các phương pháp phán đoán trực quan và sơ đẳng để "gán nhãn" cho các kết quả đầu ra thay vì thực sự tìm ra xác suất rằng một kết quả đầu ra nhất định có liên quan đến một hoạt động cụ thể. Tôi thậm chí còn gặp một người sáng lập của một đối thủ cạnh tranh của Chainalysis, người này, trong lúc say rượu sau bữa tối, đã nói với tôi rằng sản phẩm của anh ta là một trò lừa đảo hoàn toàn, không hề thực hiện bất kỳ phân tích thực sự nào: mục đích thực sự của nó là cung cấp lý do cho việc bắt giữ của cảnh sát và cho phép sàn giao dịch đáp ứng các yêu cầu "AML/KYC". Bản thân Chainalysis đã tích cực che giấu hoạt động thực sự của sản phẩm của mình, ví dụ, tại tòa án; rất có thể các sản phẩm của Chainalysis thực sự không đáng tin cậy.

Theo nhận định thận trọng, các tài liệu tòa án gần đây cho thấy Chainalysis đã vận hành một máy chủ chuyển tiếp Tornado Cash, có lẽ nhằm mục đích thu thập dữ liệu về người dùng Tornado Cash. Mặc dù Tornado Cash là một công nghệ rất khác so với CoinJoin, nhưng nếu Chainalysis đang chủ động thực hiện phương pháp để nặc danh người dùng Tornado Cash, họ cũng có thể đang chủ động thực hiện các bước để nặc danh của hệ thống CoinJoin.

(Ghi chú của người dịch: "Tornado Cash" là một dịch vụ tăng cường quyền riêng tư hoạt động trên blockchain Ethereum ; nguyên tắc của nó là người dùng gửi các khoản tiền tiêu chuẩn và rút chúng từ nhóm tiền sau một khoảng thời gian nhất định bằng cách sử dụng chứng chỉ người mang.)

Bất kể đối thủ của chúng ta có phải là kẻ lừa đảo hay không, chúng ta vẫn nên giả định rằng họ thực sự có năng lực.

1.1 K - Tập hợp nặc danh

Các công cụ bảo mật thường phân tích điều này bằng cách sử dụng khái niệm "tập hợp nặc danh k": một tập hợp gồm $k$ cá nhân nặc danh và không thể phân biệt được với những người khác trong tập hợp đó. Các ứng dụng tiền điện tử như Coinjoin bổ sung thêm một yếu tố: số tiền mà từ đó tiền của bạn có nguồn gốc. Điều này đặc biệt quan trọng nếu bạn thử giao dịch với số tiền lớn hơn trên Coinjoin: số tiền lớn hơn sẽ dẫn đến tập hợp nặc danh k nhỏ hơn vì ít người có đủ tiền để có khả năng trở thành một phần của nặc danh đó.

1.2 Tor

Mạng Tor là một mạng định tuyến kiểu "hành tây" . Hệ thống Coinjoin sử dụng Tor để đạt được nặc danh: miễn là nút Tor giữ lời hứa (không lưu nhật ký), Tor cho phép máy trạm Coinjoin giao tiếp nặc danh ngay cả trong mô hình đe dọa nghiêm ngặt nhất; điều này rất quan trọng đối với mô hình bảo mật của JoinMarket và cực kỳ quan trọng đối với mô hình bảo mật của Wasabi.

Tor không phải là một hệ thống phi tập trung. Mặc dù lượng lớn tình nguyện viên vận hành nút Tor riêng lẻ, nhưng cơ chế đồng thuận của Tor — danh sách nút Tor — lại được duy trì bởi một nhóm " cơ quan quản lý mục lục " tập trung, những người có thể tự quyết định nút nào được coi là nút Tor hay không.

2. Sơ đồ Coinjoin quan trọng

Chỉ có ba phương án kết hợp quan trọng đã được triển khai và hiện đang hoạt động. Mỗi phương án đều sử dụng một phương pháp hoàn toàn khác nhau, với những ưu điểm và nhược điểm riêng.

2.1 Payjoin

Đây là một giao thức hai bên cho phép người trả tiền (người gửi) và người nhận tiền (người thụ hưởng) tạo ra một giao dịch coinjoin chứa các khoản thanh toán mà mỗi bên dự định gửi. Giao dịch như vậy có thể vượt trội hơn các thuật toán nhận dạng quyền sở hữu đầu vào vì nó bao gồm cả tiền của người trả tiền và người nhận tiền trong giao dịch. Vì payjoin là một giao thức, nhiều ví điện tử đã hỗ trợ nó, bao gồm hai triển khai coinjoin khác mà chúng ta sẽ thảo luận tiếp theo: JoinMarket và Wasabi.

Ví điện tử Bull Bitcoin dành cho thiết bị di động là một ví dụ điển hình về cách thức và thời điểm mà payjoin có thể mang lại lợi ích. Được phát triển bởi sàn giao dịch Bull Bitcoin , ví này nhằm giải quyết hai vấn đề chính:

  1. Khi khách hàng của sàn giao dịch mua Bitcoin, lần giao dịch mua sẽ tạo ra một UTXO. Payjoin cho phép hợp nhất các UTXO đã mua trước đó với BTC được mua gần đây nhất. Kết quả là, khi chi tiêu Bitcoin sau này, chỉ cần cung cấp một thông tin đầu vào duy nhất cho giao dịch (tức là UTXO đã được hợp nhất), do đó giảm phí giao dịch và bảo vệ quyền riêng tư.

  2. Khi bán Bitcoin, giao dịch coinjoin có thể tiết kiệm phí sàn giao dịch bằng cách hợp nhất một hoặc nhiều UTXO hiện có (kết hợp với UTXO đang được bán). Hơn nữa, trong tương lai, payjoin sẽ cho phép thanh toán trực tiếp , giúp giảm phí hơn nữa. Và rõ ràng, cả hai bên đều có thể hưởng lợi từ tập hợp nặc danh k mở rộng.

    (Ghi chú của người dịch: "cắt ngang" có nghĩa là dù quá trình giao dịch phức tạp đến đâu, cuối cùng chỉ có trạng thái ban đầu và trạng thái cuối cùng được công bố. Ví dụ, nếu n cá nhân, mỗi người có một phần thanh toán, cần tham gia vào việc tạo ra một giao dịch, thì kết quả cuối cùng của giao dịch là trạng thái cuối cùng sau khi tất cả các bên quyết toán. Thứ tự và chi tiết của quá trình đàm phán sẽ không được tiết lộ dưới dạng giao dịch.)

Vì payjoin là một thỏa thuận hai bên, các cuộc tấn công chủ động là không liên quan: bên kia trong giao dịch payjoin của bạn sẽ luôn biết đầu vào và đầu ra nào thuộc về bạn. Hơn nữa, các cuộc tấn công Phù thủy là vô nghĩa: xét cho cùng, bạn đang thực hiện payjoin với người mà bạn đã có ý định giao dịch từ trước.

Trên thực tế, các giao dịch payjoin thường có thể được nhận dạng dựa trên phương pháp phỏng đoán " đầu vào không cần thiết ", giả định rằng phần mềm ví chỉ cung cấp lượng đầu vào tối thiểu cần thiết để thực hiện thanh toán, từ đó đoán được người trả tiền và người nhận tiền. Giả định này không phải lúc nào cũng đúng, vì một số ví thực sự thêm đầu vào không cần thiết cho việc quản lý UTXO và bảo mật. Thứ hai, không phải tất cả các giao dịch payjoin đều có thể được phân tích theo cách này. Sự khác biệt trong các mẫu giao dịch, chẳng hạn như quy trình giải mã giữa sàn giao dịch Bitcoin và những người tích trữ Bitcoin thông thường, có thể đủ để xác định đầu vào và đầu ra của cả hai bên. Tuy nhiên, việc tiết kiệm phí mà payjoin mang lại là một lý do thuyết phục để tất cả các ví trên Chuỗi đều hỗ trợ nó.

Chúng ta sẽ không thảo luận thêm về payjoin nữa, vì nó mang lại lợi ích rõ ràng là giảm phí giao dịch cho tất cả các ví trên Chuỗi—bao gồm cả ví coinjoin—mà không có nhược điểm đáng kể (ngoại trừ độ phức tạp trong triển khai). Nếu bạn muốn đối tượng mà bạn muốn thanh toán trên Chuỗi cung cấp tùy chọn coinjoin, thì không có lý do gì để không sử dụng payjoin.

2.2 Tham gia Thị trường

Giao thức này hướng tới trở thành một giao thức người nhận - người đặt, trong đóngười nhận trả tiền cho một hoặc nhiều người đặt để cải thiện tính riêng tư của giao dịch bằng cách cho phép người đặt đóng góp đầu vào và đầu ra của họ vào giao dịch (và nhận thanh toán); người nhận cũng chịu trách nhiệm trả phí giao dịch.

Nếu người đặt hàng đóng góp các đầu vào và đầu ra (có giá trị) tùy ý, thì không có sự tăng cường bảo mật nào được cung cấp vì đầu vào của cả người đặt hàng và người nhận hàng đều có thể dễ dàng được xác định bằng cách so khớp số tiền. Do đó, thay vào đó, người đặt hàng phải đóng góp các đầu ra có giá trị tương đương với đầu ra thanh toán của người nhận hàng. Ý tưởng đằng sau điều này là bằng cách có một giao dịch có nhiều đầu ra thanh toán có cùng giá trị, chúng ta thu được một tập hợp nặc danh k chứa các đầu ra này.

Dưới đây là một ví dụ rất đơn giản về lệnh giao dịch JoinMarket mà tôi tạo ra cho giao dịch này. Lệnh này chỉ có một lệnh mua và một lệnh bán, và ID giao dịch là " 4f11…8b7d ":

Nhập (số tiền) Sản lượng (số lượng)
148.798 46.981
1.448.113 100.420
1.347.800
100.420

Thoạt nhìn, khoản đầu ra trị giá 100.420 satoshi này có một tập hợp nặc danh là $k = 2$: khoản đầu ra này có hai đầu ra như vậy. Nhưng giả sử bạn là người nhận khoản đầu ra 100.420 satoshi đầu tiên. Bây giờ, hãy kiểm tra kiến ​​thức của bạn : số tiền này đến từ đâu? Dựa trên cách thức hoạt động của JoinMarket, có thể giả định rằng tôi là người nhận tiền và đã trả cho bạn, và người tham gia giao dịch còn lại là người đặt lệnh. Vì tôi phải là người nhận tiền, tôi phải trả phí cho giao dịch này và cũng phải trả phí cho người đặt lệnh.

Với giả định này, bạn có thể dễ dàng nặc danh đầu vào của tôi—bằng cách đoán hợp lý đầu vào nào tương ứng với đầu ra tạo ra số 0 nào; điều này chỉ cần một vài phép toán đơn giản:
$$
\begin{align}
148798 - 100420 - 46981 &= 1397 \
1448113 - 100420 - 1347800 &= -107
\end{align}
$$
Rõ ràng, giao dịch đầu tiên đến từ bên mua, với giá trị ròng là 1397 satoshi, trong khi giao dịch thứ hai nhận được 107 satoshi từ bên đặt lệnh. Vì tôi là người tạo ra giao dịch, tôi có thể xác nhận điều này là chính xác.

Mặc dù tôi đã trả phí đặt lệnh 107 satoshi và phí xác nhận khối 698 satoshi, tôi vẫn không có được thêm bất kỳ sự riêng tư nào!

Vấn đề này không chỉ xảy ra với giao dịch thử nghiệm đơn giản của chúng ta. Trong hầu hết các trường hợp, ngay cả khi có nhiều người đặt lệnh, người nhận lệnh vẫn có thể được xác định bằng phân tích này. Gốc rễ của vấn đề là JoinMarekt là một thị trường: người nhận lệnh và người đặt lệnh có nhân vật hoàn toàn khác nhau, do đó đầu vào và đầu ra của họ có thể được xác định dựa trên thực tế là "người nhận lệnh phải trả tiền cho người đặt lệnh".

Theo một nghĩa nào đó, cơ chế kinh tế của JoinMarket là một bước thụt lùi hoàn toàn: trong một kịch bản điển hình—trong đó người nhận trả tiền cho nhiều người giữ chỗ—những người giữ chỗ có thể đạt được sự cải thiện về quyền riêng tư bằng cách cung cấp một tập hợp nặc danh k của tất cả những người giữ chỗ làm mồi nhử.<sup> 6</sup> Tuy nhiên, người nhận—người trả một khoản phí đáng kể cho dịch vụ—thường không nhận được bất kỳ lợi ích nào về quyền riêng tư.

Khi bắt đầu viết bài này, tôi thậm chí còn chưa nhận ra vấn đề này. Nhưng sau đó tôi phát hiện ra rằng nó đã được thảo luận chi tiết trên diễn đàn bitcointalk gần một thập kỷ trước, ngay sau khi JoinMarket ra mắt. Tuy nhiên, tầm quan trọng của nó dường như chưa được nhận thức đầy đủ.

Mặc dù JoinMarket có thể có những khía cạnh thú vị khác—chẳng hạn như việc sử dụng trái phiếu trung thực để chống lại các cuộc tấn công Phù thủy—nhưng chức năng chính của nó lại không đáp ứng được kỳ vọng. Do đó, chúng ta sẽ không thảo luận thêm về nó ở phần sau; tôi không khuyến nghị sử dụng JoinMarket trừ khi nó được thiết kế lại.

2.3 Giao thức WabiSabi và Ví Wasabi

Giao thức WabiSabi là một giao thức coinjoin nhiều bước được triển khai bởi ví Wasabi . Cũng có một plug-in BTCPay Server sử dụng giao thức WabiSabi, nhưng nó hiện không còn được duy trì. Ngoài ví Wasabi, tôi không biết về bất kỳ triển khai WabiSabi nào khác, vì vậy trong bài viết này, tôi sẽ sử dụng "Wasabi" để chỉ giao thức này và triển khai ví Wasabi. Cuối cùng, mặc dù ví Wasabi trước đây có phiên bản 1.x, nhưng hiện tại nó đã bị loại bỏ, vì vậy chúng ta sẽ chỉ đề cập đến phiên bản 2.x hiện tại của nó.

Wasabi dựa vào việc phân tách số tiền để đạt được tập hợp nặc danh k giữa nhiều người dùng. Quyền riêng tư của số tiền gửi vào Wasabi được bảo vệ bởi một hoặc nhiều vòng coinjoin, trong đó một điều phối viên tập trung (do người dùng chỉ định) điều phối nhiều người dùng để coinjoin tiền của họ.

Để viết bài này, tôi đã tạo một ví Wasabi mới và gửi vào đó 516.237 satoshi. Sau đó, tôi đã cho phép Wasabi sử dụng điều phối viên tại https://coinjoin.kruw.io/ để thực hiện coinjoin số tiền này bằng chiến lược coinjoin "tốc độ nhanh nhất". Dưới đây là các thông tin đầu vào và đầu ra của tôi khi tham gia vòng coinjoin đầu tiên, với ID giao dịch " 7a27…47ad ":

Thông tin đầu vào và đầu ra của tôi cho txid 7a27c793440396fd0090792e40bf0f9c981900697367391bb566725c179647ad

Để đạt được tập hợp nặc danh k, ví Wasabi của tôi tách số tiền gửi thành nhiều đầu ra mệnh giá tiêu chuẩn hóa (8 ) và phân phối chúng cho những người tham gia khác trong cùng một vòng coinjoin. Ví dụ, đầu ra của tôi với mệnh giá 59.049 satoshi là một trong năm đầu ra khác nhau có mệnh giá 59.049 satoshi cho giao dịch đó, tạo thành một tập hợp nặc danh k gồm khoảng 5; trong khi đầu ra của tôi với mệnh giá 100.000 satoshi là một trong mười bốn đầu ra như vậy, đặt nó trong một tập hợp nặc danh k gồm khoảng 14.

Như bạn có thể nhận thấy, có một biểu tượng hình khiên ở bên trái mỗi mục đầu ra và một con số bên cạnh. Wasabi theo dõi " điểm nặc danh " cho mỗi UTXO. Nó đo lường kích thước gần đúng của tập hợp nặc danh k mà Wasabi cho rằng có thể được cung cấp trong mỗi vòng coinjoin — không hoàn toàn chính xác. Bạn có thể cấu hình mục tiêu điểm nặc danh cho các đồng tiền của mình trong Wasabi, và Wasabi sẽ liên tục chạy các vòng coinjoin cho đến khi tất cả các đồng tiền (có thể chi tiêu về mặt kinh tế) của bạn đạt được mục tiêu. Trong ví thử nghiệm này, Wasabi đã chạy tổng cộng ba vòng coinjoin để đảm bảo tất cả các đầu ra đều đạt được mục tiêu của chúng.

wasabi-coinjoins

Điều quan trọng cần lưu ý là điểm nặc danh dựa trên tổng giá trị đầu vào và đầu ra của những người tham gia khác. Ví dụ, trong giao dịch ef4a…62d3 , tôi cố tình sử dụng một điều phối viên ít phổ biến hơn—với ít người dùng tham gia hơn. Do thiếu người tham gia khác, Wasabi đã tính điểm nặc danh cho đầu ra của tôi là 1.

wasabi-ins-outs-txid-ef4a49

Vì Wasabi sử dụng một điều phối viên tập trung, việc thực hiện các giao dịch coinjoin rất lớn (với hàng trăm đầu vào và đầu ra) khá đơn giản, miễn là bạn sử dụng một điều phối viên phổ biến. Hầu hết các mệnh giá sẽ có hàng chục đầu ra dường như giống hệt nhau. Trong trường hợp này, một tập hợp nặc danh tương đối lớn có thể đạt được với phí tương đối thấp, khiến Wasabi khá hiệu quả về chi phí. Không giống như JoinMarket, vì tất cả những người tham gia (ngoại trừ điều phối viên) đều tham gia bình đẳng, nên không có phương pháp(đã biết) nào để thực hiện một cuộc tấn công phân tích blockchain thụ động—ghép nối các đầu vào và đầu ra với xác suất vượt quá k—xác suất nội tại của tập hợp nặc danh.

2.3.1 Cấu trúc vòng và mật mã

使用一个中心化协调员,实现上述一切功能的一种phương pháp是直接让每一个参与者都告诉协调员自己希望在coinjoin 中使用什么输入和输出,然后,协调员可以构造出一笔交易,包含所有请求的输入和输出,让参与者们签名。如果Wasabi 是这样工作的,那么最终的coinjoin 交易将能抵抗被动的blockchain分析。其次—— 假设每一回合都有lượng lớn的参与者—— 那么一个参与者通过排除法来知道哪个输入和输出属于其他哪个 参与者就很难了。

Tuy nhiên, bạn phải tin tưởng người điều phối sẽ giữ bí mật (mối quan hệ giữa đầu vào và đầu ra). Đó là vấn đề. Có những lý do rõ ràng ở cả hai phía: chúng ta không chỉ muốn người điều phối không biết bí mật, mà một người điều phối trung thực cũng muốn không biết gì về nó cả.

Wasabi giải quyết vấn đề này thông qua một giao thức nhiều giai đoạn: người tham gia sử dụng nhiều danh tính thông qua cơ chế giao tiếp nặc danh(như Tor). Để có mô tả đầy đủ, bạn có thể đọc sách hướng dẫn này . Tuy nhiên, tôi sẽ tóm tắt nó thành bốn giai đoạn sau:

  1. Đăng ký đầu vào: Người tham gia thông báo cho điều phối viên đầu vào mà họ muốn sử dụng và sau đó nhận được một mã thông báo tiền điện tử Chaumian , về cơ bản là duy nhất cho vòng đó (một mã cho mỗi đầu vào). Người tham gia sử dụng biệt danh như "Alice" ở giai đoạn này; thông thường, Tor được sử dụng để đảm bảo nặc danh.
  2. Đăng ký đầu ra: Sử dụng một danh tính mới, ví dụ, thông qua một kết nối Tor mới, người tham gia gửi mã thông báo đầu vào của họ để đăng ký các đầu ra mà họ muốn xuất hiện trong vòng coinjoin này.
  3. Chữ ký: Lúc này, điều phối viên đã hoàn tất việc lập giao dịch và mỗi người tham gia ký vào giao dịch; giai đoạn này sử dụng lại thông tin nhận dạng đã được sử dụng trong giai đoạn "Đăng ký tham gia".
  4. Giai đoạn xác nhận: Nếu không phải tất cả người tham gia đều ký, CoinJoin sẽ thử lại với những người đã ký thành công. Các đồng tiền từ những người tham gia không ký sẽ tạm thời bị đưa vào danh sách đen để làm cho cuộc tấn công DoS trở nên tốn kém hơn.

Ở đây, quyền riêng tư được đảm bảo bằng cách sử dụng hai danh tính (bộ) khác nhau trong các giai đoạn đăng ký đầu vào và đầu ra, và bằng cách sử dụng các mã thông báo giống như eCash dành riêng cho từng vòng. Việc đảm bảo quyền riêng tư chống lại sự phân tích do điều phối viên khởi xướng phụ thuộc rất nhiều vào Tor: nếu kết nối Tor có thể bị điều phối viên nặc danh, điều phối viên có thể liên kết các đầu vào và đầu ra.

3 cuộc tấn công vào các kế hoạch hợp nhất tiền điện tử bên long

Trong bài viết này, chúng ta sẽ giả định rằng thuật toán mã hóa cơ bản của token giống tiền điện tử mà Wasabi sử dụng được triển khai và sử dụng chính xác; tôi không biết ai đã lập luận rằng giả định này là không hợp lệ. Do đó, chúng ta sẽ đi sâu hơn vào chi tiết mô hình bảo mật của lược đồ coinjoin bên long che giấu thông tin điều phối viên, cũng như những lời chỉ trích của Kogman đối với Wasabi.

3.1 Cuộc tấn công Phù thủy

如果协调员无法关联输入和输出,上述coinjoin 方案能去nặc danh化吗?当然!可以使用一种“ Phù thủy攻击”:如果一个主动攻击者可以成功用lượng lớn的参与者身份“冲垮” 一个coinjoin 回合、使得这个coinjoin 回合只有攻击目标是真实用户(其余每一个 参与者都是攻击者控制的),攻击者就能通过一个简单的排除法来去nặc danh化这lầncoinjoin 回合。

Cuộc tấn công này về cơ bản là thiếu sót đối với bất kỳ loại hệ thống coinjoin bên long mở nào—nơi bất kỳ ai cũng có thể tham gia nặc danh.<sup> 9 </sup> Trên thực tế, về mặt lý thuyết, cuộc tấn công này thậm chí có thể được áp dụng cho các hệ thống như Monero và Zcash . Câu hỏi duy nhất là, một cuộc tấn công như vậy sẽ tốn kém đến mức nào?

Một giao dịch Wasabi Round 10 điển hình, sử dụng điều phối viên Kruw, có dung lượng khoảng 25.000 vB và phát sinh phí khoảng 50.000 satoshi. Theo tỷ giá hiện tại, con số này tương đương khoảng 50 đô la Mỹ. Hơn nữa, Wasabi thực hiện hàng chục vòng coinjoin mỗi ngày.

Kẻ thù cố gắng thực hiện tấn công Phù thủy trực tiếp, làm quá tải mỗi vòng coinjoin với vô số đầu vào và đầu ra để cô lập nạn nhân, có thể phải chi hàng nghìn hoặc thậm chí hàng chục nghìn đô la mỗi ngày cho phí giao dịch. Hơn nữa, vì thông thường mỗi vòng coinjoin chứa hàng triệu đô la BTC, nên một cuộc tấn công thuyết phục sẽ đòi hỏi phải có được hàng triệu đô la BTC để mô phỏng cuộc tấn công.

Không có bằng chứng nào cho thấy một cuộc tấn công như vậy đang diễn ra. Tất nhiên, không có chính phủ hay tổ chức nào khác công khai tuyên bố đang thực hiện một cuộc tấn công như vậy; và trong các cuộc trò chuyện riêng tư của tôi với những người tham gia vào ngành phân tích blockchain, tôi hoàn toàn không nghe thấy bất cứ điều gì về một cuộc tấn công như vậy.

Trớ trêu thay, nếu một cuộc tấn công như vậy xảy ra, nó có thể tăng cường quyền riêng tư của những người tham gia coinjoin không phải là mục tiêu của cuộc tấn công (ít nhất là tạm thời). Điều này ngụ ý rằng một số tổ chức đang chi tiêu nguồn lực lượng lớn để vận hành coinjoin chỉ để giữ dữ liệu cho riêng mình (ít nhất là tạm thời).

3.2 Các cuộc tấn công Phù thủy có mục tiêu

Vậy, liệu các cuộc tấn công Phù thủy có thể rẻ hơn không? Có lẽ là với sự tham gia của một người điều phối. Trong phần này, chúng ta giả định rằng tính nhất quán lượt chơi vẫn không đổi; trong phần tiếp theo, chúng ta sẽ thảo luận về trường hợp không thể duy trì tính nhất quán lượt chơi.

(Ghi chú của người dịch: "Tính nhất quán" ở đây nên được hiểu trong bối cảnh của các hệ thống phân tán: cuối cùng, tất cả các bên tham gia đều nhận được cùng một kết quả.)

Bất kỳ hệ thống coinjoin bên long cũng sẽ sử dụng một số loại cơ chế đăng ký đầu vào, cũng như một số loại "vòng". Nếu kẻ tấn công—bao gồm cả chính người điều phối—có thể hướng dẫn người dùng khác nhau tham gia vào các vòng khác nhau, thì việc thực hiện tấn công Phù thủy sẽ trở nên rẻ hơn nhiều đối với kẻ tấn công. Ví dụ, giả sử kẻ tấn công liên tục cố gắng theo dõi một tập hợp tiền (trong đó một hoặc nhiều tiền) cho đến khi tập hợp tiền đó tham gia vào một coinjoin: thay vì tấn công Phù thủy tất cả các vòng coinjoin, việc tấn công chỉ vào các vòng coinjoin sử dụng những đồng tiền đó sẽ hiệu quả hơn.

Trong Wasabi, nếu không có sự điều phối của người điều hành, kẻ tấn công chỉ có thể liên tục thử tham gia hết vòng coinjoin này đến vòng coinjoin khác, sau đó ngắt kết nối sau khi phát hiện ra rằng vòng đó không chứa dữ liệu đầu vào mục tiêu. Vì Wasabi sử dụng cơ chế danh sách đen, cuộc tấn công này đòi hỏi lượng lớn coin, vì việc tham gia vào một vòng không thể được sử dụng để thực hiện cuộc tấn công sẽ dẫn đến việc một số coin bị đưa vào danh sách đen và không thể sử dụng trong các vòng tiếp theo.

Vì một giao dịch Wasabi đơn lẻ cực kỳ tốn kém, nên một cuộc tấn công như vậy sẽ trả giá giá rất cao ngay cả khi thành công: trong giao dịch của tôi ở trên, kẻ tấn công Phù thủy vẫn phải trả giá phí 140 đô la để nặc danh của tôi nhằm cô lập tôi; và họ cũng phải có khả năng kiểm soát nhiều nhóm BTC trị giá 1 triệu đô la (để tham gia vào các vòng coinjoin).

Hơn nữa, cuộc tấn công này liên quan đến sự đánh đổi vốn có giữa thông tin thu được và mức độ dễ dàng bị phá vỡ/phát hiện: nếu kẻ tấn công liên tục thực hiện cuộc tấn công Phù thủy đến mức chỉ còn lại một người dùng khác (người dùng thực) trong mỗi vòng, thì kẻ tấn công sẽ phá hủy tất cả hoạt động coinjoin tại vị trí của người điều phối đó. Điều này rất đáng ngờ! Ngược lại, nếu các vòng liên quan đến việc chi tiêu tiền không phải mục tiêu cũng thành công, điều đó có nghĩa là các vòng liên quan đến việc chi tiêu tiền mục tiêu cũng sẽ bao gồm các ví không phải mục tiêu , do đó làm giảm thông tin thu được từ cuộc tấn công này.

Với sự hợp tác của một điều phối viên, kiểu tấn công này đòi hỏi ít vốn hơn nhiều và có thể thành công hơn rất nhiều. Trước tiên, hãy giả định rằng kẻ tấn công biết tất cả các loại tiền điện tử mà mục tiêu muốn tham gia giao dịch.

Kẻ tấn công tham gia vào mỗi vòng, đăng ký số đồng xu Phù thủy của riêng mình làm đầu vào. Nếu những người tham gia khác đăng ký những đồng xu không phải là mục tiêu , kẻ tấn công sẽ rút lui, dẫn đến một vòng chơi có trách nhiệm mà không có đồng xu Phù thủy. Bởi vì kẻ tấn công "hợp tác" với người điều phối, những đồng xu Phù thủy này không bị đưa vào danh sách đen và có thể được sử dụng lại.

Nếu các người tham gia khác đăng ký đồng tiền mục tiêu , điều phối viên sẽ ngăn các đồng tiền không phải mục tiêu (ngoại trừ đồng tiền "Phù thủy") tham gia vào cùng một vòng. Từ góc nhìn của những người tham gia không phải mục tiêu, điều này dường như chỉ là một trục trặc tạm thời trong hoạt động của điều phối viên. Hoặc đồng tiền mục tiêu được đăng ký ngay lập tức, dẫn đến một vòng "thành công"; hoặc (nếu một đồng tiền không phải mục tiêu tham gia trước) việc kết hợp đồng tiền thành công sau một vòng xác định nguồn gốc. Trong cả hai trường hợp, giao dịch cuối cùng chỉ liên quan đến kẻ tấn công "Phù thủy" và mục tiêu, do đó dễ dàng nặc danh giao dịch.

Kiểu tấn công này, dù vẫn tốn kém để tạo ra một vòng coinjoin thuyết phục, vẫn yêu cầu kẻ tấn công phải trả phí giao dịch cho các đầu vào và đầu ra của họ. Tuy nhiên, nó có thể được thực hiện với số vốn ít hơn nhiều vì danh sách đen không còn là trở ngại; và nếu danh sách đen được công khai cho những người tham gia khác, việc phát hiện các cuộc tấn công thông đồng với những kẻ điều phối độc hại sẽ dễ dàng hơn nhiều.

3.3 Tái sử dụng địa chỉ sau khi Coinjoin thất bại

Lý tưởng nhất là các địa chỉ không bao giờ nên được sử dụng lại. Giống như hầu hết các phần mềm ví điện tử, Wasabi sử dụng mô hình ví xác định : các địa chỉ được tạo ra một cách xác định từ một cụm từ hạt giống. Tuy nhiên, vấn đề nằm ở " giới hạn địa chỉ trống ": độ dài của hàng đợi liên tiếp các địa chỉ trống mà phần mềm ví cho phép trước khi dừng số dư khi tái tạo ví từ một cụm từ hạt giống.

Hiện tại, nếu một vòng coinjoin thất bại hoàn toàn—ngay cả giai đoạn xác nhận cũng không tạo ra được giao dịch hợp lệ—Wasabi sẽ sử dụng cùng một địa chỉ đầu ra trong các lần thử coinjoin tiếp theo.

Vậy kẻ tấn công có thể học được gì từ điều này? Giả sử chúng ta có một vòng chơi thất bại, trong đó hai hoặc nhiều người tham gia (thực sự). Trong suốt vòng chơi, người điều phối và tất cả người tham gia đều biết các đầu vào và đầu ra mà tất cả người tham gia cùng mong muốn. Các đầu vào và đầu ra (mối tương quan) mà từng người tham gia mong muốn được bảo vệ bởi một tập hợp nặc danh k vì có nhiều người tham gia.

Giả sử sau khi vòng chơi thất bại, một hoặc nhiều người tham gia vào vòng chơi coinjoin tiếp theo. Trừ khi đó chính xác là cùng một nhóm người tham gia từ vòng trước đang cố gắng tham gia vòng tiếp theo, việc tái sử dụng địa chỉ sẽ phá vỡ tập hợp nặc danh k: nếu đầu vào và đầu ra của vòng hiện tại giao nhau với đầu vào và đầu ra của vòng trước đó đã thất bại, điều đó có nghĩa là cùng một người tham gia đang tham gia, điều này cho phép nặc danh của người tham gia đó.

Cách khắc phục lỗi này là không sử dụng lại địa chỉ sau một vòng chơi thất bại. Tính đến điểm viết bài này, đã có một yêu cầu kéo (PR) công khai đánh dấu địa chỉ trong sự kiện vòng chơi thất bại. Tuy nhiên, vẫn chưa rõ điều này sẽ tương tác như thế nào với hạn chế về địa chỉ rỗng.

Có lẽ vấn đề này có thể được giải quyết bằng kỹ thuật dựa trên " thanh toán im lặng ". Bằng cách này, địa chỉ đầu ra mới cho một vòng coinjoin sẽ được tạo ra một cách xác định từ các đầu vào giao dịch (và có thể cả trường nLockTime), đảm bảo khôi phục ví bất kể số vòng thất bại. Một nhược điểm của phương pháp này là seed cho ví Wasabi xác định sẽ không tương thích với tất cả các ví khác: bạn chỉ có thể khôi phục tiền trong ví Wasabi.

Cuối cùng, máy trạm Wasabi hỗ trợ gửi thanh toán trực tiếp trong một vòng coinjoin thông qua lệnh gọi RRC. Điều này giúp tiết kiệm phí giao dịch (tránh gửi một giao dịch riêng biệt). Tuy nhiên, tính năng này vốn dĩ gây ra vấn đề mà chúng ta đang thảo luận: sau một vòng coinjoin thất bại, các khoản thanh toán trực tiếp như vậy không được chuyển về địa chỉ mới và sẽ được thử lại. Hơn nữa, ngoài việc là một tính năng cấp cao chỉ có thể truy cập thông qua RPC và không được hiển thị trên giao diện người dùng đồ họa (GUI), GUI không cung cấp bất kỳ giải thích nào về nặc danh của các khoản thanh toán trực tiếp trong coinjoin.

3.3.1 Công khai tập hợp đầu vào của quyền sở hữu chung

Việc tránh tái sử dụng địa chỉ không giải quyết được lỗ hổng thông tin thứ hai (nhỏ hơn một chút): kẻ tấn công có thể biết được một tập hợp các đồng tiền thuộc cùng một chủ sở hữu. Để tăng hiệu quả, Wasabi thường sử dụng nhiều đầu vào trong một vòng coinjoin duy nhất. Do đó, kẻ tấn công có thể thu thập bằng chứng thống kê cho thấy các đồng tiền khác nhau thuộc cùng một chủ sở hữu. Vẫn chưa rõ làm thế nào để giảm thiểu hoàn toàn vấn đề này trong các sơ đồ coinjoin nhằm mục đích sử dụng nhiều đồng tiền cùng một lúc.

3.3.2 Trích xuất thông tin thông qua các vòng không hợp lệ

Một kiểu tấn công rủi ro nhưng có khả năng cung cấp nhiều thông tin hơn liên quan đến việc người điều phối sử dụng các đầu vào hoàn toàn không hợp lệ để giả vờ có nhiều Alice (trong khi thực tế không có nhiều như vậy). Điều này rất rủi ro vì trong giao thức Wasabi, người tham gia biết tất cả các đầu vào cho một vòng trước giai đoạn đăng ký đầu ra — điều cần thiết để lựa chọn mệnh giá tiền xu tối ưu. Những người tham gia có quyền truy cập vào tập hợp UTXO mới nhất có thể phát hiện ra hành vi gian lận này. Tuy nhiên, máy trạm Wasabi hiện tại không giả định có quyền truy cập vào tập hợp UTXO và do đó không thể tự động phát hiện ra hành vi gian lận này.

So với các cuộc tấn công thông qua các lượt chơi thất bại, lợi thế của các cuộc tấn công lượt chơi không hợp lệ là bộ điều phối hoạt động sai có thể thu thập được số liệu thống kê tốt hơn về mối quan hệ giữa đầu vào dự định và đầu ra dự định với chi phí thấp hơn. Tuy nhiên, một khi vấn đề tái sử dụng địa chỉ được khắc phục, loại tấn công này trở nên kém hiệu quả hơn vì các mối quan hệ khớp đã học được về cơ bản là vô dụng.

3.4 Tính nhất quán của vòng tấn công

Như đã đề cập trước đó, mặc dù luôn có khả năng xảy ra tấn công Phù thủy trong một vòng coinjoin, nhưng có thể suy đoán rằng việc đó sẽ cực kỳ tốn kém, vì kẻ tấn công sẽ phải trả phí cho mỗi vòng thành công (các giao dịch được khai thác).

Nhưng nếu bạn không phải trả khoản phí này thì sao?

Nếu điều phối viên có thể thuyết phục các người tham gia khác nhau từ các vòng khác nhau ký cùng một giao dịch hợp lệ, điều phối viên có thể tái sử dụng thanh khoản của những người tham gia khác để thực hiện tấn công Phù thủy đối với từng người tham gia. Wasabi sử dụng "ID vòng" 256 bit để xác định các vòng, được tạo ra bằng cách băm tất cả các giá trị liên quan trong vòng đó . Điều quan trọng là thời gian bắt đầu của giai đoạn đăng ký đầu vào và danh tính của điều phối viên là rất quan trọng. Hai thông tin này đủ để xác định duy nhất một vòng. Hơn nữa, vì tất cả các thiết lập vòng đều được băm thành ID vòng này, nếu ID vòng vẫn nhất quán, điều phối viên không thể nặc danh các người tham gia khác nhau thông qua sự khác biệt về hành vi, vì các vòng khác nhau có các thiết lập khác nhau.

Trong quá trình coinjoin, máy trạm Wasabi định định kì yêu cầu trạng thái của tất cả các vòng. Sau đó, khi máy trạm quyết định tham gia vào một vòng, nó sẽ sử dụng ID vòng đó trong các tương tác với điều phối viên . Trong một số trường hợp, chẳng hạn như khi một vòng đã đầy, nhiều vòng có thể diễn ra song song; điều phối viên có thể thông báo các ID vòng khác nhau cho máy trạm khác nhau.

Trong giai đoạn đăng ký đầu vào, tất cả các Alice gửi chứng chỉ quyền sở hữu BIP-322 cho các đầu vào của họ đến điều phối viên. Các chứng chỉ quyền sở hữu này được gán cho một ID vòng , ngăn chặn việc sử dụng lại chúng trong các vòng khác. Cuối cùng, trước khi ký, điều phối viên cung cấp cho mỗi máy trạm chứng chỉ quyền sở hữu cho tất cả các đầu vào của họ. Sau khi nhận được các chứng chỉ quyền sở hữu này, các máy trạmsẽ xác minh chúng .

Vấn đề mà Kogman chỉ ra là việc chỉ xác minh bằng chứng quyền sở hữu thôi là chưa đủ: chúng ta cũng cần xác minh rằng bằng chứng quyền sở hữu này thực sự tương ứng một-một với khóa công khai của tập lệnh ( scriptPubKey ) của dữ liệu đầu vào giao dịch mà bằng chứng đó nhằm chứng minh. Máy trạm của Wasabi không cho rằng họ có quyền truy cập vào một tập hợp UTXO hợp lệ và do đó không trực tiếp xác minh quyền sở hữu.

Nếu chúng ta dừng lại ở đây, thì cơ chế chứng minh quyền sở hữu có thể bị đánh lừa bởi chứng minh quyền sở hữu "giả mạo": khóa công khai thực (tạo ra bằng chứng) không tương ứng với khóa công khai của dữ liệu đầu vào giao dịch mà chứng minh quyền sở hữu nhằm mục đích chứng minh.

但是,Kogman 没有考虑到Taproot 签名的工作原理:Taproot 输入的签名会承诺交易中所有输入的脚本公钥,意思是,任何假冒的所有权证据,最终都会产生一个无效的签名(无效的交易)。这种情形只是无效输入攻击的另一种形式(我们在上文3.3.2 章节已经讨论过它了)。

Hiện tại, Wasabi vẫn hỗ trợ các đầu vào không phải Taproot vì lịch sử, nhiều dịch vụ đã áp dụng địa chỉ Bech32m (Taproot) khá muộn . May mắn thay, miễn là bất kỳ người chơi nào không phải là kẻ tấn công sử dụng đầu vào Taproot trong một vòng Wasabi, tất cả các đầu vào đều phải có bằng chứng sở hữu hợp lệ. Nói cách khác, để thực hiện một cuộc tấn công Phù thủy thông qua tính nhất quán của vòng, một điều phối viên độc hại phải có thanh khoản thực tế tương đương với tất cả các đầu vào Taproot trong vòng đó (và chi tiêu cùng một tỷ lệ phí), và họ chỉ có thể tấn công máy trạm không đóng góp đầu vào Taproot.

Tại sao? Bởi vì nút trung thực chỉ ký một ID vòng duy nhất. Giả sử có ba người tham gia Alice trong một vòng: Adams, Brown và Turner. Chúng ta giả định Turner có nhiều hơn một đầu vào Taproot, trong khi hai người còn lại chỉ có các đầu vào không phải Taproot.

Để một giao dịch hợp lệ diễn ra trong vòng này, điều phối viên cần cung cấp cho Adams và Brown bằng chứng sở hữu chính xác và hợp lệ từ Turner. Tuy nhiên, một khi điều phối viên làm được điều này, TA chỉ có thể cung cấp cho tất cả những người tham gia Alice cùng một ID vòng, do đó ngăn chặn mọi nỗ lực tấn công Phù thủy, bởi vì tất cả những người tham gia Alice sẽ đăng ký đầu ra với cùng một ID vòng; tất cả thanh khoản của Alice đều được đóng góp vào tập hợp nặc danh chung.

Xin lưu ý rằng các đầu vào Taproot như vậy cũng có thể là đầu vào của bạn : với điều kiện bạn đã đóng góp ít nhất một đầu vào Taproot vào một vòng coinjoin, bạn có thể chắc chắn rằng tất cả thanh khoản hợp lệ trong vòng đó sẽ đóng góp vào cùng một ID vòng. Thanh toán đến địa chỉ Bech32m (Taproot) hiện được hỗ trợ rộng rãi, vì vậy Wasabi nên tạo địa chỉ gửi tiền Taproot theo mặc định; tính đến phiên bản 2.6.0, họ vẫn chưa làm điều đó. Tuy nhiên, có 50% khả năng địa chỉ đầu ra là địa chỉ Taproot, điều này bảo vệ phần lớn các vòng coinjoin, vì nhiều thanh khoản cố gắng đăng ký ít nhất một địa chỉ Taproot.

3.5 k - tập hợp nặc danh các đặc điểm giao tiếp

Trước đây, Kogman đã nêu vấn đề về độ trễ đăng ký trong một vấn đề trên GitHub . Mặc dù Kogman không đưa ra cơ sở kỹ thuật rõ ràng cho lời chỉ trích này, chúng ta có thể suy ra rằng: một tập hợp các đặc điểm giao tiếp nặc danh k là rất quan trọng trong bất kỳ lược đồ kết hợp bên long nào cố gắng đạt được nặc danh thông qua việc tách biệt danh tính ở các giai đoạn khác nhau.

Hãy nhớ rằng Tor cung cấp khả nặc danh tương đương với truyền phát TCP , định tuyến thông qua các ô chuyển tiếp có độ dài cố định. Bây giờ, hãy tưởng tượng kết nối internet của bạn chậm nhất trong số tất cả những người tham gia cùng một vòng coinjoin, chậm hơn đáng kể. Nói cách khác, tốc độ kết nối internet của bạn không có thiết lập nặc danh k. Điều này là có thể: điều phối viên có thể phát hiện đặc điểm này bằng thời điểm cụ thể của các tương tác dữ liệu và sau đó nặc danh tính đầu vào và đầu ra của bạn bằng cách quan sát đặc điểm này trong các giai đoạn đăng ký đầu vào và đầu ra.

Sẽ lý tưởng nếu Wasabi cuối cùng có thể chuyển sang một lược nặc danh dữ liệu hoàn toàn dựa trên gói tin—trong đó tất cả quá trình giao tiếp được thực hiện thông qua việc trao đổi các gói tin nguyên tử với đặc điểm thời gian hoàn toàn ngẫu nhiên. Thật không may, một lược đồ được sử dụng rộng rãi với các thuộc tính tin cậy tương tự như Tor vẫn chưa tồn tại. Có lẽ Wasabi có thể cải thiện tình hình hiện tại ở một mức độ nào đó bằng cách tăng cường sử dụng độ trễ ngẫu nhiên. Nhưng nếu không có một lược đồ giao tiếp hoàn toàn dựa trên gói tin, có lẽ tốt nhất nên sử dụng Wasabi trên một loại kết nối internet tương đối phổ biến để tối đa hóa tập hợp nặc danh k của bạn. Tương tự, vấn đề này có thể được cải thiện trong các vòng có nhiều người tham gia hơn vì tập hợp nặc danh k lớn hơn.

Kogman cũng chỉ ra một phiên bản liên quan khác của vấn đề này: có những khác biệt nhỏ giữa quá trình tuần tự hóa và giải tuần tự hóa. Wasabi sử dụng tuần tự hóa JSON, vốn nổi tiếng là mơ hồ và có sự khác biệt nhỏ giữa các triển khai khác nhau. Một lần nữa, tập hợp nặc danh k của bạn được xác định bởi số lượng người tham gia sử dụng cùng một lược đồ tuần tự hóa. Những khác biệt nhỏ này cũng có thể dẫn đến việc điều phối viên có thể liên kết đầu vào và đầu ra của bạn.

May mắn thay, Wasabi chỉ có một cách triển khai được sử dụng phổ biến, vì vậy trên thực tế, điều này có thể không phải là vấn đề. Tuy nhiên, Wasabi cuối cùng nên chuyển sang một giao thức tuần tự hóa nhị phân hoàn toàn rõ ràng và nghiêm ngặt.

4. Kết luận

Mặc dù Wasabi còn nhiều điểm cần cải thiện, nhưng rõ ràng đây là lựa chọn tốt nhất để tham gia CoinJoin hiện nay. Các ví hỗ trợ PayJoin cũng đáng được khen ngợi, vì nó mang lại lợi ích đáng kể nếu cả người trả tiền và người nhận (phần mềm ví của họ) đều hỗ trợ. Thật không may, mặc dù tôi sẵn lòng giới thiệu JoinMarket, sự thật phũ phàng là việc để lại dấu vết trên blockchain về nguồn gốc tiền là một sai lầm rất lớn, tệ hơn nhiều so với bất kỳ điều phối viên nào sẵn sàng trả giá rủi ro cao để phản bội lòng tin của bạn.

Hãy suy nghĩ kỹ: Bạn muốn chấp nhận rủi ro một thực thể nào đó có thể không đáng tin cậy có thể tìm phương pháp vượt qua các biện pháp bảo vệ mã hóa của Wasabi? Hay bạn muốn chủ động công khai dữ liệu của mình trên blockchain cho toàn thế giới, để bất kỳ ai, hiện tại hoặc trong tương lai, đều có thể sử dụng nó để nặc danh bạn?

Mặc dù việc có người điều phối đáng tin cậy là điều không mong muốn, nhưng việc có thể tin tưởng người điều phối của mình sẽ mang lại lớp bảo vệ kép. Sẽ lý tưởng nếu Kruw không thể nặc danh giao dịch coinjoin của tôi ngay cả khi anh ta muốn. Tuy nhiên , cũng sẽ tốt nếu có một lý do thuyết phục nào đó cho rằng anh ta không làm vậy.

JoinMarket thất bại ở chỉ báo đầu tiên: trong điều kiện sử dụng bình thường, nhiều giao dịch của bạn có thể bị nặc danh do thiếu sót trong việc thanh toán phí. Nhưng nó cũng thất bại ở chỉ báo thứ hai: nó hoàn toàn dựa vào kinh tế và xác suất để lựa chọn đối tác, khiến cho bất kỳ kẻ xấu nào có tiền nhàn rỗi đều dễ dàng trở thành đối tác của bạn và nặc danh của bạn. Điều này phần nào tương tự như cách Tor, nếu phi tập trung, sẽ trở nên kém an toàn hơn vì thiếu yếu tố con người để ngăn chặn kẻ xấu; không có cách nào để chứng minh bạn sẽ không bị ghi lại thông tin.

Hành vi thái quá của Kogman là một ví dụ điển hình về những điều chúng ta không nên làm. ... (Ghi chú của người dịch: Đoạn này chỉ đề cập đến danh tiếng của nhân vật và không được dịch.)

Công nghệ không bao giờ hoàn hảo. Tôi không chỉ dùng Wasabi. Tôi thích sử dụng các loại tiền điện tử khác sau CoinJoin để mở Kênh Lightning và sử dụng Mạng Lightning để chi tiêu tiền của mình. Điều này sử dụng hai công nghệ bảo mật rất khác nhau, vì vậy quyền riêng tư của tôi chỉ bị xâm phạm nếu cả hai đều gặp sự cố.

5. Chú thích cuối trang

1. [bitcoindev] nhắc lại cuộc tấn công nặc danh nhằm vào các hệ thống coinjoin tập trung (Wasabi và Samourai) , 21/12/2024 14:16, Yuval Kogman; xem thêm bản lưu trữ cục bộ (OTS) ↩<

Nguồn
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
Thêm vào Yêu thích
Bình luận