ทีมวิจัยจากมหาวิทยาลัยแห่งชาติสิงคโปร์ (NUS) วิเคราะห์ smart contract บน Ethereum เพื่อหาช่องโหว่ต่างๆ จากทั้งหมดกว่าล้านสัญญา และพบว่ากว่าสามหมื่นสัญญาน่าจะมีช่องโหว่
ช่องโหว่ของ smart contract แบ่งออกเป็น 3 ประเภทหลักๆ ได้แก่
นอกจากนี้ทีมงานยังจัดหมวด Posthumous Contracts สัญญาที่ถูก kill ไปแล้วแต่ยังมีคนเผลอโอนเงินเข้าไป ทำให้เงินค้างอยู่ในสัญญา และนำออกมาไม่ได้อีกเลย แต่สัญญาประเภทนี้ไม่ใช่ช่องโหว่ที่ต้องการวิเคราะห์จึงไม่นับรวมไว้
ทีมงานสร้างซอฟต์แวร์วิเคราะห์ไบนารี smart contract สำหรับ EVM บน Ethereum เพื่อวิเคราะห์สัญญา 970,898 รายการ โดยสัญญาเหล่านี้มีซอร์สโค้ดบน Etherscan เพียง 1% เท่านั้น ซอฟต์แวร์ที่วิเคราะห์ไบนารีที่ทีมวิจัยพัฒนาขึ้นชื่อว่า MAIAN จะวิเคราะห์หาช่องโหว่สามประเภทหลักดังกล่าว
MAIAN พบว่ามีสัญญาที่น่าจะมีช่องโหว่ 1 ใน 3 ประเภท รวมถึง 34,200 สัญญา ทีมงานวิเคราะห์ผลซ้ำด้วยการตรวจซอร์สโค้ด 3,759 สัญญา พบว่า MAIAN แม่นยำแบบ true positive อยู่ที่ 89% ทำให้คาดได้ว่าสัญญาที่มีช่องโหว่ 1 ใน 3 รูปแบบเหล่านี้ก็น่าจะอยู่ที่ประมาณ 30,000 รายการ
ช่องโหว่จากความผิดพลาดในการเขียนโปรแกรมบน smart contract เป็นสิ่งที่เกิดขึ้นได้เช่นเดียวกับซอฟต์แวร์อื่นๆ ปัญหาคือซอฟต์แวร์ดเหล่านี้ทำงานตลอดเวลาและหลายครั้งไม่สามารถหยุดการทำงานได้แม้มีช่องโหว่ Vitalik Buterin ผู้สร้าง Ethereum เตือนว่าไม่ควรสร้างสัญญาที่มีมูลค่าเกิน 10 ล้านดอลลาร์
ที่มา - Finding The Greedy, Prodigal, and Suicidal Contracts at Scale