You are on page 1of 14

Machine Translated by Google

GIAO DỊCH IEEE VỀ KIẾN THỨC VÀ KỸ THUẬT DỮ LIỆU 1

Kết hợp Mạng Neural Đồ thị với Chuyên gia


Kiến thức về lỗ hổng hợp đồng thông minh
Phát hiện
Zhenguang Liu, Peng Qian, Xiaoyang Wang, Yuan Zhuang, Lin Qiu và Xun Wang

Tóm tắt — Tính năng phát hiện lỗ hổng bảo mật của hợp đồng thông minh thu hút sự chú ý rộng rãi trong những năm gần đây do những thiệt hại đáng kể do

các cuộc tấn công của tin tặc gây ra. Các nỗ lực hiện tại để phân tích bảo mật hợp đồng chủ yếu dựa vào các quy tắc cứng nhắc do các chuyên gia xác định,

đòi hỏi nhiều lao động và không thể mở rộng. Quan trọng hơn, các quy tắc do chuyên gia xác định có xu hướng dễ xảy ra lỗi và chịu rủi ro cố hữu là bị lừa

bởi những kẻ tấn công xảo quyệt. Các nghiên cứu gần đây tập trung vào việc thực thi biểu tượng và phân tích chính thức các hợp đồng thông minh để phát

hiện lỗ hổng bảo mật, nhưng vẫn chưa đạt được một giải pháp chính xác và có thể mở rộng. Mặc dù một số phương pháp đã được đề xuất để phát hiện lỗ hổng

trong hợp đồng thông minh, vẫn còn thiếu nỗ lực xem xét kết hợp các mẫu bảo mật do chuyên gia xác định với mạng nơ-ron sâu.

Trong bài báo này, chúng tôi khám phá việc sử dụng mạng nơ-ron đồ thị và kiến thức chuyên môn để phát hiện lỗ hổng hợp đồng thông minh. Cụ thể, chúng

tôi chuyển ngữ nghĩa luồng dữ liệu và điều khiển phong phú của mã nguồn vào một biểu đồ hợp đồng. Để làm nổi bật các nút quan trọng trong biểu đồ, chúng

tôi thiết kế thêm giai đoạn loại bỏ nút để chuẩn hóa biểu đồ. Sau đó, chúng tôi đề xuất một mạng truyền thông điệp tạm thời mới để trích xuất đặc trưng

đồ thị từ biểu đồ chuẩn hóa và kết hợp tính năng biểu đồ với các mẫu chuyên gia đã thiết kế để mang lại hệ thống phát hiện cuối cùng. Các thử nghiệm mở

rộng được thực hiện trên tất cả các hợp đồng thông minh có mã nguồn trong nền tảng Ethereum và VNT Chain. Kết quả thực nghiệm cho thấy những cải thiện

đáng kể về độ chính xác so với các phương pháp hiện đại trên ba loại lỗ hổng, trong đó độ chính xác phát hiện của phương pháp của chúng tôi đạt 89,15%,

89,02% và 83,21% đối với lần xuất hiện gần đây, sự phụ thuộc vào dấu thời gian và lỗ hổng vòng lặp vô hạn, tương ứng.

Điều khoản chỉ mục — Học sâu, chuỗi khối, hợp đồng thông minh, phát hiện lỗ hổng, kiến thức chuyên môn

1 GIỚI THIỆU

B Lockchain và các ứng dụng sát thủ của nó, ví dụ như Bitcoin
và hợp đồng thông minh, đang làm điên đảo thế giới [1–6]. Một
blockchain về cơ bản là một sổ cái chuyển tiếp phân tán và được
cation bao gồm ví [10], huy động vốn từ cộng đồng, cờ bạc phi tập
trung [11] và tài chính liên ngành [12]. Số lượng các hợp đồng
thông minh vẫn đang tăng lên nhanh chóng. Ví dụ, trong vòng sáu
chia sẻ, được duy trì bởi tất cả các thợ đào trong mạng blockchain tháng qua, hơn 15.000 hợp đồng mới đã được triển khai chỉ riêng
theo một giao thức đồng thuận [7]. Giao thức consen sus và sổ cái trên Ethereum, đây là nền tảng hợp đồng thông minh nổi tiếng nhất.
sao chép thực thi tất cả các hành động chuyển đổi bất biến sau
khi được ghi lại trên chuỗi, mang lại cho blockchain tính phi tập Vấn đề bảo mật của hợp đồng thông minh. Các hợp đồng thông
trung và không có giả mạo. minh từ nhiều lĩnh vực khác nhau hiện nắm giữ lượng tiền ảo trị

Hợp đồng thông minh. Hợp đồng thông minh là các chương trình giá hơn 10 tỷ đô la. Không nghi ngờ gì nữa, việc nắm giữ quá
chạy trên blockchain [4, 8]. Hợp đồng thông minh có thể triển nhiều của cải khiến các hợp đồng thông minh trở nên đủ hấp dẫn
khai các quy tắc tùy ý để quản lý nội dung bằng cách mã hóa các đối với những kẻ tấn công. Vào tháng 6 năm 2016, những kẻ tấn
quy tắc thành mã nguồn. Các quy tắc xác định của hợp đồng sẽ được công đã khai thác lỗ hổng gần đây của hợp đồng DAO [13] để đánh
tuân thủ nghiêm ngặt và tự động trong quá trình thực thi, điều cắp 3,6 triệu Ether, trị giá 60 triệu đô la Mỹ. Trường hợp này

chỉnh logic 'mã là luật'. Hợp đồng thông minh làm cho việc thực không phải là riêng lẻ và một số lỗ hổng bảo mật được phát hiện
hiện tự động các điều khoản hợp đồng có thể thực hiện được, tạo và khai thác vài tháng một lần [13–15], làm suy giảm lòng tin đối
điều kiện thuận lợi cho các ứng dụng phi tập trung phức tạp với các ứng dụng dựa trên hợp đồng thông minh.
(DApps). Thật vậy, nhiều DApp về cơ bản bao gồm một số hợp đồng Có một số lý do khiến các hợp đồng thông minh dễ bị lỗi. Đầu
thông minh làm phụ trợ và giao diện người dùng làm giao diện người dùng [9].
tiên, các ngôn ngữ lập trình (ví dụ: Solidity) và các công cụ vẫn
Hàng triệu hợp đồng thông minh đã được triển khai trong các còn mới và thô sơ, để lại nhiều chỗ cho các lỗi và hiểu lầm trong
nền tảng blockchain var ious, cho phép một loạt các ứng dụng- các công cụ [8, 16]. Thứ hai, vì hợp đồng thông minh là bất biến
sau khi được triển khai, các nhà phát triển được yêu cầu phải
• Zhenguang Liu, Peng Qian đang học tại Trường Kỹ thuật Máy tính và Thông tin, lường trước tất cả các trạng thái và môi trường có thể xảy ra mà
Đại học Chiết Giang Gongshang và Đại học Chiết Giang, Trung Quốc. Email:
hợp đồng có thể gặp phải trong tương lai, điều này chắc chắn là
liuzhenguang2008@gmail.com, messi.qp711@gmail.com
• Yuan Zhuang thuộc Đại học Quốc gia Singapore, Singapore. • Xiaoyang Wang khó khăn. Khác biệt với các ứng dụng phân tán thông thường có thể
theo học Trường Kỹ thuật Máy tính và Thông tin, được cập nhật khi phát hiện lỗi, không có cách nào để vá các lỗi
Đại học Chiết Giang Gongshang, Trung Quốc.
của hợp đồng thông minh mà không cần chuyển sang chuỗi khối (gần
• Lin Qiu đến với Đại học Khoa học và Công nghệ Phương Nam, Trung Quốc. • Xun
Wang theo học Trường Kỹ sư Máy tính và Thông tin ing, Đại học Chiết Giang
như là một nhiệm vụ bất khả thi), bất kể hợp đồng nắm giữ bao
Gongshang và Phòng thí nghiệm Chiết Giang, Trung Quốc. Email: xwang@zjgsu.edu.cn. nhiêu tiền hoặc mức độ phổ biến của nó. [số 8]. Do đó, những
người kiểm tra lỗ hổng bảo mật hiệu quả cho các hợp đồng thông
Các tác giả tương ứng: Peng Qian, Xun Wang minh trước khi
Machine Translated by Google
GIAO DỊCH IEEE VỀ KIẾN THỨC VÀ KỸ THUẬT DỮ LIỆU 2

mưu đồ là điều cần thiết. kết quả phát hiện lỗ hổng tốt hơn, trong khi mục tiêu của công việc
Mặt hạn chế của phương pháp thông thường. Các phương pháp thông trước đây là khám phá khả năng sử dụng mạng thần kinh để phát hiện lỗ

thường để phát hiện lỗ hổng trong hợp đồng thông minh, chẳng hạn như [8, hổng hợp đồng thông minh.

16–18], sử dụng phân tích tĩnh cổ điển hoặc kỹ thuật cảnh báo exe động 2) Trong công việc này, chúng tôi đề xuất trích xuất các mẫu chuyên gia

để xác định lỗ hổng. Thật không may, về cơ bản chúng dựa vào một số mẫu về lỗ hổng bảo mật cụ thể và kết hợp chúng với tính năng biểu đồ.

do chuyên gia xác định. Chúng tôi cũng mô hình hóa rõ ràng các biến chính trong luồng dữ liệu.

Các mẫu được xác định thủ công chịu rủi ro cố hữu là dễ xảy ra lỗi và Ngược lại, trong nghiên cứu trước, chúng tôi chỉ sử dụng tính năng đồ

một số mẫu phức tạp không nhỏ cần được bảo vệ. Việc sử dụng một cách thô thị trong khi bỏ qua các mẫu chuyên gia và các biến chính. 3)

thiển một số mẫu cứng nhắc dẫn đến tỷ lệ dương tính giả và âm tính giả Công việc này luôn hoạt động tốt hơn công việc trước đó về các lỗ hổng

cao, và những kẻ tấn công xảo quyệt có thể dễ dàng bỏ qua việc kiểm tra bảo mật khác nhau và về tổng thể cung cấp nhiều hiểu biết và phát hiện

mẫu bằng các thủ thuật. Hơn nữa, khi số lượng các hợp đồng thông minh hơn trong lĩnh vực này. Lưu ý rằng trong bài báo trước, chúng tôi đã đề

tăng lên nhanh chóng, một số chuyên gia không thể sàng lọc tất cả các xuất hai mạng thần kinh, DR-GCN và TMP, để khám phá khả năng ứng dụng

hợp đồng để thiết kế các mẫu chính xác. Một giải pháp khả thi có thể là: của các mạng thần kinh biểu đồ khác nhau trong việc phát hiện lỗ hổng

yêu cầu mỗi chuyên gia ghi nhãn một số hợp đồng, sau đó thu thập tất cả hợp đồng thông minh. Trong bài báo này, chúng tôi tập trung vào việc mở

các hợp đồng được dán nhãn từ nhiều chuyên gia để đào tạo một mô hình có rộng TMP, mang lại hiệu suất tốt hơn DR-GCN. Chúng tôi cũng sẽ mở rộng

thể tự động đưa ra dự đoán về việc liệu một hợp đồng có một loại lỗ hổng DR-GCN và so sánh nó với phần mở rộng của TMP.

cụ thể hay không.


Đóng góp. Tóm lại, những đóng góp chính là: • Theo hiểu biết tốt

Gần đây, nhiều nỗ lực đã được thực hiện theo hướng áp dụng mạng nơ- nhất của chúng tôi, chúng tôi là người đầu tiên đưa ra ý tưởng kết

ron sâu để phát hiện lỗ hổng hợp đồng thông minh [19–21], đạt được độ hợp các mẫu chuyên gia thông thường và các tính năng được trích

chính xác được cải thiện. [19] sử dụng mạng dựa trên LSTM để xử lý tuần xuất bằng biểu đồ-thần kinh-mạng để phát hiện lỗ hổng trong hợp

tự mã nguồn, trong khi [20] lập mô hình mã nguồn thành biểu đồ luồng đồng thông minh.

điều khiển. [21] xây dựng một mô hình tuần tự để phân tích mã khai thác • Chúng tôi đề xuất mô tả đặc điểm của mã nguồn hàm hợp đồng dưới

Ethereum. Tuy nhiên, các phương pháp này hoặc coi mã nguồn hoặc mã hoạt dạng đồ thị hợp đồng. Chúng tôi cũng chuẩn hóa biểu đồ một cách rõ

động như một chuỗi văn bản thay vì các khối ngữ nghĩa, hoặc không làm ràng để làm nổi bật các biến và lời gọi chính.

nổi bật các biến quan trọng trong luồng dữ liệu [20], dẫn đến không đủ Một mạng lan truyền thông điệp tạm thời mới lạ được thiết kế

mô hình ngữ nghĩa và kết quả không đạt yêu cầu. chuyên nghiệp để tự động nắm bắt các đặc điểm đồ thị ngữ nghĩa. •
Các phương pháp của chúng tôi thiết lập hiệu suất tiên tiến mới về
phát hiện lỗ hổng bảo mật trong hợp đồng thông minh và cung cấp

Để lấp đầy khoảng trống nghiên cứu, trong bài báo này, chúng tôi tổng thể những hiểu biết sâu sắc về những thách thức và cơ hội.

điều tra hơn 300.000 chức năng của hợp đồng thông minh và trình bày một Với tư cách là một đóng góp phụ, chúng tôi đã công bố những thông tin quan trọng của chúng tôi

để tạo điều kiện thuận lợi cho việc nghiên cứu trong tương lai.
cách tiếp cận hoàn toàn tự động và có thể mở rộng có thể phát hiện các
lỗ hổng ở cấp chức năng. Cụ thể, chúng tôi chuyển ngữ nghĩa luồng dữ
2 CÔNG VIỆC LIÊN QUAN
liệu và điều khiển phong phú của mã nguồn thành đồ thị. Các nút trong
2.1 Phát hiện lỗ hổng hợp đồng thông minh Phát hiện lỗ
biểu đồ đại diện cho các biến quan trọng và các lệnh gọi hàm, trong khi
các cạnh có hướng ghi lại dấu vết thực thi theo thời gian của chúng. Vì hổng hợp đồng thông minh là một trong những vấn đề thú vị trong bảo mật

không phải tất cả các nút trong biểu đồ đều có tầm quan trọng như nhau blockchain. Các hoạt động ban đầu về phát hiện lỗ hổng hợp đồng thông

và hầu hết các mạng nơ-ron đồ thị vốn bằng phẳng trong quá trình truyền minh xác minh các hợp đồng thông minh bằng cách sử dụng các phương pháp

thông tin trên biểu đồ, chúng tôi thiết kế giai đoạn loại bỏ nút để chính thức [22–25]. Ví dụ: [22] giới thiệu một khuôn khổ, dịch mã

chuẩn hóa biểu đồ và làm nổi bật các nút chính. Biểu đồ chuẩn hóa sau đó Solidity (ngôn ngữ lập trình hợp đồng thông minh của Ethereum) và mã

được đưa vào mạng truyền thông điệp tạm thời để tìm hiểu tính năng của bytecode EVM (Máy ảo Ethereum) thành đầu vào của hệ thống xác minh hiện

biểu đồ. Trong thời gian chờ đợi, chúng tôi trích xuất tính năng mẫu bảo có. [25] đề xuất một mô hình chính thức cho EVM và lý do các lỗi tiềm ẩn

mật từ mã nguồn bằng kiến thức chuyên môn. Cuối cùng, tính năng đồ thị trong hợp đồng thông minh bằng cách sử dụng công cụ Isabelle / HOL. Hơn

và tính năng mẫu bảo mật được kết hợp để tạo ra kết quả phát hiện lỗ nữa, [23] và [24] xác định ngữ nghĩa chính thức của EVM bằng cách sử

hổng cuối cùng. dụng khung F * và khung K tương ứng. Mặc dù các khuôn khổ này cung cấp
các đảm bảo xác minh chính thức mạnh mẽ, chúng vẫn là bán tự động.

Chúng tôi đã tiến hành thử nghiệm trên tất cả các hợp đồng 40k có mã
nguồn bằng Ethereum và trên tất cả các hợp đồng trong VNT Chain, cho

thấy những cải tiến đáng kể so với các phương pháp phát hiện lỗ hổng Một dòng công việc khác dựa vào thử nghiệm chung và thực thi tượng

hiện đại: điểm F1 từ 78% đến 86%, 79% đến 88%, 74% đến 82% cho lần truy trưng, chẳng hạn như Oyente [8], Maian [26] và Securify [18]. Oyente là

cập gần đây, phụ thuộc vào dấu thời gian và lỗ hổng vòng lặp vô hạn, một một trong những công trình tiên phong thực hiện việc thực thi biểu tượng

cách cẩn thận. Các triển khai1 của chúng tôi được phát hành để tạo điều trên các hàm hợp đồng và gắn cờ các lỗi dựa trên các mẫu đơn giản. Zeus

kiện thuận lợi cho tương lai [27] thúc đẩy việc giải thích trừu tượng và kiểm tra mô hình biểu tượng,
nghiên cứu. cũng như các điều khoản sừng bị ràng buộc để phát hiện các lỗ hổng trong
các hợp đồng thông minh. [18] giới thiệu các mẫu tuân thủ (tiêu cực) và
Chúng tôi muốn chỉ ra rằng công việc này rõ ràng là khác biệt so với
công việc trước đó [20] theo ba cách: 1) công việc này là để điều tra vi phạm (tích cực) để lọc các cảnh báo sai.

xem liệu việc kết hợp mạng nơ-ron đồ thị với các mẫu chuyên gia thông
thường có thể đạt được hay không Các nhà nghiên cứu cũng khám phá khả năng phát hiện lỗ hổng hợp đồng
thông minh bằng cách sử dụng thực thi động. [17] trình bày Contract
1. Github: https://github.com/Messi-Q/GPSCVulDetector Fuzzer để xác định các lỗ hổng bằng cách làm mờ và thời gian chạy
Machine Translated by Google
GIAO DỊCH IEEE VỀ KIẾN THỨC VÀ KỸ THUẬT DỮ LIỆU 3
1 cRQWUacW BaQN ^ cRQWUacWAWWacNeU ^
2 PaSSLQg (addUeVV => XQLW) SULYaWeXVeUBaOaQce; 1 2 addUeVV baQN_add = 01f3 [... 32; các hàm trong mã nhị phân được biểu diễn bằng các đồ thị luồng
3 3
4 fXQcWLRQdeSRVLW () Sa \ abOe fXQcWLRQaWWacN () ^ con đẩy được quy. [34] phát triển Devign, một đồ thị chung mô
1
^ XVeUBaOaQce [PVg.VeQdeU] + = PVg.YaOXe; 4 5 baQN_add.deSRVLW.YaOXe (10eWheU) ();
hình dựa trên mạng để xác định lỗ hổng trong ngôn ngữ lập trình
5
2
6 6 baQN_add.ZLWhdUaZ (); ` fXQcWLRQ ()
Sa \ abOe ^ Lf (cRXQW ++ <10)
` fXQcWLRQZLWhdUaZ () SXbOLc
C. Khác với các phương pháp này, chúng tôi tập trung vào nhiệm vụ
7 7

số 8 ^ XLQWaPRXQW = XVeUBaOaQce [PVg.VeQdeU]; baQN_add.ZLWhdUaZ ();


3
UeTXLUe (PVg.VeQdeU.caOO.YaOXe (aPRXQW) 8
lỗ hổng hợp đồng thông minh cụ thể và tính đến các vai trò riêng
9 10 ()); XVeUBaOaQce [PVg.VeQdeU] = 0; 9 10

11 ` 11 ` biệt và mối quan hệ thời gian của các phần tử chương trình.
`12 12 `
4

Hình 1 Một ví dụ đơn giản về lỗ hổng bảo mật. 3 BÁO CÁO VẤN ĐỀ

Trong phần này, đầu tiên chúng tôi hình thành vấn đề, sau đó tìm
giám sát hành vi trong quá trình thực hiện. Tương tự, [28] thiết
hiểu ba loại lỗ hổng được nghiên cứu trong bài báo này và trình
lập một máy phân tích dựa trên fuzzing để xác định lỗ hổng gần
bày lý do tập trung vào ba lỗ hổng này.
đây. Sereum [29] sử dụng phân tích vết bẩn để theo dõi các luồng
dữ liệu thời gian chạy trong quá trình thực thi hợp đồng thông
Đặt vấn đề. Với mã nguồn của một hợp đồng thông minh, chúng
minh để phát hiện lỗ hổng bảo mật. Tuy nhiên, các phương pháp
tôi quan tâm đến việc phát triển một cách tiếp cận hoàn toàn tự
thực thi động yêu cầu hợp đồng đại lý được tạo thủ công để tương
động có thể phát hiện các lỗ hổng ở cấp độ chức năng.
tác với hợp đồng đang được thử nghiệm, ngăn chúng khỏi các ứng
Nói cách khác, chúng ta phải ước tính nhãn yˆ cho mỗi hàm hợp
dụng hoàn toàn tự động và khiến chúng không có khả năng mở rộng.
đồng thông minh f, trong đó yˆ = 1 đại diện cho f có một lỗ hổng
Gần đây, một số nỗ lực đã được thực hiện để nghiên cứu việc
cụ thể trong khi yˆ = 0 biểu thị f là an toàn. Trong bài báo này,
sử dụng mạng thần kinh sâu để phát hiện lỗ hổng hợp đồng thông
chúng tôi tập trung vào ba loại lỗ hổng, sẽ được trình bày bên
minh. [19] xây dựng đoạn mã hợp đồng tuần tự và đưa chúng vào mô
dưới. Trước đó, trước tiên chúng tôi giới thiệu kiến thức sơ bộ
hình BLSTM-ATT để phát hiện lỗi gần đây. [20] đề xuất chuyển đổi
về cơ chế dự phòng trong hợp đồng thông minh, điều này rất quan
mã nguồn của hợp đồng thành biểu đồ hợp đồng và xây dựng mạng nơ-
trọng trong việc hiểu rõ vấn đề.
ron dạng biểu đồ làm mô hình phát hiện. [30] đề xuất ContractWard,
Cơ chế dự phòng. Trong một hợp đồng thông minh, mỗi chức
trích xuất các tính năng bigram từ mã hoạt động của các hợp đồng
năng được xác định duy nhất bằng một chữ ký, bao gồm tên và các
thông minh và sử dụng các thuật toán học máy. Tuy nhiên, mặc dù
loại tham số của nó [31]. Khi một hàm được gọi, chữ ký của hàm
một số phương pháp đã được đề xuất, lĩnh vực phát hiện lỗ hổng
được gọi sẽ được chuyển tới hợp đồng được gọi. Nếu chữ ký khớp
bảo mật bằng cách sử dụng học sâu vẫn còn sơ khai và độ chính xác
với một chức năng của hợp đồng được gọi, việc thực thi sẽ chuyển
vẫn chưa đạt yêu cầu. Đối với các lỗ hổng và cuộc tấn công hợp
đến chức năng tương ứng.
đồng thông minh phổ biến, độc giả có động cơ có thể tham khảo
Nếu không, nó sẽ chuyển đến hàm dự phòng. Chuyển tiền được coi là
[31] để có một cuộc khảo sát toàn diện.
một chữ ký trống, cũng sẽ kích hoạt chức năng dự phòng. Hàm dự
phòng là một hàm đặc biệt không có tên và không có đối số, có thể

được lập trình tùy ý [31]. Sau khi giới thiệu kiến thức nền tảng
2.2 Mạng Neural Đồ thị
này, bây giờ chúng tôi đã sẵn sàng để trình bày chi tiết về ba
Với sự thành công đáng kể của mạng nơron, mạng nơron đồ thị đã loại lỗ hổng.
được nghiên cứu sâu rộng trong nhiều lĩnh vực khác nhau như phân
loại đồ thị [32, 33], phân tích chương trình [34, 35], và nhúng (1) Reentrancy là một lỗ hổng nổi tiếng đã gây ra cuộc tấn
đồ thị [36]. Các cách tiếp cận hiện tại gần như được phân thành công DAO khét tiếng. Khi hàm hợp đồng thông minh f1 chuyển tiền

hai loại: (i) Các cách tiếp cận dựa trên phổ tổng quát hóa các đến hợp đồng người nhận C, hàm dự phòng f2 của C sẽ tự động được
mạng thần kinh được thiết lập tốt như CNN để hoạt động trên dữ thực thi. Trong hàm dự phòng f2, C có thể gọi trở lại f1 để thực
liệu có cấu trúc đồ thị. Ví dụ, GCN [37] thực hiện phép xấp xỉ hiện chuyển lần thứ hai không hợp lệ. Vì quá trình thực thi hiện
bậc nhất của chập đồ thị phổ [38–40] và phát triển mạng lan truyền tại của f1 phải đợi quá trình chuyển lần đầu tiên kết thúc, C có

theo lớp bằng cách sử dụng ma trận Laplacian, đạt được hiệu suất thể sử dụng trạng thái trung gian của f1 để ăn cắp tiền thành
đầy hứa hẹn đối với các nhiệm vụ phân loại nút đồ thị. [41] đề công.
xuất CNN đồ thị có thể lấy dữ liệu có cấu trúc đồ thị tùy ý làm Một ví dụ đơn giản được hiển thị trong Hình 1, trong đó chức năng
đầu vào. (ii) Các phương pháp dựa trên không gian kế thừa các ý rút tiền của hợp đồng Ngân hàng có lỗ hổng bảo mật, Kẻ tấn công
tưởng từ các GNN lặp lại và sử dụng phương pháp hỗ trợ thông tin hợp đồng đánh cắp tiền bằng cách khai thác lỗ hổng bảo mật. Đầu
để xác định các chập của đồ thị. Công việc ban đầu, chẳng hạn như tiên, Kẻ tấn công gửi 10 Ether (Ether là tiền ảo của Ethereum)
[42] tổng hợp trực tiếp thông tin vùng lân cận của các nút cho vào Ngân hàng hợp đồng (bước 1). Sau đó, Attacker rút 10 Ether
các biến đổi đồ thị. Một dòng công việc khác, chẳng hạn như GAT bằng cách gọi chức năng rút tiền (bước 2). Khi Ngân hàng theo hợp
[43] và GAAN [44], sử dụng các cơ chế chú ý để tìm hiểu trọng số đồng gửi 10 Ether cho Kẻ tấn công bằng call.value (Ngân hàng,
của các nút lân cận khác nhau. Được thúc đẩy bởi các phương pháp dòng 9), chức năng dự phòng (Kẻ tấn công, dòng 8–11) của Kẻ tấn
tiếp cận dựa trên không gian này, [45] phác thảo một thông điệp công sẽ tự động được gọi (bước 3).
truyền qua khung mạng nơ-ron để dự đoán các đặc tính hóa học của Trong chức năng dự phòng của nó, Attacker gọi rút tiền một lần
phân tử. nữa (bước 4). Vì userBalance của Attacker vẫn chưa được đặt thành
0 (Ngân hàng, dòng 10), Ngân hàng tin rằng Attacker vẫn còn 10
Gần đây, [34, 35, 46, 47] cố gắng áp dụng GNN vào các vấn đề Ether trong hợp đồng, do đó, chuyển 10 Ether cho Attacker một lần
phân tích chương trình. Cụ thể, [35] giới thiệu một mạng lặp lại nữa (Bước 5). Vòng lặp rút tiền kéo dài trong 9 lần (đếm + + <10,
đồ thị gated để dự đoán biến, trong khi [46] đề xuất Gemini để dòng Kẻ tấn công 9). Cuối cùng, Attacker thu được nhiều Ether
phát hiện sự tương tự mã nhị phân, trong đó (100 Ether) hơn mong đợi (10 Ether).
Machine Translated by Google
GIAO DỊCH IEEE VỀ KIẾN THỨC VÀ KỸ THUẬT DỮ LIỆU 4

C3 C3
e3 Gr
độ chắc chắn0,4,24;
contractDAO
{functionwithdraw ()
{msg.sender.call.value ();
e2 C1
số dư [msg.sender] - = 0;
...... C2 C1
e1
C2
}}

Pr

thông minh hợp đồng bảo mật hợp đồng

(a) Văn bản bảo mật (b) Sơ đồ hợp đồng (c) Phát hiện lỗ hổng

Hình 2 Kiến trúc tổng thể của phương pháp đề xuất của chúng tôi. (a) Giai đoạn trích xuất mẫu chuyên gia; (b) giai đoạn xây dựng và
chuẩn hóa đồ thị hợp đồng; (c) giai đoạn phát hiện lỗ hổng bảo mật.

(2) Lỗ hổng phụ thuộc vào dấu thời gian tồn tại khi hợp đồng tính năng để xuất kết quả phát hiện. Trong phần tiếp theo, chúng
thông minh sử dụng dấu thời gian của khối làm điều kiện kích hoạt tôi trình bày chi tiết về ba thành phần một.
để thực hiện một số hoạt động quan trọng, ví dụ: sử dụng dấu thời
gian của một khối trong tương lai làm nguồn để tạo ra các số
ngẫu nhiên để xác định người chiến thắng trong trò chơi . Người 4.1 Trích xuất mẫu chuyên gia Trong

khai thác (một nút trong chuỗi khối) khai thác khối có quyền tự phần này, chúng tôi tóm tắt các mẫu hiện có và thiết kế các mẫu
do đặt dấu thời gian của khối trong khoảng thời gian ngắn (< 900 mới cho ba lỗ hổng cụ thể tương ứng và triển khai một công cụ
giây) [17]. Do đó, các thợ đào có thể thao túng dấu thời gian nguồn mở để tự động trích xuất các mẫu này.
của khối để thu lợi bất hợp pháp.
(3) Vòng lặp vô hạn là một lỗ hổng phổ biến trong các hợp Sự gần gũi. Thông thường, lỗ hổng reentrancy được coi là một
đồng thông minh. Chương trình của một hàm có thể chứa một vòng lời gọi đến call.value có thể gọi lại chính nó thông qua một

lặp (ví dụ: vòng lặp for, vòng lặp while và vòng lặp tự gọi) chuỗi các cuộc gọi. Có nghĩa là, lệnh gọi.value được nhập lại
không có điều kiện thoát hoặc không thể đạt được điều kiện thoát, thành công để thực hiện thao tác chuyển tiền lặp lại không bị
cụ thể là vòng lặp vô hạn. chờ đợi. Bằng cách nghiên cứu các tác phẩm hiện có như [8, 17,
Tại sao lại tập trung vào những lỗ hổng này. Chúng tôi chủ 27], chúng tôi thiết kế ba mẫu phụ. Mẫu con đầu tiên là
yếu tập trung vào ba lỗ hổng nói trên vì: (i) Trong các cuộc tấn callValueInvocation kiểm tra xem có tồn tại một lệnh gọi tới
công thực sự, các mạng blockchain đã bị thiệt hại hơn 100 triệu call.value trong hàm hay không. Số dư mẫu phụ thứ hai Kiểm tra
USD do ba lỗ hổng.
xem số dư của người dùng có bị trừ sau khi chuyển tiền hay không
Ví dụ, các cuộc tấn công vào sự tái xuất đã gây ra một trong bằng cách sử dụng call.value , điều này cho thấy thực tế là có
những thiệt hại lớn nhất (60 triệu USD trong Sự kiện Dao) trong thể tránh được việc ăn cắp tiền nếu số dư của người dùng bị trừ
lịch sử hợp đồng thông minh. (ii) Theo kinh nghiệm, chúng tôi mỗi lần trước khi chuyển tiền. Mẫu phụ thứ ba đủBalance quan tâm
nhận thấy rằng ba lỗ hổng có thể ảnh hưởng đến một số lượng đáng đến việc liệu có kiểm tra mức độ đầy đủ của số dư người dùng
kể các hợp đồng thông minh và không thể phát hiện được. Cụ thể, trước khi chuyển cho người dùng hay không. Lưu ý rằng
chúng tôi đã khảo sát 40.932 hợp đồng thông minh Ethereum, quan enoughBalance là một mẫu mới được thiết kế trong bài báo này.
sát thấy rằng khoảng 5.013 trong số 307.396 chức năng sở hữu ít
nhất một lệnh gọi để gọi.value. Mặc dù sở hữu lời kêu gọi Sự phụ thuộc vào dấu thời gian. Nói chung, lỗ hổng bảo mật
call.value không nhất thiết có nghĩa là hợp đồng có lỗ hổng bảo dấu thời gian tồn tại khi một hợp đồng thông minh sử dụng dấu
mật, hợp đồng có khả năng bị ảnh hưởng bởi lỗ hổng bảo mật và do thời gian khối như một phần của các điều kiện để thực hiện các
đó cần phải kiểm tra thêm. Tương tự, khoảng 4.833 hàm đã sử dụng hoạt động quan trọng [17]. Bằng cách điều tra các công trình
block.timestamp và do đó có khả năng bị ảnh hưởng bởi lỗ hổng trước đó bao gồm [8, 17, 31], chúng tôi thiết kế ba mẫu con có
phụ thuộc vào dấu thời gian. Nhiều hàm có vòng lặp for hoặc liên quan chặt chẽ đến sự phụ thuộc vào dấu thời gian. Đầu tiên,
while, điều này có thể dẫn đến lỗ hổng vòng lặp vô hạn. Ngược mô hình phụ thời gian tampInvocation mô hình hóa liệu có tồn tại
lại, hầu hết các lỗ hổng hợp đồng khác ảnh hưởng đến một số lượng một lệnh gọi đến opcode block.timestamp trong hàm hay không. Sau
chức năng tương đối nhỏ hơn, ví dụ: lỗ hổng ether bị khóa ảnh đó, dấu thời gian của mẫu phụ thứ hai sẽ kiểm tra xem giá trị
hưởng đến ít hơn 900 chức năng và lỗ hổng tràn số nguyên ảnh của block.timestamp có được gán cho các biến khác hay được truyền
hưởng đến ít hơn 1.000 chức năng. cho một hàm dưới dạng tham số hay không, cụ thể là liệu
block.timestamp có thực sự được sử dụng hay không. Cuối cùng,
việc thuần hóa dấu thời gian của mẫu phụ thứ ba sẽ kiểm tra xem
4 PHƯƠNG PHÁP CỦA CHÚNG TÔI
block.timestamp có thể gây ô nhiễm điều kiện kích hoạt của một
Tổng quan về phương pháp. Kiến trúc tổng thể của phương pháp hoạt động quan trọng hay không, điều này có thể được thực hiện
được đề xuất của chúng tôi được mô tả trong Hình 2, bao gồm ba bằng phân tích vết bẩn. Dấu thời gian mẫu phụ
giai đoạn: (1) giai đoạn trích xuất mẫu bảo mật, lấy các mẫu Vòng lặp vô hạn. Vòng lặp vô hạn được coi là một lỗi vòng lặp
chuyên gia về lỗ hổng bảo mật từ mã nguồn; (2) giai đoạn xây vô tình lặp đi lặp lại mãi mãi, không thể nhảy ra khỏi vòng lặp
dựng và chuẩn hóa đồ thị hợp đồng, trong đó trích xuất luồng và trả về kết quả mong đợi.
điều khiển và ngữ nghĩa luồng dữ liệu từ mã nguồn và làm nổi bật Cụ thể, chúng tôi xác định ba mẫu chuyên gia cho vòng lặp vô hạn
các nút quan trọng; và (3) giai đoạn phát hiện lỗ hổng bảo mật, như sau. (1) Vòng lặp mẫu con đầu tiên Câu lệnh kiểm tra xem hàm
chuyển biểu đồ hợp đồng được đánh dấu thông thường thành tính có sở hữu câu lệnh lặp như for và while hay không. (2) Bản mod
năng biểu đồ bằng cách sử dụng mạng nơ-ron biểu đồ thời gian và loopCondition mẫu phụ thứ hai cho biết điều kiện thoát có thể
kết hợp tính năng mẫu và biểu đồ đạt được hay không. Ví dụ,
Machine Translated by Google
GIAO DỊCH IEEE VỀ KIẾN THỨC VÀ KỸ THUẬT DỮ LIỆU 5

Hợp đồng dễ bị tổn thương Đồ thị hợp đồng Các cạnh tạm thời Biểu đồ chuẩn hóa
e8 e3 Vs Ve Loại đơn đặt hàng
e8
1 NÓ
1 //… e1 C1 C2
C2 N1
2 // hàm rút tiền e9 e2 C1 N1 2 NÓ
e3 e9
3 chức năng rút tiền (số tiền uint) công khai { e 4 e5
e3 C2 N1 3 AC
C2
e1 e2 e4 N1 C3 4 FW
4 if (Số dư [msg.sender] <số tiền) {
e7
5 ném; e5 C3 N1 5 AC
e1 e7
6 } C1 C3 e6 C3 C3 6 R G
e2 e4 e5
7 FW
7 yêu cầu (msg.sender.call.value (số tiền) ()); e6 e7 C3 C2
e10
AC
Số dư [msg.sender] - = số tiền; e11 e10 e8 C2 C2
C1 C3
số 8

số 8

e9 C2 N1 9 AG
9 } e11
10 //… F e10 C3 F 10 FB
e6
e11 F C1 11 FB

Nút dự phòng Cạnh dự phòng


Ci Core Node N tôi
Nút bình thường F Kiểm soát dòng chảy cạnh Cạnh luồng dữ liệu

Hình 3 Giai đoạn xây dựng và chuẩn hóa đồ thị hợp đồng. Hình đầu tiên cho thấy mã nguồn của một hợp đồng

chức năng, trong khi hình thứ hai trực quan hóa đồ thị hợp đồng được trích xuất từ mã. Nút Ci biểu thị các nút lõi,

nút Ni đại diện cho các nút bình thường, và nút F biểu thị nút dự phòng. Hình thứ ba minh họa các cạnh thời gian

trong đồ thị được trích xuất, trong đó các loại cạnh được trình bày chi tiết trong Bảng 1. Hình thứ tư minh họa đồ thị sau
sự bình thường hóa.

trong vòng lặp while, điều kiện thoát i <10 của nó có thể không đạt được hoặc hàm call.value được tích hợp sẵn, (ii) biến cor phản ứng với số dư

nếu tôi không bao giờ được cập nhật trong vòng lặp. (3) Mẫu phụ thứ ba của người dùng và (iii) các biến có thể trực tiếp
selfInvocation mô hình hóa liệu hàm có gọi chính nó hay không ảnh hưởng đến sự cân bằng của người dùng. Đối với lỗ hổng phụ thuộc dấu thời gian,

và lời gọi không nằm trong câu lệnh if. Mối quan tâm này (i) các lệnh gọi đến block.timestamp, (ii) các biến được gán bởi

thực tế là if câu lệnh tự gọi không có trong if block.timestamp và (iii) các lệnh gọi đến một hàm ngẫu nhiên

, vòng lặp tự gọi sẽ không bao giờ kết thúc. lấy block.timestamp khi hạt giống chính được trích xuất

Triển khai trích xuất mẫu. Chúng tôi đã thực hiện như các nút cốt lõi. Đối với lỗ hổng vòng lặp vô hạn, (i) tất cả các vòng lặp

một công cụ nguồn mở để trích xuất những con nhạn biển chuyên nghiệp được các câu lệnh chẳng hạn như câu lệnh for và while, (ii) vòng lặp

thiết kế từ các chức năng của hợp đồng thông minh. Đặc biệt, các mẫu phụ các biến điều kiện và (iii) tự gọi được coi là
như các nút cốt lõi.
đơn giản như callValueInvocation, timestampInvocation và

loopStatement có thể được trích xuất trực tiếp bằng kết hợp từ khóa ing. Các nút bình thường. Trong khi các nút cốt lõi đại diện cho các biến

Số dư của các mẫu phụ Giảm, Cân bằng đủ, loopCondi tion, timestampAssign và các biến hóa đơn chính, các nút bình thường được sử dụng để lập mô

và selfInvocation thu được bằng phân tích thuế tổng hợp. Dấu thời gian hình hóa đơn và các biến đóng vai trò phụ trợ trong việc phát hiện

mẫu phụ phức tạp các lỗ hổng. Cụ thể, các lệnh gọi và các biến

được trích xuất bằng phân tích vết bẩn trong đó chúng tôi theo dõi dấu vết của không được trích xuất vì các nút lõi được mô hình hóa như các nút bình thường,

luồng dữ liệu và gắn cờ tất cả các biến có thể bị ảnh hưởng ví dụ: đối với lỗ hổng phụ thuộc vào dấu thời gian, lời kêu gọi

cùng các dấu vết. không gọi block.timestamp và các biến một cách gián tiếp

liên quan đến block.timestamp được coi là các nút bình thường.
4.2 Xây dựng và chuẩn hóa đồ thị hợp đồng Nút dự phòng. Hơn nữa, chúng tôi xây dựng một nút dự phòng F để

kích thích chức năng dự phòng của hợp đồng tấn công ảo,
Các công trình hiện có [35, 48] đã chỉ ra rằng các chương trình có thể
có thể tương tác với chức năng đang thử nghiệm.
được chuyển đổi thành các biểu diễn đồ thị biểu tượng,
Một ví dụ đơn giản. Nhận hợp đồng Dễ bị tổn thương được trình bày
có khả năng duy trì các mối quan hệ ngữ nghĩa (ví dụ: độ trễ dữ liệu và
ở bên trái của Hình 3 làm ví dụ, giả sử chúng ta đánh giá
sự phụ thuộc điều khiển) giữa các phần tử chương trình.
liệu chức năng rút tiền của nó có sở hữu khả năng lưu trữ lần xuất hiện lại
Lấy cảm hứng từ điều này, chúng tôi xây dựng các chức năng hợp đồng thông minh thành
hay không. Như được hiển thị bởi các mũi tên trong hai hình bên trái của Fig.
đồ thị hợp đồng và gán các vai trò riêng biệt cho các chương trình khác nhau
3, chức năng rút chính nó lần đầu tiên được mô hình hóa như một nút lõi C1
các phần tử (cụ thể là các nút). Chúng tôi cũng xây dựng các cạnh để mô hình hóa
vì mã bên trong của nó chứa call.value. Sau đó, sau
kiểm soát và luồng dữ liệu giữa các phần tử chương trình, lấy
thứ tự thời gian của mã, chúng tôi xử lý biến quan trọng
các trật tự tạm thời của họ đang được xem xét. Hơn nữa, chúng tôi thiết kế
Cân bằng [msg.sender] dưới dạng nút cốt lõi C2, trong khi biến
một quy trình loại bỏ nút để chuẩn hóa biểu đồ hợp đồng
số lượng được mô hình như nút thông thường N1. Lời kêu gọi
và đánh dấu các nút quan trọng. Tiếp theo, chúng tôi giới thiệu hợp đồng
để gọi. giá trị được trích xuất dưới dạng nút lõi C3 và dự phòng
xây dựng và chuẩn hóa đồ thị, tương ứng.
chức năng của hợp đồng tấn công ảo được đặc trưng bởi
4.2.1 Xây dựng đồ thị hợp đồng nút dự phòng F.

Cấu tạo nút. Thông tin chi tiết đầu tiên của chúng tôi là các phần tử Xây dựng các cạnh. Thông tin chi tiết thứ hai của chúng tôi là các nút

gam pro khác nhau trong một hàm không có tầm quan trọng như nhau trong có liên quan chặt chẽ với nhau về mặt thời gian hơn là

phát hiện các lỗ hổng. Do đó, chúng tôi trích xuất ba loại hơn là bị cô lập. Để nắm bắt các phụ thuộc ngữ nghĩa phong phú

của các nút, tức là các nút lõi, các nút bình thường và các nút dự phòng. giữa các nút, chúng tôi xây dựng ba loại cạnh,

Các nút cốt lõi. Các nút cốt lõi tượng trưng cho các lệnh gọi chính cụ thể là luồng điều khiển, luồng dữ liệu và các cạnh dự phòng. Mỗi cạnh

và các biến rất quan trọng để phát hiện một lỗ hổng bảo mật cụ thể. Đặc mô tả một con đường có thể được đi qua bởi

biệt, đối với lỗ hổng lần truy cập gần đây, cốt lõi chức năng đang được kiểm tra và số thời gian của cạnh

mô hình nút (i) một lệnh gọi đến một chức năng chuyển tiền đặc trưng cho thứ tự tuần tự của nó trong hàm. Chúng tôi điều tra-
Machine Translated by Google
GIAO DỊCH IEEE VỀ KIẾN THỨC VÀ KỸ THUẬT DỮ LIỆU 6
Loại (Viết tắt) Xác nhận sự thật về Loại
AH Dự phòngNodeFeature
ngữ nghĩa {X}
EdgeFeature
R G yêu cầu {X}
IR nếu {...} hoàn nguyên
Vstart Vend Gọi món Loại hình
TÔI Loại hình

NÓ nếu {...} ném


NẾU nếu {X}
GB Kiểm soát dòng chảy
InvocationNodeFeature VariableNodeFeature
nếu {...} khác {X}
GN nếu {...} thì {X}
TÔI Người gọi LimitedAcc Loại hình
TÔI Loại hình
TẠI SAO
trong khi {X} làm {...}
FR cho {X} làm {...}
FW các mối quan hệ tuần tự tự nhiên
AG chỉ định {X}
Dòng dữ liệu
AC quyền truy cập {X} Hình 4 Minh họa tính năng cạnh và tính năng nút.
FB tương tác với chức năng dự phòng Dự phòng

biến mô hình chỉ bao gồm ID và Loại.


BẢNG 1 Tóm tắt các cạnh ngữ nghĩa. Tất cả các cạnh là
được phân loại thành ba loại, cụ thể là luồng điều khiển, luồng dữ liệu 4.2.2 Chuẩn hóa đồ thị hợp đồng
và các cạnh dự phòng.
Hầu hết các mạng nơron biểu đồ vốn đã phẳng khi hỗ trợ thông tin mã
hóa, bỏ qua rằng một số nút đóng vai trò nhiều hơn
kiểm soát các chức năng khác nhau và tóm tắt các cạnh ngữ nghĩa
vai trò trung tâm hơn những vai trò khác. Hơn nữa, các hàm func hợp
trong Bảng 1. Tất cả các cạnh được phân thành ba loại.
đồng khác nhau mang lại các đồ thị riêng biệt, cản trở việc đào tạo đồ thị
Kiểm soát các cạnh dòng chảy. Các cạnh dòng điều khiển nắm bắt điều khiển
mạng nơ-ron. Do đó, chúng tôi đề xuất loại bỏ nút
ngữ nghĩa của mã. Cụ thể, một cạnh luồng điều khiển là
quá trình chuẩn hóa đồ thị hợp đồng.
được xây dựng cho một câu lệnh có điều kiện hoặc xử lý bảo mật
Loại bỏ nút. Như đã giới thiệu trong Phần 4.2.1,
, chẳng hạn như câu lệnh if, for, khẳng định và yêu cầu. Các
các nút của biểu đồ hợp đồng được phân vùng thành các nút cốt lõi
cạnh trực tiếp từ nút trước đã gặp phải,
| C | | N |
nút bình thường {Ni} và nút dự phòng F.
đại diện cho lệnh gọi hàm quan trọng hoặc biến trước {Ci} i = 1, i = 1,

câu lệnh hiện tại, đến nút đại diện cho chức năng Chúng tôi xóa từng nút thông thường Ni , nhưng chuyển tính năng của

gọi hoặc biến trong câu lệnh hiện tại. Đặc biệt, chúng tôi Ni đến các nút lõi gần nhất của nó. Ví dụ, nút bình thường

sử dụng các cạnh về phía trước để mô tả luồng điều khiển tự nhiên của N1 trong hình thứ hai của Hình 3 được loại bỏ với tính năng của nó

chuỗi mã. Một cạnh phía trước kết nối hai nút trong tổng hợp đến các nút lõi C2 và C3 gần nhất. Đối với một nút Ni

các câu lệnh liền kề. Lợi ích chính của việc mã hóa như vậy là có nhiều nút lõi gần nhất, tính năng của nó được chuyển

bảo lưu logic lập trình được phản ánh bởi chuỗi cho tất cả chúng. Các cạnh kết nối với bình thường bị loại bỏ

mã nguồn. Các cạnh của luồng điều khiển được mô tả bằng các nút được giữ nguyên nhưng với nút bắt đầu hoặc nút kết thúc của chúng sẽ di chuyển

mũi tên màu đỏ trong Hình 3. đến nút lõi tương ứng. Nút dự phòng cũng là
loại bỏ tương tự như nút bình thường.
Các cạnh của luồng dữ liệu. Các cạnh luồng dữ liệu theo dõi việc sử dụng các

ables khác nhau. Một cạnh của luồng dữ liệu liên quan đến việc truy cập hoặc sửa đổi Tính năng tổng hợp. Sau khi loại bỏ các nút bình thường, tổng số

của một biến. Các cạnh của luồng dữ liệu được thể hiện với các nút lõi được cập nhật bằng các tính năng tổng hợp

mũi tên màu cam trong Hình 3. Ví dụ, quyền truy cập và gán từ các nút bình thường lân cận của chúng. Chính xác hơn,

câu lệnh Balance [msg.sender] - = amount (dòng 8, Vulnera ble, Hình 3) Tính năng mới của Ci bao gồm ba thành phần: (i) tính năng tự, cụ thể là

được đặc trưng bởi hai cạnh luồng dữ liệu, tức là, tính năng của chính nút lõi Ci ; (ii) trong các tính năng, cụ thể là
| P |
cái đó
một cạnh truy cập e7 bắt đầu từ Số dư [msg.sender] các tính năng của các nút bình thường {Pj} j = 1

nút biến C2 cho chính nó và một cạnh e8 được gán bắt đầu được hợp nhất thành Ci và có một đường đi chỉ từ Pj đến Ci ;
từ C2 đến nút biến lượng N1. và (iii) tính năng ngoài, cụ thể là các tính năng của các nút bình thường
| Q |
Các cạnh dự phòng. Để mô hình hóa cụ thể một cách rõ ràng {Qk} k = 1 được hợp nhất thành Ci và có một đường dẫn trực tiếp
cơ chế dự phòng, hai cạnh dự phòng được xây dựng. Các từ Qk đến Ci . Lưu ý rằng các tính năng của các nút bình thường khác nhau
cạnh dự phòng đầu tiên kết nối từ lệnh gọi đầu tiên. giá trị hóa đơn rằng các biến mô hình và lời gọi được thêm tương ứng
đến nút dự phòng, trong khi cạnh thứ hai chuyển hướng từ khi tổng hợp vào cùng một nút.
nút dự phòng cho chức năng đang thử nghiệm. Dự phòng
4.3 Phát hiện lỗ hổng
các cạnh được hiển thị bằng các cạnh màu tím gạch ngang trong Hình 3.

Các tính năng nút và cạnh. Hình 4 minh họa phần trích xuất Trong tiểu mục này, chúng tôi giới thiệu mạng phát hiện lỗ hổng CGE
các tính năng cho các cạnh và các nút, tương ứng. Cụ thể, được đề xuất (Kết hợp tính năng Đồ thị và

tính năng của một cạnh được trích xuất dưới dạng một bộ giá trị (Vstart, Vend, Mô hình chuyên gia). Đầu tiên, chúng tôi có được tính năng mẫu chuyên gia
Đặt hàng, Loại), trong đó Vstart và Vend đại diện cho sự bắt đầu của nó và Pr bằng cách chuyển các mẫu con được trích xuất (được giới thiệu trong
nút kết thúc, Thứ tự biểu thị thứ tự thời gian của nó và Loại tiểu mục 4.1) thành mạng nơ-ron truyền tới (FNN).

là viết tắt của loại cạnh. Đối với các nút, các loại nút khác nhau Sau đó, chúng tôi trích xuất đối tượng biểu đồ Gr từ
sở hữu các tính năng khác nhau. 1) Tính năng của một nút đồ thị hợp đồng bởi mạng truyền thông điệp tạm thời được đề xuất của
lệnh gọi hàm mô hình bao gồm (ID, AccFlag, Caller, chúng tôi, bao gồm giai đoạn truyền thông điệp và
Loại), trong đó ID biểu thị định danh của nó, Người gọi đại diện cho một giai đoạn đọc. Cuối cùng, chúng tôi sử dụng mạng hợp nhất để kết hợp
địa chỉ người gọi của lời gọi và T ype là viết tắt của đặc điểm biểu đồ Gr và đặc điểm mẫu Pr, xuất ra
loại nút. Thật thú vị, công cụ sửa đổi của một hợp đồng thông minh kết quả phát hiện. Quá trình này được thể hiện trong Hình 5
chức năng Ψ có thể kích hoạt việc kiểm tra trước các điều kiện nhất định, với thông tin chi tiết được trình bày bên dưới.

ví dụ: chủ sở hữu bổ ngữ sẽ kiểm tra xem người gọi Ψ có phải là Tính năng trích xuất mẫu bảo mật Pr . Đối với các mẫu phụ liên quan

chủ sở hữu của hợp đồng trước khi thực hiện Ψ. Vì vậy, chặt chẽ đến một lỗ hổng cụ thể, chúng tôi sử dụng
chúng tôi sử dụng AccFlag để nắm bắt ngữ nghĩa này, trong đó AccFlag vectơ một nóng để đại diện cho từng mẫu phụ và nối thêm
= 'LimitedACC' chỉ định chức năng có quyền truy cập hạn chế một chữ số 0/1 cho mỗi vectơ, cho biết liệu func tion đang được kiểm
trong khi AccFlag = 'NoLimited' biểu thị quyền truy cập không giới hạn. 2) tra có mẫu con hay không. Các vectơ cho tất cả các mẫu phụ liên quan
Ngược lại, tính năng của một nút dự phòng hoặc một nút đến một lỗ hổng cụ thể được nối với nhau
Machine Translated by Google
GIAO DỊCH IEEE VỀ KIẾN THỨC VÀ KỸ THUẬT DỮ LIỆU 7

... ...

Pr
FNN
φ (x1 , x2 , x3 )
Lọc

Xr
Các mẫu bảo mật
thương?
hoặc
Tính
tổn
0)
(1
bị
dễ

C1
| C | Gr
e3 e1
) Lọc
C2 FC o . tôi gl (
C3
e2 i = 1

Đồ thị hợp đồng

Convolution các tính


Xr : tính năng Lớp FC và
Giai đoạn truyền thông điệp Giai đoạn đọc Sigmoid
và Pooling năng thiếu sáng hợp nhất

Hình 5 Quá trình phát hiện lỗ hổng bảo mật. Đầu tiên, mạng nơ-ron truyền tới tạo ra đặc tính mẫu Pr cho các mẫu bảo mật được trích xuất từ mã nguồn. Sau

đó, mạng truyền thông điệp tạm thời được sử dụng để trích xuất đặc trưng đồ thị Gr từ đồ thị hợp đồng. Cuối cùng, mạng CGE kết hợp Gr và Pr thành tính

năng đã hợp nhất Xr, được đưa vào các lớp FC và sigmoid để đưa ra kết quả phát hiện lỗ hổng bảo mật. thành một vectơ cuối cùng x. Lấy x làm đầu vào và sự

thật cơ bản về việc liệu hàm có lỗ hổng cụ thể là nhãn đích hay không, chúng tôi sử dụng mạng nơ-ron truyền về phía trước ϕ (x) để trích xuất đặc trưng

ngữ nghĩa chiều cao Pr R trong đó các tham số mạng U, Z, R là ma trận, trong khi b1 và b2 là vectơ
thiên vị.

Giai đoạn đọc. Sau khi liên tiếp đi qua tất cả các cạnh trong G, chúng
d.
tôi trích xuất đặc trưng cho G bằng cách đọc ra trạng thái ẩn T cuối cùng
của tất cả các nút. Gọi h là trạng
thái ẩn cuối cùng thứ i của nút thứ i , chúng
củagiữa
Ttavàtrạng
thấy
trạngrằng
thái
tháisự
ẩnẩn
khác
cuối
banbiệt
cùng
đầu h
Tính năng đồ thị hợp đồng Gr Extraction. Sau khi trích xuất tính năng
i thông tin trong nhiệm vụ phát hiện lỗ hổng. Do đó, chúng tôi
xem xét tạo đặc điểm biểu đồ Gr bằng cách
mẫu bảo mật Pr, chúng tôi tiếp tục có được tính năng seman tic của biểu đồ
0 là
hợp đồng bằng cách sử dụng mạng lan truyền thông điệp tạm thời được đề xuất tôi

của chúng tôi, bao gồm giai đoạn truyền thông báo và giai đoạn đọc. Trong

giai đoạn truyền thông điệp, mạng truyền thông tin dọc theo các cạnh liên

tiếp bằng cách tuân theo các trật tự thời gian của chúng. Sau đó, nó tạo T 0
si = h Tôi h
tôi (5)
ra đặc điểm biểu đồ Gr bằng cách sử dụng một hàm đọc, tổng hợp các trạng
tôi

gi = sof tmax (W (2) (tanh (b (1)) + W (1) si)) + b (2) ) (6)


thái cuối cùng của tất cả các nút trong biểu đồ hợp đồng. g g g g

oi = sof tmax (W (2) (tanh + W (1) si)) + b (2) ) (7)


o (b (1)) o o o

| V |
Giai đoạn lan truyền thông điệp. Về mặt hình thức, chúng tôi biểu thị
(số 8)
Gr = FC ( X oi gi)
đồ thị hợp đồng cũng không đơn giản hóa là G = {V, E}, trong đó V bao gồm
i = 1
các nút cốt lõi và E bao gồm tất cả các cạnh. Kí hiệu E = {e1, e2 , . . . ,
thứ tự
trong đó biểu thị sự nối và biểu thị phần tử (1) (2) sản phẩm khôn
eN }, trong đó ek đại diện cho k cạnh thời gian.
ngoan. Wj , b và b j , j , là các tham số mạng.
với chỉ số con j {g, o}
Thông điệp được chuyển dọc theo các cạnh, một cạnh trên mỗi bước thời
0
gian. Lúc đầu, trạng thái ẩn h cho mỗi nút Vi được nút
khởiriêng
tạo với
của tính
nó. Sau
năng
tôi

đó, tại thời điểm bước k, thông báo chảy qua k cạnh thời gian ek và cập Phát hiện lỗ hổng bằng cách kết hợp Pr và Gr. Sau khi có được đặc điểm

nhật trạng thái ẩn của nút kết thúc ek.


thứ tự
mẫu bảo mật Pr và đặc điểm đồ thị hợp đồng Gr, chúng tôi kết hợp chúng để

tính nhãn cuối cùng yˆ (0, 1), cho biết liệu hàm đang được kiểm tra có

lỗ hổng cụ thể hay không. Để làm được điều này, trước tiên chúng tôi lọc
Cụ thể hơn, thông báo mk đầu tiên được tính dựa trên hsk trạng thái ẩn
Pr và Gr bằng cách sử dụng lớp tích chập và lớp tổng hợp tối đa, sau đó
của nút bắt đầu của ek và kiểu cạnh tk:
chúng tôi nối các tính năng đã lọc và chuyển chúng vào một mạng bao gồm 3

lớp được kết nối đầy đủ và một lớp sigmoid. Quá trình này có thể được xây

xk = hsk tk mk = (1) dựng như sau:

Wkxk + bk (2)

Xr = ψ (Pr) ψ (Gr) yˆ = (9)


trong đó biểu thị sự nối, ma trận Wk và vectơ thiên vị bk là các tham số
sigmoid (F C (Xr)) (10)
mạng. Thông điệp ban đầu xk thu nhận thông tin từ chính nút bắt đầu của ek

và cạnh ek , sau đó chúng được chuyển thành dạng nhúng vectơ bằng cách sử Lớp tích hợp học cách gán các trọng số khác nhau cho các phần tử khác nhau
dụng Wk và bk. của vectơ ngữ nghĩa, trong khi lớp tổng hợp tối đa làm nổi bật các phần tử

quan trọng và tránh trang bị quá mức. Lớp được kết nối đầy đủ và lớp
Sau khi nhận được tin nhắn, nút kết thúc của ek cập nhật trạng thái ẩn sigmoid phi tuyến tính tạo ra nhãn ước tính cuối cùng yˆ.
của nó hek bằng cách tổng hợp thông tin từ tin nhắn đến và trạng thái trước

đó của nó. Về hình thức, hek được cập nhật theo:

5 THÍ NGHIỆM

hˆ (3)
Trong phần này, chúng tôi đánh giá thực nghiệm các meth ods được đề xuất
ek = tanh (Umk + Zhek + b1 ) = sof tmax
của chúng tôi trên tất cả các hợp đồng thông minh Ethereum có mã nguồn
0
h ek (Rhˆ ek + b2) (4)
được xác minh bởi Etherscan [49], cũng như trên tất cả các hợp đồng có sẵn
Machine Translated by Google
GIAO DỊCH IEEE VỀ KIẾN THỨC VÀ KỸ THUẬT DỮ LIỆU số 8

hợp đồng thông minh trên nền tảng blockchain khác VNT Chain [50]. tỷ lệ bỏ học d được tìm kiếm trong {0,1, 0,2, 0,3, 0,4, 0,5} và cỡ
Chúng tôi tìm cách trả lời các câu hỏi nghiên cứu sau: • RQ1: Phương lô β trong {8, 16, 32, 64, 128}. Để tránh trang bị quá mức, chúng
tôi đã điều chỉnh độ chính quy L2 λ trong {10 6 10, 10 ,510
1}. 10 42, 10
Không đề
, 3,
pháp được đề xuất có thể phát hiện một cách hiệu quả các lỗ hổng
cập đặc
cả biệt trong
các mô hìnhcác vănnơ-ron
mạng bản, chúng tôi
với cài báo
đặt cáo
mặc hiệu
định suất
sau: 1)của
l =tất
thô tục về lần xuất hiện lại, vòng lặp vô hạn và phụ thuộc dấu
thời gian không? Độ chính xác, độ chính xác, khả năng thu hồi và 0,002, 2) d = 0,2, 3) β = 32 và 4) λ = 10 4 . Đối với mỗi tập dữ

hiệu suất điểm F1 của nó như thế nào so với các phương pháp phát liệu, chúng tôi chọn ngẫu nhiên 80% trong số đó làm tập huấn luyện

hiện lỗ hổng bảo mật tiên tiến nhất? • RQ2: Phương pháp được đề và 20% còn lại làm tập thử nghiệm trong nhiều lần và báo cáo kết

xuất của chúng tôi có hữu ích để phát hiện các loại lỗ hổng mới, ví quả trung bình. Các nhãn sự thật cơ bản cho các chức năng hợp đồng

dụ: lần xuất hiện gần đây có thể thay đổi chia sẻ, điều này khó được cung cấp bởi các chuyên gia.

đối với các phương pháp hiện có?


• RQ3: Phương pháp được đề xuất có thể làm tốt hơn các phương pháp 5.2 So sánh với các phương pháp tiên tiến hiện có (RQ1)
dựa trên mạng nơ-ron khác không? • RQ4: Làm thế nào để mô hình

bảo mật được đề xuất, biểu đồ hóa bình thường, mô-đun truyền thông
Trong phần này, chúng tôi đánh giá phương pháp được đề xuất của
báo và các lớp mạng khác nhau trong CGE ảnh hưởng đến hiệu suất
mình so với các phương pháp phát hiện lỗ hổng không học sâu hiện
của phương pháp được đề xuất như thế nào?
có, bao gồm: • Oyente [8]: Một công cụ xác minh biểu tượng nổi

tiếng để phát hiện lỗ hổng hợp đồng thông minh, thực hiện thực thi
Tiếp theo, trước tiên chúng tôi trình bày các cài đặt thử nghiệm,
tượng trưng trên CFG ( đồ thị luồng điều khiển) để kiểm tra các
tiếp theo là trả lời từng câu hỏi nghiên cứu ở trên.
mẫu dễ bị tổn thương. • Mythril [52]: Một phương pháp phân tích
bảo mật, sử dụng phân tích đồng thời, phân tích vết bẩn và kiểm
5.1 Tập dữ liệu cài đặt thử
tra luồng điều khiển để phát hiện các lỗ hổng hợp đồng thông minh.
nghiệm. Chúng tôi đã tiến hành thử nghiệm trên hai bộ dữ liệu hợp
đồng thông minh trong thế giới thực, đó là ESC (Ethereum Smart Con
tracts) và VSC (VNT chain Smart Contracts), được thu thập từ các
• Smartcheck [16]: Một công cụ phân tích tĩnh có thể mở rộng để
nền tảng Ethereum và VNT Chain, theo suy đoán. Các thử nghiệm về lỗ
phát hiện các lỗ hổng mã hợp đồng thông minh. • Securify [18]:
hổng bảo mật và dấu thời gian được thực hiện trên ESC, trong khi lỗ
Một công cụ dựa trên xác minh chính thức để phát hiện các lỗi trong
hổng vòng lặp vô hạn được đánh giá trên VSC.
hợp đồng thông minh Ethereum, giúp kiểm tra các lỗi tuân thủ và
các mẫu vi phạm để lọc các kết quả dương tính giả. • Slither
• Bộ dữ liệu ESC bao gồm 307.396 chức năng hợp đồng thông minh [53]: Một khung phân tích tĩnh được thiết kế để tìm các vấn đề
từ 40.932 hợp đồng thông minh trong Ethereum [51]. trong hợp đồng thông minh Ethereum bằng cách chuyển đổi một hợp
Trong số các hàm, có khoảng 5.013 hàm sở hữu ít nhất một lệnh đồng thông minh thành một đại diện trung gian của SlithIR.
gọi đến call.value, khiến chúng bị ảnh hưởng nghiêm trọng bởi So sánh về phát hiện lỗ hổng lần truy cập gần đây.
lỗ hổng reentrancy. Khoảng 4.833 hàm chứa câu lệnh Đầu tiên, chúng tôi so sánh phương pháp tiếp cận CGE của mình với
block.timestamp, khiến chúng dễ mắc phải lỗ hổng phụ thuộc dấu năm phương pháp hiện có trong nhiệm vụ phát hiện lỗ hổng bảo mật
thời gian. Khoảng 56.800 hàm chứa các câu lệnh lặp for hoặc gần đây. Hiệu suất của các phương pháp khác nhau được trình bày ở
while. • Bộ dữ liệu VSC chứa 13, 761 chức năng, được thu thập bên trái của Bảng 2, nơi có các chỉ số về độ chính xác, độ thu hồi,
từ tất cả 4, 170 hợp đồng thông minh có sẵn trong mạng VNT độ chính xác và điểm F1. Chúng tôi muốn nhấn mạnh rằng tất cả các
Chain [50]. VNT Chain là một nền tảng blockchain công cộng thử
chỉ số chỉ được tính toán dựa trên các hàm func hợp đồng thông minh
nghiệm được đề xuất bởi các công ty và trường đại học từ
nhạy cảm có (các) lệnh gọi đến call.value, tức là các chức năng có
Singapore, Trung Quốc và Úc. Chuỗi VNT chạy các hợp đồng thông
thể bị nhiễm lỗ hổng reentrancy. Các hàm không có lời kêu gọi
minh được viết bằng ngôn ngữ Class C. call.value được biết là miễn nhiễm với lỗ hổng reentrancy và rất

nhỏ cần được xử lý (sử dụng đối sánh từ khóa thuần túy), do đó
chúng tôi không đưa các hàm đó vào tính toán để điều tra xác suất
tốt hơn. Từ kết quả định lượng của Bảng 2, chúng tôi có các nhận
Chi tiết triển khai. Tất cả các thử nghiệm được thực hiện trên xét sau. Đầu tiên, chúng tôi thấy rằng các phương pháp không học
một máy tính được trang bị CPU Intel Core i7 với tốc độ 3,7GHz, GPU sâu thông thường chưa đạt được độ chính xác thỏa đáng trong nhiệm
ở tốc độ 1080Ti và 32GB bộ nhớ. vụ phát hiện lỗ hổng bảo mật, ví dụ: phương pháp hiện đại (tức là

Hệ thống phát hiện lỗ hổng bảo mật của chúng tôi bao gồm Slither) mang lại độ chính xác 77,12% . Thứ hai, phương pháp được

ba thành phần chính: công cụ CodeExtractor tự động để đề xuất của chúng tôi về cơ bản thực hiện các phương pháp hiện có

trích xuất các mẫu bảo mật và đồ thị hợp đồng từ mã về phát hiện lỗ hổng bảo mật. Cụ thể, CGE đạt được độ chính xác

nguồn; công cụ Chuẩn hóa để chuẩn hóa đồ thị hợp đồng; 89,15%, cải thiện độ chính xác 12,03% so với các phương pháp thông

mạng CGE đưa ra kết quả bằng cách kết hợp tính năng mẫu thường. Các bằng chứng thực nghiệm mạnh mẽ cho thấy tiềm năng to

và tính năng biểu đồ. Các công cụ mã hóa CodeExtractor lớn của việc kết hợp các mạng nơ-ron đồ thị với các mẫu chuyên gia

và Normal ization được triển khai với Python, trong khi để phát hiện lỗ hổng bảo mật.

mạng CGE được triển khai với TensorFlow. Các triển khai
của hệ thống phát hiện lỗ hổng bảo mật của chúng tôi có
sẵn tại https://github.com/Messi-Q/GPSCVulDetector. Bằng cách xem xét các phương pháp hiện có, chúng tôi tin rằng
Cài đặt tham số. Trình tối ưu hóa adam được sử dụng trong mạng lý do cho độ chính xác thấp và khả năng thu hồi của các phương pháp
CGE. Chúng tôi áp dụng tìm kiếm dạng lưới để tìm ra cài đặt tốt thông thường là: (1) chúng chủ yếu dựa vào các mẫu đơn giản và cố
nhất của siêu tham số: tốc độ học tập l được điều chỉnh trong số định để phát hiện các lỗ hổng, ví dụ: Mythril kiểm tra xem liệu
{0,0001, 0,0005, 0,001, 0,002, 0,005, 0,01} , lệnh gọi giá trị có không theo sau bởi bất kỳ chức năng nội bộ nào
Machine Translated by Google
GIAO DỊCH IEEE VỀ KIẾN THỨC VÀ KỸ THUẬT DỮ LIỆU 9

Lần truy cập gần đây (tập dữ liệu ESC) Sự phụ thuộc vào dấu thời gian (tập dữ liệu ESC) Vòng lặp vô hạn (tập dữ liệu VSC)
Phương pháp Phương pháp

Acc (%) Nhớ lại (%) Độ chính xác (%) F1 (%) Acc (%) Nhớ lại (%) Độ chính xác (%) F1 (%) Acc (%) Nhớ lại (%) Độ chính xác (%) F1 (%)

Smartcheck 52,97 32,08 25,00 28,10 44,32 37,25 39,16 38,18 Jolt 42,88 23,11 38,23 28,81

Oyente 61,62 54,71 38,16 44,96 59,45 38,44 45,16 41,53 PDA 46,44 21,73 42,96 28,26

Mythril 60,54 71,69 39,58 51,02 61,08 41,72 50,00 45,49 SMT 54,04 39,23 55,69 45,98
71,89 56,60 50,85 53,57 - - - - 59,56 47,21 62,72 53,87
Bảo mật Vòng lặp
Người xén 77,12 74,28 68,42 71,23 74,20 72,38 67,25 69,72 - - - - -

Vanilla-RNN 49,64 LSTM 58,78 49,82 50,71 49,77 44,59 51,91 45,62 Vanilla-RNN 49,57 54,41 47,86 42,10 44,79
53,68 GRU 54,5477,85
GCN 67,82 51,65 58,64 50,79 59,23 50,32 LSTM 51,28 54,15
GCN GRU
64,01
51,70 71,96 57,26 44,07 49,80
71,30 53,10 60,87 52,06 59,91 49,41 50,42 45,00 47,55
78,79 70,02 74,15 74,21 75,97 68,35 63,04 59,96 61.46

DR-GCN 81,47 80,89 72,36 76,39 78,68 78,91 71,29 74,91 DR-GCN 79,19 68,34 67,82 64,89 66,32
TMP 84,48 82,63 74,06 78,11 83,45 83,82 75,05 TMP 87,75 CGE 74,61 74,32 73,89 74,10
CGE 89,15 87,62 85,24 86,41 89,02 88,10 87,41 83,21 82,29 81,97 82,13

BẢNG 2 So sánh hiệu suất về độ chính xác, độ thu hồi, độ chính xác và điểm F1. Tổng cộng có mười sáu phương pháp
được điều tra trong quá trình so sánh, bao gồm các phương pháp phát hiện lỗ hổng tiên tiến nhất, dựa trên mạng nơ-ron
các lựa chọn thay thế, DR-GCN, TMP và CGE. '-' biểu thị không áp dụng.

lệnh gọi để phát hiện lần truy cập gần đây và (2) các phần phụ thuộc vào dữ liệu phong phú chứng minh từ trái sang phải. Hình 6 (c) cho thấy sự so sánh

và kiểm soát các phụ thuộc trong mã hợp đồng thông minh không kết quả phát hiện lỗ hổng vòng lặp vô hạn, trong đó 6

được đặc trưng với các chi tiết mịn trong các phương pháp này. các hàng từ trước ra sau biểu thị Jolt, PDA, SMT, Looper, TMP,
So sánh về lỗ hổng phụ thuộc dấu thời gian và phương pháp CGE, tương ứng. Chúng ta có thể quan sát rõ ràng rằng
sự phát hiện. Chúng tôi so sánh thêm CGE được đề xuất với CGE vượt trội so với các phương pháp hiện có bởi một tỷ suất lợi nhuận lớn.

năm phương pháp về lỗ hổng phụ thuộc dấu thời gian

nhiệm vụ phát hiện. Kết quả so sánh được chứng minh 5.3 Một nghiên cứu điển hình hướng tới sự hiểu biết tốt hơn về
ở giữa Bảng 2. Quy ước tiên tiến nhất Lý do đằng sau kết quả (RQ2)

phương pháp (tức là, Slither) đã thu được độ chính xác 74,20% trên Trong phần phụ này, chúng tôi trình bày một trường hợp thú vị về
phát hiện lỗ hổng phụ thuộc dấu thời gian, đó là các lỗ hổng hợp đồng, có thể mang lại những hiểu biết mới về
khá thấp. Điều này có thể xuất phát từ thực tế là hầu hết các phương khả năng của các phương pháp đã nghiên cứu. Đặc biệt, chúng tôi đầu tư phát
pháp nhập hiện có đều phát hiện lỗ hổng phụ thuộc dấu thời gian bằng cách hiện một loại lỗ hổng bảo mật lần truy cập gần đây mới, tức là chia sẻ lần
kiểm tra một cách thô thiển xem có câu lệnh block.timestamp hay không truy cập gần đây có thể thay đổi. Theo hiểu biết của chúng tôi, hầu hết các
trong hàm. Hơn nữa, phù hợp với kết quả trên
meth ods hiện có không thể phát hiện chính xác các lỗ hổng như vậy.
phát hiện lỗ hổng bảo mật, CGE tiếp tục phân phối Bên cạnh sự gần gũi cổ điển được giới thiệu trong Hình 1 và
hiệu suất tốt nhất về tất cả bốn chỉ số. Trong phần 3, một cuộc tấn công lần truy cập gần đây cũng có thể xảy ra khi chuyển
đặc biệt, CGE cải thiện độ chính xác 14,82% so với hàm chia sẻ các biến nội bộ với một hàm khác,
các phương pháp thông thường hiện đại.
mà chúng tôi định nghĩa là lần truy cập gần đây có thể biến chia sẻ.
So sánh về phát hiện lỗ hổng vòng lặp vô hạn. Trong Hình 7, chúng tôi minh họa một biến chia sẻ trong thế giới thực
Chúng tôi cũng đã đánh giá các phương pháp của chúng tôi về khả năng lưu ví dụ về lần gần đây nhất, trong đó Hợp đồng độc hại đóng vai trò
thông vòng lặp vô hạn. Cụ thể, chúng tôi so sánh các phương pháp của mình với vai trò tấn công chống lại Hợp đồng dễ bị tổn thương. Cụ thể hơn,
các phương pháp phát hiện vòng lặp vô hạn có sẵn bao gồm: hợp đồng Vulnerable có chứa hai chức năng: getBonusWith draw và drawAll.
• Jolt [54]: Công cụ phát hiện lỗi vòng lặp vô hạn bằng cách giám sát Hàm rút lại Tất cả cho phép người dùng

trạng thái chương trình của hai lần lặp vòng lặp liên tiếp. rút tất cả phần thưởng của cô ấy, trong khi chức năng getBonusWithdraw
• SMT [55]: Một thuật toán dựa trên lý thuyết mod ulo thỏa mãn để phát cho phép người dùng rút tất cả phần thưởng của cô ấy cùng với
hiện tự động các lỗi vòng lặp vô hạn. Tiền thưởng 0,1 Ether cho mỗi người dùng mới.

• PDA [56]: Một phương thức thực hiện dựa trên đường dẫn chương trình Tấn công. Như được minh họa trong Hình 7, hợp đồng độc hại
kiểm tra phát hiện vòng lặp vô hạn. đầu tiên sử dụng chức năng tấn công của nó để gọi getBonusWithdraw
• Looper [57]: Phát hiện vòng lặp dựa trên việc thực thi ký hiệu. chức năng của hợp đồng Dễ bị tổn thương (bước 1). Như getBonusWithdraw

Kết quả định lượng được minh họa ở bên phải Ta ble 2. Từ bảng này, gọi hàm rút lại Tất cả (Dễ bị tổn thương, dòng 6) để gửi

chúng ta thấy rằng CGE nhất quán và phần thưởng và phần thưởng cho Malicious (bước 2). Điều này sẽ

vượt trội hơn đáng kể so với các phương pháp khác trên vòng lặp vô hạn tự động kích hoạt chức năng dự phòng của Malicious (bước

nhiệm vụ phát hiện lỗ hổng. Đặc biệt, CGE đạt được 3), nơi Malicious gọi getBonusWithdraw một lần nữa để ăn cắp

Độ chính xác 83,21% và điểm F1 82,13%. Ngược lại, các công cụ phát hiện tiền (bước 4). Vì cờ thưởng Bonus [msg.sender] có

hiện đại nhất Looper là 59,56% và 53,87%, chưa được đặt thành true, Vulnerable tin rằng Malicious không có

và TMP là 74,61% và 74,10%. Những cải tiến có thể tiền thưởng cho người dùng mới và do đó lại mang lại thêm 0,1 Ether nữa

xuất phát từ thực tế là chúng tôi coi các biến chính và phong phú thành Dễ bị tổn thương (Có thể bị tổn thương, dòng 5), sau đó rút hàm

sự phụ thuộc giữa các phần tử chương trình trong hợp đồng thông minh. vào lại để rút tiền thưởng bất hợp pháp 0,1 Ether (bước 5).

Chúng tôi hình dung rõ hơn các kết quả định lượng của Bảng 2 Malicious thực sự gọi getBonusWithdraw 9 lần (Mali cious, dòng 9) trong

trong Figs. 6 (a), (b), và (c). Cụ thể, Hình 6 (a) và Hình 6 (b) chức năng dự phòng của nó để đánh cắp 1 Ether.

trình bày kết quả so sánh giữa phát hiện lỗ hổng bảo mật và phát hiện Vấn đề cơ bản. Ví dụ này cho thấy rằng mặc dù

lỗ hổng phụ thuộc dấu thời gian, trong chức năng rút lại Tất cả, hợp đồng Cập nhật dễ bị tổn thương

tương ứng. 7 hàng (các màu khác nhau) từ trước đến số dư người dùng (tức là Phần thưởng) trước khi chuyển tiền, Ma licious
quay lại biểu thị các phương thức Smartcheck, Oyente, Mythril, Securify, vẫn có thể bị tấn công. Cuộc tấn công mới sử dụng

Slither, TMP và CGE, tương ứng. Đối với mỗi hàng trong biến chia sẻ (Phần thưởng) để trộm tiền. Mặc dù với bản thân chức năng

số liệu, độ chính xác, thu hồi, độ chính xác và điểm F1 lần lượt là drawAll là an toàn, nhưng hợp đồng độc hại có thể
Machine Translated by Google
GIAO DỊCH IEEE VỀ KIẾN THỨC VÀ KỸ THUẬT DỮ LIỆU 10

100 100 100

80 80 80

60 60 60
% % %

40 40 40

20 20 20

CGE CGE CGE


TMP TMP
Người xén Người xén --TMP
Bảo mật Bảo mật Vòng lặp
Sự chính xác Mythril Sự chính xác Mythril Sự chính xác SMT
Hồi tưởng
Oyente
Hồi tưởng
Oyente
Hồi tưởng PDA
Độ chính xác Smartcheck Độ chính xác Smartcheck Độ chính xác Jolt
F1 F1 F1

