Categories
Blockchain

Bitcoin và ẩn danh 4: Hỗn hợp phi tập trung

6.4. Hỗn hợp phi tập trung

Trộn phi tập trung loại bỏ các dịch vụ trộn và thay thế chúng bằng một giao thức ngang hàng mà theo đó một nhóm người dùng có thể trộn các đồng tiền của họ. Như bạn có thể tưởng tượng, cách tiếp cận này phù hợp với Bitcoin về mặt triết lý hơn so với các dịch vụ trộn tập trung được thảo luận trong Phần 6.3.

Phi tập trung cũng có nhiều lợi thế thiết thực hơn. Đầu tiên, nó không có vấn đề khởi động: người dùng không phải đợi các hỗn hợp tập trung có uy tín ra đời. Thứ hai, hành vi trộm cắp là không thể xảy ra trong sự trộn lẫn phi tập trung; giao thức đảm bảo rằng khi bạn đưa bitcoin vào hỗn hợp, bạn sẽ nhận lại bitcoin có giá trị tương đương. Tại vì về điều này, mặc dù một số điều phối trung tâm hóa ra hữu ích trong việc trộn phi tập trung, nhưng ai đó sẽ dễ dàng thiết lập một dịch vụ như vậy hơn, bởi vì họ không phải thuyết phục người dùng về độ tin cậy của họ. Cuối cùng, theo một số cách, trộn phi tập trung có thể cung cấp khả năng ẩn danh tốt hơn.

CoinJoin

Đề xuất chính cho việc trộn phi tập trung là CoinJoin. Trong giao thức này, những người dùng khác nhau cùng tạo một giao dịch Bitcoin duy nhất kết hợp tất cả các đầu vào của họ. Nguyên tắc kỹ thuật quan trọng cho phép CoinJoin hoạt động là: khi một giao dịch có nhiều đầu vào đến từ các địa chỉ khác nhau, các chữ ký tương ứng với mỗi đầu vào sẽ tách biệt và độc lập với nhau. Vì vậy, những địa chỉ khác nhau này có thể được kiểm soát bởi những người khác nhau. Bạn không cần một bên nào đó thu thập tất cả các khóa riêng (Hình 6.9).

Điều này cho phép một nhóm người dùng kết hợp tiền của họ với một giao dịch duy nhất. Mỗi người dùng cung cấp một địa chỉ đầu vào và đầu ra, và những người dùng cùng nhau tạo thành một giao dịch với các địa chỉ này. Thứ tự của các địa chỉ đầu vào và đầu ra là ngẫu nhiên, vì vậy kẻ thù không thuộc nhóm người dùng này sẽ không thể xác định ánh xạ giữa đầu vào và đầu ra. Người tham gia kiểm tra xem địa chỉ đầu ra của họ có được bao gồm trong giao dịch hay không và địa chỉ đó nhận được cùng một lượng bitcoin mà họ nhập vào (trừ đi mọi khoản phí giao dịch). Khi họ đã xác nhận điều này, họ sẽ ký vào giao dịch.

Ai đó đang xem giao dịch này trên chuỗi khối—ngay cả khi họ biết rằng đó là giao dịch CoinJoin—sẽ không thể xác định ánh xạ giữa đầu vào và đầu ra. Từ quan điểm của người ngoài, các đồng tiền đã được trộn lẫn, đó là bản chất của CoinJoin.

Những gì chúng ta đã mô tả cho đến nay chỉ là một vòng trộn. Nhưng các nguyên tắc được thảo luận trong Phần 6.3 vẫn được áp dụng. Người dùng nên lặp lại quá trình này với (có lẽ) các nhóm người dùng khác nhau. Họ cũng phải đảm bảo rằng các kích thước phân đoạn được tiêu chuẩn hóa, để các kênh phụ không được đưa vào.

HÌNH 6.9. Một giao dịch Coinjoin.

HÌNH 6.9. Một giao dịch Coinjoin.

Bây giờ chúng ta hãy đi sâu vào các chi tiết của CoinJoin, có thể được chia thành năm bước:

  1. Tìm đồng nghiệp muốn kết hợp.
  2. Trao đổi địa chỉ đầu vào / đầu ra.
  3. Xây dựng giao dịch.
  4. Gửi giao dịch xung quanh cho từng người tham gia. Mỗi người ngang hàng ký sau khi xác minh đầu ra của họ có mặt.
  5. Truyền phát giao dịch.

Để bắt đầu quá trình này, một nhóm đồng nghiệp muốn kết hợp cần phải tìm ra nhau. Bước này có thể được tạo điều kiện thuận lợi bởi các máy chủ hoạt động như “lỗ tưới nước”, cho phép người dùng kết nối và nhóm lại với nhau. Không giống như hỗn hợp tập trung, các máy chủ này không ở vị trí để lấy cắp tiền của người dùng hoặc xâm phạm tính ẩn danh.

Khi một nhóm ngang hàng đã hình thành, các người ngang hàng phải trao đổi địa chỉ đầu vào và đầu ra của họ với nhau. Điều quan trọng là những người tham gia phải trao đổi các địa chỉ này theo cách mà ngay cả các thành viên khác của nhóm ngang hàng cũng không biết ánh xạ giữa các địa chỉ đầu vào và đầu ra. Nếu không, ngay cả khi những người ngang hàng thực hiện giao dịch CoinJoin với một tập hợp những người ngang hàng được cho là ngẫu nhiên, thì kẻ thù có thể lọt vào nhóm và ghi nhận ánh xạ đầu vào đến đầu ra. Để hoán đổi các địa chỉ theo cách không thể liên kết được yêu cầu một giao thức liên lạc ẩn danh. Mạng Tor có thể được sử dụng, mà chúng ta đã thảo luận trước đó, hoặc một giao thức định tuyến ẩn danh có mục đích đặc biệt được gọi là “mạng hỗn hợp giải mã” (decryption mix-net).

Khi các đầu vào và đầu ra đã được giao tiếp, một trong những người dùng này – không quan trọng ai – sau đó sẽ xây dựng giao dịch tương ứng với các đầu vào và đầu ra này. Giao dịch chưa được ký sau đó sẽ được chuyển xung quanh; mỗi người ngang hàng sẽ xác minh rằng các địa chỉ đầu vào và đầu ra của nó được bao gồm một cách chính xác và sau đó ký tên.

Nếu tất cả các đồng nghiệp tuân theo giao thức, hệ thống này hoạt động tốt. Bất kỳ người ngang hàng nào cũng có thể tập hợp giao dịch và bất kỳ người ngang hàng nào cũng có thể truyền phát giao dịch lên mạng. Hai trong số họ thậm chí có thể phát sóng nó một cách độc lập; tất nhiên, nó sẽ chỉ được xuất bản một lần cho chuỗi khối. Nhưng nếu một hoặc nhiều đồng nghiệp muốn gây rối, họ sẽ dễ dàng khởi động một cuộc tấn công từ chối dịch vụ, ngăn không cho giao thức hoàn thành.

Đặc biệt, một người ngang hàng có thể tham gia vào giai đoạn đầu tiên của giao thức, cung cấp địa chỉ đầu vào và đầu ra của nó, nhưng sau đó từ chối đăng nhập trong giai đoạn thứ hai. Ngoài ra, sau khi ký giao dịch, một người ngang hàng gây rối có thể cố gắng lấy thông tin đầu vào mà anh ta đã cung cấp cho các đồng nghiệp và thay vào đó chi tiêu nó trong một số giao dịch khác. Nếu giao dịch thay thế chiến thắng trong cuộc đua trên mạng, nó sẽ được xác nhận trước tiên và giao dịch CoinJoin sẽ bị từ chối vì chi tiêu gấp đôi.

Một số đề xuất đã được đưa ra để ngăn chặn việc từ chối dịch vụ trong CoinJoin. Một là áp đặt chi phí để tham gia vào giao thức, hoặc thông qua bằng chứng công việc (tương tự như khai thác), hoặc bằng chứng đốt, một kỹ thuật để có thể phá hủy một lượng nhỏ bitcoin mà bạn sở hữu, mà chúng ta đã nghiên cứu trong Chương 3. Ngoài ra, có những cách mật mã để xác định những người tham gia không tuân thủ và loại họ ra khỏi nhóm. Để biết chi tiết, hãy xem phần Đọc thêm ở cuối chương này.

Dòng cấp cao

Chúng ta đã đề cập đến các kênh phụ trong Phần 6.1. Bây giờ chúng ta xem xét kỹ hơn mức độ phức tạp của các kênh phụ. Giả sử Alice nhận được một lượng bitcoin cụ thể, chẳng hạn 43.12312 BTC, tại một địa chỉ cụ thể hàng tuần, có lẽ là tiền lương của cô ấy. Giả sử xa hơn rằng cô ấy có thói quen tự động và ngay lập tức chuyển 5% số tiền đó vào tài khoản hưu trí của mình, đó là một địa chỉ Bitcoin khác. Chúng ta gọi mô hình chuyển giao này là dòng chảy cấp cao. Không có chiến lược kết hợp nào có thể che giấu thực tế một cách hiệu quả rằng có mối quan hệ giữa hai địa chỉ trong trường hợp này. Hãy nghĩ về các mô hình sẽ hiển thị trên chuỗi khối: số lượng và thời gian cụ thể đặc biệt khó có thể xảy ra một cách tình cờ.

Một kỹ thuật có thể giúp lấy lại tính không liên kết khi có các luồng cấp cao được gọi là tránh hợp nhất, do nhà phát triển Bitcoin Mike Hearn đề xuất. Nói chung, để thực hiện thanh toán, người dùng tạo một giao dịch duy nhất kết hợp nhiều đồng xu cần thiết để thanh toán toàn bộ số tiền cho một địa chỉ duy nhất. Điều gì sẽ xảy ra nếu người dùng có thể tránh được nhu cầu hợp nhất và do đó liên kết tất cả các đầu vào của cô ấy? Giao thức tránh hợp nhất cho phép điều này bằng cách cho phép người nhận thanh toán cung cấp nhiều địa chỉ đầu ra—nhiều khi cần thiết. Người gửi và người nhận đồng ý về một nhóm mệnh giá để chia nhỏ khoản thanh toán và thực hiện bằng nhiều giao dịch, như thể hiện trong Hình 6.10.

Giả sử cuối cùng cửa hàng kết hợp hai khoản thanh toán này với nhiều đầu vào khác từ các khoản thanh toán khác mà nó đã nhận được, thì sẽ không còn rõ ràng là hai địa chỉ này được liên kết với nhau. Cửa hàng nên tránh kết hợp hai đồng tiền này lại ngay khi nhận được, nếu không, rõ ràng là chúng đến từ cùng một thực thể. Ngoài ra, Alice có thể muốn tránh gửi hai khoản thanh toán cùng một lúc, điều này có thể làm lộ thông tin này một cách tương tự.

HÌNH 6.10. Tránh hợp nhất.

HÌNH 6.10. Tránh hợp nhất. Alice muốn mua một ấm trà với giá 8 BTC. Cửa hàng cung cấp cho cô ấy hai địa chỉ và cô ấy trả 5 BTC cho một và 3 BTC cho địa chỉ kia, khớp với số tiền có sẵn của cô ấy. Phương pháp này tránh tiết lộ rằng cả hai địa chỉ này đều thuộc cùng một thực thể.

Nói chung, tránh hợp nhất có thể giúp giảm thiểu vấn đề của các luồng cấp cao: kẻ thù có thể không phân biệt được một luồng nếu nó bị chia thành nhiều luồng nhỏ hơn không liên kết với nhau. Trong ví dụ về việc Alice tài trợ cho tài khoản hưu trí của mình, cô ấy sẽ cần sử dụng biện pháp tránh hợp nhất cả khi nhận lương cũng như khi chuyển một phần của nó vào quỹ hưu trí của mình. Việc tránh hợp nhất cũng đánh bại các kỹ thuật phân cụm địa chỉ dựa vào việc sử dụng chung các đồng tiền trong một giao dịch.

Leave a Reply

Your email address will not be published. Required fields are marked *