หน่วย
1. ความรู้เบื้องต้นเกี่ยวกับปัญญาประดิษฐ์ในบล็อกเชนและ Web3: บทบาท ขอบเขต การรับรองความถูกต้อง และความสำคัญด้านความปลอดภัย 2. การสนับสนุนการเขียนสัญญาอัจฉริยะ: Solidity/Vyper Draft และการสร้างรหัสที่ปลอดภัย 3. การสนับสนุนการตรวจสอบสัญญาอัจฉริยะ: การตรวจสอบความปลอดภัยและการค้นพบฉบับร่าง 4. การสแกนช่องโหว่: รูปแบบช่องโหว่ทั่วไปและการวิเคราะห์อัตโนมัติ 5. การวิเคราะห์ข้อมูลออนไลน์: ทำความเข้าใจบล็อก ธุรกรรม และข้อมูลกระเป๋าเงิน 6. การวิเคราะห์ DeFi และโปรโตคอล: สภาพคล่อง, MEV และการโจมตีทางเศรษฐกิจ 7. การสร้างแบบจำลองโทคีโนมิก: อุปทาน การกระจาย สิ่งจูงใจ และการจำลอง 8. เอกสารประกอบและการเขียนทางเทคนิค: เอกสารไวท์เปเปอร์, NatSpec และคู่มือผู้ใช้ 9. การฉ้อโกง การดึงพรม และการตรวจจับความเสี่ยง: ธงแดงบนเครือข่าย 10. การตรวจสอบที่มีความสำคัญต่อความปลอดภัย การอนุมัติจากผู้เชี่ยวชาญ และการใช้งานอย่างมีความรับผิดชอบ 11. ขั้นตอนการทำงานแบบครบวงจร การกำกับดูแล การตรวจสอบ และจริยธรรม
หน่วย 3 / 11

การสนับสนุนการตรวจสอบสัญญาอัจฉริยะ: การตรวจสอบความปลอดภัยและการค้นพบฉบับร่าง

กำไร:

  • ความสามารถในการเข้าใจว่าปัญญาประดิษฐ์ขยายขอบเขตของผู้ตรวจสอบ แต่ไม่ได้แทนที่ขอบเขตดังกล่าว และมีประโยชน์ในการสแกนหมวดหมู่และการค้นหาแบบร่าง
  • ความสามารถในการรับรู้ว่าปัญญาประดิษฐ์ได้พลาดจุดอ่อนดั้งเดิมและข้อผิดพลาดด้านตรรกะทางธุรกิจ และคำกล่าวที่ 'ปลอดภัย' อย่างคล่องแคล่วนั้นไม่รับประกัน
  • ความสามารถในการจำแนกสิ่งที่ค้นพบตามระดับความจริงจัง และเข้าใจว่าการอนุมัติขั้นสุดท้ายและความรับผิดชอบทางวิชาชีพนั้นขึ้นอยู่กับผู้ตรวจสอบที่มีความสามารถ

การตรวจสอบความปลอดภัย (การตรวจสอบช่องโหว่ของสัญญาอัจฉริยะอย่างเป็นระบบ) เป็นงานที่มีความรับผิดชอบมากที่สุดของ Web3 ผู้ตรวจสอบบัญชีพลาดบรรทัดเดียวอาจส่งผลให้ขาดทุนหลายล้านดอลลาร์ ในหน่วยนี้คุณจะได้เรียนรู้วิธีใช้ AI เป็นผู้ช่วยในการตรวจสอบ เราจะเรียนรู้ตั้งแต่การสร้างเบาะแสไปจนถึงการเขียนโครงร่างข้อค้นพบ แต่ประโยคที่สำคัญที่สุดคือ: AI ไม่สามารถควบคุมได้ เป็นตัวช่วยที่ลับสายตาผู้ตรวจสอบบัญชี การอนุมัติขั้นสุดท้ายขึ้นอยู่กับผู้ตรวจสอบที่มีอำนาจซึ่งรับผิดชอบทางวิชาชีพ

เหตุใดการตรวจสอบจึงมีความสำคัญด้านความปลอดภัย

รายงานการตรวจสอบทำให้โครงการและนักลงทุนมั่นใจว่า “รหัสนี้ได้รับการตรวจสอบแล้ว” หากการรับประกันนี้เป็นเท็จ ผลที่ตามมาคือหายนะ: โปรโตคอลที่ถูกเอารัดเอาเปรียบ สูญเสียเงินทุน โครงการพังทลาย ดังนั้น การใช้ AI ในการตรวจสอบจึงเป็นส่วนที่ระมัดระวังที่สุดของโมดูลนี้ AI ขยายขอบเขตของผู้ตรวจสอบ (จำรูปแบบได้มากขึ้น อ่านเร็วขึ้น) แต่ไม่ได้เข้ามาแทนที่ผู้ตรวจสอบ

ทำไมมันไม่ผ่าน? เพราะ:

  • AI ไม่สามารถมองเห็นช่องโหว่เฉพาะ/ใหม่ที่ไม่ได้อยู่ในข้อมูลการฝึกอบรม
  • AI มักจะพลาดข้อบกพร่องในตรรกะทางธุรกิจของโปรโตคอล นั่นคือโค้ดมีความถูกต้องทางเทคนิค แต่สามารถหาประโยชน์ได้ในเชิงเศรษฐกิจ
  • AI สามารถให้ความมั่นใจแบบผิดๆ ได้ด้วยการพูดว่า "ปลอดภัย" ในภาษาที่คล่องแคล่ว นี่คือผลลัพธ์ที่อันตรายที่สุด

ชั้นของการใช้ AI ในการควบคุม

1. การสแกนเริ่มต้นและการแจ้งเตือนรูปแบบ AI ต้องผ่านรูปแบบช่องโหว่ที่รู้จัก เช่น รายการตรวจสอบ: การกลับเข้ามาใหม่ การควบคุมการเข้าถึง การจัดการแบบออราเคิล การดำเนินหน้า ซึ่งจะทำให้ผู้ตรวจสอบไม่พลาดหมวดหมู่ใดๆ

2. คำอธิบายรหัส การอธิบายฟังก์ชันที่ซับซ้อนให้กับ AI ในภาษาธรรมดาช่วยให้ผู้ตรวจสอบเข้าใจตรรกะได้อย่างรวดเร็ว แต่คำอธิบายจะถูกเปรียบเทียบกับโค้ดเสมอ

3. การเขียนร่างข้อค้นพบ เมื่อผู้ตรวจสอบพบช่องโหว่ AI จะช่วยประหยัดเวลาในการเขียนร่างรายงาน (คำอธิบาย ผลกระทบ วิธีแก้ไขที่เสนอ)

4. การสร้างสมมติฐานที่ขัดแย้ง ถาม AI ว่า "ฟังก์ชันนี้จะถูกนำไปใช้ในทางที่ผิดได้อย่างไร" การถาม " ทำให้เรานึกถึงมุมมองที่ก้าวร้าว

ข้อควรสนใจ: เพียงเพราะ AI ​​บอกว่า "ฉันไม่พบช่องโหว่ใด ๆ ในโค้ดนี้" ไม่ได้หมายความว่า "โค้ดนี้ปลอดภัย" หลักฐานการขาดหายไปไม่ใช่การขาดหลักฐาน การที่ AI ไม่สามารถค้นหาบางสิ่งบางอย่างไม่ได้ทำให้ผู้ตรวจสอบบัญชีไม่จำเป็นต้องตรวจสอบพื้นที่นั้น

ค้นหาระดับความรุนแรง

ผลการตรวจสอบจะจัดประเภทตามระดับความรุนแรง AI ควรใช้เฟรมเวิร์กนี้เมื่อสร้างแบบร่าง:

ระดับ

ความหมาย

ตัวอย่าง

สำคัญ

การสูญเสียกองทุน/การล็อคเป็นไปได้โดยตรง

การถอนเงินด้วยการกลับเข้ามาใหม่

สูง

ผลกระทบร้ายแรงในบางสภาวะ

การพิมพ์ที่ไม่ได้รับอนุญาต (มิ้นต์)

ปานกลาง

ผลกระทบจำกัดหรือสภาวะที่ยากลำบาก

การสูญเสียเล็กน้อยจากการเบี่ยงเบนของ Oracle

ต่ำ

ความเสี่ยงเล็กน้อย การละเมิดแนวปฏิบัติที่ดี

ขาดการถ่ายทอดกิจกรรม

ข้อมูล

ไม่ปลอดภัย อ่านง่าย

ขาด NatSpec

พรอมต์อ่อน / พรอมต์แรง

พรอมต์ที่อ่อนแอ:

สัญญานี้ปลอดภัยหรือไม่?

คำถามนี้บังคับให้ AI ​​ทำการตัดสินที่สมบูรณ์และไม่สมเหตุสมผลเช่น "ใช่/ไม่ใช่" ซึ่งเป็นสิ่งที่เราไม่ต้องการ

พรอมต์อันทรงพลัง:

บทบาทของคุณ: ผู้ช่วยผู้ตรวจสอบสัญญาอัจฉริยะอาวุโส สแกนสัญญาต่อไปนี้เพื่อความปลอดภัย พิจารณาหมวดหมู่ต่างๆ ต่อไปนี้ทีละหมวดหมู่: การกลับเข้าใหม่ การควบคุมการเข้าถึง การดำเนินการจำนวนเต็ม การตรวจสอบความถูกต้องอินพุต ข้อมูลออราเคิล/ข้อมูลภายนอก การดำเนินหน้า ขีดจำกัดก๊าซ สำหรับการค้นหาแต่ละรายการ: (1) บรรทัดรหัสที่เกี่ยวข้อง (2) ทำให้เกิดความเสี่ยง (3) ความรุนแรงโดยประมาณ (วิกฤต/สูง/ปานกลาง/ต่ำ) (4) ข้อเสนอวิธีแก้ปัญหา สิ่งเหล่านี้เป็นสมมติฐานที่ต้องได้รับการยืนยัน อย่าให้คำตัดสินที่ "ปลอดภัย" ทำเครื่องหมายบริเวณที่คุณไม่แน่ใจอย่างชัดเจนว่า "ให้ผู้ตรวจสอบบัญชียืนยัน"

เทมเพลตที่สามารถคัดลอกได้สี่แบบ

1) การเรียกดูตามหมวดหมู่:

สแกนสัญญานี้เพื่อดูหมวดหมู่ต่อไปนี้: การกลับเข้าใหม่ การควบคุมการเข้าถึง จำนวนเต็มล้น การตรวจสอบอินพุต การขึ้นต่อกันของ Oracle การดำเนินหน้า DoS/gas สำหรับแต่ละหมวดหมู่ ให้พูดว่า "มี/ไม่มีความเสี่ยง/ฉันไม่แน่ใจ" และเชื่อมโยงเหตุผลของคุณกับบรรทัดในโค้ด อย่าตัดสินถึงที่สุด

2) สมมติฐานตอบโต้จากมุมมองของผู้โจมตี:

คิดเหมือนผู้โจมตี: มีวิธีใดบ้างที่จะใช้ฟังก์ชันนี้ในทางที่ผิด? เขียนแต่ละสถานการณ์ทีละขั้นตอนและระบุเงื่อนไขที่จำเป็น สถานการณ์เหล่านี้เป็นสมมติฐานที่ต้องทดสอบ อย่าสร้างโค้ดการหาประโยชน์จริง เพียงอธิบายความเสี่ยง

3) รายงานผลการค้นพบร่าง:

รายงานการค้นพบที่ได้รับการยืนยันต่อไปนี้ในภาษาการตรวจสอบอย่างเป็นทางการ: ชื่อ ความรุนแรง คำอธิบาย ผลกระทบ รหัสที่ได้รับผลกระทบ ขั้นตอนในการทำซ้ำ โซลูชันที่เสนอ ใช้ภาษาที่วัดผลและทางเทคนิค การพูดเกินจริง สมมติว่าการค้นพบนี้ได้รับการยืนยันจากผู้ตรวจสอบบัญชีแล้ว อย่าสร้างการค้นพบใหม่

4) แก้ไขการยืนยัน:

ด้านล่างนี้คือช่องโหว่และการแก้ไขที่นักพัฒนานำไปใช้ ตรวจสอบว่าการแก้ไขปิดช่องโหว่จริงหรือไม่ ทำเครื่องหมายว่าจะสร้างผลข้างเคียงหรือช่องโหว่ใหม่หรือไม่ อย่าพูดว่า "ปิด" อย่างแน่นอน ลงท้ายด้วย "ต้องได้รับการยืนยันจากการทดสอบ"

มินิเคส 3 อัน (เป็นตัวเลข)

กรณีที่ 1 — AI ป้องกันการข้ามหมวดหมู่ ผู้ตรวจสอบบัญชีกำลังจะมุ่งเน้นไปที่สัญญา 400 บรรทัดและข้ามหมวด Oracle การสแกนหมวดหมู่ของ AI ให้คำเตือนว่า "ข้อมูลราคามาจากแหล่งเดียว และเปิดให้มีการบิดเบือน" ผู้ตรวจสอบบัญชีตรวจสอบแล้วพบว่ามีความเสี่ยงปานกลางจริงๆ บทเรียน: AI รักษาวินัยในการครอบคลุม

กรณีที่ 2 — การรับประกัน “ปลอดภัย” ที่เป็นเท็จ อีกทีมถาม AI ว่า “ปลอดภัยไหม?” เขาถาม; “ดูเหมือนจะไม่มีปัญหาสำคัญอะไร” AI กล่าว การตรวจสอบลูกเรือเป็นไปอย่างไม่ซับซ้อน จากนั้นผู้ตรวจสอบอิสระพบข้อบกพร่องด้านตรรกะทางธุรกิจ นั่นคือการคำนวณที่ถูกต้องทางเทคนิคแต่มีสิ่งจูงใจที่สามารถหาประโยชน์ได้ บทเรียน: AI พลาดข้อผิดพลาดทางตรรกะทางธุรกิจ เขาไว้ใจไม่ได้ว่าพูดว่า "ปลอดภัย"

กรณีที่ 3 — การร่างรายงานประหยัดเวลาได้ 3 ชั่วโมง ผู้ตรวจสอบบัญชีใช้เวลาครึ่งวันด้วยตนเองในการรายงานผลการค้นพบ 8 รายการ เมื่อฉันให้ผลการตรวจสอบกับ AI และพิมพ์ร่างอย่างเป็นทางการ เวลาก็ลดลงประมาณ 3 ชั่วโมง ผู้ตรวจสอบบัญชีทุ่มเทเวลาในการเจาะลึก บทเรียน: AI มีความปลอดภัยและมีประสิทธิภาพในการรายงาน เนื่องจากการค้นพบนี้ได้รับการตรวจสอบโดยมนุษย์แล้ว

ช่องโหว่ด้านตรรกะทางธุรกิจ: จุดบอดของ AI

ช่องโหว่ที่แพงที่สุดมักไม่ได้มาจากข้อผิดพลาดทางเทคนิคในโค้ด แต่มาจากความสามารถในการหาประโยชน์จากตรรกะทางธุรกิจ: การปัดเศษการหาผลประโยชน์จากบัญชีรางวัล การขโมยคะแนนโหวตแบบแฟลช การเปลี่ยนแปลงราคาโดยทันที เหล่านี้เป็นกรณีที่โค้ดทำงาน "ถูกต้อง" แต่โปรโตคอลสามารถถูกหลอกได้ในเชิงเศรษฐกิจ AI มีแนวโน้มที่จะพลาดข้อผิดพลาดดังกล่าว โดยเฉพาะข้อผิดพลาดเฉพาะโปรโตคอล ดังนั้นการตรวจสอบตรรกะทางธุรกิจจึงเป็นพื้นที่ที่ผู้ตรวจสอบต้องใช้มนุษย์มากที่สุดและพึ่งพา AI น้อยที่สุด

คำแนะนำ: ถาม AI “จะใช้ประโยชน์จากแรงจูงใจทางเศรษฐกิจของโปรโตคอลนี้ได้อย่างไร” และใช้สถานการณ์ที่เกิดขึ้นเป็นจุดเริ่มต้น แต่จำไว้ว่าคุณและทีมควรทำการวิเคราะห์จริง

ข้อผิดพลาดทั่วไป

  • ถาม AI ว่า "ปลอดภัยไหม?" การถามและไว้วางใจใช่ของคุณ ไม่จำเป็นต้องมีวิจารณญาณโดยเด็ดขาด
  • หยุดรีวิวเมื่อ AI แจ้งว่า “หาไม่เจอ” การไม่มีตัวตนไม่ใช่หลักฐาน
  • การมอบหมายการตรวจสอบตรรกะทางธุรกิจให้กับ AI มันเป็นจุดบอดที่ใหญ่ที่สุดของเขา
  • ไม่ใช้เครื่องมืออิสระ (Slither ฯลฯ ) AI เพียงอย่างเดียวไม่เพียงพอ
  • นำสิ่งที่ AI สร้างขึ้นมาใส่ลงในรายงานโดยไม่ตรวจสอบ เสี่ยงต่อการเกิดภาพหลอน
  • พยายามมอบความรับผิดชอบในการควบคุมให้กับ AI ความรับผิดชอบอยู่ที่ผู้เชี่ยวชาญ

โดยสรุป

  • การตรวจสอบมีความสำคัญด้านความปลอดภัย AI ขยายขอบเขตของผู้ตรวจสอบแต่ไม่ได้เข้ามาแทนที่
  • AI พลาดจุดอ่อนดั้งเดิมและข้อบกพร่องด้านตรรกะทางธุรกิจ การพูดว่า "ปลอดภัย" ไม่ใช่ความมั่นใจ
  • สิ่งที่ค้นพบแบ่งตามระดับความรุนแรง AI มีประโยชน์ในการสร้างแบบร่าง
  • สมมติฐานที่โต้แย้งและการคัดกรองหมวดหมู่จะรักษาระเบียบวินัยในการรวมไว้
  • การอนุมัติขั้นสุดท้ายและความรับผิดชอบทางวิชาชีพจะขึ้นอยู่กับผู้ตรวจสอบที่มีความสามารถเสมอ

งานสมัคร

ค้นหาสัญญาตัวอย่างที่มีช่องโหว่ที่ทราบ (เพื่อวัตถุประสงค์ทางการศึกษา ตัวอย่างของ "สัญญาที่มีช่องโหว่" มีอยู่ในโอเพ่นซอร์ส) ใช้ข้อความแจ้ง "การสแกนตามหมวดหมู่" กับ AI โปรดทราบว่า AI: (1) พบช่องโหว่ที่แท้จริง (2) สร้างการค้นพบที่ปลอมแปลง/เท็จ (3) ตัดสินอย่างเด็ดขาด เช่น "ปลอดภัย" จากนั้นเปรียบเทียบกับเครื่องมือวิเคราะห์แบบคงที่

รายการตรวจสอบ

  • [ ] ถาม AI ว่า "ปลอดภัยไหม?" แต่ฉันมีการสแกนตามหมวดหมู่แทน
  • [ ] ฉันถือว่าการค้นพบแต่ละครั้งเป็นเพียงสมมติฐาน
  • [ ] ฉันได้ตรวจสอบตรรกะทางธุรกิจกับตัวเอง/ทีมแล้ว
  • [ ] ฉันตรวจสอบความถูกต้องข้ามด้วยเครื่องมือวิเคราะห์สแตติกอิสระ
  • [ ] I have confirmed that the AI ​​does not fabricate findings.
  • [ ] ฉันจำแนกสิ่งที่ค้นพบตามระดับความรุนแรง
  • [ ] ฉันยอมรับว่าการอนุมัติขั้นสุดท้ายขึ้นอยู่กับผู้ตรวจสอบที่มีอำนาจ