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

Nghiên cứu phát triển cơ chế đồng thuận cho các hệ thống phi tập trung

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 (1.29 MB, 71 trang )

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

LUẬN VĂN THẠC SĨ
Nghiên cứu phát triển cơ chế đồng thuận cho
các hệ thống phi tập trung
HỒNG MINH TRỊ


Ngành Khoa học máy tính

Giảng viên hướng dẫn:

TS. Đào Thành Chung

Viện:

Công nghệ thông tin và truyền thông

Chữ ký của GVHD

Hà Nội, 4/2021
1


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc

BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ
Họ và tên tác giả luận văn : Hoàng Minh Trị
Đề tài luận văn: Nghiên cứu phát triển cơ chế đồng thuận cho các hệ thống
phi tập trung


Chuyên ngành: Khoa học dữ liệu
Mã số SV: CB180058
Tác giả, Người hướng dẫn khoa học và Hội đồng chấm luận văn xác nhận
tác giả đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng ngày 24/04/2021
với các nội dung sau:
STT Yêu cầu của hội đồng
Nội dung đã chỉnh sửa, bổ sung
1
Chỉnh sửa lại cách trình bày các Đã thay đổi lại cách bố trí thuật tốn
thuật tốn của Event-link trong phần sao cho hợp lý hơn, thuật toán trình bày
3.3.3
từ tổng quát đến chi tiết.
2
Viết phần 5.1 kết luận cụ thể hơn, Đã chỉnh sửa lại phần 5.1, gồm 3 phần
tóm tắt lại tồn bộ luận văn của mình đặt vấn đề, đề xuất và kết quả.
3
Ưu nhược của những nghiên cứu Đã bổ sung vào các bảng trong phần
liên quan
2.2 và 2.3
4
Giải thích khả năng chịu lỗi Đã bổ sung thêm vào phần 2.1.9 và
Byzantine
3.3.4 và 4.2.4
Giáo viên hướng dẫn

Ngày tháng năm
Tác giả luận văn

TS. Đào Thành Chung


Hoàng Minh Trị
CHỦ TỊCH HỘI ĐỒNG

TS. Nguyễn Kiêm Hiếu

2


ĐỀ TÀI LUẬN VĂN

Mã đề tài: 2018BKHDL-KH06
Theo QĐ số 1702 /QĐ-ĐHBK-ĐT-SĐH do Hiệu trưởng Trường Đại Học Bách
Khoa Hà Nội ký ngày 16 tháng 10 năm 2019
1. Họ và tên học viên: Hoàng Minh Trị

SHHV: CB180058

2. Chuyên ngành: Khoa học máy tính

Lớp: 18BKHDL.KH

3. Người hướng dẫn: TS. Đào Thành Chung
4. Đơn vị: Viện Công nghệ Thông tin - Truyền thông, Trường Đại Học Bách Khoa
Hà Nội.
5. Tên đề tài (tiếng Việt): Nghiên cứu phát triển cơ chế đồng thuận cho các hệ
thống phi tập trung
6. Tên đề tài (tiếng Anh): Research and develop consensus mechanism for
decentralized system

Giảng viên hướng dẫn


TS. Đào Thành Chung

3


Lời cảm ơn
Trong suốt q trình nghiên cứu và hồn thiện luận văn thạc sĩ, tôi đã rất vinh dự và
xúc động nhận được nhiều sự giúp đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình từ thầy cơ, gia
đình và bạn bè.
Lời đầu tiên tơi xin gửi lời tri ân và cảm ơn sâu sắc đến TS. Đào Thành Chung, giảng
viên Bộ môn Hệ Thống Thông Tin – viện Công nghệ thông tin và Truyền thông, trường
Đại học Bách Khoa Hà Nội, người đã tận tình hướng dẫn, chỉ bảo, động viên, khích lệ tơi
trong suốt q trình nghiên cứu, thực hiện đề tài. Đặc biệt, tôi xin gửi lời cảm ơn sâu sắc
tới các thành viên trong BKC Lab đã động viên, tạo một môi trường thuật lợi giúp tơi có
thể hồn thành luận văn một cách tốt nhất.
Cuối cùng, tôi xin chân thành cảm ơn gia đình và bạn bè, đã ln tạo điều kiện, quan
tâm, giúp đỡ, động viên tơi trong suốt q trình học tập và hồn thành khố luận tốt nghiệp
thạc sĩ.

4


Tóm tắt nội dung luận văn
Hiện nay nhu cầu sử dụng hệ thống vạn vật kết nối Internet – Internet of Things (IoT) ngày
một tăng mạnh trong các nhà máy sản xuất, bệnh viện, nhà thơng minh,… Cùng với đó,
tiềm năng mà công nghệ chuối khối mang lại cho IoT đang được quan tâm rất nhiều trong
những năm gần đây. Vì vậy trong luận văn này, tơi đề xuất một cơ chế đồng thuận cho
mạng chuỗi khối áp dụng cho IoT, gọi là Event-link. Tôi sử dụng Vector Clock – một thuật
tốn gán nhãn trình tự các tiến trình bằng vector – cho đồ thị tri thức (knowlegde graph)

triển khai trên tất cả các nút của mạng chuỗi khối. Từ đồ thị tri thức này, mỗi nút có thể
suy luận ra trạng thái của các sự kiện trên các nút khác. Event-link có khả năng triển khai
được trên chuỗi phụ (Sidechain) của một mang chuỗi khối áp dụng cho hệ thống IoT. Nhờ
vào khả năng thu thập thông tin sự kiện nhanh của cơ chế Event-link, số lượng giao dịch
được xác nhận tại Sidechain tăng lên đáng kể so với các cơ chế đồng thuận đang phổ biến
hiện có. Ngồi ra, cơ chế đề xuất có khả năng ngăn chặn các lỗi Byzantine giúp nâng cao
an ninh cho hệ thống. Kết quả thử nghiệm cho thấy cơ chế đồng thuận đề xuất có khả năng
xử lý khối lượng giao dịch lớn hơn các cơ chế: Proof of Work (PoW), Proof of Escape
Time (PoET), Practical Byzantine Fault Tolerant (PBFT) và Raft tương ứng lên tới 129,
64, 28 và 5.2 lần.
Cụ thể, luận văn thực hiện những cơng việc sau:
1. Tìm hiểu hệ thống phi tập trung, IoT, công nghệ chuỗi khối, cơng nghệ sidechain,
cơ chế đồng thuận, thuật tốn vector-clock, giao thức gossip.
2. Những nghiên cứu công việc liên quan về IoT sử dụng công nghệ chuỗi khối, và các
cơ chế đồng thuận được sử dụng trong hệ thống phi tập trung.
3. Thiết kế hệ thống và cơ chế đồng thuận Event-link.
4. Thử nghiệm, đánh giá và hướng phát triển tiếp theo.
Luận văn bao gồm những chương sau:
1. Giới thiệu đề tài: Lý do chọn đề tài, tính cấp thiết của đề tài.

5


2. Cơ sở lý thuyết và nghiên cứu liên quan: Những cơ sở lý thuyết và nghiên cứu liên
quan được sử dụng để giải quyết vấn đề.
3. Thiết kế hệ thống và cơ chế đồng thuận: Trình bày kiến trúc hệ thống, luồng dữ liệu,
cách hoạt động của cơ chế đồng thuận Event-link.
4. Thử nghiệm và đánh giá: Xây dựng kịch bản thử nghiệm và đánh giá tính khả thi
của cơ chế đồng thuận so với các cơ chế khác.
5. Kết luận và hướng phát triển: Trình bày kết luận, từ đó đề xuất ra kế hoạch cải tiến

và phát triển cơ chế đồng thuận.

6


MỤC LỤC

CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI .............................................................................. 12
1.1.

ĐẶT VẤN ĐỀ ........................................................................................................ 12

1.2.

TỔNG QUAN VỀ CƠ CHẾ ĐỒNG THUẬN EVENT-LINK ........................................ 16

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT VÀ NGHIÊN CỨU LIÊN QUAN .................... 17
2.1.

CÁC KHÁI NIỆM, KIẾN THỨC LIÊN QUAN .......................................................... 17

2.1.1. Hệ thống phi tập trung ................................................................................. 17
2.1.2. Vạn vật kết nối Internet (Internet of Things) ............................................. 18
2.1.3. Công nghệ chuỗi khối ................................................................................... 19
2.1.4. Công nghệ Sidechain ..................................................................................... 21
2.1.5. IoT dựa trên chuỗi khối và sidechain .......................................................... 22
2.1.6. Cơ chế đồng thuận ........................................................................................ 24
2.1.7. Thuật toán vector clocks............................................................................... 25
2.1.8. Giao thức Gossip ........................................................................................... 27
2.1.9. Hệ thống chịu lỗi Byzantine ......................................................................... 28

2.2.

CÁC NGHIÊN CỨU CHO HỆ THỐNG IOT DỰA TRÊN CÔNG NGHỆ CHUỖI KHỐI. 30

2.3.

CÁC CƠ CHẾ ĐỒNG THUẬN CHO MẠNG CHUỖI KHỐI ........................................ 36

CHƯƠNG 3. THIẾT KẾ HỆ THỐNG VÀ CƠ CHẾ ĐỒNG THUẬN ...................... 43
3.1.

KIẾN TRÚC TỔNG THỂ........................................................................................ 43

3.2.

LUỒNG HOẠT ĐỘNG CỦA HỆ THỐNG ................................................................. 45

3.3.

CƠ CHẾ ĐỒNG THUẬN EVENT-LINK .................................................................. 46

3.3.1. Các thuật ngữ ................................................................................................ 46
3.3.2. Mục tiêu và nguyên lý hoạt động chính của cơ chế đồng thuận ............... 48
3.3.3. Các bước hoạt động cụ thể của thuật toán ................................................. 49
3.3.4. Khả năng chịu lỗi byzantine của thuật toán ............................................... 52
CHƯƠNG 4. THỬ NGHIỆM VÀ ĐÁNH GIÁ............................................................. 54
7


4.1.


THÔNG TIN MÔI TRƯỜNG THỬ NGHIỆM............................................................ 54

4.2.

KẾT QUẢ THỬ NGHIỆM VÀ ĐÁNH GIÁ ............................................................... 54

4.2.1. Độ trễ giao dịch ............................................................................................. 55
4.2.2. Thông lượng giao dịch .................................................................................. 58
4.2.3. Độ trễ sự kiện ................................................................................................. 62
4.2.4. Các kịch bản bị tấn công .............................................................................. 63
CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .............................................. 64
5.1.

KẾT LUẬN ........................................................................................................... 64

5.2.

HƯỚNG PHÁT TRIỂN........................................................................................... 64

TÀI LIỆU THAM KHẢO............................................................................................... 66

8


DANH MỤC BẢNG BIỂU

Bảng 1: Các bài báo nghiên cứu về kiến trúc cho IoT dựa trên chuỗi khối ...................... 30
Bảng 2: Các bài báo nghiên cứu về cải thiện hiệu suất cho IoT dựa trên chuỗi khối ....... 32
Bảng 3: Bài báo nghiên cứu về bảo mật và tính riêng tư trong IoT dựa trên chuỗi khối .. 34

Bảng 4: Các bài báo nghiên cứu về cơ chế đồng thuận phổ biến hiện nay cho mạng chuỗi
khối .................................................................................................................................... 36
Bảng 5: Các bài báo nghiên cứu về cơ chế đồng thuận hiện nay cho IoT dựa trên chuỗi khối
........................................................................................................................................... 38
Bảng 6: Các bài báo nghiên cứu về cơ chế đồng thuận mới gần đây ................................ 40
Bảng 7: Độ trễ giao dịch trung bình của cơ chế đồng thuận Event-link và bốn cơ chế đồng
thuận khác .......................................................................................................................... 56
Bảng 8: Thông lượng giao dịch của Event-link và 4 loại cơ chế đồng thuận khác ........... 60

9


DANH MỤC HÌNH VẼ

Hình 1: Thống kê số lượng thiết bị IoT và thiết bị thường (Non-IoT) qua từng năm trên
tồn thế giới ...................................................................................................................... 13
Hình 2: Các kiểu hệ thống hiện nay ................................................................................. 17
Hình 3: Vạn vật kết nối Internet - Internet of Thing (IoT) ............................................... 18
Hình 4: Kiến trúc chuỗi khối cơ bản ................................................................................. 19
Hình 5: Cơng nghệ Sidechain ........................................................................................... 22
Hình 6: Kiến trúc sidechain và mainchain cho IoT ........................................................... 23
Hình 7: Cơ chế đồng thuận trong chuỗi khối ................................................................... 24
Hình 8: Nguyên lý hoạt động của vector-clock ................................................................ 26
Hình 9: Giao thức Gossip trong mạng lưới ....................................................................... 27
Hình 10: Kiến trúc tổng thể ............................................................................................... 44
Hình 11: Mơ hình lưu trữ dữ liệu và luồng lưu trữ dữ liệu trong hệ thống ....................... 45
Hình 12: Đồ thị Knowledge trên nút 4 .............................................................................. 47
Hình 13: Nguyên lý hoạt động của cơ chế đồng thuận Event-link của nút 4 khi đồng bộ với
nút 3 trong mạng ................................................................................................................ 49
Hình 14: Thuật tốn cơ chế đồng thuận Event-link .......................................................... 50

Hình 15: Tạo sự kiện mới trong Event-link ...................................................................... 51
Hình 16: Cách hoạt động của cơ chế Event Reasoning (ER) ............................................ 52
Hình 17: Độ trễ giao dịch Event-link với 1KB kích thước giao dịch ............................... 55
Hình 18: Độ trễ giao dịch Event-link với 10KB kích thước giao dịch ............................. 56
Hình 19: Độ trễ giao dịch Event-link với các gossip interval ........................................... 58
Hình 20: Thơng lượng giao dịch của Event-link với 1KB kích thước giao dịch .............. 59
Hình 21: Thơng lượng giao dịch của Event-link ............................................................... 61
Hình 22: Độ trễ sự kiện của Event-link với thời gian gossip khác nhau ........................... 62
Hình 23: Event Knowledge của nút 1 sau khi đồng bộ với nút 3 ...................................... 63

10


DANH MỤC THUẬT NGỮ

Từ tiếng anh

Viết tắt

Tiếng việt

Blockchain

Chuỗi khối

Sidechain

Chuỗi phụ

Internet of Things


IoT

Đồ thị tri thức

Knowledge graph
Transaction per second

Vạn vật kết nối Internet

TPS

Lượng giao dịch trong một giấy

Permissionless blockchain

Chuỗi khối công khai

Permissoned blockchain

Chuỗi khối riêng tư

Two-way peg

Chốt hai chiều

Artificial intelligence

AI


Trí tuệ nhân tạo

Decentralized Application

DApp

Ứng dụng phi tập trung

Byzantine fault-tolerance

BFT

Khả năng chịu lỗi của byzantine

Client/server

Máy khách / Máy chủ

11


CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI
1.1.

Đặt vấn đề

Hiện nay có rất nhiều các cơ chế đồng thuận đang hoạt động trong hệ thống phi tập
trung, những cơ chế này đều xoay quanh những giải pháp chính (tốc độ xử lý, tính bảo mật,
tính mở rộng, …). Tuy nhiên, vẫn cịn nhiều vấn đề vẫn đang tồn tại và cần được giải quyết.
Đặc biệt với dữ liệu ngày càng lớn trong thời đại 4.0, tốc độ xử lý giao dịch phải nhanh và

đạt số lượng giao dịch lớn để đáp ứng kịp yêu cầu ngày một tăng. Ngoài ra, dữ liệu vẫn
phải an toàn khi đã được lên hệ thống, tránh sửa, xố hay thay đổi dữ liệu. Cơng nghệ chuỗi
khối (blockchain) – là hệ thống phi tập trung - có tiềm năng trở nên phổ biến trong rất nhiều
lĩnh vực khác nhau. Chuỗi khối là cơ chế cốt lõi của các loại tiền điện tử được công khai,
chẳng hạn như Bitcoin [6] và Ethereum [19], nó đã chứng minh các đặc điểm nội tại của
nó, bao gồm phân quyền, ẩn danh và khả năng kiểm toán. Một số lượng lớn các ứng dụng
blockchain đã được triển khai. Ngoài tiền điện tử, blockchain cũng có thể được sử dụng
trong các ứng dụng đa dạng, chẳng hạn như vạn vật kết nối Internet (IoT).
Các ứng dụng IoT cho phép giao tiếp và tương tác trực tiếp giữa các thiết bị qua
Internet. Các thiết bị IoT hiện tại bao gồm điện thoại thông minh, thiết bị gia dụng thông
minh, xe cộ và các cảm biến trong nhà và ngoài trời. Tuy nhiên, với sự tham gia của một
số lượng lớn các thiết bị, các ứng dụng IoT truyền thống đang phải đối mặt với những thách
thức ở nhiều khía cạnh, bao gồm tốc độ xử lý, bảo mật của dữ liệu và khả năng mở rộng
của hệ thống.
Theo báo cáo năm 2021 của Statista trong hình 1, số lượng các thiết bị IoT đã tăng
lên đáng kể và đã lên tới 13.8 tỷ thiết bị vào năm 2021. Điều này có nghĩa là số lượng dữ
liệu cũng ngày một nhiều hơn, tăng gấp 24.75 lần sau một thập kỉ. Statista dự đoán với xu
thế này, số lượng thiết bị IoT sẽ tăng đến 30.9 tỷ thiết bị vào năm 2025. Ngược lại, các
thiết bị không kết nối (Non-IoT) sau mỗi năm chỉ tăng thêm khoảng 100 triệu thiết bị. Điều
đó cho thấy xu hướng hiện tại và trong tương lại đều đang hướng tới các thiết bị có thể kết
nối với nhau. Để lý giải cho sự tăng số lượng thiết bị mạnh mẽ này, có hai yếu tố quan
trọng. Thứ nhất là nhu cầu con người điểu khiển các thiết bị của họ từ xa như nhà thông
minh, ô tô, … Nhờ đó, họ có thể quản lý, kiểm sốt từ xa các thiết bị của họ. Thứ hai, các
thiết bị IoT có thể hỗ trợ thu thập nhiều dữ liệu và phân tích tốt giúp các doanh nghiệp, nhà
máy sản xuất gia tăng hiệu suất của mình, đặc biệt hỗ trợ tự động hố dây truyền sản xuất,
chăn ni và trồng trọt. Vì sự tăng mạnh mẽ của các thiết bị IoT như vậy, hệ thống sẽ càng
phải xử lý nhiều lượng giao dịch hơn. Do đó, cần có những cách tiếp cận vấn đề mới.

12



Hình 1: Thống kê số lượng thiết bị IoT và thiết bị thường (Non-IoT) qua từng năm trên
toàn thế giới 1
Với những bài toán IoT truyền thống sử dụng hệ thống tập trung - cịn được gọi là
mơ hình máy khách / máy chủ - có ưu điểm như tốc độ xử lý dữ liệu nhanh, dễ dàng phát
triển và mở rộng hơn. Tuy nhiên, nó cũng có những nhược điểm rất quan trọng:
• Tính khơng ổn định: Khi hệ thống gặp sự cố sẽ như lỗi phần mềm hoặc phần cứng,
hay hệ thống mất kết nối Internet, các thiết bị IoT sẽ không gửi dữ liệu về hệ thống
được. Khi lượng giao dịch tăng đột biến cũng có thể gây ra hiên tượng tắc nghẽn cổ
chai. Ngoài ra, hệ thống phụ thuộc nhiều vào kết nối mạng, vì là hệ thống tập trung
nên chỉ có một nút hoạt động.
• Tính bảo mật: Nếu bảo mật hệ thống khơng cao, kẻ xấu có thể dễ dàng tấn cơng,
chia sẻ, chỉnh sửa dữ liệu giao dịch. Nếu nút bị sập mà khơng có bản sao lưu, hệ
thống sẽ mất hết dữ liệu.
• Khoảng cách địa lý: Thiết bị IoT càng xa máy chủ trung tâm sẽ truyền dữ liệu tới
càng lâu, ảnh hưởng tới tốc độ xử lý dữ liệu và phản hồi từ máy chủ.
Mặt khác, thay vì các thiết bị IoT chỉ có thể quản lý bởi một máy chủ, chúng có thể được
quản lý bởi nhiều nút tham gia cùng một lúc. Do đó, chuỗi khối cung cấp một giải pháp
1

/>m%20the%20global%20IoT%20market

13


thiết thực để giải quyết nhiều hạn chế của các ứng dụng IoT truyền thống. Chuỗi khối có
thể đảm bảo tính tồn vẹn của dữ liệu IoT mà khơng cần bên thứ ba, đồng thời tiết kiệm
băng thông và sức mạnh tính tốn của thiết bị IoT. Hơn nữa, chuỗi khối có thể cung cấp
một bảo mật tốt và có thể mở rộng cho mạng IoT để thơng tin có thể được phân phối mà
không cần máy chủ tập trung. Chuỗi khối có thể theo dõi dữ liệu cảm biến và truyền dữ

liệu giữa các thiết bị IoT mà không cần máy chủ trung tâm. Hơn nữa, blockchain có thể
giảm chi phí hoạt động của IoT bằng cách cho phép các thiết bị thông minh thực hiện các
giao dịch tự động, các cụm IoT có thể đạt được thỏa thuận nhanh hơn và với chi phí thấp
hơn. Có thể thấy sự gia tăng về số lượng các ứng dụng kết hợp giữa blockchain và IoT, với
gần 20% các triển khai IoT áp dụng các dịch vụ blockchain vào năm 2019 [67]. Ví dụ,
IOTA [42], một trong những loại tiền điện tử lớn của thế giới, cho phép các giao dịch thanh
tốn vi mơ giữa các thiết bị IoT. Việc áp dụng công nghệ chuỗi khối cho IoT mang lại
những ưu điểm sau:
• Tính bất biến: Xây dựng sổ cái bất biến là một trong những giá trị quan trọng của
chuỗi khối. Tất cả các cơ sở dữ liệu tập trung có thể bị hỏng và thường yêu cầu sự
tin tưởng vào bên thứ ba để giữ tính tồn vẹn của thông tin. Một khi bạn đã đồng ý
về một giao dịch và ghi lại nó, nó sẽ khơng bao giờ có thể thay đổi được.
• Tính phi tập trung: Việc thiếu kiểm soát tập trung đảm bảo khả năng mở rộng và
tính mạnh mẽ bằng cách sử dụng tài nguyên của tất cả các nút tham gia. Do đó làm
giảm độ trễ và giải quyết vấn đề về điểm lỗi tồn tại trong mơ hình tập trung.
• Ẩn danh: Ẩn danh cung cấp một cách hiệu quả để che giấu danh tính của người
dùng và giữ bí mật danh tính của họ.
• Bảo mật tốt hơn: Chuỗi khối cung cấp khả năng bảo mật tốt hơn vì một nút bị lỗi
hoặc gian lận cũng khơng ảnh hưởng tới tồn bộ mạng.
• Khả năng xử lí: Một trong những điều quan trọng về cơng nghệ chuỗi khối là nó có
thể xử lý nhiều giao dịch song song hơn. Việc có hàng nghìn máy tính cùng hoạt
động có thể có sức mạnh lớn hơn một máy chủ tập trung.
Tuy nhiên, việc triển khai các ứng dụng IoT trên các mạng chuối khối vẫn còn nhiều
thách thức. Đầu tiên, kiến trúc của một hệ thống IoT-blockchain cần phải hỗ trợ một số
lượng lớn các thiết bị IoT. Thứ hai, cần một cơ chế đồng thuận đảm bảo tính tồn vẹn của
dữ liệu giữa các nút trong chuỗi khối, cần được thiết kế đặc biệt cho hệ thống IoT do lượng
giao dịch dữ liệu trong IoT ngày càng lớn. Thứ ba, mơ hình hóa lưu lượng của mạng chuỗi
khối là cần thiết để đạt được hiệu suất cao trong bài toán IoT. Tuy nhiên, mạng chuỗi khối
vẫn có một số rào cản, chẳng hạn như độ trễ trong xác nhận giao dịch, khả năng mở rộng
liên quan đến kích thước mạng chuỗi khối [69] [70] [71]. Vì vậy, sidechain có thể cung

cấp một giải pháp tiềm năng để cải thiện hiệu suất của chuỗi khối. Đầu tiên, một sidechain

14


được xác định để cho phép bitcoin và các loại tiền điện tử khác chuyển tiền giữa nhiều
mạng chuỗi khối. Ý tưởng là một sidechain nên hoàn toàn độc lập, vì vậy để chia sẻ thơng
tin giữa chuỗi chính và chuỗi phụ, một giao thức chốt hai chiều đã được áp dụng. Sidechain
có thể có cơ chế đồng thuận của riêng họ, có thể hồn tồn khác với cơ chế đồng thuận của
chuỗi chính. Ngồi ra, các sidechain có mức độ bảo mật riêng, mã thông báo của riêng họ.
Nếu bảo mật của mạng sidechain bị xâm phạm, thiệt hại sẽ khơng ảnh hưởng đến chuỗi
chính hoặc các chuỗi phụ khác. Để giúp các mạng chuỗi khối này hoạt động hiệu quả và
ổn định, chúng ta cần một cơ chế đồng thuận tốt cho các hệ thống.
Với lượng lớn dữ liệu được tạo ra bởi các thiết bị IoT, các chuỗi khối chung như
Bitcoin hoặc Ethereum không thể được xử lý tất cả các dữ liệu từ các thiết bị IoT này trong
thời gian ngắn. Với tiềm năng của công nghệ nói trên, chúng ta có thể giải quyết một số
vấn đề đối với IoT dựa trên blockchain nếu chúng ta kết hợp các công nghệ này với nhau.
Mạng Sidechain khơng chỉ cải thiện hiệu suất mà cịn hỗ trợ chia sẻ dữ liệu giữa các hệ
thống IoT thông qua một blockchain chính. Mỗi sidechain là một mạng chuỗi khỗi cho hệ
thống IoT và chúng kết nối với nhau thông qua chuỗi chính bằng cách sử dụng giao thức
chốt hai chiều. Vì lý do này, họ có thể giữ an tồn cho dữ liệu của mình và chia sẻ một
phần dữ liệu của mình với các mạng IoT blockchain khác. Tơi có thể sử dụng các cơ chế
đồng thuận khác nhau cho mỗi sidechain để phục vụ một mục đích cụ thể. Kết quả là sự
kết hợp giữa sidechain và blockchain sẽ mang lại lợi ích to lớn cho các mạng IoT.
Trên thế giới hiện nay có rất nhiều cơ chế đồng thuận cho hệ thống phi tập trung
phổ biến vẫn đang hoạt động tốt ở một khía cạnh nhất định, nhưng đã khơng cịn đáp ứng
đủ hết với lượng dữ liệu ngày một nhiều. Với IoT, lượng dữ liệu là rất lớn và liên tục được
gửi lên các nút để xử lý và đồng thuận với nhau. Để giải quyết điều đó, việc nghiên cứu ra
một cơ chế đồng thuận mới cho hệ thống phi tập trung là vô cùng cần thiết, nó giúp đáp
ứng được những thách thức mới và giúp giảm chi phí cho các hệ thống hiện nay.

