Tải bản đầy đủ (.docx) (73 trang)

Nghiên cứu BLOCKCHAIN và ứng dụng vào bài toán phòng chống gian lận thi cử (Luận văn thạc sĩ)

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.73 MB, 73 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

Lưu Quang Đạt

NGHIÊN CỨU BLOCKCHAIN VÀ ỨNG DỤNG VÀO BÀI TOÁN
PHÒNG CHỐNG GIAN LẬN THI CỬ

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

HÀ NỘI – NĂM 2020


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

Lưu Quang Đạt

NGHIÊN CỨU BLOCKCHAIN VÀ ỨNG DỤNG VÀO BÀI TOÁN
PHÒNG CHỐNG GIAN LẬN THI CỬ
Chuyên ngành: Hệ thống thông tin
Mã số: 8.48.01.04

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

NGƯỜI HƯỚNG DẪN KHOA HỌC:

TS. Đặng Minh Tuấn


HÀ NỘI – NĂM 2020


LỜI CẢM ƠN
Lời đầu tiên, em xin được gửi lời cảm ơn sâu sắc tới TS. Đăng Minh Tuấn người thầy đã luôn tận tình giúp đỡ em định hướng nghiên cứu trong suốt quá trình
làm luận văn. Đồng thời, thầy cũng là người truyền đạt cho em rất nhiều những kiến
thức bổ ích về các lĩnh vực chuyên môn cũng như các kỹ năng, phương pháp nghiên
cứu khoa học.
Em xin được cảm ơn các thầy, cô đang công tác giảng dạy tại Khoa Sau đại
học – Học viện công nghệ bưu chính viễn thông. Trong suốt quá trình học cao học,
em đã được các thầy, cô truyền đạt rất nhiều tri thức quí báu.
Em cũng xin được cảm ơn gia đình, người thân và bạn bè của em đã giúp đỡ
và hỗ trợ cho em rất nhiều trong suốt thời gian qua.


LỜI CAM ĐOAN
Tôi xin cam đoan luận văn thạc sĩ với đề tài: “NGHIÊN CỨU
BLOCKCHAIN VÀ ỨNG DỤNG VÀO BÀI TOÁN PHÒNG CHỐNG GIAN
LẬN THI CỬ ” là công trình nghiên cứu của riêng tôi. Các kết quả nghiên cứu
trong luận văn là trung thực và chưa từng đuợc công bố trong bất kỳ một công trình
nào khác.
Hà nội, ngày 25 tháng 06 năm 2020
Học viên

Lưu Quang Đạt


MỤC LỤC
LỜI CẢM ƠN...........................................................................................................i
LỜI CAM ĐOAN....................................................................................................ii

MỤC LỤC............................................................................................................... iii
DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT......................vi
DANH MỤC CÁC BẢNG BIỂU..........................................................................vii
DANH MỤC CÁC HÌNH VẼ..............................................................................viii
LỜI MỞ ĐẦU..........................................................................................................1
CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ BLOCKCHAIN.......................4
1.1.

Giới thiệu tổng quan về công nghệ Bockchain.........................................4

1.2.

Nguyên lý cấu tạo của Blockchain...........................................................6

1.2.1. Cấu trúc giao dịch...............................................................................6
1.2.2. Cấu trúc của Block..............................................................................8
1.2.3. Cấu trúc mạng blockchain và mô hình mạng ngang hàng P2P.........10
1.2.4. Các cơ chế đồng bộ đồng thuận trên blockchain...............................11
1.2.5. Sổ cái và quá trình hình thành block..................................................12
1.2.6. Hợp đồng thông minh........................................................................14
1.3.

Phân loại Blockchain..............................................................................14

1.4.

Nền tảng Hyperledger Fabric..................................................................17

1.4.1. Giới thiệu về Hyperledger..................................................................17
1.4.2. Hyperledger Fabric...........................................................................18

1.4.3. Kiến trúc của một mạng Hyperleger Fabric......................................21
1.4.4. Ưu điểm của Hyperledger..................................................................23
1.5.

Ứng dụng của blockchain.......................................................................25

Kết luận chương..................................................................................................29


CHƯƠNG 2: ỨNG DỤNG HYPERLEDER FABRIC TRONG BÀI TOÁN
PHÒNG CHỐNG GIAN LẬN THI CỬ...............................................................30
2.1.

Bài toán phòng chống gian lận trong thi cử............................................30

2.1.1. Quy trình tổ chức thi..........................................................................30
2.1.2. Đánh giá các nguy cơ gian lận có thể xảy ra trong thi cử.................33
2.1.3. Đề xuất giải pháp nhằm hạn chế gian lận trong thi cử......................33
2.1.4. Phạm vi bài toán................................................................................35
2.2.

Đề xuất mô hình ứng dụng Blockchain vào bài toán phòng chống gian

lận thi cử.............................................................................................................35
2.2.1. Mô hình tổng thể................................................................................35
2.2.2. Mạng blockchain................................................................................37
2.2.3. Ứng dụng web....................................................................................38
2.2.4. Lớp trung gian...................................................................................39
2.3.


Đề xuất một số công nghệ khác sử dụng để tăng tính khả dụng của ứng

dụng

39

2.3.1. Docker...............................................................................................39
2.3.2. Kubernetes.........................................................................................40
2.3.3. MongoDB...........................................................................................42
Kết luận chương..................................................................................................42
CHƯƠNG 3: TRIỂN KHAI THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ.......44
3.1.

Mô hình triển khai thử nghiệm...............................................................44

3.1.1. Môi trường thử nghiệm......................................................................44
3.1.2. Xây dựng mạng blockchain dựa trên nền tảng Hyperledger Fabric. .44
3.1.3. Xây dựng Lớp trung gian...................................................................48
3.1.4. Xây dựng ứng dụng web.....................................................................50
3.2.

Cài đặt và triển khai thử nghiệm.............................................................50

3.2.1. Mạng Blockchain...............................................................................50
3.2.2. Lớp trung gian...................................................................................51


3.2.3. Ứng dụng web....................................................................................53
3.3.


Phân tích và đánh giá kết quả.................................................................55

3.3.1. Kết quả thực nghiệm..........................................................................55
3.3.2. Đánh giá............................................................................................57
Kết luận chương..................................................................................................58
KẾT LUẬN............................................................................................................59
TÀI LIỆU THAM KHẢO.....................................................................................60


DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT
Từ
viết tắt/Thuật
ngữ
Block/Khối
BlockHeader
CSS

Thuật ngữ tiếng
Anh/Giải thích
Block
Cascading Style
Sheets

CSDL
Hash

Database

HTML5


HTML version 5

NodeJS
Peer/Node
Smart contract
Transaction/Giao
dịch

Thuật ngữ tiếng Việt/Giải thích
Chỉ các khối trong blockchain
Chỉ tiêu đề của Block
Các kỹ thuật phục vụ cho việc thêm
style cho các thành phần của trang
web
Cơ sở dữ liệu
Mã băm
Phiên bản mới nhất của HTML, có hỗ
trợ một số công nghệ đặc biệt
Nền tảng cung cấp môi trường thực thi

Peer/Node
Smart contract

ngôn ngữ Javascript phía server
Chỉ các nốt mạng trong blockchain
Hợp đồng thông minh

Transaction

Chỉ giao dịch trong blockchain

Đây là 1 khung làm việc Javascript

VueJS

Javascript framework

(ngôn ngữ kịch bản phía người dùng)
giúp cho việc phát triển các ứng dụng
web một cách nhanh chóng, thuận tiện
Là loại ứng dụng chạy trên nền các

Web/Website

Web/Website

trình duyệt, được viết bằng ngôn ngữ
HTML, ngôn ngữ kịch bản Javascript,


DANH MỤC CÁC BẢNG BIỂU
Bảng 1.1 So sánh các loại blockchain...................................................................15
Bảng 1.2 So sánh giữa mô hình Bitcoin, Ethereum và Hyperledger Fabric[5]. 17



DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Mô hình Blockchain...................................................................................4
Hình 1.2 Các block trong Blockchain........................................................................5
Hình 1.3 Cấu trúc giao dịch trong Blockchain...........................................................7
Hình 1.4 Liên kết các block.......................................................................................8

Hình 1.5 Cấu trúc block.............................................................................................9
Hình 1.6 Block header...............................................................................................9
Hình 1.7 Mô hình tính toán P2P..............................................................................10
Hình 1.8 Xử lý đồng thuận......................................................................................11
Hình 1.9 Quá trình khai thác (mining) [3]...............................................................13
Hình 1.10 Ví dụ hợp đồng thông minh trong mạng blockchain fabcar [10]............14
Hình 1. 11 Identity trong Hyperledger Fabric..........................................................19
Hình 1. 12 Peers trong Hyperledger Fabric.............................................................20
Hình 1. 13 Prototype đơn giản của một chaincode..................................................20
Hình 1. 14 Ledger trong Hyperledger Fabric...........................................................21
Hình 1.15 Kiến trúc đơn giản của một mạng Hyperledger Fabric...........................22
Hình 1. 16 Mô hình truy vấn thông tin trong Fabric [7]..........................................24
Hình 1. 17 Mô hình triển khai Fabric [7].................................................................25
Hình 2. 1 Quy trình tổ chức thi................................................................................30
Hình 2. 2 Luồng dữ liệu thông tin thí sinh...............................................................31
Hình 2.3 Luồng dữ liệu đề thi..................................................................................32
Hình 2.4 Luồng dữ liệu bài thi.................................................................................32
Hình 2.5 Mô hình tổng thể ứng dụng.......................................................................36
Hình 2. 6 Luồng dữ liệu trao đổi giữa ứng dụng và mạng blockchain.....................37
Hình 2. 7 Chức năng chính của Ứng dụng web.......................................................38
Hình 2. 8 Kiến trúc lớp trung gian...........................................................................39
Hình 2.9 Mô hình node trong kubernetes................................................................41


Hình 2.10 Kết hợp các node trong kubernetes.........................................................41
Hình 3. 1 Mô hình mạng blockchain sử dụng Hyperledger Fabric

45

Hình 3. 2 API tương tác với mạng blockchain


46

Hình 3. 3 Kiến trúc lớp trung gian

48

Hình 3. 4 Kiến trúc ứng dụng web

50

Hình 3. 5 Triển khai chaincode lên các node

51

Hình 3.6 Khởi tạo sổ cái

51

Hình 3. 7 Kết quả tạo service lớp trung gian

52

Hình 3. 8 Kết quả replication mongodb

53

Hình 3. 9 Các pods của ứng dụng web sau khi tạo

54


Hình 3. 10 Service sau khi tạo bằng kubernetes

55

Hình 3.11 Giao diện chức năng đăng nhập

55

Hình 3.12 Giao diện chức năng xác thực thông tin

56

Hình 3.13 Giao diện hướng dẫn làm bài thi

56

Hình 3.14 Giao diện chọn môn thi

56

Hình 3.15 Giao diện làm bài thi

57

Hình 3.16 Giao diện nộp bài thi

57



LỜI MỞ ĐẦU
Tính cấp thiết của đề tài:
Trong những năm gần đây cùng với sự bùng nổ của Internet, cuộc cách mạng
công nghiệp lần thứ 4 đang lan tỏa tới mọi lĩnh vực của đời sống, ứng dụng công
nghệ thông tin dần thay thế và hỗ trợ con người trong một số công việc mang lại
hiệu suất cao hơn, tỉ lệ chính xác cao hơn. Nhiều nên tảng công nghệ mới được
công bố và ứng dụng vào thực tế như trí tuệ nhân tạo (Artificial Intelligence AI), chuỗi khối (Blockchain), … Với mục tiêu đảm bảo tính an toàn, giảm thiểu chi
phí, đảm bảo tính minh bạch và xa hơn nữa là cách mạng hóa về các giải pháp bảo
mật, nền tảng Blockchain đã được ra đời.
Blockchain được định nghĩa là công nghệ xử lý và lưu trữ dữ liệu một cách phi
tập trung và an toàn dựa vào hệ thống mã hoá vô cùng phức tạp. Blockchain đang
được ứng dụng ngày càng mở rộng trong các lĩnh vực tài chính ngân hàng, logistics,
điện tử viễn thông, kế toán kiểm toán ... với những ưu điểm nổi bật. Công nghệ
Blockchain có các đặc điểm như không thể làm giả, bất biến, bảo mật, minh bạch,
phù hợp để áp dụng vào trong lĩnh vực giáo dục như cấp văn bằng chứng chỉ, tổ
chức các kỳ thi quan trọng.
Tại Việt Nam, trước thực trạng tình hình gian lận trong thi cử diễn ra vô cùng
phức tạp, đặc biệt là trong các kỳ thi quan trọng mang tính chất quyết định như kỳ
thi Trung học phổ thông quốc gia. Việc gian lận xảy ra từ chính những người làm
công tác tổ chức thi và chấm thi với những thủ đoạn hết sức tinh vi. Điều này đòi
hỏi phải có các giải pháp nhằm hạn chế tối đa những sai sót cũng như việc can
thiệp trái phép vào kết quả của bài thi, trong đó bao gồm cả những giải pháp nghiệp
vụ cũng như cần có các giải pháp công nghệ mang tính đột phát nhằm hạn chế tối
đa những gian lận này. Việc đảm bảo tính minh bạch và tin cậy trong kỳ thi là vấn
đề vô cùng quan trọng, đây cũng chính là giá trị cốt lõi mà blockchain mang lại.
Dựa trên những đặt tính nổi bật của mình, công nghệ Blockchain có thể được áp
dụng từ khâu xây dựng ngân hàng câu hỏi, tạo đề thi, thi, nhận kết quả, chấm và


công bố điểm thông qua các hợp đồng thông minh (smart contract). Để làm rõ hơn

những điểm mà Blockchain có thể áp dụng được, tôi đã chọn đề tài “Nghiên cứu
Blockchain và ứng dụng vào bài toán phòng chống gian lận trong thi cử ” cho luận
văn của mình.

Mục đích nghiên cứu:
Mục đích nghiên cứu của đề tài là nghiên cứu tổng quan về công nghệ
blockchain, nghiên cứu về nguyên tắc hoạt động, ứng dụng của blockchain đối với
các hoạt động kinh tế và khoa học của xã hội. Nghiên cứu một mô hình, hệ thống
Blockchain có khả năng hạn chế tiêu cực trong các kỳ thi. Từ đó xây dựng kịch bản
mô phỏng của hệ thống đề xuất nhằm hạn chế tiêu cực trong các kỳ thi.

Nội dung nghiên cứu:
- Nghiên cứu tổng quan về công nghệ blockchain, các ứng dụng cơ bản trong
công nghệ blockchain.
- Nghiên cứu vể sổ cái, block, giao dịch trong blockchain.
- Nghiên cứu nền tảng Blockchain Hyperledger Fabric và smart contract.
- Nghiên cứu và xây dựng mô hình kỳ thi có khả năng hạn chế tiêu cực dựa
trên công nghệ Blockchain.

Phương pháp nghiên cứu:
Tham khảo các công trình nghiên cứu, bài báo, tài liệu chuyên ngành, từ đó
đưa ra các kiến thức cơ bản về blockchain. Sử dụng các kiến thức nghiên cứu được
để đề xuất mô hình hình ứng dụng. Cài đặt và thử nghiệm thông qua các thực
nghiệm để làm rõ các vấn đề cần đạt được trong luận văn.

Ý nghĩa khoa học và thực tiễn:
Về mặt khoa học, luận văn đã cung cấp các kiến thức cơ bản về blockchain:
cấu trúc mạng, block, giao dịch, sổ cái, phân loại các hệ thống blockchain, đi sâu
vào phân tích nền tảng Hyperledger Fabric
Về mặt thực tiễn, đề tài có đưa ra các hướng ứng dụng blockchain trong đời

sống thực tiễn, đặc biệt là khả năng ứng dụng trong lĩnh vực giáo dục. Việc áp dụng


blockchain vào lĩnh vực giáo dục sẽ góp phần tạo ra một một kỳ thi minh bạch, an
toàn và tin cậy luận văn, mang lại niềm tin cho mọi người vào kết quả của kỳ thi.

Nội dung chính của luận văn
Chương 1
Trong chương này sẽ trình bày các kiến thức cơ bản về Blockchain như cấu
trúc giao dịch, cấu trúc block và mô hình tính toán đồng thuận trên mạng P2P.
Nghiên cứu cơ chế đồng bộ và xử lý đồ thuận, quá trình hình thành block và vào sổ,
phân loại các mô hình blockchain. Giới thiệu mô hình private blockchain
Hyperleger Fabric và mô hình ứng dụng. Trong chương này cũng nêu ra các ứng
dụng của Blockchain trong thực tiễn, khả năng áp dụng trong bài toán phòng chống
gian lận thi cử.
Chương 2
Chương này, luận văn tập trung phân tích quy trình tổ chức thi và phân tích
các gian lận, tiêu cực có thể xảy ra trong một kỳ thi, từ đó xác định các vấn đề cần
giải quyết, đồng thời đề xuất mô hình ứng dụng để giải quyết các vấn đề đặt ra.
Chương 3
Cuối cùng, chương 3 sẽ tập trung vào vào phân tích và trình bày việc triển
khai mô hình ứng dụng blockchain đề xuất vào một kỳ thi cụ thể, đưa ra đánh giá
kết quả thực nghiệm.


CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ BLOCKCHAIN
1.1.

Giới thiệu tổng quan về công nghệ Bockchain
Blockchain ban đầu được phát minh và thiết kế bởi Satoshi Nakamoto vào


năm 2008 và được thực hiện hóa vào năm sau đó với Bitcoin [3]
Blockchain là mô hình tính toán mạng lưới, tổ chức theo mô hình phi tập
trung, các nút mạng nối nhau từng nhóm. Blockchain có dữ liệu ghi dưới dạng sổ
cái phân tán, đồng bộ nhờ cơ chế đồng thuận. Blockchain được đảm bảo an ninh
bằng hàm băm mật mã, chữ ký số và cấu trúc lưu trữ móc xích các khối dữ liệu.
Mỗi block chứa đựng các thông tin về thời gian khởi tạo, các thông tin giao dịch và
được liên kết với các khối trước đó thông qua con trỏ hash. Blockchain được thiết
kế để chống lại sự thay đổi dữ liệu do được thiết kế trên nền tảng dữ liệu phi tập
trung. Thông tin các block trong blockchain được đảm bảo toàn vẹn bằng hàm hash
và lưu trữ trên tất cả các nút, mỗi nút sẽ chứa thông tin không thể bị thay đổi và chỉ
được bổ sung thêm khi có sự đồng thuận của tất cả các nút trong hệ thống. Ngay cả
khi nếu một phần của hệ thống blockchain sụp đổ, những máy tính và nút khác sẽ
tiếp tục hoạt động để bảo vệ thông tin.

Hình 1.1 Mô hình Blockchain


Đặc biệt blockchain có khả năng truyền tải dữ liệu mà không đòi hỏi trung
gian để xác nhận thông tin. Hệ thống blockchain bao gồm nhiều nút độc lập có khả
năng xác thực thông tin mà không đòi hỏi "dấu hiệu của niềm tin". Về cơ bản
blockchain là một chuỗi các máy tính (mỗi máy tính là một node) mà tất cả các nút
này phải chấp thuận một giao dịch (nếu giao dịch đó là hợp lệ) trước khi nó có thể
được xác nhận và ghi lại.
Với blockchain, ngoài việc có thể trỏ tới block trước đó, mỗi block còn có thể
lưu giá trị digest (giá trị hash) của khối được trỏ tới. Thông qua việc kiểm tra giá trị
hash, chúng ta có thể nhận dạng khối được trỏ tới có bị thay đổi hay không. Cấu
trúc blockchain như vậy cho phép chúng ta chỉ cần lưu giá trị của con trỏ chỉ tới
khối cuối cùng, đồng thời vẫn kiểm soát được nội dung của các khối còn lại không
bị thay đổi.


Hình 1.2 Các block trong Blockchain

(Nguồn internet)
Trong hình trên, hash là mã băm của block hiện tại, previous hash là mã băm
của block trước.
Ví dụ điển hình cho Blockchain đó là Bitcoin. Bitcoin là một tập hợp các khái
niệm và công nghệ tạo nên nền tảng của một mạng lưới tiền mật mã.
Tính chất của blockchain
Về cơ bản, blockchain có các tính chất dưới đây [6]:


Không lặp: Cơ chế đồng thuận phi tập trung của bitcoin đảm bảo rằng không
có giao dịch nào bị trùng lặp.
Tính bất biến: Một khi giao dịch được ghi lại trong blockchain và gắn vào các
block tiếp theo thì giao dịch trở nên bất biến. Tính bất biến được đảm bảo bởi sức
mạnh của năng lực tính toán vì việc viết lại dữ liệu blockchain đòi hỏi chi phí rất
lớn cho việc tính toán để tạo ra “Bằng chứng công việc”.
Tính trung lập: Mạng bitcoin phi tập trung lan truyền các giao dịch hợp lệ bất
kể nguồn gốc hay nội dung của các giao dịch đó. Điều này có nghĩa là bất cứ ai
cũng có thể tạo ra một giao dịch hợp lệ với mức chi phí và độ tin cậy phù hợp, giao
dịch có thể lan truyền và đưa vào blockchain bất cứ lúc nào.
Ngưỡng thời gian an toàn: Các cơ chế đồng thuận từ chối bất kỳ block nào có
nhãn thời gian quá xa trong quá khứ hoặc tương lai. Điều này đảm bảo rằng nhãn
thời gian trên các block có thể tin cậy được. Nhãn thời gian của một block có ý
nghĩa đảm bảo các giao dịch trong block đó.
Tính toàn vẹn: Một giao dịch sẽ được ký bởi SIGHASH_ALL hoặc các phần
của giao dịch được ký không thể bị sửa đổi mà không có chữ ký, chính vì vậy đảm
bảo giao dịch không bị thay đổi trong quá trình truyền đi


1.2.

Nguyên lý cấu tạo của Blockchain

1.2.1. Cấu trúc giao dịch
Giao dịch (Transaction) là một thành phần quan trọng trong Blockchain –
Bitcoin. Mọi thành phần khác đều được thiết kế nhằm đảm bảo rằng các giao dịch
có thể được tạo ra, lan truyền trên mạng, xác thực và ghi vào sổ cái (blockchain).
Giao dịch là cấu trúc dữ liệu mã hóa hóa sự chuyển giao giá trị giữa các đối tượng
trong Blockchain. Mỗi giao dịch là một mục ghi chép công khai trong Blockchain –
còn được gọi là sổ cái [4]


Hình 1.3 Cấu trúc giao dịch trong Blockchain

(Nguồn dựa trên hình ảnh tại website readthedocs.io)
Khi một node hình thành một giao dịch, node đó sẽ gửi giao dịch này tới các
node lân cận, từng node trong đó sẽ kiểm tra tính hợp lệ (validate) giao dịch nhận
được nếu hợp lệ nó sẽ lưu vào bộ nhớ cục bộ (mempool) và chuyển tiếp giao dịch
đó cho những node lân cận của mình, các node lân cận đó lại tiếp tục kiểm tra hợp
lệ-lưu vào mempool và chuyển tiếp, cứ như vậy giao dịch được lan truyền đi toàn
mạng. Cuối cùng giao dịch sẽ được đóng trong một block nào đó và được đào bởi
thợ đào (miner) lúc đó giao dịch mới được xác thực và lưu lại trong sổ cái
blockchain. Giao dịch có kích thước khoảng 300-400 bytes (với hệ thống bitcoin).
Mỗi một nút trong Blockchain đều phải kiểm tra tính hợp lệ của giao dịch,
việc kiểm tra này nhằm nâng cao tính xác thực của chủ sở hữu, tăng tính an toàn


cho giao dịch. Thường trong blockchain sẽ có 2 loại giao dịch đó là Coinbase
Transaction và Regular Transaction.


1.2.2. Cấu trúc của Block
Mỗi block trong blockchain được xác định bằng một mã băm do thuật toán
băm mật mã SHA256 tạo ra trong tiêu đề block (block header). Mỗi block đều chứa
mã băm của block trước đó trong tiêu đề của chính nó. Chuỗi các mã băm liên kết
từng block tới block trước tạo thành một chuỗi mắt xích đi ngược trở về cho tới
block được tạo ra đầu tiên, gọi là block gốc (genesis block).
Mỗi block chỉ có một block trỏ đến, có thể có trường hợp rẽ nhánh, 2 block cùng
trỏ đến 1 block trước nhưng đến một thời điểm có 1 nhánh dài hơn và khi đó nhánh
ngắn hơn sẽ phải xóa bỏ và dữ liệu trên nhánh này phải rollback trở lại.

Hình 1.4 Liên kết các block


Block bao gồm một tiêu đề để chứa dữ liệu, theo sau là một danh sách giao
dịch. Tiêu đề block có kích thước cố định 80 byte, trong khi một giao dịch trung
bình chứa tối thiểu 250 byte và block trung bình chứa hơn 500 giao dịch.

Hình 1.5 Cấu trúc block

a. Tiêu đề của Block

Hình 1.6 Block header

Tiêu đề của block bao gồm 3 bộ dữ liệu mô tả. Đầu tiên là một tham chiếu tới
một mã băm của block kế trước, liên kết block này với block kế trước trong một
mạng blockchain. Bộ siêu dữ liệu thứ hai, được đặt tên là độ khó (difficulty), nhãn
thời gian (timestamp), và số nonce (số dùng một lần), số này chính là thông số quan
trọng của quá trình miner (đào). Phần dữ liệu thứ 3 là gốc cây merkle, một cấu trúc
dữ liệu được sử dụng để ánh xạ toàn bộ giao dịch trong một block.



b. Định danh block:
Định danh block chính là mã băm mật mã của nó, là một vân tay số được tạo
ra bằng cách băm tiêu đề của block hai lần qua thuật toán SHA256. Mã băm 32 byte
kết quả được gọi là mã băm block – mã băm tiêu đề block. Mã băm của một block
luôn luôn xác định một block đơn lẻ duy nhất và rõ ràng, có thể được tạo ra một
cách độc lập bởi bất kỳ nút nào đơn giản bằng cách băm tiêu đề block.
Một cách thứ hai để xác định một block là bằng vị trí của nó trong blockchain,
được gọi là chiều cao block. Block đầu tiên từng được tạo ra có chiều cao là 0.

