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. 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. Hợp đồng thông minh 2. 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. Traditional Contracts Smart Contracts Hình 2.1: Hop dong thông minh 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 9 đồ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ép tấ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 10 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ạm van 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. 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à thanh toá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 minh bạ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 11 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. 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. 12 1 contract hahahoho { mapping (address => uint)public creedit; wFmACboaen function donete(address tq) { creedit[tq] += msg.value; function withdrew(uint amoont) { if (creedit[msg.sender]>= amoont) { msg.value(amoont) (); =—RNCFoBPOY2T creedit [msg.sender]-=amoont; function querycreedit(address tq) returns (uint){ return creedit[tq]; 18 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 ham withdrawBalance() trong hợp đồng gốc. Khi hợp đồng gốc chạy hàm msg.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ộ. 13 1 contract Attack { bwFmACoaen SimpleDAO public simpledao; constructor(address _simpledaoAddress) { simpledao = SimpleDAO(_simpledaoAddress) ; function contribute() public payable { simpledao.contribute{fvalue: msg.value}() ; —m9=CwFoOnNeTyr function attack() public { simpledao.withdraw() ; 21 14 Malicious Proxy Contract Initiate Withdrawal re-entrant attack with repeated Ether Withdrawal | withdrawBalance Ether transfer fallback function withdrawBalance 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ất mat 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 15 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 đó.