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

Khóa luận tốt nghiệp An toàn thông tin: Nghiên cứu phương pháp khai thác tự động lỗ hổng bảo mật trên hợp đồng thông minh

88 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 đề Nghiên cứu phương pháp khai thác tự động lỗ hổng bảo mật trên hợp đồng thông minh
Tác giả Phùng Ngọc Huyền
Người hướng dẫn TS. Nguyễn Tan Cam, ThS. Đỗ Hoàng Hiển
Trường học University of Technology - Ho Chi Minh City
Chuyên ngành Information Security
Thể loại Graduation Project
Năm xuất bản 2023
Thành phố Hồ Chí Minh
Định dạng
Số trang 88
Dung lượng 45,59 MB

Nội dung

Bang 4.2 Bảng mô tả các thao tac trạng thái của 1 hàm trong hợp đồng thông minh mà được dùng để trả về cho tác tử.... Giới thiệu vẫn đề Việc tự động khai thác lỗ hổng nằm trong hợp đồng

Trang 1

PHUNG NGOC HUYEN - 19521646

KHOA LUAN TOT NGHIEP

NGHIEN CUU PHUGNG PHAP KHAI THAC TU

DONG LO HONG BAO MAT TREN HGP DONG

THONG MINH

A STUDY OF AUTOMATIC VULNERABILITY EXPLOITATION

METHODS ON SMART CONTRACTS.

KY SU NGANH AN TOAN THONG TIN

GIANG VIEN HUGNG DAN:

TS Nguyén Tan Cam

ThS Đỗ Hoang Hiển

TP.Hồ Chí Minh - 2023

Trang 2

LỜI CẢM ƠN

Trong toàn thể quá trình nghiên cứu cho đến khi hoàn thành khóa luận, nhóm

đã được nhận sự định hướng, giúp đỡ, những ý kiến đóng góp quý báu và những

lời động viên từng ngày của các giáo viên hướng dẫn và giáo viên trên phòng thí nghiệm Nhóm xin phép bày tỏ lời cảm ơn tới thầy Nguyễn Tan Cam, thay

Đỗ Hoàng Hiển đã tận tình trực tiếp hướng dẫn, chỉ bảo trong suốt quá trìnhnghiên cứu.

Bên cạnh đó, với tình cảm vô cùng sâu sắc và chân thành, thì nhóm cũngxin cảm ơn tới các thầy cô, các anh chị đang công tác tại Phòng thí nghiệm Antoàn thông tin - InSecLab vì đã luôn tạo điều kiện về cơ sở vật chất với hệ thốngmáy chủ hiện đại, luôn sẵn sàng nhiệt tình hỗ trợ nhóm về chuyên môn lẫn kinh

nghiệm trong các hoạt động nghiên cứu và thực hiện khoá luận.

Cuối cùng, do kiến thức chuyên môn trong lĩnh vực này còn nhiều 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, nhiều ý kiến đóng góp, phê bình quý giá từ thầy cô trong hội

đồng để khóa luận được hoàn thiện hơn.

Phùng Ngọc Huyễn

Trang 3

CHƯƠNG 1 TONG QUAN 3

11 Giới thiệu van dé 2.0 Quy 3

1.2 Phuong phaép nghiên ctu .2.2 2.2 00.0 4

1.3 Tinh ứng di gu pa etm of /⁄ 4

1.4 Nhitng thách thức ee 4

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

15.1 Mục tiêu nghiên eỨu Ặ.Ặ 5

1.5.3 Phạm vinghiéncttu 00.0 5

1.5.4 Cấu trúc khóa luận tốt nghiệp - 6

CHƯƠNG 2 CƠ SỞ LY THUYET 7

2.1 Hợp đồng thông minh 7

2.1.1 Hợp đồng thông minh lagi ĩ

2.1.2 Dặc điểm của hợp đồng thông minh 8

2.1.3 Một số ứng dung của hợp đồng thông minh 10

2.1.4 Các loại lỗi thường gặp trong hợp đồng thông minh 11

2.1.5 Application Binary Interiace 18

Trang 4

2.3

2.4

2.9

Reinforcement Learning - co 20

2.2.1 Tổng quan 0.0 000 ee 20

2.2.2 Các thành phần chính - 24

2.2.3 Các hình thức tiếp cận 28

Từ Reinforcement Learning đến Deep Reinforcement Q-Learning va Deep Recurrent Q-Learning 44 32 2.3.1 Q-Learning 0.000000 22s 32 2.3.2 Deep Q-Learning 220040 34 2.3.3 Deep Q-Network 2.2 00.0 35 2.3.4 Recurrent neural network 36

2.3.5 Deep Recurrent Q-Network 38

Mô hình không gian vector 2 ee ee 38 2.4.1 Mô hình word2vec co 38 2.4.2 Mô hình Fastlext Q2 40 Tình hình nghiên cứu và các công trình liên quan 42

CHƯƠNG 3 MÔ HÌNH KHAI THÁC LỖ HỒNG hợp đồng thông minh 45 3.1 M6 hình tạo ra chuỗi lời gọi hàm 45

3.11 Tổng quan mô hình đề xuất 45

3.1.2 Chi tiết mô hình đề xuất 47

3.2 Luong hoạt động mô hình đề xuất 53

CHƯƠNG 4 THÍ NGHIỆM VÀ ĐÁNH GIÁ 56 4.1 Cấu hình thực nghiệm 56

4.2 Hiện thực th nghệm 0 57

4.2.1 Tập dữ lệu ee, 57 4.2.2 Mô tả và triển khai hợp đồng thong minh lên môi trường 58 4.2.3 Trình sinh ra hợp đồng tấn công 60

4.2.4 Xây dựng hệ thống tạo chuỗi lời gọi hàm trong giao dịch 62

Trang 5

4.3 Kết quả thínghiệm Q2

4.3.1 Thực hiện huấn luyện

4.3.2 Thực hiện kiểm tra sau khi đã huấn luyện

4.3.3 Mức độ ảnh hưởng của phần thưởng dối với hiệu quả mô

hình Quy xxx v2

4.3.4 Mức độ đa dạng của các hành động

4.3.5 Hành động làm ảnh hưởng khả năng thực thỉ

4.3.6 Sự vượt trội của công cu SCE so với các công cụ hiện có.

CHƯƠNG 5 KET LUẬN

78

Trang 6

DANH MỤC CÁC KÝ HIỆU, CÁC CHU VIET TAT

5 Không gian các trạng thái mà tác tử

St Trang thái môi trường tại lượt t

vr Chính sách tối da hóa kì vọng

Q Hàm giá trị cho trạng thái - hành động

6 Trọng số cho mạng nơ-ron

L() Hàm mất mát

DRQN Deep Recurrent Q-Network

MDP Markov Decision Process

Trang 7

DANH MỤC CÁC HINH VE

Hình 21 Hợp đồng thông minh - 8

Hình 2.2 Mô hình chi tiết luồng khai thác lỗi Re-entrancy 14

Hình 23 Hình ảnh mô tả việc ABI ánh xạ các tham số, kiểu dữ liệu truyền vào của các hàm trong hợp đồng thông minh sau khi được biên dich 2 Quà va 18 Hình 2.4 Hình ảnh mô tả việc ánh xạ cây AST vào ngữ cảnh tệp tin Solidity 2.” Ủ\ 19

Hình 25 Hình anh mô tả vi trí của học tăng cường trong lĩnh vực hoc máy 6 @đ? Ä.„Xx \ / 21

Hình 2.6 Hình ảnh mô tả cho ví dụ chú chuột hoạt động trong mê cung 22 Hình 2.7 Hình ảnh mô tả các thực thể chính của RL 25

Hình 2.8 Hình ảnh mô tả cho việc sử dụng mạng nơ-ron đơn giản thay cho bảng giá trị trong Q-Learnng 34

Hình 2.9 Hình ảnh mô tả cấu trúc của mô hình RNN 37

Hình 2.10 Các công cụ liên quan về việc phát hiện và khai thác hợp đồng thông minh c cQ S 44 Hình 3.1 Mô hình tổng quan 46

Hình 3.2 Mô hình chỉ tiết luồng hoạt động - 53

Hình 4.1 Ganache giả lập nên mạng Blockchain ở local 59

Hình 4.2 Hợp đồng nạn nhâần - 60

Hình 4.3 Mau hợp đồng tấn công sau khi được sinh 61 Hình 4.4 Thời gian huấn luyện mô hình 800 episode của mô hình

DQN và DRQN vo 64

Trang 8

Hình 4.11 Thời gian huấn luyện mô hình 1000 episode của thuật toán

DQN và DRQN Q Quy v2 70 Hình 4.12 Độ đa dang của các hành động với thuật toán DQN 71 Hình 4.13 Độ da dạng của các hành động với thuật toán DRQN 71

Trang 9

DANH MUC CAC BANG BIEU

Bang 3.1 Bảng mô tả sự khác nhau về rewards đối với từng action

Bang 3.2 Bảng mô tả các thao tác trạng thái của các hàm trong hợp

đồng thông minh ee

Bảng 3.3 Bảng mô tả số lượng hàm của mỗi nhóm khi đã được phân

ID Ban a

Bang 4.1 Bảng mô tả các thao tác trạng thái của 1 hợp đồng thông

minh mà được dùng để trả về cho tac tử

Bang 4.2 Bảng mô tả các thao tac trạng thái của 1 hàm trong hợp

đồng thông minh mà được dùng để trả về cho tác tử

Bảng 4.3 Bảng thống kê chi tiết các thuộc tính trong cả 2 mô hình

Bảng 4.4 Bảng thống kê kết quả huấn luyện sau 3 lần chạy của mỗi

Bảng 4ð Bang thống kê kết quả khai thác

Bảng 4.6 Bảng so sánh các tính năng mà SCE vượt trội hơn các loại

50

Trang 10

TÓM TẮT KHÓA LUẬN

Trong thời đại hiện nay, việc tiến bộ của công nghệ thông tin đã góp phần

thúc đẩy sự phát triển của nhiều ngành nghề khác nhau Các doanh nghiệp trên toàn cầu đã bắt đầu chuyển sang sử dụng hợp đồng thông minh thay thé cho

hợp đồng truyền thống Hợp đồng thông minh là một dạng hợp đồng được mã

hoá và không thể thay đổi, đồng thời đảm bảo tính an toàn và minh bạch của các giao dịch trên blockchain Điều này giúp giảm thiểu rủi ro và tăng độ tin cậy

cho các giao dịch Bên cạnh đó, hợp đồng thông minh cũng tăng tính minh bạch

của các giao dịch bằng cách cung cấp khả năng kiểm tra và xác nhận giao dịch

một cách dễ dàng Tuy nhiên, việc này cũng đi kèm với những hạn chế đáng lưu

ý mà các nhà lập trình phải đối mặt, ví dụ như khi một hợp đồng thông minh

bị tấn công, nó sẽ không bị ngừng lại cho đến khi thỏa mãn một số điều kiện cụthể Đây là lý do tạo ra nhu cầu cho nghiên cứu Khóa luận.

Khóa luận sẽ bắt đầu bằng một phần tổng quan về lỗ hổng trong hợp đồng

thông minh và các nguy cơ mà chúng đồng nghĩa với tính an toàn và tính toàn

vẹn của các giao dịch trên blockchain Sau đó, Khóa luận sẽ tiếp tục đi sâu vào

các phương pháp hiện tại để phát hiện lỗ hổng trong hợp đồng thông minh, bao gồm cả các phương pháp kiểm tra chất lượng mã nguồn, kiểm tra tự động và

kiểm tra thủ công

Sau khi đánh giá các phương pháp hiện tại, Khóa luận sẽ tiếp tục đầu tư thờigian để phát triển một phương pháp mới về tự động khai thác lỗ hổng trong hợpđồng thông minh Phương pháp này sẽ được định nghĩa rõ ràng và cung cấp chỉtiết về cách hoạt động, các giải thuật sử dụng và các tối ưu hóa được thực hiện

để đạt được hiệu suất tốt nhất.

Sau khi phát triển xong phương pháp, Khóa luận sẽ tiến hành thử nghiệm

và đánh giá hiệu suất của phương pháp mới so với các phương pháp hiện tại

Trang 11

Đánh giá sẽ bao gồm các chỉ số như thời gian phát hiện lỗ hồng, tỷ lệ phát hiện

lỗ hồng chính xác và tốc độ xử lý

Cuối cùng, Khóa luận sẽ đưa ra kết luận về độ hiệu quả của phương pháp

mới, xác định các giới han và khả năng cải thiện của nó so với các phương pháp

hiện tại Ngoài ra, Khóa luận sẽ đưa ra một số đề xuất về cách cải thiện và phát

triển phương pháp mới trong tương lai

Trang 12

CHƯƠNG 1 TONG QUAN

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

1.1 Giới thiệu vẫn đề

Việc tự động khai thác lỗ hổng nằm trong hợp đồng thông minh là một đề tài

nghiên cứu đầy quan trọng trong lĩnh vực blockchain vì hợp đồng thông minh

đang trở thành một phan không thể thiếu của các dự án blockchain hợp đồng

thông minh là một hợp đồng mã hoá được viết trong mã lệnh và được thực thi

tự động trên blockchain, giúp thực hiện các giao dịch một cách tự động và không

cần thông qua bên thứ ba

Tuy nhiên, do tính chất mã hoá của hợp đồng thông minh, nếu không được

lập trình và kiểm tra chặt chẽ, có thể xuất hiện các lỗ hồng bảo mật và khả

năng bị khai thác là rất cao Ví dụ, một hợp đồng thông minh có thể bị hack

và tài sản trong hợp đồng có thể bị đánh cắp và không thể dừng lại đột ngột Điều này có thể dẫn đến tổn thất lớn cho các bên liên quan Hơn thế nữa trong

thực tế không chỉ có 1 đến 2 hợp đồng thông minh mà nó tồn tại rất nhiều và

việc dùng sức người để khai thác thì nó sẽ rất là tốn thời gian để có thể tìm ra

lỗi và khai thác chúng.

Vì vậy, việc tự động khai thác lỗ hồng trong hợp đồng thông minh trở thành

một đề tài nghiên cứu quan trọng Giải pháp này sẽ tạo ra một hệ thống tựđộng khai thác các lỗ hổng trong hợp đồng thông minh trước khi chúng gây ra

tổn thất cho các bên liên quan Điều này sẽ giúp tăng tính bảo mật của hợp

đồng thông minh và tăng tin tưởng của người dùng vào các dự án blockchain

Ngoài ra, việc tự động khai thác 16 hổng còn giúp tiết kiệm thời gian và chi phí

Trang 13

cho các nhà phát triển, vì họ không cần phải tồn nhiều thời gian kiểm tra và sửa chữa các lỗ hồng về sau này khi đưa ra thị trường để sử dụng.

