ข้ามไปยังเนื้อหา
มุมมองระดับโลกต่อสินทรัพย์ดิจิทัลมุมมองระดับโลก · บริบทในพื้นที่
ChainView BTC866CHAIN VIEW
บล็อกเชน

วิธีตรวจอำนาจอัปเกรดสัญญาอัจฉริยะ

ที่อยู่หนึ่งอาจส่งคำสั่งไป implementation อีกแห่ง โค้ดที่ตรวจยืนยันบนเปลือกนอกไม่พออธิบายตรรกะปัจจุบัน ใช้เอกสารกับข้อมูลบนเชนหา proxy implementation และ admin จดบล็อกและที่อยู่ เพราะรุ่นวันนี้อาจไม่ใช่รุ่นที่ประมวล…

อ่านในภาษาไทย简体中文繁體中文English한국어РусскийالعربيةEspañol (México)Tiếng Việt
วิธีตรวจอำนาจอัปเกรดสัญญาอัจฉริยะ

ภาพประกอบต้นฉบับตามหัวข้อ: แผนภาพต้นฉบับตามหัวข้อโดย ChainView BTC866 · ChainView BTC866 Editorial · CC BY 4.0

หาสัญญาและพร็อกซี

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

วาดเส้นทางอำนาจ

ถามว่าใครเสนอ ใครอนุมัติ และใครสั่งใช้ multisig ลดการพึ่งคีย์เดียวแต่ผู้เซ็นอาจอยู่ในองค์กรเดียวกัน timelock ให้เวลามองเห็นถ้าไม่มีทางฉุกเฉินข้ามได้ ตรวจสิทธิ์หยุด mint บล็อก และถอนทรัพย์นอกจากอัปเกรด ชื่อบทบาทบนหน้าจอไม่แทนเงื่อนไขในโค้ดและไม่ได้บอกว่าคีย์ถูกเก็บอย่างไร

ดูความเปลี่ยนแปลงจริง

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

ติดตามให้ใช้งานได้

บันทึกเหตุการณ์เปลี่ยน admin และ implementation แล้วแจ้งเตือนที่อยู่ถูกชุด ทดลองในระบบทดสอบว่าตรวจพบการเปลี่ยนจริง ส่วนหนึ่งแก้ไม่ได้ไม่ได้ทำให้ทั้งระบบแก้ไม่ได้หากพึ่ง oracle หรือสัญญาที่เปลี่ยนได้ จดสิ่งพึ่งพาและทางออกก่อนฝาก พร้อมกำหนดคนอ่านและตอบสนองแจ้งเตือน ไม่ใช่เก็บเหตุการณ์โดยไม่มีการตัดสินใจ

แหล่งข้อมูล

  1. OpenZeppelin proxy upgrades (เปิดในแท็บใหม่)
  2. OpenZeppelin access control (เปิดในแท็บใหม่)