Smart contract audit
สรุปสั้น ๆ Smart contract audit คือการตรวจสอบความปลอดภัยของโค้ดโดยผู้เชี่ยวชาญอิสระ เพื่อหาบั๊ก ช่องโหว่ และสิทธิ์ admin ที่มีความเสี่ยง
Audit คือบริการตรวจสอบแบบมีค่าใช้จ่าย ซึ่งนักวิจัยด้านความปลอดภัยจะเข้ามาอ่านโค้ด smart contract ของโปรเจกต์ ทดสอบระบบ และเขียนรายงานแจกแจงปัญหาตามระดับความรุนแรง โดยมีเป้าหมายเพื่อหาบั๊กและช่องโหว่ของ logic ให้เจอก่อนที่แฮกเกอร์จะนำไปใช้โจมตี รายงานมักระบุสถานะของแต่ละปัญหาว่าได้รับการแก้ไขแล้ว (fixed), รับทราบแล้ว (acknowledged) หรือยังคงเปิดค้างอยู่ (open)
Auditor จะผสานการตรวจสอบด้วยคน (manual review) เข้ากับเครื่องมือต่างๆ เช่น static analyzer, fuzzer และชุด automated test suite เพื่อส่องหาปัญหาอย่าง reentrancy, การคำนวณทางคณิตศาสตร์ที่ผิดพลาด, การลืมเช็กสิทธิ์เข้าถึง (access control), ช่องโหว่ oracle manipulation รวมถึงสิทธิ์ของเจ้าของ (owner) ที่อันตราย ผลรายงานจะอ้างอิงเฉพาะกับโค้ดเวอร์ชันที่ระบุเท่านั้น ซึ่งมักระบุด้วย commit hash หรือ contract address ที่ deploy โดยบริษัทบางแห่งอาจมีบริการ formal verification หรือมอนิเตอร์ระบบอย่างต่อเนื่องเพิ่มเติมด้วย
สำหรับคนซื้อเหรียญ การมี audit แสดงให้เห็นว่าอย่างน้อยทีมงานก็ยอมจ่ายเงินจ้างคนมาช่วยตรวจ แต่ไม่ได้การันตีว่าโปรเจกต์จะปลอดภัยหรือมีความซื่อสัตย์ การ audit ไม่สามารถห้ามทีมงานเทขายเหรียญของตัวเอง หรือดึงสภาพคล่องที่ไม่ได้ล็อกออกไปได้ และหลายโปรโตคอลที่เคยถูกแฮกก็ล้วนผ่าน audit มาแล้วทั้งสิ้น สำหรับเหรียญขนาดเล็ก การ audit ราคาถูกมักเป็นแค่การรันสแกนอัตโนมัติแล้วแปะป้ายเป็นรายงาน และ audit badge บางอันก็เป็นของปลอม
ควรอ่านรายงานตัวเต็มเสมอ อย่าดูแค่ป้าย badge ตรวจสอบว่า contract address หรือโค้ดที่นำไป audit ตรงกับตัวที่ deploy ใช้งานจริงหรือไม่ เพราะโปรเจกต์อาจ audit contract ตัวหนึ่งแต่กลับ deploy อีกตัวหนึ่งได้ ลองดูว่ามีปัญหาระดับ critical หรือ high ตัวไหนที่ยังไม่ได้รับการแก้ไข และ auditor ได้เตือนเรื่องสิทธิ์ของเจ้าของ เช่น การ mint, การปรับภาษี หรือการ blacklist ไว้หรือไม่ พร้อมทั้งเช็กว่าใครเป็นผู้ audit และรายงานถูกโฮสต์อยู่บนเว็บไซต์ทางการของ auditor เองหรือไม่ ไม่ใช่ดูแค่บนเว็บโปรเจกต์




