Đây là bài 1 trong loạt bài giải thích TomoP, các bạn có thể xem bài mở đầu ở đây
Chế độ ẩn danh trên Tomochain được xây dựng dựa vào giải thuật chữ ký số ẩn danh Zero-knowledge proof — nôm na là việc chứng minh một bài toán nào đó mà không tiết lộ bất kỳ thông tin gì ngoài thông tin rằng bài toán là đúng, ví dụ A sở hữu 2 quả táo, A muốn khoe với B là A sở hữu táo mà không tiết lộ số lượng cụ thể.
TomoP sử dụng ZKP để giải quyết bài toán làm thế nào để một người dùng có thể gửi tiền cho người khác trên TomoChain, mà không hề lộ chi tiết giao dịch bao gồm người gửi, người nhận, và số tiền gửi trong giao dịch.
Mục đích của giao thức TomoP là đem lại tính riêng tư hoá (hiện tại đang được thưc thi bởi các công ty tài chính truyền thống) trong khi vẫn đảm bảo tính đúng đắn và mình bạch của giao dịch blockchain.
Để giải quyết bài toán này, TomoP sử dụng những công nghệ sau:
- TomoZ: một giao thức cho phép người dùng gửi token và tính fee dựa trên token, người dùng không cần phải giữ native token. Phí trong giao dịch được contract creator trả (gasPrice luôn là 0.25 Gwei). Điều này có nghĩa là nếu contract để minfee là 0 ta hoàn toàn có thể dùng bất cứ privatekey nào để ký giao dịch. Với đặc điểm này TomoZ có thể ẩn danh hoàn toàn người gửi. Tất nhiên để chống spam, TomoP validate quyền sử hữu các UTXOs của user trong mỗi giao dịch. TomoZ mang lại điểm khác biệt giữa TomoP và các giải pháp giao dịch riêng tư hóa trên Ethereum phải sử dụng relayer để ký hộ, relayer vẫn biết được thông tin balance, địa chỉ của bạn.
- Stealth Address : công nghệ ẩn danh người nhận - một kỹ thuật sử dụng Elliptic Curve Cryptography (ECC) mà người gửi sử dụng privacy address của người nhận và sinh ra một one-time-address (OTA) thỏa mãn:
- Không có liên kết tới địa chỉ của người nhận ( unlinkable ).
- Unique.
- Chỉ người nhận tiêu được balance trong OTA dựa vào private spend key.
-
Ring Confidental Transaction protocol (RingCT): Công nghệ ẩn danh người gửi và chống double-spending.
-
Bulletproofs: công nghệ ẩn chứng minh tính đúng đắn của giao dịch - short non-interactive zero-knowledge proofs . Cụ thể là TomoP sử dụng để xác thực số tiền trong các giao dịch luôn dương và nhỏ hơn số token lớn nhất có thể issue ra.
Trong TomoP có 3 flows chính được miêu tả trong hình ảnh sau
- Deposit : Đổi token sang privacy token
Khi người dùng deposit vào hệ thống, TomoP sẽ check proof validadity có tương ứng với số lượng token mà mà người dùng deposit vào hay không và tạo ra UTXOs với value tương ứng. Chú ý là giao dịch này không hề ẩn danh.
- PrivateSend : Gửi tiền ẩn danh
Trong giao dịch chuyển tiền ẩn danh, người dùng chọn tiêu UTXOs mình đang có (ở mức high-level người dùng phải chọn số tiền nào muốn gửi). Ví sẽ tạo ra các proofs tương ứng, người gửi sử dụng RingCT (ẩn việc tiêu UTXOs nào) và BulletProof(chứng minh tính validity của số tiền người dùng gửi) và tạo ra các OTA mà chỉ người nhận mới decrypt được thông tin balance.
TomoP sẽ đánh dấu các UTXOs nào được tiêu (đại diện là thông tin KeyImage) và tạo ra thông tin UTXOs của người nhận tương ứng sau khi validate các proof.
- Withdraw : Rút TomoP token
Giao dịch rút cũng tương tự như giao dịch chuyển tiền ẩn danh, chỉ khác là thông tin người nhận và proof của UTXOs nào bị rút sẽ có giá trị có thể nhìn thấy trên chain. Thông tin người gửi tin vẫn bị ẩn. Chúng ta sẽ đi sau vào thông tin chi tiết giao dịch ở các bài sau.
Bài tiếp theo chúng ta sẽ review lại một số kiến thức về cryptography và kỹ thuật Stealth Address, một trong những kỹ thuật quan trọng nhất cấu thành giao thức TomoP.
Until next time!