Bằng những dẫn chứng phân tích trên, chúng tôi sẽ hiện thực hóa phương

pháp khai thác tự động lỗ hồng trên hợp đồng thông minh cũng như có những

so sánh về hiệu năng và tính ứng dụng trong thực tế

1.2 Phương pháp nghiên cứu

Tìm hiểu về những loại lỗi có trong hợp đồng thông minh, từ đó xây dựng

thành công công cụ khai thác tự động các hợp đồng thông minh có tồn tại lỗ

hồng, kết hợp ứng dụng phương pháp học tăng cường với mô hình và thuật toán

phù hợp để làm tăng tính hiệu quả của việc khai thác như giảm thời gian khai

thác, tăng tỉ lệ khai thác thành công, tích lũy dữ liệu khai thác thành công cho

những lần khai thác tiếp theo Bên cạnh đó, chúng tôi tiên hành triển khai, đánh

giá thực té hiệu suất của công cu và đưa ra hướng mở rộng phù hợp trong tương

lai.

1.3 Tính ứng dụng

Đề tài này đưa ra một hệ thống để tạo chuỗi các lời gọi hàm và thực thi chúng Sau đó hệ thống sẽ kiểm tra xem với những lời gọi hàm trên thì có trường hợp nào mà có thể khai thác thành công hợp đồng thông minh có tồn tại lỗ hổng hay không Cuối cùng là xuất ra chuỗi lời gọi hàm để người dùng có thể thống

kê và kiểm tra lại chúng.

1.4 Những thách thức

Do việc dùng 1 lời gọi hàm thì không thể khai thác được hàng loạt các hợp

đồng thong minh, do đó cần có cơ chế tao ra nhiều lời gọi ham thì mới có khá

năng khai thác được.

Trang 14

Việc tao ra nhiều lời gọi hàm cần phải đúng thứ tự, luồng hoạt động thi mớikhai thác được hợp đồng thông minh

Dù có khả năng khai thác được lỗi trên hợp đồng thông minh nhưng hệ thống

cũng chỉ dừng lại ở việc khai thác những loại lỗi cơ bản Riêng đối với những

hợp đồng thông minh phức tạp, cần phải tính toán logic nhiều, những loại lỗi

khó để khai thác một cách tự động, có thể khai thác được hay không thì điều này nhóm chúng tôi chưa thể thực hiện được.

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

Ứng dụng học tăng cường để tạo ra chuỗi lời gọi hàm nhằm khai thác đượchợp đồng thông minh có chứa lỗ hong trong thời gian ngắn

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

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

e Hợp đồng thông minh

e Các loại lỗi thường gặp trên hợp đồng thông minh

e Mô hình học tăng cường

e Các phương pháp để mà đánh giá độ hiệu quả của mô hình khi khai thác

thành công các loại lỗ hổng trong hợp đồng thông minh.

1.5.8 Pham vi nghiên cứu

Trích xuất thuộc tinh của hợp đồng thông minh, từ đó tao ra các hành động(cụ

thể là dự đoán là tiềm năng) và từ đó tạo ta chuỗi giao dịch có khả năng khai

thác hợp đồng thông minh

Trang 15

1.5.4 Cấu trúc khóa luận tốt nghiệp

Chúng tôi xin trình bày nội dung của Luận án theo cấu trúc như sau:

e Chương 1: Giới thiệu tổng quan về đề tài của Khóa luận và những nghiên

cứu liên quan.

e Chương 2: Trình bày cơ sở lý thuyết và kiến thức nền tảng liên quan đến

đề tài

e Chương 3: Trình bày mô hình tạo chuỗi lời gọi hàm để thực thi trên hợp

đồng thông minh

e Chương 4: Trình bày thực nghiệm và đánh giá.

e Chương 5: Kết luận và hướng phát triển của đề tài

Trang 16

CHƯƠNG 2 CƠ SỞ LÝ THUYET

Chương này trình bày cơ sở lý thuyết của nghiên cứu: Bao gồm hợp đồng

thông minh, các loại lỗi cũng như cách khai thác chúng và mô hình học tăng

CƯỜng.

2.1 Hợp đồng thông minh

2.1.1 Hợp đồng thông minh là gi

Hợp đồng thông minh là [4] một tập hợp các điều khoản, điều lệ và quy tắc

được viết và lưu trữ trên nền tảng blockchain, tự động hoạt động và thực thi mà

không cần sự can thiệp vào của bất kỳ bên thứ ba nào hợp đồng thông minhđảm bảo rằng tất cả các yêu cầu được thỏa mãn mà không cần sự giám sát hoặc

quản lý từ bên thứ ba.

Hợp đồng thông minh thường được dùng trong nhiều lĩnh vực khác nhau, bao

gồm tài chính, quan lý tài sản, Chúng ta có thể 4p dụng hợp đồng thông minh

để xử lí các giao dịch tài chính, tự động hoàn lại tiền cho người mua khi hết hạn bảo hiểm hoặc tự động chuyển quyền sở hữu của một tài sản từ người mua đến

người bán khi điều kiện đã được thỏa mãn

Trang 17

Traditional Contracts

Smart Contracts

Hình 2.1: Hop dong thông minh

2.1.2 Đặc điểm của hợp đồng thông minh

Hợp đồng thông minh là một loại hợp đồng kỹ thuật số được xây dựng vàthực thi tự động thông qua công nghệ blockchain Dưới đây là những đặc điểm

chính của hợp đồng thông minh:

Tự động hoàn thiện: Hợp đồng thông minh được viết dưới dạng mã nguồn,

chứ không phải dưới dạng văn bản truyền thống Mã nguồn này có thể tự động

thực thi các điều khoản và điều kiện được xác định trước khi các điều kiện kích

hoạt được đáp ứng Điều này đảm bảo rằng hợp đồng sẽ được thực hiện chính

xác theo những gì đã được lập trình, mà không cần sự can thiệp của bên thứ

ba.

Phi tập trung: Hợp đồng thông minh được triển khai trên mạng lưới

blockchain, trong đó thông tin và mã nguồn của hợp đồng được phân phối

trên nhiều nút mạng Điều này đảm bảo tính toàn vẹn và đáng tin cậy của hợp

Trang 18

đồng, vì không có một bên duy nhất nắm giữ quyền kiểm soát hoặc có khả năng thay đổi hợp đồng.

Tính bất biến: Khi một hợp đồng thông minh được triển khai trên blockchain,

nó trở thành một phần không thể thay đổi của blockchain Một khi hợp đồng được thực thi, không thể thay đổi hoặc can thiệp vào nó, trừ khi có sự đồng

thuận của tất cả các bên tham gia

Đáng tin cậy và an toàn: Vì hợp đồng thông minh được lập trình và thực

thi trên mạng blockchain, nó đảm bảo tính toàn vẹn và an toàn của giao dịch.Các hành động trong hợp đồng được ghi lại trên blockchain và không thể thay đổi, tạo ra một hệ thống kiểm soát và giao dịch đáng tin cậy.

Ưu điểm:

Tự động hóa: Hợp đồng thông minh được viết dưới dạng mã máy tính và

chạy trên mang blockchain Khi các điều kiện trong hợp đồng được dap ứng,

nó tự động thực hiện các hành động đã được xác định trước, không cần sự can

thiệp của bên thứ ba Điều này giúp tiết kiệm thời gian và công sức trong việc

thực hiện các giao dịch và quy trình kinh doanh.

Tiết kiệm chi phí: Với hợp đồng thông minh, không cần có một bên trung gian để giám sát hoặc thực hiện các giao dịch Điều này giúp giảm chi phí liên

quan đến việc tham gia các giao dịch và hợp đồng, ví dụ như phí ngân hàng,

phí luật sư hoặc phí giao dịch.

Tính minh bạch: Các hợp đồng thông minh chạy trên blockchain cho phéptất cả các bên liên quan theo dõi giao dịch và tiến trình thực hiện hợp đồng.Điều này tạo ra tính minh bạch và công khai, không cho phép bất kỳ bên nào

thay đổi thông tin hoặc tác động đến quá trình thực hiện.

Không thể xóa: Một khi hợp đồng thông minh đã được triển khai và chạy

trên blockchain, nó không thể bị xóa hoặc tắt một cách dễ dàng Điều này giúp

đảm bảo tính công bằng và trách nhiệm trong việc thực hiện các hợp đồng

Nhược điểm: Mặc dù hợp đồng thông minh mang lại nhiều lợi ích, nhưng

Trang 19

cũng có một số nhược điểm cần được lưu ý:

Khả năng lập trình và lỗi: Hợp đồng thông minh được xây dựng dựa trên

mã máy, do đó, nó dễ mắc lỗi do các lỗi lập trình hoặc rò rỉ bảo mật Những lỗi

này có thể dẫn đến việc mất tiền, mất tài sản hoặc các vấn đề khác trong hợp

đồng

Ràng buộc về quyền pháp lý: Mặc dù hợp đồng thông minh có thể tựđộng thực thi các điều khoản, việc giải quyết tranh chấp hoặc xử lý vi phạmvan cần sự can thiệp của hệ thống pháp luật truyền thống Quá trình này có

thể phức tạp và tốn thời gian, và có thể không phù hợp với tính tự động của

hợp đồng thông minh

2.1.3 Một số ứng dựng của hợp đồng thông minh

Hiện nay, hợp đồng thông minh đang được sử dụng rộng rãi trong nhiều lĩnh vực trong cuộc sông Các doanh nghiệp lớn đã và đang nghiên cứu và sử dụng

hợp đồng thong minh để tối ưu hoá tùy theo mục đích sử dụng của mình.

Tài chính phi tập trung (DeFi): Hợp đồng thông minh đã tạo ra một cách

mới để thực hiện các giao dịch tài chính trực tuyến, không cần sự trung gian của ngân hàng hoặc tổ chức tài chính truyền thống Ví dụ, hợp đồng thông minh có thể được sử dụng để tạo ra các giao thức vay/lãi suất phi tập trung, trao đổi

tiền điện tử hoặc xác định giá trị tài sản kỹ thuật số

Quản lý chuỗi cung ứng: Hợp đồng thông minh có thể giúp cải thiện quá trình

quản lý chuỗi cung ứng bằng cách tự động hóa việc theo dõi, xác minh và thanhtoán cho các giao dịch giữa các bên liên quan Điều này giúp tăng tính minhbạch, giảm thiểu sự gian lận và nâng cao hiệu suất của chuỗi cung ứng.

Bảo hiểm: Hợp đồng thông minh có thể được sử dung trong lĩnh vực bảo hiểm

để tự động hóa việc mua, bán và quyền lợi bồi thường trong các hợp đồng bảo hiểm Ví dụ, một hợp đồng thông minh có thể tự động kích hoạt quyền lợi bảo hiểm và thanh toán cho bên được bảo hiểm khi xảy ra sự cố đã được định nghĩa

Trang 20

trước.

Bất động sản: Hợp đồng thông minh có thể được sử dụng trong giao dịch bất

động sản để tự động hóa quá trình mua, bán và chuyển nhượng tài sản Điều này có thể giảm thiểu sự phụ thuộc vào các bên trung gian, giảm chi phí giao

dịch và tăng tính minh bach trong quá trình mua bán bất động sản

Theo dõi quyền sở hữu trí tuệ: Hợp đồng thông minh có thể được sử dụng để quản lý và theo dõi quyền sở hữu trí tuệ, chang

2.1.4 Các loại lỗi thường gặp trong hợp đồng thông minh

e Reentrancy : Lỗi reentrancy trong hợp đồng thông minh là một lỗi bảo

mật pho biến [7] [8] mà có thể xảy ra trong các hợp đồng thông minh trên

các nền tảng blockchain như Ethereum Lỗi nay cho phép kẻ tấn công có

thể thực hiện các hành động gian lận hoặc lợi dụng để chiếm đoạt tài sản

trong hợp đồng thông minh.

Lỗi reentrancy có thể xảy ra khi 1 hợp đồng thong minh gọi đến một hợp

đồng khác và sau đó, hợp đồng đó lại gọi lại hợp đồng gốc một cách vô tận

Trong quá trình này, tài sản và trạng thái của hợp đồng gốc có thể bị thay

đổi một cách không mong muốn Ké tấn công lợi dụng lỗi này để rút tiền

từ hợp đồng thông minh hoặc thực hiện các hành động gian lận khác

Một ví dụ cụ thể về lỗi reentrancy là lỗi trong hợp đồng thông minh [3]

"The DAO" trên Ethereum vào năm 2016 Lỗi này đã cho phép kẻ tấn

công rút tiền từ hợp đồng một cách không hợp lệ và gây ra mất mát hàng

triệu đô la.

Cách khai thác lỗi Re-entrancy:

Bình thường người dùng có thể đóng góp Ether vào hợp đồng thông qua hàm

donate(), và sau đó rút số tiền đã đóng góp thông qua hàm

withdrawBal-ance() Tuy nhiên, hợp đồng này bị mắc lỗi Reentraney vì không kiểm tra

trạng thái nội bộ và cập nhật giá trị trước khi gọi đến hàm msg.sender.call

Trang 21

Trong hợp đồng tấn công này, chúng tôi triển khai một phiên bản của hợp

đồng SimpleDAO góc và triển khai một hàm fallback() để tận dụng

lỗi Reentrancy Khi kẻ tấn công gọi ham attack(), nó sẽ gọi đến hamwithdrawBalance() trong hợp đồng gốc Khi hợp đồng gốc chạy hàm

msg.sender.call, nó sẽ gọi lại hàm fallback() trong hợp đồng tấn công,

và quá trình này có thể lặp lại(đệ quy) nếu hợp đồng gốc không cập nhật

lại trạng thái biến trong nội bộ

Trang 23

Hình 2.2: Mô hành chỉ tiết luồng khai thác lỗi Re-entrancy

Vì vậy, kẻ tấn công có thể rút tiền từ hợp đồng gốc nhiều lần trong một lần gọi withdrawBalance(), và lợi dụng lỗi Reentrancy để tiêu tốn hết Ether

trong hợp đồng hoặc thậm chí thực hiện các hành động độc hại khác

Suicidal : Lỗi xảy ra khi một hợp đồng thông minh tự hủy (selfdestruct)

mà không có các cơ chế phòng chống phù hợp Lỗi này có thể dẫn đến mấtmat tài sản và trạng thái của hợp đồng không mong muốn

Tính năng selfdestruct trong Ethereum cho phép một hợp đồng tự hủy va

chuyển toàn bộ số dư ETH còn lại trong hợp đồng đó đến một địa chỉ khác.

Cách làm này thường được dùng khi các hợp đồng không còn sử dụng và

giải phóng tài nguyên trong blockchain.

Việc khai thác hợp đồng thông minh có tồn tại lỗi Suicidal thì ta cần phải

gọi đúng vào hàm có lời gọi hàm selfdestruct() Nhưng với logic bình thường

Trang 24

thì 1 người ngoài sé không có quyền để gọi hàm này mà chỉ có người triển

khai hợp đồng mới có quyền đó Tuy nhiên đôi khi người lập trình viên sẽ

có những sai lầm trong khi lập trình để rồi kẻ tấn công vẫn có thể gọi đến

hàm selfdestruct() thông qua việc cấu hình sai ở đoạn code khác

Trang 25

Ta thấy rằng hợp đồng thong minh này có ham gọi được selfdestruct() tuy

nhiên 1 người bình thương sẽ không thực thi hàm này bởi vì hợp đồng thông

minh nay đã có định nghĩa modifier Trong modifier định nghĩa rằng người

thực thi hàm này phải là chủ sở hữu hợp đồng này, nếu khác thì lệnh khi

chạy sẽ bị revert(không thành công) Thế nhưng, người nhà phát triển trong

trường hợp nay đã cấu hình sai cho hàm transferOwner và khiến cho hàm

này được gọi bởi 1 người không phải là chủ sở hữu Kết quả dẫn tới kẻ tấncông có thể gọi hàm này để truyền địa chỉ của kẻ tấn công vói mục tiêu là

gán lại owner là kẻ tấn công, và thế là lúc này kẻ tấn công có thể hủy hợp

đồng 1 cách hợp lý

Integer overflow/underflow : là một lỗi thường gặp trong hợp đồng

thông minh khi hiện thực các phép tính lên các biến (integer) trong hợp

đồng thông minh Lỗi này xảy ra khi giá trị của một biến nguyên vượt qua

giới hạn tối đa (overflow) hoặc nhỏ hơn giới hạn tối thiểu (underflow) mà kiểu dữ liệu có thể chứa.

Trang 26

Khi một lỗi overflow xảy ra, giá trị của biến nguyên vượt quá giới hạn tối đa

của kiểu dữ liệu Ví dụ, nếu một biến nguyên kiểu uint8 (unsigned integer

8-bit) có giới hạn tối đa là 255, và nếu giá trị của biến đạt đến 255 va đượctăng thêm 1, thì kết quả sẽ trở về 0 hoặc giá trị không xác định, gây ra sai

sót trong tính toán.

Ngược lại, khi một lỗi underflow xảy ra, giá trị của biến nguyên nhỏ hơn

giới hạn tối thiểu của kiểu dữ liệu Ví dụ, nếu một biến nguyên kiểu int8 (signed integer 8-bit) có giới hạn tối thiểu là -128, và nếu giá trị của biến

là -128 và được giảm đi 1, thì kết qua sẽ trở về 127 hoặc giá trị không xác

định, cũng gây ra sai sót trong tính toán.

Block gas limit : lỗi xảy ra khi một hợp đồng thông minh yêu cầu một

lượng gas (đơn vị đo lường công việc) vượt quá giới hạn gas cho phép trong

một khối (block gas limit) trên nền tang blockchain Khi điều này xảy ra,

giao dịch hoặc hợp đồng không thể được thực hiện thành công và sẽ bị từ

chối bởi mạng

Giới han gas trên blockchain như Ethereum được đặt để giới han công việc tính toán và lưu trữ mà một khối có thể xử lý trong một khoảng thời gian

nhất định Giới hạn này giúp đảm bảo tính khả thi của việc xử lý giao dịch

trên blockchain và tránh tấn công DoS (Denial-of-Service)

Khi một hợp đồng thông minh yêu cầu một lượng gas vượt quá giới hạn

cho phép trong một khối, giao dịch hoặc hợp đồng sẽ bị từ chối và không

được thực hiện Điều này có thể xảy ra khi hợp đồng có quá nhiều thao tác

phức tạp hoặc tương tác với các hợp đồng khác, dẫn đến việc tiêu tốn gasquá nhiều

Trang 27

2.1.5 Application Binary Interface

ABI (Application Binary Interface) là một giao diện của ứng dung dưới dang

nhị phân Nó xác định các phương thức và biến có sẵn trong một hợp đồngthong minh va cho phép chúng ta tương tác với hợp đồng thông minh đó Vì

hợp đồng thông minh được chuyển đổi thành mã byte trước khi triển khai trên blockchain, chúng ta cần một cách để biết những hoạt động và tương tac nào

có thể thực hiện với hợp đồng đó và chúng ta cần một phép chuẩn hóa để biểu

diễn các giao diện đó để có thể dùng các ngôn ngữ lập trình và tương tác vớihợp đồng thông minh

11+ function deposit(string memory _tenant) public payable {| „2 *

12 //emit event notifying rent is paid sá

13 emit RentPaid(msa.sender, _tenant, msg.value);

"indexed": false,

"name"; "rent",

“type”: "uint256”

} 1,

“name": "RentPaid”,

“type": “event”

Hình 2.3: Hình ảnh mô tả uiệc ABI ánh xa các tham số, kiểu di liệu truyền

vao của các ham trong hợp đồng thông minh sau khi được biên dich

ABI cung cấp các định nghĩa giúp chúng ta biết tên của các phương thức,

tham số, đối số và loại dữ liệu mà chúng ta có thé sử dung để tương tác với hợp

đồng thông minh, cũng như cấu trúc của các sự kiện mà hợp đồng thông minhtạo ra Khi xem xét các chức năng, các thuộc tính này được tìm thấy trong ABI

Trang 28

2.1.6 Abstract Syntax Tree

Cây Cú pháp Trừu tượng là một cấu trúc dữ liệu được sử dung trong việc

biểu diễn cú pháp trừu tượng của một chương trình Nó thường được tạo ra trong quá trình phân tích cú pháp của ngôn ngữ lập trình, ngữ cảnh cụ thể ở

Over_flow.sol

Children_1 Children_2

Hành 2.4: Hình anh mô tả viéc ánh xa câu AST vao ngữ cảnh tệp tin Solidity đây là tệp tin Solidity.

Cây AST biểu diễn cú pháp của một chương trình dưới dạng một cấu trúc

cây, trong đó mỗi nút của cây đại diện cho một phan của cú pháp Các nút trong

cây AST có thể là các biểu thức, câu lệnh, khai báo, hay các thành phần khác

của ngôn ngữ lập trình.

Trang 29

2.2 Reinforcement Learning

2.2.1 Tong quan

Hoc tăng cường là một dang tiếp cận khác của hoc máy, nơi ma nó sử dung

một yếu tố bổ sung (thường là thời gian) để kết hợp vào các phương trình học

tập, nhằm giải quyết vấn đề tự động học và đưa ra các quyết định tối ưu theothời gian Học tăng cường mang tính chất gần với sự nhận thức của con người

về trí tuệ nhân tạo và đã trở thành một phương pháp phổ biến được nghiên cứurộng rãi trong các lĩnh vực khoa học và kỹ thuật đa dạng.

Trong lĩnh vực học có giám sát, có một phương pháp may học được rộng rãi

biết đến và nghiên cứu là tạo ra một hàm tự động từ dữ liệu huấn luyện Dữliệu huấn luyện bao gồm các cặp đối tượng đầu vào và đầu ra mục tiêu tương

ứng Hàm này có khả năng trả về giá trị liên tục hoặc dự đoán nhãn phân loại

cho đối tượng đầu vào Nhiệm vụ của chương trình học có giám sát là dự đoángiá trị của hàm cho bất kỳ đối tượng hợp lệ nào dựa trên các ví dụ huấn luyện

đã được cung cấp Để làm điều này, chương trình học phải tổng hợp thông tin

từ dit liệu có sẵn để dự đoán các tình huống chưa từng gặp một cách có ý nghĩa.

Một phương pháp khác, không liên quan, được gọi là học không giám sat.

Trong học không giám sát, không có nhãn được gấn cho dữ liệu và mục tiêu làkhám phá các cấu trúc an trong tập dt liệu hiện có, thường là bài toán phan

cụm dt liệu Học không giám sát khác với học có giám sát bởi vì chúng ta không

biết trước đầu ra chính xác tương ứng với mỗi đầu vào Thay vào đó, chúng taxem các đối tượng đầu vào như là một tập hợp các biến ngẫu nhiên và cố gắngxây dựng một mô hình kết hợp mật độ cho tập dữ liệu đó Một phương pháp

học không giám sát khác đang trở nên dần phổ biến và áp dụng rộng rãi là mạng

sinh đối kháng (GANs)

Chúng ta áp dụng một phương pháp gọi là học tăng cường, nằm ở vị trí trung

gian giữa học có giám sát và học không giám sát Chúng ta có thể sử dụng nhiều

Trang 30

phương pháp học có giám sát đã được chứng minh hiệu quả, chẳng hạn như mạng nơ-ron sâu, để học cách biểu diễn dữ liệu hoặc áp dụng chúng theo cáchkhác nhau.

Reinforcement

Learning

upervised

Learning

Hành 2.5: Hình anh mô tả vi trí của hoc tăng cường trong lĩnh vuc học may

Hãy hình dung rằng chúng ta đang có một tác tử hoạt động trong một môi

trường cụ thể, ví dụ như một mê cung, và hãy lấy ví dụ là một chú chuột robottrong đó.

Trang 31

Trong môi trường đó, có một mê cung với các vị trí khác nhau có thức ăn

và tia điện Tác tử của chúng ta, là một chuột robot, có thể thực hiện các hành động như rẽ trái, rẽ phải hoặc di chuyển thắng Tại bất kỳ thời điểm nào, nó

có thể quan sát toàn bộ trạng thái của mê cung và đưa ra quyết định về hành

động tiếp theo mà nó sẽ thực hiện

Mục tiêu của chuột robot là tìm được càng nhiều thức ăn càng tốt, đồng thời

tránh bị điện giật bất cứ khi nào có thể Các tín hiệu về tia điện và thức ăn

được xem như phần thưởng tích cực hoặc tiêu cực do môi trường trao cho chuột

robot dưới dạng phản hồi về các hành động của nó Phần thưởng là một định

nghĩa vô cùng quan trọng trong học tăng cường, chúng tôi sẽ đề cập sau Tuy

nhiên, hiện tại đủ để hiểu rằng, mục tiêu của tác tử là đạt được càng nhiều phần thưởng càng tốt Trong ví dụ này, chuột robot di nhiên có thể bị điện giật một

chút để đến được nơi có nhiều thức ăn, như vậy sẽ tốt hơn là đứng yên một chỗ

Trang 32

mà không thu được gì.

Câu hỏi được đưa ra là làm sao để chuột robot có thể hoàn thành nhiệm vụ

của mình một cách hiệu quả Việc lập trình trước cho nó hiểu về toàn bộ môi

trường và các hành động tối ưu tại mọi vị trí khác nhau là không khả thi Ngoài

ra, việc này tốn rất nhiều công sức và trở nên vô nghĩa khi môi trường thay đổi Điều chúng ta cần là một phương pháp giúp chuột robot tự học cách di chuyểnthông minh trong mê cung này.

Học tăng cường chính là phương pháp có thể giải quyết vấn đề này Khác với các phương pháp học máy có giám sát khác, chúng ta không thể gán nhãn cho

mỗi quan sát của về môi trường tại các mốc thời gian khác nhau là tốt hay xấu

để chuột robot có thể đưa ra hành vi di chuyển của mình Thay vào đó, học

tăng cường hoạt động theo cách thử và sửa, dựa trên một hệ thống phần thưởng

nhất định Phần thưởng sẽ đạt được sau mỗi lần chuột robot thực hiện hành

động di chuyển, có thể tích cực khi chuột robot đạt được thức ăn, tiêu cực khi

trúng tia điện hoặc trung tính khi không có gì đặc biệt xảy ra Qua việc quan

sát hệ thống phần thưởng đạt được và liên hệ với các hành động đã thực hiện,

chuột robot sẽ học cách thực hiện hành vi tốt hơn để thu thập nhiều thức ăn

hơn, đồng thời ít bị trúng tia điện hơn

Điều đặc biệt và linh hoạt này khiến học tăng cường cũng đồng đi kèm với

những khó khăn riêng so với các phương pháp học có giám sát hoặc không giámsát trong việc tiếp cận và triển khai để đạt được hiệu quả tối đa.

Trước tiên, trong học tăng cường, việc quan sát trạng thái của môi trường

phụ thuộc vào hành vi của tác tử, và đến một mức độ, nó chính là kết quả củahành vi đó Nếu tác tử thực hiện một hành vi không hiệu quả, chúng ta sẽ không

biết được những gì tác tử đã làm sai và làm thế nào để cải thiện kết quả Đồng

thời, nếu tác tử bị cố chấp và liên tục mắc phải các sai lầm, những quan sát có

thể dẫn đến các kinh nghiệm sai lầm, cho rằng không có cách nào để đạt được

phần thưởng lớn hơn

Điều thứ hai làm cho học tăng cường trở nên khó khăn là tác tử không chỉ

Trang 33

cần khai thác những hành động mà nó đã học được, mà còn cần tích cực khám

phá môi trường Bởi vì, có thể rằng thông qua một số thay đổi nhỏ, tác tử có

thể đạt được kết quả tốt hơn Tuy nhiên, vấn đề là quá nhiều thăm dò có thể

làm giảm đáng kể phần thưởng (cùng với nguy cơ mat đi kinh nghiệm đã học

được trước đó) Do đó, chúng ta cần tìm cách cân bằng hai hoạt động này để

đạt được hiệu quả như mong muốn

Yếu tố phức tạp thứ ba là việc phần thưởng thực tế có thể bị trì hoãn so với

thời điểm thực hiện các hành động Ví dụ, một nước đi sai trong một ván cờ

vua có thể thay đổi toàn bộ tình hình sau này Trong quá trình học, để tối đa

hóa phần thưởng, tác tử cần nhận biết được những tình huống như vậy và thực

hiện những hành động mà nó cho là đúng đắn.

Mặc dù có những khó khăn và thách thức như vậy nhưng gần đây, học tăng

cường đã có những cải tiến to lớn và ngày càng trở nên tích cực hơn trong các

lĩnh vực nghiên cứu [9] và ứng dụng thực tế

2.2.2 Các thành phan chính

Mỗi lĩnh vực trong khoa học và kỹ thuật đều có những giả định và hạn chế

riêng Chúng tôi không có ý định phán đoán việc học có giám sát là tốt hay

không tốt Tuy nhiên, có những vấn đề mà học có giám sát không thể giải quyết

hiệu quả Dó là lý do tại sao học tăng cường đã trở thành một phương pháp hấpdẫn trong việc đối phó với những thách thức đó

