Ring signature là gì: Chữ ký ẩn danh nền tảng của Monero

Ring signature là gì? Đây là một dạng chữ ký số cho phép chứng minh thông điệp đến từ một thành viên nào đó trong một tập hợp, nhưng không thể xác định chính xác thành viên nào đã ký. Kỹ thuật này nằm nền tảng cho cách Monero bảo vệ danh tính người gửi mà vẫn giữ được tính toàn vẹn của hệ thống kế toán công khai. Bài viết này trình bày nguyên lý, các biến thể, và những giới hạn thực tế mà ít người nhắc tới.

Sơ đồ ring signature với các khoá công khai hình thành một vòng quanh người ký

Định nghĩa và nguồn gốc

Ring signature được Ron Rivest, Adi Shamir và Yael Tauman Kalai sáng chế và giới thiệu tại hội nghị ASIACRYPT năm 2001. Tên gọi bắt nguồn từ cấu trúc vòng tròn mà thuật toán tạo ra. Giả định cơ bản là mỗi thành viên trong nhóm đều có một cặp khóa công khai và khóa riêng. Bên thứ i có thể tạo ra một chữ ký trên thông điệp m nếu có khóa riêng của mình cùng toàn bộ khóa công khai của các thành viên khác. Bất kỳ ai cũng kiểm tra được chữ ký đó chỉ với ba thứ: chữ ký, thông điệp, và tập khóa công khai liên quan.

Yêu cầu bảo mật gồm hai điều: một chữ ký được tạo đúng phải vượt qua bước kiểm tra, đồng thời phải bất khả thi về mặt tính toán đối với bất kỳ ai cố tạo một chữ ký hợp lệ mà không có bất kỳ khóa riêng nào trong tập khóa công khai đó. Chính điểm thứ hai làm cho thuật toán trở thành bằng chứng rằng có ai đó trong nhóm đã ký, mà không tiết lộ ai.

Ring signature khác chữ ký nhóm ở hai điểm cơ bản. Không có cách nào thu hồi tính ẩn danh của một chữ ký đã tạo, và bất kỳ tập thành viên nào cũng có thể dùng làm nhóm ký mà không cần thao tác thiết lập trước, không cần người quản trị nhóm, không cần đăng ký thành viên. Hai điều kiện này quyết định toàn bộ ứng dụng thực tế của nó.

Cách tạo chữ ký

Bản chất toán học của thuật toán là một phép toán không thể phân biệt được: người xác minh luôn được kết quả giống hệt nhau, không quan trọng thành viên nào thực sự ký. Vòng khóa công khai được xếp thành chuỗi y_1, y_2, cho tới y_n. Một giá trị khóa bám dính ngẫu nhiên được chọn, giá trị khóa riêng giả được chọn cho từng thành viên khác, và từng bước băm lại trên chuỗi để tạo ra một giá trị bảo mật duy nhất. Người ký chỉ thay thế đúng một mắt xích bằng khóa riêng thật của mình, khiến toàn bộ chuỗi khớp với giá trị bảo mật đã công bố.

Nếu không giữ bí mật của bất kỳ mắt xích nào, thông điệp có thể bị giả mạo. Người xác minh chỉ cần chạy lại chuỗi băm và so kết quả với giá trị bảo mật: khớp nghĩa là chữ ký hợp lệ.

Sơ đồ nguyên lý giao dịch CryptoNote với đầu ra thật trộn lẫn các đầu ra mồi

Ring signature trong Monero

Monero là ví tiền mã hoá phi tập trung xây trên giao thức CryptoNote v2, một khái niệm được trình bày trong white paper năm 2013 của Nicolas van Saberhagen; mạng chính của Monero được đưa vào vận hành năm 2014. Trong Monero, đầu ra giao dịch của người gửi, gọi là các note, được che giấu bằng ring signature: note thật được trộn với một loạt đầu ra mồi lấy từ giao dịch trước đó. Người quan sát blockchain thấy một nhóm đầu ra trông giống hệt nhau, và không có cách nào chỉ ra đầu nào là thật.

Đó mới chỉ là lớp đầu tiên. Từ năm 2017, số tiền trong giao dịch được mã hoá bằng ring confidential transactions, tức kiểu giao dịch vòng bí mật, nghĩa là người xác minh biết tổng tiền được bảo toàn mà không thấy số tiền cụ thể. Song song, Bulletproofs, một phương pháp zero-knowledge proof, chứng minh giao dịch hợp lệ mà không tiết lộ giá trị. Bên nhận được bảo vệ bằng stealth address, tức các khoá công khai do người gửi sinh ra và không thể truy ngược tới người nhận bởi người quan sát mạng. Cuối cùng, giao thức Dandelion++ che địa chỉ IP của thiết bị tạo giao dịch bằng cách truyền giao dịch theo kiểu xác suất trước khi lan toả rộng.

