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 e Chương 3: Trình bày mô hình học tăng cường. 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.
CƠ SỞ LÝ THUYET Chương này trình bày cơ sở lý thuyết của nghiên cứu: Dinh nghĩa về cấu trúc hợp đồng, cấu trúc của giao dịch hợp đồng, các loại lỗ hổng bảo mật có thể xảy ra của hợp đồng thông minh, mô hình khai thác lỗ hổng hợp đồng thong minh, phương pháp nghiên cứu đánh giá. Hợp đồng thông minh 2. Dinh nghĩa Hợp đồng thông minh là một giao thức giao dịch dựa trên công nghệ Blockchain. Mục đích của hợp đồng là thực hiện các điều khoản của hợp đồng mà không cần thông qua bên thứ ba, được sử dụng để tự động hóa việc thực hiện một thỏa thuận.
Cấu trúc Trong đề tài này, nhóm tập trung nghiên cứu hợp đồng thông minh với ngôn ngữ solidity ở các phiên bản 0. Một hợp đồng thông minh (Smart Contract) được viết bằng ngôn ngữ solidity có định dạng mở rộng ".sol" và bao gồm các thành phần như: e Khai báo phiên bản Solidity (pragma): Chỉ định phiên bản Solidity mà hợp đồng được phát triển để đảm bảo sự tương thích của ngôn ngữ. e Biến (Variables) và kiểu dữ liệu (Types): Dinh nghĩa các biến và kiểu dữ liệu được sử dụng trong hợp đồng. Các kiểu dữ liệu thường được sử dụng: uint, bool, address, bytes, string.
8 e Dữ liệu lưu trữ (Data Storage): Trong Solidity, các giá trị dữ liệu tham chiếu có thể được lưu trữ dưới dạng lưu trữ (Storage), bộ nhớ (Memory) hoặc các lời gọi (Calldata) tùy thuộc vào vai trò của dit liệu được lưu trữ. e Hàm khởi tạo hợp đồng (Constructor): Khởi tạo các biến và trạng thái ban đầu của hợp đồng. e Công cụ sửa đổi truy cập (Access Modifiers): Kiểm tra và áp dụng các ràng buộc trước khi thực hiện hàm. e Ham (Functions): Thực hiện các thay đổi và tính toán trong hợp đồng và trả về kết quả nếu có.
e Sự kiện (Events): Dinh nghĩa các sự kiện mà hợp đồng có thể phát sinh và ghi lại. AST (Abstract Syntax Tree - Câu Cú Pháp Trừu Tượng) Trong bối cảnh hợp đồng thông minh trên nền tảng Ethereum, AST (Abstract Syntax Tree - Cây Cú Pháp Trừu Tượng) là một cấu trúc dữ liệu biểu diễn cấu trúc của một chương trình Solidity. Nó được tạo ra bởi trình biên dịch Solidity và có thể được sử dụng để phân tích và thao tác mã của chương trình. Hiểu về AST là quan trọng đối với nhà phát triển để đảm bảo an ninh và hiệu suất của hợp đồng thông minh, vì nó cho phép phát hiện các lỗ hong tiềm năng và tối ưu mã.
Ngoài những lợi ích thực tế đã đề cập, việc bổ sung các cơ sở lý thuyết cũng nâng cao sự quan trọng của việc hiểu Cây Cú Pháp Trừu Tượng (AST) trong lĩnh vực hợp đồng thông minh trên nền tảng Ethereum. AST đóng vai trò là một công cụ cơ bản cho nhà phát triển để khám phá sâu vào sự phức tạp của một chương trình Solidity, giúp họ điều hướng cú pháp và cấu trúc của chương trình một cách hiệu quả. 9 Bằng cách sử dụng AST, nhà phát triển có quyền truy cập vào một biểu diễn phân cấp của mã chương trình, giúp phân tích và thao tác một cách chỉ tiết. Biểu diễn cấu trúc này giúp xác định các 16 hong tiềm năng trong hợp đồng thông minh.
Thông qua việc phân tích dựa trên AST, nhà phát triển có thể khám phá những yếu điểm bảo mật như cuộc tấn công tái nhập, tràn số nguyên hoặc những lỗi phổ biến khác có thể đe dọa tính toàn vẹn của hợp đồng. Phương pháp tiếp cận này giúp nhà phát triển tăng cường bảo mật mã và nâng cao tổng thể tình trạng an ninh của hợp đồng thông minh. Hơn nữa, AST cho phép nhà phát triển tối ưu hóa hiệu suất của hợp đồng thông minh. Bằng cách đi qua cấu trúc dạng cây của AST, nhà phát triển có thể xác định các phần mã có thổ không hiệu quả hoặc tốn nhiều tài nguyên tính toán.
Kiến thức này cho phép họ thực hiện tối ưu hóa mục tiêu, cải thiện tốc độ thực thi của hợp đồng và giảm chỉ phí gas liên quan. Do đó, việc hiểu về AST không chỉ đóng góp vào mặt bảo mật mà còn tạo điều kiện để tạo ra các hợp dng thông minh hiệu quả và tiết kiệm chi phí. AST được biểu diễn ở dang nodes, các nodes con sẽ biểu thị đặc tính của hợp dng, hàm, cấu trúc câu lệnh. Ỏ phiên bản solidity 0.4 và phiên bản solidity 0.
Ở phiên bản solidity 0.4, cầu trúc AST của trình biên dịch tạo ra gây khó khăn trong quá trình phan tích, bởi vì các cầu trúc này được quy định theo một cấu trúc tương tự nhau về cách đặt tên, hơi khó để có thể phân biệt đâu là statement, đâu là instruction. Còn ở phiên bản solidity 0.8, cấu trúc này sẽ có sự phân chia rõ ràng ở các lớp khác nhau về cách đặt tên. NAME CONTRACTHIND ATTRIBUTE «, SRC ID ** Hình 2.1: Cấu trúc của cay cú pháp trừu tượng ở phiên ban solidity 0.4 CONTRACT DEPENDENCIES * NODETYPE „ NAM! CONTRACTHIND «' ATTRIBUTE «,. INSTRUCTION tres STATEMENT teee BODY seers Hình 2.2: Cau tric của cây cú pháp trừu tượng ở phiên ban solidity 0.
ABI (Application Binary Interface) Trong ngữ cảnh của hợp đồng thong minh trên nền tang Ethereum, ABI (Application Binary Interface)[3] đóng vai trò quan trọng trong việc tạo điều kiện giao tiếp giữa các thành phần phần mềm khác nhau. ABI xác định cấu trúc và định dạng của các cuộc gọi hàm và truyền dữ liệu giữa các hợp đồng thông 11 minh và các thực thể bên ngoài, chẳng hạn như giao diện người dùng hoặc các hợp đồng thông minh khác. Bằng cách xác định quy ước gọi, kiểu dữ liệu và bố cục bộ nhớ, ABI đảm bảo sự tương tác và tương thích giữa các phần khác nhau của một chương trình máy tính. N6 cho phép hợp đồng thông minh tương tác một cách liền mạch với các hợp đồng khác, ứng dụng phi tập trung (dApps) hoặc hệ thống bên ngoài.
ABI cung cấp một giao diện tiêu chuẩn cho phép nhà phát triển tích hợp hợp đồng của họ với các hệ thống hiện có hoặc xây dựng các hệ thống phức tạp bao gồm nhiều hợp đồng thông minh liên kết với nhau. Ngoài ra, ABI cũng là tài liệu giao diện cho một hợp đồng, cho phép nhà phát triển hiểu và tương tác với các hợp đồng đã triển khai. Nó cung cấp mô tả về các chức năng có sẵn, các đầu vào và đầu ra của chúng, cũng như cách gọi chúng. Cấu trúc giao dịch e Dia chỉ nguồn (Sender address): Dia chỉ của người hoặc tổ chức gửi giao dịch hợp đồng thông minh.
e Địa chỉ dich (Recipient address): Địa chỉ của hợp đồng thông minh nhận giao dịch. e Giá trị (Value): Số lượng tiền, được định dang theo đơn vị blockchain (vi du: Ether trên Ethereum), được chuyển đến hợp đồng thông minh. e Mã bytecode (Bytecode): Dây là phần quan trọng nhất của giao dịch hợp đồng thông minh. No chứa mã nguồn của hợp đồng thông minh được biên dịch thành mã may (bytecode) để thực thi trên blockchain.
Bytecode nay sẽ được lưu trữ trên blockchain và được thực thi khi có giao dịch liên quan đến hợp đồng. e Dữ liệu (Data): Dữ liệu được truyền cùng với giao dịch hợp đồng thông 12 minh. Trong trường hợp giao dịch hợp đồng thông minh, dữ liệu thường chứa thông tin về hàm cần được gọi và các tham số của hàm đó. e Phí giao dịch (Transaction fee): Mỗi giao dịch trên blockchain đều yêu cầu người gửi trả một khoản phí giao dịch cho các thợ mỏ (miners) để xác nhận và ghi giao dịch vào blockchain.
Phi giao dich này được tính toán dựa trên kích thước giao dịch và mức độ tắc nghẽn của mạng. e Chữ ký số (Digital signature): Giao dịch hợp đồng thông minh cần được ký bởi khóa riêng tư (private key) của người gửi để xác minh tính toàn vẹn và xác thực của giao dịch. e Thời gian giao dịch (Timestamp): Thời gian khi giao dịch được tạo và gửi đi. Uu va nhược điểm của Hợp đồng thông minh Ưu điểm e Tự động hóa: Hợp đồng thông minh loại bỏ sự phụ thuộc vào bên thứ ba và giúp tự động hóa các quy trình giao dịch.
Khi các điều kiện được đáp ứng, hợp đồng sẽ tự động thực thi các hành động đã được lập trình. e Tin cậy và minh bạch: Thông tin và các giao dịch liên quan được mã hóa và chia sẻ công khai trên blockchain. Diéu này dam bảo tính minh bạch và giúp người dùng có thể kiểm tra và xem lại tất cả các giao dịch một cách công khai. Các bên tham gia có thể tin tưởng vào tính toàn vẹn của dữ liệu và không cần phải dựa vào một bên trung gian để giám sát hay xác minh các giao dịch.
Hợp đồng thong minh giúp giảm thiểu sự phụ thuộc vào con người và nguy cơ mắc lỗi trong quá trình giao dịch. Bằng cách sử dụng mã lệnh được lập trình trước, các điều kiện giao dịch sẽ tự động được thực hiện khi các điều kiện đáp ứng. Điều này đảm bảo tính chính xác và thực thi tức thì của hợp đồng. 13 ¢ Tiết kiệm chi phí: Sử dung hợp đồng thông minh có thể giảm thiểu hoặc loại bỏ nhu cầu về trung gian hoặc dịch vụ pháp lý, từ đó giảm chi phí giao dich.
Nhược điểm e Khó thay đổi: Hợp đồng thông minh loại bỏ sự phụ thuộc vào bên thứ ba và giúp tự động hóa các quy trình giao dịch. Khi các điều kiện được đáp ứng, hợp đồng sẽ tự động thực thi các hành động đã được lập trình. e Rủi ro cao Một khi được triển khai, hợp đồng thong minh không thể bị thay đổi mà không có sự đồng ý của tất cả các bên liên quan. Điều này đảm bảo tính toàn vẹn của hợp đồng và ngăn chặn sự can thiệp từ các bên không đáng tin cậy.
e Phụ thuộc công nghệ Nếu có sự thay đổi trong các chuẩn và giao thức của Blockchain, điều này có thể làm thay đổi cách thức hoạt động của Smart Contract. Néu một Smart Contract đã được triển khai dựa trên một phiên bản cũ của chuẩn hoặc giao thức và sau đó có sự thay đổi, Smart Contract có thể không tương thích hoặc không hoạt động đúng như mong đợi.