Trong lĩnh vực học tăng cường, không tồn tại các cặp dữ liệu đầu vào-đầu rachính xác, và việc đánh giá tính tối ưu của các hành động cũng không được thựchiện theo cách đơn giản Thay vào đó, chúng ta sử dụng một hệ thống phầnthưởng cố định [9] Sự quan tâm chủ yếu tập trung vào hoạt động trực tiếp củatác tử Trong lĩnh vực học tăng cường, tồn tại các thách thức liên quan đến

việc học cách ánh xạ các tình huống thành các hành động để tối đa hóa phần thưởng Việc này đòi hỏi sự cân nhắc giữa khám phá (tìm hiểu kiến thức chưa

được biết) và khai thác (sử dụng kiến thức đã được biết) Nói chung, học tăng

Trang 34

cường bao gồm hai thực thể chính là tác tử và môi trường, và chúng tương tác

với nhau qua các kênh giao tiếp bao gồm hành động, phần thưởng và quan sát

Tac tử, là một cái gì đó tương tac với môi trường thông qua việc thực hiện

những hành động nhất định, quan sát và nhận về phần thưởng cuối cùng cho

việc này

Môi trường, là những thứ bên ngoài tác tử nhận dữ liệu từ tác tử và xử lí

để trả dữ liệu về cho tác tử học.

Hành động, là những điều mà tác tử có thể thực hiện bên trong môi trường.

Quan sát đề cập đến các mau thông tin về môi trường mà tác tử có thể

nhận được Đôi khi, các quan sát có thể trùng nhau, tuy nhiên chúng ta cần

phân biệt giữa quan sát và trạng thái của môi trường Trong lý thuyết học tăng

cường, chúng ta sử dụng quy trình quyết định Markov để định nghĩa chính thức

về trạng thái Trạng thái phải có thuộc tính Markov, điều này có nghĩa là khi

biết trạng thái, ta có thể xác định phản hồi của môi trường đối với một hành

động Những yếu tố khác được xem như là ngẫu nhiên và không được biết đếncho đến khi hành động kết thúc

Các hệ thống như hệ thống xác định, các trò chơi dựa trên xác suất hoặc các

mô phỏng do máy tính điều khiển có thể được thiết kế sao cho có các trạng thái

Trang 35

dễ quan sát với thuộc tính này Ví dụ, trong môi trường Inverted Pendulum,

một bài toán kinh điển trong học tăng cường, một con lắc ngược thực tế có thể

hoạt động khác nhau tùy thuộc vào nhiệt độ, các khớp nối và bộ truyền động,

hoặc sự thay đổi về lực ma sát, và nhiều yếu tố khác Tuy nhiên, tác tử học tăng cường thường chỉ quan tâm đến chuyển động và vị trí hiện tại của xe day

và con lắc Trong trường hợp này, việc quan sát 4 đặc điểm là đủ và trạng thái

dựa trên 4 đặc điểm này gần như có thuộc tính Markov.

Bên cạnh đó, cũng có những trường hợp mà quan sát không đủ để tạo ra dit

liệu trạng thái sử dụng cho hệ thống học tăng cường Ví dụ, khi một khung hình

bị mất dữ liệu về chuyển động Để giải quyết vấn đề này, chúng ta có thể lấy bốn khung hình liên tiếp và kết hợp chúng để tạo ra một trạng thái duy nhất Trong trường hợp này, ta có thể hiểu rằng mỗi khung hình đại diện cho một quan sát, và cần kết hợp bốn quan sát này để tạo ra một trạng thái có ý nghĩa

và hữu ích.

Phần thưởng là một yếu tố quan trọng trong học tăng cường, đại diện cho

giá trị số mà tác tử nhận được từ môi trường thông qua các hành động của nó.Phần thưởng có thể có giá trị âm hoặc dương, lớn hoặc nhỏ, và đơn giản chỉ

là một con số Mục tiêu của phần thưởng là giúp tác tử đánh giá hiệu quả của

hành vi của mình Phần thưởng có thể được cung cấp sau mỗi tương tác giữa tác

tử và môi trường, hoặc sau một khoảng thời gian nhất định, tùy thuộc vào cách

người lập trình xác định phù hợp cho từng bài toán cụ thể Tuy nhiên, phần

thưởng chỉ áp dụng cục bộ, chỉ phản ánh thành công của những hành động gầnđây của tác tử, không bao gồm toàn bộ thành công trong quá khứ hoặc trong

tương lai Quan trọng là tác tử có thể nhận được nhiều phần thưởng sau một

số hành động, nhưng điều này không đảm bảo rằng tác tử sẽ không gặp phải

những hậu quả nghiêm trọng từ những quyết định trước đó Ví dụ, việc ăn một

quân cờ của đối thủ trong một trận cờ vua có thể mang lại phần thưởng, tuy

nhiên, cần lưu ý rằng điều này có thể dẫn đến tình huống bị chiếu bí mà đối thủ

đã chuẩn bị trước cho tác tử.

Trang 36

Hơn nữa, tín hiệu phần thưởng đóng vai trò quan trọng trong việc điều chỉnh

chính sách Nếu một hành động được chính sách chọn dẫn đến một phần thưởng

thấp, chính sách có thể được điều chỉnh để ưu tiên các hành động khác trong

những tình huống tương tự trong tương lai Tuy nhiên, nếu phần thưởng chỉ có

tính cục bộ và ngay lập tức, các ham giá tri sẽ định nghĩa những gì được xem

là giá trị lâu dài Giá trị của một trạng thái là tổng phần thưởng mà tác tử có thể tích lũy được trong tương lai Thay vì xác định kết quả ngay lập tức của các

trạng thái môi trường như phần thưởng, các hàm giá trị sẽ đánh giá khả năng

tích lũy phần thưởng lâu dài sau khi xem xét các trạng thái tiếp theo và phần

thưởng có sẵn trong những trạng thái đó Mặc dù vậy, phần thưởng vẫn mang ý

nghĩa quan trọng và được coi là một yếu tố trung tâm trong hệ thống học tăng

cường Không có phần thưởng, không có giá trị, và mục tiêu chính của việc ước

tính giá trị là để đạt được nhiều phần thưởng hơn.

Nhìn chung, những yếu tố này gây ra các thách thức cho học tăng cường vìhành động của tác tử có tác động lâu dài đến các đầu vào trong tương lai Thay

vì có sẵn hướng dẫn về cách thực hiện hành động, tác tử phải khám phá các

hành động mang lại phần thưởng cao nhất thông qua quá trình thử và sai Đôi

khi, hành động có thể ảnh hưởng không chỉ đến phần thưởng hiện tại mà còn

đến tình huống và phần thưởng trong tương lai, như đã đề cập trước đó Hơn

nữa, có nhiều mô hình học tăng cường khác nhau có thể được áp dụng tùy thuộc vào vấn đề cụ thể, bao gồm cả mô hình đơn tác tử và đa tác tử Tuy nhiên, trong

học tăng cường, tất cả các tác tử đều cố gắng cải thiện hành vi dựa trên phan

thưởng mà chúng thu được Một tác tử hiệu quả trong học tăng cường sẽ tích

lũy được một lượng phần thưởng đáng kể sau một chuỗi các hành động mà nó

thực hiện.

Quy trình ra quyết định Markov là một mô hình toán học trong lý thuyết quyết định và lý thuyết điều khiển N6 dùng để mô phỏng quá trình ra quyết

định trong một hệ thống động, trong đó quyết định được đưa ra dựa trên trạng

thái hiện tại và tác động lên trạng thái tương lai.

Trang 37

Quy trình ra quyết định Markov bao gồm các thành phần sau:

e Trạng thái (State): Hệ thống được mô hình hóa thành các trạng thái khác

