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 Chương 2 CƠ SỞ LÝ THUYÊT VÀ CÁC NGHIÊN CỨU LIÊN QUAN Tóm tắt chương Trong chương này, chúng tôi sẽ trình bày cơ sở lý thuyết cần thiết của khóa luận.
Bao gồm các khái niệm về blockchain, hợp đồng thông minh trong nền tảng Ethereum, các loại lỗ hổng, các kỹ thuật phân tích code, mô hình phát hiện lỗ hổng, và mô hình học máy phân loại trên hợp đồng thông minh. Đồng thời, chúng tôi trình bày tóm tắt về những công trình nghiên cứu liên quan đến phát hiện lỗ 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.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ột chuỗi liên tục và không thể thay đổi.
Dễ dàng hình dung các khối và chuỗi được liên kết với nhau qua hình ảnh 2. CƠ SỞ LÝ THUYẾT VA CÁC NGHIÊN CỨU LIEN QUAN Hash: € 178F ). Hash: 3H4Q Previous hash 0000 Previous hash: ( 1Z8F Previous hash: 6BQ1 HINH 2.1: Mô hình Blockchain Blockchain có ba đặc điểm chính: 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.
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.2 khi bị thay đổi giá trị hàm băm ở khối trước, ngay lập tức khối ở phía sau nhận ra và từ chối. 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. CƠ SỞ LÝ THUYẾT VA CÁC NGHIÊN CỨU LIEN QUAN Hash: 178F Hash: gpeT H62Y : Hash: 3H40 Previous hash: Uh thats 0000 Previous hash: 1Z8F Previous hash:( 6BQ1 not right?? 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.
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. 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. 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ựa trên thông tin của khối hiện tại và khối trước đó. 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. 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. 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ạn chế tham gia. Quyền đọc, ghi, và tham gia vào quá trình đồng thuận đều được kiể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. 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ả blockchain công khai và riêng tư.
Một số nút được chọn sẽ tham gia vào quá trình đồng thuận, trong khi quyền truy cập vào blockchain có thể được mở rộng hoặc giới hạ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ụng trong 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 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ác nhau, 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 minh trê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.0 trở lên được yêu cầu để biên dịch hợp đồng. 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ác giá 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ức trong 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. COSO LY THUYET VA CÁC NGHIÊN CUU LIEN QUAN pragma solidity *0.0; UMOPNR contract SmartContract { uint256 public myNumber; event NumberUpdated(uint256 newValue) ; constructor() { myNumber = 9; Bb®0 } rRNB function updateNumber(uint256 newValue) public { myNumber = newValue; PRWw+u } emit NumberUpdated (newValue) ; RRNO function getNumber() public view returns (uint256) { Bb œ return myNumber; to } N iS) w 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.