Skip to content

Ứng dụng Graph Neural Network vào bài toán xác định bất thường trong Smart Contracts.

Ứng dụng Graph Neural Network vào bài toán xác định bất thường trong Smart Contracts.

Smart Contract là gì?

  • Smart Contract (Hợp đồng thông minh) là một ứng dụng dựa trên nền tảng blockchain giúp giao dịch có thể tự động diễn ra một cách tự động, minh bạch giữa 2 bên mua-bán khi đạt được các điều kiện thỏa thuận đã đặt ra trong hợp đồng nhờ tận các ưu điểm của nền tảng blockchain.
    Một số ứng dụng của smart contract có thể kể đến như giao dịch tự động giữa 2 người mua bán, tạo các cuộc đấu giá minh bạch, game có phần thưởng/phạt, …

cover
Hình 1. Smart contract based on blockchain

Ưu điểm của smart contract?

  • Smart contract xây dựng dựa trên nền tảng blockchain nên thừa hưởng những ưu điểm của nó như tính: minh bạch, phi tập trung, không thể sửa đổi, …

  • Bên cạnh đó nó giúp người dùng tự động hóa, tăng hiệu suất công việc.

Nhược điểm

  • Tuy nhiên bên cạnh đó vẫn tồn tại các nhược điểm cố hữu của một phần mềm máy tính như: source code của phần mềm có thể chứa lỗi, cheatcode dẫn đến hoạt động sai với mục đích, …​
    Ảnh hưởng bởi internet, đường truyền.

  • Việc xây dựng các Smart Contract ngày càng trở nên đơn giản và phổ biến hơn sẽ yêu cầu sự bảo mật, an toàn cũng phải tăng lên và hệ thống reviewer các smart contract cũng phải phát triển theo. Từ đó việc phát triển các hệ thống tự động giúp bộ phận các con người reviewer giảm tải công việc là tất yếu.

  • Mặc dù các hệ thống quét và nhận diện lỗi cho các mã nguồn phần mềm khác phát triển tuy nhiên smart contract là một mảng mới và có các đặc tính riêng của nó nên hiệu quả từ các công cụ đó vẫn chưa đạt được hiệu quả cao. Do lượng smart contract có thể phát sinh rất nhanh nên có thể xem nó như là một nguồn data khả thi cho các hướng tiếp cận bằng ML/DL. Trên thực tế Ethereum, một nền tảng đi đầu trong việc phát triển smart contract cung cung cấp tập data rất lớn cho những nhà phát triển (khoảng trên 45k file)

Hướng tiếp cận

Có 2 hướng tiếp cận chủ yếu với các bài toán phát hiện bất thường trong mã nguồn (vulnerability detection)

  • Expert knowledge: sẽ sử dụng các quy định trong coding, nếu các luồng trong code vi phạm các luật này thì sẽ xác định là có bất thường. Có thể kết hợp thêm 1 số mẫu code có thể quét qua source code như một đoạn text và phát hiện ra các lỗi cú pháp, lỗi coding style, …

  • Model-based: trong 1 mã nguồn phần mềm các biến, phép toán, toán tử, điều kiện liên kết với nhau chặt chẽ, vì vậy để số hóa các mã nguồn, sử dụng graph là một hướng tiếp cận hợp lý. Thực tế đã có nhiều kết quả đạt dựa trên các graph neural network.

Dưới đây là một số nghiên cứu liên quan và đạt được một số kết quả nhất đinh.

extracted graph tool
Hình 2. Các bước phân tích và số source code thành graph
  • Nếu việc xem mỗi biến mỗi phép toán và các điều kiện, vòng lặp trong 1 mã nguồn là các node và edge trong graph sẽ nảy sinh vấn đề là tạo ra quá nhiều loại node và edge, sự phong phú về loại sẽ gây khó khăn trong việc phân loại trong các bài toán classification. Trong repository này tác giả đã đề xuất một công cụ để đơn giản hóa graph gốc từ source code thành các graph đơn giản hơn chỉ còn 1 vài loại node và cạnh. Sau đó sẽ áp dụng các mô hình graph neural network cơ bản cho các homogeneous graph đó. Tác giả cũng đã cải tiến mô hình bằng cách kết hợp các thông tin từ expert knowledge vào graph. Và một cải tiến khác (chi tiết)

AMEVulDetector
Hình 3. Sự kết hợp giữa global graph feature và local expert patterns
  • Nhược điểm ở cách làm trên là hiệu năng của mô hình sẽ bị bottleneck ở công cụ số hóa mã nguồn thành graph. Sự đa dạng của source code có thể làm các rule trong tool không hoạt động hiệu quả. Tôi đề xuất một tool slither giúp chuyển source code thành một dạng tổng quát hơn sau đó mới số hóa graph mở ra nhiều hướng xây dựng graph model hơn, có thể sử dụng heterogeneous graph thay cho homogeneous graph một cách dễ dàng hơn

Kết luận

Graph và smart contract đều là 2 mảng mới, việc kết hợp 2 yếu tố này sẽ tạo ra nhiều cơ hội và kết quả cải tiến hơn. Các bài viết chi tiết hơn sẽ được cập nhật thêm.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *