BTC
ETH
HTX
SOL
BNB
Xem thị trường
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Mật mã của sự giàu có ít được biết đến: robot ăn trộm mạnh đến mức nào? |Lựa sao nướng

讲道李
特邀专栏作者
Bài viết này có khoảng 5261 từ, đọc toàn bộ bài viết mất khoảng 8 phút
Chuỗi khối là một cỗ máy rút tiền cho các nhà khoa học, đây không phải là một trò đùa.
Tóm tắt AI
Chuỗi khối là một cỗ máy rút tiền cho các nhà khoa học, đây không phải là một trò đùa.

Ethereum Dark Forest là một con thú hoang dã và nó chắc chắn không đáng sợ. Những robot ưu tiên này có thể phân tích các cuộc gọi của hợp đồng để tìm cơ hội kiếm tiền tiềm năng.

Hầu hết mọi người có thể chưa nghe nói về máy chạy trước, vì vậy, trước tiên hãy giới thiệu ngắn gọn về khái niệm và phân tích hành vi của chúng, đồng thời chúng tôi cũng nghiên cứu hiệu quả của chúng, xác suất giao dịch chạy trước thành công và cố gắng chống lại chúng theo nhiều cách.

người đi trước là gì?

Đầu tiên, hãy giới thiệu khái niệm.Nói chung, một giao dịch chạy trước đề cập đến việc chèn một giao dịch khác vào vị trí đầu tiên của hàng đợi thực hiện trước khi một giao dịch đã biết trong tương lai xảy ra.

Ví dụ 🌰, quy trình giao dịch của sàn giao dịch. Ví dụ: nếu ai đó định mua một lượng lớn ETH (loại đủ để kéo thị trường) trên Uniswap, một cách để kiếm lợi nhuận là mua nhanh trước khi giá tăng và bán sau khi giá tăng. bị kéo.

Quyền ưu tiên không giới hạn ở phương pháp được đề cập ở trên, còn có nhiều phương pháp khác, chẳng hạn như thanh lý, mua NFT hiếm hoặc gây ra một số lỗi người dùng. Ở đây tôi muốn giới thiệu với mọi người một khái niệm: MEV, thợ mỏ có thể trích xuất giá trị - giá trị có thể trích xuất của một giao dịch hoặc một nhóm giao dịch.

Để ưu tiên các giao dịch trên chuỗi ETH, bạn có thể tăng phí chuyển khoản, cao hơn một chút so với giao dịch mục tiêu và khuyến khích những người khai thác xếp hạng các giao dịch của chính họ ở phía trước khi đóng gói. Vì các giao dịch có giá gas cao sẽ được thực hiện trước, nên nếu hai giao dịch muốn kiếm lợi nhuận từ cùng một lệnh gọi hợp đồng và hai giao dịch được đóng gói vào cùng một khối, thì phải phụ thuộc vào người trả phí gas. người có thể xếp hàng đầu có thể dẫn đầu thành công trong kinh doanh chênh lệch giá.

Vì vậy, có thể nói rằng, các giao dịch chạy trước cũng có thể được coi là kinh doanh chênh lệch giá ở một mức độ nào đó.

đạo đức động vật

Trong bài báo "Ethereum is a Dark Forest" do Dan Robinson và Georgios Konstantopoulos đồng tác giả, một khái niệm được đề cập: khai thác giá trị. Câu chuyện kể về việc bị chặn bởi một robot chênh lệch giá ("Predator") trong quá trình tiết kiệm mã thông báo trị giá 12.000 đô la Mỹ. Những robot chênh lệch giá này rất tiên tiến và mạnh mẽ. Chúng có thể theo dõi các giao dịch chênh lệch giá trong nhóm giao dịch Ethereum và thu được lợi ích bằng cách chạy trước, đó là những gì chúng tôi đã đề cập ở trên.

