1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

74 76 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 2,56 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mục đích và nội dung nghiên cứu Mục đích của đề tài là nghiên cứu các đặc điểm đặc trưng, nổi bật của công nghệ Block chain so với các cơ sở dữ liệu thông thường như: tính bảo mật, cơ c

Trang 1

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

Trang 2

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

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

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS NGUYỄN ĐÌNH THÚC

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

Trang 3

LỜI CAM ĐOAN

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

minh trong y tế học đường” là công trình nghiên cứu của riêng tôi

và được sự hướng dẫn khoa học của PGS.TS Nguyễn Đình Thúc Kết quả nghiên cứu trong đề tài này chưa từng được công bố dưới bất

kỳ hình thức nào trước đây Những kết quả, hình ảnh minh họa phục

vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập

từ các nguồn khác nhau có trích dẫn và chú thích rõ nguồn gốc trong phần tài liệu tham khảo

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung luận văn của mình

Trang 4

LỜI CÁM ƠN

Tôi xin chân thành cám ơn quý thầy cô Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Thành phố Hồ Chí Minh, đã tận tình giảng dạy, hướng dẫn tôi trong suốt quá trình học tập và nghiên cứu Đặc biệt là sự hướng dẫn tận tình của PGS.TS Nguyễn Đình Thúc, Khoa Công nghệ Thông tin, Trường Đại học Khoa học Tự nhiên Thành phố Hồ Chí Minh đã hướng dẫn, giúp tôi hoàn thành tốt đề tài Qua đây, tôi xin gửi lời cảm ơn sâu sắc đến thầy

Cuối cùng, tôi xin gửi lời cảm ơn chân thành đến gia đình, bạn

bè, đồng nghiệp đã giúp đỡ, động viên tôi trong suốt quá trình học tập, nghiên cứu và thực hiện đề tài

Tôi xin chân thành cám ơn!

Ngày 28 tháng 9 năm 2018

Trang 5

MỤC LỤC

Trang Lời cam đoan

Lời cám ơn

Mục lục

Danh mục các hình vẽ, đồ thị

MỞ ĐẦU 1

Chương 1 TỔNG QUAN 4

1.1 Mục đích và nội dung nghiên cứu 4

1.2 Mục tiêu của đề tài 4

1.3 Giới hạn nghiên cứu của đề tài 4

1.4 Nội dung báo cáo 5

Chương 2 CƠ SỞ LÝ THUYẾT 7

2.1 Mã hóa 7

2.1.1 Hàm Băm (Hash function) 8

2.1.2 Mã hóa bất đối xứng (Asymmetric cryptography) và mã hóa đối xứng (symmetric key cryptography) 9

2.1.3 Chữ ký điện tử (Digital signatures) 12

2.2 Công nghệ Blockchain 13

2.2.1 Chuỗi khối (The Blockchain): 18

2.2.2 Cơ chế đồng thuận phân tán (decentralized consensus) 21

2.2.3 Tính toán tin cậy (trusted computing) 29

2.3 Hợp đồng thông minh (smart contracts) 31

2.3.1 Hợp đồng thông minh là gì ? 31

2.3.2 Ví dụ Hợp đồng thông minh 35

2.3.3 Ứng dụng của Smart Contract 38

2.3.4 Các ưu điểm của Smart Contract 41

2.4 Bitcoin 42

2.4.1 Bitcoin là gì? 42

2.4.2 Cách thức hoạt động của Bitcoin 43

2.5 Smart Contracts and Ethereum 47

Trang 6

Chương 3 THIẾT KẾ ỨNG DỤNG THỐNG KÊ SỐ LIỆU TRONG Y

TẾ HỌC ĐƯỜNG 49

3.1 Yêu cầu của người dùng 49

3.2 Kịch bản chương trình 50

3.3 Cách lưu trữ và truy xuất dữ liệu trên hệ thống 52

3.4 Thiết kế chương trình 53

3.4.1 Các thành phần hỗ trợ 53

3.4.2 Khởi tạo hệ thống 53

3.4.3 Minh họa thực hiện giao dịch trên Ethereum 56

3.4.4 Minh họa thực hiện báo cáo thống kê 58

Chương 4 KẾT LUẬN 64

TÀI LIỆU THAM KHẢO 66

Trang 7

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

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

Hình 1.2 Báo cáo thống kê y tế trên Google biểu mẫu 2

Hình 2.1 Public key Encryption [3] 10

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

Hình 2.3 Digital signature [3] 12

Hình 2.4 Mô hình mạng Blockchain [9] 14

Hình 2.5 Cách hoạt động của Block chain [9] 15

Hình 2.6 Thực hiện một giao dịch trong trong hệ thống Block chain [9] 16 Hình 2.7 Mô hình mạng phân tán [9] 16

Hình 2.8 Mô hình xác thực giao dịch trong mạng Blockchain [9] 17

Hình 2.9 Phần thưởng khối dành cho các thợ đào [9] 18

Hình 2.10 Mô tả cấu trúc Block [10] 19

Hình 2.11 Cấu trúc của Block Header [10] 20

Hình 2.12 Mô tả nội dung thông tin của Block Header [10] 20

Hình 2.13 Block với 1 phần giá trị băm của Block Header trước đó [10] 21

Hình 2.14 Minh họa khả năng bảo mật của của hệ thống Blockchain [11] 26 Hình 2.15 Mô hình tổng quát của Proof of Work và Proof of Stake [12] 29

Hình 2.16 Mô hình hoạt động Hợp đồng thông minh [15] 34

Hình 2.17 Sử dụng Hợp đồng thông minh trong giao dịch bất động sản [15] 41 Hình 2.18 Cách thức hoạt động của 1 giao dịch Bitcoin [16] 45

Hình 3.1 Tổng quan chương trình thống kê y tế học đường 50

Hình 3.2 Giao diện báo cáo của chương trình 51

Hình 3.3 Các đơn vị đăng nhập tài khoản để kết nối với hệ thống 51

Hình 3.4 Mô hình lưu trữ và truy xuất dữ liệu trên hệ thống 52

Hình 3.5 Giao diện các tài khoảng trong hệ thống Blockchain cục bộ 54

Hình 3.6 Thông tin các Blocks trong chuỗi 54

Hình 3.7 Thông tin các giao dịch được xác nhận trên hệ thống 55

Hình 3.8 Thông tin chi tiết các sự kiện trên hệ thống 55

Hình 3.9 Trạng thái khởi tạo của hệ thống 56

Hình 3.10 Giao diện tài khoản ví của người dùng 56

Hình 3.11 Giao diện tài khoản ví của người dùng 57

Hình 3.12 Hệ thống xác nhận giao dịch thành công 57

Hình 3.13 Thông tin giao dịch được ghi nhận lại trên hệ thống 58

Hình 3.14 Hợp đồng thông minh được triển khai trên Blockchain 59

Hình 3.15 Thông tin giao dịch triển khai hợp đồng được ghi nhận trên hệ thống 59

Hình 3.16 Cấu trúc các thư mục của pet-shop box [16] 60

Hình 3.17 Kết nối trang web báo cáo với hệ thống Blockchain 61

Hình 3.18 Màn hình lựa chọn báo cáo của các đơn vị 62

Hình 3.19 Màn hình xác nhận hoàn thành báo cáo của các đơn vị 62

Hình 3.20 Truy xuất dữ liệu từ các biểu mẫu báo cáo số liệu trên web 63

Trang 8

Một số mẫu, cách thức báo cáo được các cấp quản lý đang thực hiện:

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

(1) hoc-vbctmobile41197-54280.aspx

http://edu.hochiminhcity.gov.vn/thong-tu-cac-bo/thong-tu-lien-tich-quy-dinh-ve-cong-tac-y-te-truong-(2) 2019-c44057-312127.aspx

Trang 9

http://pgdquan11.hcm.edu.vn/y-te-truong-hoc/thong-ke-tinh-hinh-suc-khoe-hoc-sinh-dau-nam-hoc-2018-Hình 1.2 Báo cáo thống kê y tế trên Google biểu mẫu

Với các phương thức báo cáo như hiện nay, các đơn vị phải sử dụng các trình duyệt web để kết nối với hệ thống các máy chủ tương ứng để nhập dữ liệu

do đó thường gặp một số vấn đề hạn chế như sau:

1 Dữ liệu của một đơn vị có thể bị điều chỉnh hoặc bị xóa hoàn toàn bởi một đơn vị khác

2 Tất cả các đơn vị có thể dễ dàng thấy được dữ liệu của nhau Do đó việc báo cáo số liệu các dịch bệnh tại các đơn vị không được chính xác, đặc biệt là các đơn vị ngoài công lập do tâm lý e ngại nguy cơ mất an toàn thông tin gây ảnh hưởng đến tâm lý phụ huynh học sinh cũng như các hoạt động trong nhà trường

3 Dữ liệu tập trung tại một máy chủ, có nguy bị tấn công bởi virus hoặc các phần mềm gián điệp, hay do nguyên nhân chủ quan của người dùng, các tác động vật lý ảnh hưởng đến hoạt động của máy tính dẫn đến nguy cơ mất dữ liệu là tương đối cao

Do đó, luận văn này là nhằm nghiên cứu, tìm hiểu và ứng dụng một công nghệ lưu trữ dữ liệu mới là công nghệ Blockchain vào trong công việc báo cáo thống kê số liệu Đây là một hệ thống cơ sở dữ liệu không thay đổi, được bảo

Trang 10

mật và dữ liệu phân tán Kể từ khi Bitcoin(1), một ứng dụng tiêu biểu của công nghệ Blockchain phát triển trong năm 2009 thì các ứng dụng khác của công nghệ Blockchain cũng bắt đầu xuất hiện, Blockchain là một công nghệ độc lập, cùng với những tiến bộ khoa học máy tính gần đây được xem như là một phương pháp kiểm soát truy cập và loại bỏ sự tin cậy ở bên thứ ba khi giải quyết

dữ liệu cá nhân

(1) Bitcoin là một loại tiền mã hóa, được phát minh bởi Satoshi Nakamoto dưới dạng phần mềm mã nguồn mở

từ năm 2009 Bitcoin có thể được trao đổi trực tiếp bằng thiết bị kết nối Internet mà không cần thông qua một

tổ chức tài chính trung gian nào

Trang 11

CHƯƠNG 1 TỔNG QUAN

1.1 Mục đích và nội dung nghiên cứu

Mục đích của đề tài là nghiên cứu các đặc điểm đặc trưng, nổi bật của công nghệ Block chain so với các cơ sở dữ liệu thông thường như: tính bảo mật, cơ chế đồng thuận, dữ liệu phân tán,… cùng với các ưu điểm của Hợp đồng thông minh (Smart contract) qua đó cho thấy công nghệ Blockchain và Hợp đồng thông minh có thể được sử dụng để chia sẻ và kiểm soát thông tin cá nhân giữa những người không nhất thiết phải tin tưởng lẫn nhau Từ đó có thể ứng dụng một công nghệ lưu trữ dữ liệu mới đảm bảo an toàn, tiện lợi hơn trong công việc báo cáo thống kê số liệu phục vụ cho công tác quản lý

1.2 Mục tiêu của đề tài

Mục tiêu nghiên cứu của luận văn là xây dựng một mô hình ứng dụng của công nghệ Blockchain và Hợp đồng thông minh cho công tác báo cáo thống kê, điển hình là thống kê số liệu y tế trong trường học nhằm khắc phục những hạn chế trong công tác báo cáo thống kê y tế trong nhà trường hiện nay, đồng thời đảm bảo được các tiêu chí an toàn, bảo mật thông tin của các đơn vị, cụ thể:

1 Số liệu báo cáo của các đơn vị sẽ được đồng thuận xác nhận và không ai

1.3 Giới hạn nghiên cứu của đề tài

Nội dung luận văn tập trung nghiên cứu hai vấn đề chính, bao gồm: thứ nhất, nghiên cứu cấu trúc, cách thức hoạt động của một hệ thống Blockchain, quá trình thực hiện và xác nhận một giao dịch trên hệ thống Đồng thời nghiên cứu các cơ chế đồng thuận, mã hóa dữ liệu trên chuỗi khối Điển hình tiêu biểu

Trang 12

là Bitcoin Sau khi trình bày các kiến thức nền tảng của Blockchain, báo cáo tiếp tục trình bày về Hồ sơ thông minh, các ứng dụng của Hồ sơ thông minh, cũng như cách tạo ra một Hồ sơ thông minh và triển khai trên hệ thống Blockchain Phần thứ hai, báo cáo trình bày chi tiết cách thức xây dựng mô phỏng một hệ thống ứng dụng của Blockchain và Hợp đồng thông minh phục

vụ cho công tác quản lý là thống kê số liệu y tế học đường Do tập trung cho mục tiêu của báo cáo cũng như kết quả nghiên cứu ứng dụng của đề tài nên phần trình bày mô phỏng ứng dụng sẽ không đi sâu vào cách lập trình, thiết kế giao diện mà báo cáo chỉ tập trung trình bày cách thức xây dựng và triển khai

hệ thống đến người dùng, mô phỏng quá trình hoạt động và kết quả thực hiện của hệ thống

1.4 Nội dung báo cáo

Theo mục tiêu nghiên cứu của đề tài thì bố cục của báo cáo được trình bày như sau:

- Chương 1: trình bày vấn đề thực tế tại đơn vị, lý do chọn đề tài Xác định mục tiêu đề tài, nội dung nghiên cứu và giới hạn của đề tài

- Chương 2: trình bày các kiến thức cơ bản, nền tảng nhằm cung cấp cơ

sở toán học, các kỹ thuật mã hóa cơ bản được sử dụng trong Blockchain; tổng quan kiến trúc của công nghệ Blockchain, cách thức kiểm soát truy cập, lưu trữ

dữ liệu của Blockchain; tổng quan về Hợp đồng thông minh cùng với các hệ thống tiêu biểu của Block chain như: Bitcon, Ethereum

- Chương 3: Phân tích và thiết kế ứng dụng phục vụ cho công tác báo cáo thống kê số liệu y tế học đường dựa trên nền tảng công nghệ Blockchain và Hợp đồng thông minh Nội dung báo cáo trình bày chi tiết các bước xây dựng demo chương trình ứng dụng như: mô tả cách thức thực hiện một giao dịch truyền thống của hệ thống Blockchain, đó là giao dịch đồng tiền kỹ thuật số

Từ đó ứng dụng công nghệ của Blockchain và Hợp đồng thông minh vào trong công tác báo cáo thống kê y tế học đường Báo cáo sẽ trình bày chi tiết cách

Trang 13

thức triển khai, xây dựng hệ thống và quá trình hệ thống xác thực giao dịch thực hiện thành công

- Tổng kết: kết luận, trình bày ưu điểm, nhược điểm của hệ thống và hướng phát triển đề tài

Trang 14

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

Trong phần này, chúng tôi sẽ giới thiệu ngắn gọn và giải thích một số khái niệm cơ bản về mật mã, công nghệ Blockchain và các khái niệm liên quan như hợp đồng thông minh Sau đó chúng tôi sẽ trình bày một số ứng dụng, công nghệ phổ biến hiện nay được xây dựng dựa trên nền tảng Blockchain

2.1 Mã hóa

Mã hóa [1] cung cấp các kỹ thuật chuyển đổi dữ liệu khiến nó trở nên vô dụng đối với những người nhận không mong muốn Có nghĩa là ngăn cản hai hành động cơ bản: trích xuất thông tin từ dữ liệu và thay đổi, chỉnh sửa làm sai lệch dữ liệu; đây được gọi là vấn đề bí mật và vấn đề tính toàn vẹn của dữ liệu Ngoài ra, chúng ta có thể xét đến trường hợp một người gửi dữ liệu được mã hóa và gửi một thông báo rồi sau đó từ chối đã gửi nó Có thể nói mã hóa giúp chúng ta ngăn ngừa và phát hiện các sự can thiệp, làm sai lệch thông tin hoặc không cho phép truy cập và sử dụng dữ liệu

Bảo mật thông tin hiện đại nghiên cứu hai dạng bài toán an toàn thông tin sau:

- Bảo mật

- Chứng thực

Bảo mật nhằm ngăn cản không cho người lạ trích chọn thông tin từ các thông điệp được gửi trên các kênh truyền phổ biến (thường không an toàn) Chứng thực nhằm đảm bảo chỉ có người nhận đúng mới có thể đọc thông điệp, đồng thời cũng đảm bảo người gửi không thể phủ nhận thông điệp mình gửi

Có thể chia các hệ mã thành hai loại chính:

- Hệ mã khóa bí mật (còn được gọi là hệ mã đối xứng)

- Hệ mã khóa công khai (hay hệ mã không đối xứng)

Với mục tiêu của báo cáo là tập trung làm rõ các kỹ thuật mã hóa cốt lõi của Blockchain cho nên những kỹ thuật mã hóa khá phổ biến trong thực tế

Trang 15

chúng tôi chỉ nhắc lại tư tưởng thuật toán, tính ứng dụng và kỹ thuật đó được

sử dụng trong Blockchain như thế nào Theo đó phần này sẽ trình bày một số

kỹ thuật mã hóa căn bản sau: Hàm băm; Mã hóa đối xứng và Mã hóa bất đối

xứng

2.1.1 Hàm Băm (Hash function)

Hàm băm [2] (Hash function) là một thuật toán lấy tham số đầu vào là

dữ liệu có độ dài tùy ý và cho ra một chuỗi bit có chiều dài cố định, được gọi là hash value Hash value luôn giống nhau với các dữ liệu đầu vào giống nhau Một hash funtion là một ánh xạ từ tập hợp dữ liệu đầu vào (độ dài tùy ý) đến tập hợp các hash value, với đặc điểm là một sự khác biệt nhỏ trong

dữ liệu đầu vào, sẽ tạo ra một khác biệt lớn trong kết quả đầu ra Một yêu cầu chung là hash function phải tính toán nhanh Kích thước của tập hash value thường nhỏ hơn so với kích thước của tập dữ liệu đầu vào có cùng một giá trị hash value

Một hash function tốt cần phân phối các giá trị đầu vào đến các hash value tương ứng, sao cho mỗi hash value được liên kết gần như tương ứng với số lượng các giá trị đầu vào có thể có Một cách để đạt được tỷ lệ này

là làm cho các hash value có phân phối ngẫu nhiên Lưu ý rằng mặc dù hash value ngẫu nhiên thì nó vẫn phải đảm bảo: với 1 đầu vào xác định thì hash value của nó luôn giống nhau

Blockchain sử dụng hàm băm mật mã [3] (crytography hash function)

để thực hiện proof-of-work Crytography hash function (còn gọi là secure hash function) bắt buộc phải bổ sung các yêu cầu chặt chẽ hơn so với các hash function bình thường:

One-wayness (preimage resistence) - Tính 1 chiều (kháng tái tạo) Cho một hash value, nó phải đảm bảo không thể tính toán để tìm ra dữ liệu đầu vào Rõ ràng, đây là một đặc điểm quan trọng để áp dụng cho proof-of-work

Trang 16

Weak collision resistance - Kháng lại đụng độ yếu Cho một giá trị đầu vào, không thể tìm được một giá trị đầu vào khác mà có cùng giá trị hash value

Strong collision resistance - Kháng lại đụng độ mạnh Không thể tìm

ra được 2 giá trị đầu vào nào mà cho ra cùng một giá trị hash value

Blockchain sử dụng SHA256^2 làm proof-of-work function SHA256^2 là việc thực hiện hàm hash SHA256 2 lần SHA256 là một hàm băm thuộc họ SHA-2 hash function được thiết kế bởi NSA và công bố bởi NIST vào năm 2001 SHA256 là hash function mà cho đầu ra có chiều dài

256 bits

2.1.2 Mã hóa bất đối xứng (Asymmetric cryptography) và mã hóa đối xứng (symmetric key cryptography)

Mã hóa bất đối xứng hay mã hóa công khai được phát triển từ những năm

1970 bởi Diffe, Hellman và Merkle Mã hóa công khai được phát triển nhằm khắc phục điểm yếu quan trọng của hệ mã hóa khóa đối xứng trong việc trao đổi khóa bí mật (key distribution) Khi 2 người sử dụng mã hóa đối xứng, thì trước đó họ phải chia sẻ chung 1 khóa bí mật Tức là họ phải chuyển khóa bí mật thông qua một kênh truyền an toàn trước khi sử dụng hệ thống mã hóa khóa đối xứng Mạng internet là một kênh truyền không an toàn, khi các gói tin có thể bị nghe trộm, thậm chí có thể thay đổi trên đường truyền Do đó, ta không thể tạo ra một kết nối an toàn mà chỉ dùng mã hóa khóa đối xứng Mã hóa khóa công khai được phát triển để giải quyết vấn đề này

