ĐẠI HỌC QUỐC GIA TP. HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA -------------------- BĂNG NGỌC BẢO TÂM XÁC THỰC HỢP ĐỒNG THÔNG MINH BẰNG KỸ THUẬT PHÂN TÍCH TĨNH Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số: 8.01 LUẬN VĂN THẠC SĨ TP. HỒ CHÍ MINH, tháng 08 năm 2020 CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG – HCM Cán bộ hướng dẫn khoa học: PGS. Quản Thành Thơ Cán bộ chấm nhận xét 1: PGS.
TS Huỳnh Tường Nguyên Cán bộ chấm nhận xét 2: TS. Trần Thanh Tùng Luận văn thạc sỹ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp.HCM ngày 18 tháng 08 năm 2020. Thành phần Hội đồng đánh giá luận văn thạc sỹ gồm: 1. Chủ tịch: PGS.
TS Trần Văn Hoài 2. Nguyễn Lê Duy Lai 3. Phản biện 1: PGS. TS Huỳnh Tường Nguyên 4.
Phản biện 2: TS. Trần Thanh Tùng 5. Ủy viên: TS. Nguyễn Văn Sinh Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có).
CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA KH&KTM i ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập - Tự do - Hạnh phúc NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Băng Ngọc Bảo Tâm MSHV: 1870378 Ngày, tháng, năm sinh: 06/11/1996 Nơi sinh: Tp.HCM Chuyên ngành: Khoa học máy tính Mã số: 8480101 I. TÊN ĐỀ TÀI: Xác thực hợp đồng thông minh bằng kỹ thuật phân tích tĩnh. NHIỆM VỤ VÀ NỘI DUNG: Nghiên cứu các phương pháp phân tích tĩnh và cấu trúc của hợp đồng thông minh để đưa ra các giải pháp xác thực đúng đắn. Xây dựng một ứng dụng web đi kèm để trực quan hóa đề tài, đồng thời kiểm tra tính chính xác của giải pháp đề xuất đối với các ứng dụng thực tế.
NGÀY GIAO NHIỆM VỤ: 19/08/2019 IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 07/06/2020 V. CÁN BỘ HƯỚNG DẪN: PGS. Quản Thành Thơ Tp.
HCM, ngày 03 tháng 08 năm 2020 CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN ĐÀO TẠO (Họ tên và chữ ký) (Họ tên và chữ ký) TRƯỞNG KHOA KH&KTMT (Họ tên và chữ ký) Ghi chú: Học viên phải đóng tờ nhiệm vụ này vào trang đầu tiên của tập thuyết minh LV ii Acknowledgments I would like to extend thanks to the many people, who so generously contributed to the work presented in this thesis report. Special mention goes to my supervisor, Prof. Quan Thanh Tho. My master course is an amazing experience, he always help me when I am in troubles.
Moreover, I also thanks to Mr. Nguyen Huu Hoang and other faculties wholeheartedly. I am very appreciated for their support, not only about the tremendous academic guide but also for giving me so many wonderful opportunities and important advises. Profound gratitude goes to all members in the group of Professor Tho for their whole- hearted support.
Ho Chi Minh City, 03 August 2020 iii Declaration I, Bang Ngoc Bao Tam, declare that my thesis, "Verification of Ethereum Smart Con- tracts: A Model Checking Approach" and the work presented in it are my own. I confirm that: • This work was done wholly or mainly while in candidature for a master by research degree at this University. • Where any part of this thesis has previously been submitted for a degree or any other qualification at this University or any other institution, this has been clearly stated. • Where I have consulted the published work of others, this is always clearly attributed.
• Where I have quoted from the work of others, the source is always given. With the exception of such quotations, this thesis is entirely my own work. • I have acknowledged all of the main sources of help. Ho Chi Minh City, 03 August 2020 iv Abstract (English) This decade has already witnessed an extraordinary evolution in the technology and computing ecosystem.
Technology innovation and its impact are already running very high. From Internet of Things to Artificial Intelligence to Blockchain. Each of them has a disruptive force within multiple industries and Blockchain is termed as one of the most disruptive technologies of today [30]. So much so, Blockchain has the potential to change almost every industry today and its working [21].The applicability of Blockchain because of its advantages and pervasiveness has already picked up stream and seems like it will continue to long time to come.
Blockchain is not a new technology however it has gained super momentum in the last couple of years. "It is a big leap forward in terms of things about decentralized and distributed applica- tions. It is about thinking of current architectural landscape and strategizing to move towards immutable distributed databases" [21]. The advantages and many helping organizations reach out to their stakeholders without requiring any central authority and intermediaries.
While the first generation of blockchain was designed only to solve cryptocurrencies problems, Ethereum, one of the most popular current systems, focuses on imple- menting decentralized computing approaches [5]. One new prominent of these reliable platforms is to enable smart contract, which can automatically execute on the blockchain and enforce by the consensus protocol. These properties help smart contracts allow the performance of credible transactions without third parties. Thus, smart contracts are likely to apply in a wide range of fields including ownership of copyrights, financial instruments, document existence and asset tracking for the IoT.
However, only the correctness of executions is not sufficient to keep smart contracts secure. In fact, adversaries may take advantage of undocumented methods and ex- ploit potential bugs as well as vulnerabilities in the contracts, which can cause harm to users. More recently, $31M worth of Ether was stolen due to a critical security bug in a digital wallet contract. Hence, verifying smart contract behaviors and solving security issues are extremely crucial and challenging when blockchain technologies evolve with much diversity v Abstract across their ecosystems.
However, current security-verifying programs tend to provide many technical details which are pretty hard for normal people to understand briefly. To tackle this problem, we designed a process aiming to mitigate these limitations, with our key insight being a combination of semantic structure analysis and sym- bolic execution on control-flow graphs (CFG for short). This article proposes a new approach for verification Ethereum smart contracts, applying this technique would benefit for average users without any technical knowledge. Keywords: Ethereum smart contracts, Semantic structure analysis, Symbolic execu- tion, Control-flow graph.
vi Abstract (Vietnamese) Trong thập kỷ vừa qua đã đã đánh dấu một cột mốc phát triển vượt bật của các ngành, nghề, lĩnh vực về công nghệ, và đặc biệt là các hệ thống máy tính. Từ nền tảng Kết nối vạn vật (IoT), Trí tuệ nhân tạo cho đến Blockchain, đã góp phần đổi mới nền công nghệ hiện tại, tạo tiền đề để thúc đẩy công cuộc cách mạng công nghiệp 4. Tất cả các nền tảng công nghệ kể trên đều đạt được những đột phá nhất định trong nhiều lĩnh vực, tuy nhiên, Blockchain vẫn được đánh là một trong những công nghệ đột phá nhất hiện nay [1]. Blockchain có đủ tiềm năng để thay đổi sự vận hành, cách thức giao dịch, lưu trữ dữ liệu,.
của hầu hết mọi ngành công nghiệp ngày nay [2]. Bởi vì những lợi thế cũng như sự phổ biến của nó mà khả năng ứng dụng của Blockchain dường như sẽ còn tiếp tục phát triển trong nhiều lĩnh vực hơn nữa. Blockchain tuy không phải là một công nghệ mới, nhưng nó đã gặt hái được nhiều kết quả, thêm nhiều động lực để nâng tầm vị thế trong vài năm qua. “Đó là một bước tiến lớn trong mọi mặt về các ứng dụng phân tán và phi tập trung.
Là sự thay đổi trong suy nghĩ về tổng thể kiến trúc hiện tại và chiến lược để hướng tới cơ sở dữ liệu phân tán bất biến” [2]. Một ví dụ cụ thể để minh họa cho lợi ích của các ứng dụng phân tán là các tổ chức hoặc cá nhân có thể dễ dàng tiếp cận với các bên liên quan của họ mà không cần bất kỷ yếu tố trung gian nào và vẫn đáp ứng được các yêu cầu, quyền lợi đôi bên. Trong khi các thế hệ blockchain đầu tiên được thiết kế chỉ để giải quyết các vấn đề về tiền điện tử thì Ethereum, một trong những nền tảng phổ biến nhất trong thời gian trở lại đây, được tạo ra để tiếp cận các phương pháp giải quyết cho các hệ thống, ứng dụng phi tập trung [3]. Một điểm quan trọng đáng lưu ý của các nền tảng xác thực này là nó cho phép thực hiện các giao dịch thông qua hợp đồng thông minh.
Toàn bộ hoạt động của hợp đồng thông minh được thực hiện một cách tự động và không có sự can thiệp từ bên ngoài, hay thông qua một bên thứ ba trung gian mà chỉ dựa vào các ràng buộc được định nghĩa sẵn bên trong hợp đồng. Do đó, hợp đồng thông minh có khả năng áp dụng trong rất nhiều lĩnh vực bao gồm xác thực bản quyền, công việc về tài chính, truy vết dữ liệu,. Tuy nhiên, chỉ dựa vào tính chính xác trong quá trình thực thi là không đủ để giữ an toàn cho các hợp đồng thông minh. Trong thực tế, các viii Abstract kẻ xấu có thể lợi dụng các phương pháp chưa được biết đến và khai thác các lỗi tiềm ẩn cũng như các lỗ hổng trong hợp đồng.
Điều đó có thể gây ra hậu quả to lớn cho người dùng. Cũng trong khoảng thời gian gần đây, một số lượng lớn Ether (trị giá khoảng 31 triệu đô la) đã bị đánh cắp do một lỗi nghiêm trọng liên quan đến bảo mật vấn đề bảo mật của ví điện tử. Qua đó có thể thấy rằng, việc xác thực các hành vi hợp đồng thông minh và giải quyết các vấn đề bảo mật là vô cùng cần thiết, những cũng đặt ra rất nhiều khó khăn, thách thức khi các công nghệ blockchain ngày càng phát triển với một số lượng lớn các hệ sinh thái đi kèm. Tuy nhiên, các giao thức xác thực hiện tại dường như đưa ra quá nhiều chi tiết kỹ thuật.
Điều đó có thể khiển cho một phần lớn người dùng chưa có nhiều kiến thức về mảng này sẽ không thể hiểu hết được. Để khắc phục nhược điểm này, chúng tôi thiết kế một mô hình với ý tưởng chính là thực hiện phân tích tĩnh trên đồ thị dòng điều khiển. Bài luận này đề xuất một hướng tiếp cận hoàn toàn mới trong việc xác thực hợp đồng thông minh. Áp dụng mô hình này sẽ đem lại nhiều lợi ích nhiều hơn cho người dùng, kể cả những người không có kiến thức về công nghệ thông tin.
ii viii Contents Acknowledgments iii Declaration iv Abstract (English) v Abstract (Vietnamese) vii List of Figures xii List of Tables xiv 1 INTRODUCTION 1 1.3 Verification of Smart Contracts .6 Scope of this research .1 The pilot study I: Verification of Ethereum Smart Contracts: An Model Checking Approach .2 The pilot study II: An Intelligent Chatbot for Automatic Verifica- tion of Ethereum Smart Contracts. 8 2 LITERATURE SURVEY 9 3 RESEARCH BACKGROUND 10 3.2 How does a Blockchain work? .2 Is Blockchain Secure ? .1 Proof of Work .2 Proof of Stake .4 What is Blockchain good for? .5 Ethereum Smart Contracts .2 Ethereum Smart Contracts structures: .