ĐẠ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.
CÔNG TRÌNH ĐƯỢC HOÀ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.
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: 1.TS Nguyễn Thanh Bình. Lê Hồng Trang. Nguyễn An Khương .TS Nguyễn Tuấn Đăng.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 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độ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 TOÁ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 quá 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. CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN ĐÀO TẠO (Họ tên và chữ ký) (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 hoà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 hoá 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 luân 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 hoàn toà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. Giới thiệu bài toán.
Giải quyết vấn đề. Các bài toán khác trong bối cảnh dữ liệu mở hiện nay .1 Tính riêng tư của dữ liệu .2 Quyền sở hữu dữ liệu .3 Kiểm tra và đánh giá chất lượng của dữ liệu. 7 II CƠ SỞ TRI THỨC. Siêu dữ liệu nguồn gốc (data provenance) .2 Chuẩn siêu dữ liệu nguồn gốc W3C PROV.
Bảo vệ thông tin nguồn gốc dữ liệu. Dữ liệu mở - Open Data. Các nền tảng dữ liệu mở phổ biến hiện nay. Tổng kết các nền tảng dữ liệu mở.
Nền tảng Blockchain. Các ứng dụng blockchain vào thực tiễn hiện nay .3 Phân loại Blockchain. Nền tảng Blockchain Hyperledger Fabric. Các giải pháp Blockchain và dữ liệu nguồn gốc trên thế giới hiện nay.
Neisse et al. Using PROV and Blockchain to Archive Data health provenance. 39 III Nội dung giải pháp đề xuất. Định danh cổng thông tin - Portal.
Cơ chế thu thập dữ liệu xuất xứ trong hệ thống dữ liệu mở.1 Chức năng mở rộng - Plugin .2 Công việc chạy nền - Background jobs .3 Kết hợp Plugin và Background jobs .4 Tổng quát hoá. Cơ chế quản lý người dùng giữa hệ thống dữ liệu mở và blockchain .1 Người dùng từ các nền tảng dữ liệu mở. Người dùng không thuộc bất kỳ nền tảng dữ liệu mở nào. Quản lý lưu trữ định danh của cổng thông tin và người dung.
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. Cơ chế lưu trữ dữ liệu trong mạng lưới blockchain. Mô hình chung về quản lý lưu trữ dữ liệu. Quản lý lưu trữ dữ liệu xuất xứ.
Cơ chế xử lý tiếp nhận và truy vấn dữ liệu trong mạng lưới blockchain. Thiết kế hệ thống mạng lưới blockchain. Chuyển đổi giữa các chuẩn dữ liệu nguồn gốc. Xây dựng ứng dụng khai thác các dữ liệu được lưu trữ trên blockchain .Tích hợp các thành phần tạo thành giải pháp hoàn chỉnh.
Đánh giá khả năng của giải pháp. 57 IV HIỆN THỰC GIẢI PHÁP. Môi trường hiện thực và công cụ sử dụng. Thiết lập vận hành nền tảng CKAN.
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. API Endpoint cho phép đăng ký khởi tạo định danh cổng thông tin. Quá trình xử lý cho phép đồng bộ hoá dữ liệu từ hệ thống CKAN và blockchain. API cho phép người dùng từ CKAN có thể kích hoạt thông tin định danh.
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. Thiết lập, vận hành mạng lưới blockchain. Xây dựng Chaincode trong blockchain. 1 Cấu trúc lưu trữ chung của các đối tượng.
Logic xử lý chung của tất cả chaincode. Cấu trúc lưu trữ của thông tin xuất xứ. Chức năng cụ thể của từng chaincode. Xây dựng các API truy vấn trong blockchain.
Xây dựng ứng dụng. Kiểm tra khả năng chống thay đổi của nền tảng blockchain .Tổng kết nội dung .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. Một số màn hình sau khi CKAN đã được setup thành công và vận hành. Ví dụ quá trình hoạt động của Redis Queue task gửi dữ liệu về API. Các màn hình liên quan đến quá trình xây dựng ứng dụng.
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 .