BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Trang chủ
AI AI
Tin nhanh
Bài viết
Sự kiện
BlockBeats Pro
Thêm
Thông tin tài chính
Chuyên đề
Hệ sinh thái chuỗi khối
Mục nhập
Podcast
Data
OPRR
Partnered With:

Robot chênh lệch giá trong Mempool, siêu săn mồi trong khu rừng tối tăm của Ethereum

Đọc bài viết này mất 25 phút
Ai cũng biết rằng chuỗi khối Ethereum là một môi trường đầy khủng hoảng. Nếu bạn có thể kiếm tiền bằng cách nắm bắt những sơ hở trong một hợp đồng thông minh nhất định thì sẽ luôn có người làm điều đó. Tần suất xảy ra các vụ hack mới cho thấy một số người rất thông minh đã dành nhiều thời gian để tìm kiếm những hợp đồng dễ bị tấn công.

Tác giả gốc: Dan Robinson và Đối tác nghiên cứu mô hình Georgios Konstantopoulos

Bản dịch: Perry Wang


Đây là một câu chuyện kinh dị.


Thử thách


Giống như một người bình thường, tôi dành nhiều thời gian cho kênh #support trên Uniswap Discord. (Tiết lộ: Uniswap là một trong những công ty mà Paradigm đã đầu tư vào.)


Chiều thứ Tư, có người hỏi: Nếu mã thông báo bị gửi nhầm đến cặp giao dịch mã thông báo của chính hợp đồng thông minh, liệu có thể lấy lại mã thông báo không?


Suy nghĩ ban đầu của tôi là những token này sẽ bị khóa vĩnh viễn. Nhưng đến khuya hôm đó, tôi chợt nhận ra rằng nếu những đồng tiền đó vẫn còn ở đó thì bất cứ ai cũng có thể lấy đi chúng.

真实存在的以太坊 DeFi「黑暗森林」:mempool 套利机器人吞噬了我的交易


Khi bất kỳ ai gọi hàm ghi trên hợp đồng lõi Uniswap, hợp đồng sẽ tự đo lưu lượng hiện tại của nó số dư mã thông báo bị đốt cháy  và mã thông báo đã rút sẽ được trả về địa chỉ do người gọi chỉ định. Đây là phần cốt lõi trong hoạt động dự kiến của Uniswap v2 (cơ chế cơ bản được mô tả trong Chương 3, Phần 2 của sách trắng Uniswap v2).


Tôi đã tìm thấy hợp đồng. Mã thông báo thanh khoản vẫn tồn tại và trị giá khoảng 12.000 USD.


Điều này có nghĩa là ba điều:


-Có một chiếc đồng hồ đang tích tắc. Ngay cả khi không ai khác nhận thấy số tiền miễn phí, bất kỳ ai cũng có thể rút thanh khoản của mình bất kỳ lúc nào và nhận mã thông báo từ hợp đồng một cách bất ngờ.

-Tôi có thể đóng vai một hacker mũ trắng và cố gắng khôi phục mã thông báo cho người đã gửi nhầm chúng đến hợp đồng Uniswap . Rất đơn giản, chỉ cần gọi hàm ghi trong nhóm và chuyển mã thông báo đến địa chỉ của chính bạn.

-Trừ khi... tôi biết nó không đơn giản như vậy.


Khu rừng tối


Như chúng ta đã biết, chuỗi khối Ethereum là một môi trường đầy khủng hoảng. Nếu bạn có thể kiếm tiền bằng cách nắm bắt những sơ hở trong một hợp đồng thông minh nhất định thì sẽ luôn có người làm điều đó. Tần suất xảy ra các vụ hack mới cho thấy một số người rất thông minh đã dành nhiều thời gian để tìm kiếm những hợp đồng dễ bị tấn công.


Nhưng môi trường nguy hiểm này chẳng là gì so với mempool (tập hợp các giao dịch đang chờ xử lý, chưa được xác nhận). Nếu bản thân blockchain là một chiến trường thì mempool thậm chí còn tệ hơn: một khu rừng tối tăm.

真实存在的以太坊 DeFi「黑暗森林」:mempool 套利机器人吞噬了我的交易


"The Dark Forest" The Dark Forest  là cuốn tiểu thuyết khoa học viễn tưởng yêu thích của cá nhân tôi. Chính cuốn sách này đã nảy sinh khái niệm "khu rừng tối" - một môi trường trong đó những kẻ săn mồi tiên tiến tiếp tục gây ra các cuộc tàn sát. Trong môi trường này, việc vạch trần nơi ẩn náu của ai đó tương đương với việc tiêu diệt họ hoàn toàn. (Khái niệm này cũng là nguồn cảm hứng cho trò chơi Dark Forest trên mạng thử nghiệm Ethereum.)


Trong bộ nhớ Ethereum, những kẻ săn mồi siêu hạng này tồn tại dưới dạng "robot chênh lệch giá". Các bot chênh lệch giá giám sát các giao dịch đang chờ xử lý, cố gắng tận dụng mọi cơ hội lợi nhuận mà các giao dịch này tạo ra. Hacker mũ trắng quen thuộc nhất với các bot này là Phil Daian, nhà nghiên cứu hợp đồng thông minh này và các đồng nghiệp của ông đã viết bài báo Flash Boys 2.0 và tạo ra khái niệm "Giá trị có thể trích xuất của thợ mỏ" (MEV).


Phil từng mô tả với tôi một kẻ sát nhân khủng bố vũ trụ mà anh ấy gọi là "kẻ đi đầu nói chung". Các bot chuyên đăng quảng cáo thường tìm kiếm các loại giao dịch cụ thể trong mempool (chẳng hạn như giao dịch trên sàn giao dịch phi tập trung hoặc cập nhật oracle) và cố gắng xử lý trước chúng dựa trên thuật toán được xác định trước. Những người dẫn đầu tổng quát tìm kiếm bất kỳ giao dịch nào mà họ có thể kiếm tiền, nhanh chóng sao chép giao dịch của họ và thay thế địa chỉ trong giao dịch ban đầu bằng địa chỉ của chính họ. Họ thậm chí có thể thực hiện các giao dịch và sao chép các giao dịch nội bộ có lợi nhuận được tạo ra bởi quỹ đạo thực hiện của họ.


Đó là lý do tại sao tôi nói rằng việc lấy lại số tiền gửi nhầm nêu trên không hề đơn giản. Bất cứ ai cũng có thể gọi chức năng ghi  này. Nếu tôi thực hiện giao dịch đốt tiền, nó giống như một tấm biển "tiền miễn phí" bằng đèn neon thông báo cơ hội kiếm lợi nhuận với thế giới bên ngoài. Nếu những kẻ giết người này thực sự ở trong mempool, chúng sẽ nhìn thấy giao dịch này, nhanh chóng sao chép, sao chép và chiếm lấy giao dịch của tôi, lấy tiền trước giao dịch của tôi.


Xin lưu ý rằng môi trường này khắc nghiệt hơn nhiều so với trạng thái của chính chuỗi khối Ethereum. Số tiền miễn phí đã nằm trên chuỗi khối Ethereum mà không bị phát hiện trong khoảng 8 giờ, chờ đợi một ổ ghi nào đó tràn vào. Nhưng bất kỳ nỗ lực lấy tiền nào đều bị bắn tỉa nhanh chóng và chính xác từ trên không.


Lưu


Để rút tiền mà không báo cho con rắn hoặc cảnh báo cho robot, tôi cần ẩn giao dịch để robot không thể phát hiện ra cặp giao dịch Uniswap. call . Điều này liên quan đến việc mã hóa và triển khai các hợp đồng tùy chỉnh. Tôi là một nhà lãnh đạo tư tưởng chuyên nghiệp trong không gian DeFi và tôi thực sự chưa bao giờ triển khai bất kỳ hợp đồng nào với Ethereum trước đây.


Tôi cần trợ giúp và lúc đó đã quá nửa đêm theo giờ Hoa Kỳ. May mắn thay, một số kỹ sư hợp đồng thông minh giỏi nhất mà tôi biết sống ở múi giờ Châu Âu. Đồng nghiệp Paradigm của tôi, Georgios Konstantopoulos đã đồng ý giúp triển khai hợp đồng và gửi giao dịch. Alberto Cuesta Cañada, kỹ sư trưởng tại Yield, một công ty khác mà chúng tôi đầu tư, đã tình nguyện thực hiện hợp đồng.


Một số kỹ sư bảo mật Ethereum xuất sắc Hãy giúp chúng tôi lập kế hoạch che giấu sự thật. Ngoài việc ẩn cuộc gọi dưới dạng giao dịch nội bộ, chúng tôi cũng chia giao dịch thành hai phần: giao dịch đã đặt kích hoạt hợp đồng của chúng tôi và giao dịch nhận để giải cứu số tiền kích hoạt (nếu hợp đồng đã hoạt động). Được triển khai bằng đường dẫn sau:


1. Triển khai hợp đồng Getter do chủ sở hữu của nó gọi. Lệnh gọi ghi đĩa sẽ chỉ được thực hiện sau khi kích hoạt, nếu không nó sẽ được khôi phục về trạng thái ban đầu.

2. Triển khai hợp đồng Setter và gọi nó theo chủ sở hữu của nó, điều này sẽ kích hoạt hợp đồng Getter .

3. Gửi bộ giao dịch và nhận giao dịch trong cùng một khối.


真实存在的以太坊 DeFi「黑暗森林」:mempool 套利机器人吞噬了我的交易


Nếu kẻ tấn công chỉ cố gắng thực hiện giao dịch nhận này, hợp đồng sẽ được khôi phục về trạng thái ban đầu mà không cần gọi hàm ghi. Điều mà chúng tôi hy vọng ban đầu là chúng tôi đã hoàn thành giao dịch khi kẻ tấn công thực hiện thiết lập và nhận giao dịch, tìm thấy hướng dẫn gọi pool.burn nội bộ và sau đó cố gắng vượt qua chúng tôi.


Tập lệnh mã của chúng tôi để tiết kiệm tiền:




Nhưng thật ngạc nhiên, giao dịch get này bị Infura từ chối, mặc dù chúng tôi đã ghi đè công cụ ước tính Gas theo cách thủ công. Sau nhiều lần thử và đặt lại không thành công, chúng tôi ngày càng cảm thấy áp lực về thời gian và với một chút may mắn, chúng tôi đã để giao dịch thứ hai rơi vào một khối sau đó.


Điều này đã trở thành một sai lầm chết người.


Giao dịch get của chúng tôi thực sự đã được đưa vào khối trước đó, nhưng lỗi UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED có nghĩa là tính thanh khoản của nó trong Uniswap đã biến mất. Kết quả là, chỉ vài giây sau khi giao dịch get của chúng tôi vào mempool, ai đó đã thực hiện cuộc gọi và lấy đi số tiền. Những con quái vật trong khu rừng tối tăm vẫn ăn thịt chúng tôi.


Bài học


Quái vật thực sự


Trước Chúng tôi biết rằng các robot chạy trước nói chung có tồn tại. Nhưng cho đến khi bạn nhìn thấy chúng hoạt động, bạn có thể đang đánh giá thấp chúng.


Hy vọng của chúng tôi là hoàn thành nhiệm vụ tiết kiệm tiền thông qua hợp đồng ủy quyền sử dụng lệnh gọi nội bộ, chuyển một biến từ bộ nhớ mà Địa chỉ mục tiêu có thể bảo vệ chúng ta, nhưng họ không thực sự làm được việc đó.


Nếu bạn thực sự mắc kẹt trong tình huống khó xử này, tôi khuyên bạn nên đến gặp Scott Bigelow, Phó Chủ tịch Kỹ thuật tại Amberdata. Ông là nhà nghiên cứu bảo mật đang nghiên cứu chủ đề này và có chiến lược triển khai nguyên mẫu có thể đạt được mục tiêu tốt hơn mục đích che giấu sự thật.


Đừng nắm bắt cơ hội


Chúng ta lẽ ra nên bám sát kế hoạch ban đầu khi đó, ngay cả dưới áp lực về thời gian . Nếu chúng tôi dành nhiều thời gian hơn cho tập lệnh mã, điều chỉnh hợp đồng (có thể thay đổi hợp đồng Getter để không làm gì cả, thay vì quay lại hợp đồng đó trước khi được yêu cầu kích hoạt) hoặc thậm chí đồng bộ hóa các nút của chính chúng tôi để tránh sử dụng Infura, chúng tôi có thể có khả năng cho phép giao dịch vào cùng một khối.


Không Dựa vào cơ sở hạ tầng thông thường


Thủ thuật của bạn càng kỳ lạ thì càng khó chặn nó với cơ sở hạ tầng hiện có như Infura. Trong trường hợp của chúng tôi, chúng tôi đang cố gắng gửi một giao dịch có vẻ như sắp thất bại dựa trên trạng thái blockchain hiện tại và Infura đã có sẵn các biện pháp bảo vệ hợp lý để ngăn chặn điều đó. Sử dụng nút riêng của chúng tôi có thể tránh được vấn đề này.


Tốt hơn nữa, nếu bạn biết một người khai thác (chúng tôi không biết), bạn có thể yêu cầu họ trực tiếp Giao dịch được đóng gói trực tiếp trong một khối, do đó hoàn toàn bỏ qua mempool và tránh được con quái vật ăn thịt người một cách tự nhiên.


Tương lai sẽ chỉ đáng sợ hơn


Đây là chỉ là một ví dụ về chạy trước. Những điều tương tự xảy ra vô số lần mỗi ngày. Những nhà giao dịch tiền tuyến ngày nay chỉ là robot. Ngày mai có thể là thợ mỏ.


Thợ khai thác hiện không thực hiện hành động nào đối với những cơ hội này, khiến tiền bị mất. Trong tương lai, họ có thể sắp xếp lại và thực hiện các giao dịch trong mempool vì lợi ích riêng của họ. Tệ hơn nữa, họ có thể sắp xếp lại các khối được khai thác bởi những người khai thác khác nhằm đánh cắp MEV không thuộc về họ, gây ra sự mất ổn định của blockchain.


Chúng tôi cho rằng đây là một tương lai đáng sợ Nó có thể được ngăn chặn. Optimism (một công ty đầu tư khác của Paradigm) có tầm nhìn đầy tham vọng về cách MEV có thể được chuyển hướng vì lợi ích của hệ sinh thái như một phần của giải pháp mở rộng quy mô Lớp 2 của họ, Optimistic Rollup.


Xin cảm ơn Alberto Cuesta Cañada, Scott Bigelow, Phil Daian, Charlie Noyes và Sam Sun vì những nhận xét của họ về bài viết này.


Liên kết gốc



Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:

Nhóm Telegram đăng ký: https://t.me/theblockbeats

Nhóm Telegram thảo luận: https://t.me/BlockBeats_App

Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia

举报 Báo lỗi/Báo cáo
Chọn thư viện
Thêm mới thư viện
Hủy
Hoàn thành
Thêm mới thư viện
Chỉ mình tôi có thể nhìn thấy
Công khai
Lưu
Báo lỗi/Báo cáo
Gửi