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

Blockchain và ứng dụng trong định danh số

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.17 MB, 71 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

LUẬN VĂN TỐT NGHIỆP
Blockchain và ứng dụng trong
định danh số
TRỊNH HỒNG ĐỨC


Chun ngành: Tốn Tin

Giảng viên hướng dẫn: PGS.TS. Nguyễn Đình Hân
Bộ mơn:

Tốn Tin

Viện:

Tốn ứng dụng và Tin học

HÀ NỘI, 01/2022

Chữ kí của GVHD


ĐỀ TÀI LUẬN VĂN

Tên học viên: Trịnh Hoàng Đức
Mã học viên: 20202945M
Tên đề tài: Blockchain và Ứng dụng trong định danh số
Mã đề tài: 2020BTOANTIN-KH09
Hệ : Thạc sĩ khoa học


Ngành: Tốn Tin
Cán bộ hướng dẫn: PGS. TS. Nguyễn Đình Hân
Đơn vị: Viện Toán ứng dụng và Tin học, Trường Đại học Bách khoa
Hà Nội

Chữ kí của GVHD


Blockchain và ứng dụng trong định danh số

LỜI CẢM ƠN
Trong quá trình nghiên cứu đề tài luận văn thạc sĩ: "Blockchain và Ứng dụng
trong định danh số", tác giả đã gặp phải khơng ít khó khăn, vướng mắc. Song,
nhờ có sự giúp đỡ của các thầy cô, tác giả đã hoàn thành được đề tài theo đúng
kế hoạch.
Lời đầu tiên, tác giả xin gửi lời cảm ơn chân thành đến giảng viên hướng dẫn
- PGS.TS Nguyễn Đình Hân đã tận tình hướng dẫn, hỗ trợ và chỉ bảo trong
suốt thời gian tìm hiểu đề tài. Tác giả cũng xin gửi lời cảm ơn tới TS. Vũ Thành
Nam đã cho tác giả những lời khuyên, chia sẻ hữu ích giúp tác giả thực hiện đề tài.
tác giả cũng muốn bày tỏ sự cảm ơn đến thầy cơ của Viện Tốn Ứng dụng
và Tin học, Đại học Bách Khoa Hà Nội đã dìu dắt, dạy bảo trong thời gian tác
giả theo học chương trình thạc sĩ. Nhờ có các thầy cơ, tác giả có được một hành
trang kiến thức vững chắc cho việc nghiên cứu đề tài.
Cuối cùng, do giới hạn kiến thức và khả năng lý luận của bản thân còn nhiều
thiếu sót và hạn chế, kính mong sự chỉ dẫn và đóng góp của các thầy, cơ để luận
văn tốt nghiệp của tác giả được hoàn thiện hơn.
Xin chân thành cảm ơn !

Hà Nội, ngày 9 tháng 1 năm 2022
Học viên thực hiện


Trịnh Hoàng Đức


TÓM TẮT NỘI DUNG LUẬN VĂN

Đề tài: Blockchain và ứng dụng trong định danh số.
Tác giả luận văn: Trịnh Hoàng Đức.

Khóa: 2020B.

Giảng viên hướng dẫn: PGS. TS. Nguyễn Đình Hân.
Từ khoá: Blockchain, Định danh số, Định danh số tự chủ.
Nội dung tóm tắt:
a. Lý do chọn đề tài
Theo dịng lịch sử của công nghệ, Internet được phát triển mạnh mẽ và lan
rộng ra khắp thế giới. Internet được cho là bước phát triển tột bậc giúp mọi
người kết nối với nhau, giúp những người ham học hỏi tiếp xúc với những kiến
thức bổ ích dễ dàng cũng như giảm thiểu chi phí, cải thiện hiệu quả làm việc
cho nhiều hoạt động kinh doanh của con người.
Tuy nhiên, bên cạnh những tác động tích cực thì Internet cũng đem đến nhiều
hệ lụy không mong muốn cho xã hội con người, một trong những hệ lụy đó chính
là vấn đề bảo mật trong định danh số. Định danh số được hiểu là những hoạt
động quản lý và sử dụng danh tính của con người ở thế giới thực vào trong
Internet. Những đối tượng được gọi là hacker đã lợi dụng nhiều kẽ hở của mơi
trường Internet để có thể lừa đảo, chiếm đoạt danh tính của người khác để có
thể lấy tài sản họ hoặc sử dụng danh tính chiếm được để thực hiện những mục
đích phi pháp khác. Vì vậy, ta cần một giải pháp cho hệ thống định danh số
nhằm bảo vệ người dùng trước những cuộc tấn công mạng.
b. Mục tiêu nghiên cứu

