1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Mạng máy tính và truyền thông: Cross-Cert - Hệ thống xác thực văn bằng và chứng chỉ trong giáo dục sử dụng công nghệ liên chuỗi khối và Zero - Knowledge Proof

79 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cross-Cert - Hệ thống xác thực văn bằng và chứng chỉ trong giáo dục sử dụng công nghệ liên chuỗi khối và Zero - Knowledge Proof
Tác giả Khuu Minh Phong
Người hướng dẫn ThS. Tran Tuan Dung
Trường học Trường Đại Học Công Nghệ Thông Tin - Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Mạng Máy Tính và Truyền Thông
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2023
Thành phố Hồ Chí Minh
Định dạng
Số trang 79
Dung lượng 39,51 MB

Nội dung

Để cân bằng việc chia sẻ bằng cấp giữa các trường đại học, tính thuận tiệncho việc xác thực của nhà tuyển dụng và bảo vệ thông tin cá nhân, nghiên cứu đề xuất hệ thống CrossCert kết hợp

Trang 1

DAI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA MANG MAY TINH VA TRUYEN THONG

KHUU MINH PHONG - 20521742

KHOA LUAN TOT NGHIEP

Cross-Cert — Hệ thống xác thực văn bang và chứng

chỉ trong giáo dục sử dụng công nghệ liên chuỗi

khối và Zero — Knowledge Proof

Cross-Cert - Diploma and certificate authentication system

in education using cross-blockchain technology and Zero —

Knowledge Proof

CỬ NHÂN NGÀNH MẠNG MAY TÍNH VÀ TRUYEN

THONG DU LIEU

H6 Chi Minh, 12/2023

Trang 2

Lời cảm ơn

Lời đầu tiên, em xin gửi lời cảm ơn sâu sắc đến Ban giám hiệu trường Đại Học Công Nghệ Thông Tin - Dai Học Quốc Gia Thành Phố Hồ Chí Minh đã tạo

điều kiện cho em được theo học tại trường, qua đó, em có thể tích lũy được kỹ

năng, kiến thức và tư duy để em có thể hoàn thành khóa luận tốt nghiệp của

mình Em cũng xin cảm ơn các thầy cô tại trường đã giảng dạy, hỗ trợ và chia

sẻ kinh nghiệm trong suốt quá trình em tham gia vào các môn học ở trường.

Em xin phép được bày tỏ lòng biết ơn đặc biệt và lời cảm ơn chân thần đến

thầy ThS Tran Tuan Dũng đã hướng dẫn em trong suốt quá trình em thực hiện

khóa luận của mình Qua thời gian thực hiện khóa luận dưới sự hướng dẫn của

thầy, em học được tư duy và kỹ năng nghiên cứu, nhờ đó, em mới có thể hoàn

thành được khóa luận của mình đạt kết quả tốt nhất Cuối cùng, em xin cảm

ơn cha mẹ, người thân và bạn bè đã động viên em suốt quá trình nghiên cứu Tuy nhiên, do kiến thức và kinh nghiệm của em còn nhiều hạn chế, kết quả khóa luận của em sẽ không tránh khỏi những thiếu sót Em mong nhận được những

góp ý, phê bình đến từ các thầy cô để em có thể hoàn thiện hơn khóa luận tốt

nghiệp của mình Kết quả nghiên cứu này sẽ góp phần nâng cao kiến thức và

kinh nghiệm cho em trong tương lai Một lần nữa, em xin chân thành cảm ơn.

Khuu Minh Phong

Trang 3

Một số kí hiệu viết tắt

NFTs Non-fungible Tokens

DApp Decentralized Application

RPC Remote Procedure Call

ABI Application binary interface

ZKP Zero - Knowledge Proof

EVM Ethereum Virtual Machine

ETH Dong tién Ethereum

AVAX Dong tién Avalanche

zk-SNARKs Zero-Knowledge Succinct Non-Interactive Argument of Knowledge GPA Grade Point Average

1

Trang 4

Danh mục hình ảnh

2.1 Minh hoa Blockcham| ẶẶ

22_ Blockcham

2.4 Minh hoa Relay Chain) 0.0.

Trang 5

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

4.18 Gửi email đến nhà tuyển dụng| 43

4.19 Giao diện chính của DApp| 43

ee, 44 4.21 Các Blockchain được hỗ trợ bởi CrossCert| 44

4.22 Yêu cầu kết nối ví điện tử 45 ¬ ee 46 4.24 Kết nối ví thành công| cS 4ï na 4ï Cee HH ee 48 Ce eee 49 =f to ey ee ee 50 4.30 Kiểm tra kết quả của lan xác thực 50 4.31 Kiểm tra kết quả xác thực 51 4.32 Kiểm tra bằng chứng| 51

4.33 Thong báo cho cả nhà tuyển dung} 52

5.1 Tong thời gian thực thiị 56

5.2 Không thể sử dung bằng chứng giả| - 59

Khuu Minh Phong iv Khóa 2020 DHCNTT - DHQG TPHCM

Trang 6

Danh mục bảng biểu

4.1 Danh sách địa chỉ các Contract|

5.1 Môi trường thực nghiệm| Ặ ốc

5.2 Thời gian thực thi trên một requestl 5.3 Tương quan Gas Fee với số lượng request|l

Trang 7

Lee 9

2.2.1 Dinhnghiaj) 022.20 2.2.2 2.0222 0040 9

2.2.2 Các phương pháp pho biến 9

2.2.3 Các cuộc tấn công vào Cross-Chain| 13

2.3 Non-fungible Tokens (NFTs)} 2 0 0.000 0.02.000 14

vl

Trang 8

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

2.4 Zero - Knowledge Prooffl, 0.0.0 0.000002 2 16

3 Các nghiên cứu liên quan 19

4_ Mô hình đề xuất 23

4.1 Tình huống đặt ral 2 ee 23

4.2 Công nghéstdung) 2.00000 0000% 24

4.3 Tong quan về mo hình| - 26

Trang 9

Chương 1

Mở đầu

1.1 Tổng quan đề tai

Bang cấp va chứng chỉ được xem là một trong những tai sản có giá tri nhất ma

một cá nhân có thể kết quả từ quá trình đào tạo chính thức, vì chúng thể hiệntri thức và kỹ năng của người học Để đạt được những chứng chỉ này, học viên

phải trải qua các chương trình đào tạo nghiêm túc và quá trình đánh giá do các

tổ chức giáo dục uy tín thực hiện

Như được nhẫn mạnh trong nghiên cứu về xác thực chứng chỉ an toàn của

Kaneriya [20], quá trình xác thực chứng chỉ là rất quan trong trong tuyển dụng

và việc làm trong nhiều ngành công nghiệp và tổ chức khác nhau Tuy nhiên,

sự phụ thuộc giấy tờ đã dẫn đến nhiều hạn chế Chứng chỉ vật lý gây ra sự bất tiện trong truy cập, rủi ro làm giả mà không có hệ thống xác thực đáng tin cậy,

và thiếu tương tác giữa các bên phát hành và xác thực riêng biệt Hơn nữa, dữ

liệu được lưu trữ trong hệ thống cơ sở dữ liệu truyền thống có thể dễ dàng đượcsửa đổi bởi một nhóm quản trị viên hoặc người dùng có quyền cao Do đó, tínhtoàn vẹn, minh bạch và không thể chối cãi của dữ liệu sẽ không được đảm bảo

2.

Hiện nay, các tổ chức giáo dục trên thế giới sử dụng nhiều phương pháp lưu

trữ bằng cấp khác nhau Tuy nhiên, sự ra đời của công nghệ Blockchain mang

lại một giải pháp an toàn và đáng tin cậy nhờ vào thiết kế số cái phân tán không

Trang 10

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

thể thay đổi Tuy nhiên, việc vận hành Blockchain riêng lẻ của từng cơ sở giáo

dục khiến hệ thống bị cô lập, chỉ tiếp cận được bên trong Điều này hạn chế việc

kiểm tra của bên ngoài và khó đánh giá năng lực dựa vào bằng cấp

Trong lĩnh vực tiến bộ công nghệ đương đại, công nghệ số cái phân tán đã

đạt những bước tiến nhanh chóng và theo cấp số nhân, được minh họa rõ nét bởi sự ra đời của blockchain Những tiến bộ này hứa hẹn cung cấp các giải pháp

phi tập trung cho phép số hóa chứng chỉ một cách trôi chảy [26] Dac điểm của

blockchain như minh bạch, không thể sửa đổi, phân cấp và ẩn danh là các yếu

tố then chốt cho việc phát hành, lưu trữ và xác minh chứng chỉ an toàn trong

khi vẫn bảo vệ quyền riêng tư Trong lĩnh vực tiến bộ công nghệ, việc triển khai

blockchain ở từng cơ sở giáo dục riêng lẻ đã vô tình dẫn đến sự cô lập giữa các

blockchain tạo nên các dao dit liệu riêng biệt [18].

Việc triển khai một mạng Blockchain thống nhất có thể đơn giản hóa quản

lý và tăng tính thuận tiện khi yêu cau bằng cấp Tuy nhiên, triển khai trên một

chuỗi khối duy nhất sẽ dẫn tới các van đề an ninh, bảo mật thông tin và tính minh bạch khi các trường muốn giữ bí mật thông tin người hoc Trái lại, cho

phép truy cập công khai toàn diện có thể tiết lộ thông tin cá nhân.

Để cân bằng việc chia sẻ bằng cấp giữa các trường đại học, tính thuận tiệncho việc xác thực của nhà tuyển dụng và bảo vệ thông tin cá nhân, nghiên cứu

đề xuất hệ thống CrossCert kết hợp công nghệ liên Blockchain (Cross-Chain)

và Zero - Knowledge Proof Hệ thống này nhằm xác thực bằng cấp giữa các tổ

chức giáo dục trong khi vẹn toàn bảo mật thông tin và quyền riêng tư của các

cá nhân và tổ chức

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

Mục đích của việc thực hiện đề tài này nhằm có thể cung cấp một hệ thống xác

thực văn bằng, do đó, đối tượng của đề tài này sẽ bao gồm:

Khuu Minh Phong 2 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 11

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

e Các văn bằng và chứng chỉ: Như đã đề cập ở trên, mỗi cơ sở giáo dục và

các doanh nghiệp có thể vận hành một Blockchain khác nhau, do đó, địnhdạng của một văn bằng ở cơ sở này, sẽ có thể mang nhiều khác biệt so với

văn bằng được lưu trữ ở cơ sở khác Do đó, cần xây dựng lên các văn bằng

mẫu, để từ đó, các cá nhân và tổ chức có thể thích ứng cơ sở của mìnhtheo các quy chuẩn được đề ra

e Sinh viên và người đi làm: Về mặt con người, trước hết cần nói đến bộ

phận người xin việc Đây là nhóm người sở hữu những bằng cấp và có mong muốn được sử dụng bằng cấp này mà không cần phải cung cấp toàn

bộ thông tin cá nhân, cũng như trải qua các quy trình giấy tờ truyền thống

phức tạp.

e Doanh nghiệp/tổ chức tuyển dụng: Dây là nhóm người sẽ có nhu cầu tuyển

những cá nhân có đầy đủ các tố chất phù hợp với yêu cầu công việc, do đó, nhóm người này sẽ có nhu cầu được ứng viên cung cấp các bằng cấp tương

ứng để chứng minh năng lực thực sự đáp ứng được đặc thù công việc

Từ việc phân tích từng nhóm người trên, có thể dễ dàng thấy rằng nhu cầu

được bảo mật thông tin đến từ phía người xin việc và yêu cầu được cung cấp

các bằng cấp để chứng minh đến từ phía người tuyển dụng là tồn tại song hành

Điều này chứng tỏ việc phát triển và ứng dụng các công nghệ nhằm đảm bảo

quyền riêng tư là hoàn toàn hợp lý trong ngữ cảnh và thực trạng hiện tại.

Khuu Minh Phong 3 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 12

rãi khắp thế giới, tính đến năm 2016, vốn thị trường của Bitcoin đạt mốc 10

ty USD Cũng chính trong năm 2008, Blockchain cũng được giới thiệu là công nghệ đằng sau Bitcoin [17] Mặc dù Blockchain phần lớn được ứng dung trong

lĩnh vực tiền điện tử, song thực tế, Blockchain có thể được sử dụng trong nhiều

linh vực khác như chăm sóc y tế, chuỗi cung ứng [51

Blockchain là một cơ sở dữ liệu phi tập trung [43], mà trong đó, dữ liệu được

lưu trữ thành các khối, mỗi khối được liên kết với nhau thông qua giá trị băm

của khối trước [33] Blockchain hoạt động mà không cần đến một điểm quản lý

trung tâm, việc các block được ghi vào phải được sự đồng thuận của tất cả các node thông qua các cơ chế đồng thuận (consensus) [3Ø].

Trang 13

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

Một Blockchain co bản sẽ có những đặc tính sau, khiến cho công nghệ này hoàn toàn khác biệt so với các phương trữ truyền thông khác [29] [44]:

e Phi tập trung (Decentralization): Tính phi tập trung trong Blockchain thể

hiện ở việc dữ liệu sẽ không tập trung ở một điểm duy nhất, đồng thời,không cá nhân nào nắm quyền kiểm soát toàn bộ mạng blockchain

e Ấn danh (Anonymity): Người dùng có thể tương tác với Blockchain thông

qua một địa chỉ được cung cấp.

e Tính minh bạch (Transparency): Lịch sử hoạt động của Blockchain được

công khai, đảm bảo rằng bất cứ ai cũng có thể kiểm tra, truy xuất

e Bất biến (Immutability): Một khi dữ liệu đã được ghi vào trong khối của

blockchain, nó sẽ không thể bị thay đổi hoặc sửa chữa mà không có sự đồng

thuận giữa các node tham gia vào mạng lưới

Các Blockchain được chia làm 3 loại dựa vào hình thức tổ chức:

Public Blockchain (Permissionless Blockchain)

Public Blockchain là hình thức tổ chức thường thấy, được vận hành rộng rãi hiệnnay và được ứng dụng trực tiếp trong tiền điện tử Dưới hình thức tổ chức này,

Khuu Minh Phong 5 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 14

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

bất cứ ai cũng có thể tham gia vào mạng Blockchain, thực hiện một giao dịch,truy cập vi, Dựa vào tinh chất của loại hình tổ chức này, bất cứ ai cũng có thể

xem toàn bộ lịch sử hoạt động của toàn Blockchain, thao tác trên blockchain miễn là tuân theo cơ chế đồng thuận của Blockchain đó.

Private Blockchain (Permissioned Blockchain)

Các Blockchain được tổ chức theo hình thức này chỉ cho phép một số cá nhânđược chỉ định có thể tham gia vào Blockchain Các Private blockchain thường

thiết lập sự tin cậy giữa các thành viên thông qua việc ban hành các chứng chỉ Các thành viên tham gia vào mạng lưới sẽ có quyền khác nhau và đóng một vai trò nhất định Nhìn chung, Private Blockchain được xem là hiệu qua hơn Public Blockchain trong khoản bảo mật nhưng hình thức này không hoàn toàn phi tập

trung khi nó giới hạn quyền tham gia xuống chỉ những cá nhân được ủy thác

mới có thể tham gia [48]

Consortium blockchain

Consoritum Blockchain là hình thức tổ chức Blockchain vừa công khai vừa riêng

tư Hình thức này tương tự như Private Blockchain, nhưng thay vì chỉ dành cho

một tổ chức hoặc cá nhân duy nhất, Consortium Blockchain sẽ được vận hànhbởi nhiều cá nhân hoặc tổ chức Chỉ có những cá nhân hoặc tổ chức được mời

và tin cậy mới được tham gia và vận hành Blockchain.

2.1.2 Blockchain Trilemma

Blockchain Trilemma là một bộ của 3 vấn dé chính mà các nhà phát triển gặpphải khi phát triển một hệ thống Blockchain Thông thường, mọi người sẽ lựa

chọn đánh đổi, nghĩa là chỉ chấp nhận thỏa mãn hoàn toàn một vấn đề nhất

định, bất cứ sự cải thiện trên một khía cạnh nào cũng sẽ ảnh hưởng tiêu cực đến một hoặc cả hai khía cạnh còn lại [30] Các van đề đó bao gồm: Tính mở rộng

Khuu Minh Phong 6 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 15

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

(Scalability), Tính phi tập trung (Decentralization), Tính bảo mat (Security).

The Scalability Trilemma

của một Smart Contract phụ thuộc vào độ phức tap của giao dịch ma nó được

lập trình để thực hiện Các hợp đồng có thể rất đơn giản, được thực hiện trong

vài giây hoặc vài phút, hoặc tương đối phức tap và dài dòng Các Smart Contract bao gồm các giao dịch về cơ bản được lưu trữ, sao chép và cập nhật trên các Blockchain [ð0| So với các hợp đồng truyền thống bằng giấy, Smart Contract

cho phép người dùng chuyển các điều khoản của mình thành các mã nguồn cho

phép tự động thực thi thỏa thuận mà không cần thông qua bất cứ sự giám sát

tập trung nào Đồng thời nó cũng rút ngắn công đoạn thủ tục rườm rà và mất

Khuu Minh Phong 7 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 16

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

nhiều thời gian của hợp đồng truyền thống.

Kể từ khi ra mắt vào tháng 7 năm 2015, Ethereum đã phát triển thànhnền tảng blockchain phổ biến nhất cho các Smart Contract Ethereum cung cấpmột môi trường để thực thi các Smart Contract, được gọi là Ethereum Virtual

Machine (EVM) [53] Hầu hết các Public Blockchain đang hoạt động đều dựa

trên EVM nhằm cho phép các lập trình có thể sử dụng triển khai các Smart

Contract phục vụ cho mục đích của mình.

Smart Contract có thể được lập trình bằng các ngôn ngữ bac cao như Solidityhoặc Vyper, qua đó, nó được biên dịch thành EVM bytecode để thực thi [21]

Các ngôn ngữ 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, ban 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 BỊ.

Ngoài việc thực thi các thỏa thuận được định sẵn trên Smart Contract, sử

dụng Smart Contract là một cách tốt để lưu dữ liệu tùy chỉnh lên các Public

Blockchain Các Public Blockchain hầu hết ghi lại dữ liệu là các giao dịch, tuy nhiên, việc lập trình Smart Contract cũng cho phép chúng ta ghi lại các bản ghi

dữ liệu theo nhu cầu cá nhân lên các Blockchain này.

Nhằm dam bảo tính minh bạch vốn có của Blockchain, các Public Blockchain luôn công khai bytecode và cả mã nguồn của Smart Contract, đồng thời cũng

cho phép và khuyến khích các lập trình viên tải lên mã nguồn, qua đó, người

dùng luôn có thể kiểm tra chức năng thực thi của một Smart Contract, tránh

các Smart Contract có ý định xấu và tìm cách trục lợi.

Khuu Minh Phong 8 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 17

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

2.2 Cross-ChaIn

2.2.1 Định nghĩa

Theo IEEE 3205-2023, Cross - Chain hay Blockchain interoperability là khả

năng hai hoặc nhiều mang Blockchain hoặc ứng dụng trao đổi thong tin va cùng

sử dung thông tin đã được trao đổi No yêu cầu cho phép tài nguyên có thể được

chuyển từ một Blockchain sang Blockchain khác hoặc người dùng có thể truy

cập thông tin trên một blockchain trong khi ở trên một blockchain khác, tài sản

trên Blockchain có thể là tiền điện tử hoặc dữ liệu (22)

Cross-Chain mat khác cũng đồng thời giải quyết van đề về khả năng mở rộng của Blockchain, tuy nhiên nó cũng đặt ra các thách thức khác về tính bảo mật

và tính phi tập trung, vốn được mô tả trong Blockchain Trilemma [52].

2.2.2 Các phương pháp phổ biến

Trong môi trường giáo dục, việc sử dụng các Blockchain riêng lẻ bởi từng cơ sở

giáo dục có thể dẫn đến vấn đề "đảo cô lập" với khả năng hạn chế để chia sẻ dữliệu hoặc trao đổi giá trị giữa các chuỗi Các công nghệ liên kết Blockchain giải

quyết vấn đề này bằng cách cho phép tương tác giữa các Blockchain riêng biệt Trong khi giao tiếp trong các Blockchain đồng nhất đơn giản, kết nối các chuỗi

không đồng nhất đặt ra những thách thức [25] Dé giải quyết những thách thức

này, một số phương pháp tiếp cận nổi bật đã được phát triển:

Notary Scheme

Phương pháp xác thực liên chuỗi này sử dụng một nút xác thực trung gian

được gọi là "nút chứng thực" nhằm xác thực các giao dịch xuyên suốt các mạng

blockchain khác nhau [22] Nút chứng thực thúc đẩy một hành động được kích

hoạt bởi một sự kiện gọi đến từ chuỗi nguồn và trả lời với kết quả ra đầu ra cho

chuỗi dich [19] Với số lượng hữu hạn các nút chứng thực, các thực thể này có

Khuu Minh Phong 9 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 18

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

thể được đánh giá là các điểm điều phối tập trung tiềm năng Tuy nhiên, việc

phân phối trách nhiệm xác thực trên một tập lớn hơn các nút giúp giải quyết van đề này [7] Từ góc độ an ninh, việc dựa vào một nút chứng thực ý nghĩa là yêu cầu phải tin tưởng rằng nó sẽ hoạt động một cách thích hợp mà không có

ý đồ xấu Yêu cầu niềm tin này đưa ra các rủi ro, bởi vì một nút bị xâm phạm

có thể tham gia vào các hành vi có hại [14] như đánh cắp dữ liệu hoặc tài sản

kỹ thuật số.

Hash Time-Locked Contracts (HTLCs)

Phương pháp chuyển giao tài sản liên chuỗi này ứng dung kỹ thuật time-lock vàhash-lock để trao đổi giá trị trên các blockchain một cách an toàn Khi khởi

tạo giao dịch liên mạng, các chuỗi liên quan sẽ lần lượt khóa tài sản kỹ thuật số

bản địa của chúng bằng mật khẩu mã hóa (hash-lock) Sau đó, người dùng được

yêu cầu cung cấp bằng chứng xác thực trong khung thời gian quy định (khóa

thời gian) để mở khóa tài sản được bảo vệ [34] Việc ứng dụng thuật toán bămmạnh kết hợp với cửa số xác thực theo thời gian cung cấp đảm bảo chắc chắn

cho việc chuyển tiền an toàn Tuy nhiên, hạn chế tiềm tại là nếu một hoặc cả

hai bên tham gia đều mất kết nối trong quá trình giao dịch, tài sản bị khóa có

thể bị ràng buộc vô ích trong thời gian dài Mặc dù thiết kế giao thức hướng tớingăn chặn hành vi xấu động, nhưng vấn đề kết nối bất thường có thể lý thuyết

gây cản trở quá trình hoàn thành và dẫn tới tiền bị khóa cho tới khi thời hạn hết hiệu lực HTLCs cũng dễ bi tấn công bởi DDos, lợi dụng khoảng thời gian time out giữa các lần lock và unlock asset, tạo ra một số lượng lớn request sau

đó không xác nhận, dẫn đến một lượng lớn request ở trạng thái time out gây

nghẽn hệ thống.

Khuu Minh Phong 10 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 19

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

Sidechain

Sidechains hoạt động như các phần mở rộng của blockchain chính và có khả

năng thực hiện chuyển giao tài sản hai chiều giữa các blockchain Là các phần

mở rộng, sidechains là những blockchain độc lập được kết nối với blockchain

chính thông qua các giao dịch đặc biệt, cho phép đổi chuyển tài sản giữa cácchuỗi Phương pháp này giảm tải cho blockchain chính bằng cách chuyển một

phần gánh nặng xử lý từ blockchain chính sang sidechains Sidechains, với tư

cách là các blockchain độc lập, có thể thử nghiệm các cấu hình khác nhau sovới blockchain chính, chang hạn như thay đổi các tham số kỹ thuật hoặc cơ chế

quản trị Các giao dịch liên kết đảm bảo sự đồng bộ hóa giá trị tài sản giữa blockchain chính và các sidechains Kiến trúc này tiềm năng tăng cường khả

năng mở rộng và linh hoạt của toàn bộ hệ thống blockchain .

Sidechain A Sidechain B

Hinh 2.3: Minh hoa Sidechain

Khuu Minh Phong 11 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 20

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

Relay Chains

Nếu một sidechain cho phép tương tác giữa nhiều blockchain chính, nó được gọi

là một relay chain [15] Các dự án như Polkadot và Cosmos đã triển khai kiến

trúc relay chain trên quy mô lớn Tuy nhiên, điều cần lưu ý là relay chain bản

thân là điểm duy nhất gây thất bại, bởi mọi hoạt động đều diễn ra thông quablockchain này Một lỗi trên relay chain có thể làm gián đoạn các giao dịch trên

tất cả các blockchain liên kết, do đó cần có sự dư thừa và an toàn trong kiến

Hinh 2.4: Minh hoa Relay Chain

Khuu Minh Phong 12 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 21

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

2.2.3 Các cuộc tấn công vào Cross-Chain

Để xây dựng một hệ thống Cross-chain đảm bảo an toàn, việc tìm hiểu về các

cuộc tấn công đã biết chiếm một vai trò quan trọng Phần này sẽ không đề cập hay phân tích quá sâu về các cuộc tấn công cũng như cách phòng tránh, dưới

điểm qua một số cuộc tấn công và thiệt hại mà các cuộc tấn công này gây ra

nhằm nâng cao ý thức về việc xây dựng một hệ thống Cross-chain an toàn:

e Tháng 1, năm 2022, một Hacker lợi dụng lỗ hỏng trên Qubit Bridge, một

cầu nối Cross Chain kết nối đến Etherum và lấy đi 206.809 BNB (đồng

coin của Binance), gây ra tổng thiệt hại là 80 triệu USD [37]

e Tháng 2, năm 2022, cuộc tấn công vào Wormhole gây thiệt hại được ước

tính là 326 triệu USD.

e Tháng 3, năm 2022, cuộc tấn công vào Ronin, một Side Chain của Ethereum,

được cho là cuộc tấn công gây thiệt hại lớn nhất, được ước tính lên đến

hơn 600 triệu USD [23]

e Tháng 6, năm 2022, cuộc tấn công vào Horizon, một cầu nối Cross Chain

kết nối đến Ethereum, Bitcoin, BSC va Harmony, đã gây thiệt hại đến 100

triệu USD [40].

Nghiên cứu của Xscope về các cuộc tần công vào Cross - Chain

[49]

Nghiên cứu của Xscope chỉ ra các thách thức và những van đề trong hệ thống

Cross - Chain có thể dẫn đến các 16 hỏng bảo mat tạo điều kiện cho các attacker

có thể lợi dụng và thực hiện hành vi phi hợp pháp của mình

Xscope đã chỉ ra 3 thách thức lớn:

e Logic on-chain phức tạp: Xử lý nhiều tài nguyên bằng những contracts

khác nhau trên nhiều Blockchains khác nhau dẫn đến việc xử lý tài

Khuu Minh Phong 13 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 22

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

nguyên trên chính chuỗi khối đó trở nên phức tạp, dẫn đến nhiều lỗ hỏng

có thể lộ ra và bị khai thác

e Liên kết lỏng lẻo giữa off - chain và on - chain: Quá trình xử lý giữa

Router Contracts on - chain và Relay off - chain dẫn đến sự phức tap

và có thể phát sinh nhiều lỗi có thể bị lợi dụng

e Quy trình nhiều bước: Các quy trình trao đổi tài nguyên giữa các

Blockchain khác nhau hiện nay được thực hiện qua nhiều bước, và tương

tự 2 thách thức trên, có thể tạo ra nhiều cơ hội cho các attackers có thể

lợi dụng.

Mặt khác, Xscope cũng mô hình hóa một cách tổng quát các cuộc tấn công

` 2 ^ 4 2 Z 2 2 2 ^

và chỉ ra 3 phân lớp của các lồ hong bảo mat:

e Unrestricted Deposit Emitting (UDE): Quá trình lock tài nguyên có

thể bị bỏ qua và thực hiện một cách trực tiếp, lổ hỏng này được lợi dụng

trong Wormhole Attacks

e Inconsistent Event Parsing (IEP): Một event không hợp lệ có thé bị

nhận diện là một event hợp lệ, lỗ hỏng nay được khai thác trong Double Spending va Replay attacks

e Unauthorized Unlocking (UU): Các tài nguyên dùng dé lock va unlock

có thé bị lộ thông qua các cuộc tấn công mạng bình thường và có thể được

sử dụng một cách không hợp lệ bởi attacker, lỗ này được khai thác trong Hot Wallet Attack, Identifier leaks

2.3 Non-fungible Tokens (NFTs)

Non-Fungible Token (NET) là một loại tiền điện tử được tạo ra trên nền tang

smart contract của Ethereum NFT khác biệt so với các loại tiền điện tử truyền

Khuu Minh Phong 14 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 23

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

thông như Bitcoin Bitcoin hoạt động dựa trên mô hình tiền tệ tiêu chuẩn, trong

đó tất cả các đơn vị đều là đồng nhất và không thể phân biệt nhau Ngược lại,

mỗi NET đều mang tinh độc nhất riêng biệt do đặc tính non-fungible, không

thể được trao đổi ngang giá với nhau Điều này khiến NFT phù hợp để biểu diễn

quyền sở hữu đối với tài sản số trong vô số các lĩnh vực khác nhau [46].

Các tài sản vật lý, tài sản kỹ thuật số hoặc tiền té, Có thể được chuyển đổi

thành các NET thông quá quá trình Tokenization [36] Các tài sản lúc này trở

thành các đơn vị dữ liệu được lưu trữ trên blockchain, xác nhận tài sản số là

độc nhất và do đó không thể trao đổi, cung cấp một chứng chỉ kỹ thuật số duy

nhất cho NFT Theo nghĩa rộng hơn, NET cho phép thiết lập "nguồn gốc" của

đối tượng số được phát hành, cung cấp câu trả lời không thể chối cãi cho các

câu hỏi như ai là chủ sở hữu, từng sở hữu và tạo ra NET, cũng như phiên bản gốc trong số nhiều ban sao là phiên bản gốc [I].

Để có thể tạo ra một NFT, các lập trình viên sẽ sử dụng một tiêu chuẩn lập

trình Smart Contract được gọi là ERC-721 [3] Bang cách sử dụng tiêu chuẩnnày, các Smart Contract được triển khai lên mạng Blockchain của Ethereumhoặc bất cứ EVM Chain nào đều sẽ được nhận diện là một NFT và có cách hiển

thị tương ứng trên các nền tảng tương tác với Blockchain.

Bản thân tiêu chuẩn ERC-721 được Ethereum định nghĩa rằng một NFT

Contract sẽ bao gồm tên Token, Symbol và một hệ thống các hàm như "approve",

"transferFrom", 2] Tuy nhiên, việc lập trình dựa trên Interface của ERC721

cũng tương đối khó khăn, do đó, các lập trình viên sẽ thường sử dụng một Contract đã được định nghĩa sẵn của OpenZepplin với các hàm đã được viết [I].

Một số hàm thông dụng có thể kể đến như "_ safeMint", "_ safeTransfer",

Các NFT thường sẽ có các thông tin của nó được gọi là Metadata Metadata

sẽ chứa các thông tin: tên, hình anh, mô tả của NFT đó Cùng với việc sử dụng

ERC721 Contract được định nghĩa sẵn, hiện nay, để xây dựng một ERC721

Contract, các lập trình viên được khuyến khích sử dụng ERC721URIStorage,

Khuu Minh Phong 15 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 24

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

nhằm tối ưu việc lưu và truy van dữ liệu trên IPFS.

2.4 Zero - Knowledge Proof

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 chat [35]:

e 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.

e 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

e 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.

Tuy nhiên, ban thân Zero-Knowledge Proof vẫn yêu cầu việc tương tác trực tiếp giữa người chứng minh và người xác thực, van làm mat đi một phần quyền

riêng tư của người chứng minh, do đó, zk-SNARKs (Zero-Knowledge Succinct

Non-Interactive Argument of Knowledge) ra đời Có thể kể đến ZCash và nền

tảng hợp đồng thông minh Ethereum là những dự án tiên phong áp dụng công nghệ này từ những năm dau [4].

Hiện tại, thuật toán được sử dụng nhiều cho việc tính toán zk-SNARKs là G16 Mô tả của thuật toán như sau [24] Dinh nghĩa một hàm số học C nhận hai tham số đầu vào: pub và w Trong đó pub là tham số công khai, w là tham số

riêng tư còn gọi là nhân chứng Hàm C trả về giá trị logic true hoặc false biểudiễn kết quả xác minh Người chứng minh có thể chứng minh cho người xác thực

Khuu Minh Phong 16 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 25

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

rằng họ biết cả pub và w, và C(pub, w) = true Tuy nhiên người xác thực không

thể truy ngược tham số riêng tư 0

Thuật toán G16 gồm 3 bước:

1 Khởi tạo cặp khóa: Để xác định liệu người chứng minh có đầu vào hợp lệ

có thể thỏa mãn chương trình C hay không, người xác thực thực hiện thuật

toán KeyGen với KeyGen(C) — (pk, vk) Thuật toán KeyGen lấy chương trình C làm đầu vào, sau đó tạo ra khóa chứng minh pk và khóa xác thực

vk Cuối cùng, pk và C sẽ được cung cấp cho người chứng minh để thực

hiện bước chứng minh tiếp theo.

2 Tính toán bằng chứng: Người chứng minh sử dụng hai tham số đầu vào

gồm pub - tham số công khai và w - tham số riêng tư Khi hàm C trả về

giá trị logic true , tức biểu thức C(pub, w) = true, người chứng minh thực

hiện thuật toán Prove với Prove(pk,C,pub,w) —> 7, thuật toán sử dụng

khóa pk, được cung cấp bởi người xác thực, để tạo ra bằng chứng z Bằng

chứng z là tập hợp của ba điểm trên đường cong elip cùng với tham số đầu

vào công khai pub, nhưng không chứa tham số w Cuối cùng, người chứng

minh gửi kết quả z cho người xác thực để kiểm tra

3 Xác thực bằng chứng: Người xác thực sử dụng bằng chứng z do người

chứng minh cung cấp cùng với khóa xác thực vk được tạo trong bước khởi tạo cặp khóa, thực thi hàm Veriƒ(0k,) —> result Ham Verify sẽ trả về giá trị logic true hoặc false, nếu kết quả trả về là true, người xác thực có

thể tin rằng người chứng minh sở hữu một cặp (hoặc bộ) giá tri pub và wthỏa mãn mạch số học Œ, nhưng không thể có được giá tri +

Bằng chứng z bao gồm là tổ hợp của bốn giá tri (TA,ZB.C,pub) VỚI Tpus

là giá trị của tham số công khai pub được sử dụng khi tính toán giá trị bằng

chứng 7 Khóa xác thực vk là tổ hợp của năm giá trị (vko, vkg, vky, vks, 0r©)

Khuu Minh Phong 17 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 26

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

Các giá trị này là các điểm nằm trên đường cong eliptic Thuật toán G16 được

sử dung trong zk-SNARKs sử dụng hệ đường cong alt_bn128 để khởi tạo cặp

giá trị tuyến tính Thuật toán Xác thực bằng chứng Verify đấu tiên sẽ tính

giá trị vk, bằng biểu thức vk, = økrc[0] + Tyo Apusli] * vkrc[é + 1] với n là

số lượng tham số công khai Sau đó kiểm tra tính đúng đắn của biểu thức

e(74, 7B) = €(0ka, 0kg) * e(0k„, 0k„) * e(mơ, 0kạ) dựa trên giá trị của 0k.

Khuu Minh Phong 18 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 27

Chương 3

Các nghiên cứu liên quan

Đã có nhiều công trình nghiên cứu ứng dụng Blockchain vào trong lĩnh vực bằng

cấp và chứng chỉ Tiêu biểu có thể kể đến công trình nghiên cứu của Sharma

va các cộng sự [41], nghiên cứu này trình bày một giải pháp sử dung công nghệ

blockchain nhằm mục đích đăng ký và xác thực giấy khai sinh/chứng tử bằng

cách sử dụng Blockcerts Công nghệ blockchain được sử dụng để lưu trữ thong

tin khai sinh/chứng tử một cách phân tán, không tập trung trên nhiều node,

ghi nhận và xác thực giấy khai sinh/chứng tử một cách an toàn, minh bach và

không thể sửa đổi Tuy nhiên, nghiên cứu này chưa xem xét đến khả năng tương

tác giữa nhiều blockchain cũng như van đề bảo mật thông tin cá nhân được lưu

trữ trên văn bằng số.

Abid và các cộng sự [6] đề xuất một nền tang cho phép phát hành và xác thực chứng chỉ Covid-19 có tên là NovidChain Nền tàng này sử dụng một Private Blockchain nhằm lưu trữ các thông tin chứng chỉ, sử dụng các công nghệ như

Self-Sovereign Identity (SSI) Với SSI, các cá nhân kiểm soát danh tính và dữliệu của mình Tuy nhiên, quản lý khóa riêng có thể dẫn đến trách nhiệm khimất khóa có thể dẫn đến mất danh tính Hệ thống này cũng chưa tích hợp các

công nghệ CrossChain để trao đổi giữa các blockchain, dù cho việc ứng dụng các

giải pháp bảo mật danh tính thông qua việc che giấu thông tin.

Anwar và các cộng sự [8] giới thiệu Sci-B, ứng dụng Blockchain nhằm xác

19

Trang 28

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

thực năng lực học viên trong ở các bậc giáo dục cao Với tính phi tập trung,

minh bạch, bất biến, không thé làm giả của Blockchain, ứng dụng chính của

mô hình SCi-B là đánh giá kỹ năng của sinh viên và xây dựng các bản ghi tin cậy về năng lực của học viên trên nền tảng blockchain Sci-B sử dụng nền tảng

Web để triển khai DApp cho phép tương tác giữa hệ thống và người dùng và

Ethereum làm nền tang lưu trữ Dù vậy, Sci-B vẫn chưa cân nhắc đến viễn cảnh

sử dụng nhiều hơn một Blockchain là Ethereum để lưu trữ các bản ghi, do đó

chưa cân nhắc đến việc sử dụng các giải pháp Cross-Chain Mặt khác, hệ thống cũng chưa cân nhắc đến việc bảo vệ quyền riêng tư của người dùng khi xác thực

các bản ghi.

Gayathiri và các cộng sự đề xuất hệ thống cho phép chứng chỉ số được

chuyển đổi từ chứng chỉ giấy và lưu trữ trên blockchain cùng với giá trị hash.Một ứng dụng trên nền tảng Android được phát triển cho phép các cơ sở đàotạo có thể đăng ký học sinh và tải lên chứng chỉ kỹ thuật số của học sinh lênblockchain Nhà tuyển dụng/người kiểm tra có thể sử dụng ứng dụng này để

xác minh tính xác thực của chứng chi Song, công trình này thiếu đi sự liên kết giữa nhiều Blockchain đồng thời chưa thực sự quan tâm đến việc bảo vệ quyền

riêng tư của học viên.

Saleh và các cộng sự [38] đề xuất một Framework dựa trên blockchain cho việc xác thực chứng chỉ giáo dục Framework này dựa trên Hyperledger Fabric,

một nền tang Private Blockchain phù hợp cho trường hợp này nhờ các tính năng

như dit liệu riêng tư, điều khiển quyền truy cập dựa trên vai trò và các tính năngtương tự Người dùng như học sinh, trường đại học và nhà tuyển dụng có thểtương tác với blockchain để phát hành, chia sẻ và xác thực chứng chỉ một cách

đáng tin cậy mà không cần trung gian Tuy nhiên, Framework này thiếu di sự

tương tác giữa nhiều Blockchain, giảm đáng kể khả năng mở rộng, đồng thời,

Framework này cũng chưa xét đến việc bảo vệ quyền riêng tư khi xác thực văn bằng

Khuu Minh Phong 20 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 29

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

Arul và các cộng sự [9] đề xuất ứng dụng công nghệ blockchain và NET đểgiải quyết vấn đề về chứng chỉ giả bằng cách cung cấp một cách có thể kiểm

chứng và chống làm giả khi phát hành, sở hữu và xác thực chứng chỉ số trên

mạng lưới phi tập trung Điều này đảm bảo tính xác thực và ngăn ngừa làm giả

các chứng nhận thông qua việc xây dựng các chứng chỉ hoạt động như các NFTs

bằng tiêu chuẩn ERC721 Tuy nhiên, bài báo chỉ mới đề xuất việc ứng dụngtrên một Blockchain, chưa xét đến việc trao đổi thông tin chứng chỉ giữa nhiềuBlockchain, đồng thời, trao đổi bằng NFTs có thể dẫn đến lộ nhiều thông tin

nhạy cam nếu không áp dụng các kỹ thuật và công nghệ đảm bảo quyền riêng

tư.

Wu và các cộng sự đề xuất giao thức dựa trên Zero-Knowledge Proofs

về vị trí địa lý (zk-PoL) dựa trên blockchain nhằm bảo vệ quyền riêng tư vị trí

của người dùng trong các dịch vụ dựa trên vị trí Ứng dụng chính được đề xuất

và đánh giá là dành cho các dịch vụ dựa trên vị trí yêu cầu chứng minh vị trí,

chang hạn như phiếu giảm giá/phần thưởng, khuyến mãi Bằng cách sử dụnggiao thức zk-PoL, người dùng có thể sử dụng các dịch vụ này trong khi vẫn duy

trì các biện pháp bảo vệ quyền riêng tư mạnh mẽ đối với dữ liệu vị trí của họ.

Dù cho tập trung rất mạnh vào mảng bảo vệ quyền riêng tư của người dùng,

ứng dụng vẫn chưa xét đến khả năng tương tác giữa nhiều Blockchain, chang

hạn như giữa nhiều cửa hàng liên kết với nhau trong ngữ cảnh mỗi cửa hàng

vận hành một Blockchain riêng.

de Vasconcelos Barros và các cộng sự tập trung vào việc khả năng ứng

dụng Self-Sovereign Identity (SSI), blockchain, và ZKPs để xây dựng giấy thông

hành tiêm chủng kỹ thuật số bảo vệ quyền riêng tư Ứng dụng chính được thảo

luận là hệ thống thông hành tiêm chủng kỹ thuật số bảo vệ quyền riêng tư, cho

phép cá nhân chứng minh tình trạng tiêm chủng của mình một cách tôn trọng

quyền riêng tư của họ và kiểm soát dữ liệu được chia sẻ như thế nào thông qua

việc sử dung SSI và ZKPs.

Khuu Minh Phong 21 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 30

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

Nhìn chung, các nghiên cứu liên quan hiện tại đều là các công trình có sự đầu

tư cao và đạt hiệu quả khả quan, song, các nghiên cứu đều thiếu một hoặc cả hai yêu tố quan trọng sau: khả năng tương tác liên chuỗi khối và khả năng bảo vệ

quyền riêng tư Theo hiểu biết của em đến thời điểm hiện tại, những nghiên cứu

học thuật xem xét các giải pháp chia sẻ dữ liệu liên blockchain trong bối cảnh

xác minh chứng chỉ giáo dục và tuyển dụng trong khi vẫn bảo vệ quyền riêng tu

cá nhân là còn hạn chế Diều quan trọng cần giải quyết là tìm ra một phương

pháp đảm bảo cả hai yêu tố tương tác và bảo vệ quyền riêng tư trong quá trình

chia sẻ dữ liệu giữa các tổ chức giáo dục thông qua công nghệ blockchain

Khuu Minh Phong 22 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 31

Chương 4

Mô hình đề xuất

4.1 Tình huống đặt ra

Như đã được đề cập ở trên, khi một sinh viên đã tốt nghiệp và trở thành một

người xin việc (ứng viên) Trong quy trình tuyển dụng của các công ty, nhà

tuyển dụng có thể yêu cầu ứng viên cung cấp văn bằng nhằm phục vụ cho quá

trình duyệt hồ sơ sơ bộ.

Tuy nhiên, việc sử dụng chứng chỉ giấy có thể làm rườm rà và gây bất tiện

cho quá trình tuyển dụng Mặt khác, nó dan đến nguy cơ làm giả bằng cấp màphải mất rất nhiều thời gian để có thể phát hiện được

Do đó, việc ứng dụng Blockchain làm một co sở dữ liệu lưu trữ bằng cấp của

sinh viên là một giải pháp phù hợp với thực trạng này khi các văn bằng này

không thể bị làm giả và không thể bị thay đổi Khi đó, trong tình huống đặt

ra, sẽ có một cơ sở giáo dục vận hành một Blockchain để lưu trữ các văn bằng

của học viên theo học tại cơ sở Các văn bằng này bản thân là một tài sản vật

lý của một cá nhân, do đó, hình thức lưu trữ hợp lý nhất đối với các văn bằng chính là lưu trữ mỗi văn bằng như một NFT.

Mặt khác, các công ty cũng sẽ vận hành một Blockchain nhằm lưu trữ thong

tin tuyển dụng, như lịch sử tuyển dụng Khi đó, để có thể tiến hành quá trìnhtuyển dung, Blockchain bên phía tuyển dụng cần phải yêu cầu văn bằng được

Thttps://tuoitre.vn/dung-bang-tien-si-gia-lam-truong-pho-khoa-nhieu-truong-dai-hoc-cao-dang-20231126122258771.htm

23

Trang 32

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

lưu trữ ở Blockchain bên phía cơ sở giáo dục, việc rất khó thực hiện được vì đây

là hai Blockchain hoàn toàn riêng biệt và có thể không đồng nhất với nhau

Song song với đó, giả sử như có thể chuyển đổi văn bằng giữa hai Blockchainvới nhau, bản thân một văn bằng có thể chứa rất nhiều thông tin mà ứng viênkhông muốn cung cấp cho bên tuyển dụng vì nó làm mất tính riêng tư của ứngviên, giả sử như nhà tuyển dung sẽ xem xét GPA của ứng viên, việc biết rõ GPAcủa ứng viên có thể ảnh hưởng ít nhiều đến kết quả tuyển dụng Do đó, việc cóthể xác định được một ứng viên có đủ tiêu chuẩn hay không mà không làm lộ

các thông tin cần thiết cũng nên được quan tâm.

4.2 Công nghệ sử dung

CrossCert được xây dựng như một ứng dung Web với những công nghệ Web

quen thuộc (HTML, CSS, JS) Mặt khác, để CrossCert đạt được những tinh

năng đã đề ra, nhằm có thể tương tác được với các Blockchain CrossCert đã sử

dụng các công nghệ:

e Smart Contract (ngôn ngữ Solidity): Sử dụng các Smart Contract để xử lý

các tác vụ đặc thù trên các Blockchain thành viên.

e IPFS: Sử dụng NET Storage nhằm lưu trữ các thông tin về các ZKP

Challenge, Metadata của các Certificate.

e RPC Provider: sử dung Alchemy và Infura để có thé tương tác với Smart

Contract ở tang ứng dụng

e Zokrates: Dược xây dung dựa trên zk-SNARKs module, ngôn ngữ zokrate

giúp ứng dụng có thể biên dịch các mạch và tính toán các bằng chứng dựa

trên các challenge.

e Và các thư viện Javascript khác

Khuu Minh Phong 24 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 33

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

Tính chat quan trọng nhất của Blockchain là phi tập trung và minh bach.

Do đó, khi xây dựng ứng dụng phi tập trung, các dữ liệu không lưu ở Blockchain

cũng nên thỏa mãn tính chất này IPFS là một nền tang cho phép mọi người tai

lên dữ liệu, và dữ liệu này sẽ được lưu trữ phi tập trung, tất cả mọi người có

thể truy cập được nếu họ có đúng mã CID Trong hệ thống, bản thân các thửthách để chứng minh bằng ZKPs phải được công khai để người ứng viên biếtrằng họ cần phải thỏa mãn yêu cầu nào của người tuyển dụng và họ xác thực

thông qua cách nào.

Để giao tiếp được với các Smart Contract trên các Blockchain, chúng ta cần

các RPC để tiến hành việc gọi Smart Contract và tương tác với nó Trong hệ

thống, Alchemy và cả Infura được sử dụng để chứng minh khả năng tương tác

giữa hai Blockchain.

Zokrates là một ngôn ngữ và cũng là một thư viện khá mới Zokrates cho

phép các lập trình viên viết ra các thử thách phục vụ cho zk-SNARK module.

Tính năng đáng nói nhất của Zokrates là tính năng public và private input, nhờ tính chất này, Zokrates đảm bảo được tính chất quan trọng nhất của ZKP, cho phép chứng minh ma không làm lộ ra thông tin yêu cầu Trong hệ thống,

Zokrates được tích hợp thông qua thư viện zokratesjs cho phép biên dịch mã

nguồn, sử dung Proving Key để tính toán bằng chứng, tự động sinh VerifierContract Zokrates dù mạnh mẽ, có thể hoạt động như một ngôn ngữ lập trình,

tuy nhiên, Zokrates hiện tại không mạnh mẽ như các ngôn ngữ lập trình bậc

cao khi vẫn còn thiếu đáng kể các tính năng Hiện tại, Zokrates cho phép viết racác mã nguồn dựa trên các mạch số học là chủ yếu Do đó, khả năng để sinh ra

các mã nguồn thân thiện với người lập trình cũng tương đối hạn chế, từ đó cũng

giới hạn khả năng viết nên những tính năng thân thiện với người dùng thông

qua Zokrates.

Khuu Minh Phong 25 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 34

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

4.3 Tổng quan về mô hình

Qua van đề được đặt ra, CrossCert được xây dựng như một ứng dụng liên chuỗi

phi tập trung (Cross-Chain DApp), đủ tin cậy để hỗ trợ cho quá trình xác thực

văn bằng.

CrossCert sẽ nằm giữa hai Blockchain, cơ sở giáo dục và nhà tuyển dụng,

thu thập thông tin văn bằng từ cơ sở giáo dục và tính toán bằng chứng cung

cấp cho nhà tuyển dụng

lộ phía Blockchain co sở giáo dục, trên Blockchain này sẽ được triển khai hai

Smart Contract, Student Contract và Certificate Contract, với Student Contract

hoạt động như một Smart Contract bình thường, cho phép lưu trữ, quan ly hồ

sơ của học viên Certificate Contract được viết theo chuẩn ERC-721, chuẩn NFT

Contract, sử dụng để triển khai các NFT đóng vai trò như các văn bằng

Ỏ phía Blockchain nhà tuyển dụng, trên Blockchain nay sẽ được triển khai

hai Smart Contract, History Contract va Verifier Contract History Contract hoạt động như một Smart Contract bình thường, nhằm lưu trữ va quản lý lịch

sử của quá trình xác thực Smart Contract này được triển khai nhằm cho phép

ứng viên theo dõi kết quả của quá trình ứng tuyển, cũng như bằng chứng đã được

sử dụng để xác thực Verifier Contract, bản thân cũng là một Smart Contract

đơn thuần, tuy nhiên, Contract này đặc biệt hơn các Contract khác Contract này được sinh tự động từ bộ công cụ Zokrates bằng cách sử dụng mã nguồn của mạch thử thách và Verification Key Contract này chỉ phục vụ một mục đích duy nhất đó là xác thực tính hợp lệ của bằng chứng.

NFT Storage là một nền tang IPFS miễn phí, được sử dụng nhằm lưu trữ

các Metadata của văn bằng, các thử thách và các Proving Key dùng để tính

toán bằng chứng Bằng việc tích hợp NET Storage, các Challenge, Proving Key giữ được tính minh bạch vốn có của mình.

Khuu Minh Phong 26 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 35

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

nh) "Trả thông tin văn bằng (Token Metada) CrossCert

Nhà tuyển dụng

Cơ sở giáo dục

Sir dụng Proving Key được lưu ‘Sut dung Challenge được lưu

Sử dung Metadata được lưu.

NFT Storage

Hình 4.1: Tổng quan về mô hình

Tổng quan về quy trình 9 bước sẽ được mô tả thông qua hình 1.2] Quy trình

được phát biểu cụ thể như sau Đầu tiên, người ứng viên sẽ liên kết ví của

mình vào CrossCert nhằm cho phép CrossCert lấy được địa chỉ của người dùng

trên Blockchain Sau đó, CrossCert sử dụng địa chỉ đó để tiến hành truy vấn

Certificate ID trên Blockchain cơ sở giáo dục Sau đấy, để chắc chắn ứng viên

không sử dụng văn bằng của người khác, CrossCert yêu cầu ứng viên nhớ và

tự nhập Certificate ID của mình, kiểm tra nó với kết qua trả về từ Blockchain

cơ sở giáo dục Nếu trùng hợp, tiến hành truy van Metadata của Certificate,

qua đó, xác định tiêu chí mà nhà tuyển dụng yêu cầu (giả sử GPA) CrossCerttruy vấn vào IPFS để lấy được Proving Key va challenge, sau đó sử dụng cáctài nguyên này để tính toán bằng chứng Gửi bằng chứng sau khi tính toán cho

hàm verify của Verifier Contract Dựa vào kết quả trả về của quá trình xác thực

bằng chứng, hiển thị thông báo tương ứng cho cả ứng viên và nhà tuyển dụng

Khuu Minh Phong 27 Khóa 2020 DHCNTT - ĐHQG TPHCM

Trang 36

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

$ lộc sốt

Bước 7: Goi Verifier Contract kiêm tra

Bước 8: Tra két quả

K

,Bước 9: Ghi lại lịch sử và thông báo

Ứng viên CrossCert Co 6 giáo _

' Bước 6b: Truy van Proving Key ' '

' < ' ' ' ' '

' Bước óc: Tính toán ZKPs h '

1 1 1

' ' ' ' ' '

1 + >

' ' ' ' ' ' ' ' ' ' ' ' ' ' '

1 1 1

>

Hình 4.2: 9 bước thực hiện của quy trình xác thực

4.4 Xây dựng mô hình

CrossCert được chia thành nhiều module độc lập với nhau Mỗi module chứa

một đoạn mã riêng biệt không phụ thuộc vào các module còn lại Thông tin

doanh nghiệp có thể lưu trữ tại bất kỳ địa điểm nào trên hệ thống Các đoạn

mã dưới đây giả định lưu trữ biến môi trường để truy cập thông tin từ bên trong

ứng dụng Điều này giúp tăng tính linh hoạt và khả năng bảo trì và mở rộng

ứng dụng.

Trước tiên sử dụng chuẩn ERC721 để xây dựng nên các Token đại diện cho

các văn bằng Thông tin các văn bằng có thể tùy biến dựa theo nhu cầu nhưng

cần tuân theo quy tắc ERC721 metadata json schema JSON Object [4.3] mo tacác trường can có trong metadata của ERC721 Token Metadata Scheme này

Khuu Minh Phong 28 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 37

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

cũng có thể được sử dụng bởi Opensea, một nền tảng cho phép tất cả mọi ngườixem các NFT đang được triển khai

Hinh 4.3: ERC721 metadata json schema

Ngoài các trường bắt buộc như "name", "description", "image", để tương

thích được với CrossCert, metadata của các NFT nên được thêm vào các trường

như JSON Schema được mô tả trong hình [4.4] và |4.5|

Khuu Minh Phong 29 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 38

Khóa luận tốt nghiệp

eee

{

Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

"title": "Additional Data For ERC721 Certificate Token",

Hình 4.4: Thong tin văn bằng đề xuất

Khuu Minh Phong 30 Khóa 2020 DHCNTT - DHQG TPHCM

Trang 39

Khóa luận tốt nghiệp Sử dụng ZKP hỗ trợ xác thực van bằng liên chuỗi

// upper part of json schema

“required”: [ "name", “ID” ]

} } }›

"required": ["GPA", "credits", “courseTaken" ]

}›

"classification": {

"type": “string”

} }›

"required": ["information", "major", "result", "classification"]

Hình 4.5: Thong tin văn bằng đề xuất (tiếp theo)

Sau đấy, xây dựng một ERC721 Smart Contract với mã nguồn và tiến

hành triển khai lên Public Blockchain Ethereum, sử dụng Sepolia Testnet đóng

vai trò như Blockchain của một cơ sở giáo dục bất kỳ Mint một cơ số các NET

Khuu Minh Phong 31 Khóa 2020 DHCNTT - DHQG TPHCM

Ngày đăng: 02/10/2024, 03:17

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN