Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 80 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
80
Dung lượng
3,58 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC LẠC HỒNG *** ANOUSITH SAPHANGTHONG ỨNG DỤNG CÔNG NGHỆ BLOCKCHAIN TRONG XÁC MINH THƠNG TIN Q TRÌNH HỌC TẬP CỦA DU HỌC SINH LÀO LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Đồng Nai - năm 2019 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC LẠC HỒNG *** ANOUSITH SAPHANGTHONG ỨNG DỤNG CÔNG NGHỆ BLOCKCHAIN TRONG XÁC MINH THÔNG TIN QUÁ TRÌNH HỌC TẬP CỦA DU HỌC SINH LÀO Chuyên ngành: Công nghệ thông tin Mã số: 8480201 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS TRẦN VĂN HOÀI Đồng Nai - năm 2019 LỜI CẢM ƠN Được phân công khoa Sau Đại học - Trường Đại học Lạc Hồng đồng ý giảng viên hướng dẫn PGS.TS Trần Văn Hồi tơi thực đề tài “Ứng dụng cơng nghệ blockchain xác minh thơng tin q trình học tập du học sinh lào” Đầu tiên, xin chân thành cảm ơn thầy PGS.TS Trần Văn Hoài tận tình hướng dẫn, bảo suốt thời gian thực luận văn Kế đến xin bày tỏ lịng biết ơn đến q thầy Khoa sau đại học Đại Học Lạc Hồng tận tâm dạy bảo, cung cấp kiến thức quí báu suốt q trình học tập; thầy văn phòng khoa hết lòng giúp đỡ, cung cấp tài liệu tham khảo, tạo điều kiện thuận lợi để tơi hồn thành luận văn Tơi xin gửi lời cảm ơn đến người thân gia đình; anh chị, bạn lớp quan tâm giúp đỡ suốt thời gian học tập làm luận văn Do thời gian làm luận văn cịn hạn chế, kiến thức có hạn; nên luận văn khơng tránh khỏi thiếu sót Kính mong nhận ý kiến đóng góp q thầy bạn để luận văn hồn chỉnh Xin chân thành cảm ơn! Đồng Nai, ngày 25 tháng 12 năm 2019 HỌC VIÊN Anousith Saphangthong LỜI CAM ĐOAN Tôi cam đoan kết đạt luận văn sản phẩm riêng cá nhân, kết đạt trình học tập nghiên cứu khoa học độc lập Trong toàn nội dung luận văn, điều trình bày cá nhân tổng hợp từ nhiều nguồn tài liệu Tất tài liệu tham khảo có xuất xứ rõ ràng trích dẫn hợp pháp Khơng có sản phẩm hay nghiên cứu người khác sử dụng luận văn mà khơng có trích dẫn theo quy định Tơi xin hồn tồn chịu trách nhiệm chịu hình thức kỹ luật theo quy định cho lời cam đoan Đồng Nai, ngày 25 tháng 12 năm 2019 HỌC VIÊN Anousith Saphangthong TRƯỜNG ĐẠI HỌC LẠC HỒNG KHOA SAU ĐẠI HỌC ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ TÓM TẮT LUẬN VĂN (Dùng cho học viên người hướng dẫn) Đề tài: Ứng dụng công nghệ Blockchain xác minh thông tin trình học tập du học sinh Lào Ngành: Cơng nghệ thông tin Mã số: 8480201 Học viên: Anousith Saphangthong Người hướng dẫn: PGS TS Trần Văn Hoài NỘI DUNG TĨM TẮT Khả chia sẻ thơng tin liệu minh bạch, tiết kiệm không gian lưu trữ bảo mật cao, công nghệ Blockchain xu hướng cơng nghệ đột phá Đó cơng nghệ mà luận văn tìm hiểu thực thơng qua việc “Xác minh thông tin học tập du học sinh Lào” Hệ thống xác thực thông tin sinh viên giúp sinh viên sở hữu thơng tin truy cập liệu nguồn xác nhận lúc nào, sử dụng thơng tin lưu trữ để mở hội nghề nghiệp mới, đồng thời phụ huynh, công tắc quản lý sinh viên nhà tuyển dụng xem thông tin lưu trữ hệ thống, không liệu bảng điểm mà cịn q trình đào tạo, kinh nghiệm thực tế, lịch sử tuyển dụng cá nhân - Cập nhật liệu lúc: sinh viên truy cập liệu nguồn xác nhận lúc - Giảm khối lượng công việc nhân viên quản lý sinh viên: trình độ kết học tập số hóa với tảng cho thấy chi tiết đáng tin cậy để giảm khối lượng công việc nhân loại bỏ thủ tục phức tạp - Đáng tin cậy: điều khác làm cho Blockchain bật so với tảng kỹ thuật số khác độ tin cậy liệu Ngoài khả mã hóa tiên tiến liệu phi tập trung, có giả mạo hệ thống khiến thông tin giả mạo không khớp với thông tin mà người hệ thống có, coi thơng tin ngầm thiếu uy tín Ngày 10 tháng 10 năm 2019 NGƯỜI HƯỚNG DẪN PGS TS Trần Văn Hoài HỌC VIÊN Anousith Saphangthong MỤC LỤC Mục lục Danh mục hình Danh mục bảng Mở đầu 1 Lý thực đề tài Tình hình nghiên cứu Mục tiêu nghiên cứu Đối tượng Phạm vi nghiên cứu Phương pháp nghiên cứu Dự kiến kết đạt CHƯƠNG Tổng quan công nghệ blockchain 1.1 Giới thiệu blockchain 1.1.1 Đặc điểm 1.1.2 Nguyên lý hoạt động 1.1.3 Phân loại 1.2 Tổng quan Ethereum 1.2.1 Giới thiệu Ethereum 1.2.2 Kiến trúc 1.2.3 Ứng dụng 1.3 Tổng quan smart contract 1.3.1 Giới thiệu smart contract 1.3.2 Nguyên lý hoạt động 1.3.3 Các thành phần smart contract 1.3.4 Lợi ích smart contract 10 1.4 Các ứng dụng phi tập trung 10 1.4.1 Giới thiệu ứng dụng phi tập trung 10 1.4.2 Làm để xây dựng DApp? 11 1.5 Một số phần mềm, thư viện framework sử dụng đề tài 11 1.5.1 Geth 11 1.5.2 Remix 11 1.5.3 Nodejs 11 1.5.4 Truffle 12 1.5.5 Lite-server 12 1.5.6 Web3.js 12 1.5.7 Bootstrap 12 1.5.8 Metamask 12 1.6 Tiểu kết 12 CHƯƠNG HỆ THỐNG XÁC MINH THÔNG TIN SINH VIÊN 13 2.1 Giới thiệu hệ thống 13 2.1.1 Thiết kế hệ thống 14 2.1.2 Kiến trúc hệ thống 15 2.1.3 Đặc điểm hệ thống 17 2.1.4 Nhược điểm 18 2.2 Cài đặt phần mềm Geth 18 2.2.1 Cài đặt từ kho mã nguồn (repository) Ubuntu công cụ quản lý gói APT 19 2.2.2 Cài đặt từ binary package 20 2.2.3 Kiểm tra geth 21 2.3 Thiết lập hệ thống private Ethereum 21 2.3.1 Thiết lập khối nguyên thủy 21 2.3.2 Tạo miner tài khoản 23 2.3.3 Khởi động miner bắt đầu đào (mining): 24 2.4 Lập trình smart contract 26 2.5 Lập trình RESTful API với nodejs 38 2.5.1 Cài đặt nodejs hệ điều hành Ubuntu 38 2.5.2 Lập trình server nodejs 41 2.6 Lập trình website 49 CHƯƠNG KẾT QUẢ VÀ THỬ NGHIỆM 51 3.1 Tính tồn vẹn liệu hệ thống 51 3.1.1 Chuẩn bị 52 3.1.2 Thực 52 3.2 Chứng minh tính xác thực liệu 60 CHƯƠNG KẾT LUẬN 66 TÀI LIỆU THAM KHẢO DANH MỤC HÌNH Hình 1.1 – Ngun lý hoạt động smart contract Hình 2.1 hệ thống Blockchain vào giáo dục 13 Hình 2.2 Sơ đồ hoạt động hệ thống 14 Hình 2.3 Sơ đồ kiến trúc hệ thống 15 Hình 2.2 Cài đặt geth từ trình quản lý Apt 19 Hình 2.3 Cài đặt geth từ trình quản lý Apt 19 Hình 2.4 Trang web tải geth 20 Hình 2.5 Thư mục cài đặt geth 20 Hình 2.6 Kiểm tra phiên geth 21 Hình 2.7 Kết khởi tạo miner 23 Hình 2.8 Kết tạo tài khoản miner 24 Hình 2.9 Thư mục sau cài đặt miner 24 Hình 2.10 Console điều khiển miner 25 Hình 2.11 Kết cho miner đào 26 Hình 2.12 Giao diện IDE remix 27 Hình 2.13 Menu cài đặt plugin 27 Hình 2.14 Menu quản lý tệp tin 28 Hình 2.15 Menu compile 35 Hình 2.16 Kết compile có code lỗi 36 Hình 2.17 Menu triển khai smart contract 36 Hình 2.18Nơi kiểm thử smart contract sau triển khai 37 Hình 2.19 Giao diện nhập địa Web3 provider 38 Hình 2.20Trang web download nodejs 39 Hình 2.21 Thư mục cài đặt nodejs 40 Hình 2.22 Kết kiểm tra phiên nodejs 41 Hình 2.23 Cấu trúc thư mục dự án 42 Hình 2.24 Giao diện trang web tra cứu thông tin 50 Hình 3.1 Lấy thơng tin enode miner 53 Hình 3.2 Kết lấy địa ip máy chủ 54 Hình 3.3 Kết lệnh kết nối từ miner thứ hai đến miner thứ 55 Hình 3.4 Kết lệnh kết nối hai miner với 55 Hình 3.5 Kết hiển thị số block hai miner 56 Hình 3.6 Kết lệnh kiểm tra trạng thái đồng liệu 56 Hình 3.7 Giao diện sau tắt miner thứ 59 Hình 3.8 Server nodejs chuyển kết nối sang miner thứ hai tắt miner thứ 59 Hình 3.9 Dữ liệu trả từ miner thứ hai thơng qua server nodejs 60 Hình 3.10 Thông qua trang Quản lý thông tin sinh viên để thêm thơng tin 61 Hình 3.11 Kiểm tra số khối hệ thống 62 Hình 3.12 Thơng tin chi tiết block 63 Hình 3.13 Thơng tin liệu Smart contract mã hoá 64 Hình 3.14 Kết trả chuỗi mã hố chứa thơng tin smart contract 65 Hình 4.1 Trang chủ website tra cứu thơng tin du học sinh Lào Việt Nam (thử nghiệm) 74 DANH MỤC BẢNG Bảng 2.1 Các id không sử dụng hệ thống 22 Bảng 4.1 So sánh hệ thống blockchain hệ thống liệu thông thường 66 56 Sau chắn hai miner kết nối với nhau, kiểm tra số block hai miner để xem liệu có đồng hay khơng lệnh: eth.blockNumber Hình 3.5 Kết hiển thị số block hai miner Hoặc dùng lệnh sau để kiểm tra trạng thái đồng miner: eth.syncing Hình 3.6 Kết lệnh kiểm tra trạng thái đồng liệu 57 3.1.2.3 Triển khai smart contract lên hệ thống Quá trình triển khai smart contract luận văn thực theo bước nêu mục số - Lập trình smart contract 3.1.2.4 Tạo server nodejs kết nối đến hệ thống Quá trình lập trình server thực theo bước trình bày mục số - Lập trình RESTful API với nodejs, phần kết nối đến blockchain thay đổi websocket khơng http, mục đích việc dùng websocket để server lắng nghe bị kết nối đến miner để tự chuyển qua miner khác Trong file ethereum.js nằm thư mục models, thay đoạn code cũ đoạn code sau: const Web3 = require("web3"); const config = require(" /utils/config"); var currentProvider = 0; // function init web3 by using local miner as provider: const getProvider = () => { const provider = new Web3.providers.WebsocketProvider(config.MINER_URL[current Provider]) provider.on('connect', () => console.log('Web3 provider Connected, current provider is: ' + config.MINER_URL[currentProvider])); provider.on('end', e => { console.error('\nWeb3 provider is closed') console.log('Attempting to reconnect '); // wait for 5s to stable: setTimeout(() => { if (config.MINER_URL[currentProvider + 1]) currentProvider++; else currentProvider = 0; web3.setProvider(getProvider()); 58 }, 5000); }) return provider } // init web3 provider: const web3 = new Web3(getProvider()); module.exports = new web3.eth.Contract(config.CONTRACT_ABI, config.CONTRACT_ADDRESS); Trong đoạn code trên, hàm getProvider kiểm tra xem miner danh sách địa miner cung cấp khả dụng kết nối với miner Khi bị kết nối, server tự chuyển qua địa miner khác Để cung cấp danh sách địa miner khả dụng, file config.js nằm thư mục utils, thay đổi giá trị MINER_URL thành mảng sau: MINER_URL: ["ws://localhost:8545", "ws://localhost:8546"] Trong file startMiner.sh, thêm hai lựa chọn sau phép miner kết nối websocket: ws wsport "8546" 3.1.2.5 Ngừng hoạt động miner Sau chuẩn bị xong miner server, bắt đầu tắt miner thứ để giả sử cho trường hợp miner bị hỏng bị cơng 59 Hình 3.7 Giao diện sau tắt miner thứ 3.1.2.6 Lấy liệu Kiểm tra console log server, ta thấy server khơng cịn lắng nghe đến miner thứ nên chuyển sang kết nối với miner thứ hai Hình 3.8 Server nodejs chuyển kết nối sang miner thứ hai tắt miner thứ 60 Sau đó, mở trang web tra cứu thơng tin, nhập vào thơng tin sinh viên lưu trước để kiểm tra xem liệu có bị khơng? Kết liệu trả hiển thị lên web bình thường Hình 3.9 Dữ liệu trả từ miner thứ hai thông qua server nodejs 3.2 Chứng minh tính xác thực liệu Luận văn chứng minh liệu lưu trữ blockchain ghi giao dịch lưu khối (block) hệ thống Mỗi sinh viên Lào nhập học hệ thống ghi nhận lại thơng tin chi tiết sinh viên giao diện Hình 3.10 61 Hình 3.10 Thơng qua trang Quản lý thông tin sinh viên để thêm thông tin Luận văn tiếp tục thực với hệ thống xây dựng phần trước Trong trang thêm thông tin sinh viên, luận văn thêm thông tin sinh viên Hình 3.10 Sau giao dịch thực xong, vào console điều khiển miner để xem số khối hệ thống lệnh: eth.blockNumber 62 Hình 3.11 Kiểm tra số khối hệ thống Như vậy, block cuối vừa thêm vào chứa giao dịch lưu thông tin sinh viên lúc trước, tiếp tục nhập lệnh sau để xem thông tin chi tiết block: eth.getBlock(số block) 63 Hình 3.12 Thơng tin chi tiết block Dữ liệu trả dạng json, ta thấy giá trị transactions có chứa đoạn mã, mã giao dịch dùng để phân biệt với giao dịch khác hệ thống Để xem thông tin chi tiết giao dịch, nhập vào lệnh: eth.getTransaction(mã giao dịch) 64 Hình 3.13 Thơng tin liệu Smart contract mã hoá Trong kết trả về, cần ý giá trị input, liệu smart contract mã hóa Chúng ta cố gắng chuyển đoạn liệu dạng ascii để đoạn liệu đọc được: web3.toAscii(dữ liệu input) Kết trả nhìn đoạn chuỗi vơ nghĩa, xen lẫn ký tự đoạn thông tin mà thực lúc giao dịch 65 Hình 3.14 Kết trả chuỗi mã hố chứa thơng tin smart contract 66 CHƯƠNG KẾT LUẬN Sau nghiên cứu thực đề tài “Xác thực thông tin sinh viên blockchain”, tác giả sử dụng tảng Ethereum blockchain để xây dựng hệ thống private blockchain với cấu sau: o Hệ thống gồm miner, miner cài đặt VPS Google Cloud, miner lại cài đặt máy tính tác giả o Cả hai VPS máy tính tác giả sử dụng hệ điều hành Ubuntu 18.04 o Mỗi miner có tài khoản ví Ethereum kết nối để đồng liệu với o Tạo hợp đồng thông minh để quản lý liệu sinh viên hệ thống blockchain o Xây dựng web server để người dùng quản lý tra cứu thông tin sinh viên blockchain o Thí nghiệm chứng minh tính tồn vẹn tính xác thực liệu blockchain Hệ thống xác thực thông tin sinh viên hoàn chỉnh với ưu so với hệ thống server thông thường sau: Bảng 4.1 So sánh hệ thống blockchain hệ thống liệu thông thường Lưu trữ liệu blockchain Lưu trữ liệu database thông thường Blockchain sử dụng kiến trúc mạng sổ phân tán Cơ sở liệu sử dụng kiến trúc client-server Các miner đồng liệu liên tục với để hạn chế mát liệu Dữ liệu không lưu liên tục 67 Blockchain sử dụng hoạt động đọc viết Cơ sở liệu hỗ trợ CRUD (tạo, đọc, cập nhật xóa) Có thể truy vết lại giao dịch log bị làm giả Log lưu lại bị giả mạo Quá trình cài đặt thiết lập tốn tốn thời gian Ít tốn phương pháp sử dụng blockchain Tốc đo bị giảm xuống phương pháp xác minh đồng thuận Cơ sơ liệu nhanh cung cấp khả mở rộng tuyệt vời Hình 4.1 Trang chủ website tra cứu thông tin du học sinh Lào Việt Nam (thử nghiệm) Dựa tảng liệu đồng node hệ thống blockchain, tác giả tạo website chạy tảng phi tập trung, ứng dụng web tra cứu quản lý đại học Website giúp cho cán chun trách có khả tra cứu thơng tin du học sinh – cụ thể du học sinh Lào – cách dễ dàng, minh bạch Hệ thống xác thực thông tin sinh viên giúp sinh viên sở hữu thơng tin truy cập liệu nguồn xác nhận lúc nào, sử dụng thông tin lưu trữ để mở hội nghề nghiệp mới, đồng thời phụ huynh, công tắc quản lý sinh viên nhà tuyển dụng xem thơng tin lưu trữ hệ thống, không 68 liệu bảng điểm mà cịn q trình đào tạo, kinh nghiệm thực tế, lịch sử tuyển dụng cá nhân - Cập nhật liệu lúc: sinh viên truy cập liệu nguồn xác nhận lúc - Giảm khối lượng công việc nhân viên quản lý sinh viên: trình độ kết học tập số hóa với tảng cho thấy chi tiết đáng tin cậy để giảm khối lượng công việc nhân loại bỏ thủ tục phức tạp - Đáng tin cậy: điều khác làm cho Blockchain bật so với tảng kỹ thuật số khác độ tin cậy liệu Ngồi khả mã hóa tiên tiến liệu phi tập trung, có giả mạo hệ thống khiến thông tin giả mạo không khớp với thông tin mà người hệ thống có, coi thơng tin ngầm thiếu uy tín Định hướng nghiên cứu mở rộng hệ thống Do thời gian chưa có nhiều, bên cạnh kết đạt được, luận văn nhiều hạn chế việc triển khai chương trình thực nghiệm Để mạng blockchain thực hoạt động tốt cần có tham gia nhiều node chương trình mơ có số node cịn hạn chế Trong tương lai, luận văn tiếp tục hoàn thiện hạn chế nên trên, bổ sung thêm chức quản lý sinh viên cho thuận lợi với người sử dụng cải tiến chương trình để xử lý nhanh TÀI LIỆU THAM KHẢO [1] Decentralized document version control using ethereum blockchain and IPFS N Nizamuddin a , K Salah a , M Ajmal Azad b , ∗, J Arshad c , M.H Rehman d Received 15 December 2018 Revised 20 March 2019 Accepted 20 March 2019 [2] Nakamoto, Satoshi Bitcoin: A peer-to-peer electronic cash system 2008 https://bitcoin.org/bitcoin.pdf [3] Wood, Gavin Ethereum: A secure decentralized generalized transaction ledger 2014 http://gavwood.com/paper.pdf; Okupski, Krzysztof Bitcoin developer reference Working paper 2014 [4] Ứng dụng công nghệ chuỗi khối Blockchain ngành giáo dục – đào tạo Nghị số 25/2016/QH14 ngày 09/11/2016 Quốc hội Kế hoạch tài năm quốc gia giai đoạn 2016-2020 [5] 50+ ví dụ cách ứng dụng cơng nghệ Blockchain phủ sóng mặt giới, ngày truy cập 10/04/2018, https://coin68.com/50-vi-du-ve-cach-blockchain-danphu-song-moi-mat-tren-the-gioi/ [6] Thử nghiệm truy xuất nguồn gốc xoài Cát Chu tảng blockchain, người tiêu dùng châu dễ dàng truy xuất nguồn gốc, ngày truy cập 12/07/2018, https://ictnews.vn/internet/blockchain/thu-nghiem-truy-xuat-nguon-goc-xoai-catchu-tren-nen-tang-blockchain-nguoi-tieu-dung-5-chau-deu-de-dang-truy-xuatnguon-goc-168419.ict [7] Create a private Ethereum blockchain with IoT devices (1/6), ngày truy cập 04/05/2018, http://chainskills.com/2017/02/24/create-a-private-ethereum- blockchain-with-iot-devices-16/ [8] Set up the private chain – miners (3/6), ngày truy cập 15/05/2018, http://chainskills.com/2017/03/10/part-3-setup-the-private-chain-miners/ [9] Pair the miners (4/6), ngày truy http://chainskills.com/2017/03/17/pair-the-miners-46/ cập 28/05/2018, [10] Ethereum Development Walkthrough (Part 1: Smart contracts), ngày truy cập 05/07/2018, https://hackernoon.com/ethereum-development-walkthrough-part-1smart-contracts-b3979e6e573e [11] Ethereum Development Walkthrough (Part 2: Truffle, Ganache, Geth and Mist), ngày truy cập 23/07/2018, https://hackernoon.com/ethereum-developmentwalkthrough-part-2-truffle-ganache-geth-and-mist-8d6320e12269 [12] Ethereum Development Walkthrough (Part 5: Making a DApp), ngày truy cập 3/08/2018 https://hackernoon.com/ethereum-development-walkthrough-part-5- making-a-DApp-4c2a3bbcd5e5 ... ĐẠI HỌC LẠC HỒNG *** ANOUSITH SAPHANGTHONG ỨNG DỤNG CÔNG NGHỆ BLOCKCHAIN TRONG XÁC MINH THƠNG TIN Q TRÌNH HỌC TẬP CỦA DU HỌC SINH LÀO Chuyên ngành: Công nghệ thông tin Mã số: 8480201 LUẬN VĂN THẠC... công nghệ Blockchain xu hướng cơng nghệ đột phá Đó cơng nghệ mà luận văn tìm hiểu thực thông qua việc ? ?Xác minh thông tin học tập du học sinh Lào” Hệ thống xác thực thông tin sinh viên giúp sinh. .. thao tác thông tin -Tên báo dự định công bố: Ứng dụng công nghệ blockchain xác minh thơng tin q trình học tập du học sinh lào Luận văn chia làm ba phần: phần mở đầu, phần nội dung phần kết luận Phần