Mục tiêu của luận văn này là nghiên cứu về một mơ hình định danh số giúp
đảm bảo an tồn thơng tin hơn cho người dùng Internet. Từ đó, giúp các nhà
phát triển dịch vụ trên Internet có thêm một lựa chọn cho hệ thống của họ mà


Blockchain và ứng dụng trong định danh số

ở đó có thể vừa có tính bảo mật mạnh mẽ lại tiết kiệm chi phí xây dựng, phát
triển và bảo trì hệ thống.
c. Phương pháp nghiên cứu
Ở đây, tác giả lựa chọn công nghệ Blockchain làm trọng tâm của hướng nghiên
cứu bởi tính phi tập trung dữ liệu ở Blockchain sẽ là chìa khóa để giải quyết
vấn đề nhức nhối của các kho dữ liệu tập trung. Bên cạnh đó, tác giả cũng
quan tâm đến những tiêu chuẩn đánh giá hệ thống định danh số làm cơ sở để
nhìn nhận tính hiệu quả ở hệ thống định danh số dựa trên công nghệ Blockchain.
d. Bố cục luận văn
Luận văn này được tác giả chia làm ba chương. Nôi dung khái quát của các
chương bao gồm:
• Chương 1: Cơ sở lý thuyết

Tác giả trình bày khái niệm cơ bản về Blockchain, bối cảnh lịch sử ra đời
của Blockchain, các nền móng xây dựng nên Blockchain như mật mã học,
lý thuyết trò chơi và khoa học máy tính. Tiếp đó, tác giả trình bày về các
khía niệm trong định danh số, mơ hình truyền thống nói chung đang được
sử dụng cũng như các tiêu chuẩn bảo mật để đánh giá một hệ thống định
danh số như thế nào là tốt.
• Chương 2: Mơ hình định danh số tự chủ

Xa hơn mơ hình định danh số thơng thường, ở chương này tác giả sẽ trình
bày về mơ hình định danh số tự chủ - tên gọi của những mơ hình định danh

mà ở đó người dùng là tác nhân duy nhất nắm giữ và quản lý danh tính
của chính họ: thể hiện ở cả những thông tin cơ bản chứ không chỉ tài khoản
và mật khẩu như ta biết thông thường. Ở cuối chương hai, tác giả sẽ đưa
ra so sánh giữa mơ hình định danh tự chủ so với mơ hình định danh truyền
thống.
• Chương 3: Mô phỏng và thử nghiệm hệ thống định danh số

Tác giả sẽ giới thiệu về công cụ sẽ sử dụng, đó là Hyperledger-Indy. HyperledgerIndy là một nền tảng định danh số do Hyperledger phát triển. Tiếp theo


Blockchain và ứng dụng trong định danh số

đó, tác giả sẽ hướng dẫn sử dụng công cụ Indy trong các hoạt động khiến
máy tính trở thành một phần của hệ thống blockchain nói chung hay sử
dụng như một sản phẩm trong một hệ thống định danh số nói riêng. Ở cuối
chương ba, tác giả sẽ tiến hành cài đặt và thử nghiệm một hệ thống giả lập
dựa trên kiến trúc của Indy để hiểu rõ hơn về cơ chế hoạt động của hệ thống
này.
e. Kết quả đạt được
Trong luận văn "Blockchain và ứng dụng trong định danh số", tác giả trình
bày cơ sở kiến thức về blockchain, hệ thống định số truyền thống, hệ thống định
danh tự chủ rồi từ đó mơ phỏng xây dựng một hệ thống định danh tự chủ nhằm
thử nghiệm kết quả. Kết quả thử nghiệm cho thấy mơ hình hồn tồn khả thi và
có thể triển khai được trong thực tế. Trong luận văn này, tác giả đã giải quyêt
được các vấn đề sau:
• Giới thiệu về blockchain và các nền móng xây dựng nên blockchain gồm mật

mã học, lý thuyết trò chơi và kiến trúc máy tính.
• Trình bày mơ hình định danh truyền thống và chỉ ra những nhược điểm làm


mơ hình này có tính bảo mật kém.
• Tìm hiểu mơ hình định danh tự chủ dựa trên công nghệ blockchain và làm

rõ tác dụng trong của mơ hình trong việc khắc phục những tồn tại ở hệ
thống định danh truyền thống.
• Mơ phỏng lại hệ định danh tự chủ dựa trên nền tảng Hyperledger-Indy và

thử nghiệm.


Mục lục

1 Cơ sở lý thuyết

1

1.1

Blockchain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.2

Định danh số . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

2 Mơ hình định danh số tự chủ


23

2.1

Hệ thống định danh số tự chủ là gì? . . . . . . . . . . . . . . . . .

23

2.2

Kiến trúc chung . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

2.3

Tương tác giữa các thành phần chính . . . . . . . . . . . . . . . .

28

2.4

Các ưu điểm của hệ thống định đanh tự chủ . . . . . . . . . . . .

31

3 Mô phỏng và thử nghiệm hệ thống định danh số

34


3.1

Nền tảng và công cụ sử dụng . . . . . . . . . . . . . . . . . . . . .

34

3.2

Cài đặt Indy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

3.3

Kịch bản thử nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . .

39

3.4

Kết quả . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

TÀI LIỆU THAM KHẢO

58


Danh sách hình vẽ


1.1

Giao dịch qua một bên thứ ba . . . . . . . . . . . . . . . . . . . . . .

2

1.2

Giao dịch ngang hàng . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.3

Giao dịch cổ phiếu qua một bên thứ ba . . . . . . . . . . . . . . . . .

2

1.4

Giao dịch ngang hàng . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.5

Kiến trúc Blockchain . . . . . . . . . . . . . . . . . . . . . . . . . . .

3


1.6

Khởi tạo ban đầu . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.7

Giao dịch thứ nhất . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.8

Giao dịch thứ hai . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

1.9

Hệ thống tập trung . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

1.10 Hệ thống phi tập trung . . . . . . . . . . . . . . . . . . . . . . . . . .

6

1.11 Hệ thống phi tập trung kết nối tất cả các node . . . . . . . . . . . . .


7

1.12 Nền tảng Blockchain . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

1.13 Hàm băm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

1.14 Các tướng quân Byzantine . . . . . . . . . . . . . . . . . . . . . . . .

11

1.15 Con trỏ băm cho một block . . . . . . . . . . . . . . . . . . . . . . . .

12

1.16 Cách thức lưu trữ giá trị băm trong Blockchain . . . . . . . . . . . . .

13

1.17 Phát hiện lỗi khi một block bị tấn công . . . . . . . . . . . . . . . . .

13

1.18 Cây Merkle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14


1.19 Blockchain cấu trúc Cây Merkle . . . . . . . . . . . . . . . . . . . . .

14

1.20 Mơ hình định danh số . . . . . . . . . . . . . . . . . . . . . . . . . .

17

1.21 Mô hình định danh số đơn giản . . . . . . . . . . . . . . . . . . . . .

18

1.22 Mơ hình định danh số liên kết . . . . . . . . . . . . . . . . . . . . . .

19

2.1

Kiến trúc chung của một hệ định danh số tự chủ dựa trên blockchain .

28

2.2

Quản lý trong trường hợp xin việc . . . . . . . . . . . . . . . . . . . .

29

2.3


Tương quan giữa Issuer và User . . . . . . . . . . . . . . . . . . . . .

30


Blockchain và ứng dụng trong định danh số

2.4

Tương quan giữa Issuer và User . . . . . . . . . . . . . . . . . . . . .

31

3.1

Cơ chế xử lý đồng thuận RBFT . . . . . . . . . . . . . . . . . . . . .

36

3.2

Cơ chế vận hành RBFT trong Indy . . . . . . . . . . . . . . . . . . .

37

3.3

Tương tác giữa các thực thể. . . . . . . . . . . . . . . . . . . . . . . .


40

3.4

Trang thông tin của Alice lúc khởi tạo . . . . . . . . . . . . . . . . . .

44

3.5

Thông tin khởi tạo các Node . . . . . . . . . . . . . . . . . . . . . . .

45

3.6

Mẫu đăng ký chứng chỉ . . . . . . . . . . . . . . . . . . . . . . . . . .

47

3.7

Giao diện quản lý của đại học Faber . . . . . . . . . . . . . . . . . . .

48

3.8

Faber gửi yêu cầu kết nối đến Alice . . . . . . . . . . . . . . . . . . .


48

3.9

Thư yêu cầu được kết nối với Alice gửi từ Faber . . . . . . . . . . . .

49

3.10 Alice kết nối thành công với Faber . . . . . . . . . . . . . . . . . . . .

49

3.11 Faber cấp chứng chỉ học thuật cho Alice . . . . . . . . . . . . . . . . .

50

3.12 Alice kiểm tra hòm thư xác nhận từ Faber . . . . . . . . . . . . . . .

51

3.13 Alice gửi yêu cầu kết nối đến ACME . . . . . . . . . . . . . . . . . . .

51

3.14 Tập đoàn ACME chấp nhận yêu cầu kết nối từ Alice . . . . . . . . . .

52

3.15 Tập đoàn ACME sao chép mẫu yêu cầu xem chứng chỉ từ đại học Faber 52
3.16 ACME gửi yêu cầu xem chứng chỉ của Alice . . . . . . . . . . . . . . .


53

3.17 Alice cho phép tập đoàn ACME xem chứng chỉ . . . . . . . . . . . . .

54

3.18 ACME đã có thể xem chứng chỉ học thuật của Alice . . . . . . . . . .

55


Danh sách bảng

2.1

Ưu điểm của hệ định danh tự chủ so với hệ định danh truyền thống . .

33

3.1

Yêu cầu phần cứng cho một Node tham gia Hyperledger-Indy . . . . .

38

3.2

Yêu cầu phần cứng cho môi trường thử nghiệm . . . . . . . . . . . . .


39

3.3

Đặc tả chức năng của hệ thống . . . . . . . . . . . . . . . . . . . . . .

41


Blockchain và ứng dụng trong định danh số

Danh mục các từ viết tắt
STT

Từ viết tắt

Từ gốc

Ý nghĩa

1

CSP

Credential service provider

Nhà cung cấp dịch vụ xác thực

2


RP

Relying Party

Bên thứ ba

3

IdP

Identity Manager

Bên quản lý danh tính

4

IAL

Identity Assurance Level

Cấp độ đảm bảo danh tính

5

AAL

Authentication Assurance Level

Cấp độ đảm bảo xác thực


6

FAL

Federation Assurance Level

Cấp độ đảm bảo liên kết

7

RA

Registration Authority

Cơ quan tiếp nhận và xác minh danh
tính số cho thực thể
Cơ quan quản lý danh tính cho các mục
8

IM

Identity Manager
đích sử dụng dịch vụ của hệ thống

9

MFA

10


SAML

Multi-factor Authentication

Xác thực nhiều yếu tố

Security Assertion Markup Lan-

Chuẩn mở cho phép xác thực không cần

guage

đăng ký
Một dạng chuẩn dữ liệu giao tiếp trên

11

JSON

JavaScript Object Notation
internet đựa trên JavaScript
Redundant Byzantine Fault Tol-

12

RBFT

Thuật toán xử lý cơ chế đồng thuận
erance



CHƯƠNG 1. Cơ sở lý thuyết

Trong chương một này, tác giả sẽ giới thiệu về blockchain và các mơ hình định
danh số truyền thống. Ở mục 1.1 về blockchain, tác giả trình bày về bối cảnh
ra đời, khái niệm và cơ sở xây dựng nên blockchain. Tiếp nối đó ở mục 1.2, tác
giả sẽ giới thiệu về hệ thống định danh số bao gồm khái niệm, mơ hình, cách
thức hoạt động cũng như các tiêu chuẩn được sử dụng để đánh giá tính bảo mật
của một hệ thống định danh. Các hình vẽ được sử dụng trong chương một được
tham khảo từ các tài liệu [1] và [2], các khái niệm được trích dẫn từ tài liệu [1],
[2] và [3].

1.1

Blockchain

1.1.1. Blockchain là gì?
Blockchain ra đời trong bối cảnh các giao dịch tiền tệ trên môi trường Internet
phải thông qua một bên thứ ba đáng tin cậy, thường là các ngân hàng, quỹ tiền
tệ. Vì thế, blockchain sẽ được hiểu rõ ràng hơn nếu ta đứng trên cả khía cạnh kĩ
thuật lẫn tiền tệ.
Ví dụ 1.1. Alice chuyển khoản cho Bob 10$.
Ở hình 1.1, Alice chuyển cho Bob thơng qua ngân hàng. Với công nghệ
blockchain, Alice sẽ chuyển trực tiếp khoản tiền này cho Bob ở hình 1.2.
Với các giao dịch nhỏ thì có thể thực hiện ngay, nhưng với các giao dịch mang
tính quan trọng hơn như cổ phiếu (hình 1.3) thì thời gian sẽ lâu hơn nhiều.
Chẳng hạn như khi mua cổ phiếu của một cơng ty nào đó hay thực hiện một
cuộc giao dịch quốc tế. Thời gian thực hiện có thể đến vài ngày, vài tuần hoặc có
thể vài tháng. Vì vậy, blockchain hướng đến một hệ thống có thể giao đổi thơng
tin ngang hàng với một thống nhiều tác nhân phức tạp hơn (hình 1.4).


1


Blockchain và ứng dụng trong định danh số

Hình 1.1:

Giao dịch qua một bên thứ ba

Hình 1.2:

Hình 1.3:

Giao dịch ngang hàng

Giao dịch cổ phiếu qua một bên thứ ba

2


Blockchain và ứng dụng trong định danh số

Hình 1.4:

Giao dịch ngang hàng

Như vậy, từ góc nhìn chức năng, ta biết Blockchain là hệ thống các cuốn sổ
cái ghi lại các giao dịch mà không cần bên thứ ba làm tin. Bây giờ, ta sẽ tìm
hiểu dưới góc nhìn kĩ thuật: Tại sao lại có tên là Blockchain?

Qua hình 1.2 và 1.4, ta đã hình dung được cách thức làm việc của Blockchain.
Một hệ thống Blockchain sẽ có nhiều bên tham gia, mỗi bên (node) làm việc
như một cuốn sổ cái. Mỗi node lại gồm nhiều khối (Block) liên kết với nhau
thành một chuỗi (chain), mỗi block dùng để ghi các giao dịch.

Hình 1.5:

Kiến trúc Blockchain

Nhìn vào hình 1.5, ta có thể thấy mỗi block sẽ gồm hai phần chính: header
và Body.

3


Blockchain và ứng dụng trong định danh số

• Trừ block được khởi tạo ban đầu (Genesis Block) có header trỏ đến Null

ra, các block khác đều có header chứa link trỏ đến block phía trước nó.
• Body trong mỗi block sẽ chứa thông tin về các giao dịch được xác thực,

lượng giá trị giao dịch, địa chỉ các bên liên quan và một số thơng tin chia tiết hơn.

Ví dụ 1.2. Hệ thống Blockchain gồm bốn bên: Alice, Bob, Charlie, Dave.
Bước 1: Alice có $50. Điều này sẽ được ghi lại vào trong mỗi node thuộc cả
4 bên (hình 1.6)

Hình 1.6:


Khởi tạo ban đầu

Bước 2: Alice làm giao dịch trả cho Bob $20. (hình 1.7)

Hình 1.7:

Giao dịch thứ nhất

Bước 3: Bob làm giao dịch gửi cho Charlie $10. (hình 1.8)

4


Blockchain và ứng dụng trong định danh số

Hình 1.8:

Giao dịch thứ hai

Điều chú ý ở đây là các dữ liệu trong giao dịch được ghi lại thuộc dạng không
thể sửa chữa. Nếu như một người muốn mạo danh ai trong 4 cá nhân này, họ
phải đồng thời thay đổi thông tin trong cả 4 bên đang lưu trữ. Câu chuyện sẽ
trở nên khó khăn hơn nhiều với số lượng các bên tham gia được tăng lên.
Về mặt ý tưởng, ta nhận thấy sự khác biệt cơ bản giữa hệ thống blockchain
với các hệ thống hiện nay chính là việc blockchain là hệ thống phi tập trung còn
các hệ thống trước đó là hệ thống tập trung.
Định nghĩa 1.1. Hệ thống tập trung là hệ thống được thiết kế sao cho ln
có một node chung tập nhằm phân bổ dữ liệu, tác vụ cho các node con xử lí.
(hình 1.9)
Hệ thống tập trung dễ thiết kế, bảo trì, quản lí nhưng lại chịu nhiều hạn chế:

• Nếu node trung tâm bị trục trặc, hệ thống sẽ dừng hoạt động.
• Dễ bị tấn công.

Định nghĩa 1.2. Hệ thống phi tập trung là hệ thống được thiết kế sao cho
tất cả các node đều có quyền hạn như nhau. Hệ thống này sẽ khó để thiết kế,
bảo trì, quản lí nhưng lại bỏ qua được được các hạn chế của Hệ thống tập trung
(hình 1.10 và hình 1.11)
Hệ thống phi tập trung có tính chất:
• Khơng có node trung tâm nên dễ dàng mở rộng hệ thống.
• Các node đều ngang hàng nhau. Vì thế hacker cần tấn cơng vào tất cả các

node để lấy dữ liệu.
5


Blockchain và ứng dụng trong định danh số

Hình 1.9:

Hình 1.10:

Hệ thống tập trung

Hệ thống phi tập trung

6


Blockchain và ứng dụng trong định danh số


Hình 1.11:

Hệ thống phi tập trung kết nối tất cả các node

Để phân biệt hệ thống là tập trung hay phi tập trung, ta có ba hướng để nhìn
nhận:
• Xem xét số lượng máy tính vật lý. Sẽ có bao nhiêu máy tính gặp vấn đề sẽ

làm hệ thống bị sụp đổ?
• Xem xét hệ thống bị kiểm soát bởi cá nhân nào, tổ chức nào và mục đích

của hệ thống có phải quản lí gì khơng? Nếu hệ thống đúng là bị kiểm sốt
bởi những điều này thì đây chính là hệ thống phân tán tập trung.
• Chia đơi hệ thống làm hai phần. Cho mỗi bên hoạt động không liên quan

đến bên cịn lại. Nếu hệ thống vẫn hoạt động bình thường thì đây là hệ
thống phân tán tập trung.

1.1.2. Nền tảng xây dựng Blockchain
Blockchain không chỉ là một công nghệ, nó chủ yếu được kết hợp với các chức
năng kinh doanh và các trường hợp sử dụng. Trong việc triển khai tiền điện
tử, nó cũng được đan xen với các nguyên tắc kinh tế. Trong phần này, chúng
ta sẽ tập trung chủ yếu vào các khía cạnh kỹ thuật của nó. Về mặt kỹ thuật,
Blockchain là sự kết hợp tuyệt vời của các khái niệm từ mật mã, Lý thuyết trị
chơi và kỹ thuật khoa học máy tính, như thể hiện trong hình 1.12.
Như đã đề cập ở phần 1.1.1, các hệ tập trung xử lý các giao dịch bằng một
bên trung gian tin cậy. Tuy nhiên, ta cũng biết rằng bên trung gian này có nhiều
7



Blockchain và ứng dụng trong định danh số

Hình 1.12:

Nền tảng Blockchain

vấn đề về bảo mật. Blockchain xử lí vấn đề này thơng qua cách sử dụng mật mã,
Lý thuyết trị chơi và khái niệm khoa học máy tính.
• Mật mã học: Bất kể trường hợp sử dụng, các giao dịch được bảo mật bằng

mật mã. Sử dụng mật mã, có thể đảm bảo rằng một người dùng hợp lệ đang
bắt đầu giao dịch và khơng ai có thể giả mạo một giao dịch gian lận. Điều
này có nghĩa, về mặt mật mã, có thể đảm bảo rằng người A khơng có cách
nào có thể thực hiện giao dịch thay cho người B bằng cách giả mạo chữ ký
của mình. Bây giờ, điều gì sẽ xảy ra nếu một node hoặc người dùng cố gắng
thực hiện một cuộc tấn công chi tiêu kép (chẳng hạn: một người chỉ có mười
đơ la và cố gắng trả giống nhau cho nhiều người)? Để xử lí tình huống này,
ta cần đến khoa học máy tính.
• Khoa học máy tính: Mọi node phải nhận thức được các giao dịch. Tức là

thống nhất để cập nhật lại cơ sở dữ liệu cho giống nhau. Câu hỏi đặt ra tiếp
theo là làm sao các node có thể thống nhất được về trạng thái của cơ sở dữ
liệu dù cho mỗi node có lưu trữ một cở sở dữ liệu. Đến đây, ta lại cần đến
Lý thuyết trò chơi.
• Lý thuyết trị chơi: Lý thuyết trị chơi cung cấp một cách tiếp cận hoàn toàn

khác nhau để xác định cách một hệ thống sẽ hoạt động. Các kỹ thuật trong
Lý thuyết trò chơi được cho là những kỹ thuật tinh vi và thực tế nhất. Họ
8



Blockchain và ứng dụng trong định danh số

tin rằng những node tham gia hành động theo lợi thế họ có được, khơng
phải bởi bất cứ giá trị gì. Mục đích duy nhất của Lý thuyết trò chơi trong
Blockchain là đảm bảo hệ thống ổn định với sự đồng thuận giữa những bên
tham gia.

Có nhiều loại vấn đề và tình huống kinh doanh khác nhau với mức độ phức
tạp khác nhau. Vì vậy, các giao thức đồng thuận lý thuyết cơ bản về tiền điện
tử và trị chơi có thể khác nhau trong các trường hợp sử dụng khác nhau. Tuy
nhiên, nguyên tắc chung của việc duy trì nhật ký hoặc cơ sở dữ liệu nhất quán
của các giao dịch được xác minh là như nhau. Mặc dù các khái niệm về mật mã
và Lý thuyết trò chơi đã xuất hiện từ khá lâu, nhưng đây là phần khoa học máy
tính gắn kết các bit và mảnh này lại với nhau thông qua cấu trúc dữ liệu và
kỹ thuật giao tiếp mạng ngang hàng. Rõ ràng, đó là kỹ thuật phần mềm thông
minh của YouTube, rất cần thiết để nhận ra bất kỳ khái niệm logic hoặc toán
học nào trong thế giới kỹ thuật số. Sau đó, các kỹ thuật khoa học máy tính kết
hợp các khái niệm Lý thuyết trị chơi và mật mã vào một ứng dụng, cho phép
tính toán phân tán và phân tán giữa các node với cấu trúc dữ liệu và các thành
phần truyền thông mạng.
1.1.2.1. Nền tảng mật mã trong Blockchain - Hàm băm
Hàm băm là hàm mã hóa tốn học quan trọng và là một phần không thể thiếu
trong cấu trúc dữ liệu Blockchain. Chúng được sử dụng rộng rãi trong nhiều giao
thức mật mã, ứng dụng bảo mật thông tin như Chữ ký số và Mã xác thực tin
nhắn. Vì nó được sử dụng trong Mã hóa cơng khai, ta sẽ tìm hiểu về nó trước.
Hàm băm mật mã là hàm chuyển đổi dữ liệu đầu vào có độ dài tùy ý và tạo
ra đầu ra có độ dài cố định. Kết quả thường được gọi là "giá trị băm".
Để một hàm băm hoạt động tốt thì cần đảm bảo các yêu cầu sau:
• Đầu vào có thể có kích cỡ tùy ý, tuy nhiên đâu ra phải có kích cỡ cố định.

• Hàm băm nhận đầu vào là bất cứ thông điệp nào.
• Hàm băm phải mang tính quyết định, theo nghĩa cùng một đầu vào khi qua

cùng một Hàm băm thì phải cho giá trị giống nhau.
9


Blockchain và ứng dụng trong định danh số

Hình 1.13:

Hàm băm

• Không thể (mặc dù không phải là không thể!) tạo thơng điệp từ giá trị băm

của nó, ngoại trừ việc thử tất cả các thơng điệp có thể.
• Bất kỳ thay đổi nhỏ nào ở đầu vào sẽ ảnh hưởng lớn đến giá trị Hàm băm,

vì vậy khơng thể tương quan giá trị băm mới với giá trị băm cũ sau một
thay đổi nhỏ.
• Giá trị đầu vào khác nhau cho ra giá trị đầu ra khác nhau

X → H(X)
H(X) = H(Y ), (X = Y )
Y → H(Y ) 

1.1.2.2. Nền tàng lý thuyết trò chơi - Cơ chế đồng thuận
Lý thuyết trò chơi hiện đang được sử dụng nhiều trong thực tế để giải quyết các
vấn đề phức tạp. Nó được sử dụng trong Bitcoin và nhiều giải pháp Blockchain
khác. Nó được chính thức giới thiệu bởi John von Neumann để nghiên cứu các

quyết định kinh tế. Sau đó, nó đã được phổ biến hơn bởi John Forbes Nash Jr
vì lý thuyết của ơng về Cân bằng Nash, mà chúng ta sẽ xem xét ngay sau đây.
Trước tiên chúng ta hãy hiểu Lý thuyết trị chơi là gì?
Lý thuyết trò chơi là một lý thuyết về các trò chơi, trong đó các trị chơi
khơng chỉ là những gì trẻ em chơi. Hầu hết là các tình huống trong đó hai hoặc
nhiều bên tham gia với một số hành vi chiến lược. Hơn thế nữa, hầu hết các tình
huống trong thực tế là trò chơi. Chẳng hạn: Giả sử bạn đã nộp đơn xin việc về
Blockchain và bạn được chọn và đưa ra lời đề nghị công việc với một mức tiền
lương, nhưng bạn từ chối lời đề nghị vì nghĩ họ sẽ điều chỉnh lại lời đề nghị với
một mức lương cao hơn. Vì vậy, một trị chơi có thể được hiểu là một tình huống
10


Blockchain và ứng dụng trong định danh số

liên quan đến sự lựa chọn hợp lý của một người trong mối quan hệ với người
khác. Nhìn từ góc độ khác, ngay cả khi lợi ích của một người bị tác động bởi
hành động của người khác, thì người đó đang ở trong một trò chơi. Vậy rốt cuộc
Lý thuyết trò chơi là gì?
Định nghĩa 1.3. Lý thuyết trị chơi là phương pháp mơ hình hóa các tình
huống thực tế dưới dạng trị chơi và phân tích chiến lược hay động thái tốt nhất
của một người hoặc một thực thể có thể trong một tình huống nhất định cho kết
quả mong muốn.

Thuở xưa kia, quân đội Byzantine có năm đội quân dẫn dắt bởi năm vị tướng
khác nhau thực hiện chiến dịch tấn cơng một thành trì. Cơ hội chiến thắng duy
nhất là khi tất cả các tướng cùng nhau tấn công thành phố. Tuy nhiên, vấn đề
là làm thế nào để đạt được sự đồng thuận. Điều này nghĩa là tất cả các tướng
nên tấn công hoặc tất cả bọn họ nên rút lui. Nếu một số trong số họ tấn cơng
và số cịn lại rút lui thì họ sẽ thua trận. (Minh họa trong hình 1.14 )

Định nghĩa 1.4. Bài toán các tướng quân Byzantine là bài toán xử lý việc đồng
thuận giữa các node trên mạng của một hệ thống.

Hình 1.14:

Các tướng quân Byzantine

11


Blockchain và ứng dụng trong định danh số

Bài toán các tướng qn Byzantine là bài tốn kinh điển và mơ hình hóa được
nhiều vấn đề trong thực tế. Trong Blockchain cũng vậy, vấn đề của Blockchain
chính là việc làm sao các node có thể đồng thuận về một trạng thái chung của
cơ sở dữ liệu. Tuy nhiên, trong khuôn khổ báo cáo này sẽ khơng trình bày chi
tiết để tránh nội dung bị phân tán quá nhiều.
1.1.2.3. Khoa học máy tính - Cấu trúc dữ liệu
Như chúng ta đã biết, Blockchain là một chuỗi các block liên kết với nhau.
Khi chúng ta nói một block, nó có nghĩa là một giao dịch đơn lẻ hoặc nhiều giao
dịch được ghép lại với nhau. Chúng ta sẽ bắt đầu cuộc thảo luận của chúng ta
với các con trỏ băm, đó là khối xây dựng cơ bản của cấu trúc dữ liệu Blockchain.
Con trỏ băm là Hàm băm mật mã trỏ đến một khối dữ liệu. Không giống như
cấu trúc linked list cho phép truy cập đến khối tiếp theo, các con trỏ băm trỏ
đến khối dữ liệu trước đó và cung cấp một cách để xác minh rằng dữ liệu không
bị giả mạo.

Hình 1.15:

Con trỏ băm cho một block


Mục đích của con trỏ băm là xây dựng một Blockchain chống giả mạo. Cách
thức hoạt động là giá trị băm của khối trước được lưu trữ trong header khối hiện
tại và giá trị băm của khối hiện tại với tiêu đề khối của nó sẽ được lưu trữ trong
header khối tiếp theo.
Với thiết kế như vậy trong đó các khối được liên kết lại, mơ hình sẽ khơng
12


Blockchain và ứng dụng trong định danh số

Hình 1.16:

Cách thức lưu trữ giá trị băm trong Blockchain

cho phép ai đó thay đổi dữ liệu trong bất kỳ block nào. Ta nhớ lại tính chất của
Hàm băm, khi đầu vào bị thay đổi nhỏ sẽ cho ra giá trị băm khác xa so với giá
trị gốc. Vì vậy chúng ta hiểu rằng giá trị băm sẽ không khớp nếu dữ liệu bị thay
đổi.

Hình 1.17:

Phát hiện lỗi khi một block bị tấn cơng

Cấu trúc trong Blockchain: kích thước block, dữ liệu, header, số lượng các
giao dịch trong một khối ... được ta quyết định khi xây dựng Blockchain. Với các
Blockchain sẵn có như Bitcoin, Ethereum, Hyperledger thì cấu trúc đã được xây
dựng sẵn. Khi xây dựng ứng dụng trên các Blockchain sẵn có này thì ta khơng
cần bỏ cơng sức trong thiết kế cấu trúc nữa.
Trong bitcoin và các loại tiền mã hóa khác, Cây Merkle phục vụ để mã hóa

dữ liệu Blockchain hiệu quả và an toàn hơn. Cây Merkle trong Blockchain được
sử dụng như hình 1.18 và hình 1.19. Kí hiệu sử dụng (trong hình 1.18) HX là
Hàm băm với thơng điệp X.

Nhìn như hình 1.19, số giao dịch được ghi trong một khối là 4 và ở block 1
đang chưa 4 giao dịch lần lượt là A, B, C, D. Để mã hóa cả 4 giao dịch thành
13


Blockchain và ứng dụng trong định danh số

Hình 1.18:

Hình 1.19:

Cây Merkle

Blockchain cấu trúc Cây Merkle

14


×