Bitcoin thường được gọi là tiền mặt kỹ thuật số, nhưng phép so sánh này còn nhiều tranh cãi. Nếu Alice trả cho Bob 10 USD tiền mặt, Bob sẽ không biết số tiền đó từ đâu tới. Nếu sau đó Bob đưa số tiền ấy cho Carol, Carol cũng không thể suy ra rằng Alice từng cầm nó.
Bitcoin thì khác, vì bản chất công khai của nó. Lịch sử của một đồng coin bất kỳ (tức đầu ra giao dịch chưa tiêu — UTXO) có thể được bất kỳ ai xem lại dễ dàng. Nó giống việc mỗi lần dùng một đồng bitcoin, người ta lại ghi số tiền và tên người nhận lên một tờ hóa đơn hơn.
Tuy nhiên, việc các địa chỉ công khai không kèm tên khiến danh tính người dùng không lộ ra một cách dễ dàng. Dù vậy, Bitcoin không hề riêng tư hoàn toàn. Ngành phân tích blockchain ngày càng tinh vi, việc nối địa chỉ với danh tính ngày càng thành công hơn. Ngoài các kỹ thuật giám sát, một bộ phận chuyên trách cũng có thể lần ra danh tính người dùng tiền mã hóa. Để ngăn điều đó, nhiều kỹ thuật cắt đứt mối liên hệ giữa các giao dịch đã xuất hiện qua năm tháng.
Coin mixing là gì?
Nói chung, coin mixing chỉ những giao dịch nhằm che giấu nguồn tiền bằng cách đổi chúng lấy nguồn tiền khác. Nhưng trong thế giới tiền mã hóa, coin mixing thường được dùng để chỉ dịch vụ do bên thứ ba cung cấp. Nhà cung cấp nhận coin của người dùng (kèm một khoản phí nhỏ) và trả lại cho họ những đồng coin khác không có liên hệ gì với số đã gửi đi. Các dịch vụ này còn được gọi là tumbler hoặc mixer.
Dĩ nhiên, tính bảo mật và riêng tư của những dịch vụ tập trung như vậy đặt ra không ít câu hỏi. Không gì bảo đảm mixer sẽ trả coin lại cho bạn, cũng không gì bảo đảm số coin nhận về không mang một lịch sử giao dịch phiền phức. Một điểm nữa cần cân nhắc khi dùng mixer là địa chỉ IP và địa chỉ Bitcoin của bạn có thể bị bên thứ ba ghi lại. Rốt cuộc, người dùng đang giao tiền của mình cho người khác giữ, với hy vọng nhận lại những đồng coin đã đứt liên kết.
Một hướng tiếp cận thú vị hơn là giao dịch CoinJoin, thứ tạo ra một mức độ "chối được một cách hợp lý" đáng kể. Nghĩa là sau khi một giao dịch CoinJoin diễn ra, không ai đưa ra được bằng chứng khẳng định chắc chắn mối liên hệ giữa một người dùng và các giao dịch trước đó của người ấy. Nhiều giải pháp CoinJoin là lựa chọn phi tập trung hơn so với mixer. Người dùng không phải giao quyền giữ tiền của mình cho ai, dù quy trình vẫn có thể cần một bên điều phối.
CoinJoin là gì?
Giao dịch CoinJoin lần đầu được nhà phát triển Bitcoin Gregory Maxwell giới thiệu năm 2013. Trong bài viết của mình, ông trình bày ngắn gọn cách các giao dịch này được cấu trúc và cách đạt được mức tăng vọt về quyền riêng tư mà không cần thay đổi giao thức.
Về bản chất, CoinJoin là gộp các đầu vào từ nhiều người dùng khác nhau vào chung một giao dịch. Trước khi nói cách làm (và lý do làm), hãy điểm qua cấu trúc cơ bản của một giao dịch.
Giao dịch Bitcoin gồm các đầu vào (input) và đầu ra (output). Khi muốn thực hiện một giao dịch, người dùng lấy UTXO của mình làm đầu vào, đặt các đầu ra, rồi ký lên các đầu vào. Cần lưu ý rằng mỗi đầu vào được ký độc lập, và người dùng có thể tạo nhiều đầu ra (gửi tới nhiều địa chỉ khác nhau).

Khi soi một giao dịch gồm bốn đầu vào (mỗi cái 0,2 BTC) và hai đầu ra (0,7 BTC và 0,09 BTC), ta có thể đưa ra vài giả định. Thứ nhất là có một khoản thanh toán diễn ra — người gửi chuyển một đầu ra cho ai đó và phần tiền thừa về lại chính mình. Vì dùng bốn đầu vào, nhiều khả năng đầu ra lớn nhất là phần đi tới người nhận. Nếu tổng đầu ra thiếu mất 0,01 BTC, đó chính là phí giao dịch trả cho thợ đào.
Cũng có khả năng người gửi muốn gom nhiều UTXO nhỏ thành một UTXO lớn, nên đã ghép các đầu vào nhỏ lại để đạt con số 0,7 BTC mong muốn.
Một giả định khác dựa trên chính việc mỗi đầu vào được ký độc lập. Giao dịch cũng có thể đã được tạo theo kiểu bốn bên khác nhau cùng ký bốn đầu vào. Đây chính là nguyên lý làm nên hiệu quả của CoinJoin.
CoinJoin hoạt động như thế nào?
Ý tưởng chính là nhiều bên phối hợp với nhau để tạo một giao dịch, mỗi bên khai báo đầu vào và các đầu ra mình muốn. Khi tất cả đầu vào đã gộp chung, không ai nói chắc được đầu ra nào thuộc về người dùng nào. Bạn có thể xem quy trình trong sơ đồ dưới đây:

Ở đây có bốn người dùng muốn cắt đứt mối liên hệ giữa các giao dịch của mình. Họ phối hợp với nhau (hoặc thông qua một bên điều phối) để thông báo các đầu vào và đầu ra muốn đưa vào giao dịch.
Bên điều phối thu hết thông tin, dựng nên giao dịch, rồi để từng người tham gia ký trước khi phát ra mạng lưới. Sau khi mọi người đã ký, không thể sửa giao dịch này mà không làm nó mất hiệu lực. Nhờ vậy, rủi ro bên điều phối cuỗm mất tiền bị loại bỏ.
Giao dịch đóng vai trò như một hộp đen trộn coin. Các UTXO cũ phải bị hủy đi để tạo ra UTXO mới. Mối liên hệ duy nhất giữa UTXO cũ và mới chính là bản thân giao dịch, nhưng đến đây thì không cách nào tách riêng từng người tham gia ra được. Nhiều nhất, ta chỉ có thể nói một trong các đầu vào là do một người tham gia đưa vào, và người đó có thể là chủ mới của đầu ra kia.
Nhưng ngay cả điều đó cũng không chắc chắn. Từ giao dịch trên, có thể kết luận rằng có bốn người tham gia không? Hay đó là một người gửi tiền tới bốn địa chỉ khác nhau của chính mình? Hay hai người thực hiện hai giao dịch mua khác nhau và gửi lại 0,2 BTC về địa chỉ của họ? Hay bốn người gửi tiền cho những người mới, hoặc cho chính họ? Chúng ta không thể trả lời chính xác những câu hỏi này.
Quyền riêng tư nhờ khả năng chối bỏ
Chỉ riêng việc các ứng dụng CoinJoin tồn tại đã đủ khiến ta hoài nghi những phương pháp đang dùng để phân tích giao dịch. Bạn có thể kết luận rằng CoinJoin được dùng trong rất nhiều giao dịch, nhưng vẫn không biết ai sở hữu đầu ra nào. Càng nhiều người dùng những ứng dụng này, giả định "mọi đầu vào đều thuộc về cùng một người" càng yếu đi — và đó là một bước tiến lớn về quyền riêng tư cho cả hệ sinh thái.
Trong ví dụ trên, giao dịch có tập ẩn danh bằng 4, nghĩa là chủ của một đầu ra có thể là một trong bốn người tham gia. Tập ẩn danh càng lớn thì càng khó nối một giao dịch với chủ nhân thật của nó. May thay, nhờ các bản triển khai CoinJoin gần đây, người dùng có thể gộp đầu vào của mình với hàng chục người khác mà không cần tin tưởng ai, đạt mức chối bỏ rất cao. Gần đây, một giao dịch với 100 người tham gia đã được thực hiện thành công.
Lời kết
Các công cụ trộn coin là những công cụ quan trọng, dành cho tất cả những ai coi trọng quyền riêng tư. Khác với các bản nâng cấp riêng tư khác (chẳng hạn Confidential Transactions), bạn có thể tận dụng chúng mà không cần giao thức phải thay đổi gì.
Với những người tin vào sự chính trực và cách làm của bên thứ ba, dịch vụ trộn coin là giải pháp dễ dùng. Với những ai muốn một lựa chọn kiểm chứng được và không phải giao tiền cho ai giữ, CoinJoin là phương án vượt trội. Người rành kỹ thuật có thể tự làm thủ công, hoặc dùng các phần mềm giúp bạn khỏi phải đụng tới phần cơ chế phức tạp. Đã có vài công cụ kiểu này, và chúng ngày càng phổ biến khi người dùng đòi hỏi quyền riêng tư nhiều hơn.