Tư tưởng của hệ mã hóa khóa đối xứng là đảm bảo an toàn với chỉ một khóa Khóa này được dùng cho cả quá trình mã hóa và giải mã Còn hệ mã hóa khóa công khai đảm bảo an toàn với một cặp khóa Một khóa gọi là Public key, chỉ dùng để mã hóa gói tin, một khóa khác gọi là Private key, chỉ dùng để giải

mã gói tin Nhờ đó mà hệ mã hóa khóa công khai có thể được dùng để giải quyết vấn đề phân phối key Một điểm quan trọng cần chú ý là chỉ có khóa

Trang 17

Private key là cần phải giữ bí mật còn khóa công khai Public key thì công bố

công khai cho các đối tác có thể lấy nó để mã hóa gói tin trên đường truyền

không an toàn Cách thức hoạt động được mô tả qua hình 2.1

Đầu tiên, người nhận Receiver (Bob), nhận thông điệp đã mã hóa, tạo ra

1 cặp khóa Private key và Public key, bằng cách chạy thuật toán tạo khóa (Key

Generation Algorithm) (1) Người nhận Receiver (Bob) gởi Public key đến

người gởi Sender (Alice) và giữ lại khóa Private Key bí mật (2) Sau khi nhận

được Public key từ Bob, Alice tiến hành mã hóa Message sử dụng Public key

của Bob (3) Kết quả cho ra Message đã mã hóa Encrypted Message

(ciphertext) Encrypted Message này được gởi đến Bob qua kênh truyền không

an toàn (4) Kẻ tấn công có thể bắt được gói tin Encryted Message trên đường

truyền nhưng anh ta không thể giải mã được gói tin này, chỉ có Bob, người sở

hữu Private key tương ứng với Public key mới có thể giải mã Encrypted

Message bằng thuật toán giải mã Decryption Algothrim (5), để lấy được

Message

Hình 2.1 Public key Encryption [3]

Public Key

Encrypted Message

Trang 18

Nhưng có 1 vấn đề với lược đồ mã hóa này, Public key được gởi trên đường truyền không an toàn Điều này mở ra khả năng tấn công Man-in-the-Middle attack (MitM), khi kẻ tấn công (Trudy) kiểm soát đường truyền mạng được minh họa như hình 2.2

Kẻ tấn công Trudy đứng ở giữa kiểm soát kênh giao tiếp giữa Bob và Alice Khi Bob bắt đầu gởi Public key của mình qua Alice, thì Trudy thay vì chuyển tiếp Public key của Bob đến Alice thì Trudy giữ lại Public key của Bob sau đó tự tạo ra 1 cặp khóa Private-Public key mới, rồi tiếp tục gởi Public key của Trudy đến Alice Quá trình cứ tiếp diễn theo cách , đối với Alice thì Trudy hành xử giống như Bob, còn đối với Bob thì Trudy đóng vai trò như Alice Từ

đó, Trudy đứng giữa Alice và Bob giám sát các gói tin Message trao đổi giữa 2 bên Khuyết điểm của hệ mã hóa khóa công khai mà kẻ tấn công Trudy lợi dụng

là việc Alice không có cơ chế xác minh xem Public key mà mình nhận được thông qua kênh truyền không an toàn có đúng là của Bob hay không

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

Trang 19

Để chống lại cách tấn công Man-in-the-Middle attack, người ta dùng hạ tầng khóa công khai Public Key Infrastructure (KPI) KPI giả định có một trung tâm xác thực đáng tin cậy gọi là Certificate Authority (CA) Bất kỳ ai cũng có một bản sao của CA Public key và một CA tin cậy Mỗi người dùng tạo ra một cặp khóa Public-Private key và tạo lập CA với Public key CA sẽ xác minh định danh của người dùng và ký lên Public key Khi Alice muốn giao tiếp với Bob, Alice sẽ gởi Certificate đến Bob, để Bob kiểm tra Public key của Alice và chữ

ký của CA lên nó có hợp lệ hay không Bằng cách đó, thì Bob có thể biết được Public key mà mình nhận được có đúng là của Alice hay không

2.1.3 Chữ ký điện tử (Digital signatures)

Mục đích của chữ ký điện tử cũng giống như chữ ký tay, nhằm đảm bảo các gói tin được tạo ra bởi người ký, không bị giả mạo và chống thoái thác trách nhiệm Nói cách khác, để đảm bảo rằng một người đã gửi một dữ liệu nào đó,

nó cần phải được ký chữ ký số, bao gồm các ký tự được in cùng với một con dấu đặc biệt được ký bởi người gửi Chữ ký số là một phương pháp cho việc ký kết dữ liệu, thậm chí có thể chắc chắn hơn so với chữ ký tay, nó sẽ xác thực thông điệp đã gửi, đảm bảo rằng người gửi không thể từ chối việc gửi nó đồng thời cũng giúp đảm bảo nhận dạng được người gửi Chúng ta cùng xem cách thức sử dụng chữ ký số như hình 2.3 sau:

Hình 2.3 Digital signature [3]

Trang 20

Lược đồ trên trình bày quá trình sử dụng chữ ký điện tử Đầu tiên, người

ký Alice tạo ra một cặp khóa Private-Public key, sử dụng thuật toán tạo khóa (1) Alice truyền Public key đến Bob qua kênh truyền không an toàn (2) Tiếp theo, Alice dùng Private key của mình để ký lên Message (3) Cả Message và chữ ký Signature được chuyển đến người nhận là Bob (4) Chú ý là Message không mã hóa Bob xác thực chữ ký Signature bằng Public key của Alice (5) Nếu việc xác minh cho ra kết quả là đúng thì Message mà Bob nhận được là bản gốc của Alice

Việc chống thoái thác trách nhiệm được thể hiện qua việc mỗi cặp khóa Private-Public key chỉ thuộc về duy nhất 1 người, tức là không có khả năng 2 người khác nhau lại sở hữu cùng 1 cặp Key giống nhau Điều này được đảm bảo bằng không gian key rất lớn của hệ mã hóa khóa công khai, được thuật toán sinh khóa tạo ngẫu nhiên, không gian khóa lớn hơn rất nhiều so với tập người dùng, nên xác suất tạo ra các cặp key giống nhau là rất nhỏ Cho nên việc Alice

đã dùng Private key ký lên Message thì không thể chối rằng Private key tương ứng với Public key được công bố công khai không phải là của mình

2.2 Công nghệ Blockchain

