Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
1,56 MB
Nội dung
LỜI CẢM ƠN Đầu tiên, xin gửi lời cảm ơn chân thành tới thày Lê Phê Đô hướng dẫn tạo điều kiện cho tơi hồn thành khóa luận Tôi xin cảm ơn thày cô khoa Công nghệ thông tin trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội, người truyền đạt cho kiến thức quý báu suốt hai năm học vừa qua Luận văn hoàn thành với tất cố gắng thân, khơng tránh khỏi sai sót, hạn chế Vì vậy, tơi mong nhận nhận xét, góp ý thày giáo bạn để đề tài hồn thiện Hà Nội, tháng 03/2019 Học viên Trần Tuấn Linh MỤC LỤC LỜI CẢM ƠN BẢNG CÁC TỪ VIẾT TẮT VÀ GIẢI THÍCH TỪ NGỮ DANH SÁCH HÌNH ẢNH LỜI NÓI ĐẦU CHƯƠNG 1:TỔNG QUAN VỀ BLOCKCHAIN 1.1 Mật mã học 1.1.1 Thuật ngữ 1.1.2 Hàm băm, mã hóa bất đối xứng 10 1.1.3 Chữ ký số 12 1.2 Công nghệ blockchain 12 1.2.1 Bitcoin – tảng blockchain 12 1.2.2 Các blockchain khác 14 1.2.3 Smart contract Ethereum 15 1.2.4 Thuật toán đồng thuận 16 CHƯƠNG 2:MỘT SỐ MƠ HÌNH QUẢN LÝ CHỨNG CHỈ 19 2.1 Chứng gì? 19 2.2 Quy trình liên quan tới chứng 19 2.3 Giới hạn mơ hình quản lý chứng không sử dụng blockchain 20 2.3.1 Giới hạn chứng giấy 20 2.3.2 Giới hạn chứng số (không sử dụng cơng nghệ blockchain) 21 2.4 Mơ hình quản lý chứng sử dụng blockchain 21 2.4.1 Người nhận chứng 22 2.4.2 Đơn vị phát hành 22 2.5 Một số dự án triển khai quản lý chứng sử dụng công nghệ blockchain 23 2.5.1 Blockcerts 23 2.5.2 BTCert 24 CHƯƠNG 3:MƠ HÌNH ÁP DỤNG VÀ THỰC NGHIỆM 26 3.1 Lựa chọn tảng triển khai 26 3.1.1 Giải pháp cấp chứng Learning Machine tảng Blockcerts 26 3.1.2 Giải pháp Sony Global Education 27 3.1.3 Các giải pháp khác 27 3.1.4 Kết luận 28 3.2 Blockcerts 28 3.3 Yêu cầu toán quản lý chứng 29 3.4 Mơ hình thử nghiệm 30 3.5 Thực nghiệm 31 3.5.1 Tổng hợp yêu cầu cấp chứng 31 3.5.2 Tạo file chứng (module cert-tools) 32 3.5.3 Phát hành chứng lên blockchain (module cert-issuer) 36 3.5.4 Xác minh chứng blockchain (module cert-verifier) 41 3.6 Kết luận 44 BẢNG CÁC TỪ VIẾT TẮT VÀ GIẢI THÍCH TỪ NGỮ Từ viết tắt Từ đầy đủ Ý nghĩa Blockchain Chuỗi khối CV Curriculum Vitae Hồ sơ xin việc MIT Massachusetts Institute of Học viện công nghệ Technology Massachusetts Database Cơ sở liệu Public key Khóa cơng khai Private key Khóa bí mật PoW Proof of Work Bằng chứng công việc PoS Proof of Stake Bằng chứng cổ phần UTXO Unspent transaction output Đầu giao dịch chưa sử dụng EVM Ethereum Virtual Machine Máy ảo Ethereum Smart Contract Hợp đồng thông minh BFT – PoS Byzantine Fault Tolerance Mơ hình chứng cơng Proof of Stake việc BFT HTTP HyperText Transfer Protocol Bitcoin testnet Mạng lưới test dành cho nhà phát triển Bitcoin Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình DANH SÁCH HÌNH ẢNH 1: Phân loại cơng cụ mã hóa 2: Chi tiết giao dịch 14 3: Mơ hình luồng đề xuất Blockcerts 28 4: Mơ hình thử nghiệm 30 5: Tạo địa Bitcoin 32 6: File yêu cầu cấp chứng roster_testnet_uet.csv 32 7: File cấu hình issuer-uet.json 35 8: Đầu trình khởi tạo chứng 36 9: Tạo Merkle root lô chứng 37 10: Kiểm tra ContainerID 37 11: Đầu chứng phát hành 41 12: Đầu chứng hợp lệ 42 13: Đầu chứng không hợp lệ 43 LỜI NÓI ĐẦU Hiện Việt Nam, người học hồn thành khóa đào tạo Họ nhà trường tổ chức đào tạo cấp cho chứng giấy thông qua thông tin mà họ cung cấp q trình nhập học Sau đó, người học có nhu cầu cung cấp thơng tin việc hồn thành khóa đào tạo có cách mang gốc để bên thứ ba kiểm tra, photocopy lại gốc đem đến sở quan có thẩm quyền cơng chứng để công chứng đưa công chứng cho bên thứ ba kiểm tra Có số vấn đề gặp phải thực quy trình trên: Trong số trường hợp người học chứng chỉ, nhà trường đơn vị đào tạo cấp lại chứng cho họ khơng phơi cũ Xuất số rủi ro trình cơng chứng giấy tờ người học cố tình làm giả gốc để công chứng Gây nhiều khó khăn cho bên thứ ba (các nhà tuyển dụng, đơn vị chủ quản, …) việc xác định chứng người học cung cấp có phải thật hay không? Việc cung cấp chứng giấy khơng hồn tồn phù hợp thị trường lao động Khi mà có nhiều cơng cụ (ví dụ: vietnamworks, LinkedIn,…) hỗ trợ đưa sơ yếu lý lịch ứng viên tới nhà tuyển dụng có nhu cầu nên cung cấp chứng giấy xác thực lên công cụ nêu nhiều ý nghĩa Ngồi ra, theo số liệu thống kê tổ chức Risk Advisory Group năm 2016 với 5500 mẫu CV có tới 63% thơng tin chứng đào tạo khơng xác Để giải vấn đề nêu cần hệ thống có khả đáp ứng yêu cầu tính quán, bảo mật thuật toán mật mã học phân tán Năm 2008, Satoshi Nakomoto giới thiệu sách trắng Bitcoin công nghệ blockchain giải được vấn đề nêu Mục đích luận văn đề xuất mơ hình ứng dụng cơng nghệ blockchain vào công tác quản lý chứng đào tạo Việt Nam Mục tiêu nghiên cứu chia nhỏ làm 03 câu hỏi nghiên cứu sau: Câu hỏi nghiên cứu thứ nhất: Hiện nay, có mơ hình quản lý chứng giới? Để trả lời câu hỏi cần phải sử dụng phương pháp phân loại hệ thống hóa lý thuyết, thực tìm kiếm báo cáo, thống kê tảng áp dụng công nghệ việc quản lý chứng giới Câu hỏi nghiên cứu thứ hai: Công nghệ blockchain gì? Các thành phần chế hoạt động nào? Câu hỏi nghiên cứu thứ ba: Ứng dụng Blockcerts vào quản lý chứng nào? Luận văn nghiên cứu lý thuyết hệ thống quản lý chứng chỉ, công nghệ blockchain áp dụng dự án Blockcerts MIT Media Lab để thực hành Luận văn thực cơng việc chính: o Tìm hiểu thành phần, chế hoạt động blockchain o Tìm hiểu số mơ hình áp dụng quản lý chứng giới o Triển khai mơ hình: Dựa vào dự án Blockcerts Luận văn chia làm chương Chương 1: Tổng quan Blockchain Chương 2: Một số mơ hình quản lý chứng Chương 3: Mơ hình áp dụng thực nghiệm CHƯƠNG 1: TỔNG QUAN VỀ BLOCKCHAIN Chương giới thiệu giải thích số khái niệm mã hóa, cơng nghệ blockchain khái niệm liên quan 1.1 Mật mã học Mật mã học nghiên cứu kỹ thuật toán học liên quan đến khía cạnh bảo mật thơng tin bảo mật, toàn vẹn liệu, xác thực thực thể xác thực nguồn gốc liệu Mật mã có mục tiêu đảm bảo: tính riêng tư hay tính bảo mật, tính tồn vẹn liệu, tính xác thực tính chống chối bỏ Tính bảo mật: liệu tiết lộ cho phép Có nhiều cách tiếp cận để đảm bảo tính bảo mật, bảo vệ vật lý đến thuật tốn tốn học khiến liệu khơng thể hiểu Tính tồn vẹn liệu: đảm bảo liệu bị thay đổi bị phát Thay đổi liệu gồm có thao tác thêm, xóa, thay đổi Tính xác thực: dịch vụ liên quan tới nhận dạng Chức áp dụng cho thực thể thơng tin bên tham gia vào q trình truyền thông tin nên xác định Thông tin truyền kênh truyền nên xác thưc nguồn gốc, ngày gửi, nội dung liệu, thời gian gửi, …Vì lý này, tính xác thực mật mã học thường chia làm phần: xác thực thực thể xác thực nguồn gốc liệu Xác thực nguồn gốc liệu ngầm cung cấp cho việc xác định tính tồn vẹn liệu số trường hợp tin bị thay đổi, nguồn liệu bị thay đổi Tính chống chối bỏ: dịch vụ chống lại việc thực thể từ chối cam kết hành động mà thực Khi tranh chấp xảy ra, thực thể từ chối hành động mà thực dẫn tới hậu Vì vậy, cần có phương pháp để xử lý tình Các cơng cụ mã hóa thường chia làm loại: mã hóa khơng có khóa, mã hóa khóa đối xứng mã hóa khóa bất đối xứng (hình vẽ 1) Mã hóa khơng có khóa khơng sử dụng khóa để mã hóa tin Ví dụ: băm độ dài tùy ý hoán vị rõ để thu mã Mã hóa khóa đối xứng sử dụng khóa cho việc mã hóa giải mã Mã hóa bất đối xứng sử dụng cặp khóa gọi khóa cơng khai (public key) khóa bí mật (private key) để thực mã hóa giải mã Cơng cụ mã hóa Mã hóa khơng khóa Mã hóa đối xứng Mã hóa bất đối xứng Hình 1: Phân loại cơng cụ mã hóa Phần dựa theo “Handbook of Applied Cryptography by A Menezes, P van Oorschot and S Vanstone (Alfred J Menezes, 1996)” 1.1.1 Thuật ngữ Bản rõ dạng ban đầu tin Bản mã dạng mã hóa rõ Khóa thơng tin tham số dùng để thực phép biến đổi từ rõ sang bản mã ngược lại Mã hóa q trình biến đổi thông tin từ rõ sang mã khóa Giải mã q trình biến đổi thơng tin từ mã sang rõ khóa Ký hiệu tập M không gian rõ bao gồm chuỗi ký tự bảng chữ định nghĩa sau: bao gồm ký tự hệ nhị phân {0,1}, chữ tiếng Anh, ký tự hệ thập lục phân {0,1,…,9,A,B, ,F} Một phần tử m ϵ M gọi rõ Ký hiệu tập C không gian mã bao gồm cấc phần tử cấu thành từ ký tự định nghĩa bảng chữ bên Ký hiệu Ee hàm mã hóa biến đổi từ M thành C, sử dụng phần tử khóa e khơng gian khóa {e ϵ K} Ký hiệu Dd hàm giải mã biến đổi từ C thành M, sử dụng phần tử khóa d khơng gian khóa {d ϵ K} Định nghĩa đầy đủ phép mã hóa/ giải mã, cần tập mã hóa {Ee: e ϵ K } tập giải mã {Dd: d ϵ K } thỏa mã điều kiện: ∀ e ∊ K ∃ d ∊ K, d Dd = Ee-1 Công thức giải mã tin viết sau: Dd(Ee(m)) = m ∀ m ∊ M Cặp khóa { e , d } trùng khơng Giả sử M,C,K, { Ee: e ϵ K } thông tin cơng khai, cặp khóa {e,d} thơng tin bí mật bên truyền nhận 1.1.2 Hàm băm, mã hóa bất đối xứng 1.1.2.1 Hàm băm Hàm băm ánh xạ chiều chuỗi nhị phận có độ dài tùy ý thành chuỗi nhị phân có độ dài cố định Hàm băm có đặc điểm sau: Là hàm chiều tốn tài nguyên để tạo giá trị băm tốn lực xử lý lớn gần khơng thể để biến đổi giá trị băm giá trị ban đầu Độ dài giá trị băm lớn khó để thực biến đổi giá trị băm giá trị ban đầu Khơng có có xung đột có giá trị đầu vào x y cho chung giá trị đầu ra: h(x) = h(y) Đoán định được, tức với giá trị đầu vào cho giá trị đầu thời điểm Hàm băm cho an toàn xét khía cạnh khó để dịch ngược thay đổi nội dung thời điểm SHA – Hàm băm sử dụng hầu hết hệ thống xác thực mật Giá trị băm password mà người dùng nhập vào so sánh với giá trị băm lưu sở liệu hệ thống thay lưu trữ mật người dùng dạng plaintext Hàm băm sở cần thiết để hiểu thuật tốn đồng thuận proof-of-work giải thích phần 2.2.4 Các thuật tốn đồng thuận 1.1.2.2 Mã hóa đối xứng Để hiểu mã hóa bất đối xứng, xem xét ví dụ có thực thể Alice Bob có nhu cầu trao đổi thông tin với thông qua môi trường không bảo mật Họ sử dụng hàm băm để băm tin người nhận gần khơng thể tìm tin m biết h(m) Cho nên, họ sử dụng chương trình mã hóa cụ thể không gian rõ M, không 10 Gửi liệu file chứng phát hành cho Hệ thống quản lý sinh viên 3) Sinh viên lên hệ thống quản lý sinh viên để lấy file chứng đưa cho bên thứ ba (nhà tuyển dụng) xác thực 4) Nhà tuyển dụng sử dụng module xác thực cert-verifier để kiểm tra chứng có hợp lệ hay không 3.5 Thực nghiệm Phần mơ tả lại tồn q trình triển khai thực nghiệm giải pháp Blockcerts việc quản lý chứng Môi trường triển khai OS Windows 10 Pro Python 3.7.2 Bitnami WAMP Stack 5.6.39 Rev Docker Version 2.0.0.2 (30215) Blockchain: Testnet Công cụ dòng lệnh: Windows PowerShell IDE: JetBrains PyCharm Community Edition 2018.3.2 Các địa Bitcoin Địa Nhà phát hành Public Address miggSiHgD6gJa6ED9SCrppQqMwtncUbmQL Private Key cURHoLU8oWEAA5ZtaFJxRBrhztGvsQzVvMSuf7WSQ4FQcDP5 Pr9S Địa người nhận Public Address mk39ervZywy6eU6o9v4JjvQYmYbyiTho2p mgD5QxRmpLK4eyrqAk7XMkq9MWZqGMeQMX moRPFTVL9BTiqZmDNYXbyANR4VM3P9yfGQ mzkiZ87P6ip9g6h45LtwW8i7V9tyxPhFXZ 3.5.1 Tổng hợp yêu cầu cấp chứng Đây trình đơn vị phát hành thu thập thông tin địa Bitcoin người học để tạo danh sách phục vụ cho việc phát hành chứng theo lô đơn vị phát hành Để cấp chứng chỉ, sinh viên cần phải có địa Bitcoin Để tạo địa này, sinh viên vào link sau 31 https://www.bitaddress.org/bitaddress.org-v3.3.0-SHA256dec17c07685e1870960903d8f58090475b25af946fe95a734f88408cef4aa194.h tml?testnet=true Chi tiết địa Bitcoin tạo minh họa Hình Hình 5: Tạo địa Bitcoin Hình mơ tả file tổng hợp yêu cầu cấp chứng sinh viên Hình 6: File yêu cầu cấp chứng roster_testnet_uet.csv 3.5.2 Tạo file chứng (module cert-tools) 3.5.2.1 Mô tả Đây cơng cụ dòng lệnh để thiết kế định dạng chứng chỉ, khởi tạo lô chứng 3.5.2.2 Cài đặt Cài đặt môi trường ảo để chạy Python o Download gói virtualenv pip -p python3 virtualenv o Tạo môi trường ảo cho project cd $project_home virtualenv venv o Kích hoạt mơi trường 32 cd $project_home/venv/Scripts Click activate.bat Sử dụng git để clone repository git clone https://github.com/blockchaincertificates/cert-tools.git Chuyển thư mục cài đặt cd cert-tools pip install Tạo file conf.ini: # issuer information issuer_url = https://uet.vnu.edu.vn issuer_email = linhcoltech@gmail.com issuer_name = University of Engineering and Technology issuer_id = http://127.0.0.1/issuer-uet.json revocation_list=http://127.0.0.1/revocation.json issuer_signature_lines={"fields": [{"job_title": "University Issuer","signature_image": "images/issuer-signature.png","name": "Your signature"}]} issuer_public_key=ecdsa-koblitzpubkey:miggSiHgD6gJa6ED9SCrppQqMwtncUbmQL # certificate information certificate_description = Hieu truong truong Dai hoc Cong nghe cap certificate_title = Bang tot nghiep thac sy criteria_narrative=Cong nghe thong tin badge_id = 23fec99e-e52e-4e76-848e-b04d27ed693f # images issuer_logo_file = images/logo.png cert_image_file = images/certificate-image.png issuer_signature_file = images/issuer-signature.png ################### ## TEMPLATE DATA ## ################### data_dir = sample_data 33 # template output directory template_dir = certificate_templates template_file_name = test.json ############################## ## INSTANTIATE BATCH CONFIG ## ############################## unsigned_certificates_dir = unsigned_certificates roster = rosters/roster_testnet_uet.csv filename_format = uuid no_clobber = True ################### ## OTHER OPTIONS ## ################### # whether to hash recipient emails, flag # hash_emails # can specify an array of additional global fields For each additional field, you must indicate: # - the jsonpath to the field # - the global value to use # additional_global_fields = {"fields": [{"path": "$.certificate.subtitle","value": "kim custom subtitle"}]} additional_global_fields = {"fields": [{"path": "$.displayHtml","value": "Some html code"}, {"path": "$.@context","value": ["https://w3id.org/openbadges/v2", "https://w3id.org/blockcerts/v2", {"displayHtml": { "@id": "schema:description" }}]}]} # can specify an array of additional per-recipient fields For each additional field, you must indicate: # - the jsonpath to the field # - the merge_tag placeholder to use # - the csv column where the value (per recipient) can be found # additional_per_recipient_fields = {"fields": [{"path": "$.assertion.evidence","value": "*|EVIDENCE|*","csv_column": 34 "evidence"}]} # V1 only # issuer_certs_url = http://certificates.issuer.org # where the certificates are hosted Thực tạo file issuer-uet.json (để lưu định danh đơn vị phát hành), revocation.json (để lưu danh sách chứng chị bị thu hồi) đường dẫn C:\Bitnami\wampstack-5.6.39-0\apache2\htdocs File issuer-uet.json Hình 7: File cấu hình issuer-uet.json File revocation.json { "@context": "https://w3id.org/openbadges/v2", "id": "http://127.0.0.1/revocation.json", "type": "RevocationList", "issuer": "http://127.0.0.1/issuer-uet.json", "revokedAssertions": [ { "id": "urn:uuid: 93019408-acd8-4420-be5e-0400d643954a ", "revocationReason": "Honor code violation" }, { "id": "urn:uuid:eda7d784-c03b-40a2-ac10-4857e9627329", "revocationReason": "Issued in error." } ] } 35 3.5.2.3 Các công cụ Sau cài cert-tools cung cấp công cụ:create_certificate_template.py instantiate_certificate_batch.py create_certificate_template.py: công cụ tạo file template chứng với cài đặt cung cấp file conf.ini create-certificate-template -c conf.ini instantiate_certificate_batch.py: công cụ tạo file chứng người nhận theo template tạo script trước thông tin từ file csv lưu thông tin người nhận tạo sau trình mục 4.3.1 instantiate-certificate-batch -c conf.ini 3.5.2.4 Output Đầu trình file chứng theo định dạng json theo template chuẩn hóa Hình 8: Đầu q trình khởi tạo chứng 3.5.3 Phát hành chứng lên blockchain (module cert-issuer) 3.5.3.1 Mơ tả Đây q trình phát hành chứng lên blockchain cách tìm giá trị băm lô chứng phát hành đẩy lên trường OP_RETURN giao dịch Bitcoin Cách thức phát hành chứng theo lơ: 36 Hình 9: Tạo Merkle root lơ chứng (Tham khảo https://github.com/blockchain-certificates/cert-issuer) Hồn tồn thực phát hành chứng dạng chứng giao dịch Bitcoin, hiệu nhiều thực phát hành chứng theo lô Đơn vị phát hành xây dựng Merkle băm chứng phát hành giá trị gốc Merkle (256 bit) lên trường OP_RETURN giao dịch Bitcoin 3.5.3.2 Cài đặt Cài đặt Docker Version 2.0.0.2 (30215) Dùng git để clone repository git clone https://github.com/blockchaincertificates/cert-issuer.git cd cert-issuer Tại thư mục cert-issuer, thực build container docker: docker build -t bc/cert-issuer:1.1 Sau build xong, thực kiểm tra containerid: docker ps –l Hình 10: Kiểm tra ContainerID Tương tác với cointainer vừa build docker run -it bc/cert-issuer:1.1 bash 37 Thực sửa file cấu hình conf.ini đường dẫn /etc/certissuer/conf.ini issuing_address = miggSiHgD6gJa6ED9SCrppQqMwtncUbmQL chain=bitcoin_testnet usb_name=/etc/cert-issuer/ key_file=pk_issuer.txt unsigned_certificates_dir=/etc/cert-issuer/data/unsigned_certificates blockchain_certificates_dir=/etc/cert-issuer/data/blockchain_certificates work_dir=/etc/cert-issuer/work no_safe_mode Thay giá trị tham số: o issuing_address: địa Bitcoin nhà phát hành o chain: loại blockchain triển khai bitcoin testnet o usb_name: tên đường dẫn, thiết bị chứa private key nhà phát hành o key_file: tên file chưa private key nhà phát hành o unsigned_certificates_dir: đường dẫn chứa chứng chưa phát hành o blockchain_certificates_dir: đường dẫn chứa chứng phát hành lên blockchain o work_dir: thư mục lưu chứng trình xử lý Tạo file pk_issuer.txt đường dẫn /etc/cert-issuer/ với nội dung cURHoLU8oWEAA5ZtaFJxRBrhztGvsQzVvMSuf7WSQ4FQcDP5 Pr9S Copy chứng đầu mục 4.3.2.4 vào thư mục /etc/certissuer/data/unsigned_certificates : docker cp ca3903a0-b49e-4ac6-88e7a2c1495e56e1.json 8f60e18ed038:/etc/certissuer/data/unsigned_certificates docker cp 01463a59-c7dc-4b53-ae714af8a223c6b9.json 8f60e18ed038:/etc/certissuer/data/unsigned_certificates docker cp 800a369f-efa2-4735-9a9d89787077fdf9.json 8f60e18ed038:/etc/certissuer/data/unsigned_certificates 38 docker cp 1822803c-6d76-464d-b20d57834fdc4645.json 8f60e18ed038:/etc/certissuer/data/unsigned_certificates 3.5.3.3 Phát hành chứng Thực lệnh bên dưới: cert-issuer -c /etc/cert-issuer/conf.ini Log trình xử lý WARNING - Your app is configured to skip the wifi check when the USB is plugged in Read the documentation to ensure this is what you want, since this is less secure INFO - This run will try to issue on the bitcoin_testnet chain INFO - Set cost constants to recommended_tx_fee=0.000600,min_per_output=0 000028,satoshi_per_byte=250 INFO - Processing certificates INFO - Processing certificates under work path=/etc/cert-issuer/work INFO - Total cost will be 133500 satoshis INFO - Starting finalizable signer WARNING - app is configured to skip the wifi check when the USB is plugged in Read the documentation to ensure this is what you want, since this is less secure INFO - Stopping finalizable signer WARNING - app is configured to skip the wifi check when the USB is plugged in Read the documentation to ensure this is what you want, since this is less secure INFO - here is the op_return_code data: ef3da16394c64206b0550715f7245676ea79e65579e96 86708bc5f40f1ce2441 INFO - Unsigned hextx=01000000018e271fa8474aa27cc0ff13cf13013 9c66693d3a61b87e889df2609f2970d26eb0000000000 ffffffff02a7efce00000000001976a91422bf4e32a70 aa5015cb3e6eac2454528628c2be588ac000000000000 0000226a20ef3da16394c64206b0550715f7245676ea7 9e65579e9686708bc5f40f1ce244100000000 INFO - Preparing tx for signing INFO - Starting finalizable signer WARNING - app is configured to skip the wifi 39 check when the USB is plugged in Read the documentation to ensure this is what you want, since this is less secure INFO - Stopping finalizable signer WARNING - app is configured to skip the wifi check when the USB is plugged in Read the documentation to ensure this is what you want, since this is less secure INFO - The actual transaction size is 235 bytes INFO - Signed hextx=01000000018e271fa8474aa27cc0ff13cf13013 9c66693d3a61b87e889df2609f2970d26eb000000006b 483045022100e72a35f471e5e20de8d7e0a28f8c30646 54a1065262c2cbc03ee7bb050f7f975022046519b6b6c 0b63dfd396b2285910d9b7ed83637654794714056e1e8 149a4ba2c0121026e711471626a411ce1f617c487d92a a3ac9a6105a0279d219414f23cdd401ef8ffffffff02a 7efce00000000001976a91422bf4e32a70aa5015cb3e6 eac2454528628c2be588ac0000000000000000226a20e f3da16394c64206b0550715f7245676ea79e65579e968 6708bc5f40f1ce244100000000 INFO - Signed hextx=01000000018e271fa8474aa27cc0ff13cf13013 9c66693d3a61b87e889df2609f2970d26eb000000006b 483045022100e72a35f471e5e20de8d7e0a28f8c30646 54a1065262c2cbc03ee7bb050f7f975022046519b6b6c 0b63dfd396b2285910d9b7ed83637654794714056e1e8 149a4ba2c0121026e711471626a411ce1f617c487d92a a3ac9a6105a0279d219414f23cdd401ef8ffffffff02a 7efce00000000001976a91422bf4e32a70aa5015cb3e6 eac2454528628c2be588ac0000000000000000226a20e f3da16394c64206b0550715f7245676ea79e65579e968 6708bc5f40f1ce244100000000 INFO - verifying op_return value for transaction INFO - verified OP_RETURN WARNING - Caught exception trying provider Trying another Exception=Expecting value: line column (char 0) 40 INFO - Broadcasting succeeded with method_provider=, txid=039b659f49bb383455bad0f12b7f2ffd951cc3c7 23136c60bda2792c67657bdd INFO - Broadcast transaction with txid 039b659f49bb383455bad0f12b7f2ffd951cc3c723136 c60bda2792c67657bdd INFO - Your Blockchain Certificates are in /etc/cert-issuer/data/blockchain_certificates 3.5.3.4 Output Kết trình file chứng ký phát hành thành cơng lên blockchain testnet: Hình 11: Đầu chứng phát hành 3.5.4 Xác minh chứng blockchain (module cert-verifier) 3.5.4.1 Mô tả Đây trình sau chứng phát hành chuyển đến cho người nhận Người nhận chuyển cho bên thứ ba (thường nhà tuyển dụng) để thực xác minh chứng Người nhận nhận chứng có thơng tin: Bitcoin transaction ID lưu thông tin MerkleRoot Giá trị Merkle root blockchain Giá trị hash chứng Đường dẫn chứng tới Merkle root Quá trình xác minh thực tính tốn để kiểm tra: Giá trị băm chứng có khớp với giá trị lưu chứng hay không Đường dẫn chứng tới gốc Merkle có hợp lệ hay không Gốc Merkle lưu blockchain có khớp với giá trị lưu chứng không 3.5.4.2 Cài đặt Dùng git để clone repository 41 git clone https://github.com/blockchaincertificates/cert-verifier.git Cài đặt module cd cert-verifier pip install 3.5.4.3 Xác minh chứng Thực lệnh cd cert-verifier Mở file verifier.py đường dẫn E:\cert_verifier\certverifier\cert_verifier thực trỏ vào file chứng cần kiểm tra Ví dụ cần check file chứng 01463a59-c7dc-4b53-ae714af8a223c6b9.json if name == " main ": if len(sys.argv) > 1: for cert_file in sys.argv[1:]: print(cert_file) result = verify_certificate_file(cert_file) print(result) else: result = verify_certificate_file(' /tests/data/2.0/ 01463a59-c7dc-4b53-ae71-4af8a223c6b9.json ') print(result) 3.5.4.4 Output Trong trường hợp chứng hợp lệ, bước kiểm tra chứng có giả mạo hay khơng, có hết hạn hay khơng, có bị thu hồi hay khơng có cấp nhà phát hành hay khơng pass Hình 12: Đầu chứng hợp lệ Ví dụ trường hợp chứng chị bị thu hồi bị failed bước thứ 42 Hình 13: Đầu chứng khơng hợp lệ 43 3.6 Kết luận Blockchain công nghệ phân tán sử dụng thuật toán mật mã học để đạt mục tiêu: bảo mật, xác thực, toàn vẹn liệu chống chối bỏ giao dịch Từ ưu điểm mà blockchain ngày ứng dụng nhiều lĩnh vực khác ngồi tài giáo dục, y tế, nông nghiệp… Luận văn cung cấp nhìn tổng quan cơng tác quản lý chứng chỉ, công nghệ blockchain việc áp dụng công nghệ blockchain quản lý chứng Đồng thời, luận văn sử dụng giải pháp Blockcerts MIT Media Lab để minh họa Với ưu điểm chứng số, giải pháp Blockcerts hồn tồn áp dụng đơn vị đào tạo có định hướng rõ ràng mặt sách lĩnh vực quản lý chứng đào tạo Luận văn dừng lại việc nghiên cứu lý thuyết sử dụng giải pháp sẵn có để minh họa Khi triển khai tồn số vấn đề liên quan tới việc đăng ký định danh cho nhà phát hành cần phải quản lý tập trung Cho nên, để đưa mơ hình vào thực tế cần có điều kiện tiên như: định hướng quản lý chứng đào tạo quan có thẩm quyền, đơn vị cấp phép quản lý định danh cho đơn vị phát hành… 44 TÀI LIỆU THAM KHẢO "Risk Advisory Group." Risk Advisory Group - Wikispooks Truy cập ngày 14/03/2019 https://wikispooks.com/wiki/Risk_Advisory_Group "Increasing number of jobseeker CVs contain inaccuracies, finds The Risk Advisory Group." Risk Advisory Truy cập ngày 14/03/2019 http://risk.sozowebdesign.co.uk/news/increasing-number-of-jobseekercvs-contain-inaccuraciesfinds-the-risk-advisory-group.php S Nakamoto, “Bitcoin: A peer-to-peer electronic cash system,” Oct 2008 Onatan H Bergquist (2017), “Blockchain Technology and Smart Contracts Privacy-preserving Tools” Rujia Li (2017), “Better Security Over Blockcerts” Alfred J Menezes, S A V., Paul C van Oorschot (1996) “Handbook of applied cryptogra-phy (5th)” Ethereum GitHub Wiki - Proof of Stake FAQ (2017) Trích từ https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ Ethereum Homestead Documentation - What is Ethereum (2016) Trích từ http://ethdocs.org/en/latest/introduction/what-is-ethereum.html "Blockcerts-An Open Infrastructure for Academic Credentials on the Blockchain." Medium (2016) Trích từ https://medium.com/mit-medialab/blockcerts-an-open-infrastructure-for-academic-credentials-on-theblockchain-899a6b880b2f 45 ... Hệ thống chứng tập trung xử lý 2) Hệ thống quản lý chứng tập trung thực hiện: Tạo chứng định dạng file json (sử dụng module cert-tools) Ký chứng phát hành chứng lên blockchain (sử dụng module... Cơng nghệ blockchain gì? Các thành phần chế hoạt động nào? Câu hỏi nghiên cứu thứ ba: Ứng dụng Blockcerts vào quản lý chứng nào? Luận văn nghiên cứu lý thuyết hệ thống quản lý chứng chỉ, công nghệ. .. sinh viên Tạo chứng Sinh viên Quản lý yêu cầu cấp chứng Phát hành chứng Nhà tuyển dụng Xác minh chứng Hình 4: Mơ hình thử nghiệm Quy trình thực sau: 1) Các đơn vị đào tạo có hệ thống quản lý thông