Giải Thích Về Coin Mixing Và CoinJoin
Mục lục
Giới thiệu
Trộn tiền (Coin Mixing) là gì?
CoinJoin là gì?
CoinJoin hoạt động như thế nào?
Quyền riêng tư thông qua sự từ chối
Tổng kết
Giải Thích Về Coin Mixing Và CoinJoin
Trang chủBài viết
Giải Thích Về Coin Mixing Và CoinJoin

Giải Thích Về Coin Mixing Và CoinJoin

Nâng cao
Đã đăng Mar 25, 2020Đã cập nhật Feb 23, 2022
5m

Giới thiệu

Bitcoin thường được gọi là tiền mặt kỹ thuật số, nhưng đây là một so sánh hơi khập khiễng. Nếu Alice trả cho Bob 10 USD tiền mặt, Bob không biết số tiền đó đến từ đâu. Nếu sau đó anh ta tiếp tục đưa nó cho Carol, cô ấy sẽ không thể suy ra rằng Alice đã từng sở hữu nó.
Bitcoin khác biệt vì bản chất công khai vốn có của nó. Lịch sử của một đồng tiền nhất định (chính xác hơn là đầu ra giao dịch chưa sử dụng - viết tắt là UTXO) có thể được quan sát bởi bất kỳ ai. Nó hơi giống như viết số tiền giao dịch và tên của những người tham gia trên hóa đơn mỗi khi nó được sử dụng. 
Điều đó thể hiện rằng, bút danh của một địa chỉ công khai đảm bảo rằng danh tính của người dùng không dễ dàng bị tiết lộ. Tuy nhiên, Bitcoin lại không hoàn toàn đem đến sự riêng tư. Việc phân tích blockchain ngày càng phát triển phức tạp và nhiều bên có khả năng liên kết địa chỉ với danh tính ngày càng hiệu quả hơn. Cùng với các kỹ thuật giám sát khác, một tổ chức chuyên dụng có thể xác định danh tính người dùng mã hóa. Để khắc phục điều này, các kỹ thuật hủy liên kết giao dịch đã xuất hiện trong nhiều năm gần đây.


Trộn tiền (Coin Mixing) là gì?

Nhìn chung, trộn tiền đề cập đến bất kỳ hoạt động nào liên quan đến việc xáo trộn tiền bằng nhiều tờ tiền khác nhau. Tuy nhiên, trong lĩnh vực tiền mã hóa việc trộn tiền (coin mixing) thường biểu thị một dịch vụ do bên thứ ba cung cấp. Thông thường, các nhà cung cấp dịch vụ lấy tiền của người dùng (và một khoản phí nhỏ) và trả lại các đồng không có liên kết với đồng đã gửi. Các dịch vụ này còn được gọi là máy trộn (tumbler) hoặc máy xáo (mixer) .

Tất nhiên, tính bảo mật và ẩn danh của các dịch vụ tập trung như vậy là rất đáng nghi ngờ. Không có gì đảm bảo rằng tiền của người dùng sẽ được máy trộn trả lại hoặc những đồng tiền được trả lại không bị "nhiễm bẩn" theo một cách nào đó. Một khía cạnh bổ sung cần xem xét khi sử dụng máy trộn là địa chỉ IP và Bitcoin có thể được ghi lại bởi bên thứ ba. Suy cho cùng, người dùng phải từ bỏ quyền kiểm soát tiền của họ với hy vọng nhận lại những khoản tiền không bị gắn liên kết.

Một cách tiếp cận được cho là phù hợp hơn là hình thức giao dịch CoinJoin, tạo ra mức độ phủ nhận hợp lý đáng kể. Điều đó có nghĩa là, sau CoinJoin, không có bằng chứng nào chắc chắn để có thể liên kết người dùng với các giao dịch trước đó của họ. CoinJoin là một giải pháp thay thế phi tập trung cho máy trộn. Mặc dù có thể có một điều phối viên tham gia, người dùng không cần phải hy sinh quyền giám sát tiền của họ.


CoinJoin là gì?

Giao dịch CoinJoin ban đầu được đề xuất bởi nhà phát triển Bitcoin Gregory Maxwell vào năm 2013. Trong đề tài của mình, Gregory Maxwell đã đưa ra một cái nhìn tổng quan ngắn gọn về cách các giao dịch này được cấu trúc và cách có thể đạt được những lợi ích lớn về quyền riêng tư mà không cần bất kỳ thay đổi nào đối với giao thức.
Về bản chất, CoinJoin liên quan đến sự kết hợp các đầu vào của nhiều người dùng vào một giao dịch duy nhất. Trước khi giải thích cách thức (và lý do), chúng ta hãy xem cấu trúc của một giao dịch cơ bản.

Các giao dịch bitcoin được tạo thành từ đầu vào và đầu ra. Khi người dùng muốn thực hiện một giao dịch, họ lấy các UTXO của họ làm đầu vào, chỉ định đầu ra và ký tên vào đầu vào. Điều quan trọng cần lưu ý là mỗi đầu vào được ký độc lập và người dùng có thể đặt nhiều đầu ra (đi đến các địa chỉ khác nhau).



