เจาะลึก DApp และสัญญาอัจฉริยะ
สัญญาอัจฉริยะ (Smart Contracts)
แอปแบบกระจายศูนย์ถูกสร้าง รักษาความปลอดภัย และกำกับดูแลอย่างไร.
ในบทเรียนนี้
- ความเสี่ยงของสัญญาอัจฉริยะที่พบบ่อย
- การตรวจสอบ (audit) ทำอะไร
ประเด็นสำคัญ
- 1โค้ดที่เปลี่ยนไม่ได้หมายความว่าบั๊กสามารถร้ายแรงมากได้
- 2การตรวจสอบล่าหาช่องโหว่ก่อนเปิดตัว
- 3Reentrancy และการอนุมัติที่ไม่ดีคือช่องโหว่คลาสสิก
สรุปบทเรียน
ความปลอดภัยของสัญญาอัจฉริยะคือการป้องกันไม่ให้โค้ดทำสิ่งที่ไม่ได้ตั้งใจกับสินทรัพย์จริง
โมเดลความคิด
สัญญาอัจฉริยะ (Smart Contracts) แบบเข้าใจง่าย
ความปลอดภัยของสัญญาอัจฉริยะคือการป้องกันไม่ให้โค้ดทำสิ่งที่ไม่ได้ตั้งใจกับสินทรัพย์จริง การตรวจสอบ (audit) เพิ่มความมั่นใจ แต่ไม่ใช่ประกันภัย.
- ความเสี่ยงของสัญญาอัจฉริยะที่พบบ่อย
- การตรวจสอบ (audit) ทำอะไร
กลไกการทำงาน
วิธีคิดเกี่ยวกับ สัญญาอัจฉริยะ
ผู้ตรวจสอบทบทวนตรรกะ สิทธิ์ กรณีขอบ และประเภทช่องโหว่ที่รู้จัก.
bug bounty และเวลาที่ใช้งานจริงให้หลักฐานเพิ่มเติม.
คีย์การอัปเกรดและบทบาทผู้ดูแลระบบสามารถสำคัญเท่ากับตัวโค้ดเอง.
- โค้ดที่เปลี่ยนไม่ได้หมายความว่าบั๊กสามารถร้ายแรงมากได้
- การตรวจสอบล่าหาช่องโหว่ก่อนเปิดตัว
- Reentrancy และการอนุมัติที่ไม่ดีคือช่องโหว่คลาสสิก
ตัวอย่าง
สัญญาอัจฉริยะ ที่นำไปใช้
บั๊ก reentrancy สามารถให้ผู้โจมตีเรียกกลับเข้าไปในสัญญาก่อนที่ยอดคงเหลือจะถูกอัปเดต ดูดเงินออกไปได้ถ้าไม่มีการป้องกัน.
ข้อผิดพลาดที่พบบ่อย
สัญญาอัจฉริยะ หลอกให้ผู้เรียนพลาดได้อย่างไร
โลโก้ audit บนเว็บไซต์ไม่พอ ผู้ใช้ต้องรู้ว่าเวอร์ชันไหนถูกตรวจสอบ และสัญญาที่ดีพลอยจริงตรงกับมันหรือไม่.
บันทึกความเสี่ยง
ก่อนที่คุณจะพึ่งพา สัญญาอัจฉริยะ
Reentrancy การบิดเบือนออราเคิล สิทธิ์ที่ไม่ถูกตรวจสอบ การอัปเกรดที่ไม่ดี และการอนุมัติแบบไม่จำกัดสามารถสร้างเส้นทางความเสียหายที่ร้ายแรงได้.
- ตรวจสอบขอบเขตของการตรวจสอบ
- ทบทวนอำนาจของผู้ดูแลระบบหรือการอัปเกรด
- หลีกเลี่ยงการอนุมัติแบบไม่จำกัดที่ไม่จำเป็น
ฝึกฝน
ทำให้ สัญญาอัจฉริยะ ติดตัวคุณ
- ตรวจสอบขอบเขตของการตรวจสอบ
- ทบทวนอำนาจของผู้ดูแลระบบหรือการอัปเกรด
- หลีกเลี่ยงการอนุมัติแบบไม่จำกัดที่ไม่จำเป็น
รีวิว
คำศัพท์สำคัญ
- ออราเคิล (oracle)
- บริการที่ส่งข้อมูลจากโลกจริง (เช่นราคา) เข้าสู่สัญญาอัจฉริยะบนเชน
- สัญญาอัจฉริยะ
- โค้ดที่รันตัวเองได้บนบล็อกเชน ทำงานตามที่เขียนไว้เป๊ะเมื่อเงื่อนไขครบถ้วน
- การบิดเบือนข้อมูลออราเคิล
- การใช้ประโยชน์จากฟีดราคาที่ผิดพลาดเพื่อดูดเงินจากโปรโตคอล
- บล็อกเชน
- บัญชีบันทึกข้อมูลแบบเพิ่มได้เท่านั้น (append-only) ที่ถูกทำสำเนาไว้บนคอมพิวเตอร์หลายเครื่อง โดยมีการเข้ารหัสและฉันทามติเป็นตัวรักษาความปลอดภัย
- กลไกฉันทามติ (consensus mechanism)
- กระบวนการที่เครือข่ายแบบกระจายศูนย์ใช้ตกลงกันว่าสถานะใดของบัญชีเป็นสถานะที่ถูกต้อง เช่น PoW, PoS
บันทึกแหล่งอ้างอิง
แหล่งอ้างอิงเนื้อหา
แหล่งอ้างอิงเหล่านี้เป็นจุดเริ่มต้นสำหรับตรวจสอบกลไก ข้อตรวจสอบความเสี่ยง และบริบทผลิตภัณฑ์ที่อยู่หลังบทเรียนนี้
ก่อนที่คุณจะเรียนต่อ
คุณทำสิ่งเหล่านี้ได้ไหม?
- ตรวจสอบขอบเขตของการตรวจสอบ
- ทบทวนอำนาจของผู้ดูแลระบบหรือการอัปเกรด
- หลีกเลี่ยงการอนุมัติแบบไม่จำกัดที่ไม่จำเป็น
การเรียนที่เกี่ยวข้อง
อ่านต่อ
จุดตรวจสอบ
จบบทเรียนนี้
ผ่านการตรวจสอบเพื่อบันทึกความคืบหน้า แล้วเรียนต่อไปตามลำดับในแทร็ก
ยืนยันบทเรียนนี้
ตอบทุกคำถามให้ถูกต้องเพื่อจบบทเรียน
ความเสี่ยงของสัญญาอัจฉริยะที่พบบ่อยคือ…

