1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật phần mềm: Phương pháp phát hiện lỗ hổng bảo mật hợp đồng thông minh dựa trên biểu diễn đồ thị và trí tuệ nhân tạo khả diễn giải

115 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Phương Pháp Phát Hiện Lỗ Hổng Bảo Mật Hợp Đồng Thông Minh Dựa Trên Biểu Diễn Đồ Thị Và Trí Tuệ Nhân Tạo Khả Diễn Giải
Tác giả Trương Văn Rồng, Lương Mạnh Tiến
Người hướng dẫn TS. Phạm Văn Hậu, ThS. Phan Thế Duy
Trường học Đại Học Quốc Gia Hồ Chí Minh
Chuyên ngành Cử Nhân Ngành An Toàn Thông Tin
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 115
Dung lượng 42,45 MB

Nội dung

TÓM TẮT KHOÁ LUẬNTính cắp thiết của đề tài nghiên cứu: Trong lĩnh vực blockchain, đặc biệt là hợp đồng thông minh, việc phát hiện và ngăn chặn các lỗ hổng bảo mật đóng vai trò vô cùng qu

Trang 1

ĐẠI HỌC QUOC GIA HO CHÍ MINH TRUONG ĐẠI HỌC CÔNG NGHỆ THONG TIN KHOA MẠNG MAY TÍNH VÀ TRUYEN THONG

TRUONG VAN RONG - 20521831 LUONG MANH TIEN - 20522008

SMART CONTRACT VULNERABILITY DETECTION USING

GRAPH REPRESENTAION AND XAI

CỬ NHÂN NGANH AN TOAN THONG TIN

GIANG VIEN HUONG DAN

TS Pham Van Hau

ThS Phan Thé Duy

TP Hồ Chi Minh, 2024

Trang 2

LỜI CẢM ƠN

Đề hoàn thành khóa luận tốt nghiệp này, chúng tôi xin gửi lời cảm ơn đến Ban giám

hiệu Trường Dai hoc Công nghệ Thông tin — Đại học Quốc Gia Thành Phó Hồ Chí Minh

vì đã tạo điều kiện học tập, nghiên cứu tốt nhất Cảm ơn quý thầy cô giảng dạy tại trường nói chung và Khoa Mạng máy tính & Truyền thông nói riêng vì đã truyền đạt những kiến thức chuyên môn bồ ích, những kinh nghiệm thực tế quý báu mà chúng tôi đã học hỏi

được trong suốt quá trình học tập, rèn luyện tại trường.

Trong quá trình nghiên cứu và hoàn thành khóa luận, chúng tôi đã nhận được sự hướng

dẫn, giúp đỡ, những ý kiến đóng góp quý báu và lời động viên từ các giáo viên hướng

dẫn và giáo viên bộ môn Chúng tôi xin chân thành gửi lời cảm ơn đến các thầy cô trong phòng nghiên cứu E8.1 đặc biệt là Thay Phan Thế Duy vi tận tâm và trực tiếp hướng dan,

hỗ trợ chúng tôi trong quá trình nghiên cứu

Chúng tôi cũng muốn bày tỏ lòng biết ơn đến gia đình và bạn bè đã động viên, đóng góp

ý kiến trong quá trình hoàn thành khóa luận.

Cuối cùng, do kiến thức chuyên môn còn hạn chế nên khóa luận chắc chăn không

tránh khỏi những thiếu sót Rất mong nhận được nhận xét, ý kiến đóng góp, phê bình từ quý thầy cô trong hội đồng dé khóa luận được hoàn thiện hơn.

Nhóm thực hiện.

Trương Văn Rồng

Lương Mạnh Tiến

Trang 3

Mục lục

TÓM TẮT KHOÁ LUẬN

1 TONG QUAN ĐỀ TÀI

11 Ly dochọn SN: - á

1.2 Giới thiệu những phương pháp nghiên cứu

1.2.1 Trình phát hiện lỗ hổng trong hợp đồng thông minh

1.22 Mô hình học máy và Mô hình học sâu

13 Tínhứng dụng Ặ QQ Q Q Q SH he 14 Những tháchthức

1.5 Mục tiêu, đối tượng, và phạm vi nghiên cứu

151 Mục tiêu nghiêncứu

15.2 Đối tượng nghiên cứu

15.3 Phạmvinghiêncứu

-1.6 Cấu trúc Khóa luận tốtnghiệp

CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN 21 Giới thiệu vé Blockchain

2.2 Hợp đồng thông minh trong nên tảng Ethereum

2.3 Các loại lỗ hổng trên hợp đồng thông minh

2.3.1 Reentrancy Ặ ee 2.3.2 Timestamp Dependence

2.3.3 Các van dé liên quan đến tính toán số học

2.4 Tấn công đối kháng - Adversarial attack

2.5 Deep learning Q Q Q Q eee 2.5.1 Mô hình Transformer

25.2 MôhìnhBỗERT

2.5.3 Mạng nơron:GNN&GCN

Trang 4

2.6 h` —— eee 33

2.7 Tình hình nghiên cứu và các công trình lên quan 35

2.71 Phương pháp phân tchtnh 35

Kiểm traci pháp -.ẶcS 35 Phân tích luồng điều khiển - 36

Phân tích điều kiện ràng buộc - 36

Phân tích bao mật 36

2.7.2 Mô hình phát hiện lỗ hổng dựa trên học máy 36

Cây quyết định - 37

Mạng nơ-ron dài ngắn hướng hai chiều 37

Tăng cường Gradient cực đại 38

Lightgbm_ ee 38 Nhung đồ thị không đồng nhất 39

2.73 Các nghiên cứu lên quan 40

3 PHƯƠNG PHÁP ĐỀ XUẤT 49 3.1 Kiến trúc tổng quan - cv 49 3.1.1 Tổng quan mô hình dé xuất 49

3.2 Phương pháp xây dựng 51

3.2.1 Luénghoat déngchinh - 51

3.2.2 Bộ dữ liệu hợp đồng thông minh 53

3.2.3 Hợp đồng dạng đồ thị 54

3.2.4 Mô hình tiền huấn luyện GraphCodeBert 56

Graph Masked Attenion 58

Cacnhiémvu 2 ee 59 3.25 Loépphanloai ee eee 60 LSTM (Long Short-Term Memory) 60

BiLSIM (Bidirectional LSTM) 61

Linear Models (Mô hình tuyến tinh) 61

GRU (Gated Recurrentnit) 61

3.2.6 ThuviénSeaborn 0 0000s 62 3.2.7 Kiểm thử thủ công và cải thiện mô hình 64

3.2.8 Chỉ tiết mô hình dé xuất 66

Mái

Trang 5

4_ HIỆN THỰC VÀ ĐÁNH GIÁ, THẢO LUẬN 70

41.1 Cấu hình thựcnghiệm - 70

412 Xây dựng tập dữ liệu 70

41.3 Biểu diễn đồthị 72

Control Flow Graph (CFG) 72

Abstract Syntax Tree (AST) va Data Flow Graph (DFG) 73

41.4 Đặc trưng đầu vào 0 eee 74 41.5 Mơhìnhhọcmáy 76

GNN 2 eee 76 GCN 2 ee và 77 GraphCodeBert 78

4.1.6 Xây dựng trí tuệ nhân tạp khả diễn giải (Explainable Artifi-cial Intelligence-XAI) 80

42 Kịch bản thựcnghiệm 82

42.1 Cáccâuhỏinghiêncứu 82

4.2.2 Cáckichbảnchính 83

So sánh hiệu suất phân loại 83

Trí tuệ nhân tạo khả diễn giải 84

Tan cơng đối kháng - 84

43 Kếtquảthựcnghiệm co 85 4.3.1 So sánh hiệu suất phân loại trên các mơ hình học máy 85

4.3.2 XẠI Q Q Q Q Q Q HQ HQ ee 90 4.3.3 Hiệu suất mơ hình hoc máy khi cĩ tác động của tan cơng đối kháng eee 96 Phuong pháp thêm mẫu tan cơng đối kháng ngẫu nhiên 96 Phương pháp thêm mẫu tan cơng đối kháng dựa vào XAI 97

KET LUẬN VA HƯỚNG PHAT TRIỂN 100

51 Kếtluận eee 100

vii

Trang 6

Danh sách hình ve

2.1

2.2

2.3

2.4

2.5

2.6

2.7

2.8

2.9

2.10

2.11

2.12

2.13

2.14

2.15

2.16

3.1

3.2

3.3

3.4

3.5

3.6

3.7

3.8

4.1

Mô hình Blockchain 12

Mô hình Blockchain - Tinh bat bién 13

Ví dụ về mã nguồn hợp đồng thông minh 17

Mô hình Transformer tổng quát - 20

Mô hình Transformer tổng quát - 24

Thành phần mã hóa - 24

Đầu vào được chia thành các vector - 25

Công thức tính ma trận chúý - 27

Mô hình đầu ra của lớp self-attention - 27

Mô hình dau vào của BERT 29

Vai trò của ExplainableAI 34

MANDO-GURU phát hiện lỗi ở mức độ hợp đồng 41

MANDO-GURU phát hiện lỗi ở mức độ chỉ tiết từng dong 41

Thống kê của bộ dữ liệu tổng hợp MANDO-HGT 45

Biểu đồ so sánh Peculiar vơi các công cụ khác 46

Biểu đồ mất cân bằng dữ liệu của mô hình Peculiar 47

Mô hình nhóm dé xuất - 50

Lỗ hổng được xác định theo từng danh mục theo từng công cụ 53

Quá trình phân tích từ mã nguồn thô thành cây cú pháp trừu tượng 55 Toàn bộ quá trình xử lý từ mã nguồn thô thành đồ thị 56

Mô hình GraphCodeBert 57

Ban đồ nhiệt giúp trực quan hóa từng thuộc tính 63

Quá trình cải thiện môhình 65

Ý tưởng lần đầu tiên c 66

Thống kê tệp dữ liệu trước khi cân bang 71

viii

Trang 7

4.2 Thống kê tệp dữ liệu sau khicânbằng 72

4.3 So sánh hiệu năng mô hình trên dataset của chúng tôi 87

4.4 So sánh hiệu năng mô hình trên dataset Prime-SmartVul [13] 88

4.5 Biểu đồ thể hiện giá trị thuộc tính trung bình của các thuộc tính 904.6 Biểu đồ thể hiện các giá trị thuộc ínhcao 91

4.8 Hợp đồng thông minh có 16 hổng Reentrancy 93

4.9 Hợp đồng thông minh an toàn 94

4.10 Mô hình chưa chỉ chính xác, đầy đủ dòng mã nguồn có lỗ hổng 95

1X

Trang 8

Danh sách bằng

2.1

2.2

3.1

3.2

4.1

4.2

4.3

4.4

4.5

4.6

4.7

4.8

Bảng thống kê số lượng tệp hop đồng thông minh mô hình MANDO

GURU sử dụng để huấn luyện và đánh giá 43

Bang thống kê số lượng tệp hợp đồng thông minh mô hình MANDO HGT sử dụng để huấn luyện và đánh giá 44

Kết hợp GraphCodeBert và các mô hình khác 62

Bảng các thay đổi trước và sau khi thêm thông tin nhiễu 66

Bảng giá trị tham số huấn luyện 84

Bảng các hành động để tắn công 85

Bảng so sánh hiệu năng mô hình trên Dataset của chúng tôi 86

Bang so sánh hiệu nang mô hình trên Dataset của chúng tôi 87

Bảng so sánh hiệu năng mô hình trên Dataset Prime-SmartVul[13] 88 Bảng kết quả kiểm thử thủ công kết quả chỉ vị trí lỗ hổng trên hợp đồng thông minh bằngXAI - 96

Bảng so sánh hiệu suất khi thêm mẫu tan công đối kháng 96 Bảng so sánh hiệu suất khi thêm mẫu tan công đối kháng dựa vào

Trang 9

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

ML Học máy (Machine Learning)

DL Học sâu (Deep Learning)

CFG Đồ thị luồng điều khiển (Control Flow Graph)

CG D6 thi goi ham (Call Graph)

GNN _ D6 thị mang lưới than kinh (Graph Neural Network)

HGNN_ Mạng lưới than kinh dé thị không đồng nhất (Heterogeneous GNN)

NLP Xử lý ngôn ngữ tự nhiên (Natural language processing)

XAI Trí tuệ nhân tạo khả diễn giải (Explainable AI)

AST Cây cu pháp trừu tượng (Abstract syntax tree)

DFG Biểu đồ luồng dữ liệu (Data flow graph)

CDFG Biểu đồ luéng dữ liệu quan trong (Crucial fata flow graph)

xi

Trang 10

Danh mục từ tạm dịch

Mô hình tiền huấn luyện _pre-trained model

Đồ thị không đồng nhất Heterogeneous Graph Neural NetworkGiá trị mat mát Loss value

Hàm giá trị Value function

Hàm kích hoạt Activation function

Hàm mat mát Loss functionHàm lợi thế Advantage Function

Học tăng cường Reinforcement learning Hoc có giám sát Supervised learning

Hoc không giám sát Unsupervised learning Hoc sau Deep learning

Lớp đầu vào Input layerLớp đầu ra Output layer

Trang 11

TÓM TẮT KHOÁ LUẬN

Tính cắp thiết của đề tài nghiên cứu:

Trong lĩnh vực blockchain, đặc biệt là hợp đồng thông minh, việc phát hiện và

ngăn chặn các lỗ hổng bảo mật đóng vai trò vô cùng quan trọng nhằm đảm bảo

tính toàn vẹn và an toàn của các ứng dụng dựa trên công nghệ này.

Với sự phát triển nhanh chóng của công nghệ blockchain, việc tạo ra các hợp

đồng thông minh an toàn trở thành một thách thức Các lỗ hổng trong hợp đồngthông minh có thé dẫn đến việc tấn công và mat mát tài sản quan trong Do đó,cần có các phương pháp và công cụ để phát hiện và báo cáo các lỗ hổng này một

cách tự động và hiệu quả.

Sử dụng các mô hình học máy và học sâu trong việc phát hiện lỗ hổng trong

hợp đồng thông minh mang lại nhiều lợi ích Các mô hình này có khả năng phânloại và xác định các lỗ hổng bảo mật trong các hợp đồng thông minh một cách tựđộng, giúp giảm thiểu công sức và thời gian của nhà phát triển Đồng thời, việc

sử dụng học sâu cho phát hiện lỗ hổng cũng có thể phân biệt được các lỗ hổngtỉnh vi và khó nhận ra bằng phương pháp truyền thống.

Vì vậy, dé tài nghiên cứu này mang tính cấp thiết để xây dựng các công cu,

phương pháp mới sử dụng mô hình học máy, học sâu để phát hiện và ngăn chặn

lỗ hổng trong hop đồng thông minh Nhóm chúng tôi tiến hành kiểm thử lại các

mô hình phổ biến hiện có với tệp dữ liệu cân bằng, có chứa các mẫu đối kháng

nhằm kiểm chứng và so sánh kết quả với mục đích cung cấp cái nhìn tổng quan

nhất về lĩnh vực này ở thời điểm hiện tại Đồng thời, nhóm chúng tôi để xuất một

phương pháp mới để phát hiện lỗi, dựa trên việc biểu diễn dữ liệu dưới dạng đồ

thị Phương pháp này đã được chứng minh có độ chính xác vượt trội hơn so với

các phương pháp hiện hành Đặc biệt, chúng tôi còn áp dụng thêm trí tuệ nhân

tạo khả diễn giải để xác định rõ ràng dòng mã nào có khả năng bị lỗi, đồng thời

dựa vào đây để xây dựng các kịch bản tấn công đối kháng nhằm cải thiện mô

hình, điều này là một bước đột phá so với các phương pháp hiện có chưa thể đạt

được.

Trang 12

Chương 1

TONG QUAN DE TÀI

Tom tat chuong

Chương nay giới thiệu về van dé và các nghiên cứu liên quan Đồng thời, trongchương này chúng tôi cũng trình bày phạm vi và cau trúc của khóa luận

11 Lý do chọn đề tài

Ngày nay, với sự phát triển mạnh mẽ của khoa hoc và công nghệ, sự kết nổi ngàycàng tăng của thé giới kỹ thuật số thông qua việc sử dung Internet đã thay đổi

cách thức hoạt động của các cá nhân, doanh nghiệp và chính phủ, tạo nên những

lợi ích về kinh tế và xã hội đáng kể Tuy nhiên, đi cùng với đó là sự tăng lên vềmặt cơ hội cho tội phạm mạng thực hiện các cuộc tấn công độc hại với hy vọng

có được quyền truy cập vào dữ liệu nhạy cảm với những mục đích khác nhau.Bảo mật hợp đồng thông minh là một lĩnh vực nghiên cứu mới nổi, đối phó với

các van dé an ninh phát sinh từ việc thực thi các hợp đồng thông minh trong hệthống blockchain Nhìn chung, một hợp đồng thông minh là một đoạn mã có thể

thực thi tự động trên blockchain để áp dụng một thỏa thuận được thiết lập trướcgiữa các bên liên quan đến giao dịch Là một công nghệ đổi mới, hợp đồng thông

minh đã được áp dụng trong nhiều lĩnh vực kinh doanh khác nhau, chang hạn

như trao đổi tài sản kỹ thuật số, chuỗi cung ứng, gây quỹ và sở hữu trí tuệ Thậtkhông may, nhiều vấn dé bảo mật trong các hợp đồng thông minh đã được báocáo trên phương tiện truyền thông, thường dẫn đến thiệt hại tài chính đáng kể.Các vấn đề an ninh này đặt ra những thách thức mới cho nghiên cứu an ninh bởimôi trường thực thi của hợp đồng thông minh dựa trên tính toán blockchain va

2

Trang 13

Chương 1 TỔNG QUAN ĐỀ TÀI

tính phân tán của việc thực thi Cho đến nay, những giải pháp được đề ra với mụctiêu giải quyết các khía cạnh cụ thể của các van dé an ninh này là phát triển cácphương pháp và công cụ mới để tự động phát hiện các lỗ hổng bảo mật thôngthường Tuy nhiên các phương pháp này còn nhiều hạn chế và tính chính xácchưa cao, vẫn còn đặt ra rất nhiều vấn đề tồn đọng cho bài toán này

An ninh của hợp đồng thông minh là một van dé toàn cầu đòi hỏi sự khám phátoàn điện và sự đóng góp từ nhiều nghiên cứu khác nhau Để nâng cao tính chính

xác và hiệu quả trong lĩnh vực này, cần phát triển thêm nhiều ý tưởng và dé xuất

mới Điều này giúp mở ra nhiều hướng tiếp cận khác nhau để giải quyết bài toán,đồng thời tăng cường sự đa dạng trong các phương pháp và công nghệ được ápdụng Với mục tiêu này, chúng tôi tiến hành tìm hiểu và thực hiện lại các phươngpháp cũng như mô hình ứng dụng học máy nhằm phát hiện các lỗ hổng phổ biến

cũng như so sánh với các công cụ và mô hình hiện có nhằm mang đến góc nhìn

tổng quan nhất về chủ dé nay Chúng tôi đã tiến hành phân loại một bộ dữ liệu

mới, bao gồm các hợp đông có lỗi và không có lỗi, đảm bảo sự cân bằng giữahai loại hợp đồng Từ bộ dữ liệu này, chúng tôi thực hiện huấn luyện, kiểm thử

và đánh giá toàn bộ các phương pháp và mô hình hiện có nhằm đưa ra một bứctranh tổng quát, toàn cảnh và trực quan nhất về van dé Đặc biệt, chúng tôi đềxuất một phương pháp sử dụng biểu diễn dữ liệu dưới dạng đồ thị kết hợp với

mô hình trí tuệ nhân tạo tiền huấn luyện là GraphCodeBERT dùng để embeddingkết với với nhiều mô hình phân loại khác nhau, mang lại kết quả rất tốt, cao hơn

so với các phương pháp hiện tại Hơn thế nữa, chúng tôi tích hợp trí tuệ nhân

tạo khả diễn giải để giải thích từng lớp trong mô hình, chỉ ra các thuộc tính quan

trọng trong quyết định của mô hình, từ đó xác định rõ từng dòng mã nguồn cụthể có khả năng bị lỗi, đồng thời xây dựng các kịch bản tan công đối kháng khácnhau nhằm cải thiện mô hình Đây là một hướng phát triển rất mới, chưa từng cónghiên cứu nào về chủ đề liên quan đề cập và thực hiện được Chúng tôi hy vọngrằng nghiên cứu tiên phong này sẽ truyền cảm hứng, cung cấp ý tưởng và nềntảng cho các nghiên cứu tiếp theo, giúp các phương pháp ngày càng hoàn thiện

và chính xác hơn Bằng cách này, chúng tôi mong muốn đóng góp một phần vàoviệc giải quyết bài toán phát hiện lỗi trong hợp đồng thông minh nói riêng, vàgóp phần vào sự phát triển của nền nghiên cứu khoa học néi chung

Trang 14

Chương 1 TỔNG QUAN ĐỀ TÀI

1.2 Giới thiệu những phương pháp nghiên cứu

1.2.1 Trinh phát hiện lỗ hổng trong hợp đồng thông minh

Trinh phát hiện lỗ hổng trong hợp đồng thông minh đặt ra mục tiêu tìm ra các lỗhổng bảo mật tiềm ẩn trong mã nguồn của hợp đồng thông minh Điều này giúpnhận biết các điểm yếu có thể bị tấn công và ngăn chặn các hành vi độc hại hoặcchiếm đoạt tài sản trong môi trường hợp đồng thông minh

Các phương pháp trình phát hiện lỗ hổng trong hợp đồng thông minh có thểbao gồm:

1 Phân tích tinh: Sử dung phân tích tĩnh để xem xét cau trúc và luéng đi của

mã nguồn hợp đồng thông minh, từ đó tìm ra các điểm yếu có thể dẫn đến lỗ

hổng bảo mật.

2 Phân tích động: Sử dụng phân tích động để theo dõi thực thi của hợp đồngthông minh trong môi trường thử nghiệm hoặc mô phỏng Điều này giúp pháthiện các hành vi không mong muốn và các lỗ hổng bảo mật hiện diện trong quá

Các công cụ này sử dụng các kỹ thuật như phân tích tĩnh, phân tích động, và mô

hình hóa để giúp nhận diện các lỗ hổng và đưa ra những gợi ý cải thiện.

Trình phát hiện lỗ hổng trong hợp đồng thông minh đóng vai trò quan trọng

trong việc nâng cao an ninh và độ tin cậy của hợp đồng thông minh Bang cách

tìm ra và giải quyết các lỗ hổng bảo mật, chúng ta có thể đảm bảo rằng hợp đồng

thông minh hoạt động một cách an toàn và tin cậy trong môi trường blockchain

ở phần trình bày này nhóm chúng tôi dé cập đến các mô hình học máy (Machine

Learning) và học sâu (Deep learning) như Mạng lưới thần kinh đồ thị không

đồng nhất (Heterogeneous Graph Neural Network) đồng thời đánh giá các môhình như: Cây quyết định (Decision tree), Máy tăng cường độ dốc nhẹ (Light

gradient-boost machine), Tang cường Gradient cực đại (XGBoost), Mang nơ-ron

Trang 15

Chương 1 TỔNG QUAN ĐỀ TÀI

đài ngắn hướng hai chiều (Bidirectional Long short-term memory), Rừng ngẫu

nhiên (Random Forest),

Hiện nay thi các phương pháp truyền thống để phân loại, phát hiện lỗ hổngbảo mật trên hợp đồng thông minh đều dựa trên symbolic execution, tuy nhiên

nó rất là tốn thời gian và có tỉ lệ dương tính giả cao bởi số lượng siêu tham số làrất nhiều, thời gian tính toán để trích xuất đặc trưng sẽ rất cao Hay một số côngtrình khác sử dụng BERT thuần trong mô hình xử lí ngôn ngữ tự nhiên đang là

xu thế của bài toán phát hiện phân loại lỗ hổng, tuy nhiên BERT lại không bắt

được đầy đủ về mặt ngữ nghĩa của code vì khác với ngôn ngữ tự nhiên như vănnói văn viết, code sẽ mang một cau trúc nhất định N guyên nhân là do khi đưa

vào mô hình BERT, nó chỉ xem đoạn code là một chuỗi token tương tự như ngôn

ngữ nói viết, hoặc chỉ là một cách biểu diễn đơn giản như là graph

Một hạn chế của những mô hình truyền thống trước đó nữa chính là số lượngmau âm tính trong tập dir liệu là khá nhỏ, gây ra mat cân bằng dữ liệu từ đó cho

ra kết quả có độ chính xác không cao sau khi huan luyện Ngoài ra, các mô hình

hay phương pháp hiện nay chỉ có thể phát hiện lỗ hổng trên các nhãn đã xác định, chưa có khả năng phát hiện ra lỗ hổng mới khác.

1.2.2 Mô hình học máy và Mô hình học sâu

Mô hình học máy (Machine Learning Model) là một công cụ hoặc thuật toán được

sử dụng trong lĩnh vực học máy Đặc trưng nổi bật của mô hình học máy là khả

năng học từ dữ liệu và sử dụng các mẫu đã học được để dự đoán hoặc phân loạidit liệu mới Quá trình này bao gồm việc huấn luyện mô hình trên một tập dữ

liệu huấn luyện, trong đó mô hình sẽ điều chỉnh các tham số của mình để tối ưu

hóa hiệu suất dự đoán hoặc phân loại Sau khi huấn luyện, mô hình có thể ápdụng để phân tích và dự đoán trên các tập dữ liệu chưa từng thấy trước đó Quátrình huấn luyện này thường bao gồm các bước như chọn thuật toán, điều chỉnhsiêu tham số, và đánh giá mô hình trên các tập dữ liệu kiểm tra Để minh họa, ta

có thể áp dụng mô hình học máy để phát hiện các lỗ hổng trong hợp đồng thôngminh, sử dụng biểu diễn dưới dạng đồ thị và kỹ thuật trí tuệ nhân tạo khả diễngiải Trong kịch bản này, mô hình học máy sẽ được huấn luyện trên một bộ dữliệu các đoạn mã hợp đồng thông minh, trong đó mỗi mẫu biểu thị một đoạn mãđược gán nhãn là có lỗ hổng hoặc an toàn dựa trên các lỗ hổng đã biết Trong quá

Trang 16

Chương 1 TỔNG QUAN ĐỀ TÀI

trình huấn luyện, mô hình học và nhận diện các mẫu và đặc trưng tiêu biểu củacác lỗ hổng, điều chỉnh các tham số thông qua các thuật toán như mạng nơ-ronhay cây quyết định Sau khi hoàn thành việc huấn luyện, mô hình có thể dùng

để phân tích các đoạn mã hợp đồng mới để dự đoán liệu chúng có chứa lỗ hổnghay không Các dự đoán này dựa trên sự hiểu biết của mô hình về những gi taothành một lỗ hổng, được rút ra từ các đặc trưng như loại giao dịch, câu trúc dé

thị, hoặc các hành vi không mong muốn Bằng cách làm rõ các đoạn mã cụ thể

đóng góp vào quyết định của mô hình, ta có thể cung cấp sự minh bạch về lý do

mà mô hình xác định một hợp đồng là an toàn hay có lỗ hổng

Mô hình học sâu (Deep Learning Model) là một loại mô hình học máy đặc

biệt, được xây dựng dựa trên kiến trúc mạng neural nhân tạo (Artificial Neural

Network) Mô hình học sâu có khả năng học và hiểu các đặc trưng phức tạp củadir liệu thông qua việc sử dụng nhiều lớp ẩn và hàng triệu trọng số kết nồi Dacđiểm này giúp mô hình học sâu xử lý và hiểu được các dữ liệu phức tạp như ảnh,

âm thanh, ngôn ngữ tự nhiên và nhiều loại dữ liệu khác Một số ví dụ phổ biếncủa mô hình học sâu bao gồm:

* Convolutional Neural Networks (CNN): Được sử dụng chủ yếu trong xử

lý ảnh và thị giác máy tính, CNN có khả năng tự động học các đặc trưng

không gian từ ảnh và video, cho phép nhận dạng đối tượng, phân loại ảnh,

và phát hiện sự vật.

© Recurrent Neural Networks (RNN): Được thiết kế để xử lý dữ liệu tuần tự

hoặc chuỗi thời gian, RNN có khả năng ghi nhớ thông tin từ các bước trước

đó trong chuỗi, phù hợp cho các nhiệm vụ như xử lý ngôn ngữ tự nhiên, dự

đoán chuỗi thời gian, và nhận dạng giọng nói.

* Transformer: Một kiến trúc mới hơn, nổi bật trong xử lý ngôn ngữ tự nhiên.

Transformers sử dụng cơ chế tự chú ý để mô hình hóa các mối quan hệ giữa

các từ trong một câu hoặc đoạn văn, cho phép thực hiện các tác vụ như dịch

máy, tổng hợp văn bản, và trả lời câu hỏi.

Trang 17

Chương 1 TỔNG QUAN ĐỀ TÀI

1.3 Tinh ứng dụng

Ứng dụng của hợp đồng thông minh ngày càng mở rộng sang các lĩnh vực như

tài chính phi tập trung (DeFi), bảo hiểm, IoT, chứng nhận và quản lý tài sản số.Việc áp dụng học máy để bảo vệ các hợp đồng thông minh là cực kỳ quan trọng

để đảm bảo tính toàn vẹn và an toàn của các giao dịch và dịch vụ này

Công cụ phát hiện lỗ hổng dựa trên học máy giúp giảm thiểu sai sót do conngười trong quá trình kiểm tra mã nguồn, đặc biệt là với các hợp đồng thông

minh phức tạp và có quy mô lớn Bằng cách phân tích và đánh giá tự động, các

nhà phát triển có thể hiểu rõ hơn về các điểm yếu của hợp đồng thông minh và

cải tiến mã nguồn để tăng tính bảo mật và đáng tin cậy

Đề tài này giúp ích cho việc hiểu rõ hơn về việc áp dụng các phương pháp họcmáy, học sâu vào việc phát hiện lỗ hổng trên hợp đồng thông minh Từ đó nhậnbiết được ưu nhược điểm để phát triển thành một mô hình hiệu quả

Phương pháp mà chúng tôi dé xuất tập trung vào việc trích xuất các biểu déluồng dữ liệu quan trong từ hợp đồng thông minh So với các phương pháp hiệntại, không chỉ tập trung vào phân tích sự phụ thuộc giá trị giữa các biến chươngtrình và các hàm, mà còn đặc biệt quan tâm đến các thông tin kỹ thuật liên quan

đến các lỗ hổng bảo mật Điều này cải thiện khả năng phát hiện và đánh giá các

điểm yếu bảo mật trong mã nguồn

Nghiên cứu của chúng tôi cũng khảo sát khả năng áp dụng các mô hình đã

được huấn luyện trước để phát hiện lỗ hổng bảo mật Kết quả của các thử nghiệm

mở rộng đã chứng minh rằng phương pháp của chúng tôi vượt trội đáng kể sovới các kỹ thuật tiên tiến nhất hiện nay Đặc biệt khi kết hợp với trí tuệ nhân tao

khả diễn giải, chúng tôi có thể chỉ ra các thuộc tính quan trọng ảnh hưởng đếnquyết định của mô hình, từ đó xác định rõ dòng mã nguồn có khả năng có lỗi

Đây là một nghiên cứu đột phá chưa từng có trước đây, có thể giúp người phát

triển phần mềm tránh sai sót khi phát triển các hợp đồng thông minh phức tạp và

có quy mô lớn Công trình nghiên cứu này đại diện cho một bước tiến quan trọngtrong việc khai thác tiém năng của các phương pháp sử dụng mô hình đã đượchuấn luyện trước để phát hiện lỗ hổng bảo mật trong hợp đồng thông minh

Trang 18

Chương 1 TỔNG QUAN ĐỀ TÀI

1.4 Những thách thức

Hiện nay, một trong những thách thức lớn đối với nghiên cứu an ninh trong hợpđồng thông minh là vấn dé liên quan đến dữ liệu Các mô hình hiện tại thườngdựa trên các bộ dữ liệu hạn chế hoặc các bộ dữ liệu do các tác giả tự thu thập

thường có xu hướng mat cân bằng giữa tỉ lệ hợp đồng có lỗi và tỉ lệ hợp đồng an

toàn, đặc biệt là tỉ lệ hợp đồng có lỗi rất cao Điều này có thể dẫn đến các mô hìnhcho kết quả không chính xác hoặc thiên vị hơn so với thực tế khi áp dụng trên các

bộ dw liệu lớn khác.

Khó khăn trong việc xây dựng đồ thị đa dạng: các phương pháp hiện nay như

MANDO-GURU[10] sử dụng biểu diễn dựa trên đồ thị đa dạng để biểu thị mối

quan hệ giữa các thành phần trong mã nguồn hợp đồng Xây dung đồ thị đa dangchính xác và đầy đủ có thể đòi hỏi phân tích cú pháp phức tạp và xử lý các tình

huống đặc biệt trong mã nguồn

Độ phức tap của mã nguồn hợp đồng: Hợp đồng thông minh có thể có mã

nguồn phức tạp, chứa các ngôn ngữ lập trình đa dạng và các khối mã khó hiểu

Điều này làm cho việc trích xuất các thành phần cần thiết và xây dựng đồ thị đađạng trở nên khó khăn, ảnh hưởng đến hiệu suất và chính xác của các phương

pháp hiện tại.

Hiệu suất và khả năng mở rộng: Xử lý dé thị da dang và các phép tính liênquan có thể tốn nhiều thời gian và tài nguyên tính toán Các công cụ và phươngpháp hiện hành cần có khả năng mở rộng để xử lý các hợp đồng lớn và phức tạpmột cách hiệu quả, đồng thời đảm bảo hiệu suất cao trong việc phát hiện lỗ hổng

Độ chính xác của phát hiện: Mặc dù đã có các phương pháp thể hiện đượcnhiều thé mạnh nhất định như MANDO-GURU sử dụng phương pháp đồ thị đa

dạng để phát hiện lỗ hổng, độ chính xác của phát hiện có thể bị ảnh hưởng bởi

sự phức tạp và da dạng của mã nguồn hop đồng Với tệp dữ liệu huấn luyện vàđánh giá rất ít có thể xảy ra các trường hợp sai sót hoặc bỏ sót trong việc phát

hiện lỗ hổng.

Trang 19

Chương 1 TỔNG QUAN ĐỀ TÀI

1.5 Mục tiêu, đối tượng, và phạm vi nghiên cứu

1.5.1 Mục tiêu nghiên cứu

Ung dụng các mô hình phân loại học máy để phát hiện các lỗ hổng trong hợp

đồng thông minh dựa trên biểu diễn dé thị kết hợp trí tuệ nhân tạo khả diễn giải,

nhằm phân tích chỉ tiết các đoạn mã của hợp đồng thông minh có nguy cơ lỗitrong các hợp đồng chứa lỗi, đồng thời chỉ ra yếu tố nào góp phần vào quyết địnhrằng hợp đồng này là an toàn

1.5.2 Đối tượng nghiên cứu

Đối tượng nghiên cứu:

¢ Hợp đồng thông minh

s® Xử língôn ngữ tự nhiên trên mạng nơ-ron

¢ Mô hình học máy phân loại

® Mô hình trí tuệ nhân tạo được đào tạo trước

se Trí tuệ nhân tạo khả diễn giải

1.5.3 Phạm vi nghiên cứu

Nhóm phân loại một bộ dữ liệu thống nhất, cân bằng giữa số lượng hợp đồng

thông minh có lỗi và hợp đồng thông minh an toàn Trích xuất các đặc tính từ mãnguồn của hợp đồng thông minh, đưa vào các mô hình học máy phân loại khác

nhau, đánh giá và so sánh hiệu quả của các mô hình này với các mô hình có sẵn

trên bộ dữ liệu đồng nhất Đầu vào (input) của các mô hình ở dạng bản mã nguồnthô (raw code) được tiền xử lý trở thành opcode hoặc các dé thị khác nhau, sau

đó được nhúng (embedding) trong các mô hình khác nhau cuối cùng đầu ra làkết quả mã nguồn có lỗi hay không và chỉ rõ dòng code nào biểu thị điều này

Trang 20

Chương 1 TỔNG QUAN ĐỀ TÀI

Chúng tôi trình bày nội dung của Khóa luận theo câu trúc trong 5 chương như

sau:

Chương 1: TỔNG QUAN ĐỀ TÀI

Trình bày khái quát định hướng nghiên cứu của khóa luận mà chúng tôi

muốn hướng tới

Chương 2: CƠ SỞ LÝ THUYẾT / CÁC NGHIÊN CỨU LIÊN QUAN

Trình bày các định nghĩa, khái niệm cũng như những kiến thức nền tảng để

có thể thực hiện được nghiên cứu Đồng thời trình bày sơ lược một số công

trình liên quan có cùng hướng nghiên cứu.

Chương 3: PHƯƠNG PHÁP THUC HIỆN

Là phần trọng tâm của khoá luận, trình bày những nội dung chính về phương

pháp thực hiện và mô hình được sử dụng.

Chương 4: HIỆN THỰC, ĐÁNH GIÁ VÀ THẢO LUẬN

Dé cập đến quá trình hiện thực hóa phương pháp dé cập ở Chương 3 Sau đótrình bày phương pháp thực nghiệm, đánh giá kết quả và thảo luận chung

Chương 5: KET LUẬN VA HƯỚNG PHAT TRIỂN

Đưa ra kết luận về đề tài, đề xuất một số hướng phát triển mở rộng cho các

nghiên cứu trong tương lai.

10

Trang 21

hổng trên hợp đồng thông minh bằng phương pháp học máy, học sâu cũng như

những điểm khác của khóa luận này với những nghiên cứu trước đây.

2.1 Giới thiệu về Blockchain

Khái niệm Blockchain

Blockchain là một công nghệ đột phá mang tính cách mạng, được phát triển lần

đầu tiên để hỗ trợ cho đồng tiền điện tử Bitcoin vào năm 2008 bởi một cá nhân

hoặc nhóm người dưới bí danh Satoshi Nakamoto Blockchain là một hệ thống cơ

sở dữ liệu phân tán, nơi thông tin được lưu trữ trong các khối (blocks) được liên

kết với nhau theo chuỗi (chain) bằng cách sử dụng mật mã học Mỗi khối chứa

một số giao dịch và mỗi khối mới sẽ liên kết với khối trước đó, tạo thành mộtchuỗi liên tục và không thể thay đổi Dễ dàng hình dung các khối và chuỗi đượcliên kết với nhau qua hình ảnh 2.1

11

Trang 22

Chương 2 CƠ SỞ LÝ THUYẾT VA CÁC NGHIÊN CỨU LIEN QUAN

1 Phân tán và phi tập trung: Thay vì một cơ sở dữ liệu trung tâm, blockchain

được lưu trữ trên nhiều nút mạng (nodes), mỗi nút chứa một bản sao của

toàn bộ blockchain.

2 Bất biến: Một khi thông tin đã được ghi vào blockchain, nó không thể bị

thay đổi hoặc xóa bỏ mà không làm thay đổi tất cả các khối sau đó, do đó,

dữ liệu được đảm bảo tính toàn vẹn và chống gian lận Rõ hơn ở HÌNH 2.2

khi bị thay đổi giá trị hàm băm ở khối trước, ngay lập tức khối ở phía saunhận ra và từ chối

3 Minh bạch: Tất cả các giao dịch trên blockchain đều có thể được kiểm tra

bởi bất kỳ ai tham gia vào mạng, tạo ra một hệ thống minh bạch và có thể

theo đõi.

12

Trang 23

Chương 2 CƠ SỞ LÝ THUYẾT VA CÁC NGHIÊN CỨU LIEN QUAN

Hash: 178F Hash: gpeT H62Y : Hash: 3H40

Uh thats

Previous hash: 0000 Previous hash: 1Z8F not right?? Previous hash:( 6BQ1

HINH 2.2: Mô hình Blockchain - Tinh bat biến

Nguyên lý hoạt động cua Blockchain

Nguyên lý hoạt động của blockchain có thể được mô tả qua các bước sau:

1 Giao dịch: Một giao dịch được khởi tạo và gửi lên mạng blockchain.

2 Xác thực giao dịch: Các nút mạng sẽ xác thực giao dịch bằng cách kiểm

tra tính hợp lệ của nó Điều này thường được thực hiện thông qua các cơchế đồng thuận như Proof of Work (PoW), Proof of Stake (PoS), hoặc các

phương pháp khác.

3 Tạo khối mới: Sau khi giao dịch được xác thực, nó sẽ được gộp vào một khối

mới cùng với các giao dịch khác.

4 Liên kết khối: Khối mới được liên kết với khối trước đó bằng cách sử dụng

một hàm băm (hash function) Hàm băm này tạo ra một mã số duy nhất dựatrên thông tin của khối hiện tại và khối trước đó

5 Phát tán khối: Khối mới được phát tán tới tất cả các nút trong mạng, cập

nhật bản sao của blockchain trên mỗi nút.

6 Lặp lại: Quá trình này tiếp tục với các giao dịch và khối mới, tạo nên một

chuỗi khối liên tục và ngày càng dài hơn

13

Trang 24

Chương 2 COSO LY THUYET VA CÁC NGHIÊN CUU LIEN QUAN

Các loại Blockchain Blockchain có thể được phân loại thành ba loại chính:

® Public (công khai)

® Private (riêng tư)

® Consortium (liên minh)

Blockchain Công khai (Public Blockchain)

Blockchain công khai là loại blockchain mở cho tất cả mọi người tham gia vàkhông yêu cầu sự cho phép Bất kỳ ai cũng có thể đọc, ghi, và tham gia vào quátrình đồng thuận của mạng Một số ví dụ nổi bật về blockchain công khai làBitcoin và Ethereum Những đặc điểm chính của blockchain công khai bao gồm:

® Minh bạch: Tất cả các giao dịch và dit liệu đều có thể được kiểm tra bởi bat

ky ai.

¢ Phan tán: Không có một thực thể nào kiểm soát toàn bộ mang, dam bảo tính

phi tập trung.

© Bảo mật: Sử dụng các cơ chế đồng thuận như PoW hoặc PoS để đảm bảo

tính toàn vẹn của dữ liệu.

Blockchain Riêng tư (Private Blockchain)

Blockchain riêng tư là loại blockchain chỉ cho phép một số lượng người dùng hạnchế tham gia Quyền đọc, ghi, và tham gia vào quá trình đồng thuận đều đượckiểm soát bởi một tổ chức hoặc nhóm người nhất định Điều này tạo ra một môi

trường kiểm soát hơn và bảo mật hơn cho các ứng dụng doanh nghiệp Các đặc

điểm chính của blockchain riêng tư bao gồm:

® Kiểm soát truy cập: Chỉ những người dùng được ủy quyền mới có thể tham

gia.

® Hiệu suất cao: Do số lượng nút hạn chế, các giao dịch có thể được xử lý

nhanh hơn.

* Bảo mật: Dữ liệu và giao dịch chỉ hiển thị với các thành viên được ủy quyền,

tăng cường bảo mật.

14

Trang 25

Chương 2 COSO LY THUYET VA CÁC NGHIÊN CUU LIEN QUAN

Blockchain Liên minh (Consortium Blockchain)

Blockchain liên minh là loại blockchain lai, kết hợp các yêu tố của cả blockchaincông khai và riêng tư Một số nút được chọn sẽ tham gia vào quá trình đồngthuận, trong khi quyền truy cập vào blockchain có thể được mở rộng hoặc giớihạn tùy thuộc vào các quy tắc của liên minh Điều này thường được áp dụngtrong các lĩnh vực yêu cầu sự hợp tác giữa nhiều tổ chức, như tài chính, chăm sóc

sức khỏe, và chuỗi cung ứng Các đặc điểm chính của blockchain liên minh bao

gồm:

¢ Hợp tác: Cho phép nhiều tổ chức cùng làm việc trên một blockchain chung

¢ Hiệu suất và bảo mật: Cân bằng giữa tính bảo mật và hiệu suất bang cách

hạn chế quyền truy cập và tối ưu hóa quá trình đồng thuận

¢ Tính minh bạch: Tùy thuộc vào quy tắc của liên minh, mức độ minh bạch

có thể được điều chỉnh để phù hợp với yêu cầu của các tổ chức tham gia

2.2 Hợp dong thông minh trong nên tang Ethereum

Ethereum là một platform sử dụng công nghệ Blockchain để hỗ trợ trong việc

thực thi các hợp đồng thông minh Hợp đồng thông minh là các chương trình máy

tính không thể bị thay đổi sau khi được triển khai trên Blockchain của Ethereum

và chạy trong ngữ cảnh máy ảo Ethereum Virtual Machine EVM là môi trường

thực thi (runtime environment) cho smart contract trong Ethereum, EVM không

chỉ là sandboxed ma nó hoàn toàn độc lập, tach biệt — Ma (code) được thực thi

trong EVM không ảnh hưởng đến mạng lưới (network), tập tin hệ thống

(filesys-tem).

Các hợp đồng thông minh có thể được viết bằng nhiều ngôn ngữ lập trình khácnhau, nhưng ngôn ngữ phổ biến nhất cho việc lập trình hợp đồng thông minh làSolidity Solidity là ngôn ngữ lập trình chính thức cho các hợp đồng thông minhtrên nền tảng Ethereum

Cấu trúc của một tập tin hợp đồng thông minh trên Solidity như sau:

* pragma solidity: Một pragma (chỉ thị) trong Solidity để khai báo phiên

bản Solidity được sử dụng trong hợp đồng Trong trường hợp này, phiên

bản Solidity từ 0.8.0 trở lên được yêu cầu để biên dịch hợp đồng

15

Trang 26

Chương 2 COSO LY THUYET VA CÁC NGHIÊN CUU LIEN QUAN

* contract: Khai báo một hợp đồng thông minh có tên là SmartContract

Hợp đồng này chứa toàn bộ mã lệnh và logic của smart contract

* constructor: Hàm khởi tạo (constructor) của hợp đồng Ham này được

gọi duy nhất một lần khi hợp đồng được triển khai và dùng để khởi tạo cácgiá trị ban đầu và thực hiện các thiết lập khác cho hợp đồng

e event: Sự kiện (event) trong hợp đồng thông minh được sử dụng để ghi lại

và thông báo về các hoạt động quan trọng xảy ra trong hợp đồng Sự kiện

có thể được lắng nghe và xử lý bên ngoài hợp đồng

se modifier: Modifier (bộ điều kiện) trong hợp đồng thông minh được sử

dụng để kiểm tra và thay đổi luồng thực thi của các hàm và phương thứctrong hợp đồng Modifier giúp kiểm tra các điều kiện trước khi hàm được

thực thi.

¢ fallback function: Fallback function là một hàm đặc biệt trong hợp đồng

thông minh được gọi khi không có hàm nào khác phù hợp được gọi trong

hợp đồng Fallback function được sử dụng để xử lý các giao dịch không xácđịnh hoặc các tác vụ khác nhau trong hợp đồng

¢ function: Các hàm (function) trong hợp đồng thông minh định nghĩa các

tác vụ và chức năng cụ thể mà hợp đồng có thể thực hiện Các hàm này cóthể được gọi từ bên ngoài hợp đồng hoặc từ các hàm khác trong hợp đồng

¢ variable: Biến (variable) trong hợp đồng thông minh được sử dụng để

lưu trữ dữ liệu và thông tin trong quá trình thực thi hợp đồng Biến có thểđược khai báo với các kiểu dữ liệu cụ thể và được sử dụng trong các hàm

và phương thức khác của hợp đồng

Trang 27

Chương 2 COSO LY THUYET VA CÁC NGHIÊN CUU LIEN QUAN

pragma solidity *0.8.0;

contract SmartContract {

uint256 public myNumber;

event NumberUpdated(uint256 newValue) ;

HINH 2.3: Ví du về mã nguồn hợp đồng thông minh

Ở HÌNH 2.3 ta thấy rõ cấu trúc từng thành phần cốt lõi của một hợp đồng

thông minh.

2.3 Các loại lỗ hong trên hop đồng thông minh

Hợp đồng thông minh (smart contract) là một phần mềm tự thực thi trên nềntảng blockchain, được thiết kế để tự động hóa và thực hiện các thỏa thuận màkhông cần sự can thiệp của bên thứ ba Tuy nhiên, giống như bat kỳ phần mềmnào khác, hợp đồng thông minh cũng có thể chứa các lỗ hổng bảo mật, tiềm ẩnnhững rủi ro nghiêm trọng đối với tính bảo mật và tài chính của người dùng dochứa các lỗ hổng như Reentrancy, phụ thuộc vào Timestamp, và các van dé liênquan đến tính toán số học Việc hiểu và phòng ngừa các lỗ hổng này là cần thiết

để xây dựng các ứng dụng an toàn trên nền tảng blockchain Trong ngữ cảnh hợp

đồng thông minh có rất nhiều loại lỗ hổng khác nhau như từ chối dịch vụ phântán (DDOS), Frontrunning, các lỗi về logic, tuy nhiên nhóm tập trung vào trìnhbày một vài lỗ hổng tiêu biểu của hợp đồng thông minh, đặc biệt nhất là lổ hổng

đặc thù Reentrancy.

17

Trang 28

Chương 2 COSO LY THUYET VA CÁC NGHIÊN CUU LIEN QUAN

2.3.1 Reentrancy

Lỗ hổng Reentrancy xảy ra khi một hợp đồng thông minh thực hiện một cuộc

gọi tới một hợp đồng khác (hoặc chính nó) mà không cập nhật trạng thái trước

khi thực hiện cuộc gọi đó Điều này có thể dẫn đến việc hàm gọi lại (callback) có

thể gọi lại vào hàm gốc trước khi trạng thái được cập nhật, gây ra những kết quả

không mong muốn.

Vi dụ:

Ví dụ nổi tiếng nhất về lỗ hổng Reentrancy là vụ tấn công DAO (Decentralized

Autonomous Organization) vào năm 2016, khi kẻ tấn công lợi dụng lỗ hổng nay

để rút khoảng 60 triệu USD bằng Ether từ DAO

contract VulnerableContract {

mapping(address =>uint256) public balances;

function withdraw(uint256 _amount) public {

require(balances|msg.sender] >=_amount) ;

msg.sender.call.value(_amount) () ; balances(msg.sender] -=_amount;

Trong ví dụ trên, khimsg.sender.call.value(_amount) () được gọi, nếu msg sender

là một hợp đồng độc hại, nó có thể gọi lại hàm withdraw trước khi balances [msg.sender]-= _amount được thực hiện, dẫn đến việc rút tiền nhiều lần

Biện pháp phòng ngừa

Cập nhật trạng thái trước khi gọi: Đảm bảo cập nhật trạng thái của hợp đồng

trước khi thực hiện bat kỳ cuộc gọi nào tới các hợp đồng bên ngoài Sử dụng mẫu

‘Checks-Effects-Interactions’: Luôn kiểm tra điều kiện, cập nhật trạng thái và sau

đó mới thực hiện tương tác với các hợp đồng bên ngoài

function withdraw(uint256 _amount) public {

require (balances [msg.sender] >=_amount) ;

balances [msg.sender] -=_amount;

msg.sender.call.value(_amount) () ;

18

Trang 29

Chương 2 COSO LY THUYET VA CÁC NGHIÊN CUU LIEN QUAN

2.3.2 Timestamp Dependence

Lỗ hổng Timestamp Dependence xảy ra khi logic của hợp đồng thông minh phụ

thuộc vào các giá trị thời gian, như block.timestamp hoặc block.number Kẻ tan

công có thể lợi dụng su thay đổi của thời gian hoặc số block để điều khiển kết

Trong ví dụ trên, kẻ tan công có thể có gắng gọi hàm gamble tại một thời điểm

nhất định để đảm bảo rằng điều kiện block.timestamp % 2 == 0 sẽ đúng, từ đó

nhận được số tiền gấp đôi

Biện pháp phòng ngừa

Tránh sử dung timestamp cho các quyết định quan trọng: Tránh sử dụng block.timestamp

hoặc block.number trong các điều kiện quyết định Sử dụng nguồn ngẫu nhiên

an toàn hơn: Nếu cần ngẫu nhiên, nên sử dụng các nguồn ngẫu nhiên an toàn

hơn, chẳng hạn như các oracle đáng tin cậy.

2.3.3 Các van dé liên quan đến tính toán số học

Các lỗi về tính toán, như tràn số (overflow) và thiếu số (underflow) Các lỗi này

xảy ra khi một phép toán vượt quá giới hạn của kiểu di liệu số, dẫn đến các kết

quả không mong muốn

Ví dụ

function add(uint256 a, uint256 b) public pure returns (uint256) {

return a + b;

}

Trong vi du trén, nếu a và b đều rất lớn, phép toán a + b có thé dẫn đến tran sé,

gay ra két qua sai léch

19

Trang 30

Chương 2 CƠ SỞ LÝ THUYẾT VA CÁC NGHIÊN CỨU LIEN QUAN

Biện pháp phòng ngừa

Sử dụng thư viện SafeMath: Thư viện SafeMath cung cấp các hàm an toàn cho

các phép toán số, đảm bảo không xảy ra tràn số hoặc thiếu số

using SafeMath for uint256;

function add(uint256 a, uint256 b) public pure returns (uint256) {

return a.add(b);

Kiểm tra thủ công: Thực hiện kiểm tra thủ công trước va sau khi thực hiện các

phép toán số để đảm bảo không xảy ra lỗi tràn số hoặc thiếu số

2.4 Tan công đối kháng - Adversarial attack

Tan công đối kháng (adversarial attack) là một lĩnh vực nghiên cứu quan trọngtrong học máy, đặc biệt là trong các hệ thống nhận dạng và phát hiện Cách tấncông này nhằm tao ra các mẫu đầu vào được thiết kế tinh vi để làm sai lệch kếtquả dự đoán của mô hình Mẫu đối kháng thường chỉ khác biệt rất nhỏ so vớidit liệu gốc nhưng có thể dan đến những sai lệch nghiêm trong trong kết quả dự

đoán Cụ thể qua HINH 2.4 sau khi kẻ tan công tác động, mô hình ban dau bi ảnh

hưởng nghiêm trọng và đẫn dến nhận diện sai kết quả

HINH 2.4: Mô hình Transformer tổng quát

Cơ Ché Hoạt Động

Mẫu đối kháng được tạo ra bằng cách thêm vào dữ liệu gốc một lượng nhiễu nhỏ

20

Trang 31

Chương 2 COSO LY THUYET VA CÁC NGHIÊN CUU LIEN QUAN

nhưng có tính toán sao cho mô hình hoc máy không thể phân loại chính xác được

nữa Các phương pháp tấn công đối kháng được phân loại dựa trên mức độ truy

cập của kẻ tân công vào mô hình mục tiêu:

¢ Tan công hộp trắng (White-box attacks): Kẻ tan công có quyền truy cập day

đủ vào mô hình, bao gồm cấu trúc, tham số và các gradient Điều này chophép kẻ tấn công tính toán chính xác gradient để tạo ra nhiễu đối kháng

hiệu quả nhất.

e Tấn công hộp đen (Black-box attacks): Kẻ tan công không có quyển truy cập

vào mô hình, chỉ có thể thực hiện các truy van va quan sát kết quả đầu ra.Các phương pháp này thường sử dụng chiến lược tối ưu hóa dựa trên truyvấn hoặc các kỹ thuật học máy khác để ước lượng gradient và tạo mẫu đối

kháng.

Các Phương Pháp Tân Công Đối Kháng

Một số phương pháp tan công đối kháng phổ biến bao gồm:

¢ Phương pháp Gradient Descent: Kẻ tan công sử dung gradient của hàm mat

mát (loss function) đối với dữ liệu đầu vào để tạo ra nhiễu đối kháng Thuật

toán FGSM (Fast Gradient Sign Method) là một ví dụ điển hình, trong đónhiễu được tính toán bằng cách nhân gradient với một hệ số nhỏ và thêm

vào dữ liệu gốc

¢ Phương pháp Dự đoán Lap lại (Iterative Methods): Kỹ thuật này áp dụng

FGSM nhiều lần với bước nhỏ hơn, giúp tạo ra nhiễu đối kháng mạnh hơn

Một trong những biến thé của phương pháp này là thuật toán I-FGSM

(Iter-ative FGSM).

se Tối ưu hóa dựa trên truy vấn (Query-Based Optimization): Đối với tan công

hộp đen, kỹ thuật này tối ưu hóa trực tiếp đầu vào bằng cách thực hiện

nhiều truy vấn đến mô hình và cập nhật dir liệu đầu vào dựa trên kết quả

Ứng Dụng Trong Bài Toán Phát Hiện và Nhận Dạng

Tan công đối kháng có thể được ứng dụng để kiểm tra độ bền vững và độ an toàn

của các hệ thống phát hiện và nhận dạng Một sO ứng dụng cu thể bao gồm:

21

Trang 32

Chương 2 COSO LY THUYET VA CÁC NGHIÊN CUU LIEN QUAN

¢ Hệ thống nhận dang hình ảnh: Các mẫu đối kháng có thể làm sai lệch kết

quả nhận dạng khuôn mặt, biển số xe, hoặc các đối tượng trong hình ảnh

Ví dụ, một hệ thống nhận dạng khuôn mặt có thể bị đánh lừa để nhận dạng

sai một người khác néu sử dung mẫu đối kháng

e Hệ thống phát hiện gian lận: Trong các hệ thống phát hiện gian lận tài chính,

các mẫu đối kháng có thể được sử dụng để kiểm tra khả năng của hệ thống

trong việc phát hiện các giao dịch gian lận.

¢ Hệ thống an ninh mang: Các mẫu đối kháng có thể giúp kiểm tra và cải

thiện các hệ thống phát hiện xâm nhập (IDS) và các biện pháp bảo mật

khác.

Biện Pháp Phòng Thủ Để đối phó với các tân công đối kháng, một số biệnpháp phòng thủ đã được dé xuất:

¢ Tăng cường dữ liệu (Data Augmentation): Sử dụng các mẫu đối kháng trong

quá trình huấn luyện để làm mô hình trở nên bền vững hon

¢ Regularization: Ap dụng các kỹ thuật như distillation hoặc gradient

mask-ing để giảm độ nhạy cảm của mô hình đối với nhiễu

° Kiểm tra và giám sát: Sử dung các phương pháp kiểm tra tính an toàn của

mô hình và giám sát các đầu vào để phát hiện và ngăn chặn các tân côngđối kháng

Nhóm chúng tôi sử dung mô hình tấn công đối kháng nham cải hiện hiệu suất

và độ chính xác của mô hình Nhóm đề xuất nhiều kịch bản khác nhau nhằmcải hiện mô hình trước các nguồn dữ liệu chưa mã đối kháng làm cho dữ liệu bịnhiễu, làm rối từ đó phan nào đóng góp thêm vào nguồn dự liệu chung về hợp

đồng thông minh và tăng cả độ chính xác cho mô hình

2.5 Deep learning

Deep learning là một lĩnh vực của trí tuệ nhân tạo tập trung vào việc xây dựng

và huấn luyện các mang nơ-ron sâu để tự động hoc và cải thiện từ dữ liệu Các

22

Trang 33

Chương 2 COSO LY THUYET VA CÁC NGHIÊN CUU LIEN QUAN

mo hinh trong deep learning nhu Transformer va BERT, dac biét chu trong vao

việc sử dung các cơ chế chú ý (attention) để xử ly thông tin từ dữ liệu đầu vào,

cho phép chúng hiểu va áp dụng ngữ cảnh một cách hiệu quả Những tiến bộnày đã mang lại nhiều thành tựu đáng kể trong các lĩnh vực như xử lý ngôn ngữ

tự nhiên, nhận dạng hình ảnh và nhiều ứng dụng khác, đóng vai trò quan trọng

trong sự phát triển của công nghệ và ứng dụng trong thực tế

2.5.1 Mô hình Transformer

Transformer dựa trên bài báo năm 2017 có tên "Attention is All You Need" [14].

Mặc dù tat cả các mô hình trước transformer đều có thể biểu diễn từ dưới dang

vector, nhưng những vector này không chứa ngữ cảnh, và việc sử dụng từ thay

đổi dựa trên ngữ cảnh Ví du, "bank" trong "riverbank" và "bank" trong "bankrobber" có thé có cùng một biểu diễn vector trước khi cơ chế attention ra đời

Transformer là một mô hình encoder-decoder sử dụng cơ chế attention Nó có thể tận dụng khả năng xử lý song song và xử lý một lượng lớn dữ liệu cùng một

lúc nhờ kiến trúc mô hình của nó Cơ chế attention giúp cải thiện hiệu suất của

các ứng dụng dịch máy.

Các mô hình Transformer được xây dựng sử dụng cơ chế chú ý (attention)

ở lõi Một mô hình Transformer bao gồm encoder và decoder Encoder mã hóa

chuỗi đầu vào và chuyển nó đến decoder và decoder giải mã một biểu diễn cho

nhiệm vụ tương ứng, có thể quan sát chi tiết qua HINH 2.5

Thành phan mã hóa là một tập hợp các encoder giống nhau Bài báo nghiên

cứu giới thiệu về transformer xếp chồng sáu encoder lên nhau Số sáu ở đây được

đề cập không phải là một con số kỳ điệu, nó chỉ là một siêu tham số Các encoder

đều có cấu trúc giống nhau nhưng với các trọng số khác nhau Mỗi encoder cóthể được chia thành hai lớp con Lớp đầu tiên gọi là self-attention Đầu vào củaencoder trước tiên đi qua một lớp self-attention, giúp encoder nhìn vào các phanliên quan của các từ khi nó mã hóa một từ trung tâm trong câu đầu vào Lớpthứ hai gọi là lớp feedforward Đầu ra của lớp self-attention được đưa vào mạngnơ-ron feedforward Mạng nơ-ron feedforward giống hệt nhau được áp dụng độc

lập cho mỗi vị trí, có thể quan sát cụ thể qua hình 2.6.

Decoder có cả lớp self-attention và lớp feedforward, nhưng giữa chúng là lớp

encoder-decoder attention giúp decoder tập trung vào các phần liên quan của

23

Trang 34

Chương 2 CƠ SỞ LÝ THUYẾT VA CÁC NGHIÊN CỨU LIEN QUAN

Input Input Embedding Output Embedding

Feed Feedforward Feedforward Feedforward

forward neural network neural network neural network

Trang 35

Chương 2 COSO LY THUYET VA CÁC NGHIÊN CUU LIEN QUAN

câu đầu vào Sau khi nhúng các từ trong chuỗi đầu vào, mỗi vector nhúng sẽ di

qua hai lớp của encoder Từ tại mỗi vị trí đi qua quá trình self-attention, sau đó

nó đi qua mạng nơ-ron feedforward, cùng một mạng với mỗi vector đi qua nó

riêng biệt Các phụ thuộc tổn tại giữa các đường này trong lớp self-attention Tuy

nhiên, lớp feedforward không có những phụ thuộc này Do đó, các đường khác

nhau có thể được thực hiện song song trong khi chúng đi qua lớp feedforward.

Trong lớp self-attention, đầu vào nhúng được chia thành các vector query, key

và value như HÌNH 2.7 Những vector này được tính toán bằng cách sử dụng

các trọng số mà transformer học được trong quá trình huấn luyện Tắt cả các tính

toán này diễn ra song song trong mô hình dưới dạng các phép tính ma trận.

Input Embedding Query vector Key vector Value vector Learned

HÌNH 2.7: Đầu vào được chia thành các vector

Khi có các vector query, key và value, bước tiếp theo là nhân mỗi vector value

với điểm softmax để chuẩn bị tổng hợp cụ thể ở HÌNH 2.8 Tiếp theo, tổng hợp

các vector value đã được trọng số, tạo ra đầu ra của lớp self-attention tại vị trí này,

cho từ đầu tiên Có thể gửi vector kết quả này đến mạng nơ-ron feedforward

25

Trang 36

Chương 2 COSO LY THUYET VA CÁC NGHIÊN CUU LIEN QUAN

Các bước tóm tắt về cơ ché tự chú ý như sau:

3 Ap dung ham softmax:

Bước này chuẩn hóa các điểm số đã điều chỉnh theo hang (cho mỗi query)

Sau đó, chúng ta thực hiện multi-headed attention tám lần trong trường hợp này

và nhân từ đã nhúng với các ma trận trọng số tương ứng Chúng ta sau đó tínhattention sử dụng các ma trận QKV kết quả Cuối cùng, chúng ta nối các ma trận

để tạo ra ma trận đầu ra, có cùng kích thước với ma trận đầu vào mà lớp này nhận

ban đầu như HÌNH 2.9.

26

Trang 37

Chương 2 CƠ SỞ LÝ THUYẾT VA CÁC NGHIÊN CỨU LIEN QUAN

Output of the self-attention layer

Feedforward neural network

HINH 2.9: Mô hình đầu ra của lớp self-attention

27

Trang 38

Chương 2 COSO LY THUYET VA CÁC NGHIÊN CUU LIEN QUAN

2.5.2 Mô hình BERT

Hiện nay, có nhiều biến thé của transformers Một số sử dung cả thành phanencoder va decoder từ kiến trúc gốc Một số chỉ sử dung encoder và một số chi

sử dung decoder Một kiến trúc chỉ sử dung encoder phổ biến là BERT BERT

là một trong những mô hình transformer được huấn luyện BERT là viết tắt của

Bidirectional Encoder Representations from Transformers và được phát triển bởi

Google vào năm 2018 Kể từ đó, nhiều biến thể của BERT đã được xây dựng Hiệnnay, BERT hỗ trợ Google Tìm kiếm BERT được huấn luyện với hai biến thể Một

mô hình chứa BERT base, có 12 lớp transformer với khoảng 110 triệu tham số và

mô hình còn lại là BERT large với 24 lớp transformer với khoảng 340 triệu tham

số [12]

Mô hình BERT[3] mạnh mẽ vì nó có thể xử lý ngữ cảnh đầu vào dài Nó đượchuấn luyện trên toàn bộ kho tài liệu Wikipedia và Books Mô hình BERT được

huấn luyện trong một triệu bước BERT được huấn luyện trên các nhiệm vụ khác

nhau, có nghĩa là nó có mục tiêu đa nhiệm Điều này làm cho BERT rất mạnh mẽ

Do các nhiệm vụ mà nó được huấn luyện, nó hoạt động ở cả cấp độ câu và cấp độ

token Hai phiên bản đã được phát hành là BERT base, có 12 lớp, trong khi BERT

large có 24 lớp và so với transformer gốc chỉ có 6 lớp

Phương thức hoạt động của BERT được thể hiện thông qua quá trình huấnluyện trên hai nhiệm vụ khác nhau Nhiệm vụ đầu tiên là mô hình ngôn ngữđược che giấu (masked language model), nơi các câu được che giấu và mô hìnhđược huấn luyện để dự đoán các từ bị che giấu Nếu muốn huấn luyện BERT từđầu, ta phải che giấu một tỷ lệ phần trăm nhất định các từ trong kho tài liệu của

dữ liệu đầu vào Tỷ lệ phan trăm được khuyến nghị để che giấu là 15% Tỷ lệ che

giau này đạt được sự cân bằng giữa quá ít và quá nhiều che giấu Che giấu quá ít

làm cho quá trình huấn luyện cực kỳ tốn kém và che giấu quá nhiều làm mat ngữcảnh mà mô hình yêu cầu Nhiệm vụ thứ hai là dự đoán câu tiếp theo Ví du, môhình được cung cấp hai tập hợp câu BERT nhằm mục đích hoc các mối quan hệgiữa các câu và dự đoán câu tiếp theo dựa trên câu đầu tiên Ví dụ, câu A có thể

là "một người đàn ông đi đến cửa hàng" và câu B là "anh ấy mua một bình sữa"

BERT có trách nhiệm phân loại xem câu B có phải là câu tiếp theo sau câu A hay không Đây là một nhiệm vụ phân loại nhị phân Điều này giúp BERT hoạt động

ở cấp độ câu

28

Trang 39

Chương 2 CƠ SỞ LÝ THUYẾT VA CÁC NGHIÊN CỨU LIEN QUAN

Để huấn luyện BERT, ta cần cung cấp ba loại nhúng khác nhau cho mô hình.Đối với câu đầu vào, bạn có ba nhúng khác nhau: nhúng token, nhúng đoạn, và

nhúng vị trí Nhúng token là biểu diễn của mỗi token dưới dạng nhúng trong câu

đầu vào Các từ được chuyển đổi thành các biểu diễn vector có kích thước nhấtđịnh BERT có thể giải quyết các nhiệm vụ xử lý ngôn ngữ tự nhiên liên quan đến

phân loại văn bản Ví dụ là phân loại xem hai câu nói, "con chó của tôi dé thương”

và "nó thích chơi", có nghĩa giống nhau hay không Các cặp văn bản đầu vào đơngiản được nối với nhau va đưa vào mô hình Làm thé nao để BERT phân biệt đầu

vào trong một cặp cho trước? Câu trả lời là sử dụng nhúng đoạn Có một token

đặc biệt được biểu diễn bởi SEP phân tách hai phần khác nhau của câu Một vấn

đề khác là học thứ tự các từ trong câu Như bạn biết, BERT bao gồm một chồngcác transformer BERT được thiết kế để xử lý các chuỗi đầu vào dài tới 512 ký

tự Thứ tự của chuỗi đầu vào được tích hợp vào nhúng vị trí Điều này cho phép

BERT học một biểu diễn vector cho mỗi vị trí Một cách tổng quát như HÌNH 2.10.

BERT input embeddings

Input [CLs] My dog is cute he likes play ##ing [SEP]

Token Embeddings Eves) Eụy ER E., E cuc Ese) E Ej

9

© 6 6S © © 6 © © ©

Segment Embeddings Ey Ee foe Ge l5, En ES

Position Embeddings E B B jm m mm mỊ mm m (ee mm

HÌNH 2.10: Mô hình đầu vào của BERT

BERT có thể được sử dụng cho các nhiệm vụ hạ nguồn khác nhau Mặc dù

BERT được huấn luyện trên mô hình ngôn ngữ được che giấu và phân loại câu

29

Trang 40

Chương 2 COSO LY THUYET VA CÁC NGHIÊN CUU LIEN QUAN

đơn, nó có thể được sử dung cho các nhiệm vu NLP phổ biến như phân loại câu

đơn, phân loại cặp câu, trả lời câu hỏi, và các nhiệm vụ gán nhãn câu đơn.

2.5.3 Mạng nơ ron:GNN & GCN

Mạng nơ ron trong lĩnh vực học máy là một mô hình tính toán được thiết kế để

mô phỏng các đường dẫn thần kinh trong não Mạng nơ ron hoạt động độc lập

để xử lý và phân tích thông tin, học từ những sai lầm và liên tục cập nhật thuậttoán để cải thiện kết quả Công nghệ này đã được ứng dụng trong nhiều lĩnh vực,

bao gồm hỗ trợ chẩn đoán y tế, đánh dau mục tiêu, nhận dạng hợp chất và thị

giác máy tính.

Một mạng nơ ron điển hình bao gồm các lớp nút kết nối gọi là nơ ron Các lớp nàybao gồm lớp đầu vào, một hoặc nhiều lớp ẩn và lớp đầu ra Sau khi phân tích ởmột lớp, dữ liệu được chuyển tiếp sang lớp tiếp theo để phân tích tiếp tục và quá

trình này tiếp diễn Quá trình này bao gồm một hàm toán học với các trọng số và

sai số, các tham số mạng có thể điều chỉnh Đào tạo một mạng nơ ron bao gồmviệc lặp lại đưa một tập hợp các đầu vào qua mạng, so sánh kết quả của mạng vớikết quả mong muốn và điều chỉnh các trọng số và sai số để giảm thiểu sai số

Mạng nơ ron là một thành phần quan trọng trong lĩnh vực trí tuệ nhân tạo và học

sâu vì chúng được thiết kế để hỗ trợ máy tinh xử lý và tạo ra thông tin một cáchtương tự như con người Khi làm việc với mạng nơ ron, chúng tôi đã có tìm hiểu,

nghiên cứu rất nhiều loại đồ thị khác nhau [hgat] để phục vụ cho các mục đích

khác nhau Có rất nhiều sự lựa chọn, sau khi cân nhắc về nhiều mặc nhóm chúng

tôi quyết định giới thiệu hai loại dé thị phổ biến đó là mạng no ron đồ thị tích

chập (GCN), mạng nơ ron đồ thị (GNN)

Graph Neural Network (GNN)

Mang nơ ron đồ thị là một loại mô hình mang no ron được thiết kế đặc biệt để

xử lý thông tin được biểu diễn dưới dang dé thị Trong các mạng no ron truyền

thống, như mang nơ ron tích chập (CNNs), dữ liệu thường được giả định là trongkhông gian Euclid (như dữ liệu văn bản hoặc thời gian), có thể được biểu diễn

dưới dạng lưới đều Các mạng no ron nay giả định rang các đầu vào (như pixel

trong hình ảnh hoặc từ trong câu) là độc lập với nhau hoặc theo một thứ tự tuần

tự.

30

Ngày đăng: 23/12/2024, 23:46

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN