Tải bản đầy đủ (.pdf) (13 trang)

Nghiên cứu blockchain và ứng dụng vào quản lý điểm đại học (đồ án SE121 l21)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.03 MB, 13 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO ĐỒ ÁN 1

Nghiên cứu blockchain và ứng dụng
vào quản lý điểm đại học
Giảng viên hướng dẫn

: Nguyễn Tấn Tồn

Thực tập sinh

: Phạm Huy Phát

MSSV

: 15520604

TP. Hồ Chí Minh, 06 tháng 7 năm 2021

1. Giới thiệu, mô tả vấn đề:
Từ trước đến nay đã ln có những lo ngại về tính minh bạch của hệ thống chấm
điểm hiện tại, đặc biệt là những hệ thống cho các kỳ thi lớn như kỳ thi tuyển sinh
đại học. Điểm số có thể được chỉnh sửa để phục vụ lợi ích của một nhóm nhỏ, loại bỏ


tính cơng bằng trong một cuộc thi. Với sự trợ giúp của cơng nghệ blockchain, chúng
tơi có thể thiết kế một hệ thống thực thi quy tắc vào mã và phơi bày mọi hoạt động
của nó để kiểm tra nhằm phát hiện và ngăn chặn các ý định gian lận kết quả.


2. Các cơng trình nghiên cứu, dự án liên quan:
ERC-721 [1] bắt đầu như một bản thảo EIP được viết bởi Dieter Shirley và lần đầu
tiên xuất hiện trong dự án Crypto Kitties bởi Axiom Zen. ERC-721 là một tiêu chuẩn
mở, miễn phí mơ tả cách xây dựng các đồng token không thể thay thế và duy nhất
trên chuỗi khối Ethereum. Trong khi hầu hết các đồng token đều có thể thay thế,
hốn đổi giá trị cho nhau, các đồng token theo chuẩn ERC-721 đều là duy nhất.
Ngày nay, loại token này đang được sử dụng để tạo ra các tài sản có tính sưu tầm ảo
như tranh, nhạc, vật phẩm trò chơi điện tử.
OpenZeppelin [2] là một tổ chức đã tinh chỉnh rất nhiều mô-đun trong phát triển
blockchain. Công việc của họ đưa ra một tiêu chuẩn cho dApp (ứng dụng phi tập
trung) an toàn, mạnh mẽ và có thể mở rộng. Trong bài báo này, thiết kế được
khuyến nghị trong đặc điểm kỹ thuật Kiểm soát truy cập [4] và mẫu ERC-721 [5]
được tuân thủ nghiêm ngặt.
EIP-1102 [3] đảm bảo ứng dụng yêu cầu sự đồng ý của người dùng để kết nối với ứng
dụng. Trước đề xuất này, các ứng dụng thường ngầm kết nối logic của chúng với ví
của người dùng.
Trường đại học Holberton năm 2016 đã thử nghiệm mơ hình lưu trữ điểm thi và
phát hành chứng của các sinh viên trên nền tảng blockchain sơ khai nhất - mạng
lưới Bitcoin.[9]

3. Trình bày giải pháp:
3.1. Ý tưởng khái quát:
Ý tưởng chính là làm cho kết quả điểm số không thể bị chỉnh sửa sau một khoảng
thời gian ban đầu để ngăn chặn việc sửa đổi bất chính và dữ liệu sẽ dễ dàng được xác


thực bằng cách tra cứu trong hợp đồng thông minh được triển khai trên mạng
Ethereum. Kết quả điểm số sẽ được đại diện bởi 1 đồng NFT và có các thuộc tính
riêng của nó, chỉ được xuất bản bởi các tài khoản đã được cấp quyền. Giải pháp đầy
đủ cũng xem xét 2 yếu tố quan trọng: quyền riêng tư và chi phí vận hành. Tất cả các

tài khoản sẽ được đăng ký theo địa chỉ blockchain, áp dụng KYC và kết quả sẽ được
chia sẻ dựa trên phân quyền. Về vấn đề chi phí, thành phần đơng nhất của hệ thống
là các thí sinh sẽ khơng cần chi trả bất kỳ 1 phí vận hành nào khi tham gia sử dụng
bao gồm luôn cả khâu đăng ký tài khoản. Bên cạnh đó, thành phần trên blockchain
sẽ chỉ lưu trữ một hàm băm dữ liệu rõ ràng để giảm chi phí cho việc lưu trữ phi tập
trung. Quan trọng nhất, mọi tham chiếu và đột biến đối với việc lưu trữ dữ liệu luôn
bao gồm cả cơ sở dữ liệu phi tập trung và bản ghi blockchain để đảm bảo tính tồn
vẹn của dữ liệu.

3.2. Tổng qt hệ thống:

Fig 3.2. Sơ đồ thành phần của giải pháp

Có 4 đối tượng người dùng được quan tâm đến trong phần mềm:
-

Quản trị viên

-

Người chấm điểm

-

Tra sốt viên

-

Thí sinh dự thi


Những tính năng sẽ được thiết kế để phục vụ cho những đối tượng sử dụng này
khiến việc tổ chức tham gia và kiểm tra diễn ra ngay trên hệ thống một cách thấu
đáo và chặt chẽ.


3.3. Các tính năng trong bản Proof-of-concept:
3.3.1. Đăng kí thí sinh:
Đối tượng sử dụng: quản trị viên và thí sinh.

Fig 3.3.1. Sơ đồ Swimlane cho tính năng đăng ký người thí sinh

Một người dùng khi chưa đăng ký sẽ bắt đầu việc tham gia vào hệ thống bằng cách
gửi các thông tin giúp hệ thống liên kết địa chỉ Ethereum với danh tính thật của họ.
Người quản trị viên sẽ kiểm tra các thông tin này, khi đã hợp lệ sẽ tiến hành đăng ký
địa chỉ ví của người dùng lên hợp đồng thông minh và lưu trữ của phần mềm. Người
dùng sau đó đã trở thành thí sinh và có thể xem kết quả của những bài thi của mình
ở trang Profile.

3.3.2. Tạo kì thi và chấm điểm:
Đối tượng sử dụng: người chấm điểm.


Fig 3.3.2 Sơ đồ sequence cho quá trình tạo ra một token điểm

Token điểm bao gồm 4 thuộc tính: id duy nhất của nó, chủ đề (Tốn, Văn, Anh,…),
điểm và địa chỉ ứng viên. Chỉ những tài khoản đã được hợp đồng thơng minh xác
nhận là "minter" mới có thể tạo / đúc [7] các token này. Khi điền vào các trường
chủ đề, điểm số và địa chỉ ứng viên, hàm băm SHA-256 [8] sẽ được tính tốn dựa
trên đầu vào của ba trường đó. Ở đây, chúng tơi khơng lưu thông tin đăng nhập rõ
ràng của ứng viên để ẩn danh. Người khai thác sẽ được yêu cầu ký vào giao dịch,

được sử dụng để báo hiệu hành động đào tiền cho hợp đồng thơng minh. Sau đó,
ứng dụng sẽ đợi sự kiện từ mạng blockchain để thực hiện bất kỳ công việc nào tiếp
theo.
Tại hợp đồng thông minh, nó sẽ kiểm tra xem người gửi hành động "đúc token" có
vai trị hợp lệ hay khơng (MINTER_ROLE). Nếu vậy, token sẽ được đính kèm với
một id gia tăng và thời gian cập nhật cuối cùng được tính tốn. Thời gian kết thúc
cập nhật được xác định bằng cách thêm khoảng thời gian đã xác định (1 ngày) vào
dấu thời gian của khối [6] ghi lại các giao dịch tạo token. Sau đó, hợp đồng phát ra
sự kiện "Tạo" với id và băm của token mới dưới dạng dữ liệu được phát.
Sau khi bắt được sự kiện "Tạo" với hàm băm dự kiến, dApp sẽ lưu trữ thông tin chi
tiết của token vào cơ sở dữ liệu tập trung, có id làm chỉ mục. Token hiện có thể được
truy vấn hoặc cập nhật trong một khoảng thời gian ngắn.


Fig 3.2.2. Sơ đồ Activity tính năng cập nhật token

Người dùng sẽ chỉ định id đồng token để chỉnh sửa và điền thơng tin chi tiết của nó.
Để cập nhật token điểm, tài khoản phải là người tạo token và nhãn thời gian của
khối [6] tại thời điểm thực thi phải nhỏ hơn thời gian kết thúc cập nhật của token.
Nếu hợp lệ, token sẽ được cập nhật, sau đó hợp đồng sẽ phát ra sự kiện ‘Cập nhật’.
Cơ sở dữ liệu tập trung sẽ dựa trên dữ liệu được truyền phát từ sự kiện 'Cập nhật' và
thông tin đầu vào của người dùng để cập nhật phần dữ liệu tương ứng.

3.3.3 Quét hệ thống:
Đối tượng sử dụng: tra soát viên.
Token hợp lệ nếu số băm được truy xuất từ hợp đồng thơng minh bằng với chuỗi băm
được tính tốn ngay trên trình duyệt của nó.


“MÃ_BĂM_TRUY_XUẤT_TỪ_BLOCKCHAIN =

MÃ_BĂM_TÍNH_TỐN_ĐƯỢC_TRÊN_TRÌNH_DUYỆT”

Người dùng nhập danh tính của token.
dApp sau đó sẽ lấy dữ liệu khác nhau từ hai vị trí: blockchain và cơ sở dữ liệu tập
trung.
Các chi tiết từ tập trung sẽ trải qua q trình tính tốn băm giống như giai đoạn đúc
[7] và đầu ra sẽ được so sánh với băm được truy xuất từ ​blockchain để kết luận xem
kết quả có đáng tin cậy hay khơng.

4. Cài đặt kĩ thuật:
4.1. Technical stack:
Frontend: ReactJs
Cơ sở dữ liệu trung tâm: Google Firebase
Nền tảng blockchain: Ethereum
Mô phỏng môi trường blockchain: Ganache

4.2. Chi tiết kĩ thuật:

Hợp đồng thông minh của dự án kế thừa 2 mẫu hợp đồng tiêu chuẩn của
OpenZeplin đã đề cập ở phần 2:
ERC721: phụ trách quản lý những kết quả điểm thi dưới dạng token.


AccessControl: quản lý phân quyền truy cập của các tính năng có trong hợp
đồng.

4.3. Phần mềm kết quả:
Trang chủ



Đăng ký thành viên (cho người dùng muốn làm thí sinh)

Bảng kết quả (cho thí sinh)


Xét duyệt thành viên (quản trị viên)

Chấm điểm cho thí sinh (người chấm điểm)


Quét hệ thống (tra soát viên)

Xem chi tiết video và screenshot cách thức hoạt động tại:
/>sp=sharing
Source code của phần mềm:
Smart contract: />Interface: />

4.4. Các chỉ số đo lường:


Hệ điều hành: Mac OSX



Trình duyệt: Brave



Bộ nhớ trong của thiết bị: 16Gb




Tốc độ Internet: 12mbps

1

Dung lượng build của giao diện

2

Tốc độ tải giao diện

3

Tốc độ xử lý transaction (trên mô

9.4mb tổng cộng
530kb cho trang chủ
1500ms để load đầy đủ

gần như tức thì (<100ms)

phỏng Ganache)

4

Chi phí mỗi giao dịch

232,912 gwei ~ 0.004754176 USD


5. Hướng tiếp cận tương lai:
-

Tích hợp dịch vụ KYC cho người dùng muốn trở thành thí sinh.

-

Hồn thiện tính năng tạo cuộc thi và giao trách nhiệm cho phân quyền quản

trị viên.
-

Hoàn thiện giải pháp data migration cho hợp đồng thông minh.

-

Thiết lập phiên bản đầu tiên lên mạng kiểm thử (Rinkeby / Steklo).

-

Thử nghiệm IPFS.


6. Kết luận:
Tuy còn nhiều điều cần phải cải thiện để sản phẩm có thể đi đến đại chúng nhưng
với những gì đã làm hiện tại, đồ án phần nào đã thể hiện được tác dụng của
blockchain trong lĩnh vực cơng chứng tài liệu. Đây là một khía cạnh sẽ được khai
thác trong tương lai gần, bên cạnh mơ hình Defi đang thịnh hành trong cộng đồng
blockchain hiện nay.
Sau cùng em xin được gửi lời cảm ơn chân thành đến thầy giảng viên Nguyễn Tấn

Tồn, người đã ln tích cực cho em những góp ý giá trị để em có thể hoàn thiện
sản phẩm hơn sau mỗi lần tiếp nhận phản hồi.

7. Tài liệu tham khảo:
[1]( - bởi Dieter Shirley, năm 2021
[2]( bởi Paul Bouchon, Erik Marks năm
2018
[3]( bởi OpenZeppelin, năm 2021
[4]( - bởi
OpenZeppelin, năm 2021
[5]( - bởi
OpenZeppelin, năm 2021
[6]( - bởi JAKE
FRANKENFIELD, năm 2021

[7]( - bởi Wikipedia, năm 2021
[9]( - CNBC, năm 2016



×