MoneroSwapper MoneroSwapper

RingCT của Monero: giải thích giao dịch bảo mật

MoneroSwapper · · · 25 min read · 12 views

Giải thích về RingCT: cách Monero giấu số tiền trong mỗi giao dịch

Mở bất kỳ trình khám phá khối (block explorer) nào của Bitcoin, bạn đọc được chính xác số tiền của mọi giao dịch từng diễn ra — đến từng satoshi. Gõ một địa chỉ vào, bạn thấy ngay số dư của nó, truy ngược coin đến từ đâu và lần theo chúng đi về đâu. Sự minh bạch đó là chủ đích thiết kế, nhưng cũng là lý do một khoản lương, một khoản quyên góp, hay chỉ một lần nạp tiền bất cẩn có thể làm lộ danh tính của cả một chiếc ví. Monero chọn hướng ngược lại: trên chuỗi của nó, bản thân số tiền bị ẩn đi. Công nghệ làm được điều đó là RingCT — viết tắt của Ring Confidential Transactions, tức "giao dịch bảo mật theo vòng".

RingCT là lý do một giao dịch Monero hiện lên sổ cái công khai dưới dạng một cam kết mật mã (cryptographic commitment) thay vì một con số đọc được. Nó lên mạng chính thức vào tháng 1 năm 2017 và trở thành bắt buộc cho mọi giao dịch ngay trong năm đó. Mỗi đồng XMR bạn gửi qua ví — hay nhận được qua một dịch vụ không cần tài khoản như MoneroSwapper — đều được nó bảo vệ. Bài viết này bóc tách RingCT làm gì, phần toán học cho phép mạng lưới kiểm tra một giao dịch mà không nhìn thấy số tiền, nó đã tiến hóa ra sao qua Bulletproofs và Bulletproofs+, và sẽ đi tiếp đến đâu với FCMP++.

Vì sao việc giấu số tiền lại quan trọng

Quyền riêng tư trên blockchain không phải một tính năng đơn lẻ; đó là ba bài toán phải được giải cùng lúc. Để hở một trong ba, hai cái còn lại sẽ rò rỉ qua đúng cái lỗ đó. Monero tấn công cả ba, và RingCT phụ trách bài toán thứ ba.

  • Ai gửi: do chữ ký vòng (ring signatures) đảm nhận. Nó ký một giao dịch thay mặt cho cả một nhóm người có thể là người chi tiêu, nên người quan sát không thể biết đầu vào nào mới là thật.
  • Ai nhận: do công nghệ địa chỉ tàng hình (stealth address) đảm nhận. Nó sinh ra một địa chỉ dùng-một-lần duy nhất cho mỗi lần thanh toán, nên tiền không bao giờ rơi vào một địa chỉ công khai dùng đi dùng lại.
  • Gửi bao nhiêu: do RingCT đảm nhận. Nó mã hóa số tiền trong một cam kết Pedersen (Pedersen commitment) mà vẫn để mọi node xác nhận được rằng sổ sách cân đối.

Trước khi RingCT ra đời, Monero đã giấu được người gửi và người nhận, nhưng số tiền vẫn nằm phơi dưới dạng văn bản rõ. Để có được chút riêng tư nào đó về số tiền, giao thức buộc các giao dịch phải rơi vào những mệnh giá cố định — kiểu 0,01; 0,1; 1; 10 — giống như bạn trả tiền bằng đúng những tờ và xu sẵn có. Cách làm đó để lộ một lượng thông tin đáng ngạc nhiên. Tập các "mồi nhử" hợp lý cho một đầu ra trị giá 7,3 XMR nhỏ hơn rất nhiều so với tập dành cho một đầu ra đã được ẩn, bởi các mồi nhử buộc phải khớp mệnh giá. Số tiền nhìn thấy được còn cho phép các nhà phân tích liên kết các giao dịch bằng cách truy theo những giá trị bằng nhau trên khắp chuỗi.

Số tiền bảo mật bịt kín lỗ hổng đó. Một khi giá trị đã được mã hóa, mọi đầu ra trông giống hệt nhau về mặt cấu trúc — và đây chính là nền móng của tính thay thế được (fungibility): đặc tính khiến một đơn vị XMR có thể hoán đổi cho bất kỳ đơn vị nào khác, không mang theo lịch sử "bẩn" nào để một sàn hay một người bán có thể từ chối. Điều này ngày càng quan trọng. Sau khi Binance gỡ XMR khỏi sàn vào đầu năm 2024 và vài sàn châu Âu làm theo, lý lẽ cho một đồng tiền mà từng đơn vị không thể bị sàng lọc hay đưa vào danh sách đen chỉ càng thêm vững.

RingCT thực chất là gì và hoạt động ra sao

Nửa "CT" của RingCT — Confidential Transactions — là phần giấu số tiền, và nó dựa trên một mảnh mật mã học gọi là cam kết Pedersen. Nửa "Ring" gắn cơ chế giấu số tiền đó vào hệ thống chữ ký vòng vốn có của Monero, để người gửi cũng giữ được sự ẩn danh. Tách riêng hai ý tưởng ra sẽ dễ hình dung hơn.

Cam kết Pedersen: mã hóa một con số mà vẫn làm toán được

Một cam kết (commitment) là cách "khóa cứng" một giá trị để sau này không thể đổi, mà không tiết lộ giá trị đó là bao nhiêu. Một cam kết Pedersen cho một số tiền có dạng C = xG + aH, trong đó a là số tiền thật, x là một bí mật ngẫu nhiên gọi là hệ số làm mờ (blinding factor), còn GH là hai điểm cố định trên một đường cong elliptic. Chính hệ số làm mờ khiến cam kết trở nên đục: thiếu nó, hai đầu ra có cùng giá trị vẫn tạo ra hai cam kết trông hoàn toàn khác nhau, nên bạn không thể nhận ra chúng bằng nhau.

Tính chất kỳ diệu là các cam kết này có tính cộng được, hay đồng cấu (homomorphic). Cộng tất cả cam kết của các đầu vào trong một giao dịch lại; cộng tất cả cam kết của các đầu ra cộng với phí giao dịch lại; nếu số tiền thật cân nhau, thì hai tổng đó là cam kết cho cùng một tổng giá trị. Người gửi sắp xếp các hệ số làm mờ sao cho "đầu vào trừ đầu ra" bằng đúng một cam kết của số không. Mọi node trên mạng đều kiểm tra được phương trình đó — xác nhận rằng không có coin nào được tạo ra hay bị hủy đi — mà không hề biết bất kỳ con số nào trong giao dịch.

Toàn bộ mánh khóe của RingCT nằm ở chỗ: mạng lưới chứng minh được sổ sách cân đối đến từng satoshi, trong khi về mặt toán học hoàn toàn không thể đọc nổi một dòng nào trong sổ.

Bằng chứng khoảng (range proof): chặn việc đúc coin từ hư không

Sự cân đối kiểu đồng cấu có một lỗ hổng nguy hiểm. Vì số tiền đã bị giấu, một người gửi xấu tính có thể thử cam kết một số tiền âm — mà nhờ số học modulo, số âm này sẽ "cuộn vòng" thành một số dương khổng lồ, cho phép hắn hô biến XMR ra từ không khí. Để ngăn điều này, mỗi đầu ra bảo mật đều đi kèm một bằng chứng khoảng: một bảo đảm mật mã rằng số tiền đã cam kết nằm trong một khoảng hợp lệ — giữa 0 và 2⁶⁴ — mà không tiết lộ nó rơi vào đâu trong khoảng đó.

Bằng chứng khoảng chính là nơi phần lớn kích thước và chi phí của RingCT tập trung, và cũng là nơi diễn ra những cải tiến lớn nhất. Bản triển khai gốc năm 2017 dùng chữ ký vòng Borromean: đúng về mặt logic nhưng cồng kềnh — một giao dịch hai đầu ra điển hình mang theo khoảng 13 KB dữ liệu bằng chứng khoảng, khiến giao dịch Monero nặng và phí tương đối cao. Thay thế cỗ máy này chính là câu chuyện tối ưu hóa xuyên suốt của giao thức kể từ đó.

Sự tiến hóa của RingCT: Bulletproofs, Bulletproofs+ và CLSAG

RingCT không phải một thứ bất biến — nó đã được tái thiết kế nhiều lần qua những đợt hard fork diễn ra khoảng hai lần mỗi năm của Monero, mỗi lần lại nhỏ hơn và nhanh hơn trong khi vẫn giữ nguyên các bảo đảm về quyền riêng tư. Những nâng cấp đáng chú ý nhất:

Nâng cấpKích hoạtThay đổi điều gì
RingCT (Borromean)1/2017, bắt buộc từ 9/2017Lần đầu giấu số tiền nhờ cam kết Pedersen và bằng chứng khoảng Borromean.
Bulletproofs10/2018Thay bằng chứng Borromean; cắt bằng chứng khoảng của giao dịch 2 đầu ra từ ~13 KB xuống ~2,5 KB, giảm tổng kích thước giao dịch ~80% và phí hơn 95%.
CLSAG10/2020Thay chữ ký vòng MLSAG; chữ ký nhỏ hơn ~25% và xác minh nhanh hơn rõ rệt.
Bulletproofs+8/2022Tinh chỉnh Bulletproofs để nhỏ hơn nữa và xác minh nhanh hơn; cùng đợt fork đó nâng kích thước vòng lên 16 và thêm view tag.

Bulletproofs, triển khai trong đợt hard fork tháng 10 năm 2018, là bước ngoặt. Bằng cách chuyển sang một loại bằng chứng khoảng có kích thước logarit, lượng dữ liệu gắn vào mỗi giao dịch sụp xuống, và phí trung vị rơi từ hàng đô-la xuống còn vài phần nghìn của một cent. Đây là thay đổi đơn lẻ chịu trách nhiệm nhiều nhất cho việc Monero rẻ để dùng như hôm nay. Bulletproofs+ vào tháng 8 năm 2022 vắt thêm một biên độ nữa và tăng tốc xác minh — điều này quan trọng vì mỗi node đều phải kiểm tra từng bằng chứng.

Bên phía chữ ký vòng cũng tiến hóa song song. CLSAG (Concise Linkable Spontaneous Anonymous Group signatures) thay cho cấu trúc MLSAG cũ vào tháng 10 năm 2020, làm phần giấu người gửi nhỏ đi khoảng một phần tư và nhanh hơn khi xác minh. Chính đợt fork tháng 8 năm 2022 mang Bulletproofs+ cũng nâng kích thước vòng bắt buộc từ 11 lên 16 — nghĩa là mỗi đầu ra được chi tiêu nay ẩn mình giữa 15 mồi nhử thay vì 10 — và giới thiệu view tag, một tối ưu nhỏ giúp ví bỏ qua phần lớn công việc khi quét chuỗi để tìm tiền đến.

Một giao dịch RingCT được dựng lên thế nào, từng bước một

Xem các mảnh ghép lắp lại với nhau khi ví của bạn gửi XMR sẽ rất hữu ích. Bạn không phải làm gì trong số này cả — ví xử lý hết trong một hai giây — nhưng hiểu trình tự sẽ giải mã được thứ thực sự nằm trên chuỗi.

  1. Chọn đầu vào thật và các mồi nhử. Ví chọn đầu ra bạn đang thực sự chi tiêu và kéo thêm 15 đầu ra thật khác từ chuỗi làm mồi nhử, tạo thành một vòng gồm 16 nguồn hợp lý.
  2. Sinh ra một key image. Một key image duy nhất được tính từ đầu ra thật. Đây là thứ cho phép mạng phát hiện chi tiêu hai lần (double-spend), nhưng lại không thể liên kết ngược về thành viên nào trong vòng đã tạo ra nó.
  3. Tạo các đầu ra tàng hình. Với mỗi người nhận, ví tính một địa chỉ tàng hình dùng-một-lần để khoản thanh toán không thể bị buộc vào địa chỉ công khai của người nhận.
  4. Cam kết số tiền. Mỗi số tiền đầu ra được bọc trong một cam kết Pedersen với một hệ số làm mờ ngẫu nhiên, và các hệ số được cân sao cho "đầu vào trừ đầu ra trừ phí" cam kết về số không.
  5. Đính kèm bằng chứng khoảng. Một bằng chứng khoảng Bulletproofs+ được sinh ra cho mỗi đầu ra, chứng minh số tiền ẩn là không âm và nằm trong khoảng hợp lệ.
  6. Ký bằng CLSAG và phát đi. Chữ ký vòng CLSAG cấp phép cho việc chi tiêu thay mặt cả vòng, rồi giao dịch được chuyển tiếp — lan truyền qua Dandelion++ để che địa chỉ IP gốc trước khi nó chạm vào mempool công khai.

Kết quả rơi xuống blockchain không chứa người gửi đọc được, không người nhận đọc được, không số tiền đọc được — chỉ có các cam kết, các bằng chứng và một vòng những khả năng — vậy mà vẫn được mọi node kiểm chứng đầy đủ.

Giao dịch bảo mật có ý nghĩa thực tế gì với bạn

Phần thưởng thực tế của RingCT là tính thay thế được và khả năng kháng giám sát, và nó hiện ra trong những tình huống rất cụ thể. Hãy hình dung một freelancer được trả công bằng crypto — một kịch bản chẳng xa lạ gì ở Việt Nam, nơi cộng đồng làm việc từ xa cho khách quốc tế đông đảo và tỷ lệ chấp nhận tiền mã hóa thuộc hàng cao nhất thế giới theo các bảng xếp hạng của Chainalysis. Trên một chuỗi minh bạch, mọi khách hàng đều thấy được toàn bộ số dư của ví và mọi khoản thanh toán nó từng nhận; chỉ một địa chỉ bị lộ danh tính là phơi bày tất cả. Trên Monero, khoản tiền đến là một đầu ra tàng hình với số tiền đã được giấu — khách hàng không biết gì ngoài đúng giao dịch họ đã gửi.

Nó cũng thay đổi cách "phân tích chuỗi" (chain analysis) chống lại bạn. Các công ty bán dịch vụ pháp y blockchain xây cả mô hình kinh doanh trên việc gom cụm địa chỉ và truy theo số tiền. RingCT loại bỏ hoàn toàn tín hiệu số tiền, chữ ký vòng làm đục nguồn gốc, còn địa chỉ tàng hình cắt đứt liên kết tới đích đến. Không có số dư nào để tra cứu và không có dòng tiền sạch nào để lần theo — đây đúng là lý do việc truy vết các đồng tiền riêng tư vẫn là một bài toán chưa giải được, chứ không phải một tính năng sản phẩm.

Đây cũng là lý do khâu mua vào quan trọng. Nếu bạn mua XMR trên một sàn bị giám sát chặt, nơi buộc danh tính của bạn vào một đầu ra cụ thể trên chuỗi, thì bạn đã tự tạo một điểm xuất phát đã biết, ngay cả khi bản thân chuỗi vẫn riêng tư. Dùng một dịch vụ hoán đổi như MoneroSwapper — không giữ tài khoản, không đòi giấy tờ tùy thân — sẽ giữ cho bước nhảy đầu tiên đó được sạch, để sự bảo mật RingCT mang lại trên chuỗi không bị một dấu vết giấy tờ ngoài chuỗi phá hỏng. Đây hoàn toàn không phải lời khuyên về thuế — ở Việt Nam, dù chuỗi có riêng tư đến đâu, Tổng cục Thuế vẫn có thể coi việc bán hay chuyển đổi tài sản mã hóa là sự kiện chịu nghĩa vụ kê khai, nhất là khi Luật Công nghiệp công nghệ số có hiệu lực từ đầu năm 2026 đã chính thức ghi nhận tài sản mã hóa. Nhưng nó đồng nghĩa rằng bản thân mạng lưới không phát sóng tình hình tài chính của bạn cho bất kỳ ai có một block explorer.

RingCT đi tiếp đến đâu: FCMP++

Khả năng giấu số tiền của RingCT vững như bàn thạch, nhưng tính ẩn danh người gửi của nó có một trần lý thuyết: một vòng gồm 16 nghĩa là lần chi tiêu thật là một trong 16 ứng viên, và phân tích thống kê thỉnh thoảng vẫn có thể gặm bớt tỷ lệ đó. Câu trả lời của Monero, đang được phát triển tích cực suốt năm 2025 và 2026, là FCMP++ — full-chain membership proofs, tức bằng chứng thành viên trên toàn chuỗi. Thay vì giấu một lần chi tiêu giữa 15 mồi nhử, FCMP++ sẽ giấu nó giữa mọi đầu ra đủ điều kiện từng tồn tại trên chuỗi, mở rộng tập ẩn danh từ 16 lên hàng chục triệu.

Điểm mấu chốt: FCMP++ thay thế thành phần chữ ký vòng, chứ không phải thành phần giao dịch bảo mật. Các cam kết Pedersen và bằng chứng khoảng Bulletproofs+ giấu số tiền vẫn được giữ nguyên; thứ thay đổi là cách chứng minh tư cách thành viên trong tập có thể chi tiêu. Xa hơn nữa, giao thức giao dịch Seraphis và sơ đồ địa chỉ Jamtis được thiết kế để xây trên chính nền móng này. Bài học cho người dùng rất đơn giản: quyền riêng tư về số tiền nhờ RingCT là một phần đã ổn định và trưởng thành của Monero, và giao thức vẫn không ngừng gia cố những phần xung quanh nó.

Câu hỏi thường gặp

RingCT thực chất giấu cái gì?

RingCT giấu số tiền của một giao dịch Monero. Nó mã hóa từng giá trị trong một cam kết Pedersen nên con số không bao giờ được viết dưới dạng văn bản rõ trên blockchain, trong khi vẫn để mọi node xác minh được rằng đầu vào bằng đầu ra cộng phí. Người gửi và người nhận được giấu bởi những cơ chế riêng — chữ ký vòng và địa chỉ tàng hình — mà RingCT phối hợp cùng.

Nếu số tiền bị giấu, mạng lưới chặn coin giả bằng cách nào?

Có hai lớp bảo vệ. Tính đồng cấu của cam kết Pedersen cho phép các node xác nhận rằng đầu vào và đầu ra ẩn cân về số không, nên không giá trị nào bị tạo ra hay hủy đi. Và một bằng chứng khoảng gắn vào mỗi đầu ra bảo đảm số tiền đã cam kết là không âm và nằm trong khoảng hợp lệ, chặn đứng mánh tràn số (overflow) mà các số âm ẩn lẽ ra có thể lợi dụng.

RingCT khác chữ ký vòng (ring signatures) ở chỗ nào?

Chúng giải hai bài toán khác nhau và thường bị nhầm lẫn vì tên gọi trùng chữ "ring". Chữ ký vòng giấu ai gửi giao dịch bằng cách ký thay mặt một nhóm người có thể chi tiêu. RingCT giấu bao nhiêu được gửi bằng các cam kết bảo mật. RingCT tích hợp cả hai để cùng một giao dịch được hưởng cả hai lớp bảo vệ.

Bulletproofs có thay thế RingCT không?

Không. Bulletproofs và Bulletproofs+ là những nâng cấp bên trong RingCT — cụ thể là cho thành phần bằng chứng khoảng. Chúng thay những bằng chứng Borromean cũ kỹ và cồng kềnh, cắt kích thước giao dịch khoảng 80% và phí hơn 90%, nhưng khung RingCT tổng thể cùng cơ chế giấu số tiền của nó vẫn giữ nguyên.

RingCT có bị gỡ bỏ khi FCMP++ ra mắt không?

Không. FCMP++ dự kiến thay chữ ký vòng của Monero bằng bằng chứng thành viên toàn chuỗi, mở rộng mạnh mẽ tập ẩn danh của người gửi. Cỗ máy giấu số tiền — cam kết Pedersen và bằng chứng khoảng Bulletproofs+ — được kỳ vọng giữ nguyên. Nói cách khác, FCMP++ củng cố quyền riêng tư của người gửi mà không xóa bỏ quyền riêng tư về số tiền do RingCT mang lại.

Kết luận

RingCT là cỗ máy âm thầm của quyền riêng tư trên Monero: nó biến mọi số tiền trên chuỗi thành một cam kết mà mạng lưới kiểm chứng được nhưng không ai đọc được, và làm vậy trong khi các bằng chứng khoảng giữ cho nguồn cung trung thực. Kết hợp với chữ ký vòng giấu người gửi và địa chỉ tàng hình giấu người nhận, đây là lý do một đầu ra Monero trông giống hệt mọi đầu ra khác và không thể bị sàng lọc, đưa vào danh sách đen hay truy vết theo giá trị. Qua Bulletproofs, Bulletproofs+ và CLSAG, nó chỉ ngày một rẻ hơn và nhanh hơn, và với FCMP++ đang ló dạng, lớp riêng tư bao quanh nó vẫn tiếp tục dày thêm. Nếu bạn muốn những đồng coin mang sẵn lớp bảo vệ này ngay từ khoảnh khắc bạn sở hữu chúng, bạn có thể mua Monero ẩn danh qua MoneroSwapper và để RingCT lo phần còn lại ngay khi bạn giao dịch.

Chia sẻ bài viết

Bài viết liên quan

Sàn giao dịch Monero ẩn danh

Không KYC • Không đăng ký • Đổi ngay lập tức

Trao đổi ngay