
Sức mạnh của bằng chứng không kiến thức: Đổi mới thúc đẩy quyền riêng tư trong thế giới phi tập trung
Tuyển chọn TechFlowTuyển chọn TechFlow

Sức mạnh của bằng chứng không kiến thức: Đổi mới thúc đẩy quyền riêng tư trong thế giới phi tập trung
Chúng ta mới chỉ nhìn thấy phần nhỏ trong tiềm năng của công nghệ ZK, khả năng thực sự của nó còn chưa được khai thác triệt để.
Tác giả: Salus
1. Mở đầu
Công nghệ bằng chứng không kiến thức (Zero-Knowledge, viết tắt là ZK) có thể giải quyết các vấn đề về quyền riêng tư và bảo mật trong thế giới phi tập trung. Bài viết này thông qua bốn ví dụ cụ thể là DEX, Oracle, bỏ phiếu và đấu giá để minh họa vai trò then chốt của công nghệ ZK. Công nghệ ZK được sử dụng nhằm đảm bảo các giao dịch trên DEX vừa có thể xác minh được, đồng thời vẫn bảo vệ quyền riêng tư của người dùng, che giấu danh tính hoặc các chi tiết giao dịch khác. Dựa trên công nghệ ZK, có thể đảm bảo tính chính xác của dữ liệu lấy từ oracle, ngăn chặn việc dữ liệu bị thay đổi trong quá trình truyền tải hoặc xử lý. Trong các dự án bỏ phiếu trên blockchain, những cử tri đủ điều kiện có thể bỏ phiếu dưới dạng ẩn danh, thông tin bầu cử được bảo vệ khỏi việc bị sửa đổi trước đó – đây cũng là vấn đề mà công nghệ ZK có thể giải quyết. Công nghệ này cũng có thể cung cấp chức năng bảo vệ quyền riêng tư danh tính cho người tham gia đấu giá trong các dự án đấu giá trên blockchain, đồng thời giải quyết vấn đề đặt giá thầu giả.
2. Các rủi ro về quyền riêng tư trong thế giới phi tập trung
Blockchain không có bí mật nào cả, mọi thông tin đều nằm trong tầm nhìn công cộng, điều này khiến nó thiếu hụt về mặt bảo vệ quyền riêng tư. Ngoài ra, hoạt động của nhiều hợp đồng thông minh phụ thuộc vào dữ liệu bên ngoài chuỗi, điều này mang lại những rủi ro an toàn bổ sung. Phần tiếp theo, chúng tôi sẽ thảo luận chi tiết về các vấn đề an ninh và rủi ro tiềm tàng do hai đặc điểm trên gây ra.
Vấn đề an toàn phát sinh từ tính minh bạch của blockchain
Tính minh bạch của blockchain đảm bảo khả năng truy xuất nguồn gốc giao dịch, nhưng đồng thời cũng dẫn đến các vấn đề về bảo mật. Ví dụ như rủi ro rò rỉ thông tin cá nhân và hiện tượng giao dịch "chạy trước" (front-running) trong DeFi.
Rò rỉ thông tin riêng tư: Bằng cách sử dụng các phương pháp như đánh dấu địa chỉ, khớp IP giao dịch và dò tìm nút phát tán, có thể dễ dàng liên kết địa chỉ trên chuỗi với danh tính thực tế ngoài đời. Những phân tích này không chỉ tiết lộ danh tính người dùng mà còn phơi bày mô hình hành vi và chiến lược đầu tư của họ. Ví dụ, tần suất giao dịch cao hoặc các hoạt động giao dịch loại cụ thể tại một địa chỉ nào đó có thể tiết lộ sở thích hoặc thói quen đầu tư của người dùng; những thông tin này thường bị lợi dụng sai mục đích để giành lợi thế cạnh tranh.
Giao dịch chạy trước (Front-running): Tin tặc có thể tận dụng tính minh bạch của blockchain để theo dõi hàng đợi các giao dịch đang chờ xác nhận. Bằng cách phân tích các giao dịch chưa xử lý, chúng có thể thiết lập mức phí giao dịch cao hơn để lôi kéo thợ đào ưu tiên xử lý giao dịch của mình. Như vậy, tin tặc có thể thực hiện giao dịch trước người dùng khác, chiếm lợi thế tiên phong để thu lợi cho bản thân. Hành vi này không chỉ bóp méo tính công bằng trong quy trình giao dịch mà còn dẫn đến thao túng thị trường và gây bất lợi cho người dùng khác.
Do đó, thiết kế và triển khai các giao thức DeFi cần xem xét đầy đủ các mối đe dọa bảo mật tiềm tàng này. Chúng ta nên cân nhắc áp dụng thêm các biện pháp bảo vệ quyền riêng tư nhằm bảo vệ người dùng khỏi nguy cơ rò rỉ thông tin và phân tích hành vi giao dịch.
Rủi ro an toàn khi blockchain lấy dữ liệu bên ngoài chuỗi
Trên blockchain, hợp đồng thông minh không thể trực tiếp lấy dữ liệu bên ngoài chuỗi, mà chỉ có thể truy cập dữ liệu giao dịch hoặc trạng thái hợp đồng khác trên blockchain. Hợp đồng thông minh là chương trình tự động thực thi trên blockchain, kết quả thực thi của nó phải nhất quán trên tất cả các nút, nghĩa là với cùng một đầu vào thì kết quả thực thi phải hoàn toàn giống nhau. Vì dữ liệu bên ngoài chuỗi có thể thay đổi, nếu hợp đồng thông minh trực tiếp lấy dữ liệu bên ngoài chuỗi, các nút khác nhau khi thực thi cùng một hợp đồng có thể đưa ra kết quả khác nhau, điều này phá vỡ tính nhất quán của blockchain.
Tuy nhiên, trong nhiều trường hợp, hợp đồng thông minh cần dựa vào dữ liệu bên ngoài chuỗi. Ví dụ, một DEX cần lấy giá mới nhất của một cổ phiếu hoặc tiền mã hóa nhất định. Những dữ liệu giá này thường phải được lấy từ thị trường tài chính bên ngoài hoặc các sàn giao dịch khác. Hệ thống blockchain thường sử dụng oracle để lấy dữ liệu bên ngoài chuỗi. Khi hợp đồng thông minh cần dữ liệu bên ngoài chuỗi, nó có thể yêu cầu oracle, sau đó oracle sẽ thu thập dữ liệu bên ngoài chuỗi và trả về cho hợp đồng thông minh. Ngoài ra, oracle cũng có thể truyền dữ liệu từ trên chuỗi xuống bên ngoài.
Tuy nhiên, việc đưa oracle vào cũng tạo ra những rủi ro an toàn mới — trong một số tình huống, oracle có thể cung cấp dữ liệu không chính xác do lỗi hoặc hành vi ác ý. Do đó, thiết kế và triển khai oracle cần đặc biệt chú trọng đến yếu tố bảo mật.
Các dự án blockchain liên quan đến bỏ phiếu và đấu giá cũng cần xem xét các biện pháp bảo vệ an toàn đặc biệt. Công nghệ blockchain mang lại đặc tính minh bạch và không thể thay đổi cho nền tảng bỏ phiếu. Tuy nhiên, việc sàng lọc cử tri đủ điều kiện, đảm bảo cử tri bỏ phiếu ẩn danh và ngăn chặn thông tin bầu cử bị sửa đổi trước đã trở thành những thách thức mới. Vấn đề cốt lõi trong đấu giá trên chuỗi là đặt giá thầu giả và tài khoản bị phơi bày. Khi bạn có thể nhìn thấu số vốn của đối phương, bạn sẽ có lợi thế tiên phong.
3. Đổi mới ứng dụng thúc đẩy bởi quyền riêng tư
3.1 DEX Riêng tư dùng ZK
Tính minh bạch của blockchain đã tạo ra thách thức về quyền riêng tư cho nhiều dự án trong lĩnh vực DeFi. Trước thách thức này, Salus sẽ lấy ví dụ DEXs để thảo luận về vai trò then chốt của công nghệ ZK trong việc tăng cường bảo vệ quyền riêng tư cho DEXs.
Giả sử tồn tại một DEX riêng tư (private DEX) có chức năng bảo vệ quyền riêng tư. Bằng cách sử dụng công nghệ ZK, hệ thống có thể ẩn đi một phần nội dung thông tin giao dịch, đồng thời vẫn xác minh được tính hợp lệ của các giao dịch đó. Trên DEX này, chỉ một phần thông tin giao dịch được công khai, ví dụ như tất cả người dùng đã đăng ký, tài khoản ngân hàng của họ, tên tài sản gửi/rút và số lượng, như trong Hình 1. Bản thân người giao dịch biết toàn bộ thông tin giao dịch của mình, nhưng các người giao dịch khác không thể xem toàn bộ thông tin giao dịch của người khác. Dưới đây, ta sẽ lấy năm sự kiện giao dịch cụ thể làm ví dụ:

Hình 1: DEX riêng tư chỉ biết một phần thông tin công khai, Nguồn ảnh https://arxiv.org/pdf/2309.01667.pdf
Giả sử có năm giao dịch xảy ra trên nền tảng private DEX này, thông tin tương ứng của từng sự kiện là:
-
Alice gửi vào nền tảng 1000 USD.
-
Bob gửi vào nền tảng 10 BTC, lúc đó giá BTC là 1000 USD.
-
Alice thực hiện giao dịch trên nền tảng, đổi 800 USD sang 0.5 BTC, lúc đó giá BTC là 1600 USD.
-
Alice rút 0.3 BTC từ nền tảng, lúc đó giá BTC là 2000 USD.
-
Nền tảng ghi nhận tổng chi và tổng thu của Alice lần lượt là 480 USD và 600 USD.
Nền tảng private DEX này dựa trên công nghệ ZK để đạt được chức năng bảo vệ quyền riêng tư, trong đó thông tin giao dịch đầy đủ chỉ hiển thị cho người tham gia giao dịch. Nền tảng sẽ không công bố toàn bộ thông tin sự kiện giao dịch, mà cung cấp thông tin sự kiện ở dạng riêng tư. Tiếp theo, chúng ta sẽ giải thích chi tiết "thông tin sự kiện riêng tư" là gì và cách xác minh như thế nào:
-
Khi gửi 1000 USD, tài khoản ngân hàng sẽ hiển thị danh tính của Alice. Sau đó, Alice nhận được một chứng từ tài sản hoặc chữ ký do nền tảng tạo ra. Để ngăn chặn việc thanh toán kép và đảm bảo tuân thủ, thông điệp chữ ký phải chứa các thuộc tính bổ sung ngoài chi tiết tài sản. Những thuộc tính này bao gồm một định danh tài sản duy nhất, tức là định danh người dùng của Alice. Thông tin này nên được ẩn đi để giữ tính ẩn danh cho người dùng. Alice được yêu cầu sử dụng công nghệ ZK để chứng minh rằng định danh người dùng đã được làm mờ (the blinded user identifier) bằng với chứng từ đăng ký (registration credential) của cô ấy. Để đáp ứng yêu cầu báo cáo thuế - tuân thủ khách hàng (tax-report-client-compliance), lợi nhuận từ việc bán tài sản và giao dịch rút tiền cần được tính toán. Điều này đòi hỏi phải bao gồm giá mua chính xác tại thời điểm mua tài sản trong các giao dịch gửi tiền và giao dịch. Vì vậy, chúng tôi đưa vào giá mua làm thuộc tính bổ sung trong chứng từ tài sản.
-
Khi Bob gửi 10 BTC, nền tảng không biết danh tính của Bob vì đây không phải là khoản gửi tiền pháp định.
-
Khi Alice đổi 800 USD lấy 0.5 BTC, cô ấy sử dụng chứng từ tài sản 1000 USD để yêu cầu hai chứng từ mới: 200 USD còn lại và 0.5 BTC, đồng thời giữ kín chi tiết. Nền tảng phê duyệt yêu cầu của cô ấy trong điều kiện nhất định, bao gồm chứng minh bằng công nghệ ZK rằng cô ấy có đủ đô la Mỹ, đảm bảo các chứng từ chia sẻ cùng một định danh người dùng, xác nhận số dư đô la Mỹ còn lại là không âm, khớp giá BTC với chứng từ mới nhất và xác minh tổng giá trị giao dịch tương đương.
-
Khi rút 0.3 BTC, tương tự thao tác giao dịch, ngoại trừ tài sản được trao đổi. Alice cũng xác minh biên lai rút BTC trên blockchain.
-
Khi tổng chi là 480 và tổng thu là 600, Alice hiển thị một chứng từ đăng ký hợp lệ kèm theo danh tính của mình, yêu cầu một chứng từ đăng ký cập nhật với chỉ số mới, đặt lại chi và thu về 0, đồng thời nhận một chứng từ hồ sơ để trình cho cơ quan quản lý. Chứng từ hồ sơ này chứa danh tính thật của Alice, chi 480 và thu 600 chính xác, cùng một số thông tin hỗ trợ quản lý. Vì chi và thu bị nền tảng ẩn đi để tránh rò rỉ thông tin, Alice cần chứng minh rằng số chi và thu đã cam kết bằng với giá trị trong chứng từ đăng ký của cô ấy, nền tảng sẽ ký mù (sign blindly). Alice gỡ bỏ chữ ký mù và nộp cặp thông điệp-chữ ký cho cơ quan quản lý để báo cáo thuế.
3.2 zkOracle
Giả sử tồn tại một hợp đồng thông minh bảo hiểm nông nghiệp dựa trên blockchain, hợp đồng này dựa trên dữ liệu thời tiết do oracle cung cấp để quyết định có hay không chi trả bồi thường cho chủ trang trại đã tham gia bảo hiểm. Ví dụ, nếu một khu vực xảy ra hạn hán nghiêm trọng, chủ trang trại ở khu vực đó sẽ nhận được bồi thường từ hợp đồng bảo hiểm này.
Tuy nhiên, nếu oracle do một số nguyên nhân báo cáo sai tình trạng thời tiết của khu vực, ví dụ thực tế khu vực đang chịu hạn hán nghiêm trọng nhưng oracle lại báo lượng mưa bình thường, thông tin sai lệch này sẽ khiến hợp đồng thông minh đưa ra quyết định sai, từ đó từ chối chi trả bồi thường cho những chủ trang trại thực tế đang gặp khó khăn do hạn hán.
Từ ví dụ trên có thể thấy, việc đảm bảo tính chính xác của dữ liệu do oracle cung cấp là cực kỳ quan trọng.zkOracle là oracle dựa trên công nghệ ZK, một oracle đáng tin cậy và an toàn. Dưới đây, chúng tôi sẽ giới thiệu cụ thể sự khác biệt giữa oracle truyền thống và zkOracle, đồng thời giải thích lý do tại sao công nghệ ZK đóng vai trò then chốt.
Oracle truyền thống có thể được chia thành ba loại khác nhau, chúng tôi sẽ trình bày và so sánh sự khác biệt giữa mỗi loại oracle theo bốn khía cạnh sau:

Trong bài viết này, chúng tôi tập trung thảo luận về Output Oracle và I/O Oracle. Dữ liệu của hai loại oracle này đều bắt nguồn từ blockchain, có nghĩa là dữ liệu đã được xác thực và bảo vệ bởi blockchain. Vấn đề trọng tâm chúng tôi thảo luận là làm thế nào để đảm bảo tính an toàn trong quá trình tính toán và truyền tải của oracle.
Để xây dựng một oracle an toàn, chúng ta có thể cải tiến output oracle và I/O oracle bằng công nghệ ZK, từ đó tạo ra output zkOracle và I/O zkOracle. Phần tiếp theo sẽ so sánh quy trình hoạt động của oracle truyền thống, output zkOracle và I/O zkOracle, đồng thời làm rõ các cải tiến ZK trên output zkOracle và I/O zkOracle.
1. Oracle Truyền thống
Quy trình hoạt động của oracle truyền thống như trong Hình 2:
Bước ①: Lấy dữ liệu từ nguồn dữ liệu
Bước ②: Thực hiện tính toán trên dữ liệu tại thành phần computation
Bước ③: Xuất kết quả tính toán

Hình 2: Oracle Truyền thống
Có thể sử dụng công nghệ ZK để cải tiến bước ② và ③ trong quy trình oracle truyền thống, bước ① giữ nguyên:
2. Output zkOracle
Bước ② - Cải tiến ZK: Tính toán và tạo bằng chứng ZK
Thành phần tính toán sử dụng công nghệ ZK để xử lý dữ liệu lấy từ nguồn, thường là sắp xếp, tổng hợp và lọc dữ liệu, kết quả là một bằng chứng ZK. Việc này giúp tính toán và đầu ra có thể xác minh được.
Bước ③ - Cải tiến ZK: Xác minh bằng chứng ZK
Bằng chứng ZK được tạo ra ở bước ② có thể được xác minh trong hợp đồng thông minh hoặc bất kỳ môi trường nào khác. Qua đó có thể xác nhận tính hợp lệ của phép tính ở bước ②.

Hình 3: Output zkOracle
3. I/O zkOracle
Bước ② - Cải tiến ZK: Tính toán và tạo bằng chứng ZK
Thành phần tính toán của I/O zkOracle bao gồm output zkOracle và input zkOracle. So với output zkOracle trước đó, I/O zkOracle thực hiện nhiều nội dung tính toán hơn, cụ thể là input zkOracle liên quan đến việc thiết lập kết quả tính toán bên ngoài chuỗi làm calldata cho lời gọi hợp đồng thông minh. Sự kết hợp này khiến việc sử dụng các phép tính phức tạp bên ngoài chuỗi để tự động hóa hoạt động hợp đồng thông minh trở nên khả thi.
Bước ③ - Cải tiến ZK: Xác minh bằng chứng ZK
Đầu ra của bước tính toán ② bao gồm dữ liệu trên chuỗi (làm calldata để thực hiện lời gọi hợp đồng thông minh) và một bằng chứng ZK có thể xác minh. Bằng chứng ZK này có thể được xác minh trong hợp đồng thông minh hoặc bất kỳ môi trường nào khác. Việc xác minh có thể xác nhận tính hợp lệ của phép tính ở bước ②.

Hình 4: I/O zkOracle
3.3 Bỏ phiếu ẩn danh
Các hoạt động bỏ phiếu trên blockchain đều công khai thông tin, điều này khiến thông tin riêng tư của người bỏ phiếu có thể bị kẻ tấn công tiềm năng thu thập. Các dự án bỏ phiếu dựa trên blockchain đang đối mặt với hai thách thức lớn:
-
Quyền riêng tư danh tính cử tri: Cần đảm bảo quyền riêng tư cho người bỏ phiếu, tức là phải bỏ phiếu dưới danh tính ẩn danh.
-
Khả năng kiểm chứng kết quả bỏ phiếu: Ngăn chặn việc dữ liệu bầu cử bị thay đổi, cần thiết kế một cơ chế để đảm bảo tính xác thực của kết quả bầu cử có thể được xác minh.
Trong các dự án bỏ phiếu dựa trên blockchain, làm thế nào vừa bảo vệ quyền riêng tư danh tính cử tri, vừa đảm bảo khả năng kiểm chứng kết quả bỏ phiếu là một vấn đề cần xử lý khéo léo. Sử dụng công nghệ ZK có thể hiệu quả đạt được sự cân bằng giữa hai yếu tố này.
Trong dự ánbỏ phiếu ẩn danh trên blockchain, kết hợp công nghệ ZK và merkle tree để thực hiện bỏ phiếu ẩn danh và xác minh. Chúng tôi chia quy trình bỏ phiếu thành ba giai đoạn chính:
1. Sử dụng phương pháp băm và chữ ký để tạo danh tính ẩn danh cho cử tri
Trước khi bỏ phiếu, cử tri cần sử dụng thông tin danh tính thật để xác nhận tư cách và xác thực danh tính. Sau khi vượt qua xác thực, họ sẽ nhận được một danh tính ẩn danh (anonymous identity) không liên quan đến danh tính thật. Cử tri bỏ phiếu dưới danh tính ẩn danh này để bảo vệ thông tin cá nhân không bị rò rỉ.
2. Xác minh danh tính ẩn danh của cử tri dựa trên công nghệ ZK và merkle tree
Trước khi cử tri sử dụng danh tính ẩn danh để bỏ phiếu, cần xác minh danh tính ẩn danh đó, chỉ những cử tri vượt qua xác minh mới được phép bỏ phiếu.
Sử dụng mộtcây Merkleđể lưu trữ danh tính ẩn danh của tất cả cử tri, nhằm chống thay đổi và đảm bảo tính toàn vẹn thông tin danh tính cử tri.
Sử dụng cam kết danh tính do thông tin danh tính ẩn danh của cử tri tạo ra làm nút lá, từ một số lượng nút lá nhất định để xây dựng cây Merkle. Sử dụng một mạch xác minh dựa trên cây Merkle để xác minh danh tính cử tri. Việc xác minh cần ba loại dữ liệu:
-
Cam kết danh tính của cử tri hiện tại, gọi là nút mục tiêu đầu vào (input target node).
-
Nút gốc của cây Merkle (root node).
-
Chỉ số đường dẫn từ nút mục tiêu đến nút gốc (path index). Chỉ số đường dẫn biểu thị vị trí của nút mục tiêu trong cây Merkle, biểu diễn bằng trái là 0, phải là 1.
Trong quá trình tạo nút gốc từ nút mục tiêu và chỉ số đường dẫn, sử dụng cam kết danh tính do nút anh em và thông tin người dùng tạo ra để xác định danh tính người dùng. Để đảm bảo tính duy nhất của lá phiếu, chúng tôi sử dụng định danh đã băm và định danh bên ngoài làm bằng chứng bỏ phiếu.
3. Bỏ phiếu và xác minh
Giai đoạn này có thể chia thành sáu bước như trong Hình 5:
-
Xác định vấn đề: Chèn danh tính ẩn danh của cử tri vào cây Merkle và thực hiện xác minh.
-
Chuyển đổi tương đương: Chuyển đổi tuần tự vấn đề thành mạch ZK bậc thấp (low-order circuit), cấu trúc R1CS (rank-1 constraint system) và bài toán QAP (quadratic arithmetic program), để tạo quá trình sinh khóa chứng minh và xác minh.
-
Tạo tham số công khai: Để đảm bảo an toàn hệ thống ZK, cần một thiết lập đáng tin cậy để tạo chuỗi công khai dùng để sinh và xác minh bằng chứng.
-
Tạo bằng chứng ZK: Có thể sử dụng mạch ZK để tạo bằng chứng ZK cho cử tri. Để tạo bằng chứng này, cần dùng thông tin danh tính ẩn danh và thông tin bỏ phiếu làm đầu vào cho mạch ZK, bước này thường được thực hiện bên ngoài chuỗi. Sau đó, bằng chứng ZK được tạo ra sẽ được tải lên blockchain.
-
Xác minh bằng chứng ZK: Xác minh bằng chứng trên chuỗi, tức là xác minh tính hợp lệ của lá phiếu, hay nói cách khác là xác minh lá phiếu của cử tri có thỏa mãn hệ thống ràng buộc của mạch hay không. Nếu xác minh thành công thì trả về 1, ngược lại trả về 0.
-
Hợp đồng bỏ phiếu (Voting contract): Hợp đồng bỏ phiếu xác minh kết quả dựa trên hợp đồng xác minh được triển khai và khóa xác minh. Trong quá trình người dùng tương tác với hợp đồng, việc tạo và xác minh bằng chứng ZK đều được tính toán dựa trên mạch ZK, nhờ đó có thể bảo vệ tốt thông tin danh tính cử tri.

Hình 5: Quy trình xác minh bỏ phiếu
Dựa trên đó, chúng ta có thể xây dựng một dự án bỏ phiếu ẩn danh trên blockchain.
3.4 Đấu giá riêng tư
Đấu giá công khai trên blockchain có một điểm yếu. Do mọi giao dịch trên blockchain đều công khai, bất kỳ ai cũng có thể quan sát giá thầu và tình trạng tài chính của người đấu giá. Nếu một người đấu giá biết được giá thầu của người khác, hoặc biết được danh tính của người khác, anh ta có thể dựa vào thông tin giao dịch công khai trên blockchain để biết số vốn khả dụng của tài khoản đó. Người đấu giá này có thể điều chỉnh giá thầu của mình dựa trên giá thầu hoặc vốn khả dụng của người khác để giành chiến thắng trong cuộc đấu giá. Đấu giá blockchain công khai đang đối mặt với thách thức về việc lộ danh tính người đấu giá và phơi bày tài chính. Đấu giá riêng tư có thể ngăn chặn hiện tượng bất công này xảy ra.
Trong đấu giá riêng tư, người tham gia có thể gửi giá thầu mà không tiết lộ danh tính hay số vốn khả dụng. Để thực hiện đấu giá riêng tư, cần vượt qua hai thách thức lớn.
-
Bảo vệ danh tính người mua: Danh tính tài khoản người mua cần được bảo mật, vì tiết lộ tài khoản đồng nghĩa với việc tiết lộ số vốn khả dụng của họ trong cuộc đấu giá.
-
Bảo vệ lợi ích người bán: Cuộc đấu giá cần ngăn chặn người tham gia đấu giá độc hại (người mua) đặt giá thầu vượt quá số vốn khả dụng của họ.
Sử dụng công nghệ ZK để bảo vệ quyền riêng tư danh tính người tham gia đấu giá, đồng thời có thể xác minh rằng họ sở hữu số vốn khả dụng để đặt giá thầu.
Trong đấu giá riêng tư, mỗi người tham gia đấu giá cần hai địa chỉ tài khoản:
-
Tài khoản thế chân công khai (Public staking account): Dùng để chuyển trước phí tham gia đấu giá;
-
Tài khoản riêng tư (Private account): Tài khoản này nắm giữ số tiền thực tế mà người đấu giá dùng để thanh toán giá trúng thầu. Nói cách khác, nếu người đấu giá trúng thầu, tiền trong tài khoản này sẽ được dùng để thanh toán giá trúng.
Hai địa chỉ tài khoản này hoàn toàn không liên quan, người khác không thể xác định giá thầu cao nhất dưới tài khoản riêng tư qua giao dịch tài khoản thế chân của người đấu giá.
Quy trình đấu giá riêng tư như sau:
1. Xác minh địa chỉ tài khoản và vốn khả dụng dựa trên công nghệ ZK
Mỗi người tham gia đấu giá sẽ gửi trước giá trị băm của địa chỉ tài khoản và giá trị băm của vốn khả dụng vào cây Merkle. Dựa trên công nghệ ZK để xác minh rằng người dùng thực sự sở hữu tài khoản đó, tức là ảnh gốc (dữ liệu ban đầu) của giá trị băm khớp với địa chỉ tài khoản và vốn khả dụng.
2. Xác minh tài khoản để ngăn nâng giá nhân tạo
Trước khi người đấu giá nộp giá thầu, hợp đồng đấu giá riêng tư có thể kiểm tra tài khoản của người đấu giá trước đó. Để ngăn một tài khoản tự nâng giá, người đấu giá trước đó không được trùng với người đấu giá hiện tại. Mặc dù thiết lập này không thể hoàn toàn ngăn một người kiểm soát đồng thời hai tài khoản thế chân và hai tài khoản riêng tư, tuy nhiên cần lưu ý rằng sở hữu hai tài khoản đồng nghĩa với việc số vốn trong mỗi tài khoản sẽ giảm. Điều này làm giảm thêm cơ hội chiến thắng, vì sau khi vốn đã được thế chân vào cây Merkle thì sẽ không thể chuyển sang tài khoản riêng tư nữa.
3. Xác minh vốn khả dụng của người đấu giá có cao hơn giá thầu dựa trên công nghệ ZK
Sử dụng mạch so sánh (comparator circuit) để xác minh vốn khả dụng của người đấu giá có cao hơn giá thầu hay không, chủ yếu xác minh các nội dung sau:
-
So sánh vốn khả dụng và giá thầu của người đấu giá. Nếu kết quả trả về từ mạch ZK của bộ so sánh là true, cho thấy vốn khả dụng của người đấu giá bằng hoặc cao hơn giá thầu, tức là giá thầu hợp lệ, ngược lại là không hợp lệ.
-
Mạch này cũng bao gồm các kiểm tra trung gian để ngăn thay đổi tệp chứng cứ (witness file).
-
Kiểm tra xem giá trị băm của địa chỉ tài khoản và vốn khả dụng có tồn tại trong cây Merkle hay không.
Dựa trên đó, chúng ta có thể xây dựng một dự án đấu giá riêng tư trên blockchain.
4. Tổng kết
Chúng ta không thể bỏ qua các thách thức về bảo mật mà các dự án blockchain đang phải đối mặt. Công nghệ ZK có thể cung cấp chức năng bảo vệ quyền riêng tư cho các dự án DeFi, tránh các vấn đề an toàn như rò rỉ danh tính người dùng và tấn công chạy trước. Công nghệ này cũng có thể cung cấp phương pháp xác minh dữ liệu an toàn hơn cho oracle. Trong các dự án bỏ phiếu trên blockchain, việc ứng dụng công nghệ ZK có thể thực hiện bỏ phiếu ẩn danh, vừa bảo vệ quyền riêng tư danh tính cử tri, vừa xác minh được tính xác thực của thông tin bỏ phiếu. Trong các dự án đấu giá trên blockchain, sử dụng công nghệ này có thể bảo vệ quyền riêng tư danh tính người đấu giá, đồng thời xác minh họ có đủ vốn để đặt giá thầu, từ đó bảo vệ lợi ích người bán.
Tuy nhiên, đây mới chỉ là phần nổi của tảng băng chìm tiềm năng công nghệ ZK, khả năng thực sự của nó còn xa mới được khai thác hết. Trong tương lai, chúng tôi mong đợi sẽ thấy công nghệ ZK được ứng dụng trong nhiều dự án blockchain hơn nữa, mang lại sự bảo vệ quyền riêng tư và an toàn tốt hơn cho người dùng.
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News