Điểm đáng chú ý về thiết kế: các tính năng riêng tư này được bật mặc định cho toàn mạng, không phải tuỳ chọn. Người dùng có thể tuỳ ý chia sẻ view key cho bên thứ ba kiểm tra, nhưng mặc định thì không ai nhìn thấy số tiền hay đối tác giao dịch. Đây là khác biệt lớn so với Bitcoin, nơi mọi địa chỉ, số dư và chi tiết giao dịch đều công khai và minh bạch.

Các biến thể

Biến thể Khác biệt so với dạng gốc
Threshold ring signature Cần t người cùng hợp tác mới tạo được chữ ký, khác với ngưỡng ký trong chữ ký nhóm
Linkable ring signature Cho phép xác định hai chữ ký có do cùng một khoá riêng tạo ra, dùng cho tiền mặt điện tử ngoại tuyến
Traceable ring signature Công bố khoá công khai của người ký nếu họ phát hành nhiều chữ ký, phục vụ hệ thống bỏ phiếu

Hai biến thể sau minh hoạ rõ sự đánh đổi cốt lõi của ring signature. Tính ẩn danh tuyệt đối là điều kiện cần cho ẩn danh thật sự, nhưng nó cản trở việc chống gian lận. Bằng cách thêm khả năng liên kết hoặc truy vết, hệ thống đổi lấy khả năng phát hiện hành vi lặp hoặc bỏ phiếu nhiều lần, đồng thời chấp nhận mất một phần ẩn danh. Mọi thiết kế thực tế đều phải chọn rõ điểm đứng ở đâu.

Biểu đồ tổng cung Monero theo thời gian với đường cong phần thưởng khối giảm dần

Hiệu quả và giới hạn thực tế

Phần lớn các thuật toán được đề xuất có kích thước chữ ký tăng tuyến tính theo số khoá công khai đầu vào, tức O(n). Nghĩa là chữ ký càng lớn khi vòng càng nhiều thành viên. Với một số lượng thành viên hợp lý thì ổn, nhưng với những số lượng lớn thì kích thước chữ ký trở nên phi thực tế. Đây là lý do các triển khai thật chọn kích thước vòng cố định ở mức vừa phải, cân bằng giữa mức ẩn danh và chi phí lưu trữ trên chuỗi khối.

Việc tăng kích thước vòng làm giảm hiệu quả chọn đúng đầu ra thật của người quan sát, nhưng không loại bỏ hoàn toàn rủi ro phân tích thống kê. Nghiên cứu năm 2017 chỉ ra ba mối đe doạa cụ thể với người dùng Monero: khả năng dựa vào kích thước vòng bằng không kèm số tiền, việc truy vết các giao dịch mà một người gửi cho chính mình để trộn đầu ra, và phân tích theo thời gian có thể làm việc đoán đúng đầu ra trong vòng trở nên dễ dàng hơn tưởng tượng. Một nghiên cứu năm 2018 trình bày các lỗ hổng có thể trong bài An Empirical Analysis of Traceability in the Monero Blockchain.

Cần nói thẳng một điều: tính riêng tư mạnh kéo theo chi phí. Vì không thể chứng minh ai đã gửi, hệ thống khó sử dụng cho các trường hợp cần truy vết, ví dụ kế toán doanh nghiệp hay chứng minh nguồn gốc tài sản. Các nghiên cứu về mặt kỹ thuật cũng chỉ ra rằng tính không thể truy vết của Monero có thể chỉ là đặc tính hiện tại, và sẽ suy giảm khi công nghệ tiến triển. Đó là lý do các chính sách tài chính và giao dịch ngày càng siết chặt với các đồng tiền ưu tiên riêng tư.

Nếu muốn đọc sâu hơn, bài Ring signature trên Wikipedia mô tả chi tiết cơ chế toán học và khả năng chống chọn lọc, còn trang getmonero.org là tài liệu chính thức của dự án. Bạn cũng nên đọc bài về ZK rollup trên chính blog này, vì cả hai đều dựa trên zero-knowledge proof nhưng giải quyết hai bài toán khác nhau: ZK rollup gom nhiều giao dịch lại để tăng tốc, còn ring signature giấu danh tính người ký.

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

SegWit là gì: Tách chữ ký khỏi giao dịch, mở rộng Bitcoin

SegWit là gì? Segregated Witness là một thay đổi định dạng giao dịch trong Bitcoin, được triển khai dưới dạng một đợt soft fork và kích hoạt vào ngày 24…

Xem thêm

Schnorr signature: Chữ ký số nhỏ hơn và nhanh hơn cho Bitcoin

Schnorr signature là lớp chữ ký số hậu kýết họa sinh dựa trên elip, cho phép chữ ký nhỏ hơn, nhanh hơn và xác minh nhanh hơn so với ECDSA…

Xem thêm

Cây băm Merkle: Cách blockchain xác minh dữ liệu toàn vẹn

Cây băm Merkle (tên tiếng Anh là hash tree) là một cấu trúc dữ liệu dạng cây, dùng phổ biến trong mật mã học và khoa học máy tính. Mỗi…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất