Để 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 1DAI 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 2Lờ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 3Mộ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 4Danh mục hình ảnh
2.1 Minh hoa Blockcham| ẶẶ
22_ Blockcham
2.4 Minh hoa Relay Chain) 0.0.
Trang 5Khó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 6Danh 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 7Lee 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 8Khó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 9Chươ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 10Khó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 11Khó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 12rã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 13Khó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 14Khó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 15Khó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 16Khó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 17Khó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 18Khó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 19Khó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 20Khó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 21Khó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 22Khó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 23Khó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 24Khó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 25Khó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 26Khó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 27Chươ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 28Khó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 29Khó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 30Khó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 31Chươ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 32Khó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 33Khó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 34Khó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 35Khó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 36Khó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 37Khó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 38Khó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 39Khó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