Bài báo Dark Forest rất thú vị, tôi khuyên bạn nên đọc nó khi có thời gian. Độc giả đọc xong có thể sẽ cho rằng bài viết quá viển vông, không thể tin nổi: một nền tảng như Uniswap được giám sát bởi lượng lớn robot, vẫn có những “siêu robot săn mồi” có thể cướp thức ăn từ bàn tay của nhiều nhà kinh doanh chênh lệch giá. ăn cắp tiền? Có phải những người được gọi là rô-bốt này cũng là một nhóm người kinh doanh chênh lệch giá thông thường?

Tuy nhiên, chỉ vì bạn không biết không có nghĩa là bạn không biết. Chúng không phải là bot thông thường, chúng có thể gọi các chức năng hợp đồng thông minh chưa từng được gọi trước đây để lấy tiền và giao dịch ban đầu vẫn bị che khuất bởi hợp đồng thông minh proxy.

Có thể làm được điều này ít nhất nên khơi dậy sự cảnh giác của mọi người. Bởi vì có thể giám sát các giao dịch trong nhóm giao dịch tương đương với việc có một vũ khí lớn. Nhưng điều đáng lo ngại hơn là một số nhà cung cấp dịch vụ đã bắt đầu cung cấp công khai lớp giao dịch "dark pool".

Lớp giao dịch được gọi là "dark pool" không cần sử dụng các dịch vụ như Infura, thậm chí không cần xây dựng một nút riêng, nó sẽ trực tiếp gửi giao dịch đến những người khai thác và hứa sẽ không phát giao dịch đến các nút khác trong mạng. Bằng cách này, giao dịch sẽ không bị phát hiện bởi bot chênh lệch giá và giao dịch có thể được bảo vệ khỏi những kẻ săn mồi.

Có một người mũ trắng nổi tiếng tên là samczun, anh ta và nhiều người bạn của mình cũng đã áp dụng phương pháp tương tự và tiết kiệm thành công 9,6 triệu đô la Mỹ từ một hợp đồng bị sơ hở. Vì vậy, không khó để tưởng tượng rằng những người khai thác cũng sẽ bắt đầu chạy các bot giao dịch chạy trước, trong khi chỉ cung cấp các kênh an toàn cho những người giao dịch trả thêm phí.

Các bot này chỉ chạy trên mạng chính Ethereum, không giống như các phần khác của Ethereum, ví dụ: một số hợp đồng thông minh có thể được thử nghiệm trong môi trường phát triển hoặc testnet. Ngoại trừ một số thử nghiệm sơ bộ, không cần phải để rô-bốt chạy trước đến giao dịch mạng thử nghiệm chạy trước và nó sẽ không kiếm được tiền. Ngoài ra, họ không cần tuân theo các quy tắc như những người khác vì logic của họ bị ẩn.

Chúng ta vẫn chưa biết trong hoàn cảnh nào rô-bốt đánh phủ đầu sẽ di chuyển và trong hoàn cảnh nào thì nó sẽ dừng lại. Vì vậy, việc theo dõi những con robot này bây giờ cũng giống như việc săn bắt động vật hoang dã quý hiếm, rất khó khăn và thử thách. Và chúng tôi không thể tìm thấy tất cả các loại robot, chỉ tìm kiếm các loại robot cụ thể, khái quát.

Để đạt được mục tiêu "tìm các bot cụ thể, tổng quát" được đề cập ở trên, chúng ta cần thiết lập một cái bẫy đặc biệt - một hợp đồng thông minh mới, được tạo từ hàm băm SHA256 của một chuỗi bí mật và trong hợp đồng đặt một số tiền, chỉ người người cung cấp chuỗi bí mật có thể rút tiền trong hợp đồng và sau đó khi ai đó gửi giao dịch rút tiền, tiền sẽ được gửi trực tiếp đến người gửi giao dịch.

Ý tưởng ban đầu của việc thiết lập cái bẫy này là bắt đầu một giao dịch "mồi" cung cấp chuỗi bí mật chính xác, xem liệu có ai sẽ sao chép chuỗi này không và gửi một giao dịch có chứa chuỗi này để rút tiền. Nếu ai đó có thể lấy nó trước khi giao dịch "mồi", điều đó có nghĩa là ai đó có thể phân tích giao dịch, sao chép nội dung có liên quan và tự mình đưa ra nội dung trong hợp đồng bí mật.

Kết quả thử nghiệm rất thú vị. Robot có thể cung cấp một chuỗi bí mật chưa từng thấy trước đây cho một hợp đồng chưa từng thấy, sau đó tiền bị đánh cắp. Đây là robot chạy trước tổng quát và cụ thể thực sự!

Làm thế nào để bot vội vàng hoạt động?

Hãy cùng xem cơ chế hoạt động của robot cói. Nhưng chúng ta chỉ có thể suy luận ngược lại thông qua hành vi của họ, bởi vì mọi người đều nghĩ, nếu bạn tạo ra một cỗ máy kiếm tiền, liệu bạn có thể chia sẻ nó trên Github không? Dĩ nhiên là không!

Trước tiên, bạn cần hai thành phần:

1. Tài khoản Ethereum, có hoặc không có đại lý ví thông minh

2. Phần "phụ trợ", bộ não của toàn bộ hoạt động, thường diễn ra ngoài chuỗi

Người điều khiển máy có thể kiểm tra từng giao dịch trong nhóm giao dịch thông qua một số công nghệ và phân tích, thay thế các tham số (chẳng hạn như thay thế người gọi giao dịch) và đưa ra kết luận (liệu giao dịch có sinh lãi hay không, giá trị đơn lẻ này không đáng) ).

Hình trên cho thấy quy trình làm việc của robot giao dịch vội vàng

Một mô hình robot hợp lý sẽ không ưu tiên giao dịch khi phí giao dịch vượt quá lợi nhuận tiềm năng và phí giao dịch có thể cao, đặc biệt nếu phí gas cao. Vì vậy, để dụ robot cắn câu, chúng ta cần đặt ra ít nhất một khoản lợi nhuận nhất định.

Ngoài ra, có nhiều giao dịch trong nhóm giao dịch và robot cần phân tích từng giao dịch và thời gian rất eo hẹp. Một khối Ethereum được tạo ra trung bình trong khoảng 12 giây, vì vậy nếu phí giao dịch đủ cao, robot ưu tiên phải nhanh chóng phân tích nó trước khi khối tiếp theo được đào ra, sau đó nhanh chóng thay thế giao dịch ban đầu.

Quá trình này cũng có một xác suất nhất định. Ví dụ: sau khi một giao dịch được phát đi, khối đó sẽ được đào ra ngay lập tức và robot không có thời gian để phân tích nó, vì vậy không có cơ hội.

Xem xét các yếu tố trên, chúng tôi đã thực hiện một loạt các phương pháp sau đây để thu hút robot đang lao tới cắn câu. Đây là vấn đề! 👇

đặt một cái bẫy

Số dư ban đầu mà chúng tôi đặt trong hợp đồng là 0,035 ETH, trị giá khoảng 20 đô la ở mức giá hiện tại. Bất kỳ ai có thể cung cấp hình ảnh trước chính xác về giá trị băm được lưu trữ trong hợp đồng, cũng được cho là hợp đồng bí mật, đều có thể nhận tiền. Sau đó, giao dịch lấy tiền sẽ kích hoạt hành động bot chạy trước và một người nhận tài khoản khác sẽ cố gắng rút tiền bằng cách cung cấp hợp đồng bí mật chính xác.

Vòng đầu tiên thất bại: gọi trực tiếp hợp đồng

Để đảm bảo cái bẫy của chúng tôi hoạt động, trước tiên chúng tôi sử dụng tài khoản người nhận để gọi hợp đồng thông minh. Vào thời điểm đó, phí gas tương đối cao và chúng tôi đã thu hồi thành công số tiền trong hợp đồng mà không thu hút các robot chạy vội vã.

Ngẫm lại nguyên nhân, có thể là do lợi nhuận quá thấp, không hấp dẫn robot dẫn đầu, cũng có thể là do khối chứa giao dịch sớm được đào ra, robot dẫn đầu không có thời gian. để phản ứng.

Chúng tôi đã điều chỉnh và sẵn sàng cho vòng tiếp theo.

Thành công ở vòng 2: Dành thêm thời gian cho bot gấp rút

Lần này, chúng tôi đã tăng các lợi ích tiềm năng và số tiền trong hợp đồng tăng lên 0,04 ETH; đồng thời giảm phí giao dịch, vì vậy khối chứa giao dịch không được đào ra nhanh chóng, giúp robot có thêm thời gian để nắm bắt nó.

Lần này, chúng tôi đã thành công!

Sau khi đợi khoảng ba phút, giao dịch vẫn chưa được thực hiện và số tiền trong hợp đồng vẫn chưa được lấy. Sau đó, chúng tôi đã xem xét nghiêm túc tất cả các giao dịch nội bộ trong hợp đồng và phát hiện ra rằng tiền đã bị người khác rút.

Giao dịch được bắt đầu bởi tài khoản người nhận của chúng tôi đã sử dụng 25 Gwei và robot chạy phía trước đã sử dụng 25,000001111 Gwei, chỉ nhiều hơn chúng tôi 0,000001111 Gwei và hai giao dịch được đóng gói vào cùng một khối.

Vòng đánh giá thứ hai: tìm kiếm manh mối về robot

Được rồi, bây giờ chúng tôi đã nhận được nó với giá 0,04 ETH và một số khoản phí, chúng tôi có thể phân tích nó.

Trước hết, robot ưu tiên không trực tiếp gọi hợp đồng. Thay vì sao chép giao dịch của người nhận và gửi qua tài khoản của chính mình, nó sẽ gửi giao dịch đến hợp đồng thông minh proxy, hoạt động như một chiếc ví thông minh để thực hiện giao dịch.

Tiếp theo, chúng ta có thể theo dõi địa chỉ của con robot này, xem nó đã cướp thành công bao nhiêu giao dịch và nghiên cứu nguyên lý hoạt động của nó.

Hình trên cho thấy hợp đồng ủy quyền của chính robot đang vội vã. Chúng tôi đã dịch ngược hợp đồng ủy quyền và thấy rằng có hai chức năng chính:

Rút tiền: Gửi tất cả tiền trong hợp đồng cho nhà điều hành này. Một chức năng khác chịu trách nhiệm nhận các tham số: hợp đồng để gọi, danh sách các tham số và tham số để truyền giá trị.

Với chức năng rút tiền, hợp đồng proxy có thể trở thành ví thông minh của nhà điều hành. Ngoài việc có thể thực hiện chức năng gọi các chức năng bên ngoài, nó còn có thể đảm bảo rằng số dư khi bắt đầu giao dịch không thấp hơn khi kết thúc, nếu không, giao dịch có thể được khôi phục, do đó tránh được các tổn thất tiềm ẩn do gọi hợp đồng không rõ ràng, tất nhiên lỗ ở đây không bao gồm tiền xăng.

Chúng tôi cũng đã theo dõi hiệu suất của bot kể từ khi nó bắt đầu chạy vào tháng 5 năm 2018.

Giả sử nó luôn sử dụng cùng một hợp đồng proxy và địa chỉ để chạy trước, có thể tính toán rằngKiếm được tổng cộng khoảng 17 ETH cho đến nay。

Hình trên là thu nhập của robot mà chúng ta đã theo dõi, đơn vị tính là ETH

Vòng thăm dò thứ ba: robot giao dịch chạy phía trước mạnh đến mức nào?

Bây giờ chúng tôi đã tìm thấy robot và chứng minh cho mọi người thấy rằng giả định trước đó là đúng, hãy kiểm tra xem chúng tôi có thể sử dụng hợp đồng thứ hai để gây nhầm lẫn cuộc gọi và lấy lại tiền trong hợp đồng mồi hay không.

Hợp đồng thứ hai là hợp đồng ủy quyền, hợp đồng này sẽ lấy đi số tiền được lưu trữ trong hợp đồng mồi nhử bằng cách gọi một chức năng. Ngoài ra, hợp đồng thứ hai cũng có chức năng "truy xuất" cho phép chúng tôi truy xuất tiền.

Chúng tôi triển khai hợp đồng ProxyTaker và sau đó gọi chức năng này để thử và lấy lại tiền của chúng tôi. Do chi phí sử dụng hợp đồng ủy quyền để rút tiền tương đối cao nên chúng tôi đã tăng số tiền trong hợp đồng "mồi" lên 0,055 ETH. Chắc chắn, thỏa thuận đã bị một con robot khác cướp đi ngay lập tức.

Robot này hơi tuyệt vời, nó không chỉ có thể phát hiện các giao dịch rút tiền của chúng tôi, mà còn thực sự! Cũng có thể xác định rằng giao dịch này là lệnh gọi nội bộ từ một hợp đồng hoàn toàn khác! Hơn nữa, nó có thể hoàn thành bộ quy trình này trong thời gian rất ngắn, điều này thực sự khó tin. Bởi vì giao dịch của chúng tôi đã được khai thác thành công chỉ trong vài giây và bot cũng vậy, điều này thật đáng kinh ngạc.

Và danh tính của chú robot này cũng rất thú vị, hợp đồng của nó được kiểm soát bởi một tài khoản có tên arden43y, hành vi rút tiền của người dùng trong hợp đồng thông minh Bancor.

Hình trên cho thấy nhận xét do tài khoản người điều hành robot để lại trong trình duyệt Ethereum: Nếu bạn nghĩ rằng tôi đã lấy cắp tiền của bạn và có thể chứng minh rằng đó là một sai lầm, tôi sẽ trả lại tiền cho bạn.

Hành vi của rô bốt thứ hai cũng giống như hành vi của rô bốt thứ nhất, bằng cách gọi hợp đồng ủy quyền của tài khoản, sau đó gửi tiền đến một tài khoản khác, vì vậy chúng tôi nghi ngờ rằng rô bốt này là một vụ cướp mũ trắng trong cuộc giải cứu hoạt động.chạy.

Nhưng bot thứ hai phức tạp hơn nhiều so với bot thứ nhất, bot đầu tiên chỉ tập trung vào chuỗi Ethereum và bot thứ hai cũng thực hiện nhiều giao dịch chênh lệch giá khác.

Và số dư của tài khoản robot thứ hai là khoảng 300 ETH, nó kiếm được nhiều hơn. Và, với tất cả số tiền chảy vào và rút ra khỏi địa chỉ hợp đồng ủy quyền, có thể ước tính rằng robot thứ hai có tổng giá trị khoảng 900 ETH.

Vòng chung kết: Lần này, chống đỡ thành công robot

Lần này, chúng tôi đã sử dụng hợp đồng proxy mới OwnedTaker, mà chỉ chúng tôi mới có thể sử dụng để gây nhầm lẫn cho các cuộc gọi. Chúng tôi đặt thêm 0,05 ETH vào hợp đồng "mồi". Tiền cũng được trả lại cho chúng tôi thông qua giao dịch thay vì ở trong hợp đồng.

Trong lần thử đầu tiên, giao dịch được gửi đến hợp đồng OwnedTaker đã được khai thác sau khoảng 1 phút và chúng tôi đã xoay sở để lấy lại tiền trong hợp đồng "chim mồi".

Thí nghiệm được lặp lại một lần nữa. Lần này, chúng tôi đã gửi lại 0,06 ETH vào hợp đồng "mồi", đây là "mồi" lớn nhất mà chúng tôi đã đặt cho đến nay, vì vậy chúng tôi có thể loại trừ khả năng rô-bốt đánh phủ đầu sẽ không cắn câu.

Ngoài ra, chúng tôi cũng cố tình đặt phí giao dịch ở mức tương đối thấp, giao dịch đợi khoảng 7 phút nhưng tiền đã được lấy thành công.

Vì vậy, kết luận là: sử dụng hợp đồng proxy được sở hữu mà chỉ chủ sở hữu mới có thể sử dụng để chuyển tiếp giao dịch có thể ngăn chặn hiệu quả việc rô-bốt phân tích dữ liệu và thực hiện các giao dịch gấp rút.

Hình trên cho thấy quá trình rút tiền thành công

Có lẽ vì chỉ chủ sở hữu hợp đồng mới có thể thực hiện lệnh gọi hoặc tiền được gửi đến một địa chỉ khác với hợp đồng gọi, nên chúng tôi đã tránh được các bot giao dịch chạy trước.

Những robot này có khả năng được lập trình để ưu tiên tự bảo quản. Rốt cuộc, khi họ gọi một hợp đồng không xác định, hợp đồng đó có khả năng thực thi mã tùy ý. Do đó, chúng ta có thể giả định một cách hợp lý rằng họ sẽ chọn cách tránh rủi ro không cần thiết hoặc tổn thất phí giao dịch khi lợi nhuận không được đảm bảo.

Chúng ta đã thực sự thành công trong việc chống lại các bot chưa?

Chúng ta đã thực sự chiến thắng chưa? Nó phụ thuộc vào cách bạn nhìn vào nó. Chúng tôi sử dụng một hợp đồng mới và chỉ chúng tôi biết chuỗi bí mật. Rõ ràng, hai bot chạy phía trước mà chúng tôi đã bắt được phát hiện tất cả các giao dịch trong nhóm giao dịch. Đánh giá về lợi nhuận họ kiếm được, đây thực sự là sở trường của họ.

Tại sao chúng ta có thể chống lại thành công cuộc tấn công của robot bắt đầu nhảy trong thí nghiệm cuối cùng?

Tóm lại là

Tóm lại là

Thông qua thí nghiệm nhỏ này, chúng tôi đã chứng minh rằng robot vội vàng không chỉ tồn tại mà còn rất thông minh.

Tất nhiên, chúng tôi biết rằng thí nghiệm này là không đầy đủ và không thể đưa ra kết luận có thẩm quyền. Có nhiều loại bot khác có cơ chế kích hoạt và cách chúng hoạt động khác nhau, đồng thời các yếu tố như lợi nhuận tiềm năng, kiểu giao tiếp và độ phức tạp tối thiểu, chẳng hạn như giới hạn phí gas, cũng có thể ảnh hưởng đến cách chúng hoạt động.

Tuy nhiên, chúng tôi tin rằng các thử nghiệm của chúng tôi cung cấp bằng chứng về khái niệm và làm sáng tỏ thêm về phương thức hoạt động của các bot ưu tiên này.

Thật đáng kinh ngạc, nếu ai đó gọi một hợp đồng tạo ra lợi nhuận mà bất kỳ ai cũng có thể gọi, ngay cả khi nó rất mơ hồ, thì rất có thể họ sẽ bị một bot chạy trước thu thập.

Tác giả: Alex Manuskin

Tài liệu tham khảo trong bài viết này:

Liên kết gốc:https://zengo.com/ethology-a-safari-tour-in-ethereums-dark-forest/

Tác giả: Alex Manuskin

ETH
烤仔星选计划
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký:
https://t.me/Odaily_News
Nhóm trò chuyện:
https://t.me/Odaily_GoldenApe
Tài khoản chính thức:
https://twitter.com/OdailyChina