Bỏ qua tới nội dung

Không phải sàn giao dịch, không nhận tiền.

Audit smart contract là gì? Cách đọc báo cáo, nhận audit giả

Audit smart contract là kiểm tra mã hợp đồng tìm lỗi bảo mật, không phải bảo đảm an toàn. Cách đọc báo cáo, vụ đã audit vẫn mất tiền, huy hiệu CertiK giả.

Viết: Đăng · Kiểm chứng 29/10/2026 · 9 phút đọc
10 nguồn
Mục lục 6 phần
  1. 01Audit smart contract gồm những việc gì?
  2. 02Audit không bảo đảm điều gì?
  3. 03Cách đọc một báo cáo audit thật
  4. 04Đã audit vẫn bị hack hoặc rug pull: hai vụ có nguồn
  5. 05Huy hiệu “đã audit” giả: dấu hiệu và cách kiểm
  6. 06Ở Việt Nam, token “đã audit” có được chào bán không?
  7. Câu hỏi thường gặp
  8. Nguồn tham khảo

Tóm tắt nhanh

  • Audit smart contract (kiểm toán hợp đồng thông minh) là việc một bên độc lập đọc và kiểm thử mã của hợp đồng để tìm lỗi bảo mật trước hoặc sau khi triển khai. Nó giảm rủi ro lỗi mã, không bảo đảm dự án an toàn hay trung thực.
  • Báo cáo audit chỉ đúng với đúng phiên bản mã được kiểm, xác định bằng mã commit. Lỗi được ghi “acknowledged” (đã ghi nhận) là lỗi vẫn còn trong mã.
  • Đã audit vẫn có thể mất tiền: Euler Finance bị khai thác khoảng 197 triệu USD ngày 13/3/2023 dù đã được audit; Merlin DEX mất gần 2 triệu USD vài ngày sau khi CertiK hoàn tất audit (4/2023), CertiK nói audit không ngăn được nhà phát triển gian lận.
  • CertiK (17/01/2024) cảnh báo các trang lừa đảo tự nhận được CertiK audit bằng chứng nhận giả. Cách kiểm: tìm dự án trên chính trang của đơn vị audit, so địa chỉ hợp đồng trong báo cáo với địa chỉ bạn sắp dùng.
  • Ở Việt Nam, một token đã audit không vì thế mà được chào bán hợp pháp: theo Nghị quyết 05/2025/NQ-CP, tài sản mã hóa phát hành trong thí điểm chỉ được chào bán cho nhà đầu tư nước ngoài.
Audit smart contract là gì? Cách đọc báo cáo, nhận audit giả

Audit smart contract (kiểm toán hợp đồng thông minh) là việc một bên độc lập đọc mã, chạy công cụ và kiểm thử một hợp đồng thông minh để tìm lỗi bảo mật, rồi ghi kết quả vào một báo cáo. Audit giảm khả năng hợp đồng có lỗi mã bị khai thác. Nó không bảo đảm dự án an toàn, không kiểm đội ngũ có trung thực hay không, và chỉ đúng với phiên bản mã đã được kiểm. Tài liệu cho lập trình viên của ethereum.org viết: “Smart contract audits won’t catch every bug” (audit hợp đồng thông minh không bắt được mọi lỗi) và khuyên “avoid treating audits as a silver bullet” (đừng coi audit là thuốc tiên).

Với người dùng, câu “dự án đã được audit” hay xuất hiện trong lời mời mua token mới. Bài này giải thích audit là gì và không là gì, cách đọc một báo cáo thật, các vụ đã audit vẫn mất tiền, và cách nhận ra huy hiệu “audited” giả.

Audit smart contract gồm những việc gì?

Một đợt audit thường gồm: chốt phạm vi mã, đọc mã thủ công, chạy công cụ phân tích tự động, kiểm thử các tình huống tấn công, rồi viết báo cáo và kiểm lại phần dự án đã sửa. Thứ tự thường gặp:

  1. Chốt phạm vi. Dự án và đơn vị audit thống nhất những file nào, phiên bản nào được kiểm. Phiên bản được định danh bằng mã commit trên kho mã; Quantstamp gọi mã này là “a digital fingerprint of the code” (dấu vân tay số của mã).
  2. Đọc mã và kiểm thử. Người kiểm tìm các lỗi đã biết (gọi lại hàm trước khi cập nhật số dư, sai quyền quản trị, tính toán làm tròn) và lỗi logic riêng của dự án.
  3. Báo cáo bản đầu. Mỗi lỗi được xếp mức nghiêm trọng và mô tả cách sửa.
  4. Dự án sửa, đơn vị audit kiểm lại. Báo cáo cuối ghi lỗi nào đã sửa, lỗi nào dự án chọn giữ nguyên.

Audit thường đi cùng các biện pháp khác như chương trình thưởng tìm lỗi (bug bounty). ethereum.org khuyên đặt mức thưởng “in proportion to the amount of funds at stake” (tương xứng với số tiền đang bị đe dọa).

Audit không bảo đảm điều gì?

Audit không bảo đảm hợp đồng hết lỗi, không kiểm phần nằm ngoài phạm vi, và không ngăn được người giữ quyền quản trị rút tiền. Các giới hạn chính, từng điểm:

Audit không làmVì sao quan trọng với người dùng
Không kiểm mã được sửa, nâng cấp sau ngày auditHợp đồng dạng proxy có thể đổi mã bất cứ lúc nào người quản trị muốn
Không kiểm hợp đồng ngoài phạm viTiền có thể nằm ở hợp đồng khác, ở cầu nối, ở nguồn dữ liệu giá bên ngoài
Không ngăn đội ngũ gian lậnNếu ví quản trị có quyền rút, đổi phí, khóa bán, audit chỉ ghi nhận quyền đó, không gỡ được
Không đánh giá mô hình kinh doanhToken có thể vô giá trị dù mã không có lỗi
Không phải lời khuyên đầu tưBáo cáo là ý kiến kỹ thuật về mã tại một thời điểm

Điểm thứ ba là chỗ nhiều người hiểu nhầm nhất. Một rug pull do chính đội ngũ thực hiện thường dùng đúng những quyền mà báo cáo audit đã ghi là “rủi ro tập trung” (centralization risk). Với token dạng honeypot, cơ chế chặn bán nằm sẵn trong mã; nếu hợp đồng đó nằm trong phạm vi của một báo cáo audit thật, cơ chế này thường được ghi thành một lỗi hoặc rủi ro.

Cách đọc một báo cáo audit thật

Đọc năm chỗ: ngày, phạm vi và mã commit, địa chỉ hợp đồng, danh sách lỗi theo mức, và trạng thái từng lỗi. Không cần biết lập trình để làm các bước dưới đây.

  • Ngày báo cáo và ngày kiểm lại. Báo cáo cũ hơn lần nâng cấp gần nhất của hợp đồng thì không còn nói về mã đang chạy.
  • Phạm vi. Danh sách file, hợp đồng nằm trong phạm vi. Hợp đồng giữ tiền (kho tiền, cầu nối, hợp đồng quản trị) có trong danh sách không.
  • Mã commit. Theo Quantstamp, nếu mã commit của kho đổi sau khi audit thì kho đó “contains code that is out-of-scope” (chứa mã nằm ngoài phạm vi, chưa được kiểm).
  • Địa chỉ hợp đồng. Nếu báo cáo ghi địa chỉ đã triển khai, so từng ký tự với địa chỉ trên block explorer và địa chỉ trong ví khi bạn sắp ký.
  • Lỗi nghiêm trọng và trạng thái. Đọc các lỗi mức cao trước, rồi xem trạng thái.

Trạng thái lỗi hay gặp, theo cách Quantstamp giải thích:

Trạng tháiNghĩa
Fixed, Resolved (đã sửa)Dự án đã sửa, đơn vị audit kiểm lại
Mitigated (đã giảm thiểu)Lỗi “is still present in the codebase” (vẫn còn trong mã), có cách giảm hậu quả
Acknowledged (đã ghi nhận)Dự án biết và chọn không sửa: “the issue remains unresolved” (lỗi vẫn chưa được giải quyết)

Các mức nghiêm trọng Quantstamp dùng là High (cao), Medium (trung bình), Low (thấp), Informational (tham khảo) và Undetermined (chưa xác định được tác động); mỗi đơn vị audit có thể đặt tên và tiêu chí hơi khác nhau, nên đọc phần định nghĩa ở đầu báo cáo. Một báo cáo có lỗi mức cao ở trạng thái “acknowledged”, nhất là lỗi về quyền quản trị, là thông tin quan trọng hơn chữ “audited” trên trang chủ dự án.

Đã audit vẫn bị hack hoặc rug pull: hai vụ có nguồn

Euler Finance và Merlin DEX là hai kiểu thất bại khác nhau: một bên là lỗi mã lọt qua audit, một bên là đội ngũ dùng quyền quản trị.

VụNgàyThiệt hạiĐiều xảy ra
Euler Finance (cho vay phi tập trung)13/3/2023Khoảng 197 triệu USDTheo CertiK, kẻ tấn công khai thác hàm “quyên góp” vào quỹ dự trữ thiếu bước kiểm tra tài sản bảo đảm
Merlin DEX (sàn phi tập trung trên zkSync)Cuối 4/2023Khoảng 1,8 triệu USD theo CertiK, gần 2 triệu USD theo The BlockCertiK gọi là rug pull nội bộ, không phải hack từ bên ngoài

Với Euler, Cointelegraph (17/3/2023) dẫn danh sách mà CEO Euler chia sẻ: dự án đã qua 10 lần audit của 6 đơn vị từ 5/2021 đến 9/2022, trong đó có Sherlock. The Block (14/3/2023) đưa tin Sherlock đồng ý chi trả một yêu cầu bồi thường 4,5 triệu USD cho Euler sau vụ khai thác. Diễn biến kỹ thuật và việc kẻ tấn công trả lại tiền ở bài flash loan là gì.

Với Merlin, The Block (27/4/2023) viết tiền bị rút “days after the audit was completed” (vài ngày sau khi audit hoàn tất), và dẫn lời CertiK rằng audit “cannot prevent malicious activities on the part of rogue developers such as rug pulls” (không ngăn được hành vi gian lận của nhà phát triển, như rug pull). Trong cập nhật ngày 04/5/2023, CertiK viết báo cáo công khai về Merlin DEX “identified the centralization issue” (đã chỉ ra vấn đề tập trung quyền), tức rủi ro đã được ghi trên giấy trước khi tiền mất.

Bài học không phải “audit vô dụng”, mà là: audit trả lời câu hỏi “mã có lỗi không”, còn câu hỏi “ai giữ quyền và họ có lấy tiền được không” phải tự đọc trong báo cáo.

Huy hiệu “đã audit” giả: dấu hiệu và cách kiểm

Lời khoe “audited by …” kèm logo trên trang dự án hay trong nhóm chat không chứng minh gì; phải tìm dự án trên chính trang của đơn vị audit và so địa chỉ hợp đồng. CertiK (17/01/2024) viết: “A prevalent scam we’ve noticed involves phishing sites falsely claiming to be audited by CertiK” (một chiêu lừa phổ biến là các trang lừa đảo tự nhận được CertiK audit) và “These scammers use counterfeit security audit certifications to deceive users” (kẻ lừa đảo dùng chứng nhận audit giả để đánh lừa người dùng).

Cách kiểm, áp dụng với mọi đơn vị audit:

  1. Không bấm link báo cáo do dự án gửi. Tự vào trang chính thức của đơn vị audit (gõ địa chỉ, không qua quảng cáo) và tìm tên dự án. Với CertiK, công ty này hướng dẫn kiểm trên Skynet, nơi liệt kê “all CertiK-audited and KYC-verified projects” (mọi dự án CertiK đã audit và xác minh KYC).
  2. So địa chỉ hợp đồng. Kẻ gian có thể sao chép báo cáo thật của một dự án khác rồi gắn tên mình. Địa chỉ trong báo cáo phải trùng với địa chỉ token bạn thấy trên explorer.
  3. Xem ngày và phạm vi như mục trên. Báo cáo thật nhưng cho phiên bản cũ, hoặc chỉ kiểm một hợp đồng phụ, cũng là cách đánh lừa.
  4. Kiểm tên miền email, tài khoản mạng xã hội. CertiK khuyên kiểm email xưng là CertiK có đúng tên miền certik.com.
  5. Chữ “audited” không phải lý do để mua. Nhiều kịch bản lừa đầu tư ở Việt Nam đi kèm “giấy chứng nhận” đủ loại; các mẫu thường gặp ở bài các kiểu lừa đảo tài sản mã hóa, danh sách tự kiểm một dự án ở bài cách thẩm định dự án crypto.

Ở Việt Nam, token “đã audit” có được chào bán không?

Audit là việc kỹ thuật, không phải giấy phép; một token đã audit không vì thế mà được chào bán hợp pháp cho người Việt. Các điểm đọc từ văn bản gốc:

  1. Ai được mua token phát hành mới. Nghị quyết 05/2025/NQ-CP Điều 6 khoản 1: “Tài sản mã hóa chỉ được chào bán, phát hành cho nhà đầu tư nước ngoài”, và theo khoản 2 chỉ được giao dịch giữa nhà đầu tư nước ngoài qua tổ chức được Bộ Tài chính cấp phép. Điều 5 khoản 2 còn yêu cầu tài sản mã hóa phát hành dựa trên tài sản cơ sở là tài sản thực, không phải chứng khoán hay tiền pháp định. Chi tiết ở trang phát hành token, ICO có hợp pháp không.
  2. Quảng cáo. Chỉ tổ chức được cấp phép mới được “quảng cáo, tiếp thị liên quan đến tài sản mã hóa” (Nghị quyết 05 Điều 4 khoản 4); vi phạm có thể bị phạt 90–100 triệu đồng với cá nhân, 180–200 triệu đồng với tổ chức (Nghị định 284/2026/NĐ-CP Điều 7 khoản 4 điểm b, Điều 4 khoản 2). Lời mời mua token kèm khoe “đã audit” trong nhóm chat vẫn là lời mời mua token.
  3. Nơi giao dịch. Tính đến 29/10/2026, chưa sàn nào được cấp phép. Sau 6 tháng kể từ giấy phép đầu tiên, nhà đầu tư trong nước giao dịch ngoài tổ chức được cấp phép có thể bị phạt 15–25 triệu đồng với cá nhân (Nghị quyết 05 Điều 7 khoản 2, Nghị định 284 Điều 9 khoản 1).
  4. Chữ “kiểm toán” trong Nghị quyết 05 nói về báo cáo tài chính, vốn được kiểm toán của tổ chức xin cấp phép, cổ đông của họ và tổ chức đã được cấp phép (Điều 8, 9, 11, 15), không phải audit mã hợp đồng.

Chia sẻ bài viết

Câu hỏi thường gặp

CertiK là gì?

CertiK là một công ty bảo mật blockchain, cung cấp dịch vụ audit hợp đồng thông minh và các công cụ theo dõi bảo mật. CertiK là một trong nhiều đơn vị audit; VietnamBit không xếp hạng đơn vị audit nào. Việc một dự án có tên CertiK trên trang của họ chỉ cho biết dự án đã thuê CertiK kiểm mã hoặc xác minh, không phải lời bảo đảm đầu tư.

CertiK Skynet là gì?

Skynet là phần trên trang của CertiK liệt kê các dự án CertiK đã audit và đã xác minh danh tính đội ngũ (KYC). CertiK khuyên dùng Skynet để kiểm một dự án có thật sự được CertiK audit hay không. Thông tin ở đó do CertiK lập, nên nó cho biết quan hệ giữa dự án và CertiK, không thay cho việc tự đọc báo cáo.

Audit mất bao lâu, tốn bao nhiêu?

Chưa công bố một mức chung: thời gian và phí phụ thuộc độ dài, độ phức tạp của mã và đơn vị audit, và các bên thường báo giá riêng cho từng dự án. Một báo cáo làm vội cho mã dài là điểm cần lưu ý khi đọc.

Dự án có nhiều báo cáo audit thì an toàn hơn không?

Nhiều báo cáo tăng số người đã đọc mã, nhưng mỗi báo cáo có phạm vi riêng. Euler Finance đã qua 10 lần audit của 6 đơn vị (theo Cointelegraph, 17/3/2023) vẫn bị khai thác; theo The Block (14/3/2023), Sherlock, một trong các đơn vị đó, đồng ý chi trả yêu cầu bồi thường 4,5 triệu USD cho Euler. Điều cần xem là phần mã chứa tiền có nằm trong phạm vi nào không, và mã đang chạy có đúng phiên bản đã kiểm không.

Audit smart contract khác kiểm toán báo cáo tài chính thế nào?

Khác hẳn. Kiểm toán báo cáo tài chính là kiểm số liệu kế toán của một doanh nghiệp, như yêu cầu báo cáo tài chính được kiểm toán với tổ chức xin cấp phép trong Nghị quyết 05/2025/NQ-CP. Audit smart contract là kiểm mã phần mềm. Một dự án có báo cáo audit mã không có nghĩa là sổ sách hay tiền của dự án đã được kiểm.

Bước tiếp theo

Nguồn tham khảo 10

Kiểm chứng ngày 29/10/2026

  1. 01ethereum.org: Smart contract security (mục audits, bug bounties)ethereum.org
  2. 02Quantstamp (22/6/2021): How to read an audit reportquantstamp.com
  3. 03CertiK (17/01/2024): Misuse of the CertiK brand, fake audits and social media fraudscertik.com
  4. 04CertiK (04/5/2023): CertiK's update on the Merlin DEX rugpullcertik.com
  5. 05The Block (27/4/2023): Crypto security firm vows refunds for victims of Merlin DEX scam after auditing codetheblock.co
  6. 06The Block (14/3/2023): Crypto auditor Sherlock to pay out 4.5 million dollars to Euler Finance after exploittheblock.co

Mục lục

  1. 01Audit smart contract gồm những việc gì?
  2. 02Audit không bảo đảm điều gì?
  3. 03Cách đọc một báo cáo audit thật
  4. 04Đã audit vẫn bị hack hoặc rug pull: hai vụ có nguồn
  5. 05Huy hiệu “đã audit” giả: dấu hiệu và cách kiểm
  6. 06Ở Việt Nam, token “đã audit” có được chào bán không?
  7. Câu hỏi thường gặp
  8. Nguồn tham khảo