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

Ứng dụng nền tảng blockchain trong bài toán quản lý nguồn gốc và đặc tính của dữ liệu mở

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 (10.31 MB, 111 trang )

ĐẠI HỌC QUỐC GIA TP. HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
--------------------

DƯƠNG ANH THƯ

ỨNG DỤNG NỀN TẢNG BLOCKCHAIN TRONG BÀI
TOÁN QUẢN LÝ NGUỒN GỐC VÀ ĐẶC TÍNH CỦA DỮ
LIỆU MỞ
Chuyên ngành: Khoa học máy tính. . . . . . . . . . . . .
Mã số: 60480101……………

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, tháng . .12 . . năm . . 2019. . . .


CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM
Cán bộ hướng dẫn khoa học: ………PGS.TS Đặng Trần Khánh .............

Cán bộ chấm nhận xét 1: ...........................................................................

Cán bộ chấm nhận xét 2: ...........................................................................

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp. HCM
ngày . .30 . . . tháng . .12 . . năm . .2019 . . .
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
1. PGS.TS Nguyễn Thanh Bình ...............
2. TS. Lê Hồng Trang ...............................
3. TS. Nguyễn An Khương .......................


4. PGS.TS Nguyễn Tuấn Đăng.................
5. PGS.TS Huỳnh Trung Hiếu ..................
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên
ngành sau khi luận văn đã được sửa chữa (nếu có).
CHỦ TỊCH HỘI ĐỒNG

TRƯỞNG KHOA…………


ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Dương Anh Thư

MSHV: 1770161

Ngày, tháng, năm sinh: 22/09/1991

Nơi sinh: Tp.Hồ Chí Minh

Chuyên ngành: Khoa học máy tính

Mã số : 60480101

I. TÊN ĐỀ TÀI:
ỨNG DỤNG NỀN TẢNG BLOCKCHAIN TRONG BÀI TỐN QUẢN LÝ NGUỒN

GỐC VÀ ĐĂC TÍNH CỦA DỮ LIỆU MỞ
II. NHIỆM VỤ VÀ NỘI DUNG:










Xác định vai trị của việc xác thực nguồn gốc trong bối cảnh dữ liệu mở
Các kỹ thuật quản lý thông tin nguồn gốc, đặc tính dữ liệu mở hiện nay
Các sản phẩm cơng nghệ liên quan
Nghiên cứu các mơ hình dữ liệu mở có khả năng tích hợp hiện nay : Các đặc điểm chung,
vấn đề chưa giải quyết
Xác định đặc trưng của mô hình dữ liệu mở, lựa chọn phương pháp phù hợp
Đề xuất ứng dụng blockchain cho bài toán quản lý nguồn gốc và đặc tính của dữ liệu mở
Triển khai mơ hình blockchain có khả năng tích hợp với nền tảng dữ liệu mở
Mơ tả quy trình tích hợp giải pháp
Giải quyết các vấn đề trong q trình tích hợp giải pháp

III. NGÀY GIAO NHIỆM VỤ : 11/02/2019
IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 08/12/2019
V. CÁN BỘ HƯỚNG DẪN:

Tp. HCM, ngày . . . . tháng .. . . năm 20....
CÁN BỘ HƯỚNG DẪN
(Họ tên và chữ ký)


CHỦ NHIỆM BỘ MÔN ĐÀO TẠO
(Họ tên và chữ ký)

TRƯỞNG KHOA….………
(Họ tên và chữ ký)


Lời cảm ơn
Em xin cảm ơn các thầy cô trong tổ bộ mơn Khoa Học Máy Tính, các thầy cơ tại trường đại
học Bách Khoa đã giảng dạy, gíup đỡ em trong suốt quá trình học tập và nghiên cứu. Đặc
biệt, trong suốt quá trình học thực hiện đề tài, em luôn nhận được sự động viên của bạn bè,
đồng nghiệp và người thân trong gia đình. Đồng thời, e xin gửi lời cám ơn sâu sắc tới thầy
Đặng Trần Khánh, với sự hướng dẫn khoa học của thầy đã giúp em xây dựng được kết quả
khoá luận này. Hy vọng luận văn sẽ nhận được những ý kiến đóng góp của hội đồng để nội
dung ngày một hồn thiện hơn
Trân trọng cảm ơn!


Tóm tắt luận văn
Nền tảng dữ liệu mở đã trở thành một xu thế tất yếu trong quá trình phát triển các hệ sinh thái
đa ứng dụng. Dữ liệu được chia sẻ từ nhiều nguồn, và tái sử dụng bởi nhiều đối tượng và
nhiều ứng dụng khác nhau, từ đó đặt ra nhiều vấn đề về bài toán quản lý nguồn gốc và đặc
tính dữ liệu. Trong bối cảnh đó, blockchain là một nền tảng công nghệ mới nhận được sự
quan tâm của thế giới, với những tính chất đảm bảo sự bất biến, tính minh bạch, cơ chế phân
tán, cùng với khả năng tự động hố của mình khiến blockchain trở thành một hướng đi đầy
tiềm năng để giải quyết các vấn đề trên. Luận văn trình bày mơ hình giải pháp tích hợp
blockchain vào nền tảng dữ liệu mở để giải quyết vấn đề về quản lý nguồn gốc và đặc tính
của dữ liệu mở. Nội dung trình bày bao gồm các nghiên cứu liên quan, cơ chế tích hợp, quy
trình hoạt động, mơ hình chuẩn giao tiếp giữa 2 nền tảng. Đồng thời hiện thực giải pháp cụ

thể trên nền tảng dữ liệu mở CKAN và blockchain Hyperledger fabric. Kết quả được trình
bày chi tiết trong nội dung luận văn cho thấy đây là sự kết hợp mang tính logic và là một
hướng đi khả thi mang tính ứng dụng cao. Giải pháp đề xuất mang tính tổng quát và có khả
năng mở rộng trong tương lai
Nowadays, open data is a vital part as the most variety of resource input for many systems.
Data is originating from different sources and reused by many different applications under
different purposes, thereby exposing several problems about managing data provenance and
characteristic. Meanwhile, blockchain is a new raising technology that gets a lot of attention
around the world. With its immutability, transparency, distributed mechanisms, and
automation capabilities, using blockchain seems like a possible direction to solve these
problems. This thesis presents the model design of integrating blockchain into an open data
platform to solve this issue. The research involves some related studies, integration
mechanism, operating procedures, showing the standard model of communication between
two platforms and experimental real model with CKAN and Hyperledger Fabric. The result
shows that this combination is logical and a feasible direction of high applicability. The
proposed solution is general and scalable in the future


LỜI CAM ĐOAN
Tơi xin cam đoan ln văn được trình bày là kết quả nghiên cứu của cá nhân tôi,
không sao chép từ bất kỳ ai. Nôi dung nghiên cứu là do tơi tự tìm hiểu, phân tích một
cách trung thực, khách quan dưới sự hướng dẫn khoa học của PGS.TS Đặng Trần
Khánh. Tơi xin hồn tồn chịu trách nhiệm về lời cam đoan này

DƯƠNG ANH THƯ


MỤC LỤC
MỤC LỤC ........................................................................................................................... 7
MỤC LỤC HÌNH ẢNH .......................................................................................................... 1

I GIỚI THIỆU ...................................................................................................................... 3

1. Giới thiệu bài toán ................................................................................................................................... 3
2. Giải quyết vấn đề ..................................................................................................................................... 5
3. Các bài toán khác trong bối cảnh dữ liệu mở hiện nay ........................................................................... 6
3.1 Tính riêng tư của dữ liệu ............................................................................................................ 6
3.2 Quyền sở hữu dữ liệu ................................................................................................................. 6
3.3 Kiểm tra và đánh giá chất lượng của dữ liệu .............................................................................. 7

II CƠ SỞ TRI THỨC ............................................................................................................. 8

1. Siêu dữ liệu nguồn gốc (data provenance) .............................................................................................. 9
1.1 Giới thiệu .................................................................................................................................... 9
1.2 Chuẩn siêu dữ liệu nguồn gốc W3C PROV .................................................................................. 9
1.3. Bảo vệ thông tin nguồn gốc dữ liệu......................................................................................... 13
2. Dữ liệu mở - Open Data......................................................................................................................... 15
2.1. Giới thiệu ................................................................................................................................. 15
2.2. Các nền tảng dữ liệu mở phổ biến hiện nay ............................................................................ 15
2.3. Tổng kết các nền tảng dữ liệu mở ........................................................................................... 19
3. Nền tảng Blockchain .............................................................................................................................. 21
3.1. Giới thiệu ................................................................................................................................. 21
3.2. Các ứng dụng blockchain vào thực tiễn hiện nay .................................................................... 21
3.3 Phân loại Blockchain ................................................................................................................. 23
3.4. Nền tảng Blockchain Hyperledger Fabric ................................................................................ 24
4. Các giải pháp Blockchain và dữ liệu nguồn gốc trên thế giới hiện nay.................................................. 33
4.1. DataProv .................................................................................................................................. 33
4.2. ProvChain ................................................................................................................................ 34
4.3. Neisse et al .............................................................................................................................. 36
4.4. Using PROV and Blockchain to Archive Data health provenance ............................................ 37
4.5. Tổng kết ................................................................................................................................... 39


III Nội dung giải pháp đề xuất .......................................................................................... 40

1. Định danh cổng thông tin - Portal ......................................................................................................... 41
2. Cơ chế thu thập dữ liệu xuất xứ trong hệ thống dữ liệu mở................................................................. 41
2.1 Chức năng mở rộng - Plugin ..................................................................................................... 42
2.2 Công việc chạy nền - Background jobs ..................................................................................... 43
2.3 Kết hợp Plugin và Background jobs .......................................................................................... 44
2.4 Tổng quát hoá .......................................................................................................................... 44
3. Cơ chế quản lý người dùng giữa hệ thống dữ liệu mở và blockchain ................................................... 45
3.1 Người dùng từ các nền tảng dữ liệu mở .................................................................................. 46
3.2. Người dùng không thuộc bất kỳ nền tảng dữ liệu mở nào ..................................................... 48
3.3. Quản lý lưu trữ định danh của cổng thông tin và người dung ................................................ 49
4. Cơ chế thu hồi, cấp phát chứng chỉ cho người dùng khi bị định danh bị mất hoặc thay đổi ................ 50
5. Cơ chế lưu trữ dữ liệu trong mạng lưới blockchain .............................................................................. 51
5.1. Mơ hình chung về quản lý lưu trữ dữ liệu ............................................................................... 51
5.2. Quản lý lưu trữ dữ liệu xuất xứ ............................................................................................... 52
6. Cơ chế xử lý tiếp nhận và truy vấn dữ liệu trong mạng lưới blockchain ............................................... 53
7. Thiết kế hệ thống mạng lưới blockchain ............................................................................................... 55
8. Chuyển đổi giữa các chuẩn dữ liệu nguồn gốc ...................................................................................... 56
9. Xây dựng ứng dụng khai thác các dữ liệu được lưu trữ trên blockchain .............................................. 56
10.Tích hợp các thành phần tạo thành giải pháp hoàn chỉnh ................................................................... 57
11. Đánh giá khả năng của giải pháp ......................................................................................................... 57


IV HIỆN THỰC GIẢI PHÁP ................................................................................................. 59

1. Môi trường hiện thực và công cụ sử dụng ........................................................................................... 60
2. Thiết lập vận hành nền tảng CKAN ........................................................................................................ 60
3. Xây dựng webhook plugin trong CKAN cho phép theo dõi sự thay đổi của các các đối tượng............. 62