(a) So sánh gần đây của các công cụ (b) So sánh dấu thời gian của các công cụ (c) So sánh vòng lặp vô hạn của các công cụ

100 100 100

80 80 80

60 60 60
% % %

40 40 40

20 20 20

CGE CGE CGE


TMP TMP TMP
DR-GCN DR-GCN DR-GCN
GCN GCN GCN
Sự chính xác GRU Sự chính xác GRU Sự chính xác GRU
Hồi tưởng LSTM Hồi tưởng LSTM Hồi tưởng LSTM
Độ chính xác Vanilla-RNN Độ chính xác Vanilla-RNN Độ chính xác Vanilla-RNN
F1 F1 F1

(d) So sánh gần đây của các công trình ròng (e) So sánh dấu thời gian của các công (f) So sánh vòng lặp vô hạn của các công
trình ròng trình ròng

Hình 6 Trực quan hóa các kết quả định lượng trong Bảng 2: (a) & (d) trình bày kết quả so sánh phát hiện lỗ hổng gần đây,
trong khi (b) & (e) trình bày kết quả so sánh phát hiện phụ thuộc dấu thời gian, (c) & (f) hiển thị kết quả so sánh phát
hiện lỗ hổng vòng lặp vô hạn. Trong (a) & (b), 7 hàng từ trước ra sau lần lượt biểu thị các phương pháp Smartcheck,
Oyente, Mythril, Securify, Slither, TMP và CGE. Trong (c), 6 hàng từ trước ra sau lần lượt biểu thị các phương pháp Jolt,
PDA, SMT, Looper, TMP và CGE. Trong (d) & (e) & (f), 7 hàng từ trước ra sau lần lượt biểu thị các phương pháp Vanilla-RNN,
LSTM, GRU, GCN, DR-GCN, TMP và CGE. Đối với mỗi hàng trong hình, độ chính xác, độ thu hồi, độ chính xác và điểm F1 được
thể hiện tương ứng từ trái sang phải.

gọi getBonusWithdraw để sửa đổi Phần thưởng biến được chia sẻ để kích 1 hợp đồng dễ bị tổn thương {
1
1
hợp đồng Độc hại

hoạt các cuộc tấn công. 2 ... 2


{addressvul_add = 01a5f ... 43;
function getBonusWithdraw () {request 3 ...

Thật không may, các loại tấn công như vậy vẫn chưa thể 3 (! Bonus [msg.sender]); Phần 4

5
function attack ()
4 5 thưởng [msg.sender] + = 0,1ether; rút {vul_add.getBonusWithdraw (); 6} 7
được phát hiện bằng các phương pháp hiện có. Chúng tôi đã 6 lui (msg.sender); Phần thưởng function () pay {8 count ++; 9 if (count <10)
{10 vul_add.getBonusWithdraw (); } 11}
7 [msg.sender] = true;
kiểm tra theo kinh nghiệm Hợp đồng dễ bị tổn thương bằng 8
2 5
4
cách sử dụng các công cụ hiện đại bao gồm Oyente [8], } function rút ra khỏi hệ
9

10 thống () {unitamount = Phần thưởng

Securify [18], Smartcheck [16], Slither [53] và Mythril 11 [msg.sender]; Phần thưởng [msg.sender] =
12 0; yêu cầu (msg.sender.call.value (số tiền ) ()); } 12 3
[52] và kiểm tra thủ công các báo cáo đã tạo của họ . 13 13 }

14
Oyente, Smartcheck, Slither và Mythril không xác định được
}

lỗi gần đây nhất, trong khi Bảo mật đưa ra rất nhiều cảnh
Hình 7 Một hợp đồng thông minh trong thế giới thực với lỗ
báo ở những vị trí sai và cũng bỏ sót lỗ hổng lần truy cập
hổng chia sẻ lần truy cập gần đây.
gần biến chia sẻ. Trong điều tra, CGE phát hiện thành công
lỗ hổng bảo mật. Những dấu hiệu evi này tiết lộ rằng các
quy tắc phát hiện cơ bản của các phương pháp phát hiện lỗ • LSTM [59]: Công việc mạng nơron lặp lại được sử dụng
hổng bảo mật hiện tại thực sự có thể bị lừa bởi thủ thuật rộng rãi nhất để xử lý dữ liệu tuần tự. LSTM là viết tắt
biến chia sẻ và một số mẫu lỗ hổng khó được che đậy. Các của bộ nhớ ngắn hạn dài hạn, nó cập nhật thường xuyên
quy tắc hiện tại chỉ kiểm tra biến số dư người dùng có liên trạng thái tế bào khi đọc liên tiếp chuỗi mã. • GRU [60]:
quan trực tiếp đến lệnh gọi giá trị, trong khi bỏ qua sự Đơn vị định kỳ có định thời, sử dụng cơ chế định cấp để xử
phụ thuộc giữa các biến, ví dụ: các biến khác có thể ảnh lý chuỗi mã. • GCN [37]: Mạng tích chập đồ thị lấy đồ thị
hưởng đến biến số dư người dùng. Về vấn đề này, một điểm hợp đồng làm đầu vào và thực hiện phân tích theo lớp trên
nổi bật thiết yếu của phương pháp của chúng tôi là khả năng đồ thị bằng cách sử dụng đồ thị Laplacian. • DR-GCN [20]:
nắm bắt sự phụ thuộc dữ liệu giữa các biến quan trọng. Công việc mạng tích tụ đồ thị không có bậc, làm tăng khả
năng kết nối của các nút và loại bỏ ma trận độ nút chéo. •
5.4 So sánh với các phương pháp dựa trên mạng nơron (RQ3) TMP [20]: Mạng truyền thông điệp tạm thời, mạng này học
đặc điểm đồ thị hợp đồng bằng cách di chuyển theo hình

Chúng tôi so sánh thêm các phương pháp của mình với các lựa thành dọc theo các cạnh liên tiếp theo trật tự thời gian
chọn thay thế mạng nơ-ron khác để tìm ra kiến trúc mạng nơ- của chúng. Tính năng biểu đồ cuối cùng được sử dụng để dự

ron nào có thể thành công trong nhiệm vụ phát hiện lỗ hổng đoán khả năng thiếu sót.

hợp đồng thông minh. Các phương pháp so sánh được tóm tắt
dưới đây. • Vanilla-RNN [58]: Mạng nơ-ron tuần hoàn hai lớp,
lấy chuỗi mã làm đầu vào và phát triển các trạng thái ẩn Để so sánh khả thi, Vanilla-RNN, LSTM và GRU được cung
của nó một cách tuần tự để nắm bắt mẫu tuần tự nằm trong cấp bằng chuỗi mã hàm hợp đồng, được phản hồi dưới dạng
mã. vectơ. GCN, DR-GCN và TMP được trình bày
Machine Translated by Google
GIAO DỊCH IEEE VỀ KIẾN THỨC VÀ KỸ THUẬT DỮ LIỆU 11

với đồ thị chuẩn hóa được trích xuất từ mã nguồn và được yêu , cụ thể là TMP. Những phát hiện tương tự cũng được quan sát.
cầu để phát hiện các lỗ hổng tương ứng. Kết quả thử nghiệm cho thấy rằng các yếu tố của chương trình
Chúng tôi minh họa kết quả của các mô hình khác nhau về độ nên đóng góp rõ ràng vào việc phát hiện lỗ hổng bảo mật hơn là
chính xác, độ thu hồi, độ chính xác và điểm F1 trong Bảng 2, có những đóng góp ngang nhau.
trong khi Hình. 6 (d), (e), và (f) trực quan hóa thêm các kết Ảnh hưởng của mô-đun mẫu bảo mật. Để đánh giá tác dụng của
quả. Thật thú vị, các kết quả thử nghiệm cho thấy rằng Vanilla- mô-đun mẫu bảo mật được đề xuất của chúng tôi, chúng tôi phân
RNN, LSTM và GRU hoạt động tương đối kém hơn so với các phương tích hiệu suất của CGE có và không có mô-đun nhạn bảo mật.
pháp thông thường hiện đại (không học sâu). Ngược lại, các Hướng tới điều này, chúng tôi sửa đổi CGE bằng cách xóa mô-đun
mạng nơ-ron đồ thị GCN, DR-GCN và TMP, có khả năng xử lý đồ trích xuất mẫu chuyên gia, chỉ sử dụng tính năng biểu đồ để
thị, đạt được kết quả tốt hơn đáng kể so với các phương pháp tìm hiểu và phát hiện lỗ hổng. Biến thể này được ký hiệu là CGE-
thông thường. Điều này cho thấy rằng việc coi mã nguồn như một WOE, trong đó WOE là viết tắt của không có mẫu chuyên gia. Các
trình tự một cách mù quáng là không phù hợp cho nhiệm vụ phát phát hiện thực nghiệm được thể hiện trong Bảng 3, trong khi
hiện lỗ hổng bảo mật, trong khi việc lập mô hình mã nguồn thành các đường cong trực quan được minh họa trong Hình 8 (d).
đồ thị và áp dụng mạng nơ-ron đồ thị là đầy hứa hẹn. Chúng tôi Trong Hình 8 (d), đường cong màu đỏ thể hiện độ chính xác của
phỏng đoán rằng việc xử lý mã tuần tự làm mất thông tin có giá CGE qua các kỷ nguyên khác nhau về kiểm tra lỗ hổng gần đây.
trị từ mã hợp đồng thông minh vì chúng bỏ qua thông tin cấu Rõ ràng, chúng ta có thể thấy rằng hiệu suất của CGE luôn vượt
trúc của các chương trình hợp đồng, chẳng hạn như các mối quan trội so với CGE-WOE trong tất cả các kỷ nguyên, cho thấy rằng
hệ luồng dữ liệu và lệnh gọi. Độ chính xác của GCN và DR-GCN việc kết hợp các mẫu bảo mật là cần thiết và quan trọng để cải
thấp hơn TMP, điều này có thể do GCN và DR-GCN không nắm bắt thiện hiệu suất. Kết quả định lượng về cả ba lỗ hổng được trình
được thông tin tạm thời do luồng dữ liệu và luồng điều khiển, bày trong Bảng 3, khẳng định lại kết quả này.
được xem xét rõ ràng trong TMP bằng cách sử dụng các cạnh có
thứ tự. Hơn nữa, chúng tôi cho rằng hiệu suất được cải thiện Chúng tôi cũng tiến hành các thử nghiệm để mở rộng các
của CGE so với TMP là TMP không xem xét các mẫu bảo mật đã biết công trình mạng nơ-ron khác với các mẫu chuyên gia và so sánh
và bỏ qua các biến chính. thực nghiệm các phương pháp này với CGE. Kết quả được minh họa
trong Bảng 4, trong đó '-EP' biểu thị sự kết hợp với các mẫu
chuyên gia. Chúng ta có thể quan sát thấy rằng các mạng nơ-ron
5.5 Nghiên cứu cắt bỏ (RQ4)
kết hợp với các mẫu chuyên gia thực sự đạt được kết quả tốt
Theo mặc định, CGE thông qua mô-đun chuẩn hóa đồ thị để làm nổi hơn so với các mạng nơ-ron thuần túy của chúng. Ví dụ: DR-GCN-
bật các nút cốt lõi trong đồ thị hợp đồng, rất thú vị khi EP cải thiện độ chính xác 4,92% so với DR-GCN ở mức trung bình
nghiên cứu tác động của việc loại bỏ mô-đun này. Hơn nữa, CGE và LSTM-EP cải thiện độ chính xác 6,91% so với LSTM. Những kết
kết hợp một mô-đun trích xuất mẫu chuyên gia và một mô-đun quả này cho thấy hiệu quả của việc kết hợp mạng nơ-ron với các
truyền thông báo để tổng hợp thông tin từ cả các mẫu bảo mật mẫu chuyên gia. Mặt khác, phương pháp đề xuất CGE luôn vượt
và biểu đồ hợp đồng. Sẽ rất hữu ích khi đánh giá những đóng trội hơn các phương pháp tiếp cận khác bao gồm DR-GCN-EP. DR-
góp của hai mô-đun bằng cách xóa chúng khỏi CGE. Cuối cùng, GCN-EP xếp hạng thứ hai trong các phương pháp đã thử nghiệm.
chúng tôi cũng quan tâm đến việc khám phá ảnh hưởng của các
lớp mạng khác nhau trong CGE. Tác dụng của môđun trích xuất tính năng đồ thị hợp đồng.
Sau đây, chúng tôi tiến hành các thí nghiệm để nghiên cứu bốn Chúng tôi nghiên cứu sâu hơn về tác động của mô-đun trích xuất
mô-đun nói trên. fea ture biểu đồ hợp đồng trong CGE bằng cách so sánh nó với
Tác dụng của môđun chuẩn hóa đồ thị. Chúng tôi đã xóa mô- biến thể của nó. Hướng tới điều này, chúng tôi xóa mô-đun xây
đun chuẩn hóa đồ thị (được giới thiệu trong phần phụ 4.2.2) dựng biểu đồ hợp đồng và mô-đun truyền thông điệp tạm thời được
khỏi CGE và so sánh nó với CGE mặc định. đề xuất, trong khi chỉ sử dụng tính năng mẫu bảo mật. Biến thể
Biến thể được ký hiệu là CGE-WON, trong đó WON là viết tắt của mới được ký hiệu là CGE-WOG, cụ thể là CGE không có tính năng
không có chuẩn hóa. Kết quả định lượng được tổng hợp trong Bảng đồ thị hợp đồng. Hình 8 (e) trực quan hóa các kết quả, trong
3. Chúng ta có thể quan sát thấy rằng với giai đoạn chuẩn hóa đó đường cong màu đỏ thể hiện độ chính xác của CGE qua các kỷ
đồ thị được đề xuất, hiệu suất của CGE là bet ter. Ví dụ: đối nguyên khác nhau, trong khi đường cong màu xanh thể hiện độ
với nhiệm vụ phát hiện lỗ hổng bảo mật, mô hình CGE đạt được chính xác của CGE-WOG. Rõ ràng, hiệu suất của CGE luôn tốt hơn
mức cải thiện tương ứng là 2,81% và 2,55% về độ chính xác và so với biến thể của nó trong tất cả các kỷ nguyên. Kết quả định
điểm F1. lượng được trình bày thêm trong Bảng 3, trong đó cả ba điểm
Hình 8 (a) & (b) & (c) vẽ thêm các đường cong ROC của CGE yếu đều có liên quan. Kết quả, cùng với kết quả thử nghiệm trên
và CGE-WON. Chúng tôi áp dụng phân tích tic đặc tính hoạt động CGE-WOE, cho thấy rằng tính năng biểu đồ hợp đồng góp phần tăng
của máy thu (ROC) để chỉ ra tác động của mô-đun i hóa thông hiệu suất đáng kể trong CGE và dẫn đến mức tăng cao hơn so với
thường của đồ thị. AUC (diện tích dưới đường cong) được sử tính năng mẫu bảo mật.
dụng làm thước đo cho hiệu suất, AUC càng cao càng tốt cho mỗi
formance. Hình 8 (a) chứng minh rằng CGE hoạt động tốt hơn Ảnh hưởng của các mạng kết hợp tính năng khác nhau. Khi

trong nhiệm vụ phát hiện lần truy cập gần đây, AUC tăng 0,03 các tính năng mẫu bảo mật com bining và các tính năng đồ thị
với mô-đun chuẩn hóa đồ thị. Trong nhiệm vụ phát hiện sự phụ hợp đồng, CGE sử dụng mạng nơ-ron với lớp tích chập và lớp tổng
thuộc vào dấu thời gian, CGE đạt được sự cải thiện 0,03 trong hợp tối đa, tiếp theo là 3 lớp được kết nối đầy đủ và lớp
AUC (được hiển thị trong Hình 8 (b)). Trong nhiệm vụ phát hiện sigmoid. Để xác minh kiến trúc mạng này, chúng tôi cũng nghiên
vòng lặp vô hạn, CGE đạt được sự cải thiện 0,04 trong AUC (được cứu năm lựa chọn thay thế khác. Đầu tiên, chúng tôi thay thế
hiển thị trong Hình 8 (c)). Trong các hình, chúng tôi cũng lớp tích lũy và tối đa bằng một lớp được kết nối đầy đủ, mà
chúng
chứng minh hiệu quả của việc loại bỏ mô-đun chuẩn hóa đồ thị của một tôi khác
mô-đun ký hiệu là CGE (FC). Chúng tôi cũng thử thay thế
Machine Translated by Google
GIAO DỊCH IEEE VỀ KIẾN THỨC VÀ KỸ THUẬT DỮ LIỆU 12

Gần đây Sự phụ thuộc vào dấu thời gian Vòng lặp vô hạn
Số liệu
CGE-WOG CGE-WOE CGE-WON CGE CGE-WOG CGE-WOE CGE-WON CGE-WOG CGE-WOE CGE-WON CGE

Acc (%) 82,09 84,42 86,34 89,15 81,30 83,52 86,61 89,02 72,23 74,68 79,51 83,21

Hồi tưởng(%) 80,18 82,65 84,38 87,62 80,68 82,89 84,06 88.10 70,08 74,21 77,14 82,29

Độ chính xác(%) 72,15 78,94 83,35 85,24 78,42 80,16 83,90 87,41 71,44 73,86 76,26 81,97

F1 (%) 75,95 80,75 83,86 86,41 79,53 81,50 83,98 87,75 70,75 74,03 76,70 82,13

BẢNG 3 So sánh độ chính xác giữa CGE và các biến thể của nó trong ba nhiệm vụ phát hiện lỗ hổng.

Gần đây Sự phụ thuộc vào dấu thời gian Vòng lặp vô hạn
Các biến thể

Acc (%) Nhớ lại (%) Độ chính xác (%) F1 (%) Acc (%) Nhớ lại (%) Độ chính xác (%) F1 (%) Acc (%) Nhớ lại (%) Độ chính xác (%) F1 (%)

Vanilla-RNN-EP 56.06 LSTM-EP 60,24 58,21 59,20 54,58 49,65 59,35 54,07 54,72 52,62 49,94 51,24
60.15 GRU-EP 62.08 GCN-EP DR-GCN-
80.96 72,26 58,68 64,77 59,82 63,38 58,28 56,29 56,52 59,98 49,75 54,39
EP 85.14 75,01 60,13 66,75 61,22 64,18 58,45 61,18 57,09 60,54 49,81 54,65
81,05 76,84 78,89 79,32 79,94 73,65 76,67 70,06 69,81 64,29 66,94
84,12 79,38 81,68 83,74 84,02 80,59 82,27 74,36 73,08 69,45 71,22

CGE (LSTM) 86,74 85,18 82,85 84,00 87,92 85,08 87,13 86,09 79,18 78,25 76,80 77,52

CGE (FC) 87,64 85,74 82,97 84,33 88,12 87,98 85,04 86,49 80,62 78,96 77,24 78.09

CGE (1-FC) 88,54 86,12 83,80 84,94 86,62 87,82 81,73 84,66 81,43 81,25 80,98 81,11

CGE (2-FC) 88,89 86,47 84,51 85,48 87,05 84,96 85,02 84,98 81,82 81,76 80,54 81.15

CGE (AP) 88,02 85,92 83,45 84,67 85,25 85,16 81,84 83,47 79,53 78,58 76,94 77,75
CGE 89,15 87,62 85,24 86,41 89,02 88,10 87,41 87,75 83,21 82,29 81,97 82,13

BẢNG 4 Phía trên: So sánh hiệu suất giữa CGE và các mạng nơ-ron khác kết hợp với các mẫu chuyên gia.

'-EP' biểu thị sự kết hợp với các mẫu chuyên gia. Thấp hơn: So sánh với các kiến trúc mạng kết hợp tính năng khác.

1,0 1,0 1,0 1,0 1,0

0,8 0,8 0,8 0,8 0,8

0,6 0,6 0,6 chính


xác
Sự
0,6 chính
xác
Sự
0,6

Thực
Tích
cực
sự
lệ
Tỷ Thực
Tích
cực
sự
lệ
Tỷ Thực
Tích
cực
sự
lệ
Tỷ

0,4 0,4 0,4 0,4 0,4


TMP-WON (AUC = 0,81) TMP-WON (AUC = 0,79) TMP-WON (AUC = 0,70)
TMP (AUC = 0,86) TMP (AUC = 0,82) TMP (AUC = 0,75)
0,2 0,2 0,2 0,2 CGE-WOE 0,2 CGE-WOG
CGE-WON (AUC = 0,88) CGE-WON (AUC = 0,89) CGE-WON (AUC = 0,81)
CGE CGE
CGE (AUC = 0,91) CGE (AUC = 0,92) CGE (AUC = 0,85)
0,0 0,0 0,0 0,0 0,0
0,0 0,2 0,4 0,6 Tỷ 0,8 1,0 0,0 0,2 0,4 0,6 Tỷ 0,8 1,0 0,0 0,2 0,4 0,6 Tỷ 0,8 1,0 0 50 100 150 0 50 100 150
lệ dương tính Sai lệ dương tính Sai lệ dương tính Sai Epoch Epoch
(a) Sự gần gũi (b) Sự phụ thuộc vào dấu thời gian (c) Vòng lặp vô hạn (d) Nghiên cứu độ chính xác trên mô-đun mẫu bảo mật (e) Nghiên cứu độ chính xác trên mô-đun tính năng đồ thị

Hình 8 So sánh các đường cong: (a), (b) và (c) trình bày phân tích ROC của mô-đun chuẩn hóa đồ thị cho TMP, CGE và

các biến thể của chúng trong ba nhiệm vụ phát hiện lỗ hổng bảo mật, trong đó AUC là viết tắt của khu vực dưới đường cong. Trong (d), hai

đường cong nghiên cứu ảnh hưởng của việc loại bỏ mô-đun trích xuất mẫu bảo mật, trong khi (e) trình bày nghiên cứu về việc loại bỏ

mô-đun trích xuất tính năng đồ thị hợp đồng.

chúng với một lớp LSTM, mà chúng tôi gọi là CGE (LSTM). block.timestamp là duy nhất và được thiết kế đặc biệt thông minh

Sau đó, chúng tôi giữ lớp tích lũy và lớp tổng hợp tối đa, nhưng hợp đồng. Chúng tôi triển khai một công cụ nguồn mở để phân tích

thay đổi 3 lớp được kết nối đầy đủ thành 1 hoặc 2 lớp được kết nối đầy đủ cú pháp cụ thể của các câu lệnh hợp đồng thông minh. Chúng tôi cũng dùng

các lớp. Hai biến thể được ký hiệu là CGE (1-FC) và các nút cốt lõi để tượng trưng cho các lời gọi và các biến một cách chặt chẽ

CGE (2-FC), tương ứng. Cuối cùng, chúng tôi khám phá việc thay thế liên quan đến một lỗ hổng cụ thể và đại diện cho các ables và lời gọi

lớp tổng hợp tối đa với lớp tổng hợp trung bình, cụ thể là biến thể khác dưới dạng các nút bình thường. Chúng tôi muốn

CGE (AP), trong khi vẫn giữ cố định các lớp khác. Kinh nghiệm chỉ ra rằng có một cơ chế dự phòng duy nhất trong
kết quả được minh họa trong Bảng 4. Kết quả cho thấy: 1) hợp đồng thông minh, khác với các chương trình khác
Các kiến trúc RNN như LSTM không phù hợp với ngôn ngữ. Trong biểu đồ hợp đồng, chúng tôi xây dựng một nút dự phòng

nhiệm vụ tổng hợp tính năng, 2) cài đặt mặc định của CGE mang lại để kích thích chức năng dự phòng của hợp đồng tấn công ảo,

kết quả tốt hơn năm lựa chọn thay thế và 3) sử dụng mức trung bình có thể tương tác với chức năng đang thử nghiệm.

gộp hoặc thay đổi số lượng các lớp được kết nối đầy đủ
Các cuộc thảo luận trên đồ thị hợp đồng. Nỗ lực hiện tại
dẫn đến hiệu suất giảm nhẹ.
đã thông qua biểu đồ luồng điều khiển, biểu đồ thuộc tính mã và cây cú

pháp ab stract để biểu diễn mã chương trình. Sự khác biệt


6 THẢO LUẬN
giữa chúng và đồ thị hợp đồng của chúng tôi có thể được tóm tắt
Đặc biệt của phương pháp của chúng tôi trong việc xử lý các hợp đồng thông minh. như: (i) Biểu đồ luồng điều khiển sử dụng một nút để lập mô hình cơ bản

Khác biệt với các chương trình thông thường chỉ sử dụng khối, tức là một đoạn mã thẳng không có bất kỳ bước nhảy nào và

Tài nguyên CPU, người dùng phải trả phí để thực hiện từng sử dụng các cạnh để biểu diễn các bước nhảy [61]. Họ tập trung chủ yếu

dòng mã hợp đồng thông minh. Phí xấp xỉ theo tỷ lệ số lượng mã cần chạy trên các bước nhảy trên đường dẫn thực thi và có xu hướng xem xét từng nút

và được tham chiếu có tầm quan trọng như nhau. (ii) Đồ thị thuộc tính mã [62, 63]

như khí. Do đó, trong phương pháp đề xuất, chúng tôi đã nghiên cứu mô hình hóa các câu lệnh dưới dạng các nút và đại diện cho điều khiển

lỗ hổng vòng lặp vô hạn vì một vòng lặp vô hạn sẽ tiêu thụ luồng giữa các câu lệnh dưới dạng các cạnh. (iii) Cây cú pháp trừu tượng

rất nhiều xăng nhưng tiêu thụ hết ga một cách vô ích. Đây là [64, 65] thông qua một biểu diễn dạng cây của cú pháp trừu tượng

bởi vì vòng lặp vô hạn không thể thay đổi bất kỳ trạng thái nào (bất kỳ cấu trúc mã nguồn dựa trên cấu trúc cây

thực hiện mà hết xăng thì bị hủy bỏ). Hơn nữa, và gặp khó khăn trong việc mô tả đầy đủ thông tin seman tic phong phú

thư viện chức năng của hợp đồng thông minh và chương trình khác giữa các nút. (iv) Trong biểu đồ hợp đồng của chúng tôi,

ngôn ngữ khá khác nhau. Ví dụ: call.value và các nút được sử dụng để mô hình hóa các biến và lời gọi liên quan đến
Machine Translated by Google
GIAO DỊCH IEEE VỀ KIẾN THỨC VÀ KỸ THUẬT DỮ LIỆU 13

đến một lỗ hổng cụ thể và được phân loại thành các loại khác [13] “Hợp đồng thông minh The Dao,” Trang web, 2016, http://etherscan.io/
địa chỉ / 0xbb9bc244d798123fde783fcc1c72d3bb8c189413.
nhau, tức là các nút lõi, các nút bình thường và các nút dự
[14] “Vua của ether”, Webiste, 2016, https: //www.kingoftheether. com /
phòng. Chúng tôi cũng lập mô hình rõ ràng thứ tự của các cạnh
postmortem.html.
theo thứ tự thời gian của chúng trong mã và xem xét cơ chế dự [15] “Tìm hiểu sâu về lỗi đa ký tự chẵn lẻ”, Trang web, 2017, http: //
phòng cụ thể của các hợp đồng thông minh. hackxingdistributed.com/2017/07/22/deep-dive-parity-bug.
[16] S. Tikhomirov, E. Voskresenskaya, I. Ivanitskiy, R. Takhaviev, E.
Marchenko và Y. Alexandrov, “Smartcheck: Phân tích tĩnh hợp đồng thông
7 KẾT LUẬN VÀ CÔNG VIỆC TƯƠNG LAI
minh ethereum,” trong WETSEB, 2018, trang 9–16.
[17] B. Jiang, Y. Liu và W. Chan, “Contractfuzzer: Fuzzing hợp đồng thông minh
Trong bài báo này, chúng tôi đã đề xuất một cách tiếp cận hoàn
để phát hiện lỗ hổng”, trong Kỷ yếu của ASE, 2018, trang 259–269.
toàn tự động để phát hiện lỗ hổng hợp đồng thông minh ở cấp độ
chức năng. Ngược lại với các cách tiếp cận hiện có, chúng tôi [18] P. Tsankov, A. Dan, D. Drachsler-Cohen, A. Gervais, F. Buenzli và M.

kết hợp cả các mẫu chuyên gia và ngữ nghĩa biểu đồ hợp đồng, Vechev, “Securify: Phân tích bảo mật thực tế của các hợp đồng thông
minh,” trong Kỷ yếu của CCS, 2018, pp . 67–82.
xem xét sự phụ thuộc phong phú giữa các phần tử chương trình
[19] P. Qian, Z. Liu, Q. He, R. Zimmermann và X. Wang, “Hướng tới phát hiện
và mô hình hóa rõ ràng cơ chế dự phòng của hợp đồng thông minh.
lần truy cập gần đây tự động cho các hợp đồng thông minh dựa trên các mô
Chúng tôi cũng khám phá khả năng sử dụng mạng nơ-ron biểu đồ hình tuần tự,” IEEE Access, vol. 8, trang 19 685–19 695, 2020.
[20] Y. Zhuang, Z. Liu, P. Qian, Q. Liu, X. Wang và Q. He, “Phát hiện lỗ hổng
mới để tìm hiểu tính năng biểu đồ từ biểu đồ hợp đồng, chứa
bảo mật hợp đồng thông minh bằng cách sử dụng mạng nơ ron biểu đồ” trong
nhiều ngữ nghĩa điều khiển và luồng dữ liệu. Các thử nghiệm mở
Kỷ yếu của IJCAI-20, 7 2020, trang 3283–3290.
rộng được tiến hành, cho thấy rằng phương pháp của chúng tôi [21] WJ Tann, XJ Han, SS Gupta và Y. Ong, “Hướng tới các hợp đồng thông minh

vượt trội đáng kể so với các công cụ xác định lỗ hổng bảo mật an toàn hơn: Phương pháp học trình tự để phát hiện các mối quan hệ lỗ
hổng”, CoRR, 2018.
hiện đại và các phương pháp dựa trên mạng nơ-ron khác. Chúng
[22] K. Bhargavan, A. Delignat-Lavaud, C. Fournet, A. Gollamudi, G. Gonthier,
tôi tin rằng công việc của chúng tôi là một bước quan trọng N. Kobeissi, N. Kulatova, A. Rastogi, T. Sibut-Pinote, N. Swamy và cộng
nhằm tiết lộ tiềm năng của việc kết hợp học sâu với các mô hình sự, “Xác minh chính thức các hợp đồng thông minh: Bài báo ngắn” trong Kỷ
yếu Hội thảo ACM 2016 về Ngôn ngữ lập trình và Phân tích cho Bảo mật,
thông thường trong các nhiệm vụ phát hiện lỗ hổng trong hợp
2016, trang 91–96.
đồng thông minh. Đối với công việc trong tương lai, chúng tôi [23] I. Grishchenko, M. Maffei và C. Schneidewind, “Khung ngữ nghĩa để phân
sẽ điều tra khả năng mở rộng phương pháp này cho các hợp đồng tích bảo mật của các hợp đồng thông minh ethereum,” trong Hội nghị Quốc

thông minh chỉ có bytecode và khám phá kiến trúc này trên nhiều lỗ hổngtếkhác.
về Nguyên tắc Bảo mật và Tin cậy, 2018, trang 243–269.

[24] E. Hildenbrandt, M. Saxena, N. Rodrigues, X. Zhu, P. Daian, D. Guth, B.


SỰ NHÌN NHẬN
Moore, D. Park, Y. Zhang, A. Stefanescu và cộng sự, “Kevm: A hoàn chỉnh
ngữ nghĩa chính thức của máy ảo ethereum, ”trong CSF, 2018, trang 204–217.
Bài báo này được hỗ trợ bởi Tổ chức Khoa học Tự nhiên tỉnh
Chiết Giang, Trung Quốc (Số tài trợ LQ19F020001), Quỹ Khoa học [25] Y. Hirai, “Định nghĩa máy ảo ethereum cho các trình duyệt định lý tương
Tự nhiên Quốc gia Trung Quốc (Số 61902348, 61802345) và Chương tác,” trong Hội nghị Quốc tế về Cryptog tài chính và Bảo mật Dữ liệu,
2017, trang 520–535.
trình Nghiên cứu của Phòng thí nghiệm Chiết Giang (2019KD0AC02). ´
[26] I. Nikolic, A. Kolluri, I. Sergey, P. Saxena và A. Hobor, “Tìm kiếm các
hợp đồng tham lam, hoang đàng và tự sát trên quy mô lớn,” trong Hội nghị
ứng dụng bảo mật máy tính hàng năm, 2018, trang 653 –663.
[27] S. Kalra, S. Goel, M. Dhawan và S. Sharma, “Zeus: Phân tích độ an toàn
TÀI LIỆU THAM KHẢO
của hợp đồng thông minh,” trong NDSS, 2018.
[1] TTA Dinh, J. Wang, G. Chen, R. Liu, BC Ooi, and K.-L. Tan, “Blockbench: [28] C. Liu, H. Liu, Z. Cao, Z. Chen, B. Chen và B. Roscoe, “Reguard: tìm ra
Một khuôn khổ để phân tích các blockchain riêng tư,” trong ICMD, 2017, lỗi gần đây trong hợp đồng thông minh,” trong Kỷ yếu của ICSE, 2018,
trang 1085–1100. trang 65 –68.
[2] D. Yaga, P. Mell, N. Roby và K. Scarfone, “Tổng quan về công nghệ chuỗi [29] M. Rodler, W. Li, GO Karame và L. Davi, “Sereum: Bảo vệ các hợp đồng
khối”, arXiv preprint arXiv: 1906.11078, 2019. thông minh hiện có chống lại các cuộc tấn công tái nghiện,” trong Kỷ yếu
[3] C. Badertscher, U. Maurer, D. Tschudi và V. Zikas, “Bitcoin như một sổ cái của NDSS, 2019.
giao dịch: Một phương pháp điều trị có thể kết hợp,” trong Hội nghị mật [30] W. Wang, J. Song, G. Xu, Y. Li, H. Wang và C. Su, “Contractward: Các mô
mã quốc tế thường niên, 2017, trang 324–356. hình phát hiện lỗ hổng tự động cho các hợp đồng thông minh ethereum,”
[4] M. Dhawan, “Phân tích độ an toàn của các hợp đồng thông minh,” trong Kỷ TNSE, 2020.
yếu của NDSS, 2017, trang 16–17. [31] N. Atzei, M. Bartoletti và T. Cimoli, “Một cuộc khảo sát về các cuộc tấn
[5] M. Tsikhanovich, M. Magdon-Ismail, M. Ishaq và V. Zikas, “Pd-ml-lite: Máy công vào các hợp đồng thông minh ethereum (sok),” trong Hội nghị Quốc tế
học phân tán riêng từ mật mã lighweight,” arXiv preprint arXiv: về Nguyên tắc Bảo mật và Tin cậy, 2017, trang 164–186.
1901.07986, 2019. [32] M. Zhang, Z. Cui, M. Neumann và Y. Chen, “Một kiến trúc học sâu end-to-
[6] TTA Dinh, R. Liu, M. Zhang, G. Chen, BC Ooi, và J. Wang, “Untangling end để phân loại đồ thị,” trong AAAI, 2018.
blockchain: Một quan điểm xử lý dữ liệu của các hệ thống blockchain,” [33] H. Wang, P. Zhang, X. Zhu, IW-H. Tsang, L. Chen, C. Zhang, và X. Wu, “Lựa
Giao dịch IEEE về Kiến thức và Kỹ thuật Dữ liệu, vol. 30, không. 7, trang chọn tính năng đồ thị con tăng dần để phân loại nhóm đồ thị,” Giao dịch
1366–1385, 2018. IEEE về Kiến thức và Kỹ thuật Dữ liệu, tập. 29, không. 1, trang 128–142,
[7] LS Sankar, M. Sindhu và M. Sethumadhavan, “Khảo sát các giao thức đồng 2016.
thuận trên các ứng dụng blockchain,” trong Kỷ yếu của ICACCS, 2017, trang [34] Y. Zhou, S. Liu, J. Siow, X. Du và Y. Liu, “Devign: Nhận dạng lỗ hổng bảo
1–5. mật hiệu quả bằng cách học ngữ nghĩa chương trình toàn diện thông qua
[8] L. Luu, D.-H. Chu, H. Olickel, P. Saxena và A. Hobor, “Tạo hợp đồng thông mạng nơron đồ thị,” trong Những tiến bộ trong Hệ thống xử lý thông tin
minh thông minh hơn” trong CCS, 2016, trang 254–269. thần kinh, 2019 , trang 10 197–10 207.
[9] AM Antonopoulos và G. Wood, Làm chủ ethereum: xây dựng hợp đồng thông minh [35] M. Allamanis, M. Brockschmidt và M. Khademi, “Học cách biểu diễn các
và dapps, 2018. chương trình bằng biểu đồ,” trong Hội nghị Quốc tế về Biểu diễn trong
[10] A. Bahga và VK Madisetti, “Nền tảng chuỗi khối cho internet vạn vật công Học tập (ICLR), 2018.
nghiệp”, Tạp chí Kỹ thuật Phần mềm và Ứng dụng, vol. 9, không. 10, tr. [36] H. Cai, VW Zheng, và KC-C. Chang, “Một cách toàn diện về nhúng đồ thị:
533 năm 2016. Các vấn đề, kỹ thuật và ứng dụng,”
[11] V. Buterin và cộng sự, “Hợp đồng thông minh thế hệ tiếp theo và nền tảng ứng dụng Giao dịch IEEE về Kiến thức và Kỹ thuật Dữ liệu, vol. 30, không. 9, trang
được đánh giá phi đạo đức”, white paper, vol. 3, tr. Ngày 37 năm 2014. 1616–1637, 2018.
[12] J. Kokina, R. Mancha và D. Pachamanova, “Blockchain: Sự chấp nhận của [37] TN Kipf và M. Welling, “Phân loại bán giám sát với mạng tích tụ đồ thị,”
ngành công nghiệp nhẹ nhàng hơn và những tác động đối với kế toán,” Tạp trong Kỷ yếu của ICLR, 2017.
chí Các công nghệ mới nổi trong kế toán, vol. 14, không. 2, trang 91–100, [38] M. Defferrard, X. Bresson, và P. Vandergheynst, “Hợp hiến
năm 2017.
Machine Translated by Google
GIAO DỊCH IEEE VỀ KIẾN THỨC VÀ KỸ THUẬT DỮ LIỆU 14

mạng nơ-ron trên đồ thị với khả năng lọc quang phổ cục bộ nhanh chóng, Tình báo, quyển kinh. 30, không. 1 năm 2016.

”trong Những tiến bộ trong hệ thống xử lý thông tin thần kinh, 2016, trang 3844–[65] J. Zhang, X. Wang, H. Zhang, H. Sun, K. Wang và X. Liu, “Một cách biểu diễn
3852. mã nguồn thần kinh mới dựa trên cây cú pháp trừu tượng,” trong Hội nghị
[39] X. Zhou, F. Shen, L. Liu, W. Liu, L. Nie, Y. Yang, và HT quốc tế lần thứ 41 IEEE / ACM năm 2019 về Kỹ thuật phần mềm (ICSE). IEEE,
Shen, “Hàm băm mạng tích hợp đồ thị”, các giao dịch IEEE trên điều khiển 2019, trang 783–794.
học, 2018.
[40] Y. Wei, X. Wang, L. Nie, X. He, R. Hong, và T.-S. Chua, “Mmgcn: Mạng tích
Zhenguang Liu hiện là giáo sư của Đại học Zhe jiang
chập đồ thị đa phương thức để cải thiện video vi mô được cá nhân hóa”,
Gongshang. Anh ấy đã từng là một thành viên tìm kiếm
trong Kỷ yếu của ACM MM lần thứ 27, 2019, trang 1437–1445.
lại ở Đại học Quốc gia Singapore và A * STAR. Ông lần
lượt nhận bằng Tiến sĩ. và bằng BE của Đại học Chiết
[41] R. Li, S. Wang, F. Zhu, và J. Huang, “Mạng nơ ron tional dạng biểu đồ thích
Giang và Đại học Sơn Đông, Trung Quốc. Các nghiên cứu
ứng”, trong AAAI, 2018.
của ông bao gồm bảo mật hợp đồng thông minh và phân
[42] A. Micheli, “Mạng nơ-ron cho đồ thị: Một cách tiếp cận xây dựng theo ngữ
tích dữ liệu đa phương tiện. Tiến sĩ Liu đã từng là
cảnh,” Giao dịch IEEE trên Mạng nơ-ron, tập. 20, không. 3, trang 498–511,
thành viên ủy ban chương trình kỹ thuật cho các hội
2009.
´ nghị như ACM MM, CVPR, AAAI, IJCAI và ICCV, chủ tọa
[43] P. Velickovi ˇ c, G. Cucurull, A. Casanova, A. Romero, P. Lio và Y. Bengio,
phiên họp của ICGIP, chủ tịch địa phương của KSEM, và
“Mạng chú ý đồ thị”, arXiv preprint arXiv: 1710.10903, 2017. người đánh giá cho IEEE TVCG, IEEE TPDS, ACM TOMM,
v.v. .
[44] J. Zhang, X. Shi, J. Xie, H. Ma, I. King, và D.-Y. Yeung, “Gaan: Mạng lưới
chú ý được thu hút để học trên đồ thị lớn và không gian”, arXiv preprint
Peng Qian đã nhận bằng cử nhân kỹ thuật phần mềm của
arXiv: 1803.07294, 2018.
Đại học Yangtze, Thạc sĩ khoa học máy tính tại Đại học
[45] J. Gilmer, SS Schoenholz, PF Riley, O. Vinyals, và GE Dahl, “Truyền thông
Chiết Giang Gong shang, vào năm 2018 và 2021. Anh ấy
điệp thần kinh cho hóa học lượng tử,” trong Kỷ yếu của ICML, 2017, trang
hoàn toàn đang theo đuổi một bằng Tiến sĩ. tại Đại học
1263–1272.
Chiết Giang.
[46] X. Xu, C. Liu, Q. Feng, H. Yin, L. Song và D. Song, “Nhúng đồ thị dựa trên
Các mối quan tâm nghiên cứu của anh ấy bao gồm
mạng nơ ron để phát hiện sự tương tự mã nhị phân trên nhiều nền tảng,”
blockchain secu rity, mạng thần kinh biểu đồ và học sâu.
trong CCS, 2017, trang 363–376.
[47] S. Shen, S. Shinde, S. Ramesh, A. Roychoudhury và P. Saxena, “Thực thi biểu
tượng thần kinh: Tăng cường thực hiện biểu tượng với các ràng buộc thần
kinh.” trong Kỷ yếu NDSS, 2019.
[48] RA Rossi, R. Zhou và N. Ahmed, “Học cách biểu diễn đồ thị quy nạp sâu”, Giao
dịch IEEE về Kiến thức và Kỹ thuật Dữ liệu, 2018. Xiaoyang Wang đã nhận bằng cử nhân và thạc sĩ khoa
học máy tính tại Đại học Northeastern, Trung Quốc, vào
[49] “Etherscan,” Trang web, 2015, https://etherscan.io/. năm 2010 và 2012, và bằng Tiến sĩ từ Đại học New South
[50] Trang web “Vntchain”, 2018, https://github.com/vntchain/go-vnt. Wales, Úc, vào năm 2016. Anh là giáo sư tại Chiết
[51] Trang web “Ethereum”, 2015, https://github.com/ethereum/ go-ethereum. Giang Gongshang Đại học, Hàng Châu, Trung Quốc. Mối
quan tâm nghiên cứu của anh ấy bao gồm xử lý truy vấn
[52] B. Mueller, “Một khuôn khổ để săn lỗi trên blockchain ethereum,” Webiste, trên dữ liệu đồ thị lớn.
2017, https://github.com/ConsenSys/ mythril.

[53] J. Feist, G. Grieco và A. Groce, “Slither: khung phân tích tĩnh hoạt động
cho các hợp đồng thông minh,” trong WETSEB, 2019, trang 8–15.
[54] M. Carbin, S. Misailovic, M. Kling, và MC Rinard, “Phát hiện và thoát khỏi
các vòng lặp vô hạn với jolt,” trong Hội nghị Châu Âu về Lập trình Hướng Yuan Zhuang nhận bằng Tiến sĩ tại Đại học Khoa học

Đối tượng, 2011, trang 609–633. Máy tính và Công nghệ (CCST), Đại học Cát Lâm, Trung

[55] M. Kling, S. Misailovic, M. Carbin và M. Rinard, “Bolt: theo yêu cầu thoát Quốc. Các mối quan tâm nghiên cứu của cô ấy bao gồm

vòng lặp vô hạn trong các mã nhị phân không sửa đổi,” ACM SIG PLAN Notices, bảo mật blockchain, máy học, xử lý dữ liệu lớn và máy

vol. 47, không. 10, trang 431–450, 2012. tính phân tán

[56] A. Ibing và A. Mai, “Một thuật toán điểm cố định để phát hiện tĩnh tự động
các vòng lặp vô hạn,” trong Hội nghị chuyên đề quốc tế lần thứ 16 của IEEE
về Kỹ thuật hệ thống đảm bảo cao, 2015, trang 44–51.
[57] J. Burnim, N. Jalbert, C. Stergiou và K. Sen, “Looper: Phát hiện nhẹ các
vòng lặp vô hạn trong thời gian chạy,” trong Kỷ yếu của ASE, 2009, trang
161–169.
[58] C. Goller và A. Kuchler, “Học các biểu diễn phân tán phụ thuộc vào nhiệm vụ
Lin Qiu là ứng viên Tiến sĩ tại Khoa Hệ thống Thông
bằng cách nhân giống ngược thông qua cấu trúc,” trong Pro ceedings của
tin và Phân tích, Đại học Quốc gia Singapore,
ICNN, vol. 1, 1996, trang 347–352.
Singapore. Trước đó, cô đã lấy bằng cử nhân tại Đại
[59] H. Sak, A. Senior, và F. Beaufays, “Kiến trúc mạng nơ-ron tái phát bộ nhớ
học Hạ Môn, Trung Quốc. Sở thích nghiên cứu của cô ấy
ngắn hạn dài hạn cho mô hình âm thanh quy mô lớn,” trong hội nghị thường
là học sâu, chăm sóc sức khỏe và blockchain.
niên lần thứ mười lăm của hiệp hội giao tiếp ngôn ngữ quốc tế, năm 2014.

[60] J. Chung, C. Gulcehre, K. Cho và Y. Bengio, “Đánh giá thực nghiệm của mạng
nơ-ron tái phát định kỳ trên mô hình trình tự,” arXiv preprint arXiv:
1412.3555, 2014.
[61] AV Phan, M. Le Nguyen, và LT Bui, “Mạng nơ-ron phù hợp trên đồ thị luồng
điều khiển để dự đoán lỗi phần mềm,” trong Hội nghị quốc tế lần thứ 29 IEEE
về các công cụ với trí tuệ nhân tạo (ICTAI). IEEE, 2017, trang 45–52. Xun Wang hiện là giáo sư tại Trường Khoa học Máy tính
và Kỹ sư Thông tin ing, Đại học Chiết Giang Gongshang,
[62] F. Yamaguchi, N. Golde, D. Arp và K. Rieck, “Lập mô hình và phát hiện các Trung Quốc. Ông nhận bằng Cử nhân cơ khí, Tiến sĩ.
lỗ hổng bằng biểu đồ thuộc tính mã” trong Hội nghị chuyên đề IEEE về Bảo bằng về khoa học máy tính, tất cả đều từ trường Đại
mật và Quyền riêng tư năm 2014. IEEE, 2014, trang 590–604. học Chiết Giang, Trung Quốc, lần lượt vào năm 1990 và
[63] S. Suneja, Y. Zheng, Y. Zhuang, J. Laredo, và A. Morari, “Học cách ánh xạ 2006. Sở thích nghiên cứu của ông bao gồm xử lý thông
mã nguồn đến lỗ hổng phần mềm bằng cách sử dụng mã dưới dạng biểu đồ,” tin thông minh và thị giác máy tính. Anh ấy đã đăng
arXiv preprint arXiv: 2006.08614, 2020. hơn 100 bài báo trong các tạp chí và hội nghị chất
[64] L. Mou, G. Li, L. Zhang, T. Wang và Z. Jin, “Mạng nơ-ron hợp pháp trên cấu lượng cao. Anh ấy là thành viên của IEEE và ACM, đồng
trúc cây để xử lý ngôn ngữ lập trình,” trong Kỷ yếu của Hội nghị AAAI về thời là thành viên ưu tú của CCF.

Nhân tạo

You might also like