Nghiên cứu và xây dựng ứng dụng trên nền tảng blockchain layer 2 sử dụng kỹ thuật zkSync

Research and develop application on zkSync-enable layer-2 blockchain

Để giải quyết các vấn đề trên, nghiên cứu đề xuất xây dựng VerifiComerce, một hệ thống thương mại điện tử kết hợp nhiều công nghệ hiện đại nhằm mang lại những ưu điểm vượt trội so với các nền tảng hiện nay. Hệ thống này tập trung vào việc giải quyết hai vấn đề chính: minh bạch trong đánh giá sản phẩm và bảo mật thông tin. Người tiêu dùng thường gặp khó khăn trong việc đánh giá chất lượng sản phẩm trên các nền tảng truyền thống do sự thiếu trung thực trong các nhận xét. Việc áp dụng blockchain giúp đảm bảo tính minh bạch và chính xác của hệ thống, đồng thời công nghệ zero-knowledge được sử dụng để tăng cường tính bảo mật và độ tin cậy của các đánh giá sản phẩm. Nhờ đó, người tiêu dùng có thể an tâm hơn khi đưa ra quyết định mua hàng.

Tổng quan đồ án

Hoạt động mua sắm trên các sàn thương mại điện tử hiện nay đã trở thành một phần không thể thiếu trong đời sống của người tiêu dùng. Việc chuyển dịch sang hình thức mua sắm trực tuyến ngày càng phổ biến nhờ vào các lợi ích như sự tiện lợi, chi phí hợp lý, và khả năng tiếp cận đa dạng các mặt hàng mà không cần phải phụthuộcvào các cửa hàng bán lẻ truyền thống. Tuy nhiên, các sàn thương mại điện tử hiện nay vẫn tồn tại nhiều bất cập chưa được khắc phục, đặc biệt là vấn đề về tính minh bạch trong đánh giá sản phẩm. Nhiều đánh giá hiện tại thiếu tính xác thực, lặp lại, hoặc bị thao túng, điều này ảnh hưởng trực tiếp đến quyết định mua hàng và niềm tin của người tiêu dùng. Ngoài ra, việc cho phép người dùng đánh giá lại sản phẩm cũng làm giảm độ tin cậy của hệ thống đánh giá.

Việc triển khai một hệ thống thương mại điện tử trên nền tảng blockchain cũng đặt ra nhiều thách thức. Trong hệ thống này, không thể công khai toàn bộ thông tin bên trong vì những lý do bảo mật. Do đó, một blockchain private được sử dụng để bảo vệ dữ liệu nội bộ. Tuy nhiên, để đảm bảo tính minh bạch và đáng tin cậy, cần phải chứng minh sự đúng đắn của hệ thống private. Điều này có thể được thực hiện bằng cách sử dụng một blockchain public để lưu trữ các bằng chứng xác minh, từ đó khẳng định tính chính xác của hệ thống.

Để giải quyết các vấn đề trên, nghiên cứu đề xuất xây dựng VerifiComerce, một hệ thống thương mại điện tử kết hợp nhiều công nghệ hiện đại nhằm mang lại những ưu điểm vượt trội so với các nền tảng hiện nay. Hệ thống này tập trung vào việc giải quyết hai vấn đề chính: minh bạch trong đánh giá sản phẩm và bảo mật thông tin. Người tiêu dùng thường gặp khó khăn trong việc đánh giá chất lượng sản phẩm trên các nền tảng truyền thống do sự thiếu trung thực trong các nhận xét. Việc áp dụng blockchain giúp đảm bảo tính minh bạch và chính xác của hệ thống, đồng thời công nghệ zero-knowledge được sử dụng để tăng cường tính bảo mật và độ tin cậy của các đánh giá sản phẩm. Nhờ đó, người tiêu dùng có thể an tâm hơn khi đưa ra quyết định mua hàng.

Đối tượng nghiên cứu

Khách hàng, các sàn thương mại điện tử

Cơ sở lý thuyết

1. Blockchain

Blockchain được giới thiệu lần đầu tiên vào năm 2008 bởi một cá nhân hoặc nhóm ẩn danh sử dụng tên Satoshi Nakamoto, trong bài báo khoa học “Bitcoin: APeer-to-Peer Electronic Cash System”. Blockchain là công nghệ nền tảng cho Bitcoin, loại tiền mã hóa đầu tiên.

image 143

image 144

2. Smart Contract

Smart contract (hợp đồng thông minh) lần đầu tiên được giới thiệu vào năm1994 bởi Nick Szabo, một nhà khoa học máy tính và nhà mật mã học. Tuy nhiên, vào thời điểm đó, việc triển khai và sử dụng chúng bị hạn chế bởi công nghệ chưa phát triển đủ để hỗ trợ các ý tưởng này. Sự bùng nổ của smart contract thực sự diễn ra khi Ethereum, một nền tảng blockchain được phát triển bởi Vitalik Buterin, ra đời vào năm 2015. Ethereum cungcấp một môi trường để phát triển và triển khai các smart contract thông qua Ethereum Virtual Machine (EVM).

Smart Contract có thể được lập trình bằng các ngôn ngữ bậc cao như Solidity hoặc Vyper, qua đó, nó được biên dịch thành EVM bytecode để thực thi. Các ngônngữ lập trình này có đầy đủ các tính năng như một ngôn ngữ lập trình bậc cao truyền thống như vòng lặp, rẽ nhánh, kiểu dữ liệu,… Ngoài ra, bản thân các ngôn ngữ cũng có thêm các tính năng phục vụ chỉ riêng cho việc thực thi các giao dịch, như kiểu dữ liệu payable của Solidity cho phép gửi kèm ETH khi thực thi điều khoản.

3. Zero knowledge

Zero-Knowledge Proof là một loại phương pháp mà người chứng minh có thể thuyết phục người xác thực rằng một tuyên bố là đúng mà không tiết lộ bất kỳ thông tin nào khác. Bất kỳ giao thức chứng minh tri thức không rõ ràng (Zero-Knowledge Proof)
nào cũng phải thỏa mãn ba tính chất:

• Hoàn thiện (Completeness): Khi tuyên bố là đúng, người chứng minh luôn có khả năng thuyết phục người xác thực.

• Chặt chẽ (Soundness): Khi tuyên bố sai, người chứng minh không trung thực không thể thuyết phục người xác thực.

• Zero-Knowledge: Quá trình chứng minh không tiết lộ thông tin nào ngoài việc xác nhận tuyên bố là đúng. người xác thực không thể biết được bất cứ thông tin nào khác.

4. SNARK-friends

Như chúng ta đã hiểu từ thí nghiệm gần đây, nơi chúng ta thay thế thuật toán băm Keccak bằng MiMC, có những thuật toán băm với thiết kế phù hợp hơn cho các mạch tính toán. Tuy nhiên, bạn cần nhớ rằng việc sử dụng các thuật toán này khác với việc băm thông thường (như Keccak, SHA256). Các thuật toán hiệu quả nhất cho các phép toán trên trường hữu hạn (được sử dụng trong các mạch) là các thuật toán sử dụng phép toán trên trường hữu hạn, cho phép chúng ta truyền trực tiếp tín hiệu đầuvào vào hàm băm trong mạch (mà không cần “phân tách” nó thành các bit riêng lẻ). Nhưng cũng có nhiều khác biệt: số vòng an toàn, khả năng chống va chạm, các cuộc tấn công cụ thể, và điều quan trọng là cần nghiên cứu chúng kỹ lưỡng hơn so với những gì được trình bày trong bài báo này. Ngoài ra, bạn cần nhớ rằng lĩnh vực này còn rất mới, nhiều bài báo thực sự là “mới ra mắt”, vì vậy chúng tôi không tuyên bố về tính đầy đủ của thông tin.

5. Poseidon

Thuật toán Poseidon cải thiện thiết kế của MiMC bằng các phương pháp lấy cảm hứng từ cả AES (S-blocks) và Keccak (sponge), đồng thời duy trì khả năng bảo mật chống lại cả các cuộc tấn công thống kê lẫn đại số. Cả hai đều sử dụng hoán vị HADES bên trong và rất hiệu quả trong các mạch nhờ số lượng phép nhân thấp. Bạn có thể tìm thấy mô tả về Poseidon tại đây, trong khi một phân tích thú vị về cả hai thuật toán dựa trên HADES được trình bày ở đây

image 146

Tổng quan về mô hình

Qua vấn đề đặt ra, VerifyComerce sẽ nằm giữa hai Blockchain, Blockchain Consortium và Blockchain Public, thu thập thông tin bằng chứng từ Blockchain Consortium và lưu lại. Khi người dùng yêu cầu đánh giá thì tính toán bằng chứng thì gửi cho họ tính toán bằng chứng rồi gửi ngược về cho chúng ta kiểm tra bằng chứng. Nếu bằng chứng hợp lệ thì chúng ta sẽ đánh giá thay cho người dùng. Tiến hành xây dựng Blockchain Consortium đảm bảo cấu hình các tầng trong mạng và ACL tối ưu cao để đảm bảo hoạt động như mong đợi.

Ở Blockchain Consortium chúng ta sẽ triển khai Smart Contract thao tác logicmua bán giữa người bán và người mua. Thực hiện logic và lưu thông tin cần thiết giữa người bán và người mua sản phẩm. Còn ở Blockchain Public chúng ta sẽ triển khai ba Smart Contract, với SaveMerkleRoot Contract, Rating Contract và VerifyZKProof Contract, với SaveMerkleRoot và Rating Contract hoạt động như một Contract bình thường, cho phép lưu trữ, quản lý các Merkle Root và các thông tin đánh giá sản phẩm. VerifyZKProof Contract là một Contract đặc biệt, nó được sinh ra từ Verify Key từ bộ công cụ Circom. Contract này chỉ phụ vụ một mục đích duy nhất là Verify bằngchứng.

image 147
image 148

Triển khai hệ thống

Môi trường thực nghiệm

Với hệ thống của chúng ta các bên liên quan gồm Consortium Blockchain, Public Blockchain, Back End. Hiệu năng của hệ thống phụ thuộc rất nhiều vào các bên liên quan. Hệ thống môi trường thực nghiệm được liệt kê

image 150

Kịch bản thực nghiệm

Trước hết, em tiến hành đáng giá thời gian thực thi của cả quy trình xác thực, từ khi người dùng nhấn vào nút Verify, cho đến khi lịch sử được ghi vào Blockchain. Ghi lại thời gian thực thi của từng quy trình con trong toàn bộ qui trình xác thực. Do sử dụng các Public Blockchain, Gas Fee sẽ là một vấn đề cần phải quan tâm, nếu không đủ một lượng tiền ảo trong ví của cơ sở giáo dục, toàn bộ quy trình sẽ không thể diễn ra. CrossCert hướng đến một ứng dụng hoàn toàn phi lợi nhuận và an toàn tuyệt đối, do đó, mọi sự kiện đều sẽ được trả phí bằng chính tài khoản của người triển khai ứng dụng (trong ngữ cảnh này là chính người viết). Tuy nhiên, để đánh giá ứng dụng có phù hợp cho việc triển khai lâu dài, mỗi lần thực hiện xác thực đều sẽ đượcghi lại tổng Gas Fee đã được sử dụng, Gas Fee của từng lần tương tác với Smart
Contract.

Kết quả thực nghiệm

image 151
image 152
image 153

Kết luận

1. Đóng góp trong hệ thống

  • Đề xuất ý tưởng xây dựng hệ thống VerifyComerce. Nắm bắt những thiếu xót từ các sàn thương mại điện tử hiện nay nhằm xây dựng hệ thống đánh giá sản phẩm minh bạch, bảo mật. Mang lại trải nghiệm tốt hơn cho người dùng.
  • Xây dựng hệ thống mạng Consortium Blockchain (Besu) dành cho tình huống các sàn thương mại điện tử. Mang lại nhiều lợi ích như: hiệu suất, chi phí, mở rộng, bảo mật cao,..
  • Tích hợp Zero-Knowledge Proofs (ZKPs) thông qua các thư viện ZK-SNARKs để đảm bảo quyền riêng tư, tích hợp lệ và duy nhất của phiếu đánh giá đến từngười dùng

2. Thiếu xót

  • Xây dựng giao diện chưa thân thiện với người dùng.
  • Chưa đánh giá được sâu về hệ thống.
  • Phần tạo mạch ProvingKey và VerifyKey của template VerifySigner chưa hoàn thành.

3. Hướng phát triển trong tương lai

  • Xây dựng mô hình AI lọc ra các đánh giá cố tình sai lệch từ khách hàng
  • Hệ thống chỉ áp dụng những sản phẩm có 100 đánh giá tự do và người dùng mới sẽ có đánh giá mặc định là 5. Các input gồm:

user: đại diện cho điểm uy tín đánh giá của người dùng, seller: đại diện cho giá trị đánh giá trung bình sản phẩm mà người này bán, avg_product: giá trị đánh giá trung bình sản phẩm ta đang xét, rating_user: đánh giá người dùng vào sản phẩm ta đang xét, is_syspicious: 0 là đánh giá đúng, 1 là đánh giá có vấn đề, user, seller, avg_product có giá trị tương ứng “thấp” : (1: 2,5) “trung bình” : (2.5: 3.7)”cao”: (3.7: 5), rating_user có giá trị tương ứng “thấp”: [1, 2] “trung bình”: [3] “cao”:
[4, 5]

  • Nếu người dùng cố tình đánh giá sai. Thì hệ thống tự đánh giá người dùng đánh giá “thấp” và từ chối phiếu đánh giá đó.
  • Nếu người dùng đánh giá đúng. Hệ thống tự đánh giá người dùng đánh giá “cao” và ghi nhận phiếu đánh giá của người dùng đó.
image 154