Ý tưởng địa chỉ tàng hình của Vitalik Buterin: Stealth Address
![Avatar](/_next/image?url=https%3A%2F%2Ffiles.amberblocks.com%2Fuserdata%2Fusrd0vymkij0jxqfwd0z1f2kbszl7awe%2Fprofile-pictures%2Ffzlp6g7793o2wq23kw1prduvfahqr2oa%2Fuyen.png&w=3840&q=20)
![thumbnail](https://file.coin98.com/images/stealth-address-eqwRrFPnB01aIfTv.png)
Trong bài blog gần đây của Vitalik Buterin, anh đã phác thảo cách Stealth Address có thể giúp tăng quyền riêng tư (privacy) của người dùng trên Ethereum, sử dụng các thuật toán và công nghệ Zero-Knowledge Proofs (ZKP). Vậy Stealth Address là gì? Cách hoạt động của nó ra sao?
Tại sao cần Stealth Address?
Ethereum là một blockchain công khai. Do đó, quyền riêng tư là một trong những mối quan tâm hàng đầu trên hệ sinh thái này.
Trước đây, nhiều dự án cho phép người dùng ẩn danh khi gửi và nhận token, nổi bật là Tornado Cash. Dự án này cho phép phá vỡ liên kết on-chain, giúp giao dịch được ẩn danh. Tuy nhiên, Tornado Cash chỉ giúp ẩn những giao dịch ETH hay ERC20 token, không thể ẩn những giao dịch khác như NFT, PFP NFT…
Vậy giải pháp nào cho quyền riêng tư trên Ethereum blockchain? Làm sao để tránh những ánh mắt nhòm ngó, phân tích hành động và cuộc sống của người dùng? Đặc biệt trong giao dịch crypto, tên miền ENS, POAPs, NFT, Soulbound token và hơn thế nữa?
Để trả lời câu hỏi này, Stealth Address (địa chỉ tàng hình) đã được Vitalik Buterin - nhà sáng lập Ethereum tìm hiểu và phát triển.
Phương thức hoạt động của Stealth Address
Giả sử Hiếu gửi Linh một loại tài sản (có thể là NFT, token). Khi nhận tài sản, Linh không muốn cả thế giới biết mình là người nhận. Do đó, Linh hoặc Hiếu sẽ tạo một “địa chỉ” mã hóa chứa cách gửi tài sản cho Linh, hay còn gọi là Stealth Address. Cách tiến hành như sau:
![coin98](https://file.coin98.com/images/strealth-address-works-gexf6wKue0T1hYHp.png)
- Linh tạo một khóa chi tiêu (spending key), đồng thời sử dụng địa chỉ này để tạo Stealth Meta-Address (Siêu địa chỉ tàng hình).
- Linh gửi Stealth Meta-Address này cho Hiếu.
- Hiếu thực hiện tính toán trên Stealth Meta-Address và tạo Stealth Address thuộc về Linh.
- Hiếu tạo ra dữ liệu mã hóa on-chain nhằm giúp Linh biết địa chỉ này thuộc về cô ấy.
- Hiếu gửi bất kỳ loại tài sản nào đến Stealth Address này. Linh có toàn quyền kiểm soát tài sản trong địa chỉ trên.
Một cách hiểu khác là Stealth Address cung cấp tính riêng tư tương tự việc Linh tạo địa chỉ mới cho mỗi giao dịch mà không yêu cầu bất kỳ tương tác nào từ Linh.
Điều này được thực hiện thông qua việc áp dụng các thủ thuật mã hóa với 2 thuật toán.
- Thuật toán đầu tiên sử dụng điều bí mật của Hiếu (khóa tạm thời - ephemeral key) và điều công khai của Linh (địa chỉ Stealth Meta-Address).
- Thuật toán thứ hai sử dụng điều bí mật của Linh (khóa chi tiêu - spending key) và điều công khai của Hiếu (khóa công khai tạm thời - ephemeral public key).
Phương pháp trao đổi khóa Diffie-Hellman, một phương pháp thành công trong lĩnh vực mật mã hiện đại, đã thành công trong việc thực hiện 2 thuật toán trên.
Nhằm đảm bảo chỉ có Linh mới có quyền sử dụng tài sản trong Stealth Address, một thuật toán thứ ba đã được hình thành. Thuật toán này cho phép:
- Linh kết hợp hai bí mật chung trong ví dụ trên với spending key gốc của mình.
- Hiếu kết hợp hai bí mật chung trong ví dụ trên với Stealth Meta-Address của Linh.
Như vậy, Hiếu chỉ có thể tạo Stealth Address và Linh có thể tạo khóa chi tiêu cho Stealth Address này. Điều này khiến việc tạo liên kết công khai giữa Stealth Address và Stealth Meta-Address của Linh (hoặc giữa Stealth Address này với Stealth Address khác) là không cần thiết.
Làm sao để thanh toán phí gas giao dịch?
Sau khi nhận được tài sản hoặc NFT từ Stealth Address, làm thế nào để rút tài sản về ví chính khi Stealth Address chứa 0 ETH? Và Linh cũng không thể gửi ETH từ ví chính của mình vì nó sẽ tạo ra liên kết on-chain công khai!
Aggregator có thể là cứu tinh của Linh trong trường hợp này. Các aggregator cho phép Linh mua một bộ "vé" để thanh toán giao dịch. Những “vé” này được mã hóa bằng cách sử dụng sơ đồ làm mù Chaumian (Chaumian blinding scheme).
Tương lai của Stealth Address
Các ví xã hội có thể khôi phục (social recovery wallet) thường là các ví hoạt động với cơ chế nhiều chữ ký (multisig) và có các khóa riêng tư (private key) được chia sẻ giữa một tổ chức, bạn bè hay giữa các thiết bị với nhau. Trong trường hợp mất khóa, người dùng luôn có thể khôi phục tài khoản của mình.
Tuy nhiên, việc khôi phục tài khoản cũng đồng nghĩa với việc thay đổi private key. Người dùng sẽ phải thực hiện các bước thay đổi logic xác minh Stealth Address của mình một cách khó khăn với chi phí cao và độ riêng tư thấp.
Tương tự với các ví Layer-2 đa chuỗi. Nếu người dùng sở hữu tài khoản trên Optimism, Arbitrum, Starknet, Scroll, Polygon… thì việc thay đổi khóa riêng tư có thể trở nên tương đối phức tạp.
Do đó, việc phục hồi Stealth Address là rất phức tạp và tốn kém. Công nghệ Zero-knowledge Proofs (ZKP) có thể hỗ trợ người dùng trong trường hợp này.
ZKP cho phép nhiều tài khoản, thậm chí trên nhiều giao thức Layer 2, được kiểm soát bởi một giá trị trên chain cơ sở hoặc trên một số Layer 2. Việc thay đổi giá trị đó đủ để thay đổi quyền sở hữu tất cả các tài khoản của người dùng mà không tiết lộ liên kết giữa các tài khoản với nhau.
Tổng kết
Stealth Address có thể được triển khai khá nhanh và là một trong những nhân tố thúc đẩy sự phát triển quyền riêng tư trên Ethereum. Dù vậy, chúng vẫn gặp trở ngại trong việc khôi phục tài khoản. Về lâu dài, Stealth Address có thể phát triển thành một hệ sinh thái thực sự và phụ thuộc rất nhiều vào công nghệ Zero-knowledge Proofs.
Tìm hiểu thêm: Ethereum Shanghai upgrade là gì?
Tham khảo bài viết gốc TẠI ĐÂY.