คำเตือนความเสี่ยง: ระวังความเสี่ยงจากการระดมทุนที่ผิดกฎหมายในนาม 'สกุลเงินเสมือน' 'บล็อกเชน' — จากห้าหน่วยงานรวมถึงคณะกรรมการกำกับดูแลการธนาคารและการประกันภัย
ข่าวสาร
ค้นพบ
ค้นหา
เข้าสู่ระบบ
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
ดูตลาด
จะประเมินความเสี่ยงด้านความปลอดภัยของ "forked EVM" ได้อย่างไร
Katie 辜
Odaily资深作者
2023-05-30 09:35
บทความนี้มีประมาณ 2306 คำ การอ่านทั้งหมดใช้เวลาประมาณ 4 นาที
เครือข่าย TVL เก้าใน 10 อันดับแรกรองรับสัญญาอัจฉริยะ EVM

บทความนี้มาจาก Coinbaseบทความนี้มาจาก

เพื่อเพิ่มความปลอดภัยและการรับประกันการดูแลสำหรับลูกค้าที่ซื้อขาย ERC-20 และทรัพย์สินตามสัญญาอัจฉริยะอื่นๆ ทีมความปลอดภัยของ Coinbase Blockchain ได้ตรวจสอบเลเยอร์ทางโปรแกรมที่กำหนดพฤติกรรมของสินทรัพย์เหล่านี้: Ethereum Virtual Machine (EVM) เมื่อประเมินโครงการที่ปรับเปลี่ยน EVM ของเครือข่ายของตนเอง ทีมรักษาความปลอดภัยบล็อคเชนของ Coinbase จะตรวจสอบการเปลี่ยนแปลงที่สำคัญของ EVM เพื่อพิจารณาว่า EVM ที่แก้ไขสามารถให้การรับประกันความปลอดภัยและการดูแลเดียวกันกับการใช้ EVM ดั้งเดิมหรือไม่

ชื่อเรื่องรอง

สถานะ EVM ที่แยก

ในเดือนพฤษภาคม 2023 Ethereum Virtual Machine (EVM) ได้อ้างสิทธิ์ในชื่อ "พี่ใหญ่" สำหรับแพลตฟอร์มการดำเนินการตามสัญญาอัจฉริยะที่ได้รับความนิยมสูงสุด จากข้อมูลของ DefiLlama เครือข่าย 9 ใน 10 อันดับแรกตามมูลค่าที่ล็อคไว้ทั้งหมด (TVL) รองรับ EVM smart contracts ดังนั้น ความเข้าใจอย่างลึกซึ้งเกี่ยวกับ EVM จึงมีความสำคัญต่อการสนับสนุนสัญญาอัจฉริยะในระบบนิเวศบล็อกเชน

EVM เป็นเครื่องเสมือนสำหรับการดำเนินการสัญญาอัจฉริยะแบบกระจายอำนาจบนเครือข่าย Ethereum บล็อกเชนที่เข้ากันได้กับ EVM จำนวนมากใช้ประโยชน์จากการใช้งานมาตรฐานของไคลเอนต์การดำเนินการ Ethereum ยอดนิยมในภาษาต่างๆ เช่น go-ethereum (Golang) และ besu (Java) โดยตรงในซอฟต์แวร์โปรโตคอลของพวกเขากล่าวคือ,การฟอร์กและแก้ไข EVM นั้นพบได้ทั่วไปในระบบนิเวศของบล็อกเชน แม้แต่ในโปรโตคอลหลักก็ตาม

. ตัวอย่างเช่น Optimism Bedrock Stack ซึ่ง "ขับเคลื่อน" Base L2 blockchain ของ Coinbase ใช้ทางแยกของไคลเอนต์การดำเนินการ go-ethereum ที่เรียกว่า op-geth ซึ่งรัน EVM เหมือนกับไคลเอ็นต์การดำเนินการ ethereum ที่เป็นที่นิยม เข้ากันได้ อย่างไรก็ตาม นี่ไม่ได้หมายความว่า EVM บน Ethereum จะทำงานเหมือนกันทุกประการกับ EVM บน Optimism: EVM op-geth จะทำงานแตกต่างกันเล็กน้อยในบางกรณี (เช่น DIFFICULTY ส่งคืนค่าสุ่มถูกกำหนดโดยซีเควนเซอร์)สัญญาอาจดำเนินการแตกต่างกันในเชนที่เข้ากันได้กับ EVM บางอันมากกว่าที่ทำบน Ethereum และสมมติฐานด้านความปลอดภัยสำหรับพฤติกรรมของสัญญาอัจฉริยะ EVM อาจแตกต่างกันอย่างมากระหว่างโปรโตคอลต่างๆ

ชื่อเรื่องรอง

การฟอร์กกิ้งกรอบความปลอดภัย EVM

ด้วยเหตุนี้ Coinbase ได้พัฒนากรอบความปลอดภัย Web3 สำหรับการประเมินผลกระทบด้านความปลอดภัยในการใช้งาน EVM บางส่วน เราเรียกมันว่ากรอบ EVM แบบแยกของ Coinbase ซึ่งจะอธิบายในรายละเอียดด้านล่าง

  • ด้วยกรอบการรักษาความปลอดภัย EVM แบบแยกนี้ Coinbase สามารถ:

  • การทำความเข้าใจความไม่ถูกต้องของสมมติฐานด้านความปลอดภัยของกรอบโทเค็น Ethereum ของเราช่วยให้เราเปิดใช้งานบล็อกเชนที่เข้ากันได้กับ EVM ใหม่ได้อย่างปลอดภัยเพื่อรองรับโทเค็น ERC-20/ERC-721 บนการแลกเปลี่ยนแบบกระจายศูนย์ของเรา

  • มั่นใจได้ถึงการใช้งานที่ปลอดภัยและการดำเนินการสัญญาสมาร์ท EVM บนบล็อกเชน Base L2 ของ Coinbase

ชื่อเรื่องรอง

มาตรฐานความปลอดภัยสำหรับบล็อกเชนที่เข้ากันได้กับ EVM

เราสรุปการรักษาความปลอดภัยออกเป็นสองเกณฑ์การรักษาความปลอดภัยที่แสดงถึงข้อกำหนดขั้นต่ำสำหรับการใช้งาน EVM แบบแยกส่วนเพื่อให้มีสิทธิ์ได้รับการสนับสนุน Coinbase

ชื่อเรื่องรอง

เราจะตรวจสอบความเสี่ยงด้านความปลอดภัยของการใช้งาน EVM ได้อย่างไร

เฟรมเวิร์ก EVM แบบแยกส่วนของเรามุ่งเน้นไปที่ข้อกำหนดการตรวจสอบต่อไปนี้เมื่อประเมินการปฏิบัติตามเกณฑ์ความปลอดภัยโดยรวม (เช่น สัญญาไม่เปลี่ยนแปลงและสภาพแวดล้อมการดำเนินการที่ปลอดภัย) ควรสังเกตว่าองค์ประกอบความเสี่ยงต่อไปนี้ไม่ใช่ขอบเขตทั้งหมดของการตรวจสอบ EVM ของส้อม

การแก้ไขคำจำกัดความและการเข้ารหัสของ EVM opcodes อาจนำไปสู่ความแตกต่างอย่างมีนัยสำคัญในวิธีดำเนินการตามสัญญา ตัวอย่างเช่น สมมติว่าการใช้งาน EVM แบบแยกส่วน (EVM') เปลี่ยนรหัสทางคณิตศาสตร์ ADD เพื่อกำหนดลอจิก (x 1 + x 2 ) เพื่อลบสองค่า (x 1 - x 2 )

ด้วยเหตุนี้ EVM ที่เบี่ยงเบนจึงไม่เท่ากันและใช้งานไม่ได้กับ EVM มาตรฐาน ผลที่ตามมาของการแก้ไข opcodes อาจเป็นลักษณะการทำงานที่เป็นประโยชน์ เช่น การป้องกันจำนวนเต็มล้นและน้อยเกินไปใน opcodes เลขคณิต หรือพฤติกรรมที่อันตรายกว่า เช่น พฤติกรรมการทำลายตัวเองที่ก่อให้เกิดการสร้างสินทรัพย์ในเครื่องอย่างไม่มีที่สิ้นสุด

EVM ใช้สัญญาที่คอมไพล์ไว้ล่วงหน้าเพื่อกำหนดการทำงานที่ซับซ้อน (เช่น ฟังก์ชันการเข้ารหัส) โดยใช้ภาษาที่สะดวกและมีประสิทธิภาพมากกว่า เช่น Golang แทนที่จะใช้ EVM bytecode ที่เข้าถึงได้น้อย

โดยพื้นฐานแล้ว ฟังก์ชันเหล่านี้คือฟังก์ชันที่ตั้งโปรแกรมไว้ซึ่งเข้าถึงได้ผ่านที่อยู่ลูกโซ่ที่กำหนดไว้ล่วงหน้าซึ่งแสดงในซอฟต์แวร์โหนด มีคอมไพเลอร์ 9 ตัวที่กำหนดไว้ใน Ethereum Yellow Paper (ณ เดือนพฤษภาคม 2023) และการเปลี่ยนแปลงใด ๆ กับพรีคอมไพเลอร์ทั้ง 9 ตัวหรือการเปิดตัวพรีคอมไพเลอร์ใหม่จะต้องได้รับการตรวจสอบ

มาดูอีกตัวอย่างที่ชัดเจน — ช่องโหว่ BNB Smart Chain BNB Smart Chain ใช้ go-ethereum ในการรันโหนด เพื่อจุดประสงค์นี้ จึงมีการแนะนำสัญญาที่คอมไพล์ล่วงหน้าใหม่สองรายการ (tmHeaderValidate, iavlMerkleProofValidate) โดยใช้ซอฟต์แวร์ของบุคคลที่สาม (เช่น Cosmos SDK) เพื่อทำการตรวจสอบบล็อกไคลเอ็นต์แบบไลท์และการตรวจสอบหลักฐานของ Merkle ปัญหาคือซอฟต์แวร์ Cosmos SDK มีข้อบกพร่องในการใช้งานในการแสดงต้นไม้ IAWL ซึ่งทำให้การพิสูจน์ที่ไม่ถูกต้องด้วยการเข้ารหัสสามารถผ่านการตรวจสอบได้ กล่าวอีกนัยหนึ่ง ใครๆ ก็สามารถสร้างเงินจากอากาศที่เบาบางได้ ผู้โจมตีสามารถใช้ประโยชน์จากข้อบกพร่องในการใช้งานนี้ซึ่งซ้อนอยู่ในพรีคอมไพเลอร์ iavlMerkleProofValidate เพื่อสูบเงินหลายร้อยล้านดอลลาร์จากสะพานข้ามสายโซ่ของ Binance

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

  • ความเสี่ยงที่อาจถึงแก่ชีวิตจากการแนะนำพรีคอมไพเลอร์เพิ่มเติม ได้แก่:

  • การอนุญาตให้ฝ่ายใดฝ่ายหนึ่งแก้ไขสถานะของสัญญาที่ใช้งานอยู่เพียงฝ่ายเดียว

  • ซึ่งรวมถึงการแก้ไขพื้นที่เก็บข้อมูลทั้งหมด (แทรก อัปเดต ลบ)

  • ใช้การพึ่งพาบุคคลที่สามที่ไม่น่าเชื่อถือ ไม่ได้รับการยืนยัน หรือไม่ผ่านการตรวจสอบ

ให้การเข้าถึงค่าภายในโหนดไม่แน่นอน

แม้จะปฏิบัติต่อคอมไพเลอร์และ EVM เป็นเอนทิตีที่แยกจากกันโดยสิ้นเชิง แต่ก็น่าสังเกตว่าคอมไพเลอร์ Solidity ตั้งสมมติฐานที่เข้มงวดเกี่ยวกับพฤติกรรมของสัญญาที่คอมไพล์ล่วงหน้าสามรายการแรก (ecrecover, sha 256 และ &ripemd) ซึ่งส่งผ่านการแสดงฟังก์ชันคำหลักในภาษาพื้นเมืองใน ภาษา Solidity เบื้องหลัง คอมไพเลอร์ Solidity ประมวลผลคีย์เวิร์ดเหล่านี้เป็นไบต์โค้ด ซึ่งเรียกใช้การเรียกแบบคงที่ระหว่างสัญญา แผนภาพด้านล่างแสดงให้เห็นเพิ่มเติมถึงวิธีการสื่อสารระหว่างสัญญา

  • ความเสี่ยงด้านความปลอดภัยที่เกิดจากการปรับเปลี่ยนพรีคอมไพเลอร์มาตรฐานรวมถึง:

  • อนุญาตให้คู่สัญญาที่รวมศูนย์แก้ไขสถานะของสัญญาที่ใช้งานเพียงฝ่ายเดียว

  • ซึ่งรวมถึงการแก้ไขพื้นที่เก็บข้อมูลทั้งหมด (แทรก อัปเดต ลบ)

  • สมมติฐานตำแหน่งที่คอมไพล์ล่วงหน้าของคอมไพเลอร์ Solidity ไม่สอดคล้องกัน

  • ให้การเข้าถึงค่าภายในโหนดไม่แน่นอน

การใช้การพึ่งพาบุคคลที่สามที่ไม่น่าเชื่อถือ ไม่ได้รับการยืนยัน หรือไม่ผ่านการตรวจสอบ

  • ความเสี่ยงหลักที่เกิดจากการปรับเปลี่ยนองค์ประกอบพื้นฐานของ EVM ได้แก่:

  • ไม่จำกัดสแต็คของล่ามให้มีขนาดใหญ่ไม่สิ้นสุด

  • การปรับขนาดหรือเปลี่ยนรุ่นหน่วยความจำอาจส่งผลให้เกิดการดำเนินการที่ไม่ได้กำหนด

  • การใช้การพึ่งพาบุคคลที่สามที่ไม่น่าเชื่อถือ ไม่ได้รับการยืนยัน หรือไม่ผ่านการตรวจสอบ

ชื่อเรื่องรอง

เหตุใดคุณจึงควรใส่ใจเกี่ยวกับความปลอดภัยของ EVM

ความปลอดภัย
ส้อม
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
สรุปโดย AI
กลับไปด้านบน
เครือข่าย TVL เก้าใน 10 อันดับแรกรองรับสัญญาอัจฉริยะ EVM
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android