Trong luận văn này, tôi đề xuất một cơ chế đồng thuận Event-link cho mạng chuỗi
khối áp dụng IoT gọi là Event-link. Mục đích giúp đáp ứng được lượng giao dịch nhiều
trong IoT và các nút trong mạng đồng bộ nhau tốt hơn. Và có khả năng triển khai được tại
chuỗi phụ của một hệ thống IoT dựa trên chuỗi khối. Ngoài ra các nút hoạt động ngang
hàng nhau, khơng có sự phân cấp trong q trình đồng bộ. Phạm vi nghiên cứu của tôi
trong luận văn là giúp tăng thông lượng giao dịch tốt hơn so với các cơ chế đồng thuận phổ
biến khác và có tính phi tập trung hơn. Tôi sẽ đánh giá thử nghiệm Event-link với PoW,
PBFT, PoET, Raft trên cùng một phần cứng để được kết quả khách quan nhất có thể.

15


1.2.

Tổng quan về cơ chế đồng thuận Event-link

Mục đích cơ chế đồng thuận Event-link nhằm tăng khả năng đồng bộ giữa các nút
tham gia trong mạng phi tập trung. Tôi đề xuất việc sử dụng vector-clock trong một đồ thị
tri thức (knowledge graph) được triển khai trên mọi nút trong chuỗi khối. Dựa trên đồ thị
tri thức, cơ chế suy luận (event reasoning) của tôi cho phép mỗi nút suy ra trạng thái của
các sự kiện (event) trên các nút khác. Thu thập thông tin trạng thái sự kiện của các nút khác
giúp tạo ra sự đồng thuận trong mạng chuỗi khối một cách hiệu quả. Cơ chế mạnh mẽ được
đề xuất có thể được triển khai trên các mạng sidechain trong môi trường IoT dựa trên
blockchain. Nhờ các nút hoạt động ngang hàng và xử lý song song nhau nên cơ chế làm
tăng số lượng xác nhận giao dịch của sidechain so với các thuật toán đồng thuận hiện tại.
Ngoài ra, cơ chế được đề xuất cũng ngăn chặn các vấn đề về khả năng chịu lỗi của byzantine
và do đó đảm bảo an ninh cho các mạng sidechain của họ. Tôi thực hiện một loạt thử
nghiệm để so sánh hiệu suất của cơ chế đồng thuận Event-link với PoW, Raft, PoET và
PBFT. Kết quả đạt được từ các thử nghiệm cho thấy rằng cơ chế đồng thuận Event-link
của tơi mang lại hiệu quả cao và nó có tiềm năng áp dụng cho các hệ thống IoT dựa trên

blockchain.

16


CHƯƠNG 2. CƠ SỞ LÝ THUYẾT VÀ NGHIÊN CỨU LIÊN QUAN
2.1. Các khái niệm, kiến thức liên quan
2.1.1. Hệ thống phi tập trung
Hệ thống phi tập trung (decentralized system) là một hệ thống thông tin được kết
nối với nhau trong đó khơng có thực thể nào là cơ quan có thẩm quyền duy nhất. Trong bối
cảnh của máy tính và công nghệ thông tin, các hệ thống phi tập trung thường có dạng các
máy tính nối mạng. Ví dụ, Internet là một hệ thống phi tập trung, mặc dù nó ngày càng trở
nên tập trung theo thời gian.

Hình 2: Các kiểu hệ thống hiện nay 2
Như hình 2 ở trên, hiện tại đang có ba kiểu hệ thống: hệ thống tập trung, hệ thống
phi tập trung và hệ thống phân tán. Hệ thống tập trung là hệ thống sử dụng kiến trúc
client/server trong đó một hoặc nhiều nút máy khách (client) được kết nối trực tiếp với máy
chủ trung tâm (server). Đây là loại hệ thống được sử dụng phổ biến nhất trong nhiều tổ
chức nơi khách hàng gửi yêu cầu đến máy chủ của công ty và nhận được phản hồi. Hai hệ
thống còn lại rất dễ xảy ra nhầm lẫn. Hệ thống phi tập trung khác với hệ thống phân tán.
Một hệ thống phi tập trung thường có nhiều nút có thẩm quyền, mỗi nút phục vụ một tập
hợp con trong tổng số người dùng cuối (end user). Tuy nhiên, trong một hệ thống phân tán,
khơng có người dùng cuối, bởi vì mọi nút trên mạng giao tiếp với mọi nút khác để hoạt
động như một đơn vị duy nhất.
Đối với các doanh nghiệp và tổ chức, lợi ích của một hệ thống phi tập trung bao
gồm khả năng chịu lỗi và dự phịng, với chi phí là sự phức tạp trong quản lý bổ sung. Trong
bất kỳ tổ chức công nghệ thông tin nào, phân quyền phải được cân bằng với tập trung khi
thiết kế một hệ thống nối mạng, để tối ưu hóa sự cân bằng chi phí - lợi ích này.
2


Decentralized system: />
17


Các hệ thống phi tập trung đã thu hút được sự chú ý rộng rãi với sự ra đời của các
công nghệ blockchain, chẳng hạn như những công nghệ được sử dụng trong Bitcoin và các
loại tiền điện tử khác. Các hệ thống này tận dụng các thuộc tính của mật mã và chuỗi
Markov để cung cấp sự đồng thuận về các giao dịch tài chính xảy ra trong hệ thống. Kết
quả là một sổ cái phân tán có thể xác minh của các giao dịch, loại bỏ sự cần thiết của một
cơ quan quản lý ngân hàng tập trung. Lưu ý rằng mặc dù sổ cái được phân phối cho tất cả
người dùng tiền điện tử, nhưng bản thân hệ thống tiền điện tử là phi tập trung.
2.1.2. Vạn vật kết nối Internet (Internet of Things)

Hình 3: Vạn vật kết nối Internet - Internet of Thing (IoT)

3

Vạn vật kết nối Internet (IoT) là đề cập đến hàng tỷ thiết bị vật lý trên khắp
thế giới hiện đang kết nối với nhau thông qua Internet để thu thập và chia sẻ dữ liệu,
như hình 3. Với IoT, các chức năng mạng, máy tính và phần mềm được nhúng vào
các thiết bị, cho phép chúng giao tiếp mà không cần sự tham gia của con người, giúp
thống nhất thế giới kỹ thuật số và vật lý. Nhờ chi phí phần cứng rẻ và sự phát triển
của mạng không dây, IoT đang dần trở thành một phần quan trọng trong nhiều vấn
đề trong cuộc sống thực như nhà thông minh [1], chuỗi cung ứng [2] và chăm sóc
sức khỏe [3]. Những tiến bộ nhanh chóng về phần mềm và phần cứng đã khiến các
công nghệ liên quan đến IoT trở nên không thể thiếu trong xã hội ngày nay. Tuy
nhiên, với số lượng thiết bị IoT khổng lồ, các ứng dụng IoT truyền thống đang phải
3


Internet of Things: />
18


đối mặt với những thách thức về bảo mật như tính tồn vẹn của dữ liệu và quyền
riêng tư, vốn đã được đề cập trong nhiều nghiên cứu trước đây [4] và [5].
2.1.3. Công nghệ chuỗi khối
Chuỗi khối (blockchain) là một cơ sở dữ liệu phân tán trong đó dữ liệu được lưu
thành các khối (block) trên mạng máy tính ngang hàng (Peer-to-Peer). Các khối được liên
kết với nhau bằng mã hóa và được mở rộng theo thời gian. Cấu trúc dữ liệu trong mỗi khối
đều bao gồm các thông tin cơ bản là dữ liệu, số thứ tự, mốc thời gian tạo,... Mỗi khối có
chứa liên kết với khối phía trước nó thơng qua mã hash. Thơng qua liên kết dẫn tới khối
đầu tiên được tạo trong chuỗi khối là khối nguyên thủy (genesis block). Mỗi máy tính trong
mạng sẽ lưu giữ bản sao của chuỗi khối trong bộ nhớ. Do đó cơng nghệ chuỗi khối được
thiết kế để chống lại việc thay đổi, phá hủy dữ liệu: khi dữ liệu đã được lưu trong mạng
P2P thì sẽ rất khó để thay đổi được nó. Nếu một vài nút hay một phần trong hệ thống chuỗi
khối bị tấn công, những máy tính và nút khác sẽ tiếp tục hoạt động để bảo vệ mạng. Đặc
điểm của công nghệ chuỗi khối là lưu, xác nhận, vận chuyển và truyền thông dữ liệu trong
mạng P2P đi qua các nút mạng mà khơng cần thơng qua một bên thứ 3 tin cậy.

Hình 4: Kiến trúc chuỗi khối cơ bản
Như hình 4 trên, cấu trúc dữ liệu của chuỗi khối là một danh sách liên kết có thứ tự
các khối. Trong mỗi khối chứa dữ liệu và các giao dịch. Chuỗi khối có thể lưu trữ trên file
hoặc trong một cơ sở dữ liệu đơn giản. Cách các khối được liên kết là mỗi khối trong chuỗi
khối chứa thông tin của khối trước đó trong chuỗi. Chuỗi khối thường được hình dung như

19


một ngăn xếp thẳng đứng, với các khối xếp chồng lên nhau và khối đầu tiên đóng vai trị

là nền tảng của ngăn xếp. Việc các khối được xếp chồng lên nhau dẫn đến việc sử dụng các
thuật ngữ như chiều cao để chỉ sự khác biệt của khối đầu tiên và khối trên cùng (khối được
thêm gần đây nhất). Mỗi khối trong chuỗi khối được xác định bằng một mã hash, được tạo
bằng cách sử dụng thuật toán băm SHA256 cho tiêu đề khối (block header). Mỗi khối cũng
tham chiếu đến khối trước đó, thơng qua trường “BlockHash trước” như trong hình 4. Nói
cách khác, mỗi khối chứa mã hash của khối trước đó bên trong header của chính nó. Chuỗi
các mã hash liên kết mỗi khối với khối trước đó của nó tạo ra một chuỗi có thể truy ngược
về khối đầu tiên được tạo, được gọi là khối nguyên thủy (genesis block). Mặc dù một khối
chỉ có một khối phía trước nó, nó có thể tạm thời có nhiều khối phía sau. Nhiều khối sinh
trong q trình “fork” của chuỗi khối, một tình huống tạm thời xảy ra khi các khối khác
nhau được các thợ đào khác nhau phát hiện gần như đồng thời. Cuối cùng, chỉ có một khối
mới trở thành một phần của chuỗi khối và “fork” được giải quyết.
Trường “BlockHash trước” nằm bên trong tiêu đề khối và do đó ảnh hưởng đến mã
hash của khối. Mã hash của khối phía sau trong chuỗi sẽ bị thay đổi khi dữ liệu trong khối
trước nó bị thay đổi. Khi một khối được sửa đổi theo bất kỳ cách nào, mã hash của nó sẽ
thay đổi. Mã hash thay đổi khiến trường “BlockHash trước” của khối phía sau cũng phải
thay đổi theo. Điều này làm cho mã hash của khối phía sau thay đổi, địi hỏi sự thay đổi
trong trường “BlockHash trước” của khối tiếp theo, từ đó thay đổi các khối sau đó... Hiệu
ứng này đảm bảo rằng một khi một khối có nhiều khối theo sau nó, nó khơng thể bị thay
đổi mà khơng buộc phải tính tốn lại tất cả các khối tiếp theo. Bởi vì việc tính tốn lại như
vậy sẽ địi hỏi tính tốn rất lớn (và do đó tiêu tốn năng lượng), sự tồn tại của một chuỗi dài
các khối làm cho việc sửa đổi các khối cũ là bất khả thi, và đây là một tính năng quan trọng
trong bảo mật của chuỗi khối.
Công nghệ chuỗi khối được biết đến nhiều thông qua sự ra đời của Bitcoin cũng như
một số loại tiền kỹ thuật khác. Cơ chế hoạt động của Bitcoin được giới thiệu vào năm 2008
bởi Satoshi Nakamoto [6]. Theo các chuyên gia, cho đến nay, công nghệ blockchain đã
giải quyết được nhiều vấn đề của Internet: bao gồm dữ liệu bị ảnh hưởng (bị xâm nhập,
phá hủy, thay đổi, khơng an tồn), thiếu minh bạch giữa những người tham gia và bản
quyền bị đánh cắp. Ngoài ra, Blockchain cịn giải quyết những hạn chế của mơ hình clientserver, chẳng hạn như Khả năng hoạt động hồn toàn phụ thuộc vào trung tâm dữ liệu,
nguy cơ nghẽn mạng cao, thiếu tài nguyên, dễ bị tấn công [7]. Blockchain chủ yếu có thể

được phân loại là blockchains khơng được phép và được phép.
• Chuỗi khối cơng khai (Permissionless blockchain): cho phép mọi người trở thành
một phần của mạng blockchain và đóng góp vào việc duy trì mạng lưới này. Thông
tin giao dịch thường được xác thực bởi công khai [6] [19].

20


• Chuỗi khối riêng tư (Permissoned blockchain): yêu cầu quyền tham gia vào mạng.
Thông tin giao dịch được xác thực bởi một nhóm được chọn được chủ sở hữu của
chuỗi khối chấp thuận [72] [41].
Các hệ thống được cấp phép có xu hướng mở rộng hơn và nhanh hơn, nhưng tập
trung hơn. Các hệ thống khơng có quyền được mở cho tất cả mọi người tham gia và do đó,
thường được phân cấp hơn, sự đánh đổi là tốc độ và khả năng mở rộng. Ngày nay, nhiều
nền tảng chuỗi khối khác nhau đã được áp dụng cho các ứng dụng IoT để vượt qua những
thách thức được trình bày trong đoạn trước.
2.1.4. Công nghệ Sidechain
Tuy nhiên, mạng blockchain vẫn có một số rào cản, chẳng hạn như độ trễ trong xác
nhận giao dịch, khả năng mở rộng liên quan đến kích thước chuỗi khối và mở rộng mạng
[69] [70] [71]. Vì vậy, sidechain có thể cung cấp một giải pháp tiềm năng để cải thiện hiệu
suất của blockchain. Ban đầu, nó được áp dụng chủ yếu cho Bitcoin, khái niệm sidechain
về cơ bản là việc chạy song song với một chuỗi khối khác, bên cạnh một hay một vài chuỗi
khối "chính" khác. Hai chuỗi khối có thể "nói chuyện" với nhau giúp các tài sản có thể di
chuyển giữa hai chuỗi [8] . Ý tưởng là một sidechain nên hồn tồn độc lập, vì vậy để chia
sẻ thơng tin giữa chuỗi chính và chuỗi khối bên, một giao thức chốt hai chiều đã được áp
dụng. Sidechains có thể có cơ chế đồng thuận của riêng họ, có thể hồn tồn khác với cơ
chế đồng thuận của chuỗi chính. Ngồi ra, các sidechains có mức độ bảo mật riêng, mã
(token) của riêng họ. Nếu bảo mật của mạng sidechain bị xâm phạm, thiệt hại sẽ khơng ảnh
hưởng đến chuỗi chính hoặc các chuỗi phụ khác. Để giúp các mạng blockchain này hoạt
động hiệu quả và ổn định, chúng ta cần một cơ chế đồng thuận tốt cho các hệ thống.

Trong hình trên 5 mơ tả ưu điểm của cơng nghệ Sidechain, chuyển tiền giữa chuỗi
chính (mainchain) và sidechain bằng chốt hai chiều (two-way peg):
• Người dùng gửi 5 MainCoin đến một địa chỉ đặc biệt (còn được gọi là lock-box) nơi
các đồng tiền bị khóa và chỉ có thể được mở khóa khi tiền trên sidechain bị khóa và
chuyển trở lại chuỗi chính.
• Sau khi tiền bị khóa trên chuỗi chính, 5 SideCoin được tạo trên sidechain.

21


Hình 5: Cơng nghệ Sidechain 4
• Người dùng hiện có thể sử dụng các SideCoin này để chơi trò oẳn tù tì với một
người dùng ngẫu nhiên khác sẵn sàng đặt cược cùng một số lượng SideCoins.
• Tùy thuộc vào kết quả của trò chơi, 10 SideCoins được chuyển cho người chiến
thắng hoặc 5 SideCoins được chuyển lại cho chủ sở hữu tương ứng của họ (trong
trường hợp hịa).
• Sau đó người dùng có thể chuyển tiền của họ trở lại chuỗi chính, điều này về cơ bản
có nghĩa là SideCoins sẽ bị khóa hoặc phá hủy trên sidechain và một số lượng
MainCoins tương đương sẽ được mở khóa trên chuỗi chính từ hộp khóa (ở bước 1 )
sau khi SideCoins bị phá hủy trên sidechain.
Tóm lại, Sidechain là chuỗi khối riêng biệt được liên kết với chuỗi khối chính
(Mainchain) bằng cách sử dụng một chốt hai chiều. Chúng là một mạng phụ trợ thực hiện
chức năng bổ sung của: giao dịch nhanh hơn, chi phí giao dịch thấp hơn và khả năng mở
rộng lớn hơn về số lượng giao dịch có thể được hỗ trợ trong mạng tại một thời điểm nhất
định.
2.1.5. IoT dựa trên chuỗi khối và sidechain
Với lượng lớn dữ liệu được tạo ra bởi các thiết bị IoT, các hệ thống chuỗi khối phổ
biến như Bitcoin hoặc Ethereum [19] không thể xử lý tất cả các giao dịch từ các thiết bị
4


Singh, Amritraj. (2019). PUBLIC BLOCKCHAIN SCALABILITY: ADVANCEMENTS, CHALLENGES AND
THE FUTURE.

22


này trong thời gian thực. Để giải quyết các vấn đề, cơng nghệ Sidechain có thể cung cấp
một giải pháp tiềm năng với mục tiêu cải thiện hiệu suất cho mạng blockchain hiện tại.
Đầu tiên, một Sidechain được xác định để cho phép Bitcoin và các loại tiền điện tử khác
chuyển tiền giữa nhiều mạng [8] cùng một lúc. Ý tưởng là một sidechain nên hồn tồn
độc lập, vì vậy để chia sẻ thơng tin giữa chuỗi chính và sidechain, một giao thức chốt hai
chiều đã được sử dụng. Sidechains có thể có cơ chế đồng thuận của riêng họ, có thể hồn
tồn khác với mơ hình đồng thuận của chuỗi chính. Ngồi ra, các sidechains có mức độ
bảo mật của riêng chúng và thậm chí cả các mã thơng báo của riêng chúng. Nếu bảo mật
của mạng sidechain bị xâm phạm, thiệt hại sẽ không ảnh hưởng đến chuỗi chính hoặc các
chuỗi phụ khác. Mạng Sidechain khơng chỉ cải thiện hiệu suất mà còn hỗ trợ chia sẻ dữ
liệu giữa các hệ thống IoT thông qua một mạng blockchain chính. Hình 6 minh họa
sidechains và triển khai chuỗi chính trong mơi trường IoT. Trong đó sidechain là một mạng
blockchain cho một ứng dụng IoT. Các sidechains này kết nối với nhau thơng qua một
chuỗi chính cơng khai bằng cách sử dụng thành phần chốt hai chiều. Vì lý do này, các
sidechains có thể đảm bảo tốc độ giao dịch dữ liệu cần thiết cho các thiết bị IoT và do đó
chuỗi có thể chia sẻ một phần hoặc tất cả dữ liệu của chúng với các mạng IoT blockchain
khác dựa trên các cấp độ bảo mật. Các cơ chế đồng thuận khác nhau cũng có thể được sử
dụng cho các sidechains đa dạng để phục vụ các mục đích cụ thể. Kết quả là, sự kết hợp
giữa sidechain và blockchain sẽ mang lại lợi ích to lớn cho các ứng dụng IoT.

Hình 6: Kiến trúc sidechain và mainchain cho IoT

23



2.1.6. Cơ chế đồng thuận
Trong mọi mạng chuỗi khối, cơ chế đồng thuận đóng một vai trị quan trọng để hỗ
trợ tất cả những người tham gia đạt được thỏa thuận về một vấn đề nhất định (ví dụ: tạo
các khối mới). Dựa trên thỏa thuận đã đạt được, cơ chế đồng thuận cũng xử lý vấn đề chịu
lỗi nếu có những người tham gia độc hại trong mạng. Một cơ chế đồng thuận tốt cần đạt
được hiệu quả và tính nhất quán để hoạt động tốt, đồng thời hiệu quả và tiết kiệm chi phí
để đảm bảo hiệu quả cao. Hơn nữa, một sự đồng thuận có thể có cơ chế khen thưởng khuyến
khích các bên tham gia vào mạng lưới blockchain.

Hình 7: Cơ chế đồng thuận trong chuỗi khối 5
Nhiều cơ chế đồng thuận được sử dụng bởi nhiều blockchain phổ biến hiện nay, bao
gồm bằng chứng công việc proof-of-work (PoW) [6] bằng chứng cổ phần proof-of-state
(PoS) [9], bằng chứng cổ phần được ủy quyền Delegated proof-of-state (DPoS) [10], bằng
chứng thời gian đã trôi qua proof-of-elapsed-time (PoET) [11] và khả năng chịu lỗi
byzantine fault tolerant (PBFT). Tuy nhiên, các cơ chế vẫn gây ra một số hạn chế cho các
hệ thống blockchain. Với PoW, bên này cần một quy trình tính tốn máy tính tốn kém để
tạo ra một khối mới và những người khác sẽ bị lãng phí năng lượng vì nhiều thợ đào cạnh
tranh để tạo một khối tại một trường hợp. Với PoS, đây là giải pháp thay thế phổ biến nhất
cho PoW nhưng blockchain được kiểm soát bởi các bên liên quan giàu nhất [12]. DPoS là
phần mở rộng của PoS mà những người nắm giữ tiền xu sử dụng cổ phần của họ để bỏ
phiếu bầu cho các đại biểu, vì vậy người giàu có thể trở nên giàu hơn và nó ít phân cấp hơn
[13]. Với PoET, nó hiện là mơ hình đồng thuận được lựa chọn cho khuôn khổ mô-đun của
Hyperledger Sawtooth. Cơ chế này có thể ngăn chặn việc sử dụng tài nguyên cao và tiêu
thụ năng lượng, nhưng người dùng của blockchain phải tin tưởng vào chip Intel (chống lại
khái niệm phân quyền) [14]. PBFT, là cơ chế nền tảng blockchain được phép phổ biến nhất
và hiện đang được sử dụng bởi Tendermint [15] và cả Hyperledger Sawtooth. Nó không
5

Consensus mechanism: />

24


yêu cầu bất kỳ năng lượng băm nào để phê duyệt các trao đổi trong một chuỗi khối, có
nghĩa là khơng có u cầu sử dụng năng lượng cao và nguy cơ tập trung thấp hơn. Tuy
nhiên, PBFT dễ bị tấn công bởi Sybil và không mở rộng quy mô tốt [16]. Mặc dù các cơ
chế đồng thuận nổi tiếng như PoW và PoS có thể khá tốt về mặt bảo mật và khả năng chống
tấn công, nhưng với các hệ thống IoT dựa trên blockchain, các mơ hình đồng thuận không
đáp ứng tốt hiệu suất như mong muốn của người dùng.
2.1.7. Thuật toán vector clocks
Vector clocks (VC) [17] là một thuật toán tạo ra thứ tự từng phần của các sự kiện
(events) và phát hiện các vi phạm quan hệ nhân quả trong một hệ thống phân tán. Các đồng
hồ (clocks) này mở rộng theo thời gian vô hướng để tạo điều kiện cho một cái nhìn nhất
quán ngẫu nhiên về hệ thống phân tán, chúng phát hiện xem một sự kiện đã đóng góp có
gây ra một sự kiện khác trong hệ thống phân tán hay không. Về cơ bản, nó nắm bắt tất cả
các mối quan hệ bình thường. Thuật tốn này giúp chúng ta gán nhãn mọi tiến trình bằng
một vectơ (danh sách các số nguyên) với một số nguyên cho mỗi đồng hồ cục bộ của mọi
tiến trình trong hệ thống. Vì vậy, với N q trình đã cho, sẽ có vector hoặc mảng có kích
thước N. Vector clock sẽ được giải thích chi tiết hơn dưới đây:
• Giải thuật đưa ra một vetor clocks VC(a) gán cho sự kiện a có thuộc tính là nếu
VC(a) < VC(b) thì sự kiện a là nguyên nhân của b.
• Trong vector clock mỗi tiến trình i, ký hiệu là 𝑃𝑃𝑖𝑖 lưu giữ một 𝑉𝑉𝑉𝑉𝑖𝑖 ( là vector
clock được cung cấp bởi tiến trình i) giá trị N (các tiến trình khác nhau thì N
khác nhau).
• 𝑉𝑉𝑉𝑉𝑖𝑖 [i] là số các sự kiện đã xảy ra tại 𝑃𝑃𝑖𝑖 . Nếu 𝑉𝑉𝑉𝑉𝑖𝑖 [j] = k nghĩa là 𝑃𝑃𝑖𝑖 biết đã có k
sự kiện đã xảy ra tại 𝑃𝑃𝑗𝑗 .

• Yêu cầu là mỗi khi có sự kiện mới xảy ra ở tiến trình 𝑃𝑃𝑖𝑖 thì phải tăng 𝑉𝑉𝑉𝑉𝑖𝑖 [i] và
phải đảm bảo vector này được gửi cùng thông điệp suốt trong q trình.
• Từ đó bên nhận sẽ biết được đã có bao nhiêu sự kiện xảy ra tại 𝑃𝑃𝑖𝑖 .

• Quan trọng hơn phía nhận sẽ báo cho biết là đã có bao nhiều sự kiện ở các tiến
trình khác đã xảy ra trước khi 𝑃𝑃𝑖𝑖 gửi thơng điệp m.

Dưới đây là mô tả chi tiết các hoạt động của thuật toán Vector clock cũng như cách
cập nhập vector trong từng sự kiện qua các thời gian khác nhau:

• Khởi tạo, tất cả các clocks trong vector đều được thiết lập bằng 0, 𝑉𝑉𝑉𝑉𝑖𝑖 [j] = 0 với
mọi j,i
• Mỗi một q trình trải qua một sự kiện ở 𝑃𝑃𝑖𝑖 là nguyên nhân tăng 𝑉𝑉𝑉𝑉𝑖𝑖 [i], nó sẽ
tăng số chiều clock trong vector của chính nó lên 1: 𝑉𝑉𝑉𝑉𝑖𝑖 [𝑖𝑖] ← 𝑉𝑉𝑉𝑉𝑖𝑖 [𝑖𝑖] + 1
25


×