01 · Объяснение

Giải phẫu một lệnh chặn USDT: Tether đóng băng token như thế nào

Từ năm 2017, Tether đã đưa vào danh sách đen khoảng 8.000 địa chỉ blockchain nắm giữ hơn 4 tỷ đô la. Chúng tôi phân tích cơ chế kỹ thuật: một giao dịch chuyển tiền bình thường trở thành sự kiện AddedBlackList như thế nào, preban → ban nghĩa là gì, cách kiểm tra một địa chỉ và cửa sổ cơ hội nằm ở đâu.

explainerCryptoAlert Research

Tether có khả năng kỹ thuật để chặn USDT được giữ tại bất kỳ địa chỉ blockchain nào. Sau khi bị chặn như vậy, chủ sở hữu địa chỉ không thể chuyển USDT nữa, mặc dù chúng vẫn tiếp tục hiển thị trong số dư.

Từ năm 2017, Tether đã khởi động việc đưa vào danh sách đen khoảng 8.000 địa chỉ blockchain với tổng giá trị hơn 4 tỷ đô la.

So với quy mô tổng thể của lượng USDT lưu thông, những con số này có vẻ nhỏ. Nhưng đối với một người tham gia thị trường cá nhân, danh sách đen trở thành một sự kiện then chốt — đặc biệt khi họ chắc chắn rằng mình không làm gì bất hợp pháp. Những trường hợp như vậy không hiếm như tưởng. Việc một số địa chỉ sau đó được gỡ chặn xác nhận rằng đôi khi các quyết định cá nhân được đưa ra dựa trên kết luận sai của bên khởi xướng.

Việc đưa vào danh sách đen không diễn ra tùy tiện — phải có căn cứ, và quy trình có cả khía cạnh pháp lý lẫn vận hành. Chúng tôi đề cập những khía cạnh đó trong một bài viết riêng về việc ai thực sự đưa ra quyết định. Mục tiêu của bài viết này là giải thích cơ chế kỹ thuật của việc đưa USDT vào danh sách đen.

01Cơ bản

Một giao dịch chuyển USDT thông thường hoạt động như thế nào

Để hiểu quá trình chặn, trước tiên chúng ta cần hiểu một giao dịch chuyển USDT thông thường diễn ra kỹ thuật như thế nào.

Hãy xem xét ví dụ về một giao dịch USDT trên mạng TRON. Người dùng khởi tạo việc chuyển USDT từ địa chỉ của mình đến địa chỉ của người nhận. Tại thời điểm đó, giao dịch tương tác với smart contract USDT trên TRON:

TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t

Smart contract là thứ xử lý việc hạch toán số dư và xử lý chuyển token. Khi một giao dịch chuyển được thực thi, logic chuyển token nội bộ của hợp đồng được gọi. Ở cấp độ sự kiện của hợp đồng, điều này được ghi lại dưới dạng sự kiện Transfer — tức là sự dịch chuyển tài sản từ người gửi đến người nhận.

Đơn giản hóa, quy trình trông như sau:

  1. Người dùng khởi tạo một giao dịch chuyển USDT;
  2. Giao dịch gọi smart contract USDT;
  3. Hợp đồng xác minh các điều kiện chuyển;
  4. Nếu không có hạn chế nào, số dư của người gửi giảm và số dư của người nhận tăng;
  5. Một sự kiện Transfer được ghi on-chain.

USDT trên Ethereum hoạt động tương tự: một giao dịch chuyển được xử lý qua smart contract của token, và một giao dịch chuyển thành công được ghi lại dưới dạng sự kiện Transfer. Sự khác biệt chính giữa TRON và Ethereum đến từ môi trường kỹ thuật: chuẩn token, định dạng địa chỉ, phí, tốc độ xử lý giao dịch.

Hợp đồng USDT trên các mạng chính
02Kiểm soát

Các cơ chế kiểm soát trong smart contract USDT

Ngoài các giao dịch chuyển thông thường, smart contract USDT có các chức năng quản trị cho phép nhà phát hành quản lý cách token lưu thông đối với các địa chỉ cụ thể. Nhà phát hành có thể thêm một địa chỉ vào danh sách đen, gỡ nó khỏi danh sách đen, và đốt USDT được giữ tại một địa chỉ trong danh sách đen.

Những hành động này được phản ánh qua các sự kiện của hợp đồng. Để phân tích việc đưa vào danh sách đen, ba sự kiện là then chốt:

  • AddedBlackList — thêm một địa chỉ vào danh sách đen;
  • RemovedBlackList — gỡ một địa chỉ khỏi danh sách đen;
  • DestroyedBlackFunds — đốt tiền tại một địa chỉ trong danh sách đen.

Đơn giản hóa, logic trông như sau:

  1. Tether thêm một địa chỉ vào BlackList;
  2. Smart contract bắt đầu nhận diện địa chỉ này là bị chặn;
  3. Khi có nỗ lực chuyển tiền đi, hợp đồng kiểm tra trạng thái địa chỉ;
  4. Nếu địa chỉ nằm trong BlackList, giao dịch chuyển bị từ chối;
  5. Nếu địa chỉ không nằm trong BlackList, giao dịch chuyển có thể tiếp tục.
03Danh sách đen hai giai đoạn

Từ preban đến ban: việc đưa vào danh sách đen xuất hiện on-chain như thế nào

Việc đưa USDT vào danh sách đen trên TRON được ghi lại không phải là một mà là hai giai đoạn on-chain liên quan: đầu tiên, một thao tác được tạo trong MultisigWallet của Tether; sau đó thao tác đó được thực thi và dẫn đến việc địa chỉ được thêm vào BlackList.

Trình tự này có thể được chia một cách quy ước thành hai sự kiện:

  1. Preban — tạo thao tác trong MultisigWallet của Tether.
  2. Ban — thực thi thao tác thực tế, sau đó địa chỉ vào BlackList.

Preban: tạo thao tác trong MultisigWallet của Tether

Ở giai đoạn preban, một phương thức trên hợp đồng multisig được gọi. Trong giao dịch này, địa chỉ chưa thực sự bị đưa vào danh sách đen — nó chỉ tạo một thao tác mà multisig phải thực thi sau khi có xác nhận cần thiết.

Các tham số chính của một giao dịch preban:

Tham số giao dịch preban trong MultisigWallet

Trong nhật ký sự kiện của giao dịch preban, các sự kiện của hợp đồng multisig được ghi lại. TransactionId là định danh nội bộ của thao tác trong MultisigWallet của Tether sẽ được thực thi sau đó.

Địa chỉ sắp bị đưa vào danh sách đen được ẩn ở đâu

Địa chỉ sắp bị đưa vào danh sách đen không được hiển thị trực tiếp trong nhật ký sự kiện của giao dịch preban. Nó được ẩn bên trong tham số Data, phải được giải mã theo quy tắc Solidity ABI.

Nếu thao tác đang chuẩn bị một lệnh gọi tới hàm blacklist, cấu trúc dữ liệu trông như sau:

0xecb93c0 + 32-byte address argument
(<function selector> + <ABI-encoded arguments>)

4 byte đầu tiên là bộ chọn hàm. Phần còn lại là đối số được mã hóa ABI. Để trích xuất địa chỉ, lấy 20 byte cuối của đối số và giải mã chúng.

Trong TRON, địa chỉ có thể được hiển thị ở hai dạng:

  • Định dạng Hex — bắt đầu bằng tiền tố 41;
  • Định dạng Base58Check — dễ đọc với con người, bắt đầu bằng T.

Ban: thực sự thêm địa chỉ vào BlackList

Việc chặn thực tế diễn ra sau đó, khi thao tác multisig đã tạo được thực thi. Trong giao dịch ban, nhật ký hợp đồng USDT hiển thị:

AddedBlackList(address target)

Sự kiện này là xác nhận on-chain rằng địa chỉ đã được thêm vào BlackList.

04Cửa sổ phản ứng

Cửa sổ cơ hội: thời gian từ preban đến ban

Giữa preban và ban có một khoảng thời gian. Trước khi sự kiện AddedBlackList xuất hiện, địa chỉ chưa nằm trong BlackList và về mặt kỹ thuật vẫn giữ khả năng sử dụng USDT. Khoảng này là thứ chúng tôi gọi là cửa sổ cơ hội.

Ngày
Cửa sổ từng là
2017–đầu 2020: giữa preban và ban — lên đến vài ngày
Giờ
Cửa sổ hiện nay
Mức trung bình điển hình: từ 1 đến 24 giờ
Phút
Trong các trường hợp phối hợp
Trong các sự kiện chặn hàng loạt — từ vài giây đến vài phút

Cửa sổ từng là vài ngày. Nay nó đã rút ngắn đáng kể — đôi khi vài giờ, đôi khi vài phút. Điều này làm giảm khả năng dự đoán cho chủ sở hữu địa chỉ và khiến phản ứng nhanh trở nên then chốt.

Trước sự kiện AddedBlackList, địa chỉ vẫn có thể thực hiện các giao dịch chuyển USDT đi. Vì vậy, từ góc nhìn của một người dùng ngay tình nhận thấy nguy cơ sắp bị chặn, trình tự hành động hợp lý là: trước tiên chuyển tiền ra khỏi địa chỉ có khả năng bị chặn, sau đó xử lý các nguyên nhân của việc chặn.

05Sau khi ban

Điều gì xảy ra sau khi ban thực tế

Sau khi bị đưa vào danh sách đen, địa chỉ không thể gửi USDT nữa. Các giao dịch chuyển đi bị logic smart contract từ chối. Số tiền sẽ tiếp tục hiển thị trong số dư, và các giao dịch chuyển đến về mặt kỹ thuật vẫn có thể tới địa chỉ.

Điều xảy ra tiếp theo phụ thuộc vào căn cứ đưa vào danh sách đen:

  • Địa chỉ có thể nằm trong BlackList vô thời hạn;
  • Địa chỉ có thể được gỡ chặn qua RemovedBlackList;
  • Tiền có thể bị đốt qua DestroyedBlackFunds, có thể kèm phát hành lại vào một địa chỉ mới.

Sau khi ban thực tế, công việc chuyển sang hướng pháp lý và phân tích: xác định nguồn rủi ro, chuẩn bị phân tích on-chain, xác nhận nguồn gốc tiền, và liên lạc với Tether cùng các cơ quan nhà nước đã khởi xướng việc chặn — với sự tham gia của cố vấn pháp lý liên quan.

06Dấu hiệu

Làm sao biết địa chỉ của bạn đã bị Tether đưa vào danh sách đen

Người dùng thường không nhận ra danh sách đen ngay lập tức. Thoạt nhìn mọi thứ có vẻ bình thường: USDT hiển thị trong số dư, mạng hoạt động, địa chỉ đúng, các giao dịch chuyển đến được ghi có thành công. Nhưng khi cố gắng gửi USDT, giao dịch thất bại.

Các thao tác khác trên địa chỉ có thể vẫn hoạt động bình thường. Ví dụ, người dùng có thể gửi TRX hoặc các token khác thành công, trong khi vấn đề chỉ xuất hiện với các giao dịch chuyển USDT đi. Đây là một dấu hiệu quan trọng: danh sách đen của Tether áp dụng ở cấp độ smart contract USDT, không phải toàn bộ địa chỉ trên mạng TRON.

Các giao dịch chuyển USDT đi thất bại, trong khi các thao tác khác (gửi token native, nhận tiền chuyển đến) hoạt động bình thường.

Dấu hiệu chính của việc bị đưa vào danh sách đen

Nếu địa chỉ nằm trong BlackList của Tether, smart contract USDT từ chối nỗ lực chuyển tiền đi. Trong ví, điều này có thể hiện ra dưới dạng lỗi gửi, và trong trình khám phá khối, giao dịch có thể hiển thị với trạng thái Failed.

Điều quan trọng là phân biệt việc đưa vào danh sách đen với các sự cố kỹ thuật thông thường:

  • Không đủ token native (TRX, ETH) để trả phí;
  • Ví không gửi giao dịch (lỗi UI, RPC hoặc ví);
  • Tắc nghẽn mạng hoặc gián đoạn hạ tầng tạm thời.
07Kiểm tra

Cách kiểm tra việc đưa vào danh sách đen qua smart contract USDT

Bước 1. Mở smart contract USDT trên TRON trong Tronscan: TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t

Bước 2. Vào tab Contract.

Bước 3. Mở phần Read Contract.

Bước 4. Tìm phương thức getBlackListStatus. Trong Tronscan nó có thể hiện ra dưới dạng «8. getBlackListStatus (59bf1abe)».

Bước 5. Nhập địa chỉ bạn muốn kiểm tra và thực thi truy vấn.

Kết quả của lệnh gọi getBlackListStatus

Kiểm tra thủ công qua Tronscan phù hợp cho việc xác minh một lần. Để phản ứng nhanh, tốt hơn là dùng giám sát tự động: nó có thể theo dõi các lần thêm vào BlackList qua sự kiện AddedBlackList và — khi có chức năng — hiển thị các dấu hiệu sắp bị đưa vào danh sách đen trước sự kiện AddedBlackList thực tế.

08Nơi theo dõi trực tiếp

Cách giám sát hoạt động danh sách đen USDT theo thời gian thực

Mọi sự kiện — preban, ban, unban, destroy — đều được ghi công khai on-chain. Điều này có nghĩa bất kỳ ai cũng có thể xây dựng giám sát:

  • Cách tiếp cận trực tiếp — chạy một node lưu trữ TRON và Ethereum, đăng ký nhật ký sự kiện của hợp đồng USDT qua WebSocket. Rẻ nhất về chi phí, nhưng cần hạ tầng.
  • Qua dịch vụ bên thứ ba — QuickNode Streams, webhook của Alchemy, Infura. Trả phí, nhưng không cần hạ tầng riêng.
  • Qua một sản phẩm sẵn có — chúng tôi làm điều này theo thời gian thực từ năm 2017: nguồn cấp cảnh báo Telegram, REST API, máy chủ MCP cho công cụ AI, HuggingFace dataset cho các nhà nghiên cứu.

Đọc thêm