1.2.3. Cấu trúc mạng blockchain và mô hình mạng ngang hàng P2P
a. Mô hình ngang hàng P2P:
Mạng ngang hàng Peer-2-peer bao gồm rất nhiều các nút mạng liên kết trực tiếp với
nhau, trong đó mỗi nút mạng có vai trò và vị trí như nhau. Một ví dụ về ứng dụng
của mô hình này là Bittorrent, giao thức chia sẻ dữ liệu qua Internet ngày nay, hoặc
Napster ứng dụng chia sẻ nhạc trực tuyến những năm 1990
Mạng ngang hàng cho phép hàng triệu người sử dụng có thể kết nối với nhau,
hình thành một khối khổng lồ với khả năng tính toán và băng thông của tất cả các
mạng gộp lại.

Hình 1.7 Mô hình tính toán P2P

Trong mạng P2P, do không tồn tại một đơn vị trung tâm kiểm soát thông tin, độ
tin cậy của mạng này phụ thuộc vào độ tin cậy của từng nốt mạng. Do đó, vấn đề
đặt ra phải có một giải pháp chia sẻ thông tin đảm bảo được tính bền vững của các
giao dịch và quản lý dữ liệu ngay cả khi không có được sự trung thực của tất cả các


nốt mạng. Blockchain được đề cập đến như một giải pháp giải quyết việc triển khai

mô hình ngang hàng kết hợp với các giải pháp ký số nhằm hướng tới khả năng chia
sẻ khổng lồ và xác thực.
b. Cấu trúc mạng Blockchain:
Mô hình tính toán P2P trong công nghệ blockchain được ứng dụng một cách
khoa học. Bất cứ máy tính nào kết nối với blockchain Bitcoin được coi là một node.
Bất kỳ các node nào thực thi đầy đủ các quy tắc của Bitcoin được gọi là “full
nodes” (nút đầy đủ). Hầu hết các nodes trên mạng là các nodes nhỏ, nhưng các nút
đầy đủ mới là xương sống của mạng lưới. Nút đầy đủ tải về mọi khối và giao dịch,
kiểm tra chúng theo nguyên tắc đồng thuận cốt lõi của Blockchain.
Mỗi node xác minh mỗi giao dịch và mỗi khối nó nhận được trước khi
chuyển nó sang các node khác.
Nếu một giao dịch hoặc một khối vi phạm các quy tắc đồng thuận (có nghĩa là
giao dịch hoặc khối đó được 1 node xác minh là không hợp lệ), nó hoàn toàn bị từ
chối khỏi mạng, ngay cả khi mọi node khác trên mạng cho rằng nó là hợp lệ. Đây là
một đặc tính quan trọng nhất của các nodes: Chúng thực hiện đúng nguyên tắc dù
có bất cứ chuyện gì xảy ra.
Nếu giao dịch (hoặc khối) là hợp lệ, node sẽ lưu trữ chúng lại và chuyển đi tất
cả các node khác trong mạng lưới kết nối với node đó. Bằng cách này, mọi node sẽ
thực thi tất cả các quy tắc đồng thuận, và ngăn không cho bất cứ nội dung nào được
đưa vào phá vỡ các quy tắc đó.

1.2.4. Các cơ chế đồng bộ đồng thuận trên blockchain
Để đảm bảo tính bất biến của dữ liệu, blockchain sử dụng cơ chế đồng thuận.
Có 2 cơ chế đồng thuận trong blockchain là PoW(Proof of Work- Bằng chứng công
việc) và PoS (Proof of Stake - Bằng chứng cố phần)


Hình 1.8 Xử lý đồng thuận

PoW trong khai thác mỏ của Bitcoin lấy một đầu vào bao gồm Merkle Root

(về cơ bản là một hàm băm nhị phân của tất cả các giao dịch trong khối), timestamp
(dấu thời gian), khối băm trước đó và một số thông tin khác cộng với nonce là số
ngẫu nhiên hoàn toàn (0->2^31). Nếu đầu ra kết quả trong băm nhỏ hơn so với
target (mục tiêu băm) thì miner sẽ nhận được phần thưởng và sự đồng thuận (khối
mới được tạo ra sẽ được thông báo cho toàn hệ thống).
Mỗi nút đều có quyền hình thành block và gửi lên mạng, khi hai trạm đào
cùng hình thành block thì sẽ có hiện tượng Fork. Từ một gốc sổ chính xuất hiện hai
nhánh khác nhau, như một phần của sự đồng thuận, phần mềm phía máy trạm
blockchain sẽ chọn nhánh dài nhất là nhánh an toàn nhất. Các block nằm trên nhánh
phụ được gọi là slate block.
Với việc PoW tiêu tốn quá nhiều năng lượng thì được đề xuất để giảm đáng kể
chi phí. PoS được áp dụng lần đầu trong Peercoin vào 08/2012. Giống như PoW,
PoS cũng phải tìm ra đáp án của một câu đố mã hóa nhưng độ khó ở đây lại tỷ lệ
nghịch so với số tài sản đặt cược của nút trong mạng [CITATION DTT18 \l 1033 ].
Cổ phần ở đây là một tài khoản bị khóa với số dư nhất định thể hiện cam kết của nút
đó để giữ cho mạng an toàn.

