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

Làm thế nào để đánh bại "kẻ ăn xác thối" Ethereum, đây là ba giải pháp

区块律动BlockBeats
特邀专栏作者
Bài viết này có khoảng 4131 từ, đọc toàn bộ bài viết mất khoảng 6 phút
3 Cách Tiết Kiệm Số Tiền Chưa Ăn Hết!
Tóm tắt AI
3 Cách Tiết Kiệm Số Tiền Chưa Ăn Hết!

Bạn đã bao giờ có kinh nghiệm gửi một khoản tiền vào tài khoản chỉ để nó biến mất chưa? Bạn có thể đã bị đầu độc bởi "kẻ ăn xác thối". Chúng tôi ở đây để giúp bạn thoát khỏi khủng hoảng.

Nếu khóa riêng của bạn bị đánh cắp, thủ phạm thường sẽ sắp xếp một chương trình "người nhặt rác" để theo dõi tài khoản của bạn, sau đó chờ cơ hội để ăn tài sản trong tài khoản của bạn - cho dù bạn gửi ETH hoặc các mã thông báo khác vào tài khoản này hay nhận được một airdrop, hoặc bất cứ thứ gì tương tự.

Bài viết này phác thảo cách "người nhặt rác" ăn tài sản của người dùng và cung cấp ba phương pháp để tiết kiệm tiền chưa bị ăn (chẳng hạn như tiền gửi).

Khóa riêng của người dùng bị rò rỉ như thế nào?

Gần đây, chúng tôi đã thấy rất nhiều người dùng giả làm quản trị viên của các nhóm Telegram và sau đó đề nghị "trợ giúp" cho người dùng trong các kênh chính của các nhóm hợp pháp này (mặc dù họ không phải là quản trị viên thực, nhưng họ chỉ sao chép hồ sơ của quản trị viên thực Tên người dùng đã thay đổi một chút). Quản trị viên giả mạo thường sử dụng ngôn ngữ chuyên nghiệp để gây nhầm lẫn cho người dùng, chia sẻ liên kết đến người dùng có vẻ là trang web hợp pháp (vì chứng thực thương hiệu). Các trang web này yêu cầu người dùng cung cấp khóa riêng hoặc cụm từ hạt giống.

Sau đó, các mã thông báo của bạn sẽ biến mất và sẽ có những "người nhặt rác" bắt đầu theo dõi tài khoản của bạn.

Đây là một ví dụ về một trang web lừa đảo:

Cảm ơn nhà nghiên cứu @dubstard vì đã phát hiện ra rất nhiều hoạt động giả danh WalletConnect

"Scavenger" hoạt động như thế nào?

"Người nhặt rác" là một đoạn mã giám sát chuỗi khối (bao gồm cả nhóm giao dịch, về mặt kỹ thuật là ngoài chuỗi). Nó có tốc độ phản ứng nhanh hơn con người và được lập trình để ký các giao dịch cụ thể đáp ứng các quy tắc.

Nói cách khác, "người nhặt rác" không thể nhìn thấy bạn, nó không biết rằng bạn đang xem địa chỉ của mình trên trình duyệt chuỗi khối hoặc "kết nối" địa chỉ của bạn với giao diện người dùng của dApp. Nó chỉ nhìn thấy hoạt động của bạn khi bạn ký một giao dịch và phát nó lên mạng.

"Scavenger" và các trò lừa đảo sử dụng "scavenger" đã phát triển theo thời gian.

Sự phát triển của "Scavenger"

Một loại lừa đảo rất phổ biến trong năm 2017 đã lợi dụng các mã thông báo có chức năng khóa [nghĩa là không thể gọi chuyển khoản() thành công] và nguồn cấp giá. Dave Appleton đã đăng một bài vạch trần kiểu lừa đảo này.

Trong kiểu lừa đảo này, trước tiên, kẻ lừa đảo sẽ lấy các mã thông báo có thể bị khóa, nhưng trình khám phá khối vẫn sẽ cung cấp giá của các mã thông báo đó [trong đó phổ biến nhất là Minerum (MNE)]. Sau đó, kẻ lừa đảo sẽ (giả vờ vô tình) công bố khóa riêng của địa chỉ lưu trữ các mã thông báo đó và dụ nạn nhân lấy mã thông báo trong địa chỉ. Để rút mã thông báo, nạn nhân sẽ chuyển ETH đến địa chỉ này dưới dạng phí gas. Tuy nhiên, những kẻ lừa đảo đã sắp xếp sẵn một "người nhặt rác" để chuyển ETH do nạn nhân chuyển vào tài khoản của chúng trong nháy mắt. Về lý thuyết, mã thông báo bị khóa được coi là vô giá trị, vì vậy những kẻ lừa đảo cố gắng khôi phục một số giá trị bị khóa từ những người dùng tham lam cả tin.

Hôm nay, địa chỉ bị tấn công đã được đặt trên quy mô lớn với "người nhặt rác" ETH bên dưới. Ngoài ra còn có một số nhóm lừa đảo áp dụng "người nhặt rác" tiên tiến hơn một cách hợp lý và sẽ ăn mã thông báo ERC 20 dựa trên nguồn cấp giá.

Cách đây một thời gian, tôi đã tiến hành nghiên cứu về một địa chỉ bị tấn công và phát hiện ra rằng những "người nhặt rác" này vẫn đang phát triển:

1) "Người nhặt rác" thích ăn tài sản có giá trị cao, ngay cả khi điều đó có nghĩa là phí giao dịch nhiều hơn.

2) "Scavenger" sẽ sử dụng tất cả ETH có sẵn để đánh cắp càng nhiều giá trị càng tốt và giao dịch của nó có xác suất thắng cao trong cùng một lần.

3) "Scavenger" có một công cụ khớp nối các mã thông báo gốc của nó với các mã thông báo đã cam kết (tức là xKNCa = KNC) để nhận nguồn cấp giá cho các mã thông báo đã cam kết.

4) "Scavenger" có bộ đếm nonce bên trong của riêng nó, nếu nonce cao nhất của nó không được xác nhận (hoặc bị loại bỏ/thay thế) trong một khoảng thời gian, nó sẽ định kỳ đặt lại nonce thành

eth.getTransactionCount()

Đầu ra.

5) Qua một số hoạt động trên chuỗi, chúng ta có thể thấy rằng nếu một tài sản có giá trị cao trở thành con mồi trong mắt của "người nhặt rác", thì "người nhặt rác" thậm chí sẽ chuyển một số ETH vào tài khoản có liên quan dưới dạng phí gas, để Tài sản được chuyển ra khỏi tài khoản.

6) Một số "người nhặt rác" sẽ đặt ngưỡng tối thiểu cho giá trị tài sản. "Scavenger" sẽ không ăn tài sản dưới ngưỡng này. Điều này có nghĩa là bạn có thể không biết rằng có "người nhặt rác" trong tài khoản của mình. Nghi cho ki.

Cho rằng lần đầu tiên chúng tôi viết về “người nhặt rác” vào năm 2017, “người nhặt rác” ngày nay không giống như trước đây, giúp các nhà khai thác tối đa hóa lợi nhuận của họ trong khi tối đa hóa thiệt hại cho nạn nhân của họ.

thôi đi! Người nhặt rác!

Làm thế nào để đánh bại "Scavenger"?

Trước hết, bạn với tư cách là con người không nhanh hơn mã, vì vậy giải pháp của chúng tôi sẽ liên quan đến mã. Dưới đây là một số giải pháp khác nhau dành cho bạn.Mặc dù không thể đảm bảo hiệu quả 100% nhưng luôn có một giải pháp phù hợp với bạn.

Bạn cần tạo danh sách coin muốn vớt (theo thứ tự ưu tiên) để dễ dàng lên kế hoạch. Danh sách này cần bao gồm những điều sau đây:

Địa chỉ hợp đồng mã thông báo

Liệu mã thông báo đã được sử dụng để cầm cố hay chưa (có giới hạn thời gian mở khóa hay không)

Token có chuyển được không

Giá trị mã thông báo (được xác định theo đánh giá chủ quan của người dùng hoặc giá trị USD để ưu tiên)

Quan trọng nhất, bạn phải có phương pháp để thực hiện chương trình một cách nhanh chóng và hiệu quả. Như câu nói nổi tiếng: "Mọi thứ đều được báo trước, và không có gì được báo trước."

Sử dụng mạng Taichi

"Người nhặt rác" hoạt động bằng cách giám sát các giao dịch trong nhóm giao dịch để chuyển đến các địa chỉ "con mồi". Bằng cách này, "người nhặt rác" có thể ký một giao dịch khác và phát sóng giao dịch trước khi giao dịch được xác nhận, do đó lấy số tiền đã chuyển.

Mạng Taichi cho phép bạn gửi các giao dịch đã ký trực tiếp tới những người khai thác (tức là Spark Pool) mà không cần phát chúng tới nhóm giao dịch công khai. Điều này có nghĩa là giao dịch của bạn sẽ đi vào điểm mù của "người nhặt rác" và sẽ không bị robot "người nhặt rác" đánh phủ đầu (ít nhất là theo kinh nghiệm của tôi).


Nguồn: TAICHI.NETWORK

Phương pháp cụ thể là ký trước tất cả các giao dịch của bạn theo thứ tự ban đầu và gửi chúng đến Taiji Network theo chương trình. Hầu hết các "người nhặt rác" chỉ giám sát nhóm giao dịch công khai đối với các giao dịch Ethereum đang chờ được đưa vào và không gọi eth_getBalance cho mỗi khối mới (điều này là để tiết kiệm chu kỳ CPU và lệnh gọi RPC). Nói cách khác, "người nhặt rác" không thể thấy ETH được gửi đến tài khoản "con mồi" thông qua nhóm giao dịch riêng tư và sẽ không ăn nó.

Bạn cần thực hiện một số tính toán để đảm bảo rằng ETH được gửi đến tài khoản dưới dạng phí gas có thể được sử dụng đầy đủ cho mỗi giao dịch đã ký. "Scavenger" có thể bỏ lỡ lượt chạy sớm nếu bạn đếm đúng! (Thông thường, tôi sẽ mặc định đặt phí gas cao hơn vài phần trăm so với giá trị tham chiếu "Rapid" trên GasNow, để tăng khả năng giao dịch được đưa vào khối tiếp theo.)

Bạn có thể sử dụng MyCrypto ngoại tuyến để tạo chữ ký giao dịch và gửi chúng đến mạng Taichi khi sẵn sàng hoặc sử dụng ethers.js (hoặc các thư viện mã khác) để viết mã nhằm tạo giao dịch đã ký.

Sử dụng hợp đồng thông minh có chức năng tự hủy

Phương pháp này tương tự như sử dụng Thái cực mạng. Chúng tôi có thể sử dụng hợp đồng thông minh để chuyển ETH vào tài khoản mà không để lộ giao dịch trong nhóm giao dịch công khai. Để làm điều này, chúng ta có thể triển khai hợp đồng thông minh thông qua một địa chỉ an toàn và gửi ETH đến địa chỉ bị tấn công thông qua hàm tạo của nó (đây sẽ là một giao dịch nội bộ).

pragma sopdity >=0.7.0 <0.9.0;  contract MoveETH {    constructor(address sendToAddress) payable {        address payable addr = payable(address(sendToAddress));        selfdestruct(addr);    }}
` Bằng cách triển khai hợp đồng này, chúng tôi có thể gửi ETH và một chuỗi địa chỉ bị tấn công đến các tham số của hàm tạo. Hợp đồng được tạo và tự hủy trong cùng một giao dịch. Trong số đó, `tự hủy()` có nghĩa là chúng tôi sẽ xóa trạng thái chuỗi khối của hợp đồng này (vì vậy hợp đồng này là một lần) và gửi ETH đến địa chỉ bị tấn công trong cùng một giao dịch. `

ví dụ:

https://goerp.etherscan.io/tx/0x82ccb222eae55aaea73dd0efee1ea6ed7320f880889f280d4a343b8823f86692

Xin lưu ý rằng phương pháp này, mặc dù hiệu quả, nhưng sẽ tăng thêm chi phí, bởi vì chúng tôi đang làm nhiều việc hơn là chuyển ETH từ tài khoản này sang tài khoản khác. Phương pháp này cần chi phí khoảng 70.000 gas. Khi giá gas cao, chỉ riêng chi phí gas đã cao tới 0,0112 ETH.

Tiếp theo, chúng tôi sẽ phát giao dịch được ký trước từ địa chỉ bị tấn công thông qua mạng Taiji (các nút công khai cũng có thể được sử dụng tại đây, vui lòng đặt toàn bộ số dư ETH trong tài khoản làm phí gas, để không bị "người nhặt rác" chiếm trước (Ít nhất là cố gắng giảm khả năng này), vì trong trường hợp này, "người nhặt rác" phải gửi thêm ETH vào tài khoản bị tấn công để giành chiến thắng trong cuộc đấu giá phí gas).

Sử dụng Flashbot

Nói chung, chúng ta cần thanh toán ETH để đưa giao dịch lên chuỗi (vì phí giao dịch được trả bởi người gửi giao dịch). Tuy nhiên, với Flashbots, chúng ta có thể đưa các giao dịch từ các tài khoản bên ngoài vào chuỗi mà không phải trả phí gas (tức là phí giao dịch), chỉ bằng cách "hối lộ" người khai thác bằng tiền từ một tài khoản khác. Nói cách khác, chúng tôi không cần chuyển một lượng ETH đến địa chỉ bị tấn công dưới dạng phí xử lý và chúng tôi có thể lấy đi các mã thông báo trên địa chỉ này. Đúng vậy, chính là nó!

Kế hoạch này yêu cầu sử dụng hai tài khoản - tài khoản bị tấn công và tài khoản được sử dụng để hối lộ những người khai thác.

Nhóm Flashbots đã phát hành một dự án có tên là Flashbots/searcher-sponsored-tx, giới thiệu các nguyên tắc cơ bản về cách đưa các giao dịch vào chuỗi thông qua sơ đồ này.

Chúng tôi sẽ sử dụng tiền từ một tài khoản khác để thanh toán phí giao dịch, vì vậy không cần ETH trong tài khoản bị tấn công. Trên thực tế, chúng tôi ước không có ETH trong tài khoản bị tấn công. Rốt cuộc, điều cuối cùng chúng tôi muốn là kẻ lừa đảo/"người nhặt rác" nhận ra rằng chúng tôi muốn rút tiền và sử dụng ETH ban đầu trong tài khoản để chạy trốn chúng tôi .

Để đảm bảo không có ETH trong tài khoản bị tấn công, chúng tôi khuyên bạn nên chạy bot ghi đĩa.

Chúng tôi thường khuyên bạn nên chạy burner-bot trên nhiều máy và sử dụng một nút RPC khác nhau cho mỗi phiên bản. Ví dụ: sử dụng Infura để chạy trình ghi cục bộ và một nhà cung cấp khác như Quiknode để chạy trình ghi trên máy chủ từ xa. Điều này cho phép dự phòng trong trường hợp xảy ra sự cố như độ trễ mạng cao hoặc lỗi nút (ví dụ: giới hạn tốc độ, sự cố đồng bộ hóa, v.v.).

Mã trong Flashbots/searcher-sponsored-tx cần được sửa đổi theo nhu cầu cụ thể của bạn, nhưng có một công cụ ở đây có thể giúp bạn lưu mã thông báo trong các địa chỉ bị tấn công. Công cụ Flashbots rất linh hoạt và có thể hỗ trợ một lệnh gọi transfer() duy nhất hoặc các lệnh gọi unstake() và transfer().

Nếu không hiểu mã, bạn cũng có thể thử giao diện người dùng chức năng của Flashbots do trang web @kendricktan/flashbots.tools cung cấp:https://flashbots.tools/。

Làm thế nào để tránh căn bản "scavenger"?

Tất nhiên, biện pháp phòng ngừa tốt nhất là bảo vệ địa chỉ của chính bạn khỏi bị tấn công bởi "những kẻ ăn xác thối", vì vậy bạn không cần phải đấu trí với "những kẻ ăn xác thối".

Trong những năm gần đây, chúng tôi đã thấy điều ngược lại trong một số giao diện người dùng ứng dụng - cho phép người dùng sử dụng thông tin bí mật thô trên giao diện dapp. Đây là thực hành rất không an toàn và không nên được khuyến khích.

Không bao giờ nhập thông tin bí mật ban đầu của bạn (khóa cá nhân, tệp lưu trữ khóa và cụm từ gốc) trên thiết bị được kết nối internet hoặc bất kỳ trang web nào.

Chúng tôi khuyên bạn nên sử dụng ví phần cứng để đảm bảo khóa riêng được lưu trữ trên một thiết bị riêng biệt - nếu bạn sử dụng MetaMask để tương tác với dApps, MetaMask gần đây đã phát hành bản cập nhật cho phép người dùng sử dụng nhiều địa chỉ ví phần cứng.


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
Mục lục bài viết
Tải ứng dụng Odaily Nhật Báo Hành Tinh
Hãy để một số người hiểu Web3.0 trước
IOS
Android