4. API Endpoint cho phép đăng ký khởi tạo định danh cổng thông tin ..................................................... 62
5. Q trình xử lý cho phép đồng bộ hố dữ liệu từ hệ thống CKAN và blockchain ................................. 64
6. API cho phép người dùng từ CKAN có thể kích hoạt thông tin định danh ............................................ 65
7. API cho phép người dùng bất kỳ có thể tạo được thơng tin định danh và tương tác trực tiếp với
blockchain ................................................................................................................................................. 65
8. Thiết lập, vận hành mạng lưới blockchain ............................................................................................. 65
9. Xây dựng Chaincode trong blockchain .................................................................................................. 67
9. 1 Cấu trúc lưu trữ chung của các đối tượng ............................................................................... 68
9.2. Logic xử lý chung của tất cả chaincode ................................................................................... 68
9.3. Cấu trúc lưu trữ của thông tin xuất xứ .................................................................................... 69
9.4. Chức năng cụ thể của từng chaincode .................................................................................... 70
10. Xây dựng các API truy vấn trong blockchain ....................................................................................... 71
11. Xây dựng ứng dụng ............................................................................................................................. 72
12. Kiểm tra khả năng chống thay đổi của nền tảng blockchain ............................................................... 72
13. Kết luận................................................................................................................................................ 74

V TỔNG KẾT ..................................................................................................................... 75

1.Tổng kết nội dung ................................................................................................................................... 75
2.Hướng phát triển .................................................................................................................................... 75

VI DANH MỤC TÀI LIỆU THAM KHẢO ............................................................................... 76
VII PHỤ LỤC ..................................................................................................................... 79

I Phụ lục hình ảnh ...................................................................................................................................... 79
1. Một số màn hình sau khi CKAN đã được setup thành cơng và vận hành................................... 79
2. Ví dụ q trình hoạt động của Redis Queue task gửi dữ liệu về API .......................................... 81
3. Các màn hình liên quan đến quá trình xây dựng ứng dụng ....................................................... 82
4. Các bước minh hoạ quá trình kiểm tra khả năng chống thay đổi của hệ thống......................... 87
II Một số đoạn mã minh hoạ .................................................................................................................... 92

III Một số ví dụ về API request payload ..................................................................................................... 98


MỤC LỤC HÌNH ẢNH
Figure 1: Mơ hình chung về kiến trúc W3C PROV [2] ........................................................ 10
Figure 2: Ví dụ định dạng PROV-N .................................................................................... 11
Figure 3 Ví dụ định dạng PROV-XML ................................................................................ 12
Figure 4 Ví dụ định ạng PROV-O....................................................................................... 12
Figure 5 Kiến trúc chung của CKAN [7] ............................................................................. 16
Figure 6 Kiến trúc nền tảng Socrata ................................................................................. 17
Figure 8 Các nền tảng blockchain của Hyperledger........................................................... 24
Figure 9 Minh hoạ kiến trúc của Hyperledger Fabric......................................................... 25
Figure 10 Cấu trúc bản ghi trong hyperledger fabric ........................................................ 27
Figure 11 Mơ hình các chứng chỉ trong hyperledger fabric ............................................... 28
Figure 12 Tiến trình đồng thuận trong hyperledger fabric ................................................ 31
Figure 13 Tiến trình xử lý trong DataProv ........................................................................ 33
Figure 14 Minh hoạ hoạt động của ProvChain [11]........................................................... 35
Figure 15 Minh hoá cấu trúc dữ liệu provenance của các file CDA .................................... 37
Figure 16 Kiến trúc giải pháp ứng dụng nền tảng blockchain vào lĩnh vực y tế ................. 38
Figure 17 khái niệm cổng thông tin .................................................................................. 41
Figure 18 Mối quan hệ Dataset và Resources trong CKAN ................................................ 42
Figure 19 Plugin trong CKAN cho phép theo dõi lifecycle của các đối tượng ..................... 42
Figure 20 Cơ chế đồng bộ hoá trong CKAN kết hợp plugin và background jobs ................ 44
Figure 21 người dùng được hỗ trợ trong giải pháp đề xuất ............................................. 45
Figure 22 Minh hoạ quá trình người dùng từ nền tảng chủ động kích hoạt định danh trên
blockchain ....................................................................................................................... 47
Figure 23 Người dùng bất kỳ khơng thuộc nền tảng nào có thể tự đăng ký và kích hoạt
định danh cho riêng mình ................................................................................................ 48
Figure 24 Minh hoạ việc quản lý lưu trữ định danh thông tin người dùng trên blockchain49
Figure 25 Các bước thu hồi và cấp phát định danh ........................................................... 50

Figure 26 Cấu trúc dữ liệu lưu trữ trên blockchain ........................................................... 51
Figure 27 Dữ liệu nguồn gốc của đối tượng được lưu trữ thành từng chương ................. 52
Figure 28 Các chaincode trong hệ thống .......................................................................... 53
Figure 29: Chaincode tiếp nhận thông tin từ thế giới bên ngoài, xử lý và trả kết quả ....... 54
Figure 30 Thiết kế hệ thống mạng lưới blockchain ........................................................... 55
Figure 31 Kết hợp các thành phần của giải pháp đề xuất ................................................. 57
1


Figure 32 Cấu trúc vận hành thực nghiệm CKAN .............................................................. 61
Figure 33 Các bước xử lý cho quá trình đăng ký định danh cổng thông tin ....................... 63
Figure 34 Cơ chế đồng bộ hoá dữ liệu từ CKAN vào blockchain thơng qua queue ............. 64
Figure 35 Cấu hình blockchain thực nghiệm ..................................................................... 66
Figure 36 Minh hoạ các docker được vận hành ................................................................ 67
Figure 37 Ví dụ về thơng tin provenance được lưu trữ thành công trong couchdb ........... 70
Figure 38 code giao tiếp giữa 2 process nodejs và python ................................................ 72
Figure 39 Cấu hình kiểm tra chống thay đổi của blockchain ............................................. 73
Figure 40 Giao diện Web CKAN cho phép đăng ký người dùng mới .................................. 79
Figure 41 Màn hình tạo mới dataset ................................................................................ 80
Figure 42 Màn hình thêm resource vào dataset ............................................................... 80
Figure 43 Redis queue task gửi dữ liệu về API .................................................................. 81
Figure 44 Màn hình login của ứng dụng web ................................................................... 82
Figure 45 Danh sách các dataset của ngườời dùng .......................................................... 83
Figure 46 Thông tin về Dataset từ blockchain .................................................................. 83
Figure 47 Thông tin về dữ liệu xuất xứ của dataset dưới định dạng PROV-JSON .............. 84
Figure 48 Thông tin về dữ liệu xuất xứ của Dataset dưới định dạng PROV-N ................... 84
Figure 49 Dữ liệu xuất xứ được trực quan hố bằng hình ảnh dưới định dạng PDF.......... 84
Figure 50 Thông tin lịch sử của dataset qua từng phiên bản ............................................ 85
Figure 51 Màn hình cho phép thêm mới, cập nhật dataset từ ứng dụng web ................... 85
Figure 52 Màn hình cho phép upload, rút trích thông tin file từ giao diện web ................. 86

Figure 53 hệ thống sau khi thiết lập cho quá trình kiểm thử ............................................. 87
Figure 54 bước kiểm tra hệ thống hoạt động thành công ................................................ 87
Figure 55 thay đổi giá trị trực tiếp trong couchdb ............................................................ 90
Figure 57 Hệ thống blockchain vẫn hoạt động bình thường với các nút cịn lại ................ 90
Figure 58 Dữ liệu được khôi phục từ thong tin của các node khác trong hệ thống ............ 91

2


I GIỚI THIỆU
1. Giới thiệu bài tốn
Trong thời đại cơng nghệ số ngày nay, dữ liệu đóng vai trị hết sức quan trọng. Hàng ngàn ứng
dụng, dịch vụ, hệ thống thông tin … đều được xây dựng dựa trên việc tập hợp, khai thác, phân
tích, chuyển đổi dữ liệu… Xu thế xây dựng một hệ sinh thái đa ứng dụng như nhà thông minh
(smart home) hay đô thị thông minh (smart city) đang là mục tiêu chính của nhiều tập đoàn,
nhiều quốc gia trên thế giới. Để đạt được mục tiêu này, cần tập hợp một lượng lớn dữ liệu đầu
vào từ nhiều nguồn, nhiều lĩnh vực khác nhau và đa phần dữ liệu này đến từ các nền tảng dữ
liệu mở (open data)
Nền tảng dữ liệu mở cho phép và khuyến khích người dùng chia sẻ dữ liệu bằng nhiều hình
thức, định dạng khác nhau, dưới nhiều điều kiện, điều khoản khác nhau. Đây là nguồn dữ liệu
đa dạng, phong phú tuy nhiên cũng chứa đựng nhiều rủi ro về tính đúng đắn, tính khả dụng và
chất lượng của thơng tin được chia sẻ
Chính sự dễ dàng tiếp cận và khả năng chia sẻ rộng rãi của các nền tảng này đã tạo ra quá nhiều
lựa chọn cho người dùng, từ đó khó có thể xác định được tập thơng tin nào là chính xác, đủ
chất lượng, khơng bị thay đổi hoặc làm giả
Ta có thể rút ra được 2 vấn đề lớn hiện nay trong lĩnh vực dữ liệu mở cần phải giải quyết đó là


Nguồn gốc dữ liệu




Quản lý đặc tính dữ liệu

Nguồn gốc dữ liệu
Phần lớn cơ chế dữ liệu mở hiện nay được chia sẻ thơng qua internet, hồn tồn khơng có sự
đảm bảo về tính đúng đắn cũng như tính khả dụng của thơng tin. Dữ liệu có thể đến từ một
nguồn khơng tin cậy, bị sửa đổi, thay thế hoặc đã quá lỗi thời, không được cập nhật sau khoảng
thời gian dài.
Sự sai sót về mặt thơng tin, khi đưa vào sử dụng có thể tạo ra sai sót cho cho cả hệ thống, gây
ra những tác động tiêu cực không mong muốn. Vậy cần thiết có một cơ chế quản lý được nguồn
gốc của dữ liệu, theo dõi được quá trình dữ liệu chuyển đổi từ lúc bắt đầu cho đến hiện tại, từ
đó chứng minh được giá trị và tính đúng đắn. Tạo được niềm tin khi đưa dữ liệu vào sử dụng,
hạn chế được những sai phạm đáng tiếc do sai lệch thông tin đầu vào

3


Quản lý đặc tính dữ liệu
Đặc tính của dữ liệu mở là chia sẻ cho tất cả mọi người. Tuy nhiên, dữ liệu được chia sẻ có
nhiều đặc tính khác nhau. Một số dữ liệu mang tính nhạy cảm như thông tin bệnh án, dữ liệu y
khoa, định danh cá nhân tại các tổ chức ..., cần phải được phân loại, đánh giá và xác định mục
đích sử dụng phù hợp nhằm đảm bảo tính riêng tư. Một số dữ liệu khác có đặc tính chỉ được
chia sẻ khi có sự cho phép và chỉ trong phạm vi một số cá nhân tổ chức liên quan. Ví dụ: báo
cáo doanh thu của các doanh nghiệp, bài báo, cơng trình khoa học của các viện nghiên cứu …
Vậy khi đã xác định được đặc tính của dữ liệu, làm thế nào để có thể quản lý những đặc tính
đó, đảm bảo mỗi dữ liệu khi chia sẻ đều được ứng xử phù hợp với những đặc tính của nó, phát
huy cao nhất giá trị của thông tin, đảm bảo phù hợp với mục đích sử dụng đồng thời vẫn tuân
thủ những quy định đã được nêu ra
Ngồi ra, dữ liệu ln được thay đổi, quá trình thay đổi, cập nhật, sửa chữa dữ liệu đồng thời