1.2.5. Sổ cái và quá trình hình thành block
Trong blockchain, sổ cái là một danh sách các giao dịch. Sổ cái khác với cơ sở
dữ liệu truyền thống (CSDL). Với sổ cái, chúng ta chỉ có thể thêm giao dịch mới
vào, trong khi với CSDL, chúng ta có thể thêm, tùy chỉnh hoặc xóa giao dịch. Có
thể dùng CSDL để tạo một sổ cái. Sổ cái có những đặc điểm sau:
- Lưu trữ dữ liệu phân tán.
- Người dùng ẩn danh.


- Gắn với thời gian.
- Các nút lưu trữ với nhau đồng thuận về nguyên tắc chia sẻ.
- Sổ cái không thể đảo ngược, điều này có nghĩa là giao dịch không thể xóa được.
- Sổ cái được bảo mật.

- Có thể lập trình được.
Quá trình hình thành các block là quá trình mà các miner (node khai thác), còn
gọi là quá trình tìm Nounce sẽ thực hiện. Trong quá trình này giao dịch sẽ được các
miner xếp vào trong hàng đợi gọi là mempool, giao dịch sẽ được gom lại (khoảng
300-500 giao dịch). Giao dịch sẽ được gom theo một mức độ ưu tiên (ví dụ như
khoản phí hoặc các giao dịch lâu chưa được xử lý) tạo thành một khối gọi là block.
Các miner sẽ phát tán toàn mạng các block mới được tạo, thưởng và phí sẽ được
nhận được sau khi có 100 xác nhận. Các block sẽ được đào – là quá trình tính toán
mã hash hợp lệ cho block (hashBlock< Target).

Hình 1.9 Quá trình khai thác (mining) [3]

Quá trình xác nhận một block mới được diễn ra như sau: nút sẽ nhận block
mới, kiểm tra tính xác thực và đúng đắn thì phát tán toàn mạng, nếu không hợp lệ
thì không phát tán. Tiếp theo xóa các giao dịch trong hàng đợi đã được xác thực
trong block mới nhận được. Từng thành viên sẽ nối block này như một giao dịch
được công nhận trong sổ cái blockchain của mọi thành viên. Xác nhận chính là quá


trình đào (mining), việc xác nhận cũng xác định số lượng giao dịch đang chứa. Cụ
thể:
0 confirmation: Giao dịch đã được lan truyền trên mạng nhưng chưa vào bất
kỳ block nào điều đó có khả năng giao dịch không thành công hoặc tiêu trùng lặp.
1 confirmation: Giao dịch được chứa trong block mới nhất, nguy cơ tiêu trùng
lặp ít đi đáng kể tuy khó xảy ra.
2 confirmation: Giao dịch nằm ít nhất trong 2 block gần đây, việc tấn công trở
nên đắt đỏ (mất nhiều tài nguyên tính toán để phân nhánh).
6 confirmation: Mạng blockchain đã mất gần 1h đồng hồ để bảo vệ giao dịch
chống lại hiện tượng tiêu trùng. Giao dịch đã nằm ở độ sâu 6 block và khả năng nó
bị thay thế là rất thấp.


1.2.6. Hợp đồng thông minh
Smart contracts (Hợp đồng thông minh) là một thỏa thuận hoặc tập hợp các
quy tắc chi phối việc thực hiện giao dịch; nó được lưu trữ trên blockchain và được
thực thi tự động như một phần của giao dịch [6]
Hầu như tất cả các mô hình blockchain đều có hợp đồng thông minh được tích
hợp trong các giao dịch. Ví dụ trong các loại tiền mã hóa, hợp đồng thông minh xác
minh các giao dịch đầu vào bằng cách kiểm tra chữ ký của chúng. Sau đó, xác minh
số dư của các địa chỉ gửi có khớp với địa chỉ nhận không. Cuối cùng, hợp đồng
thông minh sẽ áp dụng các thay đổi tới các trạng thái. Người dùng cũng có thể viết
các hợp đồng thông minh thực thi trong giao dịch.


×