nhau, đại diện cho tình trạng của hệ thống tại một thời điểm cụ thể Trạng thái có thể là rời rạc hoặc liên tục.

e Hành động (Action): Các hành động có thể được thực hiện trong mỗi trạng

thái Hành động có thể là rời rạc hoặc liên tục và có thể có một tập hợp

hành động khác nhau tại mỗi trạng thái.

e Xác suất chuyển trạng thái (State Transition Probability): Xác suất chuyển

từ một trạng thái hiện tại sang các trạng thái khác trong tương lai khi thựchiện một hành động Xác suất chuyển trạng thái thường được biểu diễn

dưới dạng ma trận xác suất

e Phần thưởng (Reward): Mỗi hành động thực hiện trong một trạng thái có

thể được liên kết với một giá trị phần thưởng, đại điện cho lợi ích hoặc chỉ

phí của hành động đó Mục tiêu là tối đa hóa tổng giá trị phần thưởng thu

được theo thời gian.

e Hàm giá trị (Value Function): Ham giá trị đo lường giá trị dai hạn của một

trạng thái hoặc hành động No thể hiện mức độ tốt hơn của một trạng thái

hoặc hành động dựa trên tổng giá trị phần thưởng dự kiến.

Trang 38

Trong quá trình tương tác với môi trường, tác tử học tăng cường

(Reinforee-ment Learning - RL) liên tục tương tac với môi trường theo thời gian Tại mỗi

thời điểm t, tác tử nhận thấy trạng thái hiện tại của môi trường là st thuộc

tập trạng thái S và tập hành động có sẵn cho tác tử là A(st) Tác tử chọn một

hành động a từ tập A(st) và thực hiện nó dựa trên chính sách (t|st) Sau đó,

tác tử nhận được một trạng thái mới st+1 từ môi trường theo xác suất chuyển

đổi trạng thai P(st+1|st, t), đồng thời cũng nhận được một phần thưởng rt+1

từ môi trường Dựa trên tương tác này, chính sách : S > A được tối ưu để

tăng cường tổng giá trị R = r0 + rl + + rm trong các quy trình quyết địnhMarkov với một trạng thái kết thúc hoặc R = tt rt trong các quy trình quyết

định Markov không có trạng thái kết thúc Trong đó, là một hệ số chiết khấu

"phần thưởng trong tương lai", có giá trị trong khoảng (0, 1]

Dựa vào đây, ta thấy rõ ràng để triển khai một hệ thống học tăng cường đạt

hiệu qua thì điều đầu tiên là cần xác định tốt chính sách hành vi , tức là cách

lựa chọn hành vi tại mỗi trạng thái môi trường khác nhau, đồng thời cân bằng

giữa việc khai thác và khám phá - một thách thức trong RL [9], nhằm giúp tác

tử học tăng cường tránh việc liên tục lựa chọn lại những hành động đã đạt được

phần thưởng mà không tích cực khám phá môi trường

Trước tiên, chúng tôi ký hiệu giá trị thực tế của hành động a là q(a) và giá trị

ước tính của nó ở bước thời gian t là Qt(a) Bên cạnh đó, một hành động tham

lam là một hành động được đưa ra dựa vào những kinh nghiệm đã được học của

tác tử, tức là nó đang khai thác kiến thức hiện tại Và hành động khám phá,

là một hành động có mục đích khám phá môi trường Trong học tăng cường,

phương pháp đơn giản nhất để xác định hành vi cho tác tử đó là lựa chọn hành

vi có giá trị ước tính cao nhất Điều này gây nên sự mất cân bằng giữa việc khai

thác và khám phá Khi đó, giải pháp thay thế đơn giản đó là lựa chọn những

hành động tham lam ở hầu hết các mốc thời gian, nhưng đôi khi sẽ lựa chọn

ngẫu nhiên những hành động có xác suất tương đương nhau Phương pháp này

gọi là c greedy Hiểu một cách đơn giản, mỗi hành động tác tử có thể thực hiện

Trang 39

tại thời điểm t có thể được dự đoán với một xác suất chuyển đổi trạng thái nhất

định Phương pháp greedy cho phép chúng ta khai báo một giá tri , nếu xác

suất hành động được chọn nhỏ hơn giá trị , chúng ta sẽ chọn một hành động

ngẫu nhiên thay vì hành động trước đó Ngược lại ta tiếp tục chọn hành động

tham lam.

Hàm giá trị có tác dụng dự đoán giá trị tiềm năng của mỗi trạng thái hoặc

cặp hành động - trạng thái trong tương lai Nó đo lường mức độ hữu ích hoặctốt của trạng thái hoặc hành động đó, dựa trên phần thưởng dự kiến có thể tích

lũy được Hàm giá trị giúp tác tử ước tính giá trị lâu dài của các hành động và

hướng tới những hành động tối ưu nhằm tối đa hóa phần thưởng

Giá trị trạng thái Vz(s) là giá trị kỳ vọng cho việc tuân theo chính sách từ

trạng thái s No có thể được thể hiện bằng phương trình Bellman như sau:

VT(s) = do, Tals) 3 )„ „ p(s”,r|s, a)[r + +V^(s)] (2.1)

Khi đó, giá trị trạng thái tối ưu Vx(s) = max, V+(s) là giá trị trạng thái lớn

nhất có thể đạt được từ bất kỳ chính sách nào đối với trạng thái s, được thểhiện qua phương trình Bellman:

V¿(s) = max, >>, p(s’, r|s, a)[r + +Q*(s)] (2.2)

Giá trị hành động g;(s, œ) là giá trị kỳ vọng cho hành động a ở trạng thái s

Trang 40

và tuân theo chính sách Được thể hiện qua phương trình Bellman:

qz(s,w) = Diy, p(s’ rls, a)[r + +@*(s)| (2.3)

Hàm giá trị hành động tối ưu q.(s,q) là giá trị hành động lớn nhất có thể

đạt được bằng bất kỳ chính sách nào cho trạng thái s và hành động a, được thể

hiện qua phương trình Bellman:

qx(s, 4) = S05, p(s”,r|s, ø)[r + + maxạ q.(s”, a')] (2.4)

Do đó, tùy thuộc vào mục đích học tập, có các phương pháp tương ứng khác nhau như đơn tác nhân hoặc đa tác nhân Các phương pháp như Temporal

Difference (TD), SARSA và Q-Learning được sử dụng Những phương pháp này

thường được thể hiện dưới dạng bảng giá trị, trong đó hàm giá trị hoặc chính

sách được lưu trữ dưới dạng bảng để tìm kiếm Ngoài ra, có nhiều biến thể khác

nhau của chúng nhằm tối đa hóa phần thưởng trong nhiều bước tương lai, sử

dụng phương pháp Monte-Carlo SARSA và Q-Learning đặc biệt phổ biến vi

hiệu quả và dễ triển khai Ngoài ra, một phương pháp tiếp cận khác là sử dụng

xấp xỉ hàm thay vì bảng giá trị Xấp xỉ hàm được sử dụng để tổng quát hóa

khi không gian trạng thái hoặc hành động lớn hoặc liên tục Mục tiêu của xấp

xỉ hàm là xây dựng một ước lượng tổng quát của hàm từ các ví dụ đã có Tuy nhiên, trong học tăng cường, xấp xỉ hàm thường gặp các vấn đề không ổn định.

Ngày đăng: 02/10/2024, 04:05

TRÍCH ĐOẠN

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

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

TÀI LIỆU LIÊN QUAN