cũng làm biến đổi đặc tính của dữ liệu. Làm thế nào để có thể quản lý, theo dõi sự biến đổi của
các đặc tính đó, kịp thời thay đổi cơ chế mới phù hợp với tính chất của dữ liệu hiện tại
Việc quản lý các đặc tính dữ liệu nói trên là một phần khơng thể thiếu cho nền tảng dữ liệu mở
hiện nay, là nhu cầu cấp thiết trong xã hội hiện đại, góp phần tăng tính minh bạch của hệ thống,
tạo niềm tin và khuyến khích mọi người tham gia vào việc chia sẻ dữ liệu, đồng thời thúc đẩy
tạo ra nền tảng cho các ngành khoa học mới hiện nay

4


2. Giải quyết vấn đề
Để giải quyết vấn đề trên, một siêu dữ liệu (metadata) về nguồn gốc xuất xứ của dữ liệu (data
provenance) được sử dụng để tạo độ tin cậy của tập dữ liệu. Dựa vào siêu dữ liệu này, người
dùng có thể biết tập dữ liệu bắt nguồn từ đâu, các hệ thống nào đã tương tác, ai thay đổi tập dữ
liệu, dữ liệu được cập nhật khi nào, chia sẻ dưới điều kiện nào, và đã được sử dụng ở đâu, lịch
sử hình thành, phát triển ... góp phần trực tiếp vào độ tin cậy và chính xác của dữ liệu . Tuy
nhiên, vấn đề lại phát sinh khi người dùng phải tin tưởng vào chính thông tin của siêu dữ liệu
này khai báo là an tồn và chính xác. Vậy làm sao để giải quyết vấn đề về lịng tin, khơng phụ
thuộc vào bất kỳ bên thứ ba nào nhưng vẫn đảm bảo độ an tồn và chính xác của siêu dữ liệu
này? giải pháp phổ biến nhất được tiếp cận hiện nay là blockchain
Dữ liệu khi được ghi nhận vào blockchain là không thể thay đổi, và đã được đảm bảo chứng
minh bằng các thuật tốn khoa học. Vì vậy khi siêu dữ liệu nguồn gốc (data provenance) được
đưa vào blockchain, ta có thể đảm bảo từng sự thay đổi đều được ghi nhận một cách chính xác,
khơng bị thay đổi, từ đó loại bỏ được vấn đề về lịng tin.
Ngồi ra các đặc tính bảo mật khác của blockchain như khả năng truy vết (traceability), tính
minh bạch (transparency), tính tồn vẹn (integrity), chức năng hợp đồng thông minh (smart
contract) đều rất phù hợp cho sự kết hợp với nền tảng dữ liệu mở. Đây là một trong những lý
do có rất nhiều cơng trình liên quan đến nền tảng dữ liệu mở và blockchain được nghiên cứu
trong những năm gần đây.


5


3. Các bài toán khác trong bối cảnh dữ liệu mở hiện nay
Ngồi 2 vấn đề được trình bày trong luận văn, vẫn cịn rất nhiều khía cạnh cần phải giải
quyết trong bối cảnh cảnh dữ liệu mở hiện nay như


Tính riêng tư của dữ liệu (Data Privacy)



Quyền sở hữu dữ liệu (Data ownership)



Kiểm tra và đánh giá chất lượng của dữ liệu

3.1 Tính riêng tư của dữ liệu
Một số dữ liệu được chia sẻ mang tính định danh cá nhân, có thể bị lợi dụng vào các mục đích
khơng rõ ràng. Trách nhiệm đảm bảo an toàn dữ liệu thuộc về cả 2 bên: chủ sở hữu dữ liệu
cũng như phía khai thác dữ liệu. Vì vậy, về phía nhà khai thác dữ liệu, trước khi được đưa dữ
liệu vào sử dụng cho các mục đích cơng cộng, các dữ liệu cần phải được xử lý và làm mờ, loại
bỏ các yếu tố có thể xác định được cá nhân và đảm bảo không tái định danh được thông tin cá
nhân. Ngồi ra, khơng lưu trữ và truyền tải các dữ liệu khác với các mục đích đã thoả thuận.
Để giải quyết bài toán này, hiện nay các hệ thống đang sử dụng các kỹ thuật nặc danh hoá
(anonymize) và mã hoá dữ liệu.

3.2 Quyền sở hữu dữ liệu
Trong thời đại số ngày nay, dữ liệu là tài sản, và tài sản thì phải có chủ sở hữu, từ đó hình

thành vấn đề quan trọng là việc trao quyền sử dụng từ người sở hữu cho người sử dụng. Đây
là một vấn đề phức tạo và mang tính nhiều chiều.
Ví dụ, xem xét sự tồn tại của hai dạng cơ sở dữ liệu khác nhau về tính nguyên gốc của dữ liệu
hay tư liệu thành phần của chúng. Loại thứ nhất là các cơ sở dữ liệu gồm tập hợp các thơng
tin do chính tác giả tổng hợp nên mà có, ví dụ như cơ sở dữ liệu về báo cáo kiểm toán của
một doanh nghiệp được gọi là sưu tập dữ liệu có tính ngun gốc (original database). Loại
thứ hai là cơ sở dữ liệu gồm tập hợp của các thông tin/ dữ liệu công khai, thuộc về cơng
chúng, được gọi là sưu tập dữ liệu khơng có tính nguyên gốc (non-original database). Tuỳ
theo từng loại khác nhau mà quyền sở hữu dữ liệu sẽ mang tính bao hàm cho các thành phần
bên trong hoặc chỉ dừng lại ở mức bên ngoài. Ngoài ra, cùng một nội dung có thể được sở
hữu bởi nhiều cá nhân khác nhau, cần có các cơ chế giải quyết tranh chấp hoặc đồng sở hữu
dữ liệu

6


3.3 Kiểm tra và đánh giá chất lượng của dữ liệu
Là quá trình đảm bảo dữ liệu đạt tiêu chuẩn, phù hợp với mục tiêu, có khả năng đem lại lợi
ích khi đưa vào sử dụng phân tích. Dữ liệu trước khi đưa vào sử dụng, trải qua các bước tiền
xử lý, rút trích thơng tin nhằm bảo mật và đảm bảo an tồn thơng tin cá nhân. Q trình này ít
nhiều đã thay đổi bản chất và giá trị của dữ liệu, cần phải có một độ đo về tính khả dụng, chất
lượng thơng tin, độ an tồn cũng như đảm bảo việc tuân thủ các cam kết, quy trình của hệ
thống. Một số tiêu chuẩn đưa ra như độ chính xác, tính khách quan, độ tin cậy, giá trị có được
từ dữ liệu, mức độ liên quan, phù hợp với mục đích, tính kịp thời, tính đầy đủ …

7


II CƠ SỞ TRI THỨC
Trong chương này, ta trình bày một số thơng tin, định nghĩa, tính chất cơ bản về Siêu dữ liệu

nguồn gốc xuất xứ. Đồng thời giới thiệu sơ nét về các nền tảng dữ liệu mở phổ biến hiện nay,
tập trung cụ thể vào nền tảng CKAN - đối tượng chính trong luận văn này. Ngồi ra, chương
này cịn mang một số thơng tin về cấu trúc nền tảng blockchain, cụ thể là blockchain
Hyperledger Fabric, các ứng dụng của blockchain trong ngữ cảnh dữ liệu mở và các cơng
trình nghiên cứu có liên quan đến giải pháp luận văn đưa ra

8


1. Siêu dữ liệu nguồn gốc (data provenance)
1.1 Giới thiệu
Dữ liệu nguồn gốc (data provenance) là siêu thông tin (metadata) về đến các đối tượng, các
hoạt động, các cá thể liên quan đến quá trình hình thành, tương tác, thay đổi, sử dụng .... Dữ
liệu nguồn gốc có thể được sử dụng cho nhiều mục đích khác nhau như để đánh giá chất
lượng, độ tin cây của một tập dữ liệu, xác định quyền sở hữu, quyền sử dụng, xác minh quy
trình khai thác dữ liệu, kiểm tra và tái xây dựng (reproduce) tập dữ liệu ….
Siêu dữ liệu nguồn gốc giúp ta trả lời các câu hỏi:


Khi nào và lúc nào dữ liệu bị thay đổi?



Dữ liệu bị thay đổi như thế nào?



Ai là người thay đổi dữ liệu, các yếu tố ảnh hưởng đến việc thay đổi dữ liệu?




Lịch sử tạo thành dữ liệu?

1.2 Chuẩn siêu dữ liệu nguồn gốc W3C PROV
Mục tiêu của W3C PROV [1] là xây dựng mơ hình chung về dữ liệu nguồn gốc, cho phép
chia sẻ, trao đổi giữa các hệ thống, thống nhất quy định các cấu trúc, thành phần, mối liên hệ
cấu tạo nên một thông tin nguồn gốc

9


1.2.1. Tổng quan về W3C PROV

Figure 1: Mơ hình chung về kiến trúc W3C PROV [2]
Mơ hình này bao gồm khái niệm về 3 thành phần chính và 5 mối quan hệ giữa các thành phần
với nhau


3 thành phần chính:
o

Thực thể (entity): thực thể đại diện cho đối tượng ta quan tâm, muốn ghi lại
thông tin xuất xứ. Thực thể có thể là một đối tượng vật lý cụ thể xung quanh
hoặc một khái niệm trừu tượng

o

Hoạt động (activity): một hoạt động đại diện cho một hành động xảy ra tại
một thời điểm cụ thể, có tác động liên hệ với thực thể dưới bất kỳ hình thức
nào


o

Tác nhân (Agent): Là người chịu trách nhiệm cho một hoạt động nào đó đang
diễn ra. Tác nhân khơng nhất thiết là người, có thể là tổ chức, thư viện, tiến
trình nào đó.



5 mối quan hệ cơ bản
o

Tạo ra (Generation): Đại diện cho mối quan hệ một thực thể mới được tạo ra
bằng một hoạt động. Như ví dụ trên, thực thể bài viết được tạo ra bởi hoạt
động - tạo bài blog - mối quan hệ được đặt tên trên biểu đồ wasGeneratedBy

o

Sử dụng (Usage): Đại diện cho mối quan hệ một hoạt động diễn ra bằng việc
sử dụng một thực thể, mối quan hệ được đặt tên trên biểu đồ Used

10


o

Dẫn xuất (Derivation): Đại diện cho mối quan hệ giữa 2 thực thể, thực thể này
là dẫn xuất của thực thể kia, như ví dụ trên, bài blog version 2 là dẫn xuất từ
bài blog version 1 - mối quan hệ được đặt tên trên biểu đồ wasDerivedFrom


o

Liên hệ (Attributed): Đại diện cho mối quan hệ giữa thực thể và tác nhân, cho
biết thực thể có liên hệ đến tác nhân cụ thể, như ví dụ trên, bài blog có liên hệ
đến tác giả - mối quan hệ được đặt tên trên biểu đồ wasAttributedTo

o

Liên kết (Associated): Đại cho mối quan hệ giữa hoat động và tác nhân, cho
biết hoạt động diễn ra có liên kết đến tác nhân cụ thể - mối quan hệ được đặt
tên trên biểu đồ wasAssociatedWith

Ngồi 5 mối quan hệ cơ quản nói trên, mơ hình cũng định nghĩa mở rộng thêm các mối liên
kết khác nhằm đáp ứng với nhu cầu của nhiều lĩnh vực khác nhau
1.2.2. Các định dạng hỗ trợ PROV
Nội dung của mơ hình PROV có thể được biểu diễn dưới nhiều định dạng khác nhau, phục vụ
cho nhiều mục đích khác nhau, các định dạng được sử dụng phổ biến:


PROV-N: là định dạng được thể hiện dưới hình thức ngơn ngữ, mục tiêu phục vụ cho
việc có thể thể dễ dàng đọc hiểu bởi người dùng (human readable)

Figure 2: Ví dụ định dạng PROV-N


PROV-XML: nội dung được thể hiện dưới cấu trúc XML

11



Figure 3 Ví dụ định dạng PROV-XML


PROV-O: phục vụ cho các nền tảng RDF

Figure 4 Ví dụ định ạng PROV-O
1.2.3. Các công cụ hỗ trợ chuyển đổi định dạng
PROV được sự dụng phổ biến trên nhiều nền tảng hiện nay, vì vậy các cơng cụ hỗ trợ chuyển
đổi định dạng cũng được phát triển khá đa dạng dưới nhiều ngôn ngữ [3]


PROV Translator: là một dịch vụ web trực tuyến cho phép kiểm tra và chuyển đổi
qua lại giữa các định dạng thông tin xuất xứ, hỗ trợ 6 loại định dạng dữ liệu là ttl, rdf,
provn, provx, trig, json



PROV Toolbox: bộ cơng cụ viết bằng Java



ProvJS: hỗ trợ ngơn ngữ javascript [3]



PROV Python: hỗ trợ ngơn ngữ python

12





PROV Extract - Xử lý các dữ liệu PROV được nhúng trong web



PROV-Vis: trực quan hố mơ hình PROV bằng hình ảnh



PROV-N-Editor: trình soạn thảo hỗ trợ các cú pháp định nghỉa trong PROV

1.3. Bảo vệ thông tin nguồn gốc dữ liệu
Một trong những thách thức với hệ thống lưu trữ thông tin xuất xứ là việc thu thập và đảm bảo
tính bất biến, tính bảo mật và quyền riêng tư của dữ liệu xuất xứ sau khi được thu thập. Để giải
quyết vấn đề này, rất nhiều hệ thống quản lý dữ liệu xuất xứ như Chimera [4], MyGrid [5]
được phát triển nhằm lưu trữ và xử lý các loại dữ liệu xuất xứ. Đa phần, các hệ thống hiện tại
đều dựa trên mơ hình lưu trữ tập trung - centralized, điểm yếu của mơ hình này là khi hệ thống
chính bị tấn cơng, tồn bộ thơng tin xuất xứ được lưu trữ sẽ bị đánh cắp, thay đổi hoặc làm giả,
đồng thời tính sẵn sàng cho truy xuất cũng khơng được đảm bảo. Vì vậy, đảm bảo an tồn cho
thơng tin nguồn gốc dữ liệu là một chủ đề khá phức tạp
Một trong các ghi chú kỹ thuật của W3C có một phần ngắn thảo luận một số cân nhắc khi bảo
mật dữ liệu xuất xứ, tuy nhiên W3C không cung cấp bất cứ đề xuất nào cụ thể nào để giải quyết
vấn đề này. Một số vấn đề W3C đề cập tóm tắt như: đảm bảo tính tồn vẹn của thơng tin nguồn
gốc dữ liệu, dữ liệu xuất xứ phải được lưu trữ một cách an toàn và có khả năng chống giả mạo,
khi truy xuất cần phải đảm bảo nguồn đáng tin cậy và là tài liệu gốc, khơng bị thay đổi. Ta có
thể tổng qt hơn thành 5 tính chất sau


Bảo mật (Confidentialy): Dữ liệu xuất xứ có thể chứa thơng tin nhạy cảm mà khơng

phải ai cũng truy cập được



Tồn vẹn (Integrity): Vì dữ liệu xuất xứ được sử dụng để xây dựng niềm tin vào các
đối tượng dữ liệu khác, điều cần thiết là bản thân dữ liệu xuất xứ không thể bị sửa đổi.
Cần có các biện pháp chống lại các sự thay đổi từ các tác nhân xấu, ko đáng tin cậy.
Thuộc tính này khơng chỉ liên quan đến cách lưu trữ mà cịn q trình trao đổi, xử lý,
truy xuất dữ liệu



Khơng thể làm giả(unforgetable): Thơng tin xuất xứ dữ liệu có mối liên hệ mật thiết
với dữ liệu gốc. Người dùng không thể đem dữ liệu xuất xứ của tập dữ liệu gốc này làm
dữ liệu xuất xứ cho tập dữ liệu khác khơng liên quan



Khơng thể chối cãi (Non-Repudiation): Dữ liệu xuất xứ phải mang tính thuyết phục,
khơng thể chối cãi: Ví dụ một khi bác sĩ đã đưa ra quyết định về phác đồ điều trị cho
bệnh nhân và nguồn gốc về quyết định này đã được ghi lại, sau đó bác sĩ khơng thể phủ
nhận rằng anh ta không phải là người đưa ra quyết định.

13




Sẵn có (Availability): Dữ liệu xuất xứ lúc nào cũng sẵn sàng cho truy xuất nhằm kiểm
chứng tính đúng đắn của tập dữ liệu gốc bất kỳ lúc nào


14


