ข้ามไปยังเนื้อหา

ตัวสำรวจบล็อก

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

อัปเดต

จัดทำขึ้นเพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำการลงทุน การลงทุนอาจทำให้สูญเสียเงินลงทุนได้

คำตอบโดยตรง

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

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

วิธีการทำงาน

  1. ระบุชื่อโฮสต์ของตัวสำรวจ chain ID หรือเครือข่าย Bitcoin เวลาที่สังเกต และตัวระบุธุรกรรม บล็อก หรือที่อยู่ อย่าใช้สัญลักษณ์ ชื่อ หรือที่อยู่แบบย่อเป็นหลักฐานยืนยันตัวตน ให้เก็บตัวระบุเต็มและสินทรัพย์หรือสัญญาที่คาดไว้
  2. จำแนกทุกฟิลด์ที่แสดง แยกข้อมูลโปรโตคอล ผล RPC ปัจจุบันของโหนด ค่ารวมหรือร่องรอยที่ตัวทำดัชนีสร้าง เมทาดาทาที่ถอดรหัส และป้ายหรือราคาจากบุคคลที่สาม บันทึกว่าข้อสรุปแต่ละข้ออาศัยหลักฐานชั้นใด
  3. ตรวจสอบวงจรชีวิตและความเป็นแคนนอนิคัล ดูว่ายังรอดำเนินการหรือถูกรวมแล้ว ตรวจสอบแฮชและความสูงบล็อก สาย parent จำนวนการยืนยันหรือ safe และ finalized รวมถึงสถานะการแทนที่และรีออร์แกไนซ์ แฮชที่ค้นพบไม่ได้พิสูจน์ว่าถูกรวมในเชนแคนนอนิคัล
  4. กระทบยอดการประมวลผล บนเชน EVM ให้ตรวจ status, gasUsed, effectiveGasPrice, บันทึก และการเปลี่ยนแปลงจริงของยอดคงเหลือ allowance หรือ storage ใบรับที่มี status = 1 พิสูจน์เพียงว่าการประมวลผลระดับบนสุดไม่ revert ไม่ได้พิสูจน์ว่าผลทางเศรษฐกิจปลอดภัย ธุรกรรมที่มี status = 0 ก็อาจถูกรวมและเสียค่าแก๊สได้
  5. มองข้อมูลที่ถอดรหัสแล้วเป็นข้อกล่าวอ้าง ตรวจสอบลายเซ็นเหตุการณ์ ที่อยู่สัญญา topics ข้อมูล decimals ของโทเค็น และ ABI ให้ถือว่า “ธุรกรรมภายใน” เป็นเฟรมใน call trace ไม่ใช่ธุรกรรมโปรโตคอลที่ลงนามแยกต่างหาก และคาดว่าความครอบคลุมของร่องรอยจะแตกต่างตามไคลเอนต์กับผู้ให้บริการ
  6. ระบุตัวตนและความเปลี่ยนแปลงได้ของสัญญา ทำซ้ำการตรวจสอบซอร์สเมื่อมีนัยสำคัญ และตรวจ runtime bytecode, implementation ของพร็อกซี, beacon หรือ admin, อำนาจอัปเกรด และโครงสร้าง storage ตราซอร์สที่ตรวจสอบแล้วเชื่อม input ของ compiler ที่ส่งมากับ bytecode เท่านั้น ไม่ใช่การตรวจสอบความปลอดภัยหรือการรับรองผู้ออก
  7. เทียบกับตัวสำรวจอิสระหรือคิวรีโหนดโดยตรง เก็บคำตอบดิบและ timestamp แล้วกระทบยอดอีกครั้งเมื่อถึง finality ที่กำหนด ยกระดับการตรวจสอบเมื่อพบดัชนีเก่า ข้อมูล archive ขาดหาย รีออร์แกไนซ์ RPC ไม่ตรงกัน โทเค็นสแปม การอัปเกรดพร็อกซี หรือป้ายกำกับนอกเชนเปลี่ยนไป

ตัวอย่างคำนวณ

  • บัญชีค่าธรรมเนียมจากใบรับ ธุรกรรม EVM ที่ถูกรวมรายงาน gasUsed = 52,000 และ effectiveGasPrice = 18 gwei ค่าประมวลผลคือ 52,000 * 18 gwei = 936,000 gwei = 0.000936 ETH หากใช้อัตราภายนอกที่มีเวลาอ้างอิง $2,500/ETH จะเท่ากับ $2.34 โดยค่าธรรมเนียม ETH เป็นข้อมูลบนเชน แต่ค่าดอลลาร์เป็นค่าประมาณนอกเชน
  • ตำแหน่งทศนิยมของโทเค็น บันทึกการโอนมีจำนวนเต็มดิบ 123,456,789 สำหรับสัญญาที่ตรวจสอบแล้วว่ามี decimals = 6 จำนวนที่แสดงคือ 123,456,789 / 10^6 = 123.456789 tokens หากสมมติผิดว่ามี 18 ตำแหน่ง จะแสดง 0.000000000123456789 จึงต้องตรวจตัวตนสัญญาควบคู่กับ decimals
  • ร่องรอยเทียบกับธุรกรรม ธุรกรรมที่ลงนาม 1 รายการส่ง 1.00 ETH ไปยังสัญญา A โดย call trace แสดงว่า A ส่งต่อ 0.72 ETH ไป B และคืน 0.25 ETH ทำให้ A เก็บ 1.00 - 0.72 - 0.25 = 0.03 ETH ก่อนนับแก๊สที่ผู้ส่งจ่าย เฟรมเหล่านี้ช่วยกระทบยอดการไหลของมูลค่า แต่ไม่ใช่ธุรกรรมที่ลงนามแยกกัน 3 รายการ
  • การย้อนกลับของตัวทำดัชนี ธุรกรรมในบล็อก 20,000,000 ปรากฏเมื่อ tip อยู่ที่ 20,000,012 จึงมีความลึกรวม 20,000,012 - 20,000,000 + 1 = 13 หากรีออร์แกไนซ์นำบล็อกนั้นออก ใบรับแคนนอนิคัลจะหายไปและต้องย้อนบันทึก ตัวสำรวจที่ยังแสดง 13 confirmations คือข้อมูลล้าหลัง ไม่ใช่ความจริงฉันทามติอีกแบบหนึ่ง

ความเสี่ยง

  • ตรวจผิดเชน testnet fork หรือตัวสำรวจเลียนแบบ
  • คัดลอกที่อยู่แบบย่อ ถูกวางยา หรือหน้าตาคล้ายกัน
  • ใช้ชื่อหรือสัญลักษณ์โทเค็นเป็นตัวตนของสัญญา
  • ถือว่าแฮช pending ที่ค้นพบคือการรวมแบบแคนนอนิคัล
  • เชื่อ backend RPC ที่เก่า กำลังซิงก์ หรือแยกขาด
  • เปรียบเทียบความสูงโดยไม่ตรวจแฮชบล็อกและสายบรรพบุรุษ
  • พลาดการแทนที่ ความขัดแย้ง หรือรีออร์แกไนซ์ของเชน
  • ถือว่าใบรับสำเร็จหมายถึงผลทางเศรษฐกิจหรือแอปสำเร็จ
  • มองข้ามแก๊สที่จ่ายให้ธุรกรรม revert ซึ่งถูกรวมแล้ว
  • ถือว่าบันทึกเหตุการณ์เป็นสถานะสุดท้ายที่มีอำนาจ
  • ถอดรหัสบันทึกด้วย ABI ลายเซ็น หรือ decimals ที่ผิด
  • ถือว่าเฟรมร่องรอยเป็นธุรกรรมที่ลงนามแยกต่างหาก
  • สมมติว่าผู้ให้บริการทุกแห่งแสดงร่องรอยครบและเหมือนกัน
  • พลาดข้อมูลจาก archive, pruning, pagination หรือ rate limit
  • ถือว่าซอร์สที่ตรวจสอบแล้วคือการตรวจความปลอดภัยหรือหลักฐานผู้ออก
  • ตรวจ implementation หนึ่งขณะโต้ตอบกับพร็อกซีอีกตัว
  • พลาดการเปลี่ยนพร็อกซี beacon admin หรือการอัปเกรด
  • เชื่อโทเค็นสแปม ป้ายที่อยู่ หรือราคา fiat ว่าเป็นข้อเท็จจริงฉันทามติ
  • ใช้ยอดคงเหลือจากตัวสำรวจโดยไม่กระทบยอด UTXO หรือ storage สัญญา
  • พึ่งตัวสำรวจเดียวระหว่างระบบล่ม การเซ็นเซอร์ หรือดัชนีผิดพลาด

ความเข้าใจผิดที่พบบ่อย

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

หัวข้อที่เกี่ยวข้อง

แหล่งข้อมูล

การนำทาง

ค้นหาในวิกิ...