Bối cảnh và vấn đề nghiên cứu

Trong xu hướng phát triển của công nghệ thông tin và chuyển đổi số, công nghệ blockchain cùng hợp đồng thông minh (smart contracts) đang được ứng dụng rộng rãi trong nhiều lĩnh vực như tài chính phi tập trung (DeFi), quản lý chuỗi cung ứng, bảo hiểm, bất động sản và bảo vệ quyền sở hữu trí tuệ. Hợp đồng thông minh là các đoạn mã lệnh được triển khai và thực thi tự động trên mạng blockchain, cho phép thực hiện các giao dịch minh bạch, phi tập trung và không cần thông qua bên thứ ba đáng tin cậy.

Tuy nhiên, tính chất bất biến (immutability) của blockchain đặt ra những thách thức nghiêm trọng về an toàn thông tin: một khi hợp đồng thông minh đã được triển khai lên mạng lưới, mã nguồn không thể chỉnh sửa hay dừng lại đột ngột nếu xảy ra sự cố. Khi tồn tại lỗ hổng bảo mật, kẻ tấn công có thể khai thác để chiếm đoạt tài sản và làm thay đổi trạng thái của hợp đồng, điển hình như sự cố "The DAO" trên mạng Ethereum năm 2016 gây thiệt hại hàng triệu USD.

Trong thực tế, số lượng hợp đồng thông minh được triển khai là rất lớn. Việc kiểm thử và khai thác lỗ hổng bằng phương pháp thủ công tiêu tốn nhiều thời gian và nhân lực. Đồng thời, việc khai thác thành công một hợp đồng thường không thể chỉ dựa vào một lời gọi hàm đơn lẻ mà đòi hỏi phải thiết lập một chuỗi các lời gọi hàm (transaction sequence) hợp lệ, theo đúng thứ tự logic và trạng thái của hợp đồng. Xuất phát từ bối cảnh đó, khóa luận tập trung nghiên cứu giải pháp tự động hóa quá trình khai thác lỗ hổng trên hợp đồng thông minh bằng kỹ thuật học tăng cường.

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

  1. Nghiên cứu và ứng dụng phương pháp học tăng cường (Reinforcement Learning) để tự động sinh ra chuỗi lời gọi hàm nhằm khai thác thành công các hợp đồng thông minh có chứa lỗ hổng bảo mật trong thời gian ngắn.
  2. Tích lũy và tối ưu hóa dữ liệu khai thác thành công để cải thiện hiệu suất cho các lần khai thác tiếp theo.
  3. Xây dựng công cụ thực nghiệm, đánh giá hiệu năng mô hình so với các phương pháp tiếp cận hiện có và đề xuất hướng mở rộng.

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

  1. Hợp đồng thông minh (Smart contracts) chạy trên nền tảng blockchain (đặc biệt là Ethereum/Solidity).
  2. Các loại lỗ hổng bảo mật thường gặp trong hợp đồng thông minh.
  3. Các mô hình học tăng cường (Q-Learning, Deep Q-Network - DQN, Deep Recurrent Q-Network - DRQN).
  4. Các phương pháp đánh giá độ hiệu quả của mô hình khi khai thác tự động lỗ hổng hợp đồng thông minh.

Phạm vi nghiên cứu

  • Phạm vi kỹ thuật: Trích xuất các thuộc tính tĩnh và động của hợp đồng thông minh từ giao diện nhị phân ứng dụng (ABI) và cây cú pháp trừu tượng (AST); xây dựng không gian trạng thái, không gian hành động và hệ thống phần thưởng để huấn luyện tác tử sinh chuỗi giao dịch khai thác.
  • Môi trường thực nghiệm: Triển khai và thử nghiệm mô phỏng trên mạng blockchain cục bộ Ganache.
  • Giới hạn bài toán: Tập trung vào các mẫu lỗ hổng phổ biến có thể mô hình hóa trạng thái (như Reentrancy, Suicidal); chưa xử lý các hợp đồng có logic tính toán kinh doanh quá phức tạp.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và khái niệm nền tảng

Khóa luận xây dựng trên các khối kiến thức chuyên ngành an toàn thông tin và trí tuệ nhân tạo:

Khái niệm / Công nghệ Vai trò trong nghiên cứu
Hợp đồng thông minh (Smart Contracts) Đối tượng kiểm thử, chạy mã byte trên máy ảo Ethereum (EVM), có đặc tính tự động hóa, phi tập trung và bất biến.
Application Binary Interface (ABI) Giao diện nhị phân chuẩn hóa giúp trích xuất danh sách hàm, tham số, kiểu dữ liệu và sự kiện để tương tác với hợp đồng.
Abstract Syntax Tree (AST) Cấu trúc cây cú pháp phân tích từ tệp mã nguồn Solidity (.sol), dùng để trích xuất cấu trúc ngữ pháp và luồng điều khiển.
Markov Decision Process (MDP) Khung toán học cho bài toán ra quyết định tuần tự, biểu diễn bằng bộ tứ $(S, A, P, R)$: Trạng thái ($S$), Hành động ($A$), Xác suất chuyển trạng thái ($P$), Hàm phần thưởng ($R$).
Q-Learning Thuật toán học tăng cường không mô hình dựa trên hàm giá trị hành động $Q(s, a) = r(s, a) + \gamma \max_{a'} Q(s', a')$.
Deep Q-Network (DQN) Kết hợp Q-Learning với mạng nơ-ron sâu, áp dụng kỹ thuật Experience Replay (bộ nhớ phát lại) và Fixed Target Network để ổn định quá trình tối ưu hóa trọng số.
Deep Recurrent Q-Network (DRQN) Kết hợp DQN với mạng nơ-ron tái phát (RNN/LSTM) nhằm lưu giữ thông tin trạng thái lịch sử, xử lý các phụ thuộc tuần tự theo thời gian.
Không gian vector (Word2Vec / FastText) Biểu diễn từ vựng và ngữ nghĩa của các thành phần mã nguồn dưới dạng vector số, trong đó FastText sử dụng n-grams cấp độ ký tự/subword.

Các lớp lỗ hổng bảo mật được nghiên cứu

  1. Lỗ hổng Reentrancy (Tái thâm nhập): Xảy ra khi một hợp đồng gọi ra ngoài (ví dụ gửi Ether bằng lệnh gọi cấp thấp msg.call) tới một hợp đồng độc hại trước khi kịp cập nhật trạng thái số dư nội bộ (creedit[msg.sender] -= amount). Hợp đồng tấn công lợi dụng hàm nhận tiền/hàm dự phòng (fallback()) để gọi đệ quy ngược lại hàm rút tiền (withdraw()), rút sạch số dư Ether của nạn nhân.
  2. Lỗ hổng Suicidal (Tự hủy không kiểm soát): Xảy ra khi hàm chứa lệnh selfdestruct() không được bảo vệ chặt chẽ bởi bộ bổ trợ quyền (modifier onlyOwner). Lập trình viên cấu hình sai ở hàm chuyển quyền sở hữu (ví dụ transferOwner), cho phép kẻ tấn công chiếm quyền sở hữu và kích hoạt tự hủy hợp đồng để chiếm đoạt tài sản.
  3. Lỗ hổng Integer Overflow/Underflow: Xảy ra khi các phép tính số học vượt qua ngưỡng lưu trữ tối đa hoặc nhỏ hơn ngưỡng tối thiểu của kiểu dữ liệu số nguyên (ví dụ kiểu uint8 vượt quá 255 quay về 0, kiểu int8 nhỏ hơn -128 nhảy lên 127).
  4. Lỗ hổng Block Gas Limit: Xảy ra khi một giao dịch tiêu tốn lượng gas vượt quá giới hạn gas cho phép trong một khối của blockchain, dẫn đến việc giao dịch bị mạng lưới từ chối thực thi.

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

Tác giả áp dụng phương pháp thực nghiệm kết hợp thiết kế hệ thống kỹ thuật:

  • Phân tích cấu trúc hợp đồng: Sử dụng ABI và AST của mã nguồn Solidity để xác định các điểm vào của hàm, các biến trạng thái và điều kiện kích hoạt.
  • Mô hình hóa bài toán khai thác thành bài toán học tăng cường: Tác tử (Agent) tương tác với môi trường hợp đồng thông minh; thực hiện hành động ($a_t$) là việc lựa chọn gọi một hàm kèm tham số; môi trường cập nhật trạng thái ($s_{t+1}$) và phản hồi phần thưởng ($r_{t+1}$) dựa trên việc trạng thái của hợp đồng nạn nhân có bị biến đổi theo hướng có lợi cho việc khai thác hay không.
  • Thuật toán học tập: So sánh hai thuật toán Deep Reinforcement Learning là DQN và DRQN với chiến lược thăm dò $\epsilon$-greedy nhằm cân bằng giữa việc khám phá hành động mới và khai thác hành động đã biết.
  • Nguồn dữ liệu và môi trường: Sử dụng các tập hợp đồng mẫu chứa lỗ hổng chuẩn; môi trường blockchain mô phỏng Ganache chạy ở máy cục bộ (local).

Thiết kế và triển khai hệ thống SCE

Hệ thống đề xuất trong khóa luận được đặt tên là SCE (Smart Contract Exploiter), bao gồm các phân hệ chính:

[Mã nguồn Solidity / Bytecode] 

Chi tiết các phân hệ:

  1. Phân hệ phân tích và trích xuất đặc trưng:
    • Nhận diện các hàm có khả năng thay đổi trạng thái (state operations).
    • Phân tích cây AST để trích xuất ngữ cảnh logic của tệp tin Solidity.
    • Sử dụng ABI để ánh xạ kiểu dữ liệu đầu vào và các sự kiện sinh ra.
  2. Trình sinh hợp đồng tấn công (Attack Contract Generator):
    • Tự động sinh mã nguồn hợp đồng trung gian (Malicious Proxy Contract) có cài đặt các hàm tấn công chuyên biệt (như hàm attack(), hàm contribute()) và hàm dự phòng fallback().
    • Hàm fallback() được lập trình để đón nhận các luồng Ether gửi về và thực hiện gọi đệ quy ngược lại hợp đồng nạn nhân trong kịch bản khai thác lỗi Reentrancy.
  3. Phân hệ tạo chuỗi giao dịch và thực thi:
    • Tác tử dựa trên mạng nơ-ron sâu (DQN hoặc DRQN) để dự đoán giá trị $Q(s, a)$ cho từng hàm khả dĩ.
    • Lựa chọn chuỗi các lời gọi hàm theo thứ tự tối ưu và gửi đến mạng blockchain mô phỏng Ganache.
    • Ghi nhận trạng thái thay đổi của số dư (balance) và các biến lưu trữ để quyết định giá trị phần thưởng tương ứng.

Nội dung chính theo từng chương

CHƯƠNG 1. TỔNG QUAN

Chương mở đầu trình bày tính cấp thiết của việc bảo mật hợp đồng thông minh trong kỷ nguyên blockchain. Tác giả chỉ ra rằng phương pháp khai thác thủ công bằng sức người tốn kém nhiều thời gian, trong khi các cuộc tấn công mạng diễn ra tự động và liên tục. Chương 1 xác định rõ mục tiêu ứng dụng học tăng cường để tự động sinh chuỗi lời gọi hàm, phân tích những thách thức cốt lõi (như tính phức tạp của thứ tự gọi hàm, sự bùng nổ không gian trạng thái), đồng thời vạch rõ phạm vi nghiên cứu và bố cục tổng thể của khóa luận.

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

Chương 2 cung cấp toàn bộ nền tảng toán học và kỹ thuật cần thiết cho đề tài:

  • Trình bày chi tiết đặc điểm, ưu nhược điểm và ứng dụng của hợp đồng thông minh.
  • Phân tích cơ chế hoạt động và ví dụ mã nguồn của các lớp lỗ hổng: Reentrancy, Suicidal, Integer overflow/underflow, Block gas limit.
  • Làm rõ cấu trúc của ABI và cây cú pháp trừu tượng AST trong việc chuẩn hóa giao diện tương tác và phân tích cú pháp mã nguồn Solidity.
  • Thiết lập khung lý thuyết học tăng cường: quy trình quyết định Markov (MDP), phương trình Bellman, thuật toán Q-Learning.
  • Phân tích quá trình tiến hóa từ Q-Learning truyền thống sang học tăng cường sâu: mạng Deep Q-Network (DQN) với kỹ thuật Experience Replay và Fixed Target Network; mạng nơ-ron tái phát (RNN/LSTM); và mô hình Deep Recurrent Q-Network (DRQN).
  • Tổng quan về các mô hình không gian vector biểu diễn từ ngữ: Word2Vec và FastText.

CHƯƠNG 3. MÔ HÌNH KHAI THÁC LỖ HỔNG HỢP ĐỒNG THÔNG MINH

Chương 3 trình bày chi tiết về mặt kiến trúc và luồng hoạt động của hệ thống đề xuất:

  • Mô hình tạo chuỗi lời gọi hàm: Cấu trúc hóa các hàm trong hợp đồng thành không gian hành động có chỉ số (ID) định danh.
  • Hệ thống phần thưởng (Reward System): Thiết lập bảng ánh xạ phần thưởng tương ứng với từng hành vi tác động vào trạng thái hợp đồng (thay đổi biến, rút thành công số dư Ether, kích hoạt trạng thái lỗi).
  • Luồng hoạt động: Quy trình khép kín từ trích xuất đặc trưng, sinh hợp đồng tấn công, tương tác với môi trường mô phỏng, đến cập nhật hàm mất mát $L(\theta)$ của mạng nơ-ron để tối ưu hóa chính sách.

CHƯƠNG 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

Chương 4 mô tả toàn bộ quá trình hiện thực hóa và đo lường thực nghiệm:

  • Cấu hình thực nghiệm: Thiết lập môi trường mạng cục bộ Ganache, triển khai hợp đồng nạn nhân và hợp đồng tấn công.
  • Tập dữ liệu: Phân chia tập huấn luyện (train set) và tập kiểm tra (test set).
  • Thực nghiệm huấn luyện và kiểm tra: Tiến hành huấn luyện mô hình qua các mốc số lượng episode khác nhau (800 episodes, 1000 episodes, 5000 episodes) trên cả hai thuật toán DQN và DRQN.
  • Phân tích các chỉ số: Đánh giá thời gian huấn luyện, mức độ ảnh hưởng của hàm phần thưởng, độ đa dạng của các hành động được tác tử lựa chọn, và mức độ ảnh hưởng của hành động đến khả năng thực thi giao dịch.
  • Đánh giá so sánh: So sánh hiệu năng và tính năng của công cụ SCE với các công cụ hiện có trên thị trường.

CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Chương cuối cùng tổng kết các kết quả đạt được trong việc tự động sinh chuỗi khai thác lỗ hổng bằng DRL, thẳng thắn chỉ ra các nhược điểm còn tồn tại của hệ thống, và đề ra các hướng nghiên cứu mở rộng trong tương lai.


Kết quả và đóng góp

Kết quả thực nghiệm chính

Qua các vòng thực nghiệm trên mạng mô phỏng Ganache ở các mốc 800, 1000 và 5000 episodes, tác giả ghi nhận các kết quả kỹ thuật:

  • Hiệu quả của mô hình DRQN so với DQN: Nhờ tích hợp mạng nơ-ron tái phát (RNN), mô hình DRQN duy trì trạng thái ẩn qua các bước thời gian, giúp ghi nhớ các phụ thuộc tuần tự giữa các lời gọi hàm tốt hơn so với mô hình DQN truyền thống.
  • Độ đa dạng hành động: Phân tích biểu đồ phân bố hành động chỉ ra rằng DRQN có khả năng phân bổ và khám phá không gian hành động phong phú hơn, giảm thiểu hiện tượng tác tử bị kẹt cục bộ trong các chuỗi hành động không hiệu quả.
  • Thời gian và tỷ lệ khai thác: Cả hai mô hình đều cho thấy xu hướng hội tụ khi số lượng episode tăng lên. Hệ thống tạo ra được chuỗi lời gọi hàm chính xác để kích hoạt thành công lỗi Reentrancy (thông qua hàm đệ quy fallback()) và lỗi Suicidal (thông qua việc chiếm quyền owner và gọi selfdestruct()).

Bảng tổng hợp các thuộc tính và đánh giá công cụ

Tiêu chí Tiếp cận truyền thống / Fuzzing tĩnh Công cụ đề xuất (SCE)
Cơ chế tạo chuỗi giao dịch Ngẫu nhiên hoặc dựa trên luật cố định Học tăng cường sâu (DQN / DRQN) thích nghi
Xử lý phụ thuộc ngữ cảnh Thấp, dễ tạo chuỗi giao dịch không hợp lệ Cao nhờ mô hình hóa chuỗi bằng RNN/DRQN
Khả năng tự sinh mã tấn công Thường yêu cầu viết payload thủ công Tự động sinh hợp đồng tấn công (Attack Contract)
Tích lũy kinh nghiệm khai thác Không lưu giữ tri thức học tập Lưu trữ trong trọng số mạng nơ-ron và bộ nhớ phát lại

Đóng góp của khóa luận

  1. Đề xuất quy trình ứng dụng học tăng cường sâu (DRL) vào bài toán tự động sinh chuỗi lời gọi hàm để khai thác lỗ hổng hợp đồng thông minh.
  2. Xây dựng hoàn chỉnh công cụ thực nghiệm SCE kết nối trực tiếp với mạng blockchain cục bộ (Ganache), tích hợp bộ trích xuất AST/ABI và trình sinh hợp đồng tấn công tự động.
  3. Cung cấp dữ liệu thực nghiệm so sánh chi tiết giữa hai kiến trúc DQN và DRQN trong môi trường kiểm thử an toàn blockchain.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế được ghi nhận

  • Phạm vi lỗ hổng: Hệ thống mới chỉ tập trung xử lý và khai thác thành công các dạng lỗ hổng cơ bản, có luồng trạng thái rõ ràng (như Reentrancy, Suicidal).
  • Độ phức tạp của logic nghiệp vụ: Đối với những hợp đồng thông minh phức tạp đòi hỏi tính toán logic sâu, có nhiều ràng buộc dữ liệu đầu vào phức tạp hoặc phụ thuộc nhiều trạng thái ngoại vi, mô hình chưa thể khai thác tự động hoàn toàn.
  • Không gian trạng thái lớn: Khi số lượng hàm và biến trạng thái trong hợp đồng tăng cao, việc rời rạc hóa và xây dựng không gian trạng thái - hành động gặp thách thức về tài nguyên tính toán.

Hướng phát triển tiếp theo

  • Mở rộng kiến trúc mạng nơ-ron và kết hợp sâu hơn các mô hình biểu diễn không gian vector (như FastText, Word2Vec) để biểu diễn ngữ nghĩa của mã nguồn và hàm phức tạp.
  • Tối ưu hóa hàm phần thưởng và thuật toán học tăng cường để mở rộng tập lỗ hổng có thể phát hiện và khai thác.
  • Tăng cường khả năng tự động sinh dữ liệu đầu vào (payload/tham số) chính xác cho các hàm có ràng buộc toán học phức tạp.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo chuyên môn đối với các nhóm đối tượng:

  • Sinh viên và học viên ngành An toàn thông tin, Khoa học máy tính: Tham khảo mô hình kết hợp giữa Trí tuệ nhân tạo (Học tăng cường sâu) và An toàn thông tin ứng dụng (Bảo mật Blockchain).
  • Kỹ sư bảo mật và Kiểm thử viên hợp đồng thông minh (Smart Contract Auditors): Tham khảo cách thức mô hình hóa quy trình khai thác chuỗi giao dịch tự động, cấu trúc tệp ABI và AST của ngôn ngữ Solidity.
  • Nghiên cứu sinh/Học viên làm đề tài liên quan: Tham khảo phương pháp xây dựng môi trường thử nghiệm với Ganache, thiết kế hợp đồng tấn công mô phỏng, và phương pháp so sánh hiệu năng giữa hai thuật toán DQN và DRQN.

Câu hỏi thường gặp

1. Tại sao việc khai thác lỗ hổng hợp đồng thông minh lại cần một chuỗi lời gọi hàm thay vì một lời gọi đơn lẻ?

Trong cấu trúc của hợp đồng thông minh, nhiều lỗ hổng bảo mật chỉ có thể bị kích hoạt khi hợp đồng đã trải qua các bước thay đổi trạng thái cụ thể. Ví dụ với lỗ hổng Reentrancy, kẻ tấn công phải thực hiện lời gọi hàm nạp tiền (contribute() hoặc donate()) trước để hợp đồng ghi nhận số dư, sau đó mới kích hoạt hàm rút tiền (withdraw()) để thực hiện đệ quy qua hàm fallback(). Một lời gọi hàm đơn lẻ không thể thỏa mãn toàn bộ logic điều kiện này.

2. Mô hình DRQN có ưu thế gì nổi bật hơn so với DQN trong nghiên cứu này?

DQN chỉ đánh giá trạng thái hiện tại một cách độc lập, trong khi việc khai thác hợp đồng thông minh mang tính phụ thuộc tuần tự theo thời gian. DRQN tích hợp thêm các đơn vị mạng nơ-ron tái phát (RNN/LSTM), cho phép mạng duy trì một trạng thái ẩn (hidden state) để lưu giữ thông tin lịch sử từ các bước trước đó, giúp đưa ra quyết định lựa chọn hàm tiếp theo chính xác và hợp lý hơn.

3. Trình sinh hợp đồng tấn công đóng vai trò gì trong hệ thống SCE?

Để khai thác một số lỗ hổng đặc thù như Reentrancy, kẻ tấn công không thể chỉ dùng địa chỉ ví cá nhân (Externally Owned Account) mà bắt buộc phải sử dụng một hợp đồng thông minh trung gian. Trình sinh hợp đồng tấn công trong SCE có nhiệm vụ tự động tạo mã nguồn hợp đồng trung gian chứa hàm fallback(), cho phép nhận Ether và tự động gửi lại yêu cầu rút tiền về hợp đồng nạn nhân trước khi trạng thái số dư được cập nhật.

4. Hệ thống thực hiện việc trích xuất thông tin hợp đồng thông minh thông qua những thành phần nào?

Hệ thống sử dụng hai thành phần chính là ABI (Application Binary Interface) và AST (Abstract Syntax Tree). ABI cung cấp định nghĩa về tên hàm, tham số đầu vào, kiểu dữ liệu và cấu trúc sự kiện. AST được sinh ra từ quá trình phân tích cú pháp mã nguồn Solidity, giúp trích xuất toàn bộ cấu trúc cú pháp, biểu thức, câu lệnh và luồng điều khiển của hợp đồng.


Kết luận

Khóa luận tốt nghiệp của tác giả Phùng Ngọc Huyễn đã nghiên cứu và hiện thực hóa thành công phương pháp khai thác tự động lỗ hổng bảo mật trên hợp đồng thông minh bằng kỹ thuật học tăng cường sâu. Thông qua việc phân tích cấu trúc ABI/AST, xây dựng trình sinh hợp đồng tấn công và triển khai hệ thống SCE trên môi trường blockchain Ganache, nghiên cứu đã chứng minh tính khả thi của việc tự động tạo chuỗi giao dịch khai thác các lỗ hổng như Reentrancy và Suicidal. Các kết quả thực nghiệm giữa hai mô hình DQN và DRQN cung cấp cơ sở dữ liệu quan trọng, mở ra hướng tiếp cận triển vọng trong việc tự động hóa kiểm thử thâm nhập và nâng cao an toàn cho hệ sinh thái blockchain.