Nếu chúng ta xem xét một giao dịch nhất định được tạo thành từ bốn đầu vào (mỗi đầu vào 0,2 BTC) và hai đầu ra (0,7 BTC và 0,09 BTC), chúng ta có thể đưa ra một số giả định khác nhau. Đầu tiên là chúng ta đang xem một khoản thanh toán diễn ra – người gửi đang gửi một trong các kết quả đầu ra cho ai đó và trả lại một số tiền lẻ cho chính họ. Vì họ đã sử dụng bốn đầu vào, đầu ra lớn hơn có thể dành cho người nhận. Lưu ý, chúng ta đang thiếu 0,01 BTC từ kết quả đầu ra, đây là khoản phí được gửi cho thợ đào.

Cũng có thể người gửi muốn tạo ra một UTXO lớn từ những cái nhỏ hơn, vì vậy họ hợp nhất các đầu vào nhỏ hơn để có được kết quả 0,7 BTC mong muốn.

Một giả định khác mà chúng ta có thể đưa ra dựa trên thực tế là mỗi đầu vào được ký một cách độc lập. Giao dịch này có thể có tối đa bốn bên khác nhau ký vào các đầu vào. Và đó là nguyên tắc khiến cho CoinJoining hoạt động hiệu quả.


CoinJoin hoạt động như thế nào?

Ý tưởng là nhiều bên sẽ phối hợp với nhau để tạo ra một giao dịch, mỗi bên cung cấp đầu vào và đầu ra mong muốn. Khi tất cả các đầu vào được kết hợp, không thể xác định chắc chắn đầu ra nào thuộc về người dùng nào. Hãy xem sơ đồ dưới đây:



Ở đây, chúng ta có bốn người tham gia muốn phá vỡ liên kết giữa các giao dịch. Họ phối hợp với nhau (hoặc thông qua một điều phối viên chuyên dụng) để thông báo các đầu vào và đầu ra mà họ muốn đưa vào. 

Người điều phối sẽ lấy tất cả thông tin, soạn thảo thành một giao dịch và yêu cầu từng người tham gia ký tên trước khi truyền thông tin đó lên mạng. Khi người dùng đã ký, giao dịch không thể được sửa đổi mà không trở nên vô hiệu. Do đó, không có rủi ro nào về việc người điều phối mang tiền bỏ chạy. 

Giao dịch này đóng vai trò như một hộp đen để trộn các đồng tiền. Hãy nhớ rằng chúng ta đang tiêu diệt một cách hiệu quả các UTXO để tạo ra những UTXO mới. Mối liên kết duy nhất giữa UTXO cũ và mới mà chúng ta có chính là giao dịch vừa được thực hiện, nhưng tất nhiên, chúng ta không thể phân biệt giữa những người tham gia. Một cách tốt nhất, chúng ta có thể nói rằng một người tham gia đã cung cấp một trong các đầu vào và có thể là chủ sở hữu mới của kết quả đầu ra.

Nhưng ngay cả điều đó cũng không được đảm bảo. Có thể nói, khi nhìn vào giao dịch trên, làm sao biết chắc rằng có bốn người tham gia? Đây có phải là một người gửi tiền của họ đến bốn địa chỉ của chính họ không? Hai người thực hiện hai giao dịch mua riêng biệt và trả lại cho mỗi người 0,2 BTC về địa chỉ của chính họ? Bốn người gửi cho những người tham gia mới hay gửi lại cho chính họ? Chúng ta không thể chắc chắn bất cứ điều nào.


Quyền riêng tư thông qua sự từ chối

Thực tế là việc triển khai CoinJoin đủ để gây nghi ngờ về các phương pháp được sử dụng để phân tích giao dịch. Bạn có thể suy ra rằng một CoinJoin đã diễn ra trong nhiều trường hợp, nhưng bạn vẫn không thể xác định ai là người sở hữu kết quả đầu ra. Khi chúng ngày càng phổ biến, giả định rằng tất cả các đầu vào đều thuộc sở hữu của cùng một người dùng sẽ bị suy yếu –một bước nhảy vọt cho quyền riêng tư trong hệ sinh thái rộng lớn hơn.

Trong ví dụ trước, chúng ta nói rằng giao dịch có bộ ẩn danh là 4 – chủ sở hữu của đầu ra có thể là bất kỳ ai trong số bốn người tham gia. Bộ ẩn danh càng lớn thì khả năng các giao dịch có thể được liên kết với chủ sở hữu ban đầu của nó càng ít. May mắn thay, việc triển khai CoinJoin gần đây đã được triển khai với hàng chục người khác nhau, mang lại mức độ phủ nhận cao. Gần đây, một giao dịch 100 người đã được thực hiện thành công.


Tổng kết

Các công cụ để trộn tiền là một bổ sung quan trọng cho các giải pháp bảo vệ quyền riêng tư của người dùng. Không giống như các nâng cấp về quyền riêng tư được đề xuất (chẳng hạn như Giao dịch bí mật (Confidential Transactions)), các công cụ trộn tiền hay CoinJoin tương thích với các giao thức hiện nay. 

Đối với những người tin tưởng tính toàn vẹn và lý luận của các bên thứ ba, dịch vụ trộn tiền là một giải pháp dễ dàng. Đối với những người thích một giải pháp thay thế có thể xác minh và không giám sát, CoinJoin là lựa chọn ưu việt hơn. Những điều này có thể được thực hiện thủ công bởi những người dùng thành thạo về kỹ thuật hoặc bằng cách sử dụng các công cụ phần mềm giúp loại bỏ các cơ chế phức tạp. Hiện tại, một số công cụ đã ra đời và đang tiếp tục phát triển khi người dùng cố gắng đạt được quyền riêng tư cao hơn.