Hỏ Chí Minh và các Thầy đặc những Thy Có mo ca Cổng nghệ Thông Toby lee Phạm inh hướng dẫn, giảng dạy và tạo slp 4 em rong st qu tinh họ tập rgiiề cứ và hoàn thành khôa in sống tắt quý b
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
LÊ TRÀN TRÍ THỨC:
ỨNG DỤNG CÔNG NGHỆ BLOCKCHAIN
DE XAY DUNG HE THONG THEO DOI THANH QUA HQC TAP CUA SINH VIÊN
KHÓA LUẬN TÓT NGHIỆP
‘TP HO CHi MINH - NĂM 2022
Trang 2
‘TRUONG DAI HOC SU PHAM TPHCM KHOA CONG NGHE THONG TIN
LE TRAN TRI THUC
UNG DUNG CONG NGHE BLOCKCHAIN
DE XAY DUNG HE THONG THEO DOI THANH QUA HQC TAP CUA SINH VIÊN
CHUYEN NGANH: KHOA HOC MAY TINH
KHOA LUAN TOT NGHIEP NGUOI HUONG DAN KHOA HQC: TS TRAN SON HAT
TP.HCM - NĂM 2022
Trang 3Sau thời gian học tập và rên luyện tại Trường Đại học Sư Phạm TP, Hỏ Chí Minh, bằng sự biết ơn vả kính trọng, em xin gửi lời cảm ơn chân thành đến Ban Giám hiệu, phòng, khoa thuộc Trường Đại học Sư Phạm TP Hỏ Chí Minh và các Thầy đặc những Thy Có mo ca Cổng nghệ Thông Toby lee Phạm
inh hướng dẫn, giảng dạy và tạo slp 4 em rong st qu tinh họ tập rgiiề cứ và hoàn thành khôa in
sống tắt quý bảu của Thầy,
Xin gửi lời cảm ơn chân thành đến gia đình và bạn bÈ vì đã luôn là nguồn động xiên to lớn, giáp đỡ, chia sé những khó khăn, vui buỗn cùng em trong suốt thời gian thực hiện khóa luận
đã đã cổ gắng hoàn thành khỏa luận với tất cả sự nỗ lực nhưng không thể tránh khỏi những thiêu st Em kính mong nhận được sự thông cảm và chỉ bảo của quý Thầy Cô cùng bạn b
Em xin chin thành cảm ont
TP Hỗ Chỉ Minh, ngày 03 thắng (4 năm 2022 Sinh viên thực hiện
Lê Trần Trí Thứ
Trang 41.4.1 Đối tượng nghiên cứu
1.42 Phạm vì nghiên cứu
CHƯƠNG 2 CÔNG NGHỆ BLOCKCHAIN VÀ HỆ THONG FILE PHI TẬP
Trang 5
32 Lưu trữ thảnh quả học tip ttn blockchain, 31
3.2.2 Hop ding thông mình cho chứng nhận 37
3.3 Xây dựng ứng dụng web ghi nhận thành quả học tập 42
S32, Hướng phát iễn tiếp theo,
Trang 6
LTS | Long Term Support NFT | Non-Fungible Token
Trang 7DANH MUC BANG BIEU Bang 21 -So sinh m6 hin Server - Client vi P2P 8
Bảng 42 Các công cụ phát iển hệ thông
Bing 43 Thing kệ Hới lan bực Mộc và pt isc a wen thống
Trang 8Hình 4.6 - Mia is ad su a ch agi nhận THình 4 7 Màn hình hệ thông chứng s0 sl
Hình 4.10 - Màn hình chứng nhận ở địa chỉ người được cấp 53 Hình 4.11 - Dữ liệu tạo chứng nhận trên blockchain
Hình 4.12 - Màn hình xác thực file PDE kudo card hoặc chứng nhận 4
Trang 9hoặc làm gii thị những thông in này là không có gi Trong những năm gin diy,
công nghệ blockchain đang được nghiên cửu mạnh mẽ đẻ ứng dụng trong các lĩnh vực
thay đối của dữ iệu, một khi để liệu đã được gỉ thì không thể thay đổi được, Công này
Từ những phần tích én, nhc go ra một bệ thông để ghi nhận và lưu tr đảm
"báo được tính xác thực để lưu lại thin quả sinh viên đạt được tong quế trình học và
có thể xem lại là hết sức edn
đảng truy xuất để các tổ chức, cá nhân có nhu
thiết Cùng với công nghệ bloekchain đảm bảo tinh khả thi va kha ning ing dụng thực tiễn của để tải
Trang 103 Mạc tiêu nghiên c
Từ những phân ích trên, mục iê của đề tà là
~ _ Ứng đụng được công nghệ blockchain trong việc biểu diễn, ghỉ và tray xuất
dữ liệu thành quả học tập của sinh viên
~ _ Xây dựng một ứng dụng với giao diện dễ sử dụng để giảng viên, sinh viên có
thể thục hiện tạo các nhận xé đánh giá về sinh viên Đẳng thời cô thỄ truy
xuất các dữ liệu để xem lại, chía sẽ một cách dễ dâng
3 Đối tượng nghiên cứu
3.1 Đối tượng nghiên cứu
Để tai nghị cứu trên các đối tượng sau:
= Chuan token ERC-721
= H@ théng phan tan le phí tập trung IPES,
3.2 Pham vingl
Đồ ti nghệ cứu trong phạm vi ứng dụng trong các trường đại học
4 Phuong pháp nghiên cứu
Khóa luận sẽ áp dụng nhiều phương pháp nghiên cứu khác nhau, tuy nhiên, chủ
xu là các phương pháp sau: mô hình hóa và phân tích tổng hợp, nghiên cứu lý thuyết, thực nghiệm
Trang 11dụng như đã đặt ra ở phần mục tiêu
~ _ Nghiên cứu thực nghiệm;
«Triển khai hệ thông và thử nghiệm
‘Phan tch phản hồi của người dùng để phát triển hệ thống theo hướng tốt nhất
Sử dụng các kết quả thu được trong quá nh thực nghiệm để đánh giá tính thực tiễn của để tài
16 Cấu trúc khóa luận tốt nghiệp
Cầu trúe trình bày luận án gồm có Š chương, và tả liệu tham khảo,
~ _ Chương 1 Mở đầu, Trình bày tổng quan lý do chọn đề ải, thách thức, mục
tiều đối tượng và phương pháp nghiên cứu,
~_ Chương 2 Cơ sử lý thuyết Trình bảy các lý thuyét vé blockeh
ERC-721
~ _ Chương 3 Mô hình hệ thống Tình bài hướng tiếp cận vẫn để, mô hình hệ thống
~ _ Chương 4 Thực nghiệm Trình bảy các kết quả thực nghĩệ
~ _ Chương 5 KẾt luận và hướng phát triển Töm tắt lại những điều đạt được
Và hướng phát triển
ce
Trang 12TAP TRUNG
2.1 Blockehain
3.1.1 Giới thiệu công nghg blockehain
Bloekchain (chuỗi khối) lă một chuỗi câc khối chứa đữ liệu được liín kết với nhau bằng mê hóa vă mở rộng theo thời gian Mỗi kh chứa câc thông tin dữ liệu vă
được lín kết với khối rước đó]
Blockehain được thiết kế để chống ạ việc thay đổi dỡ liệu
~_ Khi đữ liệu được cập nhật văo hệ thống thì không 6 câch năo thay đổi được
~ _ Nế một phần của hệ thống blockchain sụp đổ, những nút khâc trong mạng sẽ
Ấn hoạt động để bảo vệ thông tín
Công nghệ blockehain được sử dụng để lưu trũ xâc nhận vă truy thông in, dữ liệu mă không phụ thuộc văo bín thứ ba,
Đlockchsin ứng dụng cho câc hợp đồng, giao địch một câch an toăn 1.13 NÍn tăng của blockchain
Nền tỉng của công nghệ blockchan được phât tiển đựa trín bai kỹ thuật chính lă
hăm bảm vă chữ ký số
2.4.21, Him băm
4) Khâiniện hăm bêm
‘Hm bm (has luncion) lă thuật toôn đăng để ảnh xạ đ liệu có ích thước bắt
có ích thước cổ định 1] Giâ tị băm được dùng đểđại diện
kỷ sang một giâ trị "băm"
cho thông tin
Hăm bảm lă băm một chiu, giâ tị của hăm bảm lă duy nhất vă “Ồ” cổ thể suy
ngược li nội dung hay độ dăi bạn đầu của nội dung gốc
<1
Trang 13với độ đài 128 bít, Hàm băm MD4 đưa ra vào năm 1990, sau đó một năm phiên bản được công bổ trong Hồ sơ Liên bang năm 1992 và được chấp nhận làm tiêu chuỗn vào đài 160 bit Ngày nay ta vẫn thường thấy một số chứng chỉ web được mã hóa bằng SHA
b) Đặc tính
Mầm băm h là hầm một chiều với các đặc ính sau: [1]
~ _ Với thông tín đầu vào x, chỉ thủ được duy nhất giá trị Z = hG)
~_ Nếu dữ liệu trong x bị thay đổi hay bị xóa để trở thành x” th giá trị hàm băm h(x!) # h(x) Cho dù là một sự thay đổi nhỏ thì giá trị bảm h(x) cũng sẽ:
thay đổi Do đó hai thông in khác nhau thì giá trị băm sẽ khác nhau + Kho 66 thé suy ra nội dung gốc từ trị băm Nghĩa là với giá trị z = A(x)
khó có thể suy ngược lại x kể cả hi biết hàm băm fh,
©) Ung dung cia ham băm
Hàm băm được ứng dụng trong nhiễu img dung the t
~ _ Đảm bảo dữ liệu không bị sữa đổ: Khi nhận được tài liệu có thể so khớp lại với hàm băm để đám bảo toàn vẹn dữ liệu
- _ Hỗ trợ các thuật toán chữ ký số: Hàm băm giúp tạo ra một giá trị đại diện cho tải iệu, nhờ đỏ việc ký trên giá trị đại điện đó giúp tiết kiệm thời gian sơ với việc ký trên tài liệu lớn ban đầu,
= _ Xây dựng edu trúc dữ liệu bảng băm: Bảng băm là một cấu trúc dữ liệu cho phép tổ chức lưu trữ và tìm kiếm dữ liệu một cách nhanh chóng và thuận tiện
Trang 14
-I3-4) Khải niệm
VỀ mặt sông nghệ, chữ ký số là một thông điệp dữ liệu được mã hóa gắn kêm theo thông điệp dữ liệu nhằm xác thục người gửi thông điệp
Quá trình ký và xác thực bằng chữ ký số diỄn ra như sau
~ _ Người gửi dùng hàm băm để tôm tắt nội dung thành một thông điệp tôm tắt (Message Digest),
~ _ Người gửi sẽ tiếp tụe mã hóa bản tôm tất thông điệp bằng khóa bí mật của mình (sử đọng phần mềm bỉ một được cơ guan chứng thực cắp) để tạo thành
một chữ kỹ s6 (Digital signature)
~ _ Người gửi sẽ gửi nội đong ban đầu kêm theo chữ ký số này và gời bản thông
điệp tóm tắt gn kèm với chữ ký cho người nhận
~ _ Sau khi nhận được, người nhận sẽ dùng khóa công khai của người gửi để giải
mã chữ ký số thành bản thông điệp tôm tắt
~_ Người nhận sẽ so sánh bản thông điệp tỏm tắt giải mã được với bản thông
điệp tôm tắt nhận được Nếu giống nhau tức là chữ ký sổ đó là xác thực và thông điệp không bị thay đổi trên đường truyền đi
Trang 15
-I4-Công nghệ bloekchain tương đồng với một cơ sở dữ liệu chỉ khác với các cơ sở
dữ liệu thông thường ở việc tương tác với dữ liệu Để hiểu vẻ blockchain, cần tìm hiểu
sắc định nghĩa sm: chuối khối (blockehain), co ché đồng thuận phí tập trung
(decentralized consensus), tinh toán tin cậy (trusted computing), hợp đồng thông minh
(smart contract) Minh inh toán này là nền tản của việc tạo ra các ứng dụng phân tin,
2.1.3.1 Chudi khối
Một chuỗi (cbain) bao gồm nhiều khối dữ liệu được liên kết với nhau bởi gi trị băm Trong mỗi khối dữ liệu đều chúa một giá tị bãm đại điện cho kh i, va trong mdi hối ngoại trừ khối khởi tạo đều lưu thông tin về giá trị bãm của khối trước nó (Giá trị băm của bloek cha - Parent hash)
inh 2.2 Mé hinh chuéi bhi (lockchain) [13]
-M&i block trong blockchain bao gém ee thành phầm:
+ Index (Block ): Thiet eva block (Block Kh to có thứ tự 0) + Hash Gite im cia block
+ Previous Hash: Git bim của blocktrước
‘Timestamp: Thai gian tg eta Block
‘© Data: ‘Thong tin do ligu hr tri trong block + Nonee: Giá ị biển thiên để tìm ra gid tj bm thoa man yu edu của mỗi chuỗi
Trang 16
Giá tị băm (Hash) được tạo ra từ toàn bộ cée théng tin cin thiết của block Mor chudi dupe cho 1a hop If néu gid tri Previous Hash cba mai block giống với
sf tr Hash ta block tube ms (ngoa tr Kh kh tạo vì không có block trước nổ)
Blockchain sr dung kiến trúc mạng ngang hing (peer-to-peer ~ P2P) cdn gọi là
“mạng đồng đẳng Khác với mô hình Server ~ Client (May chủ ~ My khich) truyén thống, PP có nhiều điểm khác bit,
"Hình 34 - Mộ hình Server Client vi P2P
Trang 17
-1-CHƯƠNG 3 HE THONG GHI NHẬN THÀNH QUA HQC TAP TREN NEN TANG BLOCKCHAIN
3.1 Chứng nhận và kudo card
Thành quả học tập bao gồm những e hoạt động khi tham gia ở trưởng, xác nhận điểm số và những đồng góp của cá nhân được giáng viên, bạn bè khen ngợi trong qué trình học tập Với những hoạt động, xác nhận điểm số ta sẽ lưu tữ lại dưới dạng
chửng nhận càng có giá trị Ching hạn chứng nhận hoàn thành khóa học của tô chức
cảng uy tín sẽ cảng có giá trị cao hơn,
Kudo card là những thể để ghỉ nhận những đóng góp của một cá nhân dành cho tập thể Bắt cứ ai trong tập thể cũng có thể sử dạng để khen ngợi các thành viên khác nhân cho tập th Trong môi tường gio dụe, kudo card được sử dụng để giáo viên
để cảm ơn giảng viên phụ trch lớp họ giảng dạy hiệu quả, đ cảm em và khen các
thành viên khác trong lớp học đã giáp đỡ hoặc đóng góp nhiều cho nhóm,
Trang 18Cúc dẫu mũi tên đại diện cho cấu trúc map, trong cấu trúc mạp dữ liệu luôn
và ứng với mỗi key là một dữ iệu (value) tương ứng Biển cuzzTokenTp: Mỗi NET trong hợp đồng sẽ có một ID duy nhất phân đăng để lưu ID cho NFT kế tếp được tạo Sau mỗi lẫn tạo biển này sẽ được tăng lên 1
= Clip token TD > addressOwner: MBi token sẽ do một người sở hữu, ứng: với mỗi ID đại điện cho token sé map dén dja chỉ của người sở hữu
Cập tokenTD 3 ozi: mỗi token sẽ được mạp với đường dẫn đến dữ liệu của IPES được lưu trữ trên IPES gọi là URL
Trang 19
-33-sẽ lưu lại mã bash của nội dung file, ở đây sử dụng hàm hash một chiểu SHA- token,
Cặp addressOwner > [tokenIDs]: méi địa chỉ sẽ được map với một
danh sách các ID của token để dễ dàng truy vẫn các chứng nhận cũng như kudo ca của mỗi người
~_ Cặp tolkenzb > einestamp: dé lu tt thoi gian mà NET được tạo rà trên bokhain
Cặp tokenTp > addressCreate dé hm tt thing tn người cắp NT,
= Clip teken7D > disablestatus: để lưu thông tin trang thái kudo card
có đang bị võ hiệu hóa hay không
tCác thao tắc chính trên hợp đồng thông minh kudo card: 4) Tao kudo card (Mint function)
Mã giả 3.2: Tạo kudo card
FONCTION mint (address fron, address to, trí, hashEile):
Trang 20
+okenOF [address_ to] push (newTD}
currTokenID = cursTokenID + 1
Để thực hiện tạo một kudo card, ta cần cổ hông từ địa chi người gi, người nhận,
thông tin uri eta đường dẫn đến ñe nội dung PDF kudo card va hash cia fle PDE Judo card, Dau tign him sẽ thực hiện kiểm tra các điều kiện
lưu lại một số thông ìn để xác thực về sau gồm thời gian dữ liệt
Mã hanh có đúng (heo chuẳn SHA-256,
Mi hash di tn ti trên blockcbain hay chưa dựa vào cập map hashEi 1e >
tokenID (bién hashEile2ID trong mã giả) giúp ta dễ dàng xác định
được, nêu hanh chưa ôn ti trên blockebain tì map sẽ tr về giá trị 0, Điều Kiện này giúp đảm bảo các kudo ca là độc nhất
~ _ Kiểm tra xem địa chỉ người tạo kuổo card và người được nhận phải khác nhau
Vì không thể tự tạo kudo card cho chính bản thân
u cho kudo card và 4a sẽ tiền hành gắn dữ li
Néu đã vượt qua các kiểm tra trê
được thêm vào
lockchain và địa chỉ người tạo
Me
Trang 21Mã giả 3.3: Truy vẫn kodo card
FUNCTION getTokenOf (address!
Listuriofroken = []
FOR EACH id IN tokenOf [address]
ListUriofToken.push(uriof[id)} ENDEOR,
RETURN ListUriofroken
Đầu tên ta stim xem địa chỉ đang nắm giữa những token có ID nào bằng cặp map addressOwner > (cokentDs| (biến telenO£ trong mã gi), sau đó ứng
ới mỗi ID ta sẽ lấy tr theo từng ID bằng cặp map tokenTD ^ ri (biến uriO
trong mã giả), cuối cùng ta sẽ được một danh sách các uri dẫn đến dữ liệu PDF file của
ce kudo card cia mai ti khoản
©) Thaw tde vi higu hoa hudo card
Mã giá 3.4: Vô hiệu hóa kudo card
FONCTION disabletoken (addzess, 14):
IF urioffid) == +"
RETURN “ID khong họp le”
TẾ createBy|[id] != address
RETURN *Khong phải nguọi tao token”
IF block timestane timestamptid) > 1 day: