Bài viết trình bày tập trung hướng nghiên cứu của mình vào việc tích hợp với chatbot thông minh cùng với thực thi Symbolic Execution để xác minh các hợp đồng thông minh Ethereum. Thông qua trò chuyện với người dùng, chatbot đóng vai trò là một đại diện trung gian nắm bắt ý định của người dùng, dẫn dắt và lấy các thông tin cần thiết cho việc xác thực.
Kỷ yếu Hội nghị KHCN Quốc gia lần thứ XIII Nghiên cứu ứng dụng Công nghệ thông tin (FAIR), Nha Trang, ngày 8-9/10/2020 DOI: 10.15625/vap.2020.00221 ỨNG DỤNG CHATBOT THÔNG MINH TRONG VIỆC XÁC THỰC HỢP ĐỒNG THÔNG MINH ETHEREUM Băng Ngọc Bảo Tâm, Trần Quang, Quản Thành Thơ Đại Học Bách khoa Thành phố Hồ Chí Minh bnbaotam@hcmut.edu.vn, tranquang@hcmut.edu.vn, qttho@hcmut.edu.vn TĨM TẮT: Hợp đồng thơng minh Ethereum hoạt động dựa tảng công nghệ Blockchain ứng dụng mạnh mẽ đầy hứa hẹn cung cấp tảng giao dịch phi tập trung, hỗ trợ tất lĩnh vực đời sống Bên cạnh đó, hợp đồng thơng minh sau triển khai hệ thống hoạt động theo chế phân tán, thay đổi truy cập cơng khai Điều khiến chúng dễ bị cơng nhiều hình thức công khác yếu tố bảo mật cho hợp đồng thông minh đặt lên hàng đầu Trong viết này, tập trung hướng nghiên cứu vào việc tích hợp với chatbot thơng minh với thực thi Symbolic Execution để xác minh hợp đồng thơng minh Ethereum Thơng qua trị chuyện với người dùng, chatbot đóng vai trị đại diện trung gian nắm bắt ý định người dùng, dẫn dắt lấy thông tin cần thiết cho việc xác thực Sau đó, chúng tơi dùng Symbolic Execution để xác minh xem hợp đồng thông minh có thực phản ánh ý định người dùng mà khơng có lỗi bảo mật hay khơng Cần lưu ý hợp đồng thông minh thực thi, thông tin ghi vào blockchain sửa đổi sau Do đó, việc xác minh biểu tượng hợp đồng thơng minh mà khơng thực thi tình quan trọng Ngồi ra, phương pháp chúng tơi cịn giúp cho người dùng khơng có nhiều kiến thức lĩnh vực hiểu cách dễ dàng Từ khóa: Intelligence chatbot, smart contracts, control-flow graph, Symbolic Execution I GIỚI THIỆU Blockchain công nghệ đạt nhiều thành tựu to lớn thập kỷ Đây bước tiến vượt bậc hệ thống phi tập trung ứng dụng phân tán Để loại bỏ cần thiết bên thứ ba, blockchain phát triển để hoạt động mạng ngang hàng dựa vào thuật toán đồng thuận thực giao dịch mua bán Một điểm bật tảng cho phép hoạt động hợp đồng thơng minh, hợp đồng tự động thực thi blockchain thỏa mãn tất điều khoản bên [1] Tuy nhiên, thật khó để tạo hợp đồng thông minh mà không vướng phải lỗi bảo mật Hơn nữa, ngồi tính bảo mật, bỏ qua bên trung gian, nên cần thêm yêu cầu tính đắn trình thực thi, để giữ cho hợp đồng thơng minh an tồn Bên cạnh đó, giao thức xác thực dường đưa nhiều chi tiết kỹ thuật Điều khiển cho phần lớn người dùng chưa có nhiều kiến thức mảng hiểu tìm thơng tin mà cần Trong thời đại mà trí tuệ nhân tạo ngày thay đổi dần cách làm việc người khơng thể không kể đến Chatbot Chatbot phần mềm trí tuệ nhân tạo giao tiếp với người Bạn trị chuyện thơng qua giọng nói, văn chí giao diện đồ họa Hơn nữa, chatbot thơng minh hiểu ngơn ngữ học hỏi từ trị chuyện với người dùng họ II CƠNG TRÌNH LIÊN QUAN Nhiều ứng dụng phi tập trung hoạt động xoay quanh hợp đồng thông minh triển khai công cụ phần mềm khác nhằm hỗ trợ việc xác thực dạng hợp đồng Những công cụ này, chẳng hạn kiểm tra tự động mã nguồn cho lỗ hổng, sử dụng phần bổ sung, không nên thay quy trình đánh giá thức Một số cơng cụ khác, Mythril [2], sử dụng để phát “overflows” “underflows” Một công cụ khác Etherscrape [2], hoặc, Securify phân tích lỗi bảo mật hợp đồng mức bytecode thơng qua phân tích ngữ nghĩa [3], khiSmartCheck dùng để phân tích ngữ nghĩa hợp đồng từ vựng cú pháp [4] Tuy nhiên, để xác thực hợp đồng thơng minh đơn giản có giá khoảng 4000$ Cịn hợp đồng thơng minh phức tạp nâng cao giá từ 50.000$, chí lên đến 100.000$ Ngồi ra, việc xác thực hợp đồng thông minh thường kéo dài tuần sau phải tuần để q trình đánh giá hồn thành [5] Một điều đáng ý cho dù báo cáo có chi tiết người dùng khơng am hiểu kỹ thuật, họ khơng hiểu kết xác thực hợp đồng thơng minh tìm thông tin họ muốn họ đọc báo cáo cách cẩn thận III KIẾN THỨC NỀN TẢNG A Chatbot thông minh Chatbot thông minh chương trình kết hợp với trí tuệ nhân tạo hay kỹ thuật xử lý ngôn ngữ tự nhiên để tương tác với người Chatbot thơng minh có khả mơ trị chuyện tự nhiên người Người dùng giao tiếp với chatbot thông qua giao diện trị chuyện giọng nói, giống cách họ nói chuyện với người thực sống Băng Ngọc Bảo Tâm, Trần Quang, Quản Thành Thơ 629 B Blockchain hợp đồng thông minh Blockchain hệ thống sở liệu cho phép lưu trữ truyền tải khối tin (có thể hiểu giao dịch thực tế) mã hóa liên kết với Các khối tin hoạt động độc lập minh bạch tất người Do đặc tính Blockchain mà khối thơng tin lưu giữ tất người tham gia hệ thống không tập trung sở liệu [6] Và khối thơng tin ghi vào hệ thống Blockchain khơng có cách thay đổi mà bổ sung thêm đạt đồng thuận tất người Mục đích hợp đồng thông minh tự thực thi dựa quy luật cụ thể viết mã nguồn chúng tất điều kiện thỏa mãn Hợp đồng thông minh hoạt động cách tuân theo câu lệnh điều kiện đơn giản "nếu " phát triển thành mã blockchain Một mạng lưới hệ thống/máy tính khơng thực hành động mã hóa hợp đồng thơng minh giải phóng tiền cho bên phù hợp, phát hành token, điều kiện định trước chưa đáp ứng [7] Sau thực hợp đồng thông minh đó, trạng thái blockchain cập nhật cơng khai với tất thành viên tham gia hệ thống Trong đề tài này, chọn tảng Ethereum xem tảng hỗ trợ tốt cho hợp đồng thơng minh tính đến thời điểm IV GIẢI PHÁP ĐỀ XUẤT Phân tích phát vấn đề bảo mật việc thiết kế thực hợp đồng thông minh tảng phi tập trung mục tiêu chúng tơi viết Tuy nhiên, tập trung vào việc dẫn dắt người dùng để xác định điều họ muốn, cung cấp thông tin cụ thể, rõ ràng dễ hiểu việc xác thực hợp đồng thông minh cho người dùng không am hiểu công nghệ Cách tiếp cận để giải vấn đề bao gồm bước sau: Đầu tiên, chatbot chúng tơi trị chuyện với người dùng để tìm u cầu họ thơng qua ý định thực thể huấn luyện mơ hình học có giám sát Từ đó, dẫn dắt câu chuyện để họ cung cấp thông tin cách tự nhiên, sau trích xuất thơng tin cho bước Chúng định nghĩa vài trạng thái để biểu diễn kết giao dịch xảy theo ngữ nghĩa thông thường dễ hiểu Dựa hợp đồng thông minh mà người dùng cung cấp, tổ chức phân loại trường nội dung bên Sau tiến hành phân tích để xây dựng đồ thị luồng điều khiển, thể trình vận hành thành phần bên hợp đồng Tiếp theo, dựa thông tin từ đồ thị luồng điều khiển, lấy thành phần quan trọng để xử lý giữ kết nối đến thành phần khác đồ thị Sau đó, tiến hành phân tích luồng điều khiển luồng liệu phương pháp dựa đồ thị mà tạo kết nối, mối quan hệ phụ thuộc xảy đối tượng lệnh gọi hàm cần thiết để thực phương pháp Cuối cùng, so sánh kết trạng thái thu bước dựa ngữ nghĩa thông thường bước tiến hành symbolic execution Nếu trạng thái hoàn tồn khớp với nhau, chúng tơi tự tin thông báo với người dùng hợp đồng thông minh hồn tồn khơng có gian lận người dùng giao dịch thơng qua hợp đồng Và ngược lại, hợp đồng không đáng tin cậy người dùng không nên tiếp tục giao dịch Luồng thực thi giải pháp xác thực hợp đồng thông minh đề xuất ỨNG DỤNG CHATBOT THÔNG MINH TRONG VIỆC XÁC THỰC HỢP ĐỒNG THỒNG MINH ETHEREUM 630 V CHI TIẾT PHƢƠNG PHÁP ĐỀ XUẤT VÀ KẾT QUẢ Trong Chương này, chúng tơi trình bày chi tiết giải thuật mà chúng tối đề xuất chương trước việc dùng chatbot thông minh để xác thực hợp đồng thông minh Ethereum A Chatbot Hệ thống gồm khối chính: chatbot, sở liệu giao diện lập trình ứng dụng Chatbot chịu trách nhiệm phát ý định người dùng, từ lấy thông tin cần thiết từ sở liệu hệ thống gọi giao diện lập trình ứng dụng, tổng hợp lại trả thơng tin thích hợp cho người dùng Phần xử lý ngôn ngữ tự nhiên (NLU): Xử lý nội dung đoạn hội thoại người dùng nhập vào dựa liệu huấn luyện Phân loại ý định (intent classification): Xác định ý định người dùng dựa ý định học Trích xuất thực thể (entity extraction): phát trích xuất liệu có cấu trúc Phần trung tâm xử lý: Dựa học máy để dự đoán hành động dựa liệu từ NLU, lịch sử hội thoại liệu huấn luyện Các thành phần quan trọng chatbot thông minh B Xây dựng cú pháp trừu tượng Chúng tơi tự định nghĩa cấu trúc chương trình bao gồm cú pháp ngữ nghĩa theo cách hiểu thông thường để dựa vào cấu trúc ấy, tạo cú pháp trừu tượng [8] phục vụ cho u câu tốn dựa ngơn ngữ khơng phụ thuộc ngữ cảnh Sau chúng tơi tiến hành duyệt cú pháp trừu tượng (chương trình → hàm → tham số) Kết cuối tập hợp tất trạng thái giao dịch theo cách hiểu thông thường kết sử dụng để so sánh bước sau Ví dụ: phát triển hệ thống để giao dịch token ether thông qua hợp đồng thông minh Do đó, chúng tơi xây dưng số cú pháp đơn giản như: AMOUNT, có giá trị số ADDRESS, chuỗi ký tự bắt đầu “0x” theo sau chuỗi khác bao gồm số, ký tự từ “a” đến “f” (kể ký tự viết hoa) Ngồi ra, chúng tơi định nghĩa hai cú pháp quan trọng để thực giao dịch, sendtoken (, , ); thứ hai sendeth (, < địa người nhận >, < số lượng ether >); Với mục đích sau: sendtoken: Gửi số lượng token từ địa người gửi đến địa người nhận sendeth: Gửi số lượng ether từ địa người gửi đến địa người nhận Băng Ngọc Bảo Tâm, Trần Quang, Quản Thành Thơ 631 Ngôn ngữ không phụ thuộc ngữ cảnh lệnh: sendeth sendtoken Két sau tiến hành duyệt trú pháp trừu tượng để sinh trạng thái sau giao dịch thành công Cụ thể, tốn có hai giá trị ban đầu là: 0xAAAA(100,1): Người giữ tài khoản có địa 0xAAAA có 100 ether token 0xBBBB(100,1): Người giữ tài khoản có địa 0xBBBB có 100 ether token Sau thực sendeth (0xAAAA, 0xBBBB, 30), số dư 0xAAAA giảm 70 ether lượng ether địa 0xBBBB tăng từ 100 lên 130 Sau đó, trạng thái cuối 0xBBBB chuyển token sang tài khoản 0xAAAA cách gọi sendtoken (0xBBBB, 0xAAAA, 1) C Sinh đồ thị dòng điều khiển (CFG) dựa hợp đồng thơng minh Trong khoa học máy tính, đồ thị luồng điều khiển [9] đồ thị biểu diễn tất đường duyệt qua chương trình trình thực thi Nhiều kỹ thuật phân tích tĩnh dùng để tiếp cận nhằm tối ưu hóa xác minh ngữ nghĩa chương trình thơng qua đồ thị Dựa vào ví dụ phần B, bước này, xây dựng hợp đồng thông minh thực việc giao dịch ether token Tuy nhiên, để đơn giản hóa vấn đề, giả sử khởi tạo hai đối tượng A B với 100 ether token cho tài khoản Các phương thức sendeth sendtoken thực để chuyển lượng ether từ A sang B lượng token từ B sang A pragma solidity ^0.5.8; contract SimpleContract { uint etherA = 100; uint etherB = 100; uint tokenA = 1; uint tokenB = 1; bool check = false; function sendeth(uint amountE) public returns (string memory) { if (etherA > amountE) { etherA = etherA - amountE; etherB = etherB + amountE; check = true; return "Success"; } ỨNG DỤNG CHATBOT THÔNG MINH TRONG VIỆC XÁC THỰC HỢP ĐỒNG THỒNG MINH ETHEREUM 632 else return "Fail"; } function sendtoken(uint amountT) public returns(string memory) { if (tokenB > amountT && check = true) { tokenB = tokenB - amountT; tokenA = tokenA + amountT; return "Success"; } else return "Fail"; } } Đồ thị luồng điều khiển hàm sendeth D Tiến hành Symbolic Execution Symbolic Execution [10] kỹ thuật phân tích chương trình để xác định kết chương trình ứng với liệu đầu vào khác trước thực thi chương trình Kỹ thuật giả định giá trị tượng trưng cho đầu vào thay nhận giá trị đầu vào thực tế việc thực thi bình thường chương trình Do đó, biểu thức kết dạng ký hiệu với ràng buộc ký hiệu kết có nhánh điều kiện Băng Ngọc Bảo Tâm, Trần Quang, Quản Thành Thơ 633 Ví dụ: tiến hành phân tích hàm sendeth để hiểu rõ chế hoạt động symbolic execution Nhiệm vụ hàm sendeth đọc giá trị amountE trả “Fail” số lượng etherA > amountE Ngược lại, trả “Success” Trong trình symbolic execution, biến ánh xạ thành giá trị biểu tượng (ví dụ, số lượng E gán cho α, etherA thành β etherB thành θ) Khi đến câu lệnh if, α, β nhận giá trị nào, đó, việc thực thi biểu tượng tiến hành dọc theo hai nhánh, cách phân hai đường Mỗi đường gán trạng thái chương trình lệnh rẽ nhánh ràng buộc đường dẫn Trong ví dụ này, ràng buộc đường dẫn β > α nhánh then β ≤ α nhánh lại Cả hai đường dẫn thực thi cách độc lập Khi đến vị trí kết thúc, tính giá trị cụ thể cho α, β cách giải ràng buộc tích lũy đường Thực thi symbolic execution hàm sendeth dựa đồ thị luồng thực thi Do sau thực symbolic execution đồ thị luồng điều khiển với amountE = 30 số amounT = 1, tạo có số trạng thái sau: Kết trạng thái đạt theo nhánh “then” Kết trạng thái đạt theo nhánh “else” E So sánh trạng thái để đưa kết Chúng tiến hành so sánh kết thu bước duyệt cú pháp trừu tượng symbolic execution đồ thị luồng điều kiện Chúng giả sử giá token 30 ether cần ý vào nhánh “then”, trạng thái nhánh “else” tương tự trạng thái ban đầu (Hình Hình 8) Do đó, có hai khả xảy ra: Tài khoản khoản cỏ địa 0xAAAA muốn mua token từ người dùng 0xBBBB, 0xAAAA trả 30 ether sau nhận token Do hợp đồng thơng minh tường hợp thực thi xác giống hiểu theo ngữ nghĩa thông thường giao dịch thành cơng (Hình Hình 7) Vì hợp đồng đáng tin cậy triển khai hệ thống blockchain Mặt khác, xem xét tình sau, hợp đồng thơng minh sửa đổi cách xóa dịng 24, 25 (được tơ đậm phần mã nguồn) mã nguồn Do đó, kết việc symbolic execution duyệt cú pháp hoàn toàn khác nhau, đặc biệt trạng thái thứ hai thứ ba (Hình Hình 9) Trong trường hợp này, 0xAAAA gửi 30 ether đến 0xBBBB, hợp đồng thông minh không trả lại token chủ sở hữu địa 0xAAAA khơng nhận Do đó, hợp đồng thơng minh có nhiều khả lừa đảo không nên triển khai tảng blockchain Kết trạng thái nhánh “then” hợp đồng chỉnh sửa 634 ỨNG DỤNG CHATBOT THÔNG MINH TRONG VIỆC XÁC THỰC HỢP ĐỒNG THỒNG MINH ETHEREUM VI KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Trong nghiên cứu này, đề xuất quy trình để xác thực hợp đồng thông minh Ethereum thông qua chatbot Chúng muốn làm cho q trình giống trị chuyện hai người dùng nhân viên tư vấn đời thực Vì vậy, tất người, người khơng am hiểu cơng nghệ sử dụng cách dễ dàng Nói xác hơn, đầu tiên, chatbot tương tác với người dùng để tìm vấn đề họ thu thập, trích xuất thơng tin mà chúng tơi cần, để giải vấn đề cách hiệu Thứ hai, quy trình chúng tơi tạo trạng thái cách duyệt qua cú pháp trừu tượng xây dựng cú pháp để mô tả ngữ nghĩa mà người hiểu dễ dàng Sau đó, chúng tơi tạo đồ thị luồng điều khiên tiến hành symbolic execution chúng Sau đó, chúng tơi nhận số trạng thái bắt đầu so sánh với trạng thái ban đầu để đưa kết luận Chắc chắn, việc áp dụng kỹ thuật mang lại lợi ích cho người dùng với vốn kiến thức hạn hẹp lĩnh vực kể chuyên gia bảo mật Đối với trường hợp người dùng không am hiểu nhiều cơng nghệ, họ tương tác với chatbot xác thực hợp đồng trước chuyển để đảm bảo tiền điện tử họ không bị chuyển hướng đến địa khác Ngược lại, chuyên gia bảo mật nghiên cứu phương pháp chúng tơi để nhanh chóng tìm lỗi đáng ngờ bên hợp đồng thông minh tảng Ethereum Hơn nữa, chúng tơi xây dựng ứng dụng dựa công nghệ blockchain áp dụng cách tiếp cận để xác minh hợp đồng thông minh trước người dùng đồng ý sử dụng chúng Các hướng nghiên cứu mà chúng tơi hướng đến gợi ý chỉnh sửa mã nguồn xây dựng chatbot tích hợp với phân tích động TÀI LIỆU THAM KHẢO [1] Melanie Swan.Blockchain: Blueprint for a new economy "O’Reilly Media, Inc.", 2015 [2] Security tools https://consensys.github.io/smart-contract-best-practices/security_tools/ Accessed: 2017 [3] Petar Tsankov, Andrei Dan, Dana Drachsler-Cohen, Arthur Gervais, Florian Buen-zli, and Martin Vechev “Securify: Practical security analysis of smart contracts” In Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communica-tions Security, pp 67-82, 2018 [4] Sergei Tikhomirov, Ekaterina Voskresenskaya, Ivan Ivanitskiy, Ramil Takhaviev, Evgeny Marchenko, and Yaroslav Alexandrov “Smartcheck: Static analysis ofethereum smart contracts” In Proceedings of the 1st International Workshop on Emerging Trends in Software Engineering for Blockchain, pp 9-16, 2018 [5] Blockgeeks Why are smart contract security audits so important?, 2018 [6] Lakshmi Siva Sankar, M Sindhu, and M Sethumadhavan “Survey of consensusprotocols on blockchain applications” In 2017 4th International Conference onAdvanced Computing and Communication Systems (ICACCS), pp 1-5 IEEE, 2017 [7] Ritesh Modi.Solidity, Programming Essentials: A beginner’s guide to build smartcontracts for Ethereum and blockchain.Birmingham: Packt Publishing, 2018 [8] P H Dave and H B Dave, Compilers: principles and practice Pearson EducationIndia, 2012 [9] L Torczon and K Cooper, “Engineering a compiler (Vol 13),” 2012 [10] J C King, “Symbolic execution and program testing,”, Communications of the ACM, Vol 19, No 7, pp 385394, 1976 AN INTELLIGENT CHATBOT FOR AUTOMATIC VERIFICATION OF ETHEREUM SMART CONTRACTS Bang Ngoc Bao Tam, Tran Quang, Quan Thanh Tho ABSTRACT: Ethereum smart contracts based on blockchain technology are powerful and promising applications that provide a decentralized platform for exchanging cryptocurrencies and public services In addition, since Ethereum and its smart contracts are a publicly accessible, unchangeable and distributed platform, they are extremely vulnerable to various forms of attack, making their security a top priority In this article, we focus our attention on the integration of an intelligent chatbot with the Symbolic Execution technique to verify Ethereum smart contracts Through conversing with users, the chatbot generates an intermediate representation capturing the user's intention Then, the symbolic execution is applied to verify if the involved Ethereum smart contracts truly reflect the user intention without security flaws or not It is noted that once the smart contract executes, the information is written into blockchain and cannot be modified afterward Hence, the symbolic verification of the smart contract without executing it in this situation is very crucial ... thực thi giải pháp xác thực hợp đồng thông minh đề xuất ỨNG DỤNG CHATBOT THÔNG MINH TRONG VIỆC XÁC THỰC HỢP ĐỒNG THỒNG MINH ETHEREUM 630 V CHI TIẾT PHƢƠNG PHÁP ĐỀ XUẤT VÀ KẾT QUẢ Trong Chương này,... “then” hợp đồng chỉnh sửa 634 ỨNG DỤNG CHATBOT THÔNG MINH TRONG VIỆC XÁC THỰC HỢP ĐỒNG THỒNG MINH ETHEREUM VI KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Trong nghiên cứu này, đề xuất quy trình để xác thực hợp đồng. .. đề xuất chương trước việc dùng chatbot thông minh để xác thực hợp đồng thông minh Ethereum A Chatbot Hệ thống gồm khối chính: chatbot, sở liệu giao diện lập trình ứng dụng Chatbot chịu trách nhiệm