Blockchain [4] là một cơ sở dữ liệu phân cấp lưu trữ thông tin trong các khối thông tin được liên kết với nhau bằng mã hóa và mở rộng theo thời gian Mỗi khối thông tin đều chứa thông tin về thời gian khởi tạo và được liên kết tới khối trước đó, kèm một mã thời gian và dữ liệu giao dịch Blockchain được thiết kế để chống lại việc thay đổi của dữ liệu: Một khi dữ liệu đã được mạng lưới chấp nhận thì sẽ không có cách nào thay đổi được nó Blockchain đầu tiên được phát minh và thiết kế bới Satoshi Nakamoto vào năm 2008 và được hiện thực hóa vào một năm sau đó , nó được xem là phần cốt lõi của Bitcoin, khi công nghệ Blockchain đóng vai trò như là một cuốn sổ cái cho tất cả các giao dịch Qua việc sử dụng mạng lưới ngang hàng và một hệ thống dữ liệu phân cấp, Bitcoin Blockchain được quản lý tự động Việc phát minh ra Blockchain

Trang 21

cho Bitcoin đã làm cho nó trở thành loại tiền tệ kỹ thuật số đầu tiên giải quyết được vấn đề double spending (chi tiêu gian lận khi 1 lượng tiền được dùng 2 lần) Công nghệ này của Bitcoin đã trở thành nguồn cảm hứng cho một loạt các ứng dụng khác như ghi lại những sự kiện, hồ sơ y tế, xử lý giao dịch, công chứng, danh tính và chứng minh nguồn gốc

Có thể nói công nghệ Blockchain được đặc trưng bởi các đặc tính sau:

• Phân tán: Bản chất của BlockChain là cơ sở dữ liệu phân tán có chứa

các bản ghi hoặc chứa toàn bộ các lịch sử của các quá trình giao dịch hoặc các

sự kiện đã được thực thi và được chia sẻ giữa các bên tham gia trong hệ thống mạng ngang hàng Vậy nếu phân tích theo cách của ngôn ngữ thì BlockChain

là: BlockChain = Block + Chain đó chính là 1 danh từ ghép có sự kết hợp giữa

các khối (Block) được liên kết với nhau để tạo thành chuỗi (Chain), mỗi khối đều chứa thông tin thời gian khởi tạo, và các thông tin khác, nó được liên kết với các khối trước Xét về mặt cấu trúc dữ liệu thì nó cũng có kiểu tương tự như Danh sách liên kết nhưng cơ chế xử lý của nó có những nét đặc thù riêng

Hình 2.4 Mô hình mạng Blockchain [9]

• Xác thực thời gian: Do mỗi khối giao dịch được băm vào tất cả các khối

tiếp theo, việc ngày càng trở nên khó khăn trong việc thay đổi lịch sử càng ngày

Trang 22

càng xa thời điểm khối hiện tại Các Blockchain trở thành một công cụ kiểm tra tính chính xác của các giao dịch

• Đồng thuận: Các nút thiết lập một sự thật về phiên bản cơ sở dữ liệu

nào là đúng thông qua một thuật toán đồng thuận Điều này phục vụ để xác thực các giao dịch cũng như để ngăn cản các cuộc tấn công chi tiêu đôi Loại thuật toán đồng thuận được sử dụng rất phụ thuộc vào cấu trúc và mục đích của Blockchain

Mô hình hoạt động của Blockchain có thể được mô tả như hình 2.5:

Hình 2.5 Cách hoạt động của Block chain [9]

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

Trang 23

Hình 2.6 Thực hiện một giao dịch trong trong hệ thống Block chain [9]

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

Hình 2.7 Mô hình mạng phân tán [9]

Lúc này, giao dịch hiện đã được truyền trong mạng, vậy ta có thể đặt câu hỏi: Vì không có trung tâm nào có thẩm quyền để xác thực giao dịch, tính xác thực và quyền xác thực giao dịch được thực hiện trong mạng như thế nào? Trong hệ thống mạng, có một số nút đặc biệt trong mạng thực hiện chức năng xác minh giao dịch và duy trì sổ kế toán Chúng ta gọi họ là Thợ đào (Miners) Thợ đào là các nút đặc biệt giữ bản sao sổ kế toán và xác minh các

Trang 24

giao dịch xảy ra trong mạng Sử dụng thuật toán mã hóa hiện đại, các thợ đào xác thực giao dịch trên mạng

Các giao dịch được phát đi dưới dạng tin nhắn kỹ thuật số Cũng giống như chữ ký của bạn cung cấp bằng chứng về quyền sở hữu trên tài liệu, tương

tự, chữ ký kỹ thuật số cung cấp bằng chứng cho thấy giao dịch là xác thực Không giống như mật khẩu viết tay, chữ ký số là duy nhất cho mọi giao dịch

Hình 2.8 Mô hình xác thực giao dịch trong mạng Blockchain [9]

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

Trang 25

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

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

đố Thợ đào tìm thấy đáp án này, sẽ công bố khối đó lên mạng Các thợ đào khác sẽ ngừng tạo các khối của họ và sẽ lấy khối đã công bố, xác nhận nó và thêm nó vào sổ cái Để thưởng cho các thợ đào, đồng tiền mới được tạo ra và

sẽ được gởi đến địa chỉ của người đào

Hình 2.9 Phần thưởng khối dành cho các thợ đào [9]

Công nghệ Blockchain tương đồng với cơ sở dữ liệu, chỉ khác ở việc tương tác với cơ sở dữ liệu Để hiểu Blockchain, chúng ta cần nắm được năm định nghĩa sau: chuỗi khối (Blockchain), cơ chế đồng thuận phân tán (decentralized consensus), bằng chứng công việc (proof of work), tính toán tin cậy (trusted computing) và hợp đồng thông minh (smart contracts)

2.2.1 Chuỗi khối (The Blockchain)

Một chuỗi khối giống như một nơi để lưu trữ dữ liệu bán công cộng trong một không gian hẹp (khối) Bất cứ ai cũng có thể xác nhận việc bạn nhập thông

Trang 26

tin vào vì khối chứa dữ liệu có chữ ký của người tạo, nhưng chỉ có bạn có thể thay đổi được dữ liệu của khối đó vì chỉ có bạn cầm khóa bí mật cho dữ liệu đó.Vì thế chuỗi khối hoạt động gần giống như một cơ sở dữ liệu, ngoại trừ một phần của thông tin được lưu trữ - header của nó là công khai Dữ liệu lưu trữ

có thể là một giá trị hoặc một số dư tiền mã hóa Một chuỗi khối hoạt động như một hệ thống lưu chuyển giá trị thay thế mà không một quyền lực tập trung hay bên thứ ba nào có thể chen vào

Dữ liệu giao dịch được ghi vĩnh viễn trong các tệp được gọi là khối Chúng có thể được coi là các trang riêng lẻ của sổ ghi chép thành phố (nơi thay đổi tiêu đề thành bất động sản được ghi lại) hoặc sổ kế toán giao dịch chứng khoán Các khối được tổ chức thành một chuỗi tuyến tính theo thời gian (còn được gọi là chuỗi khối) Các giao dịch mới liên tục được các thợ mỏ xử lý thành các khối mới được thêm vào cuối chuỗi Khi các khối được chôn sâu hơn và sâu hơn vào Blockchain, chúng trở nên khó hơn và khó khăn hơn để thay đổi hoặc loại bỏ, điều này làm phát sinh các Giao dịch không thể đảo ngược của bitcoin

Một khối là cấu trúc dữ liệu vùng chứa Trong hệ thống Bitcoin, một khối chứa trung bình hơn 500 giao dịch Kích thước trung bình của một khối có thể

là 1MB Trong Bitcoin Cash kích thước của một khối có thể lên tới 8MB, điều này cho phép mỗi giây có thể có nhiều giao dịch được xử lý Một khối chứa các trường dữ liệu và phần Header của nó Phần Header của Khối chứa các thông tin đặc tả về khối (Meta data) và chứa danh sách các thông tin giao dịch (transaction)

Hình 2.10 Mô tả cấu trúc Block [10]

Trang 27

Phần đầu thông tin của khối (Block Header) đặc tả dữ liệu về khối, nội dung thông tin của nó bao gồm 3 phần :

+ Phần dữ liệu đặc tả đầu tiên: Tham chiếu tới giá trị băm của khối trước

đó Tất nhiên khối trước đó cùng nằm trong một BlockChain

+ Phần dữ liệu đặc tả thứ 2: Có tên lần lượt là difficulty (Độ

khó), timestamp (Thời gian tạo ra Block), và nonce (Giá trị biến thiên để tìm ra giá trị băm thỏa mãn yêu cầu của mỗi Blockchain) các thông tin này liên quan tới việc kiểm tra tính nhất quán về mặt dữ liệu khi xử lý mining (Đào) Quá trình đào được thực hiện ở mỗi nút, bản chất chính là quá trình tính toán

+ Phần dữ liệu đặc tả thứ 3: Chính là cây Merkle, Đây là một cấu trúc

được đặc tả theo hình cây, cấu trúc này cho phép nâng cao tính hiệu quả trong việc xử lý các giao dịch trong khối

Hình 2.11 Cấu trúc của Block Header [10]

Hình 2.12 Mô tả nội dung thông tin của Block Header [10]

Trang 28

Mỗi một khối được tham chiếu tới khối trước đó (Block cha), nếu bất kỳ nội dung ở phần đầu của khối (Block Header) bị sửa đổi, thì các giá trị băm trực thuộc Block header con trực thuộc sẽ bị sai Sửa đổi giao dịch cũng có thể phát hiện được

Hình 2.13 Block với 1 phần giá trị băm của Block Header trước đó [10]

Dữ liệu lưu trữ trong BlockChain là không thể thay đổi, nếu một giao dịch trong BlockChain bị sửa đổi, thay thế hoặc xóa bỏ, cây Merkle liên quan tới khối này sẽ phát hiện ra sự không chính xác này Khi cây Merkle thay đổi giá trị băm ở phần đầu của nó sẽ khác với giá trị băm ở phần đầu của khối mà nó liên kết đến Trong thực tế sự thay đổi của một giao dịch sẽ ảnh hưởng tới tất

cả các khối con có liên quan

2.2.2 Cơ chế đồng thuận phân tán (decentralized consensus)

Cơ chế đồng thuận phân tán [5] ngược lại với mô hình cổ điển về cơ chế đồng thuận tập trung – nghĩa là khi một cơ sở dữ liệu tập trung được dùng để quản lý việc xác thực giao dịch Một sơ đồ phi tập trung chuyển giao quyền lực

và sự tin tưởng cho một mạng lưới ảo phi tập trung và cho phép các nút của mạng lưới đó liên tục lưu trữ các giao dịch trên một khối (block) công cộng, tạo nên một chuỗi (chain) độc nhất: chuỗi khối (Blockchain) Mỗi khối kế tiếp chứa một “hash” (một mã độc nhất) của mã trước nó; vì thế, mã hóa (thông qua hàm hash) được sử dụng để bảo đảm tính xác thực của nguồn giao dịch và loại

bỏ sự cần thiết phải có một trung gian tập trung Sự kết hợp của mã hóa và công

Trang 29

nghệ Blockchain lại đảm bảo rằng sẽ không bao giờ một giao dịch được lưu trữ lại hai lần

Thuật toán đồng thuận:

Các thuật toán đồng thuận có ý nghĩa cao nhất đối với công nghệ Blockchain vì mục đích của Bitcoin là chuyển giá trị trong một môi trường không được kiểm soát, không tin cậy, nơi mà một cách chắc chắn để xác nhận các giao dịch là cần thiết Mục tiêu của thuật toán đồng thuận là để đảm bảo một lịch sử duy nhất của các giao dịch tồn tại và rằng lịch sử đó không chứa các giao dịch không hợp lệ hoặc mâu thuẫn Ví dụ: không có tài khoản nào đang cố gắng chi tiêu nhiều hơn tài khoản có chứa, hoặc phải chi tiêu cùng một

mã thông báo hai lần, cái gọi là chi tiêu đôi Proof of Work (PoW) và Proof of Stake (PoS) là hai khái niệm cơ bản trong thuật toán đồng thuận Cả hai giao thức này đều hướng đến sự đồng thuận trong Blockchain nhưng nó lại có những hướng phát triển khác nhau

Mỗi khi một khối được ra đời, mạng lưới Blockchain phải đạt được sự đồng thuận của toàn bộ thợ đào để quyết định khối đó đại diện cho tất cả các giao dịch hợp lệ Blockchain là cỗ máy của sự tin tưởng, do đó đồng thuận là một cơ chế quan trọng của Blockchain Vậy đồng thuận là gì, và chính xác thì hai giao thức này khác nhau ở điểm nào?

Sự đồng thuận không tín nhiệm và phân tán:

Sự đồng thuận không tín nhiệm và phân tán có nghĩa là nếu bạn muốn gửi và/hoặc nhận tiền từ một ai đó mà bạn không cần phải tin vào các dịch vụ của bên thứ ba

Khi bạn sử dụng phương thức thanh toán truyền thống, bạn cần phải đặt niềm tin vào bên thứ ba để đặt giao dịch của mình (ví dụ: Visa, Mastercard, PayPal, các ngân hàng) Họ giữ sổ cá nhân của khách hàng, nơi lưu trữ các lịch

sử giao dịch và số dư của mỗi tài khoản

Trang 30

Ví dụ phổ biến để giải thích rõ hơn về hành vi này là: nếu Alice gửi cho Bob $100, dịch vụ của bên thứ ba đáng tin cậy sẽ ghi nợ cho tài khoản của Alice

và ghi có cho tài khoản của Bob, vì vậy cả hai phải tin vào bên thứ ba

Với Bitcoin và một vài loại tiền tệ số khác, mọi người đều có một bản sao của sổ cái (Blockchain), vì vậy không ai cần tin tưởng vào bên thứ ba, bởi vì bất cứ ai cũng có thể trực tiếp xác minh các thông tin được viết ra

2.2.2.1 Proof of Work (Bằng chứng công việc)

Proof of Work là một giao thức có mục đích chính là ngăn chặn các cuộc tấn công không gian mạng như cuộc tấn công DDoS (Tấn công từ chối dịch vụ phân tán – Distributed Denial Of Service) có mục đích làm cạn kiệt nguồn của

hệ thống máy tính bằng cách gửi nhiều yêu cầu giả mạo, khiến các trang web, dịch vụ trực tuyến, trở nên quá tải, người dùng gặp khó khăn, hay thậm chí không thể truy cập vào các trang web, dịch vụ này

Khái niệm Proof of Work đã tồn tại trước khi có khái niệm về Bitcoin Satoshi Nakamoto đã áp dụng kỹ thuật này cho đồng tiền số của mình, tạo nên một cuộc cách mạng hóa các giao dịch truyền thống được thiết lập trước đó Trên thực tế, khái niệm PoW ban đầu được Cynthia Dwork và Moni Naor đưa ra năm 1993, nhưng từ “Proof of Work” đã được Markus Jakobsson và Ari Juels đặt ra trong một tài liệu xuất bản năm 1999 Nhưng, trở lại ngày hôm nay, Proof of Work có lẽ là ý tưởng lớn nhất đằng sau WhitePaper Bitcoin của Nakamoto – được xuất bản vào năm 2008 – bởi vì nó cho phép sự đồng thuận không tín nhiệm và phân tán

Proof of work và việc khai thác

Proof of Work là một yêu cầu để xác định sức mạnh tính toán máy tính, còn được gọi là khai thác, cần phải được thực hiện để tạo ra một nhóm các giao dịch không tín nhiệm mới (block) trên một sổ cái phân tán (Blockchain) Khai thác phục vụ cho hai mục đích:

- Xác minh tính hợp lệ của một giao dịch, hoặc tránh việc chi tiêu đôi;

Trang 31

- Đồng tiền tệ kỹ thuật số mới được tạo ra và thưởng cho thợ đào thực hiện nhiệm vụ trước đó

Khi chúng ta muốn thiết lập một giao dịch, có thể xảy ra các việc sau đây:

- Các giao dịch được nhóm lại thành một khối;

- Người khai thác xác minh rằng các giao dịch trong mỗi khối là hợp lệ;

- Để làm như vậy, thợ đào phải giải quyết một “câu đố toán học” được gọi

là bài toán bằng chứng công việc (PoW);

- Phần thưởng được trao cho thợ đào đầu tiên giải quyết hết từng “câu đố toán học” trong khối;

- Các giao dịch đã được xác minh sẽ được lưu trữ trong Blockchain công khai

Trong Proof of Work, thợ đào sẽ chọn một khối để giải quyết và thêm vào Blockchain, thợ đào phải tìm một giải pháp cho một vấn đề toán học cụ thể

hash(X+2) = hash('test2') = 0x09 = 9 < 10 OK, Solved

Proof of Work đã được sử dụng một cách rộng rãi chủ yếu là do các thuộc tính sau đây của nó:

- Thật khó để tìm một giải pháp cho một vấn đề nào đó

- Khi đưa ra một giải pháp cho vấn đề đó thì thật dễ dàng để xác minh rằng

nó là chính xác

Bất cứ khi nào một khối mới được khai thác, người khai thác khối đó sẽ được thưởng bằng một số tiền (khối thưởng, phí giao dịch) và do đó được

Trang 32

khuyến khích để tiếp tục khai thác Trong Proof of Work, các nút khác xác minh tính hợp lệ của khối bằng cách kiểm tra xem hàm băm của dữ liệu của khối có nhỏ hơn số được đặt trước hay không

Do việc khai thác sẽ tốn nhiều thời gian, công sức tính toán cộng với nguồn năng lượng điện cung cấp lớn nên các thợ đào cũng được khuyến khích không gian lận Việc tấn công mạng sẽ tốn nhiều chi phí vì sẽ phải tốn chi phí cao về phần cứng, năng lượng và tiềm năng lợi nhuận khai thác có thể sẽ bị mất Hình 2.14 minh họa rất rõ cách hệ thống Bitcoin, và bất kỳ đồng tiền điện

tử nào khác sử dụng Proof of Work, ngăn cản hành vi tấn công mạng của các thợ đào:

(1) : Giả sử khi các thợ đào đang tập trung khai thác khối 91

(2): Một hacker muốn thay đổi một giao dịch nào đó ở khối 74

(3): Để điều chỉnh lại một giao dịch, Hacker buộc phải thay đổi và tính toán lại tất cả các khối từ khối 74 đến 90 và tiếp tục công việc khai thác ở khối

91 Tổng cộng phải tiêu tốn một chi phí khá lớn cho việc tính toán của 18 khối (4): Hacker phải hoàn tất việc tính toán lại của 18 khối trước đó trước khi mọi người khai thác xong khối 91 Điều này quá khó và không thể thực hiện được

Trang 33

Hình 2.14 Minh họa khả năng bảo mật của của hệ thống Blockchain [11]

Tất cả các thợ đào đều phải cạnh tranh để là người đầu tiên tìm ra giải pháp cho vấn đề toán học cho các khối được tạo Đây chính là vấn đề không thể giải quyết theo cách nào khác hơn là thông qua sức mạnh của máy tính dùng

để đào coin Vì vậy việc này đòi hỏi sự nỗ lực cũng như đầu tư lớn để có thể cạnh tranh khi đào

Khi một người thợ đào cuối cùng tìm ra được giải pháp đúng đắn, anh ta

sẽ thông báo cho toàn bộ mạng cùng một lúc và nhận được giải thưởng là đồng tiền thuật toán đang đào Từ quan điểm kỹ thuật, quá trình khai thác là một phép băm đảo ngược Nó được xác định bởi một số (nonce) Do đó thuật toán băm

mã hóa của dữ liệu khối cho kết quả theo một ngưỡng nhất định Ngưỡng này

Trang 34

– hay còn được gọi là độ khó, là thứ để quyết định tính cạnh tranh của việc khai thác: càng nhiều sức mạnh tính toán được thêm vào mạng thì thông số này tăng lên tương đương với việc tăng số lượng trung bình các phép tính cần thiết để tạo một khối mới

Phương pháp này cũng làm tăng chi phí của việc tạo ra khối và khiến các thợ đào buộc phải nâng cao hiệu quả của hệ thống khai thác để tiếp tục đào, duy trì sự cân bằng kinh tế một cách tích cực Việc cập nhật thông số sẽ xảy ra khoảng 14 ngày một lần, mỗi khối mới sẽ được tạo ra sau mỗi 10 phút Như vậy, chúng ta cần phải có một lượng lớn sức mạnh tính toán, nhiều hơn sức mạnh mà một máy tính phổ thông sở hữu Điều đó sẽ khiến cộng đồng thợ mỏ gom cụm lại Những thợ mỏ nhỏ lẻ sẽ không cạnh tranh được với thợ mỏ lớn hơn Dẫn đến sự độc quyền khai thác mỏ từ các thợ mỏ lớn Vì với sức mạnh tính toán lớn thì xác suất tìm ra đáp án nhanh và chính xác cao hơn những thợ

mỏ nhỏ lẻ Ví dụ điển hình như trong một cuộc sổ xố, mang tính xác suất, nếu người nào có nhiều vé hơn thì xác suất thắng sẽ cao hơn Tương tự như vậy, trong Proof of Work, nếu thợ đào có khả năng tính toán cao hơn và nguồn năng lượng cung cấp được nhiều hơn thì anh ta có nhiều khả năng thắng hơn (đào ra được khối tiếp theo) Điều này đi ngược lại với lý tưởng của một hệ thống Blockchain phân tán và có thể dẫn đến một cuộc tấn công 51%

Tấn công 51%

Một cuộc tấn công 51% xảy ra khi một thợ mỏ hay một pool đào kiểm soát được 51% sức mạnh tính toán trong mạng lưới Khi đó họ sẽ thao túng toàn bộ giao dịch và gian lận Bằng cách tạo ra những khối giả mạo, họ hủy bỏ hoàn toàn những khối hợp lệ mà cộng đồng khai thác được

Đó là lý do giao thức Proof of Stake (PoS) ra đời, hay còn gọi là giao thức bằng chứng cổ phần Khi một ai đó sở hữu 51% cổ phần nguồn cung của một loại tiền tệ kỹ thuật số cụ thể, dĩ nhiên họ sẽ không tự tấn công loại tiền tệ đó Ngoài ra không ai dám bỏ tài sản ra mua 51% nguồn cung của một đồng tiền,

Trang 35

rất tốn kém Về mặt lý thuyết thì bất kỳ cuộc tấn công nào vào loại tiền tệ kỹ thuật số đó chỉ làm mất giá trị cổ phần mà họ sở hữu

2.2.2.2 Proof of stake (Bằng chứng cổ phần)

Proof of Stake (Bằng chứng Cổ phần – PoS) là một cách khác để xác thực

cơ sở các giao dịch và ngưỡng đạt được sự đồng thuận phân tán PoS thực tế vẫn là một giao thức với mục đích giống như PoW nhưng quá trình để đạt được mục tiêu thì khác hoàn toàn

Proof of Stake xảy ra khi một thợ đào góp cổ phần vào loại tiền tệ kỹ thuật

số cụ thể để xác minh cho khối giao dịch Proof of Stake khá đơn giản cho máy tính vì bạn chỉ cần chứng minh mình sở hữu một tỉ lệ cổ phần của loại tiền tệ

kỹ thuật số Ví dụ nếu bạn sở hữu 5% lưu lượng Ethereum đang tồn tại thì bạn

có quyền khai thác 5% tất cả giao dịch Ethereum

Tất cả các đồng tiền đã được tạo ra từ trước và số lượng của chúng không bao giờ thay đổi Điều này có nghĩa là trong hệ thống PoS không có phần thưởng khối Vì vậy, các thợ đào coin sẽ phải trả lệ phí giao dịch Đây là lý do tại sao những người khai thác hệ thống PoS này được gọi là “Thợ rèn” – Forger chứ không phải là thợ đào – Miner

Proof-of-stake là một hệ thống công bằng hơn proof-of-work khi tất cả mọi người đều có thể trở thành thợ đào Không phân biệt nhỏ hay lớn, quy mô khai thác sẽ tỉ lệ tuyến tính với số lượng cổ phần sở hữu Điều đó khuyến khích cộng đồng tham gia vào việc xác nhận giao dịch, tăng cường tính phân cấp và dân chủ hơn

Trang 36

Hình 2.15 Mô hình tổng quát của Proof of Work và Proof of Stake [12]

2.2.3 Tính toán tin cậy (trusted computing)

Ngày nay, việc sử dụng máy tính để bàn và máy tính xách tay chủ yếu là nền tảng mở, cho phép người dùng tự do chạy các phần mềm với các chức năng: đọc, sửa đổi hoặc xóa dữ liệu, thông tin được lưu trữ trên chương trình Sự tự

do này đã dẫn đến các vấn đề, chẳng hạn như:

- Không an toàn cho người dùng, vì các ứng dụng dễ bị nhiễm vi-rút, sâu

và người dùng có thể vô tình cài đặt phần mềm gián điệp, kẻ tấn công có thể ngăn người dùng sử dụng dịch vụ, phần mềm bị xâm phạm,…

Bằng chứng về công việc là một

yêu cầu để xác định sức mạnh tính

toán

Bằng chứng về cổ phần, người tạo ra khối mới được chọn theo cách xác định tùy thuộc vào tỉ lệ khai thác

Một phần thưởng được trao cho

thợ đào đầu tiên giải quyết từng

vấn đề của khối

Hệ thống PoS không có phần thưởng khối nên các thợ mỏ phải trả phí giao dịch

Trang 37

- Không an toàn cho hệ thống mạng mà máy tính được cài đặt, vì nó có thể nhiễm vi-rút và sâu,… đe dọa các máy khác trên mạng

- Không an toàn cho các nhà cung cấp phần mềm và các nhà cung cấp các nội dung đa phương tiện, vì các nền tảng mở cho phép các chương trình, tệp nhạc, hình ảnh,… được sao chép không giới hạn và không làm giảm chất lượng Trusted Computing [13] là một thuật ngữ rộng đề cập đến các công nghệ

và đề xuất để giải quyết các vấn đề bảo mật máy tính thông qua cải tiến phần cứng và sửa đổi phần mềm liên quan Một số nhà sản xuất phần cứng và nhà cung cấp phần mềm lớn, được gọi chung là Trusted Computing Group, đang hợp tác trong liên doanh này và đã đưa ra các kế hoạch cụ thể Trusted Computing Group phát triển và quảng bá các thông số kỹ thuật để bảo vệ tài nguyên máy tính khỏi các mối đe dọa do các tổ chức độc hại gây ra mà không

vi phạm quyền của người dùng cuối

Microsoft xác định Trusted Computing bằng cách chia nhỏ nó thành bốn công nghệ, tất cả đều yêu cầu sử dụng phần cứng mới hoặc cải tiến ở cấp độ máy tính cá nhân [13]:

Memory curtaining: ngăn chặn các chương trình không thích hợp đọc hoặc ghi vào bộ nhớ

Secure input/output (I/O): giải quyết các mối đe dọa từ phần mềm gián điệp như keyloggers và các chương trình chụp nội dung của màn hình

Sealed storage: cho phép máy tính lưu trữ an toàn các khóa mã hóa và các

Ngày đăng: 20/12/2020, 19:51

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w