เหตุใดธุรกรรมของฉันจึงสำเร็จในการจำลอง แต่ revert บนเครือข่ายจริง?
โอกาส
เครื่องมือจำลอง EVM รันธุรกรรมกับ snapshot ของ state ของเครือข่าย แต่เมื่อธุรกรรมนั้นถูกบันทึกลงใน block แล้ว state ได้เปลี่ยนแปลงไปแล้ว สำหรับการดำเนินการ DeFi แบบหลาย hop การเคลื่อนไหวของราคา oracle หรือธุรกรรมที่แข่งขันกันซึ่งแตะ pool เดียวกันจะเปลี่ยนการจำลองที่ถูกต้องให้กลายเป็นการ revert บนเครือข่ายจริง นักพัฒนาไม่มีทางรู้จากการจำลองว่าธุรกรรมของตนไวต่อ state drift ระหว่างการเรียกและการรวมเข้าสู่ block มากแค่ไหน การวิเคราะห์ล่าสุดของ workload EVM ในสภาพแวดล้อมจริงยืนยันว่าพฤติกรรมการรันนั้นไวต่อ state อย่างมาก และเครื่องมือ gas และ simulation ในปัจจุบันไม่ได้คำนึงถึงความแปรปรวนนี้ ช่องว่างนี้กว้างที่สุดสำหรับการโต้ตอบที่ซับซ้อนข้ามสัญญาหลายฉบับ ซึ่งพอดีกับกรณีที่มีความเสี่ยงสูงที่สุด
ทำไมถึงสำคัญ
การจำลองที่สะท้อนความไวของ state ณ เวลารันคือ primitive ที่ทำให้การดำเนินการบนเครือข่ายที่ซับซ้อนคาดเดาได้สำหรับนักพัฒนา
วิธีที่ผมให้คะแนนโอกาส
คะแนนโอกาสเป็นมุมมองส่วนตัวของผม ไม่ใช่การวัดผล โดยดูว่ามันเจ็บปวดแค่ไหน บ่อยแค่ไหนที่มันกัดกิน และมีทางแก้อยู่น้อยเพียงใดในปัจจุบัน คะแนนสูงกว่าหมายความว่าผมคิดว่าคุ้มค่าแก่การสร้างมากกว่า
ความเจ็บปวดที่มันก่อขึ้นเมื่อปรากฏตัว
ความถี่ที่คนจริงๆ เจอมัน
ความขาดแคลนของเครื่องมือที่ดีสำหรับมันในปัจจุบัน
ปัญหาอื่นที่น่าแก้ไข
ทำไมฉันถึงไม่สามารถพิสูจน์ฐานะทางการเงินได้โดยไม่ต้องเปิดเผยยอดเงิน
Blockchainทำไมการโอนเงินข้ามเชนถึงยังน่ากลัวกว่าอินเทอร์เน็ตยุคแรกอยู่?
Blockchainทำไมการปฏิบัติตามกฎระเบียบถึงยังหมายถึงแค่ PDF กับการอธิษฐาน?
Blockchainทำไมการ self-custody ถึงยังเป็นทางเลือกระหว่างการสูญเสียกุญแจของตัวเองกับการไว้วางใจบริษัท?
Blockchainทำไมการ tokenize สินทรัพย์จริงยังต้องพึ่งพาคนกลางถึงสิบราย?
Blockchainทำไม stablecoin ถึงจ่ายเงินให้คนที่ไม่มีอินเทอร์เน็ตไม่ได้?