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

Ứng dụng hồ sơ thông minh trong y tế học đường

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 (2.56 MB, 74 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH

Trần Sinh
ỨNG DỤNG HỒ SƠ THƠNG MINH
TRONG Y TẾ HỌC ĐƯỜNG

LUẬN VĂN THẠC SĨ MÁY TÍNH

Thành phố Hồ Chí Minh – 2018


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH

Trần Sinh
ỨNG DỤNG HỒ SƠ THƠNG MINH
TRONG Y TẾ HỌC ĐƯỜNG

Chuyên ngành: Khoa học máy tính
Mã số: 8480101
LUẬN VĂN THẠC SĨ MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS. NGUYỄN ĐÌNH THÚC

Thành phố Hồ Chí Minh – 2018


LỜI CAM ĐOAN

Tôi xin cam đoan kết quả của đề tài: “Ứng dụng hồ sơ thông


minh trong y tế học đường” là cơng trình nghiên cứu của riêng tơi
và được sự hướng dẫn khoa học của PGS.TS. Nguyễn Đình Thúc.
Kết quả nghiên cứu trong đề tài này chưa từng được cơng bố dưới bất
kỳ hình thức nào trước đây. Những kết quả, hình ảnh minh họa phục
vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập
từ các nguồn khác nhau có trích dẫn và chú thích rõ nguồn gốc trong
phần tài liệu tham khảo.
Nếu phát hiện có bất kỳ sự gian lận nào tơi xin hoàn toàn chịu
trách nhiệm về nội dung luận văn của mình.
Ngày 28 tháng 9 năm 2018
Tác giả luận văn

Trần Sinh


LỜI CÁM ƠN
Tôi xin chân thành cám ơn quý thầy cô Khoa Công nghệ Thông
tin, Trường Đại học Sư phạm Thành phố Hồ Chí Minh, đã tận tình
giảng dạy, hướng dẫn tơi trong suốt q trình học tập và nghiên cứu.
Đặc biệt là sự hướng dẫn tận tình của PGS.TS. Nguyễn Đình Thúc,
Khoa Cơng nghệ Thơng tin, Trường Đại học Khoa học Tự nhiên
Thành phố Hồ Chí Minh đã hướng dẫn, giúp tơi hồn thành tốt đề tài.
Qua đây, tơi xin gửi lời cảm ơn sâu sắc đến thầy.
Cuối cùng, tôi xin gửi lời cảm ơn chân thành đến gia đình, bạn
bè, đồng nghiệp đã giúp đỡ, động viên tơi trong suốt quá trình học
tập, nghiên cứu và thực hiện đề tài.
Tôi xin chân thành cám ơn!
Ngày 28 tháng 9 năm 2018
Tác giả luận văn


Trần Sinh


MỤC LỤC
Trang
Lời cam đoan
Lời cám ơn
Mục lục
Danh mục các hình vẽ, đồ thị
MỞ ĐẦU ....................................................................................................... 1
Chương 1. TỔNG QUAN ............................................................................... 4
1.1. Mục đích và nội dung nghiên cứu ......................................................... 4
1.2. Mục tiêu của đề tài ................................................................................. 4
1.3. Giới hạn nghiên cứu của đề tài .............................................................. 4
1.4. Nội dung báo cáo ................................................................................... 5
Chương 2. CƠ SỞ LÝ THUYẾT ................................................................... 7
2.1. Mã hóa .................................................................................................... 7
2.1.1 Hàm Băm (Hash function) .............................................................. 8
2.1.2. Mã hóa bất đối xứng (Asymmetric cryptography) và mã hóa đối
xứng (symmetric key cryptography)............................................... 9
2.1.3. Chữ ký điện tử (Digital signatures)............................................... 12
2.2. Công nghệ Blockchain ......................................................................... 13
2.2.1. Chuỗi khối (The Blockchain): ...................................................... 18
2.2.2. Cơ chế đồng thuận phân tán (decentralized consensus) ............... 21
2.2.3. Tính tốn tin cậy (trusted computing) ........................................... 29
2.3. Hợp đồng thông minh (smart contracts) .............................................. 31
2.3.1. Hợp đồng thơng minh là gì ? ........................................................ 31
2.3.2. Ví dụ Hợp đồng thông minh ......................................................... 35
2.3.3. Ứng dụng của Smart Contract....................................................... 38
2.3.4. Các ưu điểm của Smart Contract .................................................. 41

2.4. Bitcoin .................................................................................................. 42
2.4.1. Bitcoin là gì? ................................................................................. 42
2.4.2. Cách thức hoạt động của Bitcoin .................................................. 43
2.5. Smart Contracts and Ethereum .......................................................... 47


Chương 3. THIẾT KẾ ỨNG DỤNG THỐNG KÊ SỐ LIỆU TRONG Y
TẾ HỌC ĐƯỜNG ..................................................................... 49
3.1. Yêu cầu của người dùng....................................................................... 49
3.2. Kịch bản chương trình.......................................................................... 50
3.3. Cách lưu trữ và truy xuất dữ liệu trên hệ thống ................................... 52
3.4. Thiết kế chương trình ........................................................................... 53
3.4.1. Các thành phần hỗ trợ ................................................................... 53
3.4.2. Khởi tạo hệ thống .......................................................................... 53
3.4.3. Minh họa thực hiện giao dịch trên Ethereum................................ 56
3.4.4. Minh họa thực hiện báo cáo thống kê ........................................... 58
Chương 4. KẾT LUẬN ................................................................................. 64
TÀI LIỆU THAM KHẢO ............................................................................ 66


DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1.
Hình 1.2.
Hình 2.1.
Hình 2.2.
Hình 2.3.
Hình 2.4.
Hình 2.5.
Hình 2.6.
Hình 2.7.

Hình 2.8.
Hình 2.9.
Hình 2.10.
Hình 2.11.
Hình 2.12.
Hình 2.13.
Hình 2.14.
Hình 2.15.
Hình 2.16.
Hình 2.17.
Hình 2.18.
Hình 3.1.
Hình 3.2.
Hình 3.3.
Hình 3.4.
Hình 3.5.
Hình 3.6.
Hình 3.7.
Hình 3.8.
Hình 3.9.
Hình 3.10.
Hình 3.11.
Hình 3.12.
Hình 3.13.
Hình 3.14.
Hình 3.15.
Hình 3.16.
Hình 3.17.
Hình 3.18.
Hình 3.19.

Hình 3.20.

Mẫu báo cáo thống kê Excel trực tuyến trên Google docs. .......... 1
Báo cáo thống kê y tế trên Google biểu mẫu ................................ 2
Public key Encryption [3] ........................................................... 10
Man in the Middle Attack [3] ..................................................... 11
Digital signature [3] .................................................................... 12
Mơ hình mạng Blockchain [9] .................................................... 14
Cách hoạt động của Block chain [9] ........................................... 15
Thực hiện một giao dịch trong trong hệ thống Block chain [9] . 16
Mơ hình mạng phân tán [9]......................................................... 16
Mơ hình xác thực giao dịch trong mạng Blockchain [9]. ........... 17
Phần thưởng khối dành cho các thợ đào [9]. .............................. 18
Mô tả cấu trúc Block [10]. .......................................................... 19
Cấu trúc của Block Header [10]. ................................................ 20
Mô tả nội dung thông tin của Block Header [10]. ...................... 20
Block với 1 phần giá trị băm của Block Header trước đó [10]. . 21
Minh họa khả năng bảo mật của của hệ thống Blockchain [11] 26
Mơ hình tổng qt của Proof of Work và Proof of Stake [12]. .. 29
Mơ hình hoạt động Hợp đồng thông minh [15]. ......................... 34
Sử dụng Hợp đồng thông minh trong giao dịch bất động sản [15]. 41
Cách thức hoạt động của 1 giao dịch Bitcoin [16]. .................... 45
Tổng quan chương trình thống kê y tế học đường...................... 50
Giao diện báo cáo của chương trình. .......................................... 51
Các đơn vị đăng nhập tài khoản để kết nối với hệ thống............ 51
Mô hình lưu trữ và truy xuất dữ liệu trên hệ thống. ................... 52
Giao diện các tài khoảng trong hệ thống Blockchain cục bộ. .... 54
Thông tin các Blocks trong chuỗi. .............................................. 54
Thông tin các giao dịch được xác nhận trên hệ thống. ............... 55
Thông tin chi tiết các sự kiện trên hệ thống................................ 55

Trạng thái khởi tạo của hệ thống. ............................................... 56
Giao diện tài khoản ví của người dùng. ...................................... 56
Giao diện tài khoản ví của người dùng. ...................................... 57
Hệ thống xác nhận giao dịch thành công. ................................... 57
Thông tin giao dịch được ghi nhận lại trên hệ thống. ................. 58
Hợp đồng thông minh được triển khai trên Blockchain. ............ 59
Thông tin giao dịch triển khai hợp đồng được ghi nhận trên hệ thống. ... 59
Cấu trúc các thư mục của pet-shop box [16]. ............................. 60
Kết nối trang web báo cáo với hệ thống Blockchain .................. 61
Màn hình lựa chọn báo cáo của các đơn vị................................. 62
Màn hình xác nhận hoàn thành báo cáo của các đơn vị. ............ 62
Truy xuất dữ liệu từ các biểu mẫu báo cáo số liệu trên web. ..... 63


1

MỞ ĐẦU
Trong những năm qua được sự quan tâm chỉ đạo của Bộ Y tế; sự phối hợp
tốt giữa Ngành Y tế và ngành Giáo dục các cấp ở địa phương; chương trình Y
tế học đường đã được triển khai rộng rãi ở tất cả các cấp học(1). Một số bệnh
tật, vấn đề y tế, sức khỏe của học sinh nhanh chóng được phát hiện và báo cáo
cho Ngành y tế địa phương để có những hướng dẫn và xử lí kịp thời nhằm đảm
bảo sức khỏe, mơi trường học tập tốt nhất cho học sinh. Tuy nhiên, hiện nay
công tác kiểm tra, thống kê y tế học đường chưa có một hệ thống báo cáo hồn
chỉnh gây nhiều khó khăn, hạn chế cho việc điều tra y tế. Hiện nay, thông
thường các báo cáo được xây dựng dựa trên các ứng dụng web: Onedrive,
Google doc(2),…;
Một số mẫu, cách thức báo cáo được các cấp quản lý đang thực hiện:

Hình 1.1. Mẫu báo cáo thống kê Excel trực tuyến trên Google docs


(1) />(2) />

2

Hình 1.2. Báo cáo thống kê y tế trên Google biểu mẫu
Với các phương thức báo cáo như hiện nay, các đơn vị phải sử dụng các
trình duyệt web để kết nối với hệ thống các máy chủ tương ứng để nhập dữ liệu
do đó thường gặp một số vấn đề hạn chế như sau:
1. Dữ liệu của một đơn vị có thể bị điều chỉnh hoặc bị xóa hồn toàn bởi
một đơn vị khác.
2. Tất cả các đơn vị có thể dễ dàng thấy được dữ liệu của nhau. Do đó việc
báo cáo số liệu các dịch bệnh tại các đơn vị khơng được chính xác, đặc biệt là
các đơn vị ngồi cơng lập do tâm lý e ngại nguy cơ mất an tồn thơng tin gây
ảnh hưởng đến tâm lý phụ huynh học sinh cũng như các hoạt động trong nhà
trường.
3. Dữ liệu tập trung tại một máy chủ, có nguy bị tấn cơng bởi virus hoặc
các phần mềm gián điệp, hay do nguyên nhân chủ quan của người dùng, các
tác động vật lý ảnh hưởng đến hoạt động của máy tính dẫn đến nguy cơ mất dữ
liệu là tương đối cao.
Do đó, luận văn này là nhằm nghiên cứu, tìm hiểu và ứng dụng một cơng
nghệ lưu trữ dữ liệu mới là công nghệ Blockchain vào trong công việc báo cáo
thống kê số liệu. Đây là một hệ thống cơ sở dữ liệu không thay đổi, được bảo


3

mật và dữ liệu phân tán. Kể từ khi Bitcoin(1), một ứng dụng tiêu biểu của công
nghệ Blockchain phát triển trong năm 2009 thì các ứng dụng khác của cơng
nghệ Blockchain cũng bắt đầu xuất hiện, Blockchain là một công nghệ độc lập,

cùng với những tiến bộ khoa học máy tính gần đây được xem như là một
phương pháp kiểm soát truy cập và loại bỏ sự tin cậy ở bên thứ ba khi giải quyết
dữ liệu cá nhân.

(1) Bitcoin là một loại tiền mã hóa, được phát minh bởi Satoshi Nakamoto dưới dạng phần mềm mã nguồn mở
từ năm 2009. Bitcoin có thể được trao đổi trực tiếp bằng thiết bị kết nối Internet mà không cần thông qua một
tổ chức tài chính trung gian nào.


4

CHƯƠNG 1. TỔNG QUAN
1.1. Mục đích và nội dung nghiên cứu
Mục đích của đề tài là nghiên cứu các đặc điểm đặc trưng, nổi bật của
công nghệ Block chain so với các cơ sở dữ liệu thơng thường như: tính bảo
mật, cơ chế đồng thuận, dữ liệu phân tán,… cùng với các ưu điểm của Hợp
đồng thông minh (Smart contract) qua đó cho thấy cơng nghệ Blockchain và
Hợp đồng thơng minh có thể được sử dụng để chia sẻ và kiểm sốt thơng tin cá
nhân giữa những người khơng nhất thiết phải tin tưởng lẫn nhau. Từ đó có thể
ứng dụng một công nghệ lưu trữ dữ liệu mới đảm bảo an tồn, tiện lợi hơn trong
cơng việc báo cáo thống kê số liệu phục vụ cho công tác quản lý.
1.2. Mục tiêu của đề tài
Mục tiêu nghiên cứu của luận văn là xây dựng một mơ hình ứng dụng của
công nghệ Blockchain và Hợp đồng thông minh cho công tác báo cáo thống kê,
điển hình là thống kê số liệu y tế trong trường học nhằm khắc phục những hạn
chế trong công tác báo cáo thống kê y tế trong nhà trường hiện nay, đồng thời
đảm bảo được các tiêu chí an tồn, bảo mật thơng tin của các đơn vị, cụ thể:
1. Số liệu báo cáo của các đơn vị sẽ được đồng thuận xác nhận và không ai
có thể sửa đổi,
2. Người báo cáo khơng thể thối thốc trách nhiệm số liệu báo cáo của

mình.
3. Số liệu sẽ được đảm bảo an toàn tuyệt đối, bởi tất cả người dùng trên
mạng đều có một bản sao lưu dự phòng.
1.3. Giới hạn nghiên cứu của đề tài
Nội dung luận văn tập trung nghiên cứu hai vấn đề chính, bao gồm: thứ
nhất, nghiên cứu cấu trúc, cách thức hoạt động của một hệ thống Blockchain,
quá trình thực hiện và xác nhận một giao dịch trên hệ thống. Đồng thời nghiên
cứu các cơ chế đồng thuận, mã hóa dữ liệu trên chuỗi khối. Điển hình tiêu biểu


5

là Bitcoin. Sau khi trình bày các kiến thức nền tảng của Blockchain, báo cáo
tiếp tục trình bày về Hồ sơ thông minh, các ứng dụng của Hồ sơ thông minh,
cũng như cách tạo ra một Hồ sơ thông minh và triển khai trên hệ thống
Blockchain. Phần thứ hai, báo cáo trình bày chi tiết cách thức xây dựng mơ
phỏng một hệ thống ứng dụng của Blockchain và Hợp đồng thông minh phục
vụ cho công tác quản lý là thống kê số liệu y tế học đường. Do tập trung cho
mục tiêu của báo cáo cũng như kết quả nghiên cứu ứng dụng của đề tài nên
phần trình bày mơ phỏng ứng dụng sẽ không đi sâu vào cách lập trình, thiết kế
giao diện mà báo cáo chỉ tập trung trình bày cách thức xây dựng và triển khai
hệ thống đến người dùng, mơ phỏng q trình hoạt động và kết quả thực hiện
của hệ thống.
1.4. Nội dung báo cáo
Theo mục tiêu nghiên cứu của đề tài thì bố cục của báo cáo được trình bày
như sau:
- Chương 1: trình bày vấn đề thực tế tại đơn vị, lý do chọn đề tài. Xác định
mục tiêu đề tài, nội dung nghiên cứu và giới hạn của đề tài.
- Chương 2: trình bày các kiến thức cơ bản, nền tảng nhằm cung cấp cơ
sở tốn học, các kỹ thuật mã hóa cơ bản được sử dụng trong Blockchain; tổng

quan kiến trúc của cơng nghệ Blockchain, cách thức kiểm sốt truy cập, lưu trữ
dữ liệu của Blockchain; tổng quan về Hợp đồng thông minh cùng với các hệ
thống tiêu biểu của Block chain như: Bitcon, Ethereum.
- Chương 3: Phân tích và thiết kế ứng dụng phục vụ cho công tác báo cáo
thống kê số liệu y tế học đường dựa trên nền tảng công nghệ Blockchain và
Hợp đồng thông minh. Nội dung báo cáo trình bày chi tiết các bước xây dựng
demo chương trình ứng dụng như: mơ tả cách thức thực hiện một giao dịch
truyền thống của hệ thống Blockchain, đó là giao dịch đồng tiền kỹ thuật số.
Từ đó ứng dụng công nghệ của Blockchain và Hợp đồng thông minh vào trong
công tác báo cáo thống kê y tế học đường. Báo cáo sẽ trình bày chi tiết cách


6

thức triển khai, xây dựng hệ thống và quá trình hệ thống xác thực giao dịch
thực hiện thành công.
- Tổng kết: kết luận, trình bày ưu điểm, nhược điểm của hệ thống và
hướng phát triển đề tài.


7

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
Trong phần này, chúng tôi sẽ giới thiệu ngắn gọn và giải thích một số khái
niệm cơ bản về mật mã, công nghệ Blockchain và các khái niệm liên quan như
hợp đồng thông minh. Sau đó chúng tơi sẽ trình bày một số ứng dụng, công
nghệ phổ biến hiện nay được xây dựng dựa trên nền tảng Blockchain.
2.1. Mã hóa
Mã hóa [1] cung cấp các kỹ thuật chuyển đổi dữ liệu khiến nó trở nên vơ
dụng đối với những người nhận khơng mong muốn. Có nghĩa là ngăn cản hai

hành động cơ bản: trích xuất thông tin từ dữ liệu và thay đổi, chỉnh sửa làm sai
lệch dữ liệu; đây được gọi là vấn đề bí mật và vấn đề tính tồn vẹn của dữ liệu.
Ngồi ra, chúng ta có thể xét đến trường hợp một người gửi dữ liệu được mã
hóa và gửi một thơng báo rồi sau đó từ chối đã gửi nó. Có thể nói mã hóa giúp
chúng ta ngăn ngừa và phát hiện các sự can thiệp, làm sai lệch thông tin hoặc
không cho phép truy cập và sử dụng dữ liệu.
Bảo mật thông tin hiện đại nghiên cứu hai dạng bài tốn an tồn thơng tin
sau:
- Bảo mật.
- Chứng thực.
Bảo mật nhằm ngăn cản khơng cho người lạ trích chọn thông tin từ các
thông điệp được gửi trên các kênh truyền phổ biến (thường khơng an tồn).
Chứng thực nhằm đảm bảo chỉ có người nhận đúng mới có thể đọc thông điệp,
đồng thời cũng đảm bảo người gửi không thể phủ nhận thơng điệp mình gửi.
Có thể chia các hệ mã thành hai loại chính:
- Hệ mã khóa bí mật (còn được gọi là hệ mã đối xứng)
- Hệ mã khóa cơng khai (hay hệ mã khơng đối xứng).
Với mục tiêu của báo cáo là tập trung làm rõ các kỹ thuật mã hóa cốt lõi
của Blockchain cho nên những kỹ thuật mã hóa khá phổ biến trong thực tế


8

chúng tơi chỉ nhắc lại tư tưởng thuật tốn, tính ứng dụng và kỹ thuật đó được
sử dụng trong Blockchain như thế nào. Theo đó phần này sẽ trình bày một số
kỹ thuật mã hóa căn bản sau: Hàm băm; Mã hóa đối xứng và Mã hóa bất đối
xứng.
2.1.1 Hàm Băm (Hash function)
Hàm băm [2] (Hash function) là một thuật tốn lấy tham số đầu vào là
dữ liệu có độ dài tùy ý và cho ra một chuỗi bit có chiều dài cố định, được

gọi là hash value. Hash value luôn giống nhau với các dữ liệu đầu vào giống
nhau. Một hash funtion là một ánh xạ từ tập hợp dữ liệu đầu vào (độ dài tùy
ý) đến tập hợp các hash value, với đặc điểm là một sự khác biệt nhỏ trong
dữ liệu đầu vào, sẽ tạo ra một khác biệt lớn trong kết quả đầu ra. Một yêu
cầu chung là hash function phải tính tốn nhanh. Kích thước của tập hash
value thường nhỏ hơn so với kích thước của tập dữ liệu đầu vào có cùng
một giá trị hash value.
Một hash function tốt cần phân phối các giá trị đầu vào đến các hash
value tương ứng, sao cho mỗi hash value được liên kết gần như tương ứng
với số lượng các giá trị đầu vào có thể có. Một cách để đạt được tỷ lệ này
là làm cho các hash value có phân phối ngẫu nhiên. Lưu ý rằng mặc dù hash
value ngẫu nhiên thì nó vẫn phải đảm bảo: với 1 đầu vào xác định thì hash
value của nó ln giống nhau.
Blockchain sử dụng hàm băm mật mã [3] (crytography hash function)
để thực hiện proof-of-work. Crytography hash function (còn gọi là secure
hash function) bắt buộc phải bổ sung các yêu cầu chặt chẽ hơn so với các
hash function bình thường:
One-wayness (preimage resistence) - Tính 1 chiều (kháng tái tạo). Cho
một hash value, nó phải đảm bảo khơng thể tính tốn để tìm ra dữ liệu đầu
vào. Rõ ràng, đây là một đặc điểm quan trọng để áp dụng cho proof-ofwork.


9

Weak collision resistance - Kháng lại đụng độ yếu. Cho một giá trị đầu
vào, khơng thể tìm được một giá trị đầu vào khác mà có cùng giá trị hash
value.
Strong collision resistance - Kháng lại đụng độ mạnh. Không thể tìm
ra được 2 giá trị đầu vào nào mà cho ra cùng một giá trị hash value.
Blockchain sử dụng SHA256^2 làm proof-of-work function.

SHA256^2 là việc thực hiện hàm hash SHA256 2 lần. SHA256 là một hàm
băm thuộc họ SHA-2 hash function được thiết kế bởi NSA và công bố bởi
NIST vào năm 2001. SHA256 là hash function mà cho đầu ra có chiều dài
256 bits.
2.1.2. Mã hóa bất đối xứng (Asymmetric cryptography) và mã hóa đối
xứng (symmetric key cryptography)
Mã hóa bất đối xứng hay mã hóa cơng khai được phát triển từ những năm
1970 bởi Diffe, Hellman và Merkle. Mã hóa cơng khai được phát triển nhằm
khắc phục điểm yếu quan trọng của hệ mã hóa khóa đối xứng trong việc trao
đổi khóa bí mật (key distribution). Khi 2 người sử dụng mã hóa đối xứng, thì
trước đó họ phải chia sẻ chung 1 khóa bí mật. Tức là họ phải chuyển khóa bí
mật thơng qua một kênh truyền an tồn trước khi sử dụng hệ thống mã hóa khóa
đối xứng. Mạng internet là một kênh truyền khơng an tồn, khi các gói tin có
thể bị nghe trộm, thậm chí có thể thay đổi trên đường truyền. Do đó, ta khơng
thể tạo ra một kết nối an tồn mà chỉ dùng mã hóa khóa đối xứng. Mã hóa khóa
cơng khai được phát triển để giải quyết vấn đề này.
Tư tưởng của hệ mã hóa khóa đối xứng là đảm bảo an tồn với chỉ một
khóa. Khóa này được dùng cho cả q trình mã hóa và giải mã. Cịn hệ mã hóa
khóa cơng khai đảm bảo an tồn với một cặp khóa. Một khóa gọi là Public key,
chỉ dùng để mã hóa gói tin, một khóa khác gọi là Private key, chỉ dùng để giải
mã gói tin. Nhờ đó mà hệ mã hóa khóa cơng khai có thể được dùng để giải
quyết vấn đề phân phối key. Một điểm quan trọng cần chú ý là chỉ có khóa


10

Private key là cần phải giữ bí mật cịn khóa cơng khai Public key thì cơng bố
cơng khai cho các đối tác có thể lấy nó để mã hóa gói tin trên đường truyền
khơng an tồn. Cách thức hoạt động được mơ tả qua hình 2.1.
Đầu tiên, người nhận Receiver (Bob), nhận thơng điệp đã mã hóa, tạo ra

1 cặp khóa Private key và Public key, bằng cách chạy thuật tốn tạo khóa (Key
Generation Algorithm) (1). Người nhận Receiver (Bob) gởi Public key đến
người gởi Sender (Alice) và giữ lại khóa Private Key bí mật (2). Sau khi nhận
được Public key từ Bob, Alice tiến hành mã hóa Message sử dụng Public key
của Bob (3). Kết quả cho ra Message đã mã hóa Encrypted Message
(ciphertext). Encrypted Message này được gởi đến Bob qua kênh truyền khơng
an tồn (4). Kẻ tấn cơng có thể bắt được gói tin Encryted Message trên đường
truyền nhưng anh ta khơng thể giải mã được gói tin này, chỉ có Bob, người sở
hữu Private key tương ứng với Public key mới có thể giải mã Encrypted
Message bằng thuật toán giải mã Decryption Algothrim (5), để lấy được
Message.
Sender
(Alice)
Public Key

Encryption 3

Insecure Channel

2

Public Key

Receiver (Bob)
Key Generation Algorithm

Public Key

1


Private Key

Encrypted
Message

5

Algorithm

Decryption Algorithm
4

Message

Message

Hình 2.1. Public key Encryption [3]


11

Nhưng có 1 vấn đề với lược đồ mã hóa này, Public key được gởi trên
đường truyền khơng an tồn. Điều này mở ra khả năng tấn công Man-in-theMiddle attack (MitM), khi kẻ tấn cơng (Trudy) kiểm sốt đường truyền mạng
được minh họa như hình 2.2.
Kẻ tấn cơng Trudy đứng ở giữa kiểm soát kênh giao tiếp giữa Bob và
Alice. Khi Bob bắt đầu gởi Public key của mình qua Alice, thì Trudy thay vì
chuyển tiếp Public key của Bob đến Alice thì Trudy giữ lại Public key của Bob
sau đó tự tạo ra 1 cặp khóa Private-Public key mới, rồi tiếp tục gởi Public key
của Trudy đến Alice. Quá trình cứ tiếp diễn theo cách , đối với Alice thì Trudy
hành xử giống như Bob, cịn đối với Bob thì Trudy đóng vai trị như Alice. Từ

đó, Trudy đứng giữa Alice và Bob giám sát các gói tin Message trao đổi giữa 2
bên. Khuyết điểm của hệ mã hóa khóa cơng khai mà kẻ tấn cơng Trudy lợi dụng
là việc Alice khơng có cơ chế xác minh xem Public key mà mình nhận được
thơng qua kênh truyền khơng an tồn có đúng là của Bob hay khơng.

.
Hình 2.2. Man in the Middle Attack [3]


12

Để chống lại cách tấn công Man-in-the-Middle attack, người ta dùng hạ
tầng khóa cơng khai Public Key Infrastructure (KPI). KPI giả định có một trung
tâm xác thực đáng tin cậy gọi là Certificate Authority (CA). Bất kỳ ai cũng có
một bản sao của CA Public key và một CA tin cậy. Mỗi người dùng tạo ra một
cặp khóa Public-Private key và tạo lập CA với Public key. CA sẽ xác minh định
danh của người dùng và ký lên Public key. Khi Alice muốn giao tiếp với Bob,
Alice sẽ gởi Certificate đến Bob, để Bob kiểm tra Public key của Alice và chữ
ký của CA lên nó có hợp lệ hay khơng. Bằng cách đó, thì Bob có thể biết được
Public key mà mình nhận được có đúng là của Alice hay khơng.
2.1.3. Chữ ký điện tử (Digital signatures)
Mục đích của chữ ký điện tử cũng giống như chữ ký tay, nhằm đảm bảo
các gói tin được tạo ra bởi người ký, khơng bị giả mạo và chống thối thác trách
nhiệm. Nói cách khác, để đảm bảo rằng một người đã gửi một dữ liệu nào đó,
nó cần phải được ký chữ ký số, bao gồm các ký tự được in cùng với một con
dấu đặc biệt được ký bởi người gửi Chữ ký số là một phương pháp cho việc ký
kết dữ liệu, thậm chí có thể chắc chắn hơn so với chữ ký tay, nó sẽ xác thực
thơng điệp đã gửi, đảm bảo rằng người gửi không thể từ chối việc gửi nó đồng
thời cũng giúp đảm bảo nhận dạng được người gửi. Chúng ta cùng xem cách
thức sử dụng chữ ký số như hình 2.3 sau:


Hình 2.3. Digital signature [3]


13

Lược đồ trên trình bày quá trình sử dụng chữ ký điện tử. Đầu tiên, người
ký Alice tạo ra một cặp khóa Private-Public key, sử dụng thuật tốn tạo khóa
(1). Alice truyền Public key đến Bob qua kênh truyền không an tồn (2). Tiếp
theo, Alice dùng Private key của mình để ký lên Message (3). Cả Message và
chữ ký Signature được chuyển đến người nhận là Bob (4). Chú ý là Message
khơng mã hóa. Bob xác thực chữ ký Signature bằng Public key của Alice (5).
Nếu việc xác minh cho ra kết quả là đúng thì Message mà Bob nhận được là
bản gốc của Alice.
Việc chống thoái thác trách nhiệm được thể hiện qua việc mỗi cặp khóa
Private-Public key chỉ thuộc về duy nhất 1 người, tức là khơng có khả năng 2
người khác nhau lại sở hữu cùng 1 cặp Key giống nhau. Điều này được đảm
bảo bằng không gian key rất lớn của hệ mã hóa khóa cơng khai, được thuật tốn
sinh khóa tạo ngẫu nhiên, khơng gian khóa lớn hơn rất nhiều so với tập người
dùng, nên xác suất tạo ra các cặp key giống nhau là rất nhỏ. Cho nên việc Alice
đã dùng Private key ký lên Message thì khơng thể chối rằng Private key tương
ứng với Public key được công bố công khai không phải là của mình.
2.2. Cơng nghệ Blockchain
Blockchain [4] là một cơ sở dữ liệu phân cấp lưu trữ thông tin trong các
khối thông tin được liên kết với nhau bằng mã hóa và mở rộng theo thời gian.
Mỗi khối thơng tin đều chứa thông tin về thời gian khởi tạo và được liên kết tới
khối trước đó, kèm một mã thời gian và dữ liệu giao dịch. Blockchain được
thiết kế để chống lại việc thay đổi của dữ liệu: Một khi dữ liệu đã được mạng
lưới chấp nhận thì sẽ khơng có cách nào thay đổi được nó. Blockchain đầu tiên
được phát minh và thiết kế bới Satoshi Nakamoto vào năm 2008 và được hiện

thực hóa vào một năm sau đó , nó được xem là phần cốt lõi của Bitcoin, khi
cơng nghệ Blockchain đóng vai trị như là một cuốn sổ cái cho tất cả các giao
dịch. Qua việc sử dụng mạng lưới ngang hàng và một hệ thống dữ liệu phân
cấp, Bitcoin Blockchain được quản lý tự động. Việc phát minh ra Blockchain


14

cho Bitcoin đã làm cho nó trở thành loại tiền tệ kỹ thuật số đầu tiên giải quyết
được vấn đề double spending (chi tiêu gian lận khi 1 lượng tiền được dùng 2
lần). Công nghệ này của Bitcoin đã trở thành nguồn cảm hứng cho một loạt các
ứng dụng khác như ghi lại những sự kiện, hồ sơ y tế, xử lý giao dịch, cơng
chứng, danh tính và chứng minh nguồn gốc.
Có thể nói cơng nghệ Blockchain được đặc trưng bởi các đặc tính sau:
• Phân tán: Bản chất của BlockChain là cơ sở dữ liệu phân tán có chứa
các bản ghi hoặc chứa toàn bộ các lịch sử của các quá trình giao dịch hoặc các
sự kiện đã được thực thi và được chia sẻ giữa các bên tham gia trong hệ thống
mạng ngang hàng . Vậy nếu phân tích theo cách của ngơn ngữ thì BlockChain
là: BlockChain = Block + Chain đó chính là 1 danh từ ghép có sự kết hợp giữa
các khối (Block) được liên kết với nhau để tạo thành chuỗi (Chain), mỗi khối
đều chứa thông tin thời gian khởi tạo, và các thông tin khác, nó được liên kết
với các khối trước. Xét về mặt cấu trúc dữ liệu thì nó cũng có kiểu tương tự
như Danh sách liên kết nhưng cơ chế xử lý của nó có những nét đặc thù riêng.

Hình 2.4. Mơ hình mạng Blockchain [9]
• Xác thực thời gian: Do mỗi khối giao dịch được băm vào tất cả các khối
tiếp theo, việc ngày càng trở nên khó khăn trong việc thay đổi lịch sử càng ngày


15


càng xa thời điểm khối hiện tại. Các Blockchain trở thành một cơng cụ kiểm
tra tính chính xác của các giao dịch.
• Đồng thuận: Các nút thiết lập một sự thật về phiên bản cơ sở dữ liệu
nào là đúng thơng qua một thuật tốn đồng thuận. Điều này phục vụ để xác thực
các giao dịch cũng như để ngăn cản các cuộc tấn cơng chi tiêu đơi. Loại thuật
tốn đồng thuận được sử dụng rất phụ thuộc vào cấu trúc và mục đích của
Blockchain.
Mơ hình hoạt động của Blockchain có thể được mơ tả như hình 2.5:

Hình 2.5. Cách hoạt động của Block chain [9]
Để bắt đầu một giao dịch, người gửi sử dụng hai thơng tin: Khóa cơng
khai và khóa riêng như hình 2.6. Ở đây, James gửi 500 $ cho Kevin. James sử
dụng khóa cơng khai của Kevin cho giao dịch. (Khóa cơng khai là địa chỉ
trong một giao dịch Blockchain).


16

Hình 2.6. Thực hiện một giao dịch trong trong hệ thống Block chain [9]
Khi một giao dịch được khởi tạo, nó sẽ được chuyển đến một hệ thống
chia sẻ mạng ngang hàng phân tán. Hệ thống mạng này chính là tập hợp các
máy tính của người dùng.

Hình 2.7. Mơ hình mạng phân tán [9]
Lúc này, giao dịch hiện đã được truyền trong mạng, vậy ta có thể đặt câu
hỏi: Vì khơng có trung tâm nào có thẩm quyền để xác thực giao dịch, tính xác
thực và quyền xác thực giao dịch được thực hiện trong mạng như thế nào?
Trong hệ thống mạng, có một số nút đặc biệt trong mạng thực hiện chức
năng xác minh giao dịch và duy trì sổ kế toán. Chúng ta gọi họ là Thợ đào

(Miners). Thợ đào là các nút đặc biệt giữ bản sao sổ kế toán và xác minh các


17

giao dịch xảy ra trong mạng. Sử dụng thuật toán mã hóa hiện đại, các thợ đào
xác thực giao dịch trên mạng.
Các giao dịch được phát đi dưới dạng tin nhắn kỹ thuật số. Cũng giống
như chữ ký của bạn cung cấp bằng chứng về quyền sở hữu trên tài liệu, tương
tự, chữ ký kỹ thuật số cung cấp bằng chứng cho thấy giao dịch là xác thực.
Không giống như mật khẩu viết tay, chữ ký số là duy nhất cho mọi giao dịch.

Hình 2.8. Mơ hình xác thực giao dịch trong mạng Blockchain [9]
Sau khi giao dịch được xác minh, nó được lưu trữ trong sổ kế tốn được
chia sẻ trên mạng. Tiếp theo đây là một thách thức lớn, vì các giao dịch được
chuyển từ nút này sang nút khác, khơng có gì đảm bảo rằng thứ tự giao dịch mà
chúng ta nhận được đúng với thứ tự mà chúng được tạo ra. Để xác nhận thứ tự
giao dịch là một thách thức trong một hệ thống phân tán. Do đó, hệ thống tiền
điện tử đặt thứ tự cho các giao dịch bằng cách đặt chúng trong các nhóm được
gọi là các khối và sau đó liên kết chúng vào trong chuỗi. Sau khi một khối được
thiết lập, các thợ đào (Miners) sẽ giải quyết một câu đố khó được tạo bởi giao
thức Blockchain. Một câu đố như vậy được gọi là một bằng chứng công việc
(Proof of work). Proof of work là một phần dữ liệu khó để tạo ra, tốn kém nhiều
chi phí, thời gian, cơng sức nhưng dễ dàng cho người khác xác minh và đáp
ứng các yêu cầu nhất định. Để giữ cho việc phân phối lượng tiền có thể dự đốn


18

được, các câu đố ngày càng trở nên khó giải quyết khi có nhiều người làm việc

với chúng hơn.
Chúng ta có thể đặt câu hỏi tại sao các thợ đào lại đầu tư tài nguyên, công
sức, thời gian,… của họ trong quá trình xác nhận các giao dịch? Bởi vì, sẽ có
một phần thưởng khích lệ cho các thợ đào khi giải quyết thành công một khối.
Thợ đào cố gắng tìm đáp án cho câu đố phức tạp này theo một thuật tốn. Việc
tìm đáp án này là ngẫu nhiên, do đó, một thợ đào cần đầu tư sức mạnh tính tốn
lớn và một lượng điện tiêu thụ khơng nhỏ cho cơng việc. Các thợ đào phải liên
tục dự đốn các đáp án cho đến khi đáp án đầu tiên được tìm thấy khớp với câu
đố. Thợ đào tìm thấy đáp án này, sẽ cơng bố khối đó lên mạng. Các thợ đào
khác sẽ ngừng tạo các khối của họ và sẽ lấy khối đã cơng bố, xác nhận nó và
thêm nó vào sổ cái. Để thưởng cho các thợ đào, đồng tiền mới được tạo ra và
sẽ được gởi đến địa chỉ của người đào.

Hình 2.9. Phần thưởng khối dành cho các thợ đào [9]
Công nghệ Blockchain tương đồng với cơ sở dữ liệu, chỉ khác ở việc tương
tác với cơ sở dữ liệu. Để hiểu Blockchain, chúng ta cần nắm được năm định
nghĩa sau: chuỗi khối (Blockchain), cơ chế đồng thuận phân tán (decentralized
consensus), bằng chứng công việc (proof of work), tính tốn tin cậy (trusted
computing) và hợp đồng thông minh (smart contracts).
2.2.1. Chuỗi khối (The Blockchain)
Một chuỗi khối giống như một nơi để lưu trữ dữ liệu bán công cộng trong
một không gian hẹp (khối). Bất cứ ai cũng có thể xác nhận việc bạn nhập thơng


×