Robot dọn dẹp Ethereum tràn lan, một bài viết hiểu ba giải pháp
Bài viết này là từ:Con đường của DeFiBài viết này là từ:
Con đường của DeFi
, Tác giả: miễn phí và dễ dàng, chuyển tiếp với sự cho phép.
Lưu ý: Bạn đã bao giờ gặp phải tình huống như vậy chưa, khi bạn gửi một quỹ Ethereum và sau đó phát hiện ra rằng tiền trong ví đã bị rút sạch ngay lập tức, bạn có thể là mục tiêu của kẻ quét, bài viết này nhằm giúp bạn giải quyết vấn đề này, tận gốc tác giả là kỹ sư bảo mật & chống lừa đảo MyCrypto Harry Denley.
Khi bí mật của bạn bị xâm phạm, một bên độc hại thường sẽ thiết lập một công cụ quét trên tài khoản của bạn để lợi dụng bất kỳ điều gì xảy ra với địa chỉ đó trong tương lai, chẳng hạn như khi người dùng gửi ETH để thử và rút một số mã thông báo, Khi một đợt airdrop hoặc các hoạt động khác tình huống xảy ra.
Bài viết này phác thảo cách tiền của người dùng bị cuốn đi và ba cách duy nhất để cứu vãn bất kỳ khoản tiền nào không bị cuốn đi (ví dụ: tiền đặt cược).
1. Người dùng bị lừa đảo như thế nào
Gần đây, chúng tôi đã thấy một số lượng lớn người dùng giả làm quản trị viên nhóm Telegram, những quản trị viên giả mạo này sẽ giúp những người dùng yêu cầu trợ giúp trong kênh chính (mặc dù họ không phải là quản trị viên thực, họ sao chép thông tin hồ sơ quản trị viên, nhưng tên người dùng với một số khác biệt nhỏ). Những kẻ mạo danh này thường nói nhiều biệt ngữ để gây nhầm lẫn cho người dùng và chia sẻ liên kết đến một trang web có vẻ hợp pháp, nhưng cuối cùng lại yêu cầu bạn cung cấp cụm từ gốc hoặc khóa riêng tư.
Sau đó, tài sản tiền điện tử của bạn sẽ biến mất, với một công cụ quét trên chúng.
Đây là một ví dụ về một trong những trang web giả mạo này:
2. Cách thức hoạt động của chất tẩy rửa
Trình quét là một số mã giám sát một chuỗi khối (bao gồm cả txpool, về mặt kỹ thuật không phải trên chuỗi) và phản ứng theo chương trình để ký một giao dịch cụ thể với một bộ quy tắc nhanh hơn con người có thể.
Điều này có nghĩa là trình quét ẩn đối với giao diện người dùng nơi bạn xem địa chỉ của mình trên trình khám phá chuỗi khối hoặc "kết nối" nó với một dapp. Chỉ sau khi bạn ký và phát giao dịch lên mạng, người quét (sweeper) mới có thể thấy hoạt động của bạn.
Theo thời gian, chúng tôi đã chứng kiến sự phát triển của các máy quét và các chiến dịch khai thác chúng.
3. Sự tiến hóa của Sweeper
Trong năm 2017, có khá nhiều hoạt động sử dụng mã thông báo có tính năng khóa (tức là bạn không thể gọi thành công transfer() ) nhưng bao gồm nguồn cấp giá. Dave Appleton đã xuất bản một bài báo về những hoạt động này.
Cách mà một bên độc hại khai thác trò lừa đảo này là họ sẽ đăng khóa riêng tới địa chỉ này (theo một cách có vẻ vô hại hoặc sai trái nào đó) và đợi mọi người gửi ETH vào địa chỉ (để chuyển mã thông báo trong địa chỉ) . Sau đó, bên độc hại sẽ có một chương trình quét tài khoản đó để nhanh chóng chuyển ETH được gửi vào địa chỉ đó sang tài khoản của chính anh ta. Về mặt lý thuyết, các mã thông báo bị khóa được coi là vô giá trị, vì vậy họ cố gắng thu lợi nhuận từ những người dùng "tham lam" không nghi ngờ.
Ngày nay, các địa chỉ bị rò rỉ về cơ bản được triển khai với các chương trình lọc ETH và một số tổ chức sử dụng logic chương trình lọc nâng cao hơn để làm sạch mã thông báo ERC20 dựa trên nguồn cấp giá.
Đầu năm nay, tôi đã thực hiện một số nghiên cứu trinh sát về một địa chỉ bị rò rỉ và thấy rằng công cụ quét không ngừng phát triển:
Những người quét ưa thích những tài sản có giá trị đồng đô la cao nhất, ngay cả khi điều đó có nghĩa là phải chi nhiều phí giao dịch hơn để quét;
Người quét sẽ sử dụng tất cả ETH có sẵn để tối đa hóa giá trị quét đồng thời có tỷ lệ phần trăm giao dịch "chiến thắng" cao.
Công cụ quét có một công cụ so khớp so khớp các mã thông báo đã cam kết (ví dụ: xKNCa=KNC) với các mã thông báo gốc của chúng để giá nguồn cấp dữ liệu được phản ánh trên các mã thông báo đã cam kết.
Bộ quét có bộ đếm nonce bên trong của riêng nó và định kỳ đặt lại nonce nonce thành đầu ra eth.getTransactionCount() nếu nonce nonce cao nhất của nó không được xác nhận trong một khung thời gian (hoặc bị loại bỏ/thay thế bởi khung khác).
Nếu có tài sản có giá trị cao được người quét nhắm mục tiêu, đã có một số hoạt động gợi ý rằng người điều hành "hy sinh" một số ETH bằng cách tài trợ cho địa chỉ nhằm cố gắng nhanh chóng quét tài sản có giá trị cao khỏi tài khoản.
Một số công cụ lọc sẽ không quét nội dung nếu giá trị đồng đô la thấp hơn một ngưỡng nhất định, điều đó có nghĩa là bạn có thể không biết tài khoản của mình đang bị máy lọc nhắm mục tiêu, điều này thật đáng sợ.
Các bài báo mô tả về máy lọc xuất hiện lần đầu tiên vào năm 2017 và hiện tại, máy lọc mà chúng tôi quan sát đã trở nên tiên tiến hơn và chúng được thiết kế để tối đa hóa lợi nhuận của người điều hành trong khi gây tổn thất tối đa cho nạn nhân.
4. Làm thế nào để đánh bại kẻ quét?
Đầu tiên, là con người, chúng ta không thể nhanh hơn mã, vì vậy các giải pháp của chúng tôi chỉ có thể liên quan đến mã hóa. Có một vài lộ trình khác nhau mà bạn có thể chọn, không có lộ trình nào được đảm bảo 100%, nhưng sẽ có lợi cho chúng tôi.
Bạn cần tạo một danh sách các coin muốn cố gắng vớt vát, sắp xếp theo mức độ ưu tiên để bạn dễ dàng xác định kế hoạch của mình, bạn cần liệt kê:
Địa chỉ hợp đồng mã thông báo;
Liệu mã thông báo có được đặt cược hay không (và liệu việc hủy đặt cọc có bị khóa thời gian hay không);
liệu các mã thông báo có thể chuyển nhượng được hay không;
Giá trị mã thông báo (bằng USD);
5. Sử dụng TAICHI
Cách thức hoạt động của trình quét là theo dõi txpool để biết các giao dịch đến đến địa chỉ quét của nó và TAICHI cho phép bạn gửi các giao dịch đã ký trực tiếp tới các công cụ khai thác (SparkPool) mà không cần phát qua txpool công khai, điều đó có nghĩa là chương trình quét sẽ không được nhìn thấy và rất có thể giao dịch của bạn sẽ không bị chặn trước bởi bot quét (ít nhất là theo kinh nghiệm của tôi)
Mô tả hình ảnh
Ảnh từ TAICHI.NETWORK
Cách tiếp cận ở đây là tất cả các giao dịch của bạn được ký trước theo thứ tự không bắt đầu và gửi tới TAICHI theo chương trình. Hầu hết các trình quét chỉ giám sát txpool/mempool công khai đối với các giao dịch ETH đến và không gọi eth_getBalance trên mỗi khối mới (để tiết kiệm chi phí cho các chu kỳ CPU và các cuộc gọi phương thức RPC), có nghĩa là chúng sẽ định tuyến qua txpool riêng ETH được gửi đến tài khoản bị bỏ qua và do đó không bị quét.
Điều này yêu cầu bạn thực hiện một số phép toán và nếu phép toán được thực hiện chính xác, một chương trình quét tìm cách chạy trước có thể không thành công! (Thông thường, tôi mặc định giá gas cao hơn vài phần trăm so với loại "nhanh" trên GasNow, vì vậy những người khai thác sẽ có nhiều khả năng xác nhận giao dịch của bạn trong khối tiếp theo.)
Bạn có thể sử dụng MyCrypto ngoại tuyến để tạo các giao dịch đã ký và đẩy chúng lên TAICHI khi sẵn sàng hoặc sử dụng ethers.js (hoặc các thư viện khác) để tạo mã nhằm tạo các giao dịch đã ký.
Phương pháp 1: Sử dụng hợp đồng thông minh tự hủy
Cũng giống như phương pháp TAICHI, chúng ta có thể sử dụng hợp đồng thông minh để cho phép ETH vào tài khoản mà không hiển thị nó trong txpool công khai. Chúng tôi làm điều này bằng cách triển khai một hợp đồng thông minh từ một địa chỉ an toàn, sau đó gửi ETH theo cấu trúc đến địa chỉ bị xâm phạm (đây sẽ là một giao dịch nội bộ)
Bằng cách triển khai hợp đồng này, chúng tôi có thể gửi ETH cùng với chuỗi địa chỉ bị rò rỉ trong các tham số của hàm tạo. Hợp đồng hoạt động bằng cách tạo hợp đồng và tự hủy trong cùng một giao dịch. Sử dụng tính năng tự hủy () có nghĩa là chúng tôi xóa trạng thái chuỗi khối (vì đó là hợp đồng sử dụng một lần) và chuyển tiếp ETH đến địa chỉ bị rò rỉ trong một giao dịch.
Ví dụ: https://goerli.etherscan.io/tx/0x82ccb222eae55aaea73dd0efee1ea6ed7320f880889f280d4a343b8823f86692
Lưu ý rằng trong khi phương pháp này hoạt động, nó sẽ tăng thêm chi phí, vì chúng tôi đang làm nhiều việc hơn là chỉ gửi ETH từ tài khoản này sang tài khoản khác. Chi phí của phương pháp này là khoảng 70.000 gas, trong bối cảnh giá gas tăng cao, chi phí sử dụng phương pháp này có thể lên tới 0,0112ETH.
Cách 2: Sử dụng Flashbot
Nói chung, chúng ta cần thanh toán ETH để giao dịch được xác nhận (vì phí giao dịch do người gửi thanh toán). Tuy nhiên, nhờ Flashbots, chúng tôi có thể dễ dàng xác nhận các giao dịch ở mức giá 0 gas (tức là phí giao dịch 0 USD) từ EOA bằng cách "hối lộ" những người khai thác bằng tiền từ một tài khoản khác, nghĩa là chúng tôi có thể chuyển mã thông báo sang Chuyển từ một địa chỉ bị rò rỉ mà không phải trả tiền đối với gas bằng ETH, vâng, chính là nó.
Chiến lược này yêu cầu sử dụng 2 tài khoản, một là tài khoản bị rò rỉ và tài khoản còn lại là tài khoản được sử dụng để hối lộ người khai thác.
Nhóm Flashbots đã phát hành một dự án có tên Flashbots/searcher-sponsored-tx có lý do thiết lập chiến lược này để xác nhận giao dịch của bạn từ hai tài khoản.
Vì chúng tôi sẽ sử dụng một tài khoản khác để thanh toán cho giao dịch nên không cần gửi ETH vào tài khoản bị xâm phạm.
Để đảm bảo không có ETH trong tài khoản bị xâm phạm, chúng tôi thực sự khuyên bạn nên chạy bot Burner.
Chúng tôi thường khuyên bạn nên chạy bot ghi đĩa trên nhiều máy tính, sử dụng một nút RPC khác nhau cho mỗi phiên bản. Ví dụ: chạy bot ghi đĩa cục bộ với Infura và chạy bot ghi đĩa trên máy chủ từ xa với nhà cung cấp khác, chẳng hạn như Quiknode. Bằng cách này, bạn có kế hoạch dự phòng trong trường hợp độ trễ mạng cao hoặc sự cố nút (giới hạn tốc độ, sự cố đồng bộ hóa).