2. Dữ liệu mở - Open Data
2.1. Giới thiệu
Dữ liệu mở được định nghĩa là dữ liệu có thể được bất kỳ ai tự do sử dụng, sử dụng lại và phân
phối lại, chỉ yêu cầu ghi nhận nguồn và chia sẻ tương tự. Đặc điểm quan trọng của dữ liệu mở
là tính chia sẻ (trao quyền khai thác sử dụng, sử dụng lại, phân phối dữ liệu), tính sẵn sàng truy
cập (tiếp cận) khai thác sử dụng dữ liệu. [6]
Đối với các cơ quan nhà nước, dữ liệu mở giúp chính phủ cải thiện được tính minh bạch và
cơng khai, tạo ra mơi trường trong đó có sự tham gia của cơng dân với chính phủ, giúp cải tiến
quy trình quản lý, tổ chức dữ liệu trong cơ quan, làm giảm chi phí và tăng hiệu quả hoạt động
trong các cơ quan. Đối với người dân và doanh nghiệp, dữ liệu mở giúp người dân có được các
thơng tin cần thiết để có thể so sánh và đối chiếu, tạo điều kiện thuận lợi cho thực hiện quyền
dân chủ và tham gia quản lý.

2.2. Các nền tảng dữ liệu mở phổ biến hiện nay
a) CKAN - Comprehensive Knowledge Archive Network
CKAN [7] được phát triển bởi tổ chức phi lợi nhuận OKFN(Open Knowledge Foundation)
.CKAN là một nền tảng mã nguồn mở để tạo các trang web dữ liệu mở (tương tự như hệ thống
quản lý nội dung WordPress - nhưng đối với dữ liệu, thay vì các trang và các bài đăng blog.)
Mục tiêu chính của CKAN là quản lý và chia sẻ dữ liệu cho tất cả mọi người dưới nhiều hình
thức khác nhau và hiện đang được sử dụng rộng rãi bởi các quốc gia, tổ chức nghiên cứu trên
toàn thế giới.
Trong CKAN, đơn vị chia sẻ dữ liệu được gọi là bộ dữ liệu (datasets) ví dụ, bộ dữ liệu có thể
là số liệu thống kê tội phạm cho một khu vực, số liệu chi tiêu cho một bộ phận của chính phủ,
hoặc chỉ số nhiệt độ từ các trạm thời tiết khác nhau. Khi người dùng tìm kiếm, kết quả tìm kiếm
mà họ thấy sẽ là các bộ dữ liệu riêng lẻ.
Một bộ dữ liệu trong CKAN sẽ gồm 2 thành phần chính:



Siêu dữ liệu - metadata: bao gồm tên, mô tả, giấy phép, loại tệp, thẻ, thời gian tải lên,
tác giả, người duy trì cập nhập ...



Phần nội dung: Nội dung dữ liệu dưới dạng CSV hoặc Excel, XML, tài liệu PDF, tệp
hình ảnh, dữ liệu liên kết ….

15


Figure 5 Kiến trúc chung của CKAN [7]
Hệ thống CKAN bao gồm giao diện web và API có thể sử dụng để tìm kiếm thêm, xóa và sửa
trên bộ dữ liệu, quản lý ủy quyền và phân tích người dùng. Ngồi ra, có thể xem trước dữ liệu
dưới hình thức biểu đồ, đồ thị và bảng. Đối với dữ liệu không gian địa lý (nếu dữ liệu bao gồm
thông tin vĩ độ và kinh độ), hỗ trợ chế độ xem bản đồ có sẵn. CKAN sử dụng mơ hình VDM
(Versioned Domain Model) để lưu giữ toàn bộ lịch sử hoạt động của người dùng. Các tính
năng chia sẻ và giao tiếp trên dữ liệu bao gồm khả năng tích hợp Google+, Twitter và Facebook,
RSS. Có hơn 60 phần mở rộng có sẵn cho CKAN có thể được thêm vào một cách độc lập
Mơ hình chia sẻ dữ liệu của CKAN tương đối đơn giản, chỉ hỗ trợ các tính năng cơ bản như
tạo mới, chia sẻ, tìm kiếm… tương tự như hệ thống lưu trữ file trực tuyến.
Hiện nay, CKAN là nền tảng dữ liệu mở được triển khai trên rất nhiều quốc gia


The Open Government Platform - OGPD ở Đức




- cổng thơng tin của chính phủ Mỹ



- cổng thơng tin chung của khối liên minh châu âu



- Cổng thơng tin của chính phủ Úc



- Cổng thơng tin của chính phủ Canada



...

b) Socrata
Socrata [8] là cơng ty dẫn đầu thị trường trong việc cung cấp giải pháp thương mại cho các tổ
chức chính phủ trong vấn đề triển khai dữ liệu mở. Nền tảng của socrata có tên gọi Socrata
Open Data Portal, là cơng thơng tin dữ liệu mở hỗ trợ triển khai, tìm kiếm, so sánh và hiển thị
các tập dữ liệu khác nhau. Kiến trúc socrata là kiến trúc microservice trên nền tảng đám mây,
tối ưu hố tốc độ, quy mơ và có khả năng khả năng thay đổi linh hoạt. Hiện socrata đang

16


được sử dụng rộng rãi tại nhiều tổ chức chính phủ trên thế giới như cổng thơng tin chính phủ




New York ()



Chicago (),



Dallas()



Cincinnati () [9]

Figure 6 Kiến trúc nền tảng Socrata
c) SODA - Open data network
Ngoài phiên bản thương mại, socrata hiện đang phát triển thêm dự án mã nguồn mở phục vụ
cộng động , tạo ra hệ sinh thái dữ liệu, đẩy nhanh tốc độ tăng trưởng của xu thế dữ liệu mở
(). Phiên bản cộng động mã nguồn mở có tên gọi Socrata Open
Data Server (SODA), Community Edition, với mục tiêu tạo ra một kiến trúc chuẩn cho tất cả
dịch vụ dữ liệu mở, có khả năng giao tiếp với mọi ứng dụng, mọi nền tảng từ bên thứ ba mà
không cần phải thông qua các bước chuyển đổi phức tạp

17


×