Sáng nay tôi đọc về Phoenix và bị kẹt ở một ý nghe gần như quá đơn giản
Nếu ai đó chi tiêu một đầu ra (output) riêng tư, sao không chỉ cần đánh dấu đầu ra đó là đã được chi tiêu
Đó là cách đầu tiên tôi nghĩ hệ thống sẽ hoạt động
Bạn chi tiêu một đầu ra
thì mạng sẽ đánh dấu nó là đã được chi tiêu
việc cố chi tiêu lại sẽ bị từ chối
Đơn giản—nhưng rồi tôi nhận ra có một vấn đề khi làm vậy, vì chính đầu ra đó được cho là vẫn phải được giữ kín
Nếu mạng phải công khai chỉ đúng tới chính xác đầu ra riêng tư đã được chi tiêu, bạn sẽ vô tình tiết lộ thông tin về giao dịch
Vì vậy tôi quay lại phần Phoenix trong whitepaper của Dusk để xem họ xử lý như thế nào
Đó là lúc bộ nullifier xuất hiện
Thay vì chỉ đơn giản công bố đầu ra riêng tư nào đã được chi tiêu, Phoenix tạo ra một giá trị mật mã duy nhất gọi là nullifier
Mạng có thể kiểm tra xem nullifier đó đã xuất hiện chưa
Nếu rồi thì việc chi tiêu sẽ bị từ chối
Nếu chưa thì giao dịch có thể tiếp tục mà không cần tiết lộ trực tiếp đã dùng đầu ra riêng tư nào
Đó là phần lúc đầu tôi đã bỏ sót
Hệ thống vẫn cần một cách để ghi nhớ
giá trị này đã được chi tiêu rồi
Nhưng nó không nhất thiết phải nói rằng
đúng chính đầu ra riêng tư cụ thể đó đã được chi tiêu
Và đó mới là bài toán khó hơn
Bởi vì bây giờ bạn đang cố giải quyết đồng thời hai vấn đề
Ngăn chi tiêu hai lần
Không lộ đầu ra riêng tư đang bị chi tiêu
Đó là lý do tại sao nullifier bắt đầu có ý nghĩa với tôi
Nó không chỉ là một đối tượng mật mã khác nằm trong Phoenix
Mà về cơ bản nó là mối liên kết giữa việc ghi nhớ rằng một thứ đã được chi tiêu và không tiết lộ chính xác đã chi tiêu cái gì
Càng nhìn sâu, tôi càng nhận ra rằng quyền riêng tư không chỉ đơn thuần là che giấu một giao dịch
Đôi khi nó là che giấu mối liên kết giữa một giao dịch và phần trạng thái riêng tư đứng sau nó
#dusk $DUSK @Dusk $BTR $BMT
Nếu ai đó chi tiêu một đầu ra (output) riêng tư, sao không chỉ cần đánh dấu đầu ra đó là đã được chi tiêu
Đó là cách đầu tiên tôi nghĩ hệ thống sẽ hoạt động
Bạn chi tiêu một đầu ra
thì mạng sẽ đánh dấu nó là đã được chi tiêu
việc cố chi tiêu lại sẽ bị từ chối
Đơn giản—nhưng rồi tôi nhận ra có một vấn đề khi làm vậy, vì chính đầu ra đó được cho là vẫn phải được giữ kín
Nếu mạng phải công khai chỉ đúng tới chính xác đầu ra riêng tư đã được chi tiêu, bạn sẽ vô tình tiết lộ thông tin về giao dịch
Vì vậy tôi quay lại phần Phoenix trong whitepaper của Dusk để xem họ xử lý như thế nào
Đó là lúc bộ nullifier xuất hiện
Thay vì chỉ đơn giản công bố đầu ra riêng tư nào đã được chi tiêu, Phoenix tạo ra một giá trị mật mã duy nhất gọi là nullifier
Mạng có thể kiểm tra xem nullifier đó đã xuất hiện chưa
Nếu rồi thì việc chi tiêu sẽ bị từ chối
Nếu chưa thì giao dịch có thể tiếp tục mà không cần tiết lộ trực tiếp đã dùng đầu ra riêng tư nào
Đó là phần lúc đầu tôi đã bỏ sót
Hệ thống vẫn cần một cách để ghi nhớ
giá trị này đã được chi tiêu rồi
Nhưng nó không nhất thiết phải nói rằng
đúng chính đầu ra riêng tư cụ thể đó đã được chi tiêu
Và đó mới là bài toán khó hơn
Bởi vì bây giờ bạn đang cố giải quyết đồng thời hai vấn đề
Ngăn chi tiêu hai lần
Không lộ đầu ra riêng tư đang bị chi tiêu
Đó là lý do tại sao nullifier bắt đầu có ý nghĩa với tôi
Nó không chỉ là một đối tượng mật mã khác nằm trong Phoenix
Mà về cơ bản nó là mối liên kết giữa việc ghi nhớ rằng một thứ đã được chi tiêu và không tiết lộ chính xác đã chi tiêu cái gì
Càng nhìn sâu, tôi càng nhận ra rằng quyền riêng tư không chỉ đơn thuần là che giấu một giao dịch
Đôi khi nó là che giấu mối liên kết giữa một giao dịch và phần trạng thái riêng tư đứng sau nó
#dusk $DUSK @Dusk $BTR $BMT
