ทำไมฉันถึงสามารถตรวจสอบโค้ดเทียบกับ spec ได้ แต่ไม่สามารถตรวจสอบตัว spec เองได้?
โอกาส
การพิสูจน์เชิงรูปนัยสำหรับ smart contract พิสูจน์ว่าโค้ดเป็นไปตามข้อกำหนดที่เขียนไว้ แต่ไม่สามารถระบุได้ว่าข้อกำหนดนั้นสะท้อนพฤติกรรมที่ตั้งใจของสัญญาได้จริงหรือไม่ การสำรวจ MDPI ปี 2025 ที่ครอบคลุมเครื่องมือตรวจสอบอัตโนมัติขั้นสูงสุดพบว่าตรวจพบได้เพียง 8 ถึง 20 เปอร์เซ็นต์ของช่องโหว่ที่สามารถถูกโจมตีได้ในระบบ production ขณะที่รายงานว่าครอบคลุมรูปแบบ syntax ระดับต่ำมากกว่า 90 เปอร์เซ็นต์ ช่องว่างอยู่ที่ spec: ข้อผิดพลาดเชิงตรรกะ เงื่อนไขการล็อคสินทรัพย์ และสมมติฐาน oracle แทบไม่เคยปรากฏใน spec เพราะวิศวกรไม่รู้วิธีระบุรายการก่อนที่การโจมตีจะแสดงให้เห็นถึงความจำเป็น บทความ PropertyGPT ของ NDSS 2025 ระบุโดยตรงว่าชุมชนยังขาดการสร้างคุณสมบัติที่ครอบคลุมโดยอัตโนมัติสำหรับการพิสูจน์เชิงรูปนัยที่มีประสิทธิผล การตรวจสอบทุกครั้งที่ผ่านสัญญาเทียบกับ spec ที่ไม่ครบถ้วนก่อให้เกิดระดับความมั่นใจที่เป็นเท็จ แทนที่จะเป็นระดับที่ปลอดภัย
ทำไมถึงสำคัญ
เครื่องมือที่สร้าง invariant ที่เป็นตัวเลือกจากโค้ดสัญญา บริบททางธุรกิจ และฐานข้อมูลการโจมตีในอดีต จะเปลี่ยนการพิสูจน์เชิงรูปนัยจากการตรวจสอบความถูกต้องไปเป็นการรับประกันความปลอดภัยที่แท้จริง
วิธีที่ผมให้คะแนนโอกาส
คะแนนโอกาสเป็นมุมมองส่วนตัวของผม ไม่ใช่การวัดผล โดยดูว่ามันเจ็บปวดแค่ไหน บ่อยแค่ไหนที่มันกัดกิน และมีทางแก้อยู่น้อยเพียงใดในปัจจุบัน คะแนนสูงกว่าหมายความว่าผมคิดว่าคุ้มค่าแก่การสร้างมากกว่า
ความเจ็บปวดที่มันก่อขึ้นเมื่อปรากฏตัว
ความถี่ที่คนจริงๆ เจอมัน
ความขาดแคลนของเครื่องมือที่ดีสำหรับมันในปัจจุบัน
ปัญหาอื่นที่น่าแก้ไข
ทำไมฉันถึงไม่สามารถพิสูจน์ฐานะทางการเงินได้โดยไม่ต้องเปิดเผยยอดเงิน
Blockchainทำไมการโอนเงินข้ามเชนถึงยังน่ากลัวกว่าอินเทอร์เน็ตยุคแรกอยู่?
Blockchainทำไมการปฏิบัติตามกฎระเบียบถึงยังหมายถึงแค่ PDF กับการอธิษฐาน?
Blockchainทำไมการ self-custody ถึงยังเป็นทางเลือกระหว่างการสูญเสียกุญแจของตัวเองกับการไว้วางใจบริษัท?
Blockchainทำไมการ tokenize สินทรัพย์จริงยังต้องพึ่งพาคนกลางถึงสิบราย?
Blockchainทำไม stablecoin ถึงจ่ายเงินให้คนที่ไม่มีอินเทอร์เน็ตไม่ได้?