Payjoin là một giao thức giải quyết nhiều vấn đề với một viên đá bằng cách sử dụng một thủ thuật đơn giản, thông minh để xây dựng các giao dịch Bitcoin. Nó được thiết kế để giải quyết mối quan tâm riêng tư lớn nhất của Bitcoin, nhưng nó cũng có thể giúp giải quyết các vấn đề mở rộng quy mô và do đó giúp mọi người tiết kiệm phí. Nó đặc biệt tương thích với các nút Lightning Network vì thiết kế hiện tại của nó có yêu cầu về độ sống đối với người nhận giao dịch, có nghĩa là người nhận phải trực tuyến (giống như nút Lightning) khi nhận thanh toán. Trong tương lai, thậm chí yêu cầu này sẽ được loại bỏ để có thể sử dụng ngoại tuyến. Thật dễ dàng để tích hợp vào phần mềm ví và nó có thể mở nhiều kênh sét cùng một lúc trong khi thực hiện thanh toán và nó thụ động, vì vậy bạn có thể tận hưởng những lợi ích mà không hề biết. Các lợi ích riêng tư của Payjoin được phân lớp, vì vậy ngay cả khi chỉ có một tỷ lệ nhỏ người sử dụng nó, mọi người đều có thể nhận được lợi ích riêng tư. Và, có lẽ tốt nhất của tất cả, PayJoin không yêu cầu một hard fork hoặc một soft fork. Nó có thể, và đã được sử dụng với Bitcoin, và trên thực tế đã có sẵn kể từ phiên bản đầu tiên của phần mềm Bitcoin.
Payjoin là một dẫn xuất của Coinjoin. Coinjoin cũ hơn và cũng đòi hỏi nhiều tương tác trực tuyến hơn, có nghĩa là người dùng phải tham gia nhiều để sử dụng nó, điều này chắc chắn sẽ làm giảm khả năng sử dụng và không khuyến khích việc áp dụng. Tuy nhiên, mặc dù vậy, việc áp dụng CoinJoin cho đến nay đã cao hơn nhiều so với PayJoin, mặc dù lợi ích và tính dễ sử dụng của PayJoin rõ ràng hơn. Đối với các nhà phát triển, hướng phức tạp, không rõ ràng ngăn cản nó được phần mềm ví chấp nhận.
Payjoin đã tồn tại trong nhiều năm và, có tính đến:
Nó có * nhiều * lợi ích được đề cập ở trên
Khả năng cung cấp giao diện người dùng thụ động, không xâm phạm
Các nhà cung cấp ví dễ dàng tích hợp nó như thế nào
Tại sao payjoin chậm được áp dụng trên quy mô lớn?
Đặc biệt, tại sao giao thức Coinjoin, đòi hỏi nhiều tương tác hơn, khó sử dụng hơn và đắt hơn, nhưng thay vào đó lại được áp dụng nhiều hơn?
Trong bài viết này, chúng ta sẽ xem xét các cuộc tấn công hiện tại vào quyền riêng tư của Bitcoin, lịch sử của PayJoin từ góc độ riêng tư, cách PayJoin hoạt động và tại sao nó có thể cung cấp rất nhiều lợi ích mà không cần thay đổi Bitcoin và cuối cùng là việc áp dụng hiện tại. Nếu payjoin có thể cải thiện đáng kể quyền riêng tư, khả năng mở rộng và giúp tiết kiệm phí, thì nỗ lực nhỏ của ví để tích hợp nó sẽ rất đáng giá.
Tại sao quyền riêng tư lại quan trọng đối với Bitcoin
Trước khi thảo luận về tầm quan trọng của payjoin, chúng ta phải hiểu tầm quan trọng của quyền riêng tư. Nếu bạn không cần tôi thuyết phục bạn nữa, thì bạn có thể bỏ qua phần tiếp theo để tìm hiểu về lịch sử và cách hoạt động của Pyajoin.
Ở các nền dân chủ phương Tây, tầm quan trọng tuyệt đối của quyền riêng tư là không thể diễn tả được, vì lợi ích của nó dường như vẫn vô hình đối với mọi người. Thật khó để giải thích một cách thuyết phục tại sao quyền riêng tư lại quan trọng (đặc biệt là khi đối mặt với chi phí cao hơn hoặc sự bất tiện lớn hơn), nếu họ không bao giờ cảm thấy hậu quả xấu của những người xấu có quá nhiều thông tin về họ hoặc vì nó đòi hỏi mọi người phải suy nghĩ về hậu quả lâu dài của những sự xâm nhập này.
Tất nhiên, quyền riêng tư dường như là điều mà ngày càng nhiều người quan tâm (về lý thuyết), nhưng họ thường hiếm khi tiếp cận nó một cách tích cực, với các rào cản kích hoạt rất thấp và không ảnh hưởng đến sự tiện lợi. Do đó, các công nghệ muốn bảo vệ quyền riêng tư của mọi người phải được thiết kế thân thiện với người dùng nhất có thể và thuận tiện nhất có thể.
Tính đồng nhất
Quyền riêng tư không phải là vấn đề duy nhất mà payjoin có thể giúp giải quyết, nhưng nó được tạo ra để giải quyết nó. Mọi người từ lâu đã than thở về sự thiếu riêng tư vốn có của Bitcoin và cộng đồng Bitcoin đã rất coi trọng vấn đề này. Bitcoin được thiết kế để tạo điều kiện thuận lợi cho các giao dịch một-một trực tiếp và có khả năng chống kiểm duyệt. Tuy nhiên, vì nó cho phép truy tìm các khoản thanh toán trong tương lai, nó có thể dẫn đến phân biệt đối xử khi một số tiền nhất định được liên kết với danh tính. Điều này phá hủy tính đồng nhất - mức độ mà một số đồng tiền của cùng một loại tiền tệ không thể phân biệt được với các đồng tiền khác trong cùng một số lượng - và tính đồng nhất là thuộc tính chính của tiền tốt.
Nếu người mua có thể bị theo dõi, không chỉ các đồng tiền hiện đang được nắm giữ bởi những người bất hợp pháp sẽ bị từ chối, mà ví * đã * được sử dụng cho mục đích bất hợp pháp cũng có thể bị gắn cờ và sau đó bị từ chối bởi các thương gia, bất kể chủ sở hữu hiện tại có mua chúng thông qua các phương tiện hoàn toàn hợp pháp hay không. Hãy tưởng tượng rằng bạn không thể sử dụng số tiền bạn có để mua sữa vì nó đã được ai đó sử dụng để mua ma túy, và họ nói, "Tiền của bạn không sạch", điều đó có công bằng với bạn không? Bạn có nên bị trừng phạt vì tội lỗi của người khác không? Bạn sẽ làm gì với những đồng tiền? Bạn sẽ cảm thấy rằng tiền là vô giá trị bởi vì giữ nó sẽ chỉ làm tổn thương sức mua của bạn. Và thật vô nghĩa khi một phần của đồng tiền ("tiền sạch") sẽ có giá trị hơn phần khác. Một đô la phải bằng một đô la khác, bất kể nó là gì, nếu không khả năng chuyển giá trị của một đồng tiền như vậy sẽ bị suy giảm.
Nhầm lẫn hình sự
Thường có những lời chê bai về Bitcoin và quyền riêng tư nói rằng chỉ có tội phạm mới cần quyền riêng tư. Nó tương tự như "nếu bạn không làm điều gì xấu, hãy nhận lấy nó và bạn không có gì để che giấu". Điều này rất dễ bác bỏ:
Rất ít người sẵn sàng phát trực tiếp việc tắm rửa và sử dụng nhà vệ sinh trực tuyến. Đây có phải là vì đó là một tội ác? Nó chỉ cho thấy rằng * mọi người * muốn che giấu điều gì đó, và việc che giấu không nhất thiết là sai.
Nói rộng hơn, trách nhiệm của Chính phủ là đưa ra một định nghĩa pháp lý về những gì cấu thành tội phạm, nhưng định nghĩa này luôn có thể thay đổi. Nếu mọi người không được tự do có quyền riêng tư, thì họ sẽ không được tự do sở hữu bất cứ thứ gì, bởi vì hành động của họ sẽ bị hạn chế nghiêm trọng bởi môi trường xã hội xung quanh (và thậm chí chính phủ sẽ trực tiếp tham gia). Ngay cả khi nó đang làm điều gì đó hoàn toàn hợp pháp, mọi người vẫn bị chỉ trỏ và liên tục bị tấn công. Quyền riêng tư là quyền tiết lộ bản thân một cách có chọn lọc.
Ngoài tuyên bố thái quá đơn giản, hiển nhiên này, trên thực tế, những kẻ phạm tội, không giống như đại đa số công dân tuân thủ pháp luật, sẵn sàng chấp nhận một cái giá cao cho quyền riêng tư, do đó các biện pháp thỏa hiệp quyền riêng tư cơ bản có hại cho người bình thường hơn nhiều so với thủ phạm. Ngay cả khi chính phủ không làm một công việc tồi tệ trong việc sử dụng các biện pháp hạn chế quyền riêng tư để bắt tội phạm, mà thay vào đó "chọn và chọn" và theo dõi công dân có chọn lọc, kết quả sẽ giống nhau. Nếu một công dân nói điều gì đó mà những người cầm quyền không thích (và những điều mà những người cầm quyền không thích có thể giống nhau mỗi ngày), thì TA sẽ bị bắt giữ và làm hại có chọn lọc.
Cuối cùng, mong muốn về sự riêng tư không chỉ đơn giản là nỗi sợ chính phủ vượt quá thẩm quyền của mình. Nó cũng có những mối quan tâm thực tế, an ninh và danh dự. Nếu ai đó có thể tìm ra bạn có bao nhiêu tiền, bạn sống ở đâu, việc ăn cắp đồ của bạn khó đến mức nào? Hãy suy nghĩ về số lượng địa điểm trên internet bạn phải nhập địa chỉ, chi tiết thanh toán, ảnh, v.v. Bạn có tin tưởng tất cả mọi người chạy các trang web này để giữ an toàn cho thông tin cá nhân của bạn không? Bạn không nên tin tưởng họ, bởi vì ngay cả những hệ thống tốt nhất cũng có thể bị sập và bọn tội phạm sẽ sẵn sàng trả một khoản tiền lớn cho tin tặc để làm nổ tung hệ thống và đánh cắp thông tin có giá trị này.
Quyền riêng tư &; Dân chủ
Trong bất kỳ nhà nước toàn trị nào, điều kiện tiên quyết để kiểm soát công dân là * biết * bài phát biểu, kênh thông tin và hoạt động tài chính của công dân. Không có sự hiểu biết này, không có cách nào để biết những gì để tấn công hoặc những gì để ngăn chặn, bởi vì không có cách nào để thao túng câu chuyện và tăng cường hơn nữa sự kiểm soát. Nếu chính phủ không có quyền truy cập đáng tin cậy vào thông tin này, nó không thể nhắm mục tiêu vào một công dân nhiều như nó muốn. Trong các xã hội toàn trị trong quá khứ, chẳng hạn như Liên Xô và Đức Quốc xã, họ đã làm hỏng quyền riêng tư của mọi người và các mối quan hệ không tin tưởng trong gia đình của họ bằng cách tẩy não họ để báo cáo sự phản đối của các thành viên gia đình họ trong các cuộc trò chuyện riêng tư. Khi các biện pháp làm hỏng quyền riêng tư tương tự xảy ra với tiền bạc, nó thậm chí còn đáng sợ hơn lời nói. Cắt giảm tài trợ là một phương tiện rất hiệu quả để chống lại bất đồng chính kiến.
Quyền riêng tư của Bitcoin dễ bị tấn công
"Đừng lãng phí một cuộc khủng hoảng vừa phải. "
Machiavelli
Nhân danh cuộc chiến chống tội phạm (cuộc tấn công khủng bố Hamas), các biện pháp quản lý mới đang được suy đoán để mô tả các phương pháp bảo vệ quyền riêng tư trong Bitcoin là bất hợp pháp.
Vào ngày 10 tháng 10 năm 2023, Wall Street Journal đã xuất bản một bài báo báo cáo rằng Hamas đã nhận được 130 triệu USD tài trợ thông qua tiền điện tử. Một tuần sau, Thượng nghị sĩ Elizabeth Warren đã viết một bức thư ngỏ cho Tổng thống Biden kêu gọi ông giải quyết vấn đề ngành hành pháp của ông phản ứng như thế nào với "việc sử dụng tiền điện tử khủng bố" vào ngày 31 tháng 10, trích dẫn Wall Street Journal là bằng chứng về nhu cầu cấp thiết đối với quy định như vậy. Bức thư đã nhận được chữ ký từ 29 trong số 100 thành viên của Thượng viện, cũng như 76 thành viên của Hạ viện. Thật kỳ lạ, vào ngày 19 tháng 10, hai ngày sau khi bức thư được gửi, Mạng lưới thực thi tội phạm tài chính (FCE) đã công bố một đề xuất điều chỉnh việc xáo trộn tiền điện tử đối với rủi ro rửa tiền. Đề xuất liệt kê các phương pháp được sử dụng để làm xáo trộn luồng giao dịch:
"Việc sử dụng mã lập trình hoặc thuật toán để điều phối, quản lý hoặc thao tác cấu trúc của một giao dịch: Cách tiếp cận này liên quan đến việc sử dụng phần mềm để điều phối các giao dịch của hai hoặc nhiều người, để các giao dịch này được kết hợp để tạo ra nhiều đầu ra có thể từ một đầu vào phối hợp duy nhất, do đó làm xáo trộn tính duy nhất của mỗi giao dịch và giảm xác suất xác định người tham gia vào mỗi giao dịch."
Định nghĩa này bao gồm cả coinjoin và payjoin, mặc dù mô tả "sử dụng mã thuật toán" đủ rộng để bao gồm các giao dịch tùy ý, và do đó cho phép kiểm duyệt tùy ý.
Nhưng bài báo của Wall Street Journal, cung cấp một quan điểm về bức thư ngỏ và cố gắng bảo vệ quy định như vậy, đã hiểu sai dữ liệu rất tệ - số tiền thực sự có liên quan đến Hamas chỉ là 450.000 đô la. Tiền điện tử chưa bao giờ là nguồn tài trợ chính của Hamas. Bản thân Hamas đã nói rõ rằng họ không muốn nhận tiền thông qua bitcoin, điều này có thể theo dõi được.
Trớ trêu thay, các biện pháp quản lý hiện đang được đề xuất, được cho là để đối phó với các nhóm khủng bố, có tác động ít nhất đến các nhóm khủng bố và nhiều nhất đối với những người bình thường muốn sử dụng Bitcoin và các loại tiền điện tử khác.
Không còn nghi ngờ gì nữa, cuộc chiến giành quyền riêng tư của Bitcoin đã được tiến hành tại Hoa Kỳ và có thể thấy trước rằng nó sẽ dưới vỏ bọc chống lại các căn cứ an ninh quốc gia nước ngoài. Quan trọng hơn, từ bây giờ, hãy hiểu các công nghệ bảo vệ quyền riêng tư trên Bitcoin và bắt đầu sử dụng chúng để chống lại các nỗ lực làm suy yếu chúng.
"Bất cứ điều gì chúng ta muốn, chúng ta phải bảo vệ quyền riêng tư của mình."
1. Hình thức giao dịch Bitcoin
Để hiểu payjoin làm gì và nó hoạt động như thế nào, cần phải hiểu các giao dịch Bitcoin trông như thế nào. Mỗi bitcoin được liên kết với một số đầu vào và đầu ra. Đầu ra xác định khóa công khai, hoặc "địa chỉ", những bitcoin này được gửi đến. Đầu vào xác định "nguồn" tiền của giao dịch, tức là đầu ra trước đó được sử dụng để tạo giao dịch (và đầu ra mới của nó). Một sự tương tự tốt là chúng ta sử dụng các mệnh giá tiền mặt khác nhau để thanh toán. Giả sử bạn muốn trả 25 đô la cho bữa tối tại nhà hàng và 5 đô la cho người phục vụ, tổng cộng là 30 đô la (đó là đầu ra của giao dịch của bạn, hai "phần" tiền khác nhau cho hai người khác nhau - nhà hàng và người phục vụ).
Vậy làm thế nào để bạn trả tiền? Giả sử bạn có quá nhiều ghi chú trong tay (tức là đầu vào của bạn):
1 tờ 20 nhân dân tệ
2 tờ $10
5 tờ 5 nhân dân tệ
Vì vậy, khi xây dựng thỏa thuận này, bạn có thể sử dụng 1 tờ 20 đô la và 2 tờ 5 đô la, một trong số đó là 5 đô la và một tờ được trao cho người phục vụ một mình:
! [Thanh toán tại nhà hàng] (https://img.jinse.cn/7133642_watermarknone.png)
Lưu ý một khía cạnh quan trọng và một khía cạnh không phù hợp để chúng ta rút ra sự tương tự tiền mặt: $ 20 và $ 5 ở đây sẽ * hợp nhất * thành một mảnh. Nó giống như bạn đang nấu chảy hai miếng vàng thành một miếng lớn hơn để bạn có thể trả cho số tiền cần thiết thay vì cho nhiều vàng cốm. Bitcoin cho phép bạn tách và hợp nhất các đầu vào để tạo ra đầu ra mà chúng ta muốn.
Bạn cũng có thể sử dụng 2 tờ 10 đô la và 2 5 đô la, như thế này:
! [Thanh toán tại nhà hàng] (https://img.jinse.cn/7133643_watermarknone.png)
Hoặc thậm chí sử dụng 6 tờ với giá 5 đô la:
! [Thanh toán tại nhà hàng] (https://img.jinse.cn/7133644_watermarknone.png)
Cho đến khi chúng ta tiêu tiền của mình, những "ghi chú" Bitcoin riêng lẻ này được gọi là "Đầu ra giao dịch chưa sử dụng (UTXOs)". Cái tên nghe có vẻ lạ, nhưng nếu bạn dành thời gian để suy nghĩ về nó, bạn sẽ nhận ra rằng nó khá chính xác - chúng là "kết quả" (đầu ra) của một số giao dịch và chúng chưa được chi tiêu bởi * một giao dịch * khác. Đầu ra giao dịch chưa được chi tiêu là đầu ra mà bạn có thể chi tiêu. Vì vậy, trên thực tế, UTXOs giống như tiền giấy trong ví của bạn. Sau khi chúng đã được chi tiêu, chúng trở thành đầu vào của một giao dịch và sau đó là đầu ra của một giao dịch khác (tiền mặt trong ví của người khác) và bạn không thể chi tiêu nó nữa, tuy nhiên, * hồ sơ * của ghi chú bạn đã chi tiêu vẫn ở trên blockchain mãi mãi.
Không giống như tiền mặt, các giao dịch Bitcoin yêu cầu sự cho phép của người gửi để hợp lệ. Điều này đạt được thông qua chữ ký số của người gửi, đây cũng là bằng chứng cho thấy họ có ý định chi tiêu tiền. Chữ ký hợp lệ (tức là chữ ký khớp với địa chỉ của UTXO) cần được thể hiện trong đầu vào giao dịch sử dụng UTXO. Sự hiện diện của chữ ký "mở khóa" UTXO này và chỉ ra rằng chủ sở hữu của UTXO đó dự định chi tiêu nó cho một giao dịch như vậy.
Hình ảnh sau đây cho thấy một giao dịch thực đã được blockchain xác nhận 1 lần tại thời điểm viết bài:
! [Ví dụ về một giao dịch thực với 1 đầu vào và ba đầu ra, một là phí] (https://img.jinse.cn/7133645_watermarknone.png)
Như bạn có thể thấy, giao dịch trên lấy 1 đầu vào và tạo ra 2 đầu ra, một đầu ra đại diện cho khoản thanh toán thực và đầu ra còn lại gần như chắc chắn được gửi lại cho người chi tiêu dưới dạng thay đổi. Sự khác biệt giữa đầu vào và đầu ra là phí, được chuyển đến người khai thác đã khai thác khối đầu tiên xác nhận giao dịch.
"Chế độ UTXO" này rất mạnh mẽ. Bởi vì mọi giao dịch đều có đầu vào và đầu ra, và bởi vì đầu ra của một giao dịch trở thành đầu vào của một giao dịch tiếp theo khác, chúng tôi kết thúc với một chuỗi giao dịch có thể theo dõi việc chuyển quyền sở hữu Bitcoin. Bởi vì nguồn cung Bitcoin là hữu hạn và vì thực tế là nó có đặc tính "không lạm phát" quan trọng, điều quan trọng là có thể kiểm tra số lượng Bitcoin đang lưu hành (hoặc "chưa chi tiêu") bất cứ lúc nào và mô hình UTXO có thể được sử dụng trong oc.
Đây cũng là nguồn gốc của những lo ngại về quyền riêng tư của Bitcoin. Mỗi giao dịch đều có lịch sử riêng. Tất cả các bitcoin được trao cho bạn, và nơi bạn gửi nó, là * dễ dàng * để theo dõi. Toàn bộ hệ thống được thiết kế rõ ràng để hỗ trợ tính năng này, mặc dù nó không có ý định theo dõi các cá nhân. Trong hệ thống này, con bài mặc cả thực sự duy nhất của bạn là không bao giờ liên kết danh tính thực của bạn với khóa công khai của bạn, điều này rất khó thực hiện trong thời đại giám sát hàng loạt.
Nguồn gốc lịch sử của Payjoin
Sai lầm nhỏ của Satoshi Nakamoto
Khi Satoshi Nakamoto xuất bản whitepaper Bitcoin vào năm 2008, ông nhận ra rằng những lo ngại về quyền riêng tư đến từ yêu cầu mọi giao dịch phải được công khai, điều này mâu thuẫn với yêu cầu giữ bí mật.
Ông đã đưa ra hai đề xuất để tránh liên kết danh tính thực với các giao dịch:
Giữ khóa công khai ẩn danh
Không sử dụng lại khóa công khai
Đây là tất cả những lời khuyên tốt, nhưng đối với 1) rất khó để đảm bảo rằng danh tính thực sự của chúng tôi hoàn toàn bị cô lập với các khoản thanh toán của chúng tôi, trừ khi chúng tôi cực kỳ thận trọng khi thanh toán trực tuyến; Đối với 2), ngay cả khi khóa công khai không được sử dụng lại, trình theo dõi không khó để xác định khóa công khai nào thuộc về người nào, miễn là đầu ra được tạo từ nhiều khóa được sử dụng cùng nhau trong các lần thanh toán tiếp theo. Những đề xuất này, ngay cả khi được kết hợp với nhau, rất khó thực hiện và giải pháp không hoàn hảo.
Sau những gợi ý này, Satoshi Nakamoto đã phạm một sai lầm nhỏ khác bằng cách phóng đại điểm yếu của hệ thống của mình:
"Là một tường lửa bổ sung, một cặp khóa mới nên được sử dụng cho mỗi giao dịch để đảm bảo rằng chúng không trỏ đến chủ sở hữu chung. Một số liên kết vẫn không thể tránh khỏi, và các giao dịch đa đầu vào chắc chắn sẽ chỉ ra rằng tất cả các đầu vào đều từ cùng một chủ sở hữu. Rủi ro là nếu chủ sở hữu khóa công khai bị lộ, hiệp hội có thể tiết lộ các giao dịch khác thuộc cùng một chủ sở hữu. "
Giả thuyết của Satoshi, và tất cả các ví dụ chúng tôi đã chỉ ra cho đến nay, ngụ ý rằng tất cả các đầu vào cho một giao dịch thuộc về cùng một chủ sở hữu. Nói cách khác, tất cả các "tiền giấy" chi cho một giao dịch đến từ ví của bạn, đó là một giả định hợp lý, nhưng không nhất thiết phải đúng. Giả thuyết này được gọi là "nhập danh tính của manh mối sở hữu". Hầu như đúng với bất kỳ giao dịch nào, đây cũng là cơ sở của giám sát hoạt động trên chuỗi.
Nối đồng xu
Vào đầu năm 2013, Gregory Maxwell đã chơi một trò chơi thú vị trên các diễn đàn bitcointalk.org, nơi anh ấy cung cấp một UTXO của riêng mình (trị giá 1 BTC) và địa chỉ của anh ấy, và hỏi liệu có ai có thể tạo một giao dịch mới bằng cách sử dụng UTXO này làm đầu vào hay không. Nếu người tạo giao dịch như vậy gửi cho anh ta ít hơn 1 BTC, anh ta sẽ mất một số tiền và nếu nó gửi cho anh ta nhiều hơn 1 BTC, nó sẽ mang lại cho anh ta thêm một số tiền, nhưng nếu số tiền được gửi cho anh ta không nhiều hơn và ít hơn 1 BTC, thì nó tương đương với việc sử dụng tiền (và địa chỉ) của anh ta để tăng thêm quyền riêng tư, bởi vì đầu vào * trông * như thể đó là UTXO của chính người tạo giao dịch, nhưng thực tế không phải vậy. Khi một trong những kết quả đầu ra của Maxwell được chi tiêu và gửi lại địa chỉ của mình, anh ta cung cấp một UTXO khác để những người khác có thể tiếp tục trò chơi. Từ quan điểm của một công ty phân tích hoạt động blockchain, điều này sẽ khiến họ nghĩ rằng Maxwell trông giàu có! Bởi vì địa chỉ của anh ta là công khai và nhiều UTXO được sử dụng để xây dựng các giao dịch có chứa các địa chỉ đó, bất kỳ nhà phân tích nào phân tích các giao dịch này và giả định rằng tất cả các đầu vào cho các giao dịch đến từ cùng một người sẽ cho rằng Maxwell có nhiều, rất nhiều bitcoin (nhiều hơn anh ta thực sự sở hữu), do đó tiêu đề của bài đăng của anh ta: "Tôi thực sự giàu!"
Tất nhiên, trò chơi không phải là riêng tư, vì Maxwell đã đăng địa chỉ của mình trên một diễn đàn công cộng, nhưng nó cung cấp một khái niệm rất quan trọng ra đời. Như Maxwell nói:
"Nhiều người mắc sai lầm khi cho rằng nếu một giao dịch có giá nhiều địa chỉ, điều đó có nghĩa là tất cả chúng đều đến từ cùng một người. Điều này đúng nói chung, nhưng nó không nhất thiết đúng: mọi người có thể hợp tác với nhau để xây dựng một giao dịch cùng nhau, và có một cách tiếp cận an toàn và không tin cậy. "
Trong một bài đăng tiếp theo cùng năm đó, Mavwell chính thức chắt lọc ý tưởng thành một khái niệm mà ông gọi là "Coinjoin":
"Khi nghĩ về lịch sử sở hữu Bitcoin, bạn có thể nghĩ về một giao dịch có giá nhiều khóa công khai theo kịch bản khác nhau như quyền sở hữu tổng hợp các khoản tiền đó, và do đó giả định: làm thế nào chúng có thể được chi tiêu cùng nhau trừ khi cùng một người kiểm soát chúng?
[......]
Giả định này là không chính xác. Trong cùng một giao dịch, nó không chứng minh rằng quyền sở hữu của các quỹ này là như nhau (mặc dù hiện trạng về cơ bản là đúng) và đây là lý do tại sao Coinjoin có thể đạt được:
chữ ký là một cho mỗi đầu vào và hoàn toàn độc lập với nhau, ngay cả trong cùng một giao dịch. Điều này có nghĩa là người dùng Bitcoin có thể đồng ý với nhau để chi tiêu một bộ đầu vào và tạo ra một bộ đầu ra, sau đó mỗi người ký giao dịch riêng biệt và sau đó hợp nhất chữ ký của họ. Trừ khi mọi người cung cấp chữ ký của họ, giao dịch sẽ không hợp lệ, sẽ không được mạng chấp nhận và không ai sẽ ký một giao dịch mà họ không hài lòng. "
Điều này có nghĩa là, trên thực tế, bất kỳ số lượng người nào cũng có thể cộng tác để tạo giao dịch, mỗi người cung cấp và ký đầu vào của riêng họ mà không phải lo lắng về việc người khác bị đánh cắp tiền.
Sau đó, ông giới thiệu một lợi ích khác của các giao dịch coinjoin, đó là các giao dịch có thể được xử lý theo lô, do đó tiết kiệm phí: bạn có thể tìm thấy những người khác cũng muốn bắt đầu thanh toán khi bạn muốn thanh toán và tạo giao dịch cùng nhau:
"Ý tưởng tương tự có thể được sử dụng một cách tình cờ hơn. Khi bạn muốn bắt đầu thanh toán, hãy tìm những người khác cũng muốn thanh toán và cùng nhau tạo một khoản thanh toán chung. Điều này không chỉ làm tăng quyền riêng tư mà còn làm cho các giao dịch của bạn nhỏ hơn và do đó dễ dàng lan truyền trên mạng (và với mức phí thấp hơn) và quyền riêng tư bổ sung là một đặc quyền. "
Cuối cùng, conjoin là một giao thức mà đủ người sử dụng nó, mọi người đều thắng và mọi người đều nhận được lợi ích riêng tư từ nó:
"Một giao dịch như vậy bề ngoài không thể phân biệt được với một giao dịch được tạo ra bằng phương pháp thông thường. Kết quả là, miễn là các giao dịch này đủ phổ biến, chúng sẽ làm tăng quyền riêng tư của ngay cả những người không sử dụng công nghệ, bởi vì đầu vào và trộn không còn có thể được sử dụng làm bằng chứng mạnh mẽ về cùng một kiểm soát. "
Để cung cấp một ví dụ cụ thể, giả sử chúng tôi tìm thấy 3 người muốn tham gia vào một coinjoin. Họ đã đồng ý trước để trộn 0,1 bitcoin và họ có thể nhận được lợi ích riêng tư của việc tạo ra 3 đầu ra bằng nhau, khiến người khác không thể biết mỗi địa chỉ trong số ba địa chỉ đến từ ai. Đối với nhà phân tích, mối quan hệ giữa địa chỉ thay đổi và đầu vào vẫn còn rất rõ ràng, nhưng không rõ đầu ra của ai là đầu ra của ba lượng bằng nhau này.
Khi chỉ có 3 người tham gia, lợi ích riêng tư không nhất thiết phải đáng kể, đặc biệt là vì những người tham gia khác có thể tự hủy ẩn danh (tương quan với danh tính thực của họ) trong các giao dịch tiếp theo, nhưng điều này có thể được cải thiện bằng nhiều vòng coinjoin hoặc bằng cách sử dụng bộ ẩn danh lớn hơn.
Tóm lại, *coinjoin là một giao dịch được tạo ra bằng cách sử dụng đầu vào và đầu ra từ nhiều bên, do đó người khác khó xác định đầu ra nào thuộc về ai *.
Để có cái nhìn sâu hơn về cách tạo giao dịch Coinjoin và những công cụ nào có sẵn, hãy xem hướng dẫn này.
Coinjoin là một trong những giải pháp bảo mật Bitcoin hiệu quả và được áp dụng rộng rãi nhất, nhưng nó cũng có một số nhược điểm đáng kể:
Tính tương tác: Coinjoin đòi hỏi sự tương tác nặng nề từ những người tham gia, những người cần đồng ý với mệnh giá đầu ra bằng nhau và tất cả họ phải cung cấp chữ ký của họ trong một khoảng thời gian nhất định. Nhu cầu tương tác nặng tạo ra ma sát cho người dùng, từ đó cản trở việc áp dụng nó bởi nhiều người dùng hơn.
Điều phối viên tập trung: Wasabi và Whirlpool hiện là những phương pháp phổ biến nhất của Coinjoin. Họ cũng tính phí cho công việc phối hợp mà họ thực hiện, không bao gồm phí xác nhận khối được trao cho các thợ đào tham gia giao dịch (khá cao do lượng lớn dữ liệu chữ ký được sử dụng trong các giao dịch coinjoin). Join Market là một ví dụ về một dịch vụ không phối hợp, nhưng sự đánh đổi là nó đòi hỏi nhiều tương tác người dùng hơn.
Yêu cầu nhiều mục nhập để củng cố quyền riêng tư: Để bảo mật tốt hơn, khuyến nghị thông thường là tham gia vào nhiều coinjoin (vì một lần tham gia có thể mang lại ít vì bộ ẩn danh quá nhỏ). Nhưng nhiều lần tương tác cần có thời gian, tăng tương tác và trả nhiều phí hơn.
Coinjoin trông không giống hệt như một giao dịch bình thường: Các giao dịch Coinjoin có một tính năng nhất định, dễ nhận biết: nhiều đầu vào từ nhiều bên tạo ra nhiều đầu ra có cùng mệnh giá. Điều này có nghĩa là nếu đồng tiền của bạn được xác định trước khi bạn tham gia coinjoin, cơ quan giám sát cũng sẽ ở trong coinjoin cho đến khi bạn tham gia. Họ có thể không biết tiền của bạn đã đi đâu hoặc bạn đã làm gì sau khi coinjoining, nhưng họ biết bạn có bao nhiêu và bạn đã tham gia vào coinjoin bao nhiêu
Rõ ràng, do những hạn chế này, CoinJoin không phải là giải pháp tối ưu cho quyền riêng tư của Bitcoin, đặc biệt là đối với những người dùng thụ động hơn, những người muốn có một chương trình bảo mật mặc định.
Vài năm sau, một kịch bản kết quả tốt hơn đã xuất hiện mà không yêu cầu * bất kỳ * bước bổ sung nào từ phía các bên liên quan đến giao dịch, đơn giản một-một, không yêu cầu điều phối viên hoặc thị trường tập trung (và do đó tiết kiệm thời gian và tiền bạc) và trông giống như một giao dịch bình thường: Payjoin.
Payjoin được tạo thành từ một loạt các cải tiến trước đó, chúng ta hãy xem.
BIP-21
Một cải tiến trải nghiệm người dùng (UX) quan trọng cho Bitcoin sớm là BIP-21. "BIP" là từ viết tắt của "Đề xuất nâng cấp Bitcoin" và chứa một bộ tiêu chí yêu cầu thay đổi đồng thuận đối với giao thức Bitcoin (ví dụ: hard fork hoặc soft) hoặc cung cấp thông tin và phương pháp hữu ích để tương tác với Bitcoin.
BIP-21 là một tiêu chuẩn xác định việc sử dụng URI và đơn giản hóa quá trình tương tác với Bitcoin bằng cách nhấp vào liên kết hoặc quét mã QR để bắt đầu thanh toán. Một số lượng nhỏ các tham số truy vấn, chẳng hạn như số tiền, thẻ và tin nhắn, cũng được xác định, vì vậy phần mềm máy khách có thể dễ dàng tìm nạp và phân tích cú pháp chúng, cung cấp trải nghiệm người dùng tốt hơn. Dưới đây là ví dụ về URI BIP-21 với một vài tham số:
! [BIP-21 Đơn giản] (https://img.jinse.cn/7133647_watermarknone.png)
Điều quan trọng, tiêu chuẩn này có thể mở rộng, bạn có thể tạo các tham số truy vấn tùy chỉnh và các tiêu chuẩn mới có thể được phát triển trên nó. Ví dụ: ngoài địa chỉ Bitcoin của bạn, bạn cũng có thể thêm một tham số tùy chỉnh được gọi là lightning cung cấp cho bạn cách nhận tiền trên Lightning Network để người dùng có thể thanh toán cho bạn theo một trong hai cách:
! [BIP-21 với Lightning] (https://img.jinse.cn/7133648_watermarknone.png)
BIP mạnh mẽ và linh hoạt này đã được chứng minh là khá hữu ích khi kết hợp các khái niệm từ coinjoin.
Điểm cuối trả tiền (P2EP)
Tài liệu sớm nhất mà tôi tìm thấy đề cập đến khái niệm payjoin là từ Blocksteam, được xuất bản vào tháng 8 năm 2018, trích dẫn một hội thảo đã dẫn đến khái niệm này. Bài báo gọi ý tưởng cuối cùng là "Pay-to-Endpoint" vì nó kết hợp khái niệm coinjoin với BIP-21, cho phép người gửi và người nhận giao dịch làm việc cùng nhau để cung cấp đầu vào cho giao dịch thông qua điểm cuối mạng tuân thủ BIP-21 do người nhận cung cấp. Sơ đồ sau đây là một ví dụ về điểm cuối do người nhận cung cấp trông như thế nào:
Đặc biệt lưu ý là tham số p2ep, là điểm cuối mạng (trong trường hợp này là địa chỉ .onion, nhưng nó cũng có thể là địa chỉ http:// đơn giản hoặc bất kỳ điểm cuối mạng tương thích nào khác) có thể gửi tín hiệu đến ví của người nhận rằng người gửi sẵn sàng thử thanh toán P2EP. Nếu thanh toán P2EP không thành công, ví sẽ trả lại cho người gửi và yêu cầu thanh toán bình thường đến một địa chỉ nhất định và chỉ sử dụng đầu vào của người gửi.
Bởi vì đóng góp đầu vào được điều phối thông qua P2EP và không tạo ra đầu ra mệnh giá bằng nhau "bị ô nhiễm" như coinjoin, các giao dịch payjoin khó xác định hơn.
Ý tưởng này là một bước tiến lớn đi đúng hướng, nhưng nó vẫn còn trong giai đoạn trứng nước, nó chưa được hoàn thiện và một số phức tạp cần phải được loại bỏ.
Lạc đề: Trả tiền cho IP của Satoshi Nakamoto
Một biến thể của ý tưởng này, được gọi là "Pay-to-IP", thực sự đã được Satoshi Nakamoto thực hiện trong * phiên bản sớm nhất * của phần mềm Bitcoin. Tuy nhiên, cách tiếp cận này đặt ra một vấn đề nan giải đáng kể về quyền riêng tư, vì vậy nó đã bị bỏ rơi trong các phiên bản tiếp theo của phần mềm Bitcoin.
Bustapay
Cuối tháng đó, Ryan Haver đã đề xuất một phiên bản cải tiến của P2EP trên danh sách gửi thư của nhà phát triển Bitcoin và chính thức hóa một BIP có tên là "Bustapay". Phiên bản này đơn giản hóa giao thức P2EP ban đầu và vì mục đích đơn giản và loại bỏ một số phức tạp, ông nghĩ rằng sự đơn giản là điều cần thiết để truy cập phổ biến.
Đề xuất Bustapay vẫn còn một số vấn đề lớn cần được tinh chỉnh và giao thức không hoàn chỉnh như mong muốn. Nhưng đó là một bước đi đúng hướng và tập trung vào sự đơn giản để tích hợp ví là một bước quan trọng, đặc biệt là đối với hệ sinh thái chậm chạp và thận trọng của các nhà phát triển Bitcoin. Mặc dù Bustapay chưa bao giờ được quảng bá, nhưng đó là tiền thân cuối cùng của đề xuất payjoin ngày hôm nay - chúng tôi đã sẵn sàng tích hợp ví, những thay đổi tích cực đối với các giao dịch trên chuỗi.
Ưu đãi Payjoin
Cuối cùng, vào giữa năm 2019, các khái niệm về Bustapay và P2EP đã được Nicolas Forier (người sáng lập BTCPayServer) và Kukks tiếp tục tinh chỉnh và nâng cao để tạo thành BIP-78, có tiêu đề "Đề xuất Payjoin đơn giản".
Với sự hiểu biết về nền tảng của giao thức đã làm phát sinh payjoin, ý nghĩa và mục đích của bản tóm tắt ở phần đầu của đề xuất này là rõ ràng:
"Tài liệu này đề xuất một giao thức cho hai bên để đàm phán một giao dịch coinjoin khi họ thực hiện thanh toán."
Đề xuất cung cấp thông tin nghiêm ngặt hơn nhiều so với các phương pháp trước đây, chỉ ra cách xây dựng giao dịch coinjoin giữa người gửi và người nhận, phá vỡ chuỗi nhận dạng quyền sở hữu của đầu vào giao dịch và đơn giản, linh hoạt và không tốn kém.
Cách thức hoạt động của Payjoin
Giả sử Alice muốn trả cho Bob 1,1 BTC và sau đó một công ty giám sát blockchain thấy một giao dịch như thế này:
! [Ví dụ giả định heuristic quyền sở hữu đầu vào chung] (https://img.jinse.cn/7133650_watermarknone.png)
Họ có thể nghĩ rằng Alice đã trả cho Bob 0,5 BTC và sau đó chuyển phần tiền còn lại cho chính mình dưới dạng tiền lẻ, và thế là xong:
! [Ví dụ giả định heuristic quyền sở hữu đầu vào chung đã được sử dụng] (https://img.jinse.cn/7133651_watermarknone.png)
Và hầu hết thời gian, không có gì sai khi nghĩ như vậy! Xét cho cùng, thay đổi thường có mệnh giá lớn hơn và 0,5 là "số nguyên" hơn và có nhiều khả năng được sử dụng trong thanh toán (so với 1,1).
Họ cũng có thể tự hỏi tại sao Alice lại sử dụng một đầu vào không cần thiết (cả 0,8 và 0,3 đều dư thừa), nhưng họ không bao giờ có thể chắc chắn rằng đây không phải là một giao dịch thông thường và họ không thể kết luận tại sao một đầu vào bổ sung lại được sử dụng - có lẽ Alice chỉ đang phân loại ví của mình để quản lý sau này. Điều này * có thể * là một payjoin, nhưng ngay cả khi bạn nghĩ như vậy, UTXO nào là của Alice và cái nào là của Bob? Bởi vì hầu hết các giao dịch * không * payjoins, họ có nhiều khả năng nhầm tưởng rằng đó không phải là giao dịch payjoin.
Tuy nhiên, Alice thông minh và muốn bảo vệ quyền riêng tư của mình, và cô ấy biết về payjoin, vì vậy cô ấy yêu cầu Bob cung cấp đầu vào cho giao dịch. Bob đồng ý, vì vậy anh ta đã tạo ra một giao dịch có giá một (hoặc nhiều) UTXO làm đầu vào và gửi lại cho Alice. Nếu thỏa thuận không có vấn đề gì với Alice, thì cô ấy sẽ phát nó lên mạng. Thỏa thuận thực sự diễn ra như thế này:
! [Ví dụ về giao dịch payjoin] (https://img.jinse.cn/7133652_watermarknone.png)
Miễn là những người theo dõi chuỗi cho rằng tất cả các đầu vào đến từ Alice (như trong ví dụ đầu tiên, và họ làm bây giờ), họ sẽ cực kỳ sai lầm về đầu vào nào thuộc về Alice và Bob!
Thật thú vị, cả Alice và Bob đều cung cấp lợi ích riêng tư cho tất cả mọi người. Bởi vì, không giống như CoinJoin, giao dịch này giống như một giao dịch bình thường hơn và miễn là đủ người sử dụng PayJoin, người theo dõi không thể xác định giao dịch nào là bình thường. Để ngăn chặn những người theo dõi, Alice và Bob cũng khiến mọi giao dịch trở nên hơi đáng ngờ. Miễn là đủ người làm điều này, tất cả các giao dịch sẽ trở nên đáng ngờ. Quyền riêng tư trên chuỗi thường là một trò chơi số và càng nhiều người tham gia, quyền riêng tư sẽ tốt hơn cho tất cả mọi người.
Trong trường hợp này, Alice và Bob đã hợp tác để tạo một giao dịch bằng cách sử dụng đầu vào tương ứng của họ để bảo vệ quyền riêng tư. Tất nhiên, toàn bộ quá trình được tự động hóa một cách đáng ngờ (và trong thực tế * là * tự động).
Trong BIP-78, toàn bộ quá trình được định nghĩa chính thức hơn như sau:
Người nhận trình bày cho người gửi URI BIP-21 với tham số truy vấn pj = trỏ đến điểm cuối / máy chủ mạng mà người ta có thể gửi "Giao dịch Bitcoin được ký một phần (PSBT)". Điểm cuối này có thể sử dụng HTTPS, .onjoin hoặc bất kỳ giao thức nào khác sử dụng mã hóa danh tính, chẳng hạn như:
! [Ví dụ PJ] (https://img.jinse.cn/7133653_watermarknone.png)
2. Người gửi tạo ra một PSBT được hình thành, có thể phát sóng được gửi đến điểm cuối của người nhận chỉ bằng cách sử dụng các đầu vào của chính nó hoàn toàn đủ cho việc thanh toán. PSBT này được gọi là "PSBT ban đầu".
3. Người nhận sửa đổi PSBT để bao gồm đầu vào của chính họ, ký đầu vào của chính họ và gửi lại PSBT đã sửa đổi cho người gửi. Người nhận không sửa đổi bất kỳ đầu vào hoặc đầu ra nào của người gửi. PSBT này được gọi là "Ưu đãi Payjoin".
4. Người gửi xác thực đề nghị, sau đó ký lại đầu vào của họ để hoàn tất toàn bộ giao dịch và cuối cùng phát nó lên mạng.
Bất kể lỗi được thực hiện ở đâu trong quy trình, chẳng hạn như người nhận không có UTXO có thể được sử dụng để tạo đề xuất Payjoin, thì TA chỉ cần phát PSBT ban đầu, đây là một giao dịch bình thường. Mặc dù tất cả các đầu vào cho giao dịch này là từ cùng một chủ sở hữu và chỉ có đủ người đang sử dụng payjoins, bạn không thể kết luận rằng cả hai bên * không * payjoin và người theo dõi sẽ phải giả định rằng mọi người đều tham gia thanh toán, và sau đó tìm ra một cách khác để theo dõi thanh toán.
Nhiều lợi ích của Payjoin
Phân tích thêm manh mối giám sát
Giả định về danh tính của quyền sở hữu không phải là giả định duy nhất có thể bị phá vỡ bởi payjoin ảnh hưởng đến quyền riêng tư. BIP-78 chỉ ra hai manh mối khác có thể được sử dụng để xác định chủ sở hữu:
Xác định thay đổi bằng khóa công khai kịch bản:
Trong Bitcoin, khóa công khai tập lệnh là "tập lệnh khóa" chỉ định các điều kiện theo đó một khoản bitcoin có thể được chi tiêu. Nó được gọi là "khóa công khai tập lệnh" vì điều kiện khóa yêu cầu chữ ký hợp lệ khớp với khóa công khai (địa chỉ) để mở khóa. Nói cách khác, chỉ người kiểm soát khóa riêng của khóa công khai được liên kết của UTXO này mới có thể mở khóa.
Có một số loại khóa công khai tập lệnh, chẳng hạn như: P2PKH, P2WPKH, P2SH, P2TR. Nói chung, ví sử dụng cùng một khóa công khai tập lệnh cho tất cả các giao dịch, do đó, đầu ra thay đổi (tiền được người gửi gửi lại cho người gửi cho chính họ ngoài các khoản thanh toán và phí) rất có thể sẽ sử dụng cùng một loại khóa công khai tập lệnh như đầu vào của người gửi và đầu ra được gửi đến người nhận có nhiều khả năng sử dụng một loại khác. Điều này có nghĩa là các UTXO sử dụng cùng một loại tập lệnh trong cùng một giao dịch có thể được xác định là có khả năng thuộc về người gửi, tức là, giả sử rằng đầu ra được gửi đến người nhận sẽ thuộc loại khác.
BIP-78 chỉ định một phương thức cho phép người nhận chỉ sử dụng cùng một loại khóa công khai tập lệnh với người gửi, phá vỡ luồng trên có thể làm lộ đầu ra thanh toán và đầu ra thay đổi.
Xác định thay đổi và thanh toán theo số tiền thanh toán (số nguyên):
Thông thường, xin vui lòng crotch, trả tiền cho một người bạn sẽ luôn chọn một số nguyên, bởi vì điều này sẽ tự nhiên hơn nhiều. Nếu Bob tính phí Alice (và họ không tính phí Bitcoin ở mức giá fiat "gần với số nguyên hơn"), thì rất có thể anh ta sẽ tính phí một tập hợp e như 0,0001 thay vì một số không phải nguyên như 0,00010231. Nếu một trong các đầu ra của giao dịch là số nguyên, thì có khả năng đây là đầu ra thanh toán và đầu ra không phải số nguyên là đầu ra thay đổi (ít nhất là hiện tại).
Payjoin cũng mô tả một cách để người nhận phá vỡ luồng này bằng cách thêm đầu ra số nguyên bổ sung khi xây dựng đề xuất Payjoin.
Lợi ích bất đối xứng có được bằng cách hợp nhất một nhóm rộng hơn
Như đã đề cập trước đó, một trong những nhược điểm chính của coinjoin từ góc độ riêng tư là: 1) các giao dịch coinjoin có thể dễ dàng phân biệt với các giao dịch thông thường; 2) Rất ít người sẽ làm coinjoin cụ thể, và đây không phải là trường hợp với giao dịch thông thường. Điều này tạo ra vấn đề về tính đồng nhất của Bitcoin, bởi vì có khả năng một số người sẽ nghĩ rằng tiền được tạo ra bị ô nhiễm, bởi vì đó là người có ý tưởng vô lý rằng "theo đuổi sự riêng tư tương đương với ác ý". Tất nhiên, nếu * phần lớn các giao dịch *, hoặc thậm chí chỉ một tỷ lệ phần trăm nhất định của các giao dịch, là riêng tư, thì các giao dịch tìm kiếm quyền riêng tư là không rõ ràng.
Payjoin trông giống như bất kỳ giao dịch nào khác, vì vậy nó không có gì đáng chú ý. Các nhà quan sát bên ngoài thậm chí không có bất kỳ lý do gì để xem xét một giao dịch như vậy, bởi vì nó không cho thấy ý định nhầm lẫn thanh toán và thay đổi đầu ra.
Bởi vì nó trông giống như một cái gì đó khác, ngay cả những lợi ích cận biên của việc áp dụng payjoin có nghĩa là quyền riêng tư của mọi người sẽ khó bị vi phạm hơn, vì các khách hàng tiềm năng được giám sát nhanh chóng trở nên không đáng tin cậy. Adam Gibson (một người đóng góp sáng lập cho JoinMarket và là một chuyên gia về quyền riêng tư Bitcoin) tóm tắt nó rất tốt:
"Ngay cả khi bạn rất cẩn thận, các giao dịch PayJoin này không khác gì thanh toán thông thường [...] Chà, đây là điều thú vị: hãy giả sử rằng việc áp dụng nhỏ công nghệ này cũng sẽ được quan sát. Giả sử 5% giao dịch sử dụng phương pháp này. Vấn đề là, không ai biết chính xác 5% nào là giao dịch PayJoin. Đây là một thành tựu tuyệt vời [...] , bởi vì điều đó có nghĩa là tất cả các khoản thanh toán, bao gồm cả những khoản không sử dụng Payjoin, đều nhận được các lợi ích về quyền riêng tư!
Hoàn thiện UTXO
Rõ ràng, cả PayJoin và những người tiên phong của nó đều cam kết giải quyết các mối quan tâm về quyền riêng tư. Nhưng có một mặt tuyệt vời khi sử dụng payjoin, và BIP-78 làm cho nó rõ ràng: UTXO dọn dẹp.
Satoshi Nakamoto đề xuất sử dụng địa chỉ tiền boa cho mỗi giao dịch nhận, dẫn đến ví của người dùng có nhiều UTXO để quản lý. Khi các UTXO này được sử dụng làm đầu vào để tạo ra một giao dịch mới (giả sử đó không phải là giao dịch coinjoin hoặc payjoin), một giao dịch như vậy tốn rất nhiều phí. Bởi vì phí được tính dựa trên khối lượng giao dịch (số byte) (tương ứng với không gian khối là tài nguyên khan hiếm), nhiều đầu vào hơn tương đương với các giao dịch lớn hơn và nhiều phí hơn.
Điều quan trọng cần lưu ý là việc sử dụng payjoin để sắp xếp UTXO không nhất thiết phải tiết kiệm phí, vì mọi UTXO xuất hiện trên chuỗi sẽ vẫn phải trả phí. Tuy nhiên, nó phân bổ các khoản phí này trong một thời gian dài và tạo cơ hội cho các UTXO hàng loạt tại thời điểm thanh toán. Xử lý hàng loạt làm cho việc tổ chức UTXO rẻ hơn (so với khi bạn phải bắt đầu một giao dịch cụ thể cho mục đích tổ chức). Nó cũng làm cho nó dễ dàng hơn để liên kết UTXOs và chiếm ít không gian trên ổ cứng của bạn. Ngoài ra, ví có thể thực hiện một cách để tự động hóa và làm trơn tru việc tổ chức UTXO bằng cách cho phép người nhận chỉ định trước UTXO nào họ muốn tổ chức với mức phí thấp.
Lightning Network và Payjoin: Một trận đấu được tạo ra trong tự nhiên
Sử dụng Payjoin để mở Lightning Channel
Lightning Network (LN) là một giải pháp lớp 2 được xây dựng trên Bitcoin, đưa các giao dịch ra khỏi chuỗi để thanh toán ngay lập tức, phí cực thấp, do đó tăng đáng kể thông lượng giao dịch, quyền riêng tư và cho phép Bitcoin tham gia vào các trường hợp sử dụng mới (chẳng hạn như "thanh toán vi mô"). Nó sử dụng một mạng lưới các kênh thanh toán giữa các nút để định tuyến thanh toán, chuyển tiếp tiền từ nơi chúng bắt đầu đến đích. Các kênh này yêu cầu mỗi nhà khai thác nút khóa một số "thanh khoản" (bitcoin) với các đối tác kênh của họ, sau đó có thể chảy giữa một nút và các đối tác kênh của nó. Số lượng Bitcoin bạn có thể chi tiêu trong một kênh bị giới hạn bởi mức độ thanh khoản ở phía kênh của bạn.
Khi nói đến việc duy trì nút Lightning, hầu hết sự phức tạp đến từ việc mở các kênh này và quản lý tính thanh khoản của từng kênh. Giới thiệu người dùng mới là một trong những điểm đau lớn nhất vì có rất nhiều bước liên quan. Giả sử Alice muốn mở một kênh với Bob và cô ấy đã cài đặt một nút Lightning mới, nhưng cô ấy vẫn chưa được tài trợ. Sau đó, cô ấy cần làm như sau:
Gửi một giao dịch trên chuỗi để nạp tiền cho Ví Lightning mới tạo của cô ấy với ít nhất đủ tiền để mở kênh và đợi giao dịch được xác nhận (ít nhất 10 phút)
Sử dụng phần mềm Lightning Wallet của cô ấy để thương lượng giao dịch với Bob để mở kênh và đợi kênh được xác nhận
Ít nhất, Alice phải trả hai khoản phí xử lý và đợi khoảng 10 phút cho mỗi giao dịch, điều này thật tẻ nhạt.
! [Quy trình mở kênh Lightning] (https://img.jinse.cn/7133654_watermarknone.png)
Payjoin đơn giản hóa quá trình này và giúp Alice tiết kiệm tiền: Alice có thể nạp tiền vào Ví Lightning và mở kênh trong một giao dịch duy nhất.
Trong trường hợp này, Alice định cấu hình trước điểm cuối nhận payjoin của mình với các chi tiết của kênh mà cô ấy muốn mở: khóa bao nhiêu bitcoin và đối thủ nào để mở kênh. Sau đó, sử dụng ví hỗ trợ payjoin, ai đó (bao gồm cả Alice) có thể gửi PSBT ban đầu đến điểm cuối, thương lượng giao dịch payjoin và điểm cuối sẽ thực hiện các lệnh gọi API cần thiết để mở kênh với nút của Bob.
Nói cách khác, người gửi (trong trường hợp này là Alice) liên lạc với điểm cuối của Alice để nhận payjoin, tạo giao dịch và gửi tiền trực tiếp đến đầu ra đa chữ ký 2-of-2 của Bob và Alice, do đó xây dựng một kênh sét giữa hai nút. Điều này biến toàn bộ quá trình thành một giao dịch:
! [Kênh Lightning với Payjoin] (https://img.jinse.cn/7133655_watermarknone.png)
Một điều thú vị cần biết là cả việc mở kênh sét và payjoin đều có yêu cầu * trực tiếp * (mặc dù, ít nhất là payjoin sẽ không được yêu cầu trong một thời gian dài), có nghĩa là tất cả người tham gia phải trực tuyến tại thời điểm giao dịch diễn ra. Điều này rất hạn chế so với các giao dịch Bitcoin trên chuỗi (chỉ yêu cầu người thanh toán phải trực tuyến tại thời điểm thanh toán). Tuy nhiên, điều này cũng cho phép hai bộ giao thức khớp với nhau một cách hoàn hảo.
Ví dụ: Lightning Network là một cách tuyệt vời để cải thiện quyền riêng tư bằng cách giữ các khoản thanh toán ngoài chuỗi và nó có thể cải thiện đáng kể khả năng Bitcoin được sử dụng làm phương tiện trao đổi (tức là nó thực sự có thể được sử dụng để mua nhu yếu phẩm hàng ngày) mà không ảnh hưởng đến kho lưu trữ giá trị của nó. Tuy nhiên, nhu cầu mở kênh trên chuỗi cũng có nghĩa là số tiền bạn sử dụng để mở kênh, cũng như những người mở kênh với bạn, sẽ để lại dấu vết trên chuỗi. Vì những lý do mà chúng ta đã thảo luận, payjoin có thể gây nhầm lẫn và phá hủy nhiều manh mối của những kẻ rình mò.
Điều này cũng làm cho mọi thứ trở nên đơn giản hơn, vì người dùng sẽ chỉ cần bắt đầu một giao dịch thay vì hai, trở nên nhanh hơn vì họ chỉ phải đợi một giao dịch được xác nhận và rẻ hơn vì họ chỉ cần trả một khoản phí. Trên thực tế, cách tiếp cận này cho phép mở nhiều kênh cùng một lúc. Bạn có thể tạo danh sách các nút bạn muốn mở kênh, định cấu hình kênh thành điểm cuối nhận thanh toán BIP-21, sau đó bật tất cả cùng một lúc và tự động khi nhận thanh toán và chỉ cần đợi một xác nhận và một khoản phí thanh toán. Hoàn toàn!
Đã có một dự án thực hiện ý tưởng này được gọi là "Nolooking", cho phép bạn liệt kê một bộ khóa công khai và sau đó mở nhiều Kênh Lightning cùng một lúc * theo lô)! Điều này cho phép Alice mở một kênh không chỉ với Bob mà còn với Bob, Carol và Dina, chỉ với * một giao dịch trên chuỗi *! Thật thú vị khi nghĩ về: trong tương lai, ví Lightning sẽ bật payjoin theo mặc định và trải nghiệm người dùng * thực tế * là bạn chỉ cần chọn đối tác kênh của mình, bắt đầu một giao dịch Bitcoin duy nhất và bạn đã hoàn tất! Điều đó đáng ngạc nhiên đến mức nào?
Thật dễ dàng để tưởng tượng rằng điều này sẽ đơn giản hóa việc áp dụng các kênh sét tự lưu ký. Sẽ rất thú vị nếu phần mềm Lightning Wallet có thể có nút "khởi chạy nhanh", nơi người dùng chỉ cần nhập số lượng Bitcoin họ muốn khóa (tức là họ muốn bao nhiêu thanh khoản), đặt giá trị mặc định để mở một số lượng nhỏ các kênh có kích thước hợp lý và hy sinh một chút trong định tuyến và phí. Đối với người dùng nâng cao, chỉ cần cung cấp nút "Tôi biết mình đang làm gì".
Điểm yếu
Bất kỳ giao thức nào cũng có điểm yếu và PayJoin cũng không ngoại lệ.
Một vấn đề lớn nằm ở yêu cầu về tính sống động (mạng). Trong triển khai hiện tại, máy chủ web payjoin của người nhận phải được bảo hiểm tài chính khi xây dựng giao dịch, vì người gửi và người nhận thương lượng giao dịch cuối cùng (tất nhiên là được lập trình). Điều này có thể hạn chế việc áp dụng các máy chủ thương mại cũng như các nút Lightning, những người duy nhất có động lực để duy trì trực tuyến. Từ quan điểm của người dùng, sẽ tốt hơn nếu giao dịch có thể được gửi bất cứ lúc nào, bất kể máy chủ của người nhận có trực tuyến hay không.
Một điểm yếu khác ít có khả năng xảy ra nhưng nguy hiểm hơn là nếu máy chủ payjoin (tức là máy chủ của người nhận) nằm trên một máy chủ không an toàn, đầu ra của người nhận có thể bị giả mạo trong quá trình hoạt động (trước khi được chuyển lại cho người gửi), dẫn đến hành vi trộm cắp tiền thuộc về người nhận.
Tuy nhiên, như chúng tôi sẽ nói tiếp theo, các giải pháp đã được đề xuất để giải quyết cả hai vấn đề này.
Cuối cùng, một điểm yếu khác của giao thức PayJoin là nó phải đối mặt với một rào cản đối với việc áp dụng, vì các ví phải nỗ lực phát triển để tích hợp nó. Một thách thức cụ thể là giao diện người dùng lý tưởng phải được payjoin theo mặc định. Cả ví của người gửi và ví của người nhận sẽ cố gắng tham gia thanh toán trực tiếp mà không cần phải mở bởi người dùng trong cài đặt quyền riêng tư. Quyền riêng tư tốt nhất là thực hiện quyền riêng tư theo mặc định, bởi vì nếu bạn yêu cầu người dùng thực hiện hành động tích cực, họ có thể không được khuyến khích. Vì vậy, để payjoin được người dùng trung bình chấp nhận, cần phải có trải nghiệm mượt mà mà họ không phải vật lộn để hiểu. Ví phải được bật theo mặc định. Hãy nhớ rằng giao thức đã có phản hồi tích hợp đối với các lỗi payjoin: nó quay trở lại giao dịch thông thường mà không cần sự can thiệp của người dùng thủ công.
Không yêu cầu payjoin phía máy chủ
Dan Gould đã gửi một dự thảo BIP cho phiên bản 2 của payjoins, cho phép payjoin được thực hiện trong cả kịch bản không đồng bộ và không có máy chủ. Payjoin không có máy chủ này sẽ giải quyết vấn đề yêu cầu người nhận trực tuyến khi nhận thanh toán và các vấn đề bảo mật phía máy chủ liên quan. Bởi vì máy chủ người nhận payjoin luôn bật có thể là rào cản lớn nhất đối với việc người dùng chấp nhận payjoin, việc triển khai BIP này có thể mang lại lợi ích đáng kể cho việc áp dụng payjoin cũng như quyền riêng tư thụ động của Bitcoin.
Tình trạng áp dụng Payjoin
Tính đến cuối năm 2023, việc áp dụng PayJoin vẫn còn tương đối thấp, nhưng nó đã tiếp tục phát triển kể từ khi thành lập vào năm 2018. Vì payjoin hiện có sẵn và không yêu cầu bất kỳ thay đổi đồng thuận Bitcoin nào, trở ngại duy nhất là viết một ví hỗ trợ nó; Và các công cụ giúp các nhà phát triển đang cải thiện mỗi ngày. Payjoin Dev Kit (PDK) là một triển khai payjoin mới với các mô-đun mà ví có thể sử dụng để tích hợp payjoins. Nó thậm chí còn bao gồm một công cụ payjoin-cli mà bạn có thể sử dụng dòng lệnh để tạo payjoin. Thư viện này được viết bằng Rust, nhưng các ràng buộc cho phép các ngôn ngữ khác sử dụng nó đang được phát triển.
Hỗ trợ ví
BTCPayServer và JoinMarket đã hỗ trợ gửi và nhận payjoins, mặc dù không phải là mặc định. BlueWallet, Sparrow, Wasabi và BitMask hỗ trợ gửi. Một số ví khác hỗ trợ nó thông qua một plugin, bao gồm Bitcoin Core. Ngoài ra còn có các PR tích cực đang cố gắng tích hợp payjoin trong Mutiny Wallet. Tình trạng nhận con nuôi hiện tại được liệt kê ở đây.
Payjoin và tương lai của Bitcoin
Adam Gibson đã được trích dẫn nói rằng ngay cả khi chỉ có 5% giao dịch trên chuỗi được xây dựng bằng cách sử dụng payjoin, nó có thể có tác động lớn đến quyền riêng tư của Bitcoin. Chúng tôi chỉ cần vượt qua một ngưỡng đủ để một công ty phân tích tự tin giả định rằng họ có thể diễn giải giao dịch một cách chính xác. Một khi các phương pháp theo dõi chúng tôi của họ bị phá vỡ, các hạn chế không khôn ngoan, tùy tiện và độc hại được áp đặt bởi những người không hiểu lợi ích của quyền riêng tư của Bitcoin cũng như không có ý định bảo vệ quyền của chúng tôi sẽ trở nên không liên quan.
Và như chúng ta đã thấy, vì nhiều khả năng mà PayJoin sẽ mang lại, nó không chỉ là một giải pháp bảo mật, nó còn là một giao thức giao dịch hợp tác và có thể mở rộng cho phép sử dụng thú vị như tiết kiệm phí, nhiều kênh sét cho một giao dịch, v.v. Những lợi ích mà nó có thể mang lại cho Bitcoin là vô hạn và chúng có thể được nhận ra ngay bây giờ mà không cần thay đổi chính Bitcoin.
Vậy chúng ta còn chờ gì nữa?
Có
Nếu bạn muốn hỗ trợ hoặc đóng góp cho PayJoin, hãy tham gia Discord, quyên góp cho chúng tôi hoặc tìm hiểu về payjoin.org.
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Payjoin với Bitcoin tốt hơn
Tác giả: Brandon Lucas, Nguồn: Nghiên cứu BTC
Payjoin là một giao thức giải quyết nhiều vấn đề với một viên đá bằng cách sử dụng một thủ thuật đơn giản, thông minh để xây dựng các giao dịch Bitcoin. Nó được thiết kế để giải quyết mối quan tâm riêng tư lớn nhất của Bitcoin, nhưng nó cũng có thể giúp giải quyết các vấn đề mở rộng quy mô và do đó giúp mọi người tiết kiệm phí. Nó đặc biệt tương thích với các nút Lightning Network vì thiết kế hiện tại của nó có yêu cầu về độ sống đối với người nhận giao dịch, có nghĩa là người nhận phải trực tuyến (giống như nút Lightning) khi nhận thanh toán. Trong tương lai, thậm chí yêu cầu này sẽ được loại bỏ để có thể sử dụng ngoại tuyến. Thật dễ dàng để tích hợp vào phần mềm ví và nó có thể mở nhiều kênh sét cùng một lúc trong khi thực hiện thanh toán và nó thụ động, vì vậy bạn có thể tận hưởng những lợi ích mà không hề biết. Các lợi ích riêng tư của Payjoin được phân lớp, vì vậy ngay cả khi chỉ có một tỷ lệ nhỏ người sử dụng nó, mọi người đều có thể nhận được lợi ích riêng tư. Và, có lẽ tốt nhất của tất cả, PayJoin không yêu cầu một hard fork hoặc một soft fork. Nó có thể, và đã được sử dụng với Bitcoin, và trên thực tế đã có sẵn kể từ phiên bản đầu tiên của phần mềm Bitcoin.
Payjoin là một dẫn xuất của Coinjoin. Coinjoin cũ hơn và cũng đòi hỏi nhiều tương tác trực tuyến hơn, có nghĩa là người dùng phải tham gia nhiều để sử dụng nó, điều này chắc chắn sẽ làm giảm khả năng sử dụng và không khuyến khích việc áp dụng. Tuy nhiên, mặc dù vậy, việc áp dụng CoinJoin cho đến nay đã cao hơn nhiều so với PayJoin, mặc dù lợi ích và tính dễ sử dụng của PayJoin rõ ràng hơn. Đối với các nhà phát triển, hướng phức tạp, không rõ ràng ngăn cản nó được phần mềm ví chấp nhận.
Payjoin đã tồn tại trong nhiều năm và, có tính đến:
Tại sao payjoin chậm được áp dụng trên quy mô lớn?
Đặc biệt, tại sao giao thức Coinjoin, đòi hỏi nhiều tương tác hơn, khó sử dụng hơn và đắt hơn, nhưng thay vào đó lại được áp dụng nhiều hơn?
Trong bài viết này, chúng ta sẽ xem xét các cuộc tấn công hiện tại vào quyền riêng tư của Bitcoin, lịch sử của PayJoin từ góc độ riêng tư, cách PayJoin hoạt động và tại sao nó có thể cung cấp rất nhiều lợi ích mà không cần thay đổi Bitcoin và cuối cùng là việc áp dụng hiện tại. Nếu payjoin có thể cải thiện đáng kể quyền riêng tư, khả năng mở rộng và giúp tiết kiệm phí, thì nỗ lực nhỏ của ví để tích hợp nó sẽ rất đáng giá.
Tại sao quyền riêng tư lại quan trọng đối với Bitcoin
Trước khi thảo luận về tầm quan trọng của payjoin, chúng ta phải hiểu tầm quan trọng của quyền riêng tư. Nếu bạn không cần tôi thuyết phục bạn nữa, thì bạn có thể bỏ qua phần tiếp theo để tìm hiểu về lịch sử và cách hoạt động của Pyajoin.
Ở các nền dân chủ phương Tây, tầm quan trọng tuyệt đối của quyền riêng tư là không thể diễn tả được, vì lợi ích của nó dường như vẫn vô hình đối với mọi người. Thật khó để giải thích một cách thuyết phục tại sao quyền riêng tư lại quan trọng (đặc biệt là khi đối mặt với chi phí cao hơn hoặc sự bất tiện lớn hơn), nếu họ không bao giờ cảm thấy hậu quả xấu của những người xấu có quá nhiều thông tin về họ hoặc vì nó đòi hỏi mọi người phải suy nghĩ về hậu quả lâu dài của những sự xâm nhập này.
Tất nhiên, quyền riêng tư dường như là điều mà ngày càng nhiều người quan tâm (về lý thuyết), nhưng họ thường hiếm khi tiếp cận nó một cách tích cực, với các rào cản kích hoạt rất thấp và không ảnh hưởng đến sự tiện lợi. Do đó, các công nghệ muốn bảo vệ quyền riêng tư của mọi người phải được thiết kế thân thiện với người dùng nhất có thể và thuận tiện nhất có thể.
Tính đồng nhất
Quyền riêng tư không phải là vấn đề duy nhất mà payjoin có thể giúp giải quyết, nhưng nó được tạo ra để giải quyết nó. Mọi người từ lâu đã than thở về sự thiếu riêng tư vốn có của Bitcoin và cộng đồng Bitcoin đã rất coi trọng vấn đề này. Bitcoin được thiết kế để tạo điều kiện thuận lợi cho các giao dịch một-một trực tiếp và có khả năng chống kiểm duyệt. Tuy nhiên, vì nó cho phép truy tìm các khoản thanh toán trong tương lai, nó có thể dẫn đến phân biệt đối xử khi một số tiền nhất định được liên kết với danh tính. Điều này phá hủy tính đồng nhất - mức độ mà một số đồng tiền của cùng một loại tiền tệ không thể phân biệt được với các đồng tiền khác trong cùng một số lượng - và tính đồng nhất là thuộc tính chính của tiền tốt.
Nếu người mua có thể bị theo dõi, không chỉ các đồng tiền hiện đang được nắm giữ bởi những người bất hợp pháp sẽ bị từ chối, mà ví * đã * được sử dụng cho mục đích bất hợp pháp cũng có thể bị gắn cờ và sau đó bị từ chối bởi các thương gia, bất kể chủ sở hữu hiện tại có mua chúng thông qua các phương tiện hoàn toàn hợp pháp hay không. Hãy tưởng tượng rằng bạn không thể sử dụng số tiền bạn có để mua sữa vì nó đã được ai đó sử dụng để mua ma túy, và họ nói, "Tiền của bạn không sạch", điều đó có công bằng với bạn không? Bạn có nên bị trừng phạt vì tội lỗi của người khác không? Bạn sẽ làm gì với những đồng tiền? Bạn sẽ cảm thấy rằng tiền là vô giá trị bởi vì giữ nó sẽ chỉ làm tổn thương sức mua của bạn. Và thật vô nghĩa khi một phần của đồng tiền ("tiền sạch") sẽ có giá trị hơn phần khác. Một đô la phải bằng một đô la khác, bất kể nó là gì, nếu không khả năng chuyển giá trị của một đồng tiền như vậy sẽ bị suy giảm.
Nhầm lẫn hình sự
Thường có những lời chê bai về Bitcoin và quyền riêng tư nói rằng chỉ có tội phạm mới cần quyền riêng tư. Nó tương tự như "nếu bạn không làm điều gì xấu, hãy nhận lấy nó và bạn không có gì để che giấu". Điều này rất dễ bác bỏ:
Ngoài tuyên bố thái quá đơn giản, hiển nhiên này, trên thực tế, những kẻ phạm tội, không giống như đại đa số công dân tuân thủ pháp luật, sẵn sàng chấp nhận một cái giá cao cho quyền riêng tư, do đó các biện pháp thỏa hiệp quyền riêng tư cơ bản có hại cho người bình thường hơn nhiều so với thủ phạm. Ngay cả khi chính phủ không làm một công việc tồi tệ trong việc sử dụng các biện pháp hạn chế quyền riêng tư để bắt tội phạm, mà thay vào đó "chọn và chọn" và theo dõi công dân có chọn lọc, kết quả sẽ giống nhau. Nếu một công dân nói điều gì đó mà những người cầm quyền không thích (và những điều mà những người cầm quyền không thích có thể giống nhau mỗi ngày), thì TA sẽ bị bắt giữ và làm hại có chọn lọc.
Cuối cùng, mong muốn về sự riêng tư không chỉ đơn giản là nỗi sợ chính phủ vượt quá thẩm quyền của mình. Nó cũng có những mối quan tâm thực tế, an ninh và danh dự. Nếu ai đó có thể tìm ra bạn có bao nhiêu tiền, bạn sống ở đâu, việc ăn cắp đồ của bạn khó đến mức nào? Hãy suy nghĩ về số lượng địa điểm trên internet bạn phải nhập địa chỉ, chi tiết thanh toán, ảnh, v.v. Bạn có tin tưởng tất cả mọi người chạy các trang web này để giữ an toàn cho thông tin cá nhân của bạn không? Bạn không nên tin tưởng họ, bởi vì ngay cả những hệ thống tốt nhất cũng có thể bị sập và bọn tội phạm sẽ sẵn sàng trả một khoản tiền lớn cho tin tặc để làm nổ tung hệ thống và đánh cắp thông tin có giá trị này.
Quyền riêng tư &; Dân chủ
Trong bất kỳ nhà nước toàn trị nào, điều kiện tiên quyết để kiểm soát công dân là * biết * bài phát biểu, kênh thông tin và hoạt động tài chính của công dân. Không có sự hiểu biết này, không có cách nào để biết những gì để tấn công hoặc những gì để ngăn chặn, bởi vì không có cách nào để thao túng câu chuyện và tăng cường hơn nữa sự kiểm soát. Nếu chính phủ không có quyền truy cập đáng tin cậy vào thông tin này, nó không thể nhắm mục tiêu vào một công dân nhiều như nó muốn. Trong các xã hội toàn trị trong quá khứ, chẳng hạn như Liên Xô và Đức Quốc xã, họ đã làm hỏng quyền riêng tư của mọi người và các mối quan hệ không tin tưởng trong gia đình của họ bằng cách tẩy não họ để báo cáo sự phản đối của các thành viên gia đình họ trong các cuộc trò chuyện riêng tư. Khi các biện pháp làm hỏng quyền riêng tư tương tự xảy ra với tiền bạc, nó thậm chí còn đáng sợ hơn lời nói. Cắt giảm tài trợ là một phương tiện rất hiệu quả để chống lại bất đồng chính kiến.
Quyền riêng tư của Bitcoin dễ bị tấn công
Nhân danh cuộc chiến chống tội phạm (cuộc tấn công khủng bố Hamas), các biện pháp quản lý mới đang được suy đoán để mô tả các phương pháp bảo vệ quyền riêng tư trong Bitcoin là bất hợp pháp.
Vào ngày 10 tháng 10 năm 2023, Wall Street Journal đã xuất bản một bài báo báo cáo rằng Hamas đã nhận được 130 triệu USD tài trợ thông qua tiền điện tử. Một tuần sau, Thượng nghị sĩ Elizabeth Warren đã viết một bức thư ngỏ cho Tổng thống Biden kêu gọi ông giải quyết vấn đề ngành hành pháp của ông phản ứng như thế nào với "việc sử dụng tiền điện tử khủng bố" vào ngày 31 tháng 10, trích dẫn Wall Street Journal là bằng chứng về nhu cầu cấp thiết đối với quy định như vậy. Bức thư đã nhận được chữ ký từ 29 trong số 100 thành viên của Thượng viện, cũng như 76 thành viên của Hạ viện. Thật kỳ lạ, vào ngày 19 tháng 10, hai ngày sau khi bức thư được gửi, Mạng lưới thực thi tội phạm tài chính (FCE) đã công bố một đề xuất điều chỉnh việc xáo trộn tiền điện tử đối với rủi ro rửa tiền. Đề xuất liệt kê các phương pháp được sử dụng để làm xáo trộn luồng giao dịch:
Định nghĩa này bao gồm cả coinjoin và payjoin, mặc dù mô tả "sử dụng mã thuật toán" đủ rộng để bao gồm các giao dịch tùy ý, và do đó cho phép kiểm duyệt tùy ý.
Nhưng bài báo của Wall Street Journal, cung cấp một quan điểm về bức thư ngỏ và cố gắng bảo vệ quy định như vậy, đã hiểu sai dữ liệu rất tệ - số tiền thực sự có liên quan đến Hamas chỉ là 450.000 đô la. Tiền điện tử chưa bao giờ là nguồn tài trợ chính của Hamas. Bản thân Hamas đã nói rõ rằng họ không muốn nhận tiền thông qua bitcoin, điều này có thể theo dõi được.
Trớ trêu thay, các biện pháp quản lý hiện đang được đề xuất, được cho là để đối phó với các nhóm khủng bố, có tác động ít nhất đến các nhóm khủng bố và nhiều nhất đối với những người bình thường muốn sử dụng Bitcoin và các loại tiền điện tử khác.
Không còn nghi ngờ gì nữa, cuộc chiến giành quyền riêng tư của Bitcoin đã được tiến hành tại Hoa Kỳ và có thể thấy trước rằng nó sẽ dưới vỏ bọc chống lại các căn cứ an ninh quốc gia nước ngoài. Quan trọng hơn, từ bây giờ, hãy hiểu các công nghệ bảo vệ quyền riêng tư trên Bitcoin và bắt đầu sử dụng chúng để chống lại các nỗ lực làm suy yếu chúng.
1. Hình thức giao dịch Bitcoin
Để hiểu payjoin làm gì và nó hoạt động như thế nào, cần phải hiểu các giao dịch Bitcoin trông như thế nào. Mỗi bitcoin được liên kết với một số đầu vào và đầu ra. Đầu ra xác định khóa công khai, hoặc "địa chỉ", những bitcoin này được gửi đến. Đầu vào xác định "nguồn" tiền của giao dịch, tức là đầu ra trước đó được sử dụng để tạo giao dịch (và đầu ra mới của nó). Một sự tương tự tốt là chúng ta sử dụng các mệnh giá tiền mặt khác nhau để thanh toán. Giả sử bạn muốn trả 25 đô la cho bữa tối tại nhà hàng và 5 đô la cho người phục vụ, tổng cộng là 30 đô la (đó là đầu ra của giao dịch của bạn, hai "phần" tiền khác nhau cho hai người khác nhau - nhà hàng và người phục vụ).
Vậy làm thế nào để bạn trả tiền? Giả sử bạn có quá nhiều ghi chú trong tay (tức là đầu vào của bạn):
Vì vậy, khi xây dựng thỏa thuận này, bạn có thể sử dụng 1 tờ 20 đô la và 2 tờ 5 đô la, một trong số đó là 5 đô la và một tờ được trao cho người phục vụ một mình:
! [Thanh toán tại nhà hàng] (https://img.jinse.cn/7133642_watermarknone.png)
Lưu ý một khía cạnh quan trọng và một khía cạnh không phù hợp để chúng ta rút ra sự tương tự tiền mặt: $ 20 và $ 5 ở đây sẽ * hợp nhất * thành một mảnh. Nó giống như bạn đang nấu chảy hai miếng vàng thành một miếng lớn hơn để bạn có thể trả cho số tiền cần thiết thay vì cho nhiều vàng cốm. Bitcoin cho phép bạn tách và hợp nhất các đầu vào để tạo ra đầu ra mà chúng ta muốn.
Bạn cũng có thể sử dụng 2 tờ 10 đô la và 2 5 đô la, như thế này:
! [Thanh toán tại nhà hàng] (https://img.jinse.cn/7133643_watermarknone.png)
Hoặc thậm chí sử dụng 6 tờ với giá 5 đô la:
! [Thanh toán tại nhà hàng] (https://img.jinse.cn/7133644_watermarknone.png)
Cho đến khi chúng ta tiêu tiền của mình, những "ghi chú" Bitcoin riêng lẻ này được gọi là "Đầu ra giao dịch chưa sử dụng (UTXOs)". Cái tên nghe có vẻ lạ, nhưng nếu bạn dành thời gian để suy nghĩ về nó, bạn sẽ nhận ra rằng nó khá chính xác - chúng là "kết quả" (đầu ra) của một số giao dịch và chúng chưa được chi tiêu bởi * một giao dịch * khác. Đầu ra giao dịch chưa được chi tiêu là đầu ra mà bạn có thể chi tiêu. Vì vậy, trên thực tế, UTXOs giống như tiền giấy trong ví của bạn. Sau khi chúng đã được chi tiêu, chúng trở thành đầu vào của một giao dịch và sau đó là đầu ra của một giao dịch khác (tiền mặt trong ví của người khác) và bạn không thể chi tiêu nó nữa, tuy nhiên, * hồ sơ * của ghi chú bạn đã chi tiêu vẫn ở trên blockchain mãi mãi.
Không giống như tiền mặt, các giao dịch Bitcoin yêu cầu sự cho phép của người gửi để hợp lệ. Điều này đạt được thông qua chữ ký số của người gửi, đây cũng là bằng chứng cho thấy họ có ý định chi tiêu tiền. Chữ ký hợp lệ (tức là chữ ký khớp với địa chỉ của UTXO) cần được thể hiện trong đầu vào giao dịch sử dụng UTXO. Sự hiện diện của chữ ký "mở khóa" UTXO này và chỉ ra rằng chủ sở hữu của UTXO đó dự định chi tiêu nó cho một giao dịch như vậy.
Hình ảnh sau đây cho thấy một giao dịch thực đã được blockchain xác nhận 1 lần tại thời điểm viết bài:
! [Ví dụ về một giao dịch thực với 1 đầu vào và ba đầu ra, một là phí] (https://img.jinse.cn/7133645_watermarknone.png)
Như bạn có thể thấy, giao dịch trên lấy 1 đầu vào và tạo ra 2 đầu ra, một đầu ra đại diện cho khoản thanh toán thực và đầu ra còn lại gần như chắc chắn được gửi lại cho người chi tiêu dưới dạng thay đổi. Sự khác biệt giữa đầu vào và đầu ra là phí, được chuyển đến người khai thác đã khai thác khối đầu tiên xác nhận giao dịch.
"Chế độ UTXO" này rất mạnh mẽ. Bởi vì mọi giao dịch đều có đầu vào và đầu ra, và bởi vì đầu ra của một giao dịch trở thành đầu vào của một giao dịch tiếp theo khác, chúng tôi kết thúc với một chuỗi giao dịch có thể theo dõi việc chuyển quyền sở hữu Bitcoin. Bởi vì nguồn cung Bitcoin là hữu hạn và vì thực tế là nó có đặc tính "không lạm phát" quan trọng, điều quan trọng là có thể kiểm tra số lượng Bitcoin đang lưu hành (hoặc "chưa chi tiêu") bất cứ lúc nào và mô hình UTXO có thể được sử dụng trong oc.
Đây cũng là nguồn gốc của những lo ngại về quyền riêng tư của Bitcoin. Mỗi giao dịch đều có lịch sử riêng. Tất cả các bitcoin được trao cho bạn, và nơi bạn gửi nó, là * dễ dàng * để theo dõi. Toàn bộ hệ thống được thiết kế rõ ràng để hỗ trợ tính năng này, mặc dù nó không có ý định theo dõi các cá nhân. Trong hệ thống này, con bài mặc cả thực sự duy nhất của bạn là không bao giờ liên kết danh tính thực của bạn với khóa công khai của bạn, điều này rất khó thực hiện trong thời đại giám sát hàng loạt.
Nguồn gốc lịch sử của Payjoin
Sai lầm nhỏ của Satoshi Nakamoto
Khi Satoshi Nakamoto xuất bản whitepaper Bitcoin vào năm 2008, ông nhận ra rằng những lo ngại về quyền riêng tư đến từ yêu cầu mọi giao dịch phải được công khai, điều này mâu thuẫn với yêu cầu giữ bí mật.
Ông đã đưa ra hai đề xuất để tránh liên kết danh tính thực với các giao dịch:
Đây là tất cả những lời khuyên tốt, nhưng đối với 1) rất khó để đảm bảo rằng danh tính thực sự của chúng tôi hoàn toàn bị cô lập với các khoản thanh toán của chúng tôi, trừ khi chúng tôi cực kỳ thận trọng khi thanh toán trực tuyến; Đối với 2), ngay cả khi khóa công khai không được sử dụng lại, trình theo dõi không khó để xác định khóa công khai nào thuộc về người nào, miễn là đầu ra được tạo từ nhiều khóa được sử dụng cùng nhau trong các lần thanh toán tiếp theo. Những đề xuất này, ngay cả khi được kết hợp với nhau, rất khó thực hiện và giải pháp không hoàn hảo.
Sau những gợi ý này, Satoshi Nakamoto đã phạm một sai lầm nhỏ khác bằng cách phóng đại điểm yếu của hệ thống của mình:
Giả thuyết của Satoshi, và tất cả các ví dụ chúng tôi đã chỉ ra cho đến nay, ngụ ý rằng tất cả các đầu vào cho một giao dịch thuộc về cùng một chủ sở hữu. Nói cách khác, tất cả các "tiền giấy" chi cho một giao dịch đến từ ví của bạn, đó là một giả định hợp lý, nhưng không nhất thiết phải đúng. Giả thuyết này được gọi là "nhập danh tính của manh mối sở hữu". Hầu như đúng với bất kỳ giao dịch nào, đây cũng là cơ sở của giám sát hoạt động trên chuỗi.
Nối đồng xu
Vào đầu năm 2013, Gregory Maxwell đã chơi một trò chơi thú vị trên các diễn đàn bitcointalk.org, nơi anh ấy cung cấp một UTXO của riêng mình (trị giá 1 BTC) và địa chỉ của anh ấy, và hỏi liệu có ai có thể tạo một giao dịch mới bằng cách sử dụng UTXO này làm đầu vào hay không. Nếu người tạo giao dịch như vậy gửi cho anh ta ít hơn 1 BTC, anh ta sẽ mất một số tiền và nếu nó gửi cho anh ta nhiều hơn 1 BTC, nó sẽ mang lại cho anh ta thêm một số tiền, nhưng nếu số tiền được gửi cho anh ta không nhiều hơn và ít hơn 1 BTC, thì nó tương đương với việc sử dụng tiền (và địa chỉ) của anh ta để tăng thêm quyền riêng tư, bởi vì đầu vào * trông * như thể đó là UTXO của chính người tạo giao dịch, nhưng thực tế không phải vậy. Khi một trong những kết quả đầu ra của Maxwell được chi tiêu và gửi lại địa chỉ của mình, anh ta cung cấp một UTXO khác để những người khác có thể tiếp tục trò chơi. Từ quan điểm của một công ty phân tích hoạt động blockchain, điều này sẽ khiến họ nghĩ rằng Maxwell trông giàu có! Bởi vì địa chỉ của anh ta là công khai và nhiều UTXO được sử dụng để xây dựng các giao dịch có chứa các địa chỉ đó, bất kỳ nhà phân tích nào phân tích các giao dịch này và giả định rằng tất cả các đầu vào cho các giao dịch đến từ cùng một người sẽ cho rằng Maxwell có nhiều, rất nhiều bitcoin (nhiều hơn anh ta thực sự sở hữu), do đó tiêu đề của bài đăng của anh ta: "Tôi thực sự giàu!"
Tất nhiên, trò chơi không phải là riêng tư, vì Maxwell đã đăng địa chỉ của mình trên một diễn đàn công cộng, nhưng nó cung cấp một khái niệm rất quan trọng ra đời. Như Maxwell nói:
Trong một bài đăng tiếp theo cùng năm đó, Mavwell chính thức chắt lọc ý tưởng thành một khái niệm mà ông gọi là "Coinjoin":
Điều này có nghĩa là, trên thực tế, bất kỳ số lượng người nào cũng có thể cộng tác để tạo giao dịch, mỗi người cung cấp và ký đầu vào của riêng họ mà không phải lo lắng về việc người khác bị đánh cắp tiền.
Sau đó, ông giới thiệu một lợi ích khác của các giao dịch coinjoin, đó là các giao dịch có thể được xử lý theo lô, do đó tiết kiệm phí: bạn có thể tìm thấy những người khác cũng muốn bắt đầu thanh toán khi bạn muốn thanh toán và tạo giao dịch cùng nhau:
Cuối cùng, conjoin là một giao thức mà đủ người sử dụng nó, mọi người đều thắng và mọi người đều nhận được lợi ích riêng tư từ nó:
Để cung cấp một ví dụ cụ thể, giả sử chúng tôi tìm thấy 3 người muốn tham gia vào một coinjoin. Họ đã đồng ý trước để trộn 0,1 bitcoin và họ có thể nhận được lợi ích riêng tư của việc tạo ra 3 đầu ra bằng nhau, khiến người khác không thể biết mỗi địa chỉ trong số ba địa chỉ đến từ ai. Đối với nhà phân tích, mối quan hệ giữa địa chỉ thay đổi và đầu vào vẫn còn rất rõ ràng, nhưng không rõ đầu ra của ai là đầu ra của ba lượng bằng nhau này.
! [Ví dụ Coinjoin] (https://img.jinse.cn/7133646_watermarknone.png)
Khi chỉ có 3 người tham gia, lợi ích riêng tư không nhất thiết phải đáng kể, đặc biệt là vì những người tham gia khác có thể tự hủy ẩn danh (tương quan với danh tính thực của họ) trong các giao dịch tiếp theo, nhưng điều này có thể được cải thiện bằng nhiều vòng coinjoin hoặc bằng cách sử dụng bộ ẩn danh lớn hơn.
Tóm lại, *coinjoin là một giao dịch được tạo ra bằng cách sử dụng đầu vào và đầu ra từ nhiều bên, do đó người khác khó xác định đầu ra nào thuộc về ai *.
Để có cái nhìn sâu hơn về cách tạo giao dịch Coinjoin và những công cụ nào có sẵn, hãy xem hướng dẫn này.
Coinjoin là một trong những giải pháp bảo mật Bitcoin hiệu quả và được áp dụng rộng rãi nhất, nhưng nó cũng có một số nhược điểm đáng kể:
Rõ ràng, do những hạn chế này, CoinJoin không phải là giải pháp tối ưu cho quyền riêng tư của Bitcoin, đặc biệt là đối với những người dùng thụ động hơn, những người muốn có một chương trình bảo mật mặc định.
Vài năm sau, một kịch bản kết quả tốt hơn đã xuất hiện mà không yêu cầu * bất kỳ * bước bổ sung nào từ phía các bên liên quan đến giao dịch, đơn giản một-một, không yêu cầu điều phối viên hoặc thị trường tập trung (và do đó tiết kiệm thời gian và tiền bạc) và trông giống như một giao dịch bình thường: Payjoin.
Payjoin được tạo thành từ một loạt các cải tiến trước đó, chúng ta hãy xem.
BIP-21
Một cải tiến trải nghiệm người dùng (UX) quan trọng cho Bitcoin sớm là BIP-21. "BIP" là từ viết tắt của "Đề xuất nâng cấp Bitcoin" và chứa một bộ tiêu chí yêu cầu thay đổi đồng thuận đối với giao thức Bitcoin (ví dụ: hard fork hoặc soft) hoặc cung cấp thông tin và phương pháp hữu ích để tương tác với Bitcoin.
BIP-21 là một tiêu chuẩn xác định việc sử dụng URI và đơn giản hóa quá trình tương tác với Bitcoin bằng cách nhấp vào liên kết hoặc quét mã QR để bắt đầu thanh toán. Một số lượng nhỏ các tham số truy vấn, chẳng hạn như số tiền, thẻ và tin nhắn, cũng được xác định, vì vậy phần mềm máy khách có thể dễ dàng tìm nạp và phân tích cú pháp chúng, cung cấp trải nghiệm người dùng tốt hơn. Dưới đây là ví dụ về URI BIP-21 với một vài tham số:
! [BIP-21 Đơn giản] (https://img.jinse.cn/7133647_watermarknone.png)
Điều quan trọng, tiêu chuẩn này có thể mở rộng, bạn có thể tạo các tham số truy vấn tùy chỉnh và các tiêu chuẩn mới có thể được phát triển trên nó. Ví dụ: ngoài địa chỉ Bitcoin của bạn, bạn cũng có thể thêm một tham số tùy chỉnh được gọi là lightning cung cấp cho bạn cách nhận tiền trên Lightning Network để người dùng có thể thanh toán cho bạn theo một trong hai cách:
! [BIP-21 với Lightning] (https://img.jinse.cn/7133648_watermarknone.png)
BIP mạnh mẽ và linh hoạt này đã được chứng minh là khá hữu ích khi kết hợp các khái niệm từ coinjoin.
Điểm cuối trả tiền (P2EP)
Tài liệu sớm nhất mà tôi tìm thấy đề cập đến khái niệm payjoin là từ Blocksteam, được xuất bản vào tháng 8 năm 2018, trích dẫn một hội thảo đã dẫn đến khái niệm này. Bài báo gọi ý tưởng cuối cùng là "Pay-to-Endpoint" vì nó kết hợp khái niệm coinjoin với BIP-21, cho phép người gửi và người nhận giao dịch làm việc cùng nhau để cung cấp đầu vào cho giao dịch thông qua điểm cuối mạng tuân thủ BIP-21 do người nhận cung cấp. Sơ đồ sau đây là một ví dụ về điểm cuối do người nhận cung cấp trông như thế nào:
! [Ví dụ P2EP] (https://img.jinse.cn/7133649_watermarknone.png)
Đặc biệt lưu ý là tham số p2ep, là điểm cuối mạng (trong trường hợp này là địa chỉ .onion, nhưng nó cũng có thể là địa chỉ http:// đơn giản hoặc bất kỳ điểm cuối mạng tương thích nào khác) có thể gửi tín hiệu đến ví của người nhận rằng người gửi sẵn sàng thử thanh toán P2EP. Nếu thanh toán P2EP không thành công, ví sẽ trả lại cho người gửi và yêu cầu thanh toán bình thường đến một địa chỉ nhất định và chỉ sử dụng đầu vào của người gửi.
Bởi vì đóng góp đầu vào được điều phối thông qua P2EP và không tạo ra đầu ra mệnh giá bằng nhau "bị ô nhiễm" như coinjoin, các giao dịch payjoin khó xác định hơn.
Ý tưởng này là một bước tiến lớn đi đúng hướng, nhưng nó vẫn còn trong giai đoạn trứng nước, nó chưa được hoàn thiện và một số phức tạp cần phải được loại bỏ.
Lạc đề: Trả tiền cho IP của Satoshi Nakamoto
Một biến thể của ý tưởng này, được gọi là "Pay-to-IP", thực sự đã được Satoshi Nakamoto thực hiện trong * phiên bản sớm nhất * của phần mềm Bitcoin. Tuy nhiên, cách tiếp cận này đặt ra một vấn đề nan giải đáng kể về quyền riêng tư, vì vậy nó đã bị bỏ rơi trong các phiên bản tiếp theo của phần mềm Bitcoin.
Bustapay
Cuối tháng đó, Ryan Haver đã đề xuất một phiên bản cải tiến của P2EP trên danh sách gửi thư của nhà phát triển Bitcoin và chính thức hóa một BIP có tên là "Bustapay". Phiên bản này đơn giản hóa giao thức P2EP ban đầu và vì mục đích đơn giản và loại bỏ một số phức tạp, ông nghĩ rằng sự đơn giản là điều cần thiết để truy cập phổ biến.
Đề xuất Bustapay vẫn còn một số vấn đề lớn cần được tinh chỉnh và giao thức không hoàn chỉnh như mong muốn. Nhưng đó là một bước đi đúng hướng và tập trung vào sự đơn giản để tích hợp ví là một bước quan trọng, đặc biệt là đối với hệ sinh thái chậm chạp và thận trọng của các nhà phát triển Bitcoin. Mặc dù Bustapay chưa bao giờ được quảng bá, nhưng đó là tiền thân cuối cùng của đề xuất payjoin ngày hôm nay - chúng tôi đã sẵn sàng tích hợp ví, những thay đổi tích cực đối với các giao dịch trên chuỗi.
Ưu đãi Payjoin
Cuối cùng, vào giữa năm 2019, các khái niệm về Bustapay và P2EP đã được Nicolas Forier (người sáng lập BTCPayServer) và Kukks tiếp tục tinh chỉnh và nâng cao để tạo thành BIP-78, có tiêu đề "Đề xuất Payjoin đơn giản".
Với sự hiểu biết về nền tảng của giao thức đã làm phát sinh payjoin, ý nghĩa và mục đích của bản tóm tắt ở phần đầu của đề xuất này là rõ ràng:
Đề xuất cung cấp thông tin nghiêm ngặt hơn nhiều so với các phương pháp trước đây, chỉ ra cách xây dựng giao dịch coinjoin giữa người gửi và người nhận, phá vỡ chuỗi nhận dạng quyền sở hữu của đầu vào giao dịch và đơn giản, linh hoạt và không tốn kém.
Cách thức hoạt động của Payjoin
Giả sử Alice muốn trả cho Bob 1,1 BTC và sau đó một công ty giám sát blockchain thấy một giao dịch như thế này:
! [Ví dụ giả định heuristic quyền sở hữu đầu vào chung] (https://img.jinse.cn/7133650_watermarknone.png)
Họ có thể nghĩ rằng Alice đã trả cho Bob 0,5 BTC và sau đó chuyển phần tiền còn lại cho chính mình dưới dạng tiền lẻ, và thế là xong:
! [Ví dụ giả định heuristic quyền sở hữu đầu vào chung đã được sử dụng] (https://img.jinse.cn/7133651_watermarknone.png)
Và hầu hết thời gian, không có gì sai khi nghĩ như vậy! Xét cho cùng, thay đổi thường có mệnh giá lớn hơn và 0,5 là "số nguyên" hơn và có nhiều khả năng được sử dụng trong thanh toán (so với 1,1).
Họ cũng có thể tự hỏi tại sao Alice lại sử dụng một đầu vào không cần thiết (cả 0,8 và 0,3 đều dư thừa), nhưng họ không bao giờ có thể chắc chắn rằng đây không phải là một giao dịch thông thường và họ không thể kết luận tại sao một đầu vào bổ sung lại được sử dụng - có lẽ Alice chỉ đang phân loại ví của mình để quản lý sau này. Điều này * có thể * là một payjoin, nhưng ngay cả khi bạn nghĩ như vậy, UTXO nào là của Alice và cái nào là của Bob? Bởi vì hầu hết các giao dịch * không * payjoins, họ có nhiều khả năng nhầm tưởng rằng đó không phải là giao dịch payjoin.
Tuy nhiên, Alice thông minh và muốn bảo vệ quyền riêng tư của mình, và cô ấy biết về payjoin, vì vậy cô ấy yêu cầu Bob cung cấp đầu vào cho giao dịch. Bob đồng ý, vì vậy anh ta đã tạo ra một giao dịch có giá một (hoặc nhiều) UTXO làm đầu vào và gửi lại cho Alice. Nếu thỏa thuận không có vấn đề gì với Alice, thì cô ấy sẽ phát nó lên mạng. Thỏa thuận thực sự diễn ra như thế này:
! [Ví dụ về giao dịch payjoin] (https://img.jinse.cn/7133652_watermarknone.png)
Miễn là những người theo dõi chuỗi cho rằng tất cả các đầu vào đến từ Alice (như trong ví dụ đầu tiên, và họ làm bây giờ), họ sẽ cực kỳ sai lầm về đầu vào nào thuộc về Alice và Bob!
Thật thú vị, cả Alice và Bob đều cung cấp lợi ích riêng tư cho tất cả mọi người. Bởi vì, không giống như CoinJoin, giao dịch này giống như một giao dịch bình thường hơn và miễn là đủ người sử dụng PayJoin, người theo dõi không thể xác định giao dịch nào là bình thường. Để ngăn chặn những người theo dõi, Alice và Bob cũng khiến mọi giao dịch trở nên hơi đáng ngờ. Miễn là đủ người làm điều này, tất cả các giao dịch sẽ trở nên đáng ngờ. Quyền riêng tư trên chuỗi thường là một trò chơi số và càng nhiều người tham gia, quyền riêng tư sẽ tốt hơn cho tất cả mọi người.
Trong trường hợp này, Alice và Bob đã hợp tác để tạo một giao dịch bằng cách sử dụng đầu vào tương ứng của họ để bảo vệ quyền riêng tư. Tất nhiên, toàn bộ quá trình được tự động hóa một cách đáng ngờ (và trong thực tế * là * tự động).
Trong BIP-78, toàn bộ quá trình được định nghĩa chính thức hơn như sau:
! [Ví dụ PJ] (https://img.jinse.cn/7133653_watermarknone.png) 2. Người gửi tạo ra một PSBT được hình thành, có thể phát sóng được gửi đến điểm cuối của người nhận chỉ bằng cách sử dụng các đầu vào của chính nó hoàn toàn đủ cho việc thanh toán. PSBT này được gọi là "PSBT ban đầu". 3. Người nhận sửa đổi PSBT để bao gồm đầu vào của chính họ, ký đầu vào của chính họ và gửi lại PSBT đã sửa đổi cho người gửi. Người nhận không sửa đổi bất kỳ đầu vào hoặc đầu ra nào của người gửi. PSBT này được gọi là "Ưu đãi Payjoin". 4. Người gửi xác thực đề nghị, sau đó ký lại đầu vào của họ để hoàn tất toàn bộ giao dịch và cuối cùng phát nó lên mạng.
Bất kể lỗi được thực hiện ở đâu trong quy trình, chẳng hạn như người nhận không có UTXO có thể được sử dụng để tạo đề xuất Payjoin, thì TA chỉ cần phát PSBT ban đầu, đây là một giao dịch bình thường. Mặc dù tất cả các đầu vào cho giao dịch này là từ cùng một chủ sở hữu và chỉ có đủ người đang sử dụng payjoins, bạn không thể kết luận rằng cả hai bên * không * payjoin và người theo dõi sẽ phải giả định rằng mọi người đều tham gia thanh toán, và sau đó tìm ra một cách khác để theo dõi thanh toán.
Nhiều lợi ích của Payjoin
Phân tích thêm manh mối giám sát
Giả định về danh tính của quyền sở hữu không phải là giả định duy nhất có thể bị phá vỡ bởi payjoin ảnh hưởng đến quyền riêng tư. BIP-78 chỉ ra hai manh mối khác có thể được sử dụng để xác định chủ sở hữu:
Trong Bitcoin, khóa công khai tập lệnh là "tập lệnh khóa" chỉ định các điều kiện theo đó một khoản bitcoin có thể được chi tiêu. Nó được gọi là "khóa công khai tập lệnh" vì điều kiện khóa yêu cầu chữ ký hợp lệ khớp với khóa công khai (địa chỉ) để mở khóa. Nói cách khác, chỉ người kiểm soát khóa riêng của khóa công khai được liên kết của UTXO này mới có thể mở khóa.
Có một số loại khóa công khai tập lệnh, chẳng hạn như: P2PKH, P2WPKH, P2SH, P2TR. Nói chung, ví sử dụng cùng một khóa công khai tập lệnh cho tất cả các giao dịch, do đó, đầu ra thay đổi (tiền được người gửi gửi lại cho người gửi cho chính họ ngoài các khoản thanh toán và phí) rất có thể sẽ sử dụng cùng một loại khóa công khai tập lệnh như đầu vào của người gửi và đầu ra được gửi đến người nhận có nhiều khả năng sử dụng một loại khác. Điều này có nghĩa là các UTXO sử dụng cùng một loại tập lệnh trong cùng một giao dịch có thể được xác định là có khả năng thuộc về người gửi, tức là, giả sử rằng đầu ra được gửi đến người nhận sẽ thuộc loại khác.
BIP-78 chỉ định một phương thức cho phép người nhận chỉ sử dụng cùng một loại khóa công khai tập lệnh với người gửi, phá vỡ luồng trên có thể làm lộ đầu ra thanh toán và đầu ra thay đổi.
Thông thường, xin vui lòng crotch, trả tiền cho một người bạn sẽ luôn chọn một số nguyên, bởi vì điều này sẽ tự nhiên hơn nhiều. Nếu Bob tính phí Alice (và họ không tính phí Bitcoin ở mức giá fiat "gần với số nguyên hơn"), thì rất có thể anh ta sẽ tính phí một tập hợp e như 0,0001 thay vì một số không phải nguyên như 0,00010231. Nếu một trong các đầu ra của giao dịch là số nguyên, thì có khả năng đây là đầu ra thanh toán và đầu ra không phải số nguyên là đầu ra thay đổi (ít nhất là hiện tại).
Payjoin cũng mô tả một cách để người nhận phá vỡ luồng này bằng cách thêm đầu ra số nguyên bổ sung khi xây dựng đề xuất Payjoin.
Lợi ích bất đối xứng có được bằng cách hợp nhất một nhóm rộng hơn
Như đã đề cập trước đó, một trong những nhược điểm chính của coinjoin từ góc độ riêng tư là: 1) các giao dịch coinjoin có thể dễ dàng phân biệt với các giao dịch thông thường; 2) Rất ít người sẽ làm coinjoin cụ thể, và đây không phải là trường hợp với giao dịch thông thường. Điều này tạo ra vấn đề về tính đồng nhất của Bitcoin, bởi vì có khả năng một số người sẽ nghĩ rằng tiền được tạo ra bị ô nhiễm, bởi vì đó là người có ý tưởng vô lý rằng "theo đuổi sự riêng tư tương đương với ác ý". Tất nhiên, nếu * phần lớn các giao dịch *, hoặc thậm chí chỉ một tỷ lệ phần trăm nhất định của các giao dịch, là riêng tư, thì các giao dịch tìm kiếm quyền riêng tư là không rõ ràng.
Payjoin trông giống như bất kỳ giao dịch nào khác, vì vậy nó không có gì đáng chú ý. Các nhà quan sát bên ngoài thậm chí không có bất kỳ lý do gì để xem xét một giao dịch như vậy, bởi vì nó không cho thấy ý định nhầm lẫn thanh toán và thay đổi đầu ra.
Bởi vì nó trông giống như một cái gì đó khác, ngay cả những lợi ích cận biên của việc áp dụng payjoin có nghĩa là quyền riêng tư của mọi người sẽ khó bị vi phạm hơn, vì các khách hàng tiềm năng được giám sát nhanh chóng trở nên không đáng tin cậy. Adam Gibson (một người đóng góp sáng lập cho JoinMarket và là một chuyên gia về quyền riêng tư Bitcoin) tóm tắt nó rất tốt:
Hoàn thiện UTXO
Rõ ràng, cả PayJoin và những người tiên phong của nó đều cam kết giải quyết các mối quan tâm về quyền riêng tư. Nhưng có một mặt tuyệt vời khi sử dụng payjoin, và BIP-78 làm cho nó rõ ràng: UTXO dọn dẹp.
Satoshi Nakamoto đề xuất sử dụng địa chỉ tiền boa cho mỗi giao dịch nhận, dẫn đến ví của người dùng có nhiều UTXO để quản lý. Khi các UTXO này được sử dụng làm đầu vào để tạo ra một giao dịch mới (giả sử đó không phải là giao dịch coinjoin hoặc payjoin), một giao dịch như vậy tốn rất nhiều phí. Bởi vì phí được tính dựa trên khối lượng giao dịch (số byte) (tương ứng với không gian khối là tài nguyên khan hiếm), nhiều đầu vào hơn tương đương với các giao dịch lớn hơn và nhiều phí hơn.
Điều quan trọng cần lưu ý là việc sử dụng payjoin để sắp xếp UTXO không nhất thiết phải tiết kiệm phí, vì mọi UTXO xuất hiện trên chuỗi sẽ vẫn phải trả phí. Tuy nhiên, nó phân bổ các khoản phí này trong một thời gian dài và tạo cơ hội cho các UTXO hàng loạt tại thời điểm thanh toán. Xử lý hàng loạt làm cho việc tổ chức UTXO rẻ hơn (so với khi bạn phải bắt đầu một giao dịch cụ thể cho mục đích tổ chức). Nó cũng làm cho nó dễ dàng hơn để liên kết UTXOs và chiếm ít không gian trên ổ cứng của bạn. Ngoài ra, ví có thể thực hiện một cách để tự động hóa và làm trơn tru việc tổ chức UTXO bằng cách cho phép người nhận chỉ định trước UTXO nào họ muốn tổ chức với mức phí thấp.
Lightning Network và Payjoin: Một trận đấu được tạo ra trong tự nhiên
Sử dụng Payjoin để mở Lightning Channel
Lightning Network (LN) là một giải pháp lớp 2 được xây dựng trên Bitcoin, đưa các giao dịch ra khỏi chuỗi để thanh toán ngay lập tức, phí cực thấp, do đó tăng đáng kể thông lượng giao dịch, quyền riêng tư và cho phép Bitcoin tham gia vào các trường hợp sử dụng mới (chẳng hạn như "thanh toán vi mô"). Nó sử dụng một mạng lưới các kênh thanh toán giữa các nút để định tuyến thanh toán, chuyển tiếp tiền từ nơi chúng bắt đầu đến đích. Các kênh này yêu cầu mỗi nhà khai thác nút khóa một số "thanh khoản" (bitcoin) với các đối tác kênh của họ, sau đó có thể chảy giữa một nút và các đối tác kênh của nó. Số lượng Bitcoin bạn có thể chi tiêu trong một kênh bị giới hạn bởi mức độ thanh khoản ở phía kênh của bạn.
Khi nói đến việc duy trì nút Lightning, hầu hết sự phức tạp đến từ việc mở các kênh này và quản lý tính thanh khoản của từng kênh. Giới thiệu người dùng mới là một trong những điểm đau lớn nhất vì có rất nhiều bước liên quan. Giả sử Alice muốn mở một kênh với Bob và cô ấy đã cài đặt một nút Lightning mới, nhưng cô ấy vẫn chưa được tài trợ. Sau đó, cô ấy cần làm như sau:
Ít nhất, Alice phải trả hai khoản phí xử lý và đợi khoảng 10 phút cho mỗi giao dịch, điều này thật tẻ nhạt.
! [Quy trình mở kênh Lightning] (https://img.jinse.cn/7133654_watermarknone.png)
Payjoin đơn giản hóa quá trình này và giúp Alice tiết kiệm tiền: Alice có thể nạp tiền vào Ví Lightning và mở kênh trong một giao dịch duy nhất.
Trong trường hợp này, Alice định cấu hình trước điểm cuối nhận payjoin của mình với các chi tiết của kênh mà cô ấy muốn mở: khóa bao nhiêu bitcoin và đối thủ nào để mở kênh. Sau đó, sử dụng ví hỗ trợ payjoin, ai đó (bao gồm cả Alice) có thể gửi PSBT ban đầu đến điểm cuối, thương lượng giao dịch payjoin và điểm cuối sẽ thực hiện các lệnh gọi API cần thiết để mở kênh với nút của Bob.
Nói cách khác, người gửi (trong trường hợp này là Alice) liên lạc với điểm cuối của Alice để nhận payjoin, tạo giao dịch và gửi tiền trực tiếp đến đầu ra đa chữ ký 2-of-2 của Bob và Alice, do đó xây dựng một kênh sét giữa hai nút. Điều này biến toàn bộ quá trình thành một giao dịch:
! [Kênh Lightning với Payjoin] (https://img.jinse.cn/7133655_watermarknone.png)
Một điều thú vị cần biết là cả việc mở kênh sét và payjoin đều có yêu cầu * trực tiếp * (mặc dù, ít nhất là payjoin sẽ không được yêu cầu trong một thời gian dài), có nghĩa là tất cả người tham gia phải trực tuyến tại thời điểm giao dịch diễn ra. Điều này rất hạn chế so với các giao dịch Bitcoin trên chuỗi (chỉ yêu cầu người thanh toán phải trực tuyến tại thời điểm thanh toán). Tuy nhiên, điều này cũng cho phép hai bộ giao thức khớp với nhau một cách hoàn hảo.
Ví dụ: Lightning Network là một cách tuyệt vời để cải thiện quyền riêng tư bằng cách giữ các khoản thanh toán ngoài chuỗi và nó có thể cải thiện đáng kể khả năng Bitcoin được sử dụng làm phương tiện trao đổi (tức là nó thực sự có thể được sử dụng để mua nhu yếu phẩm hàng ngày) mà không ảnh hưởng đến kho lưu trữ giá trị của nó. Tuy nhiên, nhu cầu mở kênh trên chuỗi cũng có nghĩa là số tiền bạn sử dụng để mở kênh, cũng như những người mở kênh với bạn, sẽ để lại dấu vết trên chuỗi. Vì những lý do mà chúng ta đã thảo luận, payjoin có thể gây nhầm lẫn và phá hủy nhiều manh mối của những kẻ rình mò.
Điều này cũng làm cho mọi thứ trở nên đơn giản hơn, vì người dùng sẽ chỉ cần bắt đầu một giao dịch thay vì hai, trở nên nhanh hơn vì họ chỉ phải đợi một giao dịch được xác nhận và rẻ hơn vì họ chỉ cần trả một khoản phí. Trên thực tế, cách tiếp cận này cho phép mở nhiều kênh cùng một lúc. Bạn có thể tạo danh sách các nút bạn muốn mở kênh, định cấu hình kênh thành điểm cuối nhận thanh toán BIP-21, sau đó bật tất cả cùng một lúc và tự động khi nhận thanh toán và chỉ cần đợi một xác nhận và một khoản phí thanh toán. Hoàn toàn!
Đã có một dự án thực hiện ý tưởng này được gọi là "Nolooking", cho phép bạn liệt kê một bộ khóa công khai và sau đó mở nhiều Kênh Lightning cùng một lúc * theo lô)! Điều này cho phép Alice mở một kênh không chỉ với Bob mà còn với Bob, Carol và Dina, chỉ với * một giao dịch trên chuỗi *! Thật thú vị khi nghĩ về: trong tương lai, ví Lightning sẽ bật payjoin theo mặc định và trải nghiệm người dùng * thực tế * là bạn chỉ cần chọn đối tác kênh của mình, bắt đầu một giao dịch Bitcoin duy nhất và bạn đã hoàn tất! Điều đó đáng ngạc nhiên đến mức nào?
Thật dễ dàng để tưởng tượng rằng điều này sẽ đơn giản hóa việc áp dụng các kênh sét tự lưu ký. Sẽ rất thú vị nếu phần mềm Lightning Wallet có thể có nút "khởi chạy nhanh", nơi người dùng chỉ cần nhập số lượng Bitcoin họ muốn khóa (tức là họ muốn bao nhiêu thanh khoản), đặt giá trị mặc định để mở một số lượng nhỏ các kênh có kích thước hợp lý và hy sinh một chút trong định tuyến và phí. Đối với người dùng nâng cao, chỉ cần cung cấp nút "Tôi biết mình đang làm gì".
Điểm yếu
Bất kỳ giao thức nào cũng có điểm yếu và PayJoin cũng không ngoại lệ.
Một vấn đề lớn nằm ở yêu cầu về tính sống động (mạng). Trong triển khai hiện tại, máy chủ web payjoin của người nhận phải được bảo hiểm tài chính khi xây dựng giao dịch, vì người gửi và người nhận thương lượng giao dịch cuối cùng (tất nhiên là được lập trình). Điều này có thể hạn chế việc áp dụng các máy chủ thương mại cũng như các nút Lightning, những người duy nhất có động lực để duy trì trực tuyến. Từ quan điểm của người dùng, sẽ tốt hơn nếu giao dịch có thể được gửi bất cứ lúc nào, bất kể máy chủ của người nhận có trực tuyến hay không.
Một điểm yếu khác ít có khả năng xảy ra nhưng nguy hiểm hơn là nếu máy chủ payjoin (tức là máy chủ của người nhận) nằm trên một máy chủ không an toàn, đầu ra của người nhận có thể bị giả mạo trong quá trình hoạt động (trước khi được chuyển lại cho người gửi), dẫn đến hành vi trộm cắp tiền thuộc về người nhận.
Tuy nhiên, như chúng tôi sẽ nói tiếp theo, các giải pháp đã được đề xuất để giải quyết cả hai vấn đề này.
Cuối cùng, một điểm yếu khác của giao thức PayJoin là nó phải đối mặt với một rào cản đối với việc áp dụng, vì các ví phải nỗ lực phát triển để tích hợp nó. Một thách thức cụ thể là giao diện người dùng lý tưởng phải được payjoin theo mặc định. Cả ví của người gửi và ví của người nhận sẽ cố gắng tham gia thanh toán trực tiếp mà không cần phải mở bởi người dùng trong cài đặt quyền riêng tư. Quyền riêng tư tốt nhất là thực hiện quyền riêng tư theo mặc định, bởi vì nếu bạn yêu cầu người dùng thực hiện hành động tích cực, họ có thể không được khuyến khích. Vì vậy, để payjoin được người dùng trung bình chấp nhận, cần phải có trải nghiệm mượt mà mà họ không phải vật lộn để hiểu. Ví phải được bật theo mặc định. Hãy nhớ rằng giao thức đã có phản hồi tích hợp đối với các lỗi payjoin: nó quay trở lại giao dịch thông thường mà không cần sự can thiệp của người dùng thủ công.
Không yêu cầu payjoin phía máy chủ
Dan Gould đã gửi một dự thảo BIP cho phiên bản 2 của payjoins, cho phép payjoin được thực hiện trong cả kịch bản không đồng bộ và không có máy chủ. Payjoin không có máy chủ này sẽ giải quyết vấn đề yêu cầu người nhận trực tuyến khi nhận thanh toán và các vấn đề bảo mật phía máy chủ liên quan. Bởi vì máy chủ người nhận payjoin luôn bật có thể là rào cản lớn nhất đối với việc người dùng chấp nhận payjoin, việc triển khai BIP này có thể mang lại lợi ích đáng kể cho việc áp dụng payjoin cũng như quyền riêng tư thụ động của Bitcoin.
Tình trạng áp dụng Payjoin
Tính đến cuối năm 2023, việc áp dụng PayJoin vẫn còn tương đối thấp, nhưng nó đã tiếp tục phát triển kể từ khi thành lập vào năm 2018. Vì payjoin hiện có sẵn và không yêu cầu bất kỳ thay đổi đồng thuận Bitcoin nào, trở ngại duy nhất là viết một ví hỗ trợ nó; Và các công cụ giúp các nhà phát triển đang cải thiện mỗi ngày. Payjoin Dev Kit (PDK) là một triển khai payjoin mới với các mô-đun mà ví có thể sử dụng để tích hợp payjoins. Nó thậm chí còn bao gồm một công cụ payjoin-cli mà bạn có thể sử dụng dòng lệnh để tạo payjoin. Thư viện này được viết bằng Rust, nhưng các ràng buộc cho phép các ngôn ngữ khác sử dụng nó đang được phát triển.
Hỗ trợ ví
BTCPayServer và JoinMarket đã hỗ trợ gửi và nhận payjoins, mặc dù không phải là mặc định. BlueWallet, Sparrow, Wasabi và BitMask hỗ trợ gửi. Một số ví khác hỗ trợ nó thông qua một plugin, bao gồm Bitcoin Core. Ngoài ra còn có các PR tích cực đang cố gắng tích hợp payjoin trong Mutiny Wallet. Tình trạng nhận con nuôi hiện tại được liệt kê ở đây.
Payjoin và tương lai của Bitcoin
Adam Gibson đã được trích dẫn nói rằng ngay cả khi chỉ có 5% giao dịch trên chuỗi được xây dựng bằng cách sử dụng payjoin, nó có thể có tác động lớn đến quyền riêng tư của Bitcoin. Chúng tôi chỉ cần vượt qua một ngưỡng đủ để một công ty phân tích tự tin giả định rằng họ có thể diễn giải giao dịch một cách chính xác. Một khi các phương pháp theo dõi chúng tôi của họ bị phá vỡ, các hạn chế không khôn ngoan, tùy tiện và độc hại được áp đặt bởi những người không hiểu lợi ích của quyền riêng tư của Bitcoin cũng như không có ý định bảo vệ quyền của chúng tôi sẽ trở nên không liên quan.
Và như chúng ta đã thấy, vì nhiều khả năng mà PayJoin sẽ mang lại, nó không chỉ là một giải pháp bảo mật, nó còn là một giao thức giao dịch hợp tác và có thể mở rộng cho phép sử dụng thú vị như tiết kiệm phí, nhiều kênh sét cho một giao dịch, v.v. Những lợi ích mà nó có thể mang lại cho Bitcoin là vô hạn và chúng có thể được nhận ra ngay bây giờ mà không cần thay đổi chính Bitcoin.
Vậy chúng ta còn chờ gì nữa?
Có
Nếu bạn muốn hỗ trợ hoặc đóng góp cho PayJoin, hãy tham gia Discord, quyên góp cho chúng tôi hoặc tìm hiểu về payjoin.org.