Phê duyệt token và an toàn khi ký: bạn đồng ý điều gì khi nhấn xác nhận
Ví cứng không thể cứu bạn khỏi một chữ ký mà bạn đã tự chọn trao đi. Phần lớn các vụ trộm trên chuỗi ngày nay không phải là khóa bị đánh cắp mà là một quyền được cấp — một phê duyệt hoặc một thông điệp đã ký cho phép hợp đồng rút sạch ví sau đó. Bài học này giải thích ý nghĩa của từng lời nhắc và những lời nhắc nào cần từ chối.

Bạn sẽ học được gì
- Một phê duyệt cho phép hợp đồng di chuyển token khỏi ví của bạn mà không cần hỏi lại. Phê duyệt không giới hạn cho một hợp đồng độc hại hoặc bị xâm phạm về sau là nguyên nhân hàng đầu khiến ví bị rút sạch.
- "Các yêu cầu ký \"miễn phí\" và \"chỉ để xác minh\" có thể là những lệnh ngoài chuỗi chuyển tài sản của bạn đi. Hãy đọc nội dung đang được ký, không phải những gì trang web nói về nó."
- Xem lại và thu hồi phê duyệt định kỳ, giữ một ví riêng để tương tác với các trang mới, và coi mọi lời nhắc là một chỉ thị đối với tiền của bạn.
Các bài học trước đã bảo vệ khóa và tài khoản. Bài này nói về những giao dịch mà một chiếc ví hoàn toàn an toàn vẫn sẽ ký nếu bạn ra lệnh. Các cuộc tấn công ở đây không đánh cắp cụm từ khôi phục. Chúng xin phép, một cách lịch sự, trong một hộp thoại, và bạn chấp thuận.
Phê duyệt là gì
Token trên các chuỗi kiểu Ethereum tuân theo một tiêu chuẩn trong đó hợp đồng token lưu số dư cho từng địa chỉ — và, tách riêng, một allowance (hạn mức cho phép): lượng số dư của bạn mà một địa chỉ khác được phép di chuyển. Để hoán đổi USDC trên một DEX, router của DEX phải được phép lấy USDC từ bạn. Bạn cấp quyền đó bằng cách ký một giao dịch approve chỉ định router (spender — bên được chi tiêu) và một số lượng.
Bài học về DEX đã nhắc đến điều này như bước hai của một lần hoán đổi. Điều bài đó chưa nói là phê duyệt tồn tại lâu dài. Một khi được cấp, spender có thể di chuyển tối đa số lượng đó khỏi ví của bạn vào bất kỳ thời điểm nào trong tương lai, trong bất kỳ giao dịch nào, mà không cần thêm lời nhắc.
Hai hệ quả:
- Phê duyệt không giới hạn. Các giao diện mặc định đặt số lượng là "không giới hạn" để bạn không bao giờ phải phê duyệt lại. Điều đó có nghĩa là spender có thể lấy toàn bộ số dư token đó của bạn — ngay bây giờ, hoặc ba năm sau.
- Phê duyệt sống lâu hơn trang web. Nếu hợp đồng bạn đã phê duyệt sau đó bị khai thác, hoặc vốn độc hại từ đầu, phê duyệt của bạn chính là tấm vé của kẻ tấn công. Bạn không cần truy cập lại trang đó. Bạn không cần làm gì cả.

Drainer lợi dụng điều này như thế nào
Wallet drainer là một bộ công cụ — được bán cho kẻ lừa đảo dưới dạng dịch vụ — chạy phía sau một trang web giả: một đợt airdrop giả mạo, một đợt mint giả, một bản sao của DEX thật, một liên kết "nhận thưởng" trong một Discord bị hack hoặc một tài khoản dự án bị chiếm đoạt.
- Bạn kết nối ví. Bản thân việc này vô hại; nó chỉ tiết lộ địa chỉ của bạn.
- Trang web đọc số dư của bạn và chọn token có giá trị nhất.
- Nó đưa ra lời nhắc phê duyệt token đó cho hợp đồng của drainer, được trình bày dưới dạng "Claim", "Verify" hoặc "Enable trading". Một số lời nhắc yêu cầu phê duyệt nhiều token trong một lô.
- Bạn xác nhận. Không có gì hiển thị xảy ra — hoặc một thông báo thành công giả xuất hiện.
- Vài phút hoặc vài ngày sau, drainer gọi transferFrom và rút sạch các số dư đã được phê duyệt.
Ví cứng hiển thị phê duyệt, nhưng nội dung hiển thị chỉ là một địa chỉ spender và một số lượng, vốn vô nghĩa trừ khi bạn đối chiếu địa chỉ với một hợp đồng đã biết. Hầu hết mọi người nhấn xác nhận.
Chữ ký không phải là giao dịch
Một loại lời nhắc thứ hai yêu cầu bạn ký một thông điệp thay vì gửi một giao dịch. Nó không tốn gas và trang web nói rằng nó "chỉ để đăng nhập" hoặc "xác minh quyền sở hữu". Thường thì đúng là vậy. Đôi khi nó là một lệnh ngoài chuỗi: một chỉ thị đã ký mà một sàn giao dịch NFT hoặc hệ thống permit sẽ thực thi trên chuỗi sau đó.
Hai dạng quan trọng:
- Permit / Permit2. Một thông điệp đã ký mà bản thân nó là một phê duyệt — nó cấp allowance mà không cần giao dịch. Mọi điều ở trên về phê duyệt đều áp dụng, nhưng lời nhắc trông như một chữ ký vô hại.
- Niêm yết trên marketplace. Một thông điệp đã ký đăng bán NFT hoặc token của bạn với giá bằng không cho một người mua cụ thể. Ký nó đồng nghĩa với cho họ luôn.
Lời nhắc của ví sẽ hiển thị dữ liệu có cấu trúc đang được ký. Nếu nó chứa spender, token, số lượng hoặc thời hạn, thì đó là một sự ủy quyền, bất kể trang web gọi nó là gì. Nếu ví cảnh báo rằng dữ liệu không đọc được (một hash thô), hãy từ chối: các trang web hợp pháp không yêu cầu ký mù.
Đầu độc địa chỉ
Một thủ thuật liên quan nhắm vào thói quen sao chép địa chỉ từ lịch sử giao dịch. Kẻ tấn công gửi cho bạn một giao dịch chuyển giá trị bằng không từ một địa chỉ có các ký tự đầu và cuối trùng với một địa chỉ bạn thường gửi tới. Lần tới khi bạn sao chép "địa chỉ quen thuộc" từ lịch sử, bạn sao chép địa chỉ của chúng. Kiểm tra toàn bộ địa chỉ, hoặc dùng sổ địa chỉ của ví, không dùng lịch sử.
Những thói quen ngăn chặn điều này
Đọc lời nhắc, không phải trang web. Trang web có thể nói bất cứ điều gì. Lời nhắc của ví cho thấy điều sẽ thực sự xảy ra: hợp đồng được gọi, hàm, spender, số lượng. Hãy học cách tìm bốn thứ đó trên màn hình xác nhận của ví bạn.
Phê duyệt đúng số lượng. Hầu hết các ví và giao diện cho phép chỉnh sửa số lượng phê duyệt. Hãy đặt bằng quy mô của giao dịch này. Nó tốn thêm một lần phê duyệt vào lần sau và loại bỏ rủi ro thường trực.
Thu hồi những gì bạn không còn dùng. Các công cụ quản lý phê duyệt liệt kê mọi allowance mà một địa chỉ đã cấp và cho phép bạn thu hồi từng cái bằng một giao dịch. Hãy xem lại hàng quý, và ngay lập tức sau bất kỳ tin tức nào về một giao thức bị khai thác.
Dùng các ví riêng biệt.
| Ví | Nắm giữ | Tương tác với |
|---|---|---|
| Kho lưu trữ | Tài sản dài hạn | Không gì cả. Chỉ nhận; chỉ gửi tới các ví khác của chính bạn. Được bảo vệ bằng ví cứng. |
| Hàng ngày | Những gì bạn đang tích cực giao dịch | Các giao thức đã có tên tuổi mà bạn đã dùng trước đây |
| Ví tạm | Số tiền nhỏ bạn có thể chấp nhận mất | Trang web mới, đợt mint, airdrop, bất cứ thứ gì lạ |
Một drainer rút sạch ví tạm chỉ lấy được những gì bạn đã bỏ vào đó. Một kho lưu trữ không bao giờ ký phê duyệt thì không thể bị rút sạch.
Xác minh địa chỉ hợp đồng. Trước một phê duyệt lớn, hãy kiểm tra rằng spender là địa chỉ router hoặc hợp đồng đã được giao thức công bố, lấy từ tài liệu của giao thức — không phải từ trang web đang đưa ra lời nhắc cho bạn.
Mô phỏng. Một số ví và tiện ích mở rộng hiển thị các thay đổi số dư dự kiến của một giao dịch trước khi bạn ký. Nếu một lần "nhận thưởng" lại làm giảm số dư của bạn, đó không phải là nhận thưởng.
Nếu bạn đã ký một cái rồi
Hãy thu hồi phê duyệt ngay lập tức — trước khi drainer hành động, nếu bạn đủ nhanh. Chuyển số dư còn lại của token đó sang một ví mới. Hãy giả định mọi phê duyệt khác được cấp trên cùng trang web đó cũng độc hại và thu hồi chúng. Cụm từ khôi phục không bị xâm phạm bởi một phê duyệt, nên bản thân ví có thể giữ lại; các phê duyệt thì không.
EthereumETHTrên 50 thị trường giao ngay chúng tôi lập chỉ mụcĐiều này có nghĩa gì trong thực tế
- Phê duyệt là quyền thường trực để lấy token của bạn. Hãy cấp đúng số lượng, cho các hợp đồng đã xác minh, và thu hồi khi xong việc.
- Một chữ ký không tốn gas vẫn có thể di chuyển tài sản. Hãy đọc dữ liệu có cấu trúc; từ chối các hash mù.
- Giữ một kho lưu trữ không ký gì cả và một ví tạm nắm giữ rất ít. Rủi ro nằm ở chiếc ví làm cả hai việc.
Đi tiếp từ đây
Bạn đã hoàn thành lộ trình Bảo mật và chương trình học Coinmico Learn ban đầu. Bảng thuật ngữ định nghĩa mọi thuật ngữ mà các bài học này đã giới thiệu, mỗi thuật ngữ kèm liên kết tới trang Coinmico nơi con số đó được đo trực tiếp. Từ đây, mục Nghiên cứu áp dụng những ý tưởng này vào các thị trường cụ thể, với các khối dữ liệu mà bạn đã thấy xuyên suốt.
Tài sản trong bài
Mọi số liệu ở đây đều do Coinmico đo trên các sàn và chuỗi chúng tôi lập chỉ mục. Xem phương pháp của chúng tôi.



