สามคุณสมบัติหลักของบล็อกเชนคือการกระจายอำนาจ ความมั่นคง และขนาดใหญ่ได้ ตามทฤษฎีบล็อกเชนทรายเล็มมาก การออกแบบบล็อกเชนสามารถปฏิบัติได้สองอย่างเท่านั้น อีเธอร์เรียมีการออกแบบขึ้นเพื่อกระจายอำนาจและความมั่นคง และดังนั้นมีประสิทธิภาพต่ำในเรื่องของการขยายขนาด ในปัจจุบันอีเธอร์เรียมีการประมวลผลมากกว่า 1 ล้านธุรกรรมต่อวัน ซึ่งอาจส่งผลให้ค่าธรรมเนียมการทำธุรกรรมสูงและเพิ่มความต้องการในโซลูชั่นการปรับขนาดของอีเธอร์เรียมากขึ้น
โซลูชันการปรับขนาด Ethereum มีหลายประเภท โดยแต่ละประเภทมีการแลกเปลี่ยนและรูปแบบความปลอดภัยของตัวเอง รวมถึง Layer 1 sharding, Layer 2 state channels, Plasma, sidechains, Rollups และ Validium เนื่องจากเทคโนโลยีการแบ่งส่วนมีการพัฒนาช้าและซับซ้อนในการใช้งานและ sidechains และ Validium ไม่สามารถสืบทอดความปลอดภัยและความพร้อมใช้งานของข้อมูลจาก Ethereum ได้ โดยสรุประบบนิเวศของ Ethereum ตอนนี้ใช้โซลูชันการปรับขนาด Rollups เป็นหลัก
จนถึงตอนนี้ Beosin ได้เป็นพันธมิตรด้านความปลอดภัยของ ETH Layer2 เช่น Manta Netowork และ StarkNet ในการตรวจสอบรายการก่อนหน้านี้ Beosin ได้ผ่านการตรวจสอบความปลอดภัยของเครือข่ายบล็อกเชนที่มีชื่อเสียงหลายราย เช่น Ronin Network, Manta Network, Merlin Chain, Clover, Self Chain, Crust Network เป็นต้น Beosin ตอนนี้ได้เปิดเผยแนวทางการตรวจสอบสำหรับ ETH Layer2 เพื่อให้บริการตรวจสอบความปลอดภัยอย่างครอบคลุมสำหรับนิเวศ ETH Layer2
ETH Layer2 ใช้ Rollups เพื่อแพ็กเกจร้อยละหนึ่งของธุรกรรมในการส่งให้กับ Ethereum mainnet ซึ่งจะทำให้ค่าธุรกรรมถูกแบ่งให้กับผู้ใช้ Rollup ทั้งหมด ลดค่าธุรกรรมต่อผู้ใช้ ข้อมูลธุรกรรมใน Rollups จะถูกส่งให้ Layer1 แต่การดำเนินการจะถูกดำเนินการโดยอิสระโดย Rollups โดยการส่งข้อมูลธุรกรรมไปที่ Layer1 Rollups สามารถรับช่วงความปลอดภัยของ Ethereum ได้เพราะเมื่อข้อมูลถูกอัปโหลดขึ้น Layer1 การย้อนกลับธุรกรรม Rollups ต้องการให้ข้อมูลถูกย้อนกลับบน Layer1
ในปัจจุบัน การใช้ Rollups สามารถนำมาใช้ได้ในสองวิธีหลัก
Optimistic Rollups: ใช้สิ่งประสงค์ทางเศรษฐกิจและทฤษฎีเกมเพื่อยืนยันธุรกรรม เช่น Arbitrum, Base, OP, Blast, ฯลฯ
Zero-Knowledge Rollups: ใช้พิสูจน์ที่ไม่เปิดเผยข้อมูลสำหรับความปลอดภัยและความเป็นส่วนตัว เช่น Scroll, Linea, zkSync, StarkNet, เป็นต้น
Optimistic Rollups เป็นวิธีในการปรับขนาด Ethereum โดยการย้ายการคำนวณและการเก็บ state ออกจากเชน การดำเนินการธุรกรรมนอกเชน แต่การเผยแพร่ข้อมูลธุรกรรมไปยัง mainnet เป็น calldata หรือ blob
Optimistic Rollups นำสมาร์ทคอนแทร็กต์ไปติดตั้งบน Ethereum ที่เรียกว่าสัญญา Rollup ซึ่งจัดการสถานะของ Rollup ติดตามยอดคงเหลือของผู้ใช้ และจัดการเงินฝาก การถอน และการแก้ไขโต้แย้ง ธุรกรรมถูกเก็บรวบรวมและสรุปที่ออฟเชนโดยซีเควนเซอร์และธุรกรรมหลาย ๆ รายการถูกรวบรวมเข้าไปในบล็อก Rollup ที่มีสรุปและพิสูจน์ทางคริปโตของสถานะบัญชีใหม่ (รูทเมอร์เคิล) เซควอนเซอร์จากนั้นยืนยันบล็อก Rollup ไปยังโซ่หลักโดยการให้รูทเมอร์เคิลและคอลล์ดาต้า
Rollups ในแง่ดีถือเป็น "แง่ดี" เพราะพวกเขาคิดว่าธุรกรรมนอกเครือข่ายนั้นถูกต้องและไม่ได้เผยแพร่หลักฐานความถูกต้องของชุดธุรกรรมที่ผลักดันบนห่วงโซ่ ในทางตรงกันข้าม Optimistic Rollups อาศัยรูปแบบการพิสูจน์การฉ้อโกงเพื่อตรวจจับกรณีที่มีการคํานวณธุรกรรมไม่ถูกต้อง หลังจากส่งชุด Rollup บน Ethereum จะมีกรอบเวลา (เรียกว่าระยะเวลาท้าทาย) ซึ่งทุกคนสามารถท้าทายผลลัพธ์ของธุรกรรม Rollup ได้โดยการคํานวณหลักฐานการฉ้อโกง หลักฐานการฉ้อโกงมีรายละเอียดของธุรกรรมเฉพาะที่ผู้ตรวจสอบเชื่อว่าเป็นการฉ้อโกง
ตามที่แสดงในรูปด้านล่าง ระยะเวลาทดสอบของ Optimistic Rollups ส่วนใหญ่ในปัจจุบันคือ 7 วัน และส่วนที่สั้นที่สุดคือ 1 วัน
ในระหว่างช่วงท้าทาย ใครก็สามารถท้าทายผลการธุรกรรมด้วยการคำนวณพิสูจน์การฉ้อโกง หากการทำธุรกรรมไม่ถูกต้อง บล็อก Rollup จะถูกเพิกถอน ผู้ท้าทายจะได้รับรางวัล และตัวตรวจสอบจะถูกลงโทษ
หากการจัดหมวดหมู่ Rollup ยังไม่ได้ถูกท้าทายหลังจากช่วงเวลาท้าทาย (เช่น การดำเนินการทุกธุรกรรมถูกดำเนินการไปอย่างถูกต้อง) จะถือว่าถูกต้องและได้รับการยอมรับบน Ethereum ผู้อื่นสามารถดำเนินการเพิ่มบล็อก Rollup ที่ยังไม่ได้ยืนยันต่อไป แต่โปรดทราบว่าผลลัพธ์ของธุรกรรมจะถูกย้อนกลับหากธุรกรรมถูกดำเนินการขึ้นอยู่กับข้อผิดพลาดที่เผยแพร่ไว้ก่อนหน้า
ในที่สุดผู้ใช้ต้องส่งคำขอถอนเงินไปยังสัญญา Rollup เพื่อถอนเงินจาก Layer 2 ไปยัง Layer 1 สัญญาจะตรวจสอบว่าผู้ใช้มีเงินพอใน Rollup และอัปเดตยอดเงินของพวกเขาใน mainchain ตามกฎหมาย
ด้วยการก่อสร้างเชิงนิเวศน์และ airdrops Arbitrum กลายเป็นเครือข่ายที่มีการใช้งานมากที่สุดใน ETH Layer2 อย่างรวดเร็วโดย TVL มีมูลค่าเกิน 2.7 พันล้านดอลลาร์ ทีม Arbitrum ได้เปิดตัวโปรแกรม Arbitrum Orbit: สนับสนุนให้นักพัฒนาสร้าง Layer3 โดยใช้เทคโนโลยีที่เกี่ยวข้องกับ Arbitrum Beosin ได้เสร็จสิ้นการตรวจสอบความปลอดภัยของ ArbSwap, Arbipad เพื่อช่วยในการพัฒนาความปลอดภัยของระบบนิเวศ Arbitrum
มากกว่า 25 เครือข่าย Layer2 ได้รับการสร้างขึ้นโดยใช้ OP Stack ซึ่งรวมถึงโครงการดาวรุ่งเช่น Base, Mantle, Manta, OP BNB และ Celo แล้ว นอกจากนี้ยังมี DIPX Finance และ Starnet ที่สร้างขึ้นบน Optimism ผ่านการตรวจสอบความปลอดภัยจาก Beosin แล้ว
Base เป็นเครือข่าย Layer2 ที่ใช้ OP Stack ซึ่งเป็นอันดับสองรองจาก Arbitrum ในแง่ของกิจกรรมทางนิเวศวิทยาและ TVL ก่อนหน้านี้ Beosin ได้วิเคราะห์สถาปัตยกรรมและความเสี่ยงด้านความปลอดภัยของ Base โดยละเอียด และตรวจสอบ Surf Protocol และ EDA เพื่อช่วยให้เจ้าของโครงการและผู้ใช้หลีกเลี่ยงความเสี่ยงด้านความปลอดภัย
Blast ในตอนท้ายของการแข่งขันนักพัฒนา "Big Bang" ได้เห็น TVL ทะยานขึ้นเป็นมากกว่า 2 พันล้านดอลลาร์โดยเข้ามาแทนที่ในวงจร Layer2 Beosin วิเคราะห์ความปลอดภัยของเครือข่ายของ Blast ก่อนการเปิดตัวเมนเน็ต เนื่องจาก Blast ไม่ได้ใช้หลักฐานการฉ้อโกงทรัพย์สินจึงถูกเก็บไว้ในกระเป๋าเงินหลายลายเซ็นไม่ใช่สะพาน Rollup ซึ่งมีความเสี่ยงสูงในการรวมศูนย์ Beosin ได้ตรวจสอบโครงการระบบนิเวศ Blast หลายโครงการเช่น Wand Protocol, Zest, Kalax
OP Stack, เฟรมเวิร์กที่เจริญและเจริญเป็นระบบสำหรับ Optimistic Rollups, โดยพื้นฐานแล้วจะแยกกระบวนการที่ซับซ้อนของการสร้างลูกโซ่ของ optimistic Rollups เป็นกระบวนการที่เรียบง่ายโดยการ提供ชุดเต็มของคอมโพเนนต์ซอฟต์แวร์ โปรแกรมเครื่องมือ และเฟรมเวิร์ก ที่完整 ที่นี่เราจะนำเฟรม Op stack เป็นตัวอย่างเพื่อวิเคราะห์โครงสร้างที่ทีพิเศษของ Optimism Rollups
● โหนดการดำเนินการ: Op-geth เป็นไคลเอ็นต์การดำเนินการที่ถูกขยายของ Ethereum ที่จัดการฟังก์ชันที่เฉพาะเจาะจงของ Layer2 เช่นการรับฝากโทเค็นจาก Layer1 ชั้นนี้กำหนดฟังก์ชันทั้งหมดที่รับผิดชอบการดำเนินการสถานะ ที่นี่การเปลี่ยนสถานะถูกเรียก trigger ขึ้นอยู่กับข้อมูล input ที่ได้รับจากโหนดสรุป (ลำดับและตรวจสอบ) ผ่าน engine API
● โหนด Rollup: รวมถึง sequencer และ validator โคลเล็กเตอร์รับผิดชอบการเรียงลำดับธุรกรรมที่ประมวลผลจากชั้นที่ 2 และเผยแพร่ไปยังเลเยอร์ 1 ซีเควนเซอร์กำหนดวิธีการเก็บรวบรวมและเผยแพร่ธุรกรรมบนโซ่ชั้นที่ 2 และ validator ตรวจสอบความถูกต้องของธุรกรรมแบบแบทช์และส่งหลักฐานหากพบการฉ้อโกงใด ๆ
● พิสูจน์การฉ้อโกง: Cannon เป็นเวอร์ชันที่อัพเกรดของ Geth และรับผิดชอบในการเรียกใช้ EVM ขณะที่ตรวจจับการฉ้อโกงและพิสูจน์ มันเป็นหลักทรัพย์เครื่องยนต์ที่อยู่บนเชนที่จะประสบความขัดแย้ง ซึ่งสร้างความสอดคล้องกับ sequentiers และ validators ผ่าน apis เพื่อพิสูจน์ธุรกรรมที่ผิด
● การส่งกลุ่ม: ตัวแปรชุดทำงานแบบกลุ่มของ Sequencers ประมวลผลธุรกรรมที่ได้รับการตรวจสอบจากผู้ตรวจสอบ และ Sequencers ส่งธุรกรรมที่ได้รับการประมวลผลแบบกลุ่มไปยังเลเยอร์ 1
● สัญญาสะพาน: ได้รับการจัดตั้งบน Ethereum และ Layer2 ซึ่งช่วยให้ผู้ใช้สามารถส่งข้อความและโอนสินทรัพย์ระหว่าง Layer1 และ Layer2 ได้
ภายใต้โครงสร้างเทคนิคของ Optimistic Rollup จำเป็นต้องให้ความสำคัญกับความปลอดภัยของสินทรัพย์ของผู้ใช้เมื่อพวกเขาเคลื่อนย้ายระหว่าง L1 และ L2 ข้อมูลต่อไปนี้เป็นรายละเอียดว่าผู้ใช้สามารถเข้าถึงสินทรัพย์ระหว่างชั้นทั้งสองได้อย่างไร และระบบจะรักษาความสมบูรณ์และความปลอดภัยของธุรกรรมเหล่านี้
● การเชื่อมโยงสินทรัพย์เป็น Rollup: ผู้ใช้ฝากเงินเข้าสัญญาสะพานโซ่ของ Rollup บน Layer1 สัญญาสะพานโซ่จะถ่ายทอดธุรกรรมไปยัง Layer2 ซึ่งมีการสร้างสินทรัพย์จํานวนเท่ากันและส่งไปยังที่อยู่ที่เลือกโดยผู้ใช้ใน Optimistic Rollup
ธุรกรรมที่สร้างโดยผู้ใช้ เช่น เงินฝากจากเลเยอร์1 ไปยังเลเยอร์2 มักจะถูกคิวไว้จนกว่าผู้กักกันจะส่งใหม่ให้กับสัญญา Rollup อย่างไรก็ตาม ในการรักษาความต้านทานต่อการเซ็นเซอร์ชั่น Rollup ที่เติบโต อนุมัติ Rollup ช่วยให้ผู้ใช้สามารถส่งธุรกรรมโดยตรงไปยังสัญญา Rollup on-chain หากความล่าช้าในธุรกรรมเกินเวลาที่อนุญาตสูงสุด
●การถอนสินทรัพย์จาก Rollup: เนื่องจากกลไกการป้องกันการฉ้อโกงการถอนเงินจาก Optimistic Rollup ไปยัง Ethereum จึงซับซ้อนกว่า หากผู้ใช้เริ่มต้นธุรกรรม Layer2 ถึง Layer1 เพื่อถอนเงินที่จัดการบน Layer1 พวกเขาจะต้องรอการสิ้นสุดระยะเวลาการท้าทายซึ่งโดยทั่วไปจะใช้เวลาประมาณ 7 วัน
เมื่อผู้ใช้เริ่มต้นขอการถอนเงินใน Rollup ธุรกรรมจะถูกรวมในชุดถัดไปและทรัพย์สินของผู้ใช้ใน Rollup จะถูกทำลาย หลังจากนั้นชุดถัดไปจะถูกเผยแพร่บน Ethereum ผู้ใช้สามารถคำนวณพิสูจน์ Merkle เพื่อยืนยันว่าธุรกรรมการออกออกของพวกเขาถูกนำเข้าในบล็อก ขั้นตอนถัดไปคือรอให้ระยะเวลาการล่าช้าสิ้นสุดเพื่อดำเนินการธุรกรรมใน Layer1 และถอนเงินไปยัง mainnet
เพื่อหลีกเลี่ยงการรอหนึ่งสัปดาห์ก่อนที่จะถอนเงินจาก Ethereum ผู้ใช้ของ Optimistic Rollup สามารถขอล่วงหน้าจากผู้ให้บริการสภาพคล่อง (LP) ซึ่งถือว่าเป็นเจ้าของการถอนเงินที่รอดําเนินการและจ่ายเงินของผู้ใช้ใน Layer1 เพื่อแลกกับค่าธรรมเนียม ผู้ให้บริการสภาพคล่องสามารถตรวจสอบความถูกต้องของคําขอถอนเงินของผู้ใช้โดยการตรวจสอบข้อมูลแบบ on-chain ด้วยตนเองก่อนที่จะปล่อยเงิน ด้วยวิธีนี้พวกเขาสามารถมั่นใจได้ว่าการทําธุรกรรมจะได้รับการยืนยันในที่สุดบรรลุความแน่นอนของความไว้วางใจ
Layer2 เป็นระบบบล็อกเชนที่สมบูรณ์ ดังนั้นการตรวจสอบทั่วไปของโซลูชั่นการปรับขนาดสาธารณะก็ใช้กับ Optimistic Rollup เช่นกัน ตามหมายเหตุที่อยู่ท้ายบทความนี้
นอกจากนี้ เนื่องจากมีลักษณะพิเศษ Optimistic Rollup จึงต้องการการตรวจสอบเพิ่มเติมหลายรายการ:
●หลักฐานความพร้อมใช้งานของข้อมูล: ตรวจสอบให้แน่ใจว่าข้อมูลธุรกรรม Layer2 มีอยู่ใน Layer1 เพื่อป้องกันการสูญหายของข้อมูล
● กลไกการซิงโครไนซ์ข้อมูล: ตรวจสอบว่ากลไกการซิงโครไนซ์ข้อมูลระหว่างเลเยอร์ 1 และเลเยอร์ 2 เป็นเสียงและสามารถจัดการกับสถานการณ์ผิดปกติ เช่นการแบ่งแยกระบบเครือข่าย
● สัญญาการพิสูจน์การฉ้อโกง: ตรวจสอบว่าสัญญาการพิสูจน์การฉ้อโกงได้รับการนำมาใช้ถูกต้อง
● กลไกระยะเวลาท้าทาย: ตรวจสอบว่าความยาวของระยะเวลาท้าทายเหมาะสมหรือไม่ และว่าหลักฐานการป้องกันการฉ้อโกงสามารถเสร็จสิ้นภายในเวลาที่กำหนดหรือไม่
● กระบวนการส่งข้อมูลการทุจริต: ตรวจสอบว่ากระบวนการส่งข้อมูลการทุจริตเป็นที่ปลอดภัย
● กระบวนการฝากเงินและถอนเงิน: ตรวจสอบกระบวนการฝากเงินและถอนเงินจากเลเยอร์ 1 ไปยังเลเยอร์ 2 และจากเลเยอร์ 2 ไปยังเลเยอร์ 1 เพื่อให้แน่ใจว่ากระบวนการเป็นปลอดภัย
● การสร้างและทำลายสินทรัพย์: ตรวจสอบตรรกะการหล่อและทำลายสินทรัพย์บน Layer2 เพื่อให้แน่ใจว่าสินทรัพย์บน Layer1 สอดคล้องถูกต้อง
● กลไกผู้ให้ความสะดวกในการเงิน: หากมีกลไกผู้ให้ความสะดวกในการเงิน (LP) จะต้องตรวจสอบกระบวนการทำงานของ LP และความปลอดภัยของมัน
ซีรี้ส์ Zero-Knowledge (ZK) Rollup คือเทคโนโลยี Layer2 ที่ใช้บนหลักการพิสูจน์แบบซีโร (Zero-Knowledge Proof) โดยมีหน้าที่หลักคือการคำนวณและสร้างพิสูจน์ที่ซับซ้อนขึ้นมานอกเหนือจากเครือข่าย และทำการตรวจสอบพิสูจน์ผ่านเครือข่าย ซึ่งการเก็บรักษาข้อมูลส่วนหนึ่งจะเป็นส่วนหนึ่งในการยืนยันความถูกต้องของข้อมูล
ZK Rollup เป็น "โซลูชันการปรับขนาดแบบไฮบริด" ซึ่งเป็นโปรโตคอลนอกเครือข่ายที่ทํางานอย่างอิสระ แต่ได้รับความปลอดภัยจาก Ethereum โดยเฉพาะเครือข่าย Ethereum บังคับใช้ความถูกต้องของการอัปเดตสถานะบน ZK Rollups และรับประกันความพร้อมใช้งานของข้อมูลพื้นหลังทุกครั้งที่อัปเดตสถานะ Rollup สถานะของ Rollup ได้รับการดูแลโดยสัญญาอัจฉริยะที่ปรับใช้บนเครือข่าย Ethereum ในการอัปเดตสถานะนี้โหนด ZK Rollups จะต้องส่งหลักฐานความถูกต้องสําหรับการตรวจสอบ การพิสูจน์ความถูกต้องคือการรับประกันการเข้ารหัสว่าการเปลี่ยนแปลงสถานะที่เสนอนั้นเป็นผลมาจากการดําเนินการชุดธุรกรรมที่กําหนด ซึ่งหมายความว่า ZK Rollups จะต้องแสดงหลักฐานความถูกต้องเพื่อสรุปธุรกรรมบน Ethereum โดยไม่ต้องเผยแพร่ข้อมูลธุรกรรมทั้งหมด
ไม่มีความล่าช้าในการโอนเงินจาก ZK Rollups ไปยัง Ethereum เนื่องจากธุรกรรมการออกออกจากการทำ Rollups ถูกดำเนินการเมื่อสัญญา ZK Rollups ได้ตรวจสอบพิสูจน์ความถูกต้องแล้ว ในทวิตรา การถอนเงินจาก Optimistic Rollups ทำให้เกิดความล่าช้าเนื่องจากใครก็สามารถใช้พิสูจน์การฉ้อโกงเพื่อท้าทายธุรกรรมการออกออก
zkSync ซึ่งเป็นโซลูชัน L2 ที่เปิดตัวเมื่อห้าปีที่แล้วโดยทีม Matter Labs ใช้เทคโนโลยีการพิสูจน์ความรู้เป็นศูนย์เพื่อให้สามารถตรวจสอบธุรกรรมได้อย่างมีประสิทธิภาพและระดมทุนได้มากกว่า 200 ล้านดอลลาร์ zkSync เป็นหนึ่งในเครือข่าย Layer2 ที่ใช้งานระบบนิเวศมากที่สุดโดยใช้ ZK Rollups และ zkSync ก็เป็นที่ถกเถียงกันเช่นกัน ก่อนหน้านี้ Beosin ได้ทําการตรวจสอบโครงการ DeFi ชั้นนํา SyncSwap ซึ่งครอบคลุมคุณภาพของโค้ดตรรกะของสัญญาและความปลอดภัยรูปแบบการดําเนินงานและอื่น ๆ
StarkNet ใช้ ZK-STARK เพื่อสร้าง Layer2 เพื่อเพิ่มความเร็วในการทำธุรกรรมและลดค่าธุรกรรม StarkNet มีเครื่องจำลองเสมือน (Cairo VM) และภาษาการพัฒนา Cairo เพื่อช่วยนักพัฒนาเขียนสัญญาอัจฉริยะได้อย่างปลอดภัยและง่ายมากขึ้น Beosin ได้เป็นพันธมิตรด้านความปลอดภัยทางการเป็นทางการของ StarkNet โดยทำการตรวจสอบความปลอดภัยสำหรับ Option Dance และ Reddio ในวันที่ 13 สิงหาคม 2024 Reddio ได้ปิดรอบทุนเมล็ดพันธุ์ซึ่งถูกนำโดย Paradigm เพื่อสร้างเครือข่าย Layer2 ของ EVM แบบขนานที่มีประสิทธิภาพสูง
Scroll ถูกปรับขนาดโดยเทคโนโลยีพิสูจน์ทศนิยมศูนย์ และฮาร์ดแวร์เร่งความเร็วในการสร้างและตรวจสอบพิสูจน์ทศนิยมศูนย์ เพื่อทำให้สามารถใช้งาน Solidity และเครื่องมือพัฒนาที่เกี่ยวข้องกับ Ethereum ได้โดยตรงในการสร้างสัญญาฉลากเฉลี่ยระดับ bytecode
เฟรมเวิร์กทั่วไปสําหรับ ZK Rollups ได้แก่ สัญญา Rollup และ Bridge, collators, aggregators, Repeaters และ Roller networks ที่สร้างการพิสูจน์ความรู้เป็นศูนย์ สถาปัตยกรรมเฉพาะแสดงในรูปต่อไปนี้:
● สัญญา Rollup และสัญญาสะพาน:
สัญญา Rollup รับผิดชอบในการ提供 kedata availability สำหรับธุรกรรม Rollup การตรวจสอบพิสูจน์ความถูกต้องของ zkEVM และอนุญาตให้ผู้ใช้โอนสินทรัพย์ระหว่าง Ethereum และ Rollup สถานะ Layer 2 root และ block จาก collator สถานะ root จะเก็บไว้ในสถานะ Ethereum และข้อมูล block ของ layer 2 จะถูกบันทึกเป็นข้อมูลเรียกใช้ของ Ethereum
สัญญาสะพานถูกติดตั้งบน Ethereum และ Layer2 ทำให้ผู้ใช้สามารถส่งข้อความและโอนสินทรัพย์ระหว่าง Layer1 และ Layer2 ได้
● ตัวเรียงลำดับ: ตัวเรียงลำดับให้หน้าที่ของ JSON-RPC และยอมรับการทำธุรกรรม Layer2 โดยเรียกข้อมูลจากสระหน่วยความจำเป็นตามระยะเวลาเพื่อดำเนินการ โดยสร้างบล็อค Layer2 และรากสถานะใหม่ ๆ การปฏิบัติงานของมันจะอิงตาม Go-Ethereum (Geth) ซึ่งรับประกันความเข้ากันได้ดีที่สุดและความปลอดภัยสูงสุด
●ผู้ประสานงาน: ผู้ประสานงานจะได้รับแจ้งเมื่อผู้รวบรวมสร้างบล็อกใหม่และได้รับร่องรอยการดําเนินการของบล็อกนั้นจากคอลเลเตอร์ การติดตามการดําเนินการจะถูกส่งไปยังลูกกลิ้งที่เลือกแบบสุ่มในเครือข่ายลูกกลิ้งซึ่งจะสร้างหลักฐานยืนยันความถูกต้อง
● Relayer: ตัวทําซ้ําจะตรวจสอบสัญญา Rollup และสัญญาบริดจ์ที่ปรับใช้บน Ethereum และ Layer2 ความรับผิดชอบหลักคือ :1) การติดตามความพร้อมใช้งานของข้อมูลและการตรวจสอบความถูกต้องของบล็อก Layer2 โดยการตรวจสอบสัญญา Rollup 2) ตรวจสอบเหตุการณ์การฝากและถอนเงินของ Ethereum และ Layer2 bridge engagement และส่งต่อข้อความไปยังอีกด้านหนึ่ง
●เครือข่ายลูกกลิ้ง: ลูกกลิ้งในเครือข่าย Roller ทําหน้าที่เป็นผู้พิสูจน์และรับผิดชอบในการสร้างหลักฐานความถูกต้องสําหรับ ZK Rollup การติดตามการดําเนินการบล็อกจะได้รับครั้งแรกจากผู้ประสานงานแปลงเป็นพยานวงจรจากนั้นหลักฐานจะถูกสร้างขึ้นสําหรับแต่ละ zkevm โดยใช้การเร่งด้วยฮาร์ดแวร์และในที่สุดการรวมหลักฐานจะถูกใช้เพื่อรวมหลักฐานหลายรายการให้เป็นหลักฐานเดียว
ภายใต้โครงสร้างเทคนิคของ ZK Rollups จำเป็นต้องรักษาความปลอดภัยของสินทรัพย์ของผู้ใช้ระหว่างการโอนระหว่าง L1 และ L2 ต่อไปนี้คือรายละเอียดเกี่ยวกับวิธีการผู้ใช้สามารถเข้าถึงสินทรัพย์ระหว่างสองชั้นและวิธีการระบบให้ความสมบูรณ์และความปลอดภัยของธุรกรรมเหล่านี้
● การเชื่อมโยงสินทรัพย์เป็น Rollup: ผู้ใช้เข้าสู่ Rollup โดยการโพสต์โทเค็นลงในสัญญา ZK Rollups ที่ปรับใช้บนเลเยอร์ของห่วงโซ่เครือข่าย ธุรกรรมนี้จะต้องส่งไปยังสัญญา Rollup โดยฝั่งโครงการ
หากคิวการฝากที่รอดำเนินการเริ่มเติมเต็ม ผู้ดำเนินการ ZK Rollups จะยอมรับธุรกรรมการฝากเหล่านี้และส่งให้สัญญา Rollup ครั้งหนึ่งที่เงินถูกฝากใน Rollup ผู้ใช้สามารถเริ่มการประมวลผลธุรกรรม
ผู้ใช้สามารถตรวจสอบยอดเงินใน Rollup โดยแฮชบัญชีของพวกเขา แล้วส่งค่าแฮชไปยังสัญญา Rollup และให้พิสูจน์ Merkle ที่ยืนยันกับรากสถานะปัจจุบัน
● การถอนทรัพย์สินจาก Rollup: ผู้ใช้เริ่มต้นธุรกรรมการออกจากรอลลัพฯ โดยส่งทรัพย์สินใน Rollup ไปยังบัญชีที่ระบุเพื่อทำลาย หากผู้ดำเนินการเพิ่มธุรกรรมในชุดถัดไปผู้ใช้สามารถส่งคำขอถอนไปยังสัญญาบนเชื่อมโยงกันแบบ on-chain คำขอถอนรวมถึง:
พิสูจน์เมอร์เคิล ซึ่งพิสูจน์ว่าธุรกรรมของผู้ใช้ถูกเพิ่มในบัญชีที่ถูกทำลายในชุดธุรกรรม
ข้อมูลการทำธุรกรรม
กลุ่มราก
ที่อยู่เครือข่าย Layer1 สำหรับรับเงินฝาก
สัญญา Rollup แฮชข้อมูลธุรกรรม ตรวจสอบว่ารากแบทช์มีอยู่หรือไม่ และใช้พิสูจน์เมอร์เคิลเพื่อตรวจสอบว่าแฮชธุรกรรมเป็นส่วนหนึ่งของรากแบทช์ สัญญาดำเนินธุรกรรมการออกและส่งเงินไปยังที่อยู่บนเครือข่าย Layer1 ที่ผู้ใช้เลือก
เลเยอร์ 2 เป็นระบบบล็อกเชนที่สมบูรณ์โดยเนื้อหาการตรวจสอบทั่วไปสำหรับบล็อกเชนยังใช้กับ ZK Rollup ดังรายละเอียดในภาคผนวกที่สิ้นสุดของบทความนี้
นอกจากนี้ เนื่องจากความเฉพาะเจาะจงของ ZK Rollup จำเป็นต้องดำเนินการตรวจสอบเพิ่มเติมบางอย่าง:
● การพิสูจน์ความปลอดภัยของระบบ: ตรวจสอบความปลอดภัยและความถูกต้องของโครงร่างพิสูจน์ที่ใช้ (เช่น Groth16, Plonk, Halo2, zk-STARK, เป็นต้น)
●ความปลอดภัยของวงจร: ตรวจสอบช่องโหว่ที่อาจเกิดขึ้นในการออกแบบและการใช้งานวงจรส่วนใหญ่รวมถึงสิ่งต่อไปนี้:
วงจรที่ไม่ถูกจำกัด
วงจรที่ถูกขีดจำกัดเกินไป
วงจรที่ไม่กำหนดได้
การเกิดการนับเกิน/นับน้อยทางคณิตศาสตร์
ความยาวบิตที่ไม่ตรงกัน
ไม่ใช้ข้อมูลนำเข้าสาธารณะที่ไม่จำเป็นถูกปรับปรุงออก
Frozen Heart: การปั้น Proof of Zero Knowledge
การรั่วไหลของการตั้งค่าที่เชื่อถือได้
ได้รับมอบหมาย แต่ไม่ได้ถูกจำกัด
การใช้ส่วนประกอบที่ไม่ปลอดภัย
ความแม่นยำแปรผัน
● การสร้างและตรวจสอบพิสูจน์: ตรวจสอบกระบวนการสร้างและตรวจสอบพิสูจน์เพื่อให้มั่นใจว่ามันมีประสิทธิภาพและปลอดภัย
● การพิสูจน์ความพร้อมข้อมูล: ให้แน่ใจว่าข้อมูลการทำธุรกรรมของ Layer2 พร้อมใช้งานบน Layer1 เพื่อป้องกันการสูญหายของข้อมูล
● กลไกการซิงโครไนซ์ข้อมูล: ตรวจสอบว่ากลไกการซิงโครไนซ์ข้อมูลระหว่างเลเยอร์ 1 และเลเยอร์ 2 เป็นเสียงและสามารถจัดการกับสถานการณ์ผิดปกติ เช่น การแบ่งแยกเครือข่าย
●กระบวนการฝากและถอนเงิน: ตรวจสอบกระบวนการฝากและถอนเงินจาก Layer1 ถึง Layer2 และจาก Layer2 ถึง Layer1 เพื่อให้แน่ใจว่ากระบวนการปลอดภัย
● การสร้างและทำลายสินทรัพย์: ตรวจสอบตรรกะการหล่อเหล็กและการทำลายของสินทรัพย์บน Layer2 เพื่อให้แน่ใจว่าสอดคล้องถูกต้องกับสินทรัพย์บน Layer1
● การสแกนสำหรับความขึ้นอยู่กับแหล่งกำเนิดภายนอกและช่องโหว่ที่รู้จัก: ZK Rollup บ่อนทำนายอย่างมากในที่มาของค่าเข้มและโซลูชั่นทางคณิตศาสตร์หรือเครื่องมือของบุคคลที่สามและควรตรวจสอบความปลอดภัยของขึ้นอยู่กับความมั่นคงของแหล่งกำเนิดและการตรวจสอบช่องโหว่ที่รู้จักอย่างละเอียด
รายการตรวจสอบทั่วไปของบล็อกเชน & Layer2:
● การทำให้ค่าเกิน: ตรวจสอบค่าเกินของจำนวนเต็มและค่าต่ำกว่าของจำนวนเต็ม
● วงจร: ตรวจสอบวงจรของโปรแกรมเพื่อดูว่าเงื่อนไขเหมาะสมหรือไม่
● การเรียกตัวเองอย่างไม่มีที่สิ้นสุด: ตรวจสอบว่าเงื่อนไขการออกจากการเรียกตัวเองของโปรแกรมมีความเหมาะสมหรือไม่
● เงื่อนไขการแข่งขัน: ตรวจสอบการเข้าถึงทรัพยากรที่ใช้ร่วมกันในสถานะที่เกิดขึ้นพร้อมกัน
● ข้อยกเว้นที่เกิดข้อผิดพลาด: ตรวจสอบรหัสที่สร้างข้อยกเว้นซึ่งทำให้โปรแกรมออกจากการทำงานแบบใช้กิจกรรม
● ช่องโหว่หาร 0: ตรวจสอบว่ามีกรณีที่หารด้วย 0 หรือไม่
● การแปลงประเภท: ตรวจสอบว่าการแปลงประเภทถูกต้องและว่าข้อมูลสำคัญได้สูญเสียระหว่างการแปลง
● อาร์เรย์เกินขอบเขต: ตรวจสอบการเข้าถึงองค์ประกอบนอกขอบเขตของอาร์เรย์
● ช่องโหว่ในกระบวนการถอดรหัส: ตรวจสอบปัญหาในระหว่างกระบวนการถอดรหัส
●ความปลอดภัยในการใช้งานฟังก์ชัน: ตรวจสอบว่าการใช้งานอินเทอร์เฟซ RPC มีความเสี่ยงด้านความปลอดภัยและสอดคล้องกับการออกแบบการทํางานของอินเทอร์เฟซ RPC หรือไม่
● ตรวจสอบการตั้งค่าสิทธิ์ของอินเตอร์เฟซ RPC ที่ไวต่อความเป็นไปได้: ตรวจสอบการตั้งค่าสิทธิ์การเข้าถึงของอินเตอร์เฟซ RPC ที่มีความไวต่อความไว้วางใจ
●กลไกการส่งข้อมูลที่เข้ารหัส: ตรวจสอบว่าใช้โปรโตคอลการส่งข้อมูลที่เข้ารหัสเช่น TLS หรือไม่
● การแยกวิเคราะห์รูปแบบข้อมูลคำขอ: ตรวจสอบกระบวนการแยกวิเคราะห์รูปแบบสำหรับข้อมูลคำขอ
● การโจมตีการปลดล็อกกระเป๋าเงิน: เมื่อโหนดปลดล็อกกระเป๋าเงินของมัน จะถูกร้องขอโดย RPC เพื่อขโมยเงิน
●ความปลอดภัยของเว็บแบบดั้งเดิม: ตรวจสอบช่องโหว่ต่อไปนี้: การเขียนสคริปต์ข้ามไซต์ (XSS)/การแทรกเทมเพลต/ช่องโหว่ของส่วนประกอบของบุคคลที่สาม/การปนเปื้อนพารามิเตอร์ HTTP/การแทรก SQL/การแทรกเอนทิตี XXE/ช่องโหว่ deserialization/ช่องโหว่ SSRF/การแทรกโค้ด/การรวมไฟล์ภายในเครื่อง/การรวมไฟล์ระยะไกล/การแทรกการดําเนินการคําสั่งและช่องโหว่แบบดั้งเดิมอื่นๆ
●การพิสูจน์ตัวตนโหนดเครือข่ายและกลไกการระบุตัวตน: ตรวจสอบว่ามีกลไกการระบุข้อมูลประจําตัวของโหนดหรือไม่กลไกการระบุตัวโหนดสามารถหลีกเลี่ยงได้
● โซลูชั่นการปรับขนาดของตารางเส้นทาง: ตรวจสอบว่าตารางเส้นทางสามารถถูกแทรกหรือเขียนทับได้โดยอคติ
● อัลกอริทึมการค้นหาโหนด: ตรวจสอบว่าอัลกอริทึมการค้นหาโหนดเป็นสมดุลและไม่สามารถคาดเดาได้ เช่น อัลกอริทึมระยะทางไม่สมดุล
●การตรวจสอบการใช้งานการเชื่อมต่อ: ตรวจสอบว่าขีด จํากัด และการจัดการจํานวนโหนดที่เชื่อมต่อกับเครือข่าย p2p นั้นสมเหตุสมผลหรือไม่
● การโจมตีดาวเคราะห์สุริยะ: ประเมินค่าใช้จ่ายและความเสี่ยงของการโจมตีดาวเคราะห์สุริยะ โดยให้การวิเคราะห์ที่เป็นตัวเลขถ้าจำเป็น
● การโจมตีซิบิล: การประเมินกลไกการเชื่อมต่อในการลงคะแนนเสียงและวิเคราะห์กลยุทธ์การตรวจสอบความสามารถในการลงคะแนนเสียง
●การโจมตีดักฟัง: ตรวจสอบว่าโปรโตคอลการสื่อสารเปิดเผยความเป็นส่วนตัวหรือไม่
● การโจมตีจากต่างดาว: ประเมินว่าโหนดสามารถรู้จักโหนดข้อตกลงประเภทเดียวกันหรือไม่
● การโจมตีด้วยการเปลี่ยนเวลา: ตรวจสอบกลไกการคำนวณเวลาในเครือข่ายของโหนด
● การโจมตีการใช้หน่วยความจำ: ตรวจสอบการใช้หน่วยความจำที่ใช้งานมาก
● การโจมตีการใช้พื้นที่ฮาร์ดดิสก์: ตรวจสอบที่เก็บไฟล์ขนาดใหญ่
● การโจมตีด้วยการกดของซ็อกเก็ต: ตรวจสอบนโยบายการจำกัดเกี่ยวกับจำนวนลิงค์
● การโจมตีแบบการใช้งาน handle ของ kernel: ตรวจสอบข้อจำกัดในการสร้าง handle ของ kernel เช่น handle ไฟล์
● การรั่วหน่อยหน้าที่ต่อเนื่อง: ตรวจสอบการรั่วหน่อยหน้าที่
●ความปลอดภัยของอัลกอริทึมแฮช: ตรวจสอบความต้านทานการชนกันของอัลกอริทึมแฮช
● ความปลอดภัยของอัลกอริทึมลายเซ็นดิจิตอล: ตรวจสอบความปลอดภัยของอัลกอริทึมลายเซ็นและการนำไปใช้งานของอัลกอริทึม
● ความปลอดภัยของอัลกอริทึมการเข้ารหัส: ตรวจสอบความปลอดภัยของอัลกอริทึมการเข้ารหัสและการปรับใช้อัลกอริทึม
●ความปลอดภัยของตัวสร้างตัวเลขสุ่ม: ตรวจสอบว่าอัลกอริธึมการสร้างหมายเลขสุ่มคีย์นั้นสมเหตุสมผลหรือไม่
● ความปลอดภัยของการปรับใช้ BFT: ประเมินความปลอดภัยของอัลกอริทึม BFT
● กฎเลือกคัดสรร Fork: ตรวจสอบกฎเลือกคัดสรร Fork เพื่อให้มั่นคงปลอดภัย
● การทดสอบระดับการจัดกลุ่ม: ระบุว่ามีการออกแบบระบบที่มีการจัดกลุ่มเกินไปหรือไม่
● การตรวจสอบผลกระทบของสิ่งตอบแทนต่อความปลอดภัย
● การโจมตี Double-spending: ตรวจสอบว่าความเห็นร่วมกันสามารถป้องกันการโจมตี Double-spending ได้หรือไม่
● การตรวจสอบการโจมตี MEV: ตรวจสอบผลกระทบของ MEV ของโหนดแพ็คเกจบล็อกต่อความเป็นธรรมของเชื่อมโยง
●บล็อกการตรวจสอบกระบวนการซิงโครไนซ์: ตรวจสอบปัญหาด้านความปลอดภัยระหว่างการซิงโครไนซ์
●บล็อกการตรวจสอบกระบวนการแยกวิเคราะห์รูปแบบ: ตรวจสอบปัญหาด้านความปลอดภัยระหว่างการแยกวิเคราะห์รูปแบบเช่นข้อผิดพลาดในการแยกวิเคราะห์ที่ทําให้เกิดข้อขัดข้อง
●การตรวจสอบกระบวนการสร้างบล็อก: ตรวจสอบปัญหาด้านความปลอดภัยในกระบวนการสร้างบล็อกรวมถึงว่ารากต้นไม้ Merkle ถูกสร้างขึ้นอย่างสมเหตุสมผลหรือไม่
การตรวจสอบกระบวนการตรวจสอบบล็อก: ตรวจสอบว่ารายการลายเซ็นบล็อกและตรรกะการตรวจสอบเพียงพอหรือไม่
การตรวจสอบโลจิกการตรวจสอบบล็อก: ตรวจสอบว่าอัลกอริทึมและการดำเนินการในการตรวจสอบบล็อกเหมาะสม
● การชนของบล็อกแฮช: ตรวจสอบวิธีการสร้างการชนของบล็อกแฮชและว่ามีการจัดการการชนอย่างเหมาะสมหรือไม่
● ขีดจำกัดทรัพยากรการประมวลผลบล็อก: ตรวจสอบว่าสระน้ำบล็อกกาษาทรัพยากรสูญเสียการตรวจสอบการคำนวณการแก้ไขฮาร์ดดิสก์และขีดจำกัดทรัพยากรอื่น ๆ มีความเหมาะสมหรือไม่
กระบวนการตรวจสอบการซิงโครไนซ์ธุรกรรม: ตรวจสอบปัญหาด้านความปลอดภัยในกระบวนการซิงโครไนซ์
● การชนแฮชธุรกรรม: ตรวจสอบวิธีการสร้างและการจัดการกับการชนแฮชธุรกรรม
การวิเคราะห์รูปแบบธุรกรรม: ตรวจสอบปัญหาด้านความปลอดภัยในระหว่างการวิเคราะห์รูปแบบ เช่น ข้อผิดพลาดในการวิเคราะห์รูปแบบที่ทำให้เกิดความผิดพลาด
●การตรวจสอบความถูกต้องของธุรกรรม: ตรวจสอบว่ารายการลายเซ็นของธุรกรรมแต่ละประเภทและตรรกะการตรวจสอบเพียงพอหรือไม่
●ขีด จํากัด ทรัพยากรการประมวลผลธุรกรรม: ตรวจสอบว่าขีด จํากัด ทรัพยากรเช่นกลุ่มธุรกรรมการคํานวณการตรวจสอบและการกําหนดแอดเดรสฮาร์ดดิสก์นั้นสมเหตุสมผลหรือไม่
●การโจมตีความอ่อนตัวของธุรกรรม: ธุรกรรมสามารถเปลี่ยนฟิลด์ภายใน (เช่น ScriptSig) เพื่อเปลี่ยนแฮชธุรกรรมโดยไม่ส่งผลกระทบต่อความถูกต้องของธุรกรรมได้หรือไม่
●การตรวจสอบการโจมตีซ้ําธุรกรรม: ตรวจสอบการตรวจจับการเล่นซ้ําของธุรกรรมของระบบ
● การตรวจสอบ bytecode ของสัญญา: ตรวจสอบความปลอดภัยของกระบวนการตรวจสอบสัญญาของเครื่องจำลองเสมือน เช่น การเกิด integer overflow และการวนซ้ำที่เกิดขึ้น
●การดําเนินการ bytecode สัญญา: ตรวจสอบความปลอดภัยของกระบวนการเรียกใช้ bytecode ของเครื่องเสมือนเช่นจํานวนเต็มล้นลูปตายและอื่น ๆ
● โมเดล Gas: ตรวจสอบว่าค่าธรรมเนียมสำหรับแต่ละการดำเนินการแอตทอมิกของการประมวลผลธุรกรรม / การดำเนินการสัญญาสมรรถนะสัมพันธ์กับการใช้ทรัพยากร
● ความครบถ้วนของบันทึก: ตรวจสอบว่ามีข้อมูลสำคัญถูกบันทึกหรือไม่
● ความปลอดภัยของบันทึก: ตรวจสอบว่าการจัดการบันทึกที่ไม่ถูกต้องทำให้เกิดปัญหาด้านความปลอดภัย เช่น การรวมตัวเลข
● บันทึกข้อมูลมีข้อมูลเกี่ยวกับความเป็นส่วนตัว: ตรวจสอบว่าบันทึกข้อมูลมีข้อมูลเกี่ยวกับความเป็นส่วนตัวเช่นคีย์หรือไม่
●การจัดเก็บบันทึก: ตรวจสอบว่ามีการบันทึกเนื้อหาที่มากเกินไปในบันทึกซึ่งใช้ทรัพยากรโหนดหรือไม่
●รหัสโหนดความปลอดภัยของห่วงโซ่อุปทาน: ตรวจสอบไลบรารีส่วนประกอบและเวอร์ชันของเฟรมเวิร์กห่วงโซ่สาธารณะของบุคคลที่สามทั้งหมดสําหรับปัญหาที่ทราบ
สามคุณสมบัติหลักของบล็อกเชนคือการกระจายอำนาจ ความมั่นคง และขนาดใหญ่ได้ ตามทฤษฎีบล็อกเชนทรายเล็มมาก การออกแบบบล็อกเชนสามารถปฏิบัติได้สองอย่างเท่านั้น อีเธอร์เรียมีการออกแบบขึ้นเพื่อกระจายอำนาจและความมั่นคง และดังนั้นมีประสิทธิภาพต่ำในเรื่องของการขยายขนาด ในปัจจุบันอีเธอร์เรียมีการประมวลผลมากกว่า 1 ล้านธุรกรรมต่อวัน ซึ่งอาจส่งผลให้ค่าธรรมเนียมการทำธุรกรรมสูงและเพิ่มความต้องการในโซลูชั่นการปรับขนาดของอีเธอร์เรียมากขึ้น
โซลูชันการปรับขนาด Ethereum มีหลายประเภท โดยแต่ละประเภทมีการแลกเปลี่ยนและรูปแบบความปลอดภัยของตัวเอง รวมถึง Layer 1 sharding, Layer 2 state channels, Plasma, sidechains, Rollups และ Validium เนื่องจากเทคโนโลยีการแบ่งส่วนมีการพัฒนาช้าและซับซ้อนในการใช้งานและ sidechains และ Validium ไม่สามารถสืบทอดความปลอดภัยและความพร้อมใช้งานของข้อมูลจาก Ethereum ได้ โดยสรุประบบนิเวศของ Ethereum ตอนนี้ใช้โซลูชันการปรับขนาด Rollups เป็นหลัก
จนถึงตอนนี้ Beosin ได้เป็นพันธมิตรด้านความปลอดภัยของ ETH Layer2 เช่น Manta Netowork และ StarkNet ในการตรวจสอบรายการก่อนหน้านี้ Beosin ได้ผ่านการตรวจสอบความปลอดภัยของเครือข่ายบล็อกเชนที่มีชื่อเสียงหลายราย เช่น Ronin Network, Manta Network, Merlin Chain, Clover, Self Chain, Crust Network เป็นต้น Beosin ตอนนี้ได้เปิดเผยแนวทางการตรวจสอบสำหรับ ETH Layer2 เพื่อให้บริการตรวจสอบความปลอดภัยอย่างครอบคลุมสำหรับนิเวศ ETH Layer2
ETH Layer2 ใช้ Rollups เพื่อแพ็กเกจร้อยละหนึ่งของธุรกรรมในการส่งให้กับ Ethereum mainnet ซึ่งจะทำให้ค่าธุรกรรมถูกแบ่งให้กับผู้ใช้ Rollup ทั้งหมด ลดค่าธุรกรรมต่อผู้ใช้ ข้อมูลธุรกรรมใน Rollups จะถูกส่งให้ Layer1 แต่การดำเนินการจะถูกดำเนินการโดยอิสระโดย Rollups โดยการส่งข้อมูลธุรกรรมไปที่ Layer1 Rollups สามารถรับช่วงความปลอดภัยของ Ethereum ได้เพราะเมื่อข้อมูลถูกอัปโหลดขึ้น Layer1 การย้อนกลับธุรกรรม Rollups ต้องการให้ข้อมูลถูกย้อนกลับบน Layer1
ในปัจจุบัน การใช้ Rollups สามารถนำมาใช้ได้ในสองวิธีหลัก
Optimistic Rollups: ใช้สิ่งประสงค์ทางเศรษฐกิจและทฤษฎีเกมเพื่อยืนยันธุรกรรม เช่น Arbitrum, Base, OP, Blast, ฯลฯ
Zero-Knowledge Rollups: ใช้พิสูจน์ที่ไม่เปิดเผยข้อมูลสำหรับความปลอดภัยและความเป็นส่วนตัว เช่น Scroll, Linea, zkSync, StarkNet, เป็นต้น
Optimistic Rollups เป็นวิธีในการปรับขนาด Ethereum โดยการย้ายการคำนวณและการเก็บ state ออกจากเชน การดำเนินการธุรกรรมนอกเชน แต่การเผยแพร่ข้อมูลธุรกรรมไปยัง mainnet เป็น calldata หรือ blob
Optimistic Rollups นำสมาร์ทคอนแทร็กต์ไปติดตั้งบน Ethereum ที่เรียกว่าสัญญา Rollup ซึ่งจัดการสถานะของ Rollup ติดตามยอดคงเหลือของผู้ใช้ และจัดการเงินฝาก การถอน และการแก้ไขโต้แย้ง ธุรกรรมถูกเก็บรวบรวมและสรุปที่ออฟเชนโดยซีเควนเซอร์และธุรกรรมหลาย ๆ รายการถูกรวบรวมเข้าไปในบล็อก Rollup ที่มีสรุปและพิสูจน์ทางคริปโตของสถานะบัญชีใหม่ (รูทเมอร์เคิล) เซควอนเซอร์จากนั้นยืนยันบล็อก Rollup ไปยังโซ่หลักโดยการให้รูทเมอร์เคิลและคอลล์ดาต้า
Rollups ในแง่ดีถือเป็น "แง่ดี" เพราะพวกเขาคิดว่าธุรกรรมนอกเครือข่ายนั้นถูกต้องและไม่ได้เผยแพร่หลักฐานความถูกต้องของชุดธุรกรรมที่ผลักดันบนห่วงโซ่ ในทางตรงกันข้าม Optimistic Rollups อาศัยรูปแบบการพิสูจน์การฉ้อโกงเพื่อตรวจจับกรณีที่มีการคํานวณธุรกรรมไม่ถูกต้อง หลังจากส่งชุด Rollup บน Ethereum จะมีกรอบเวลา (เรียกว่าระยะเวลาท้าทาย) ซึ่งทุกคนสามารถท้าทายผลลัพธ์ของธุรกรรม Rollup ได้โดยการคํานวณหลักฐานการฉ้อโกง หลักฐานการฉ้อโกงมีรายละเอียดของธุรกรรมเฉพาะที่ผู้ตรวจสอบเชื่อว่าเป็นการฉ้อโกง
ตามที่แสดงในรูปด้านล่าง ระยะเวลาทดสอบของ Optimistic Rollups ส่วนใหญ่ในปัจจุบันคือ 7 วัน และส่วนที่สั้นที่สุดคือ 1 วัน
ในระหว่างช่วงท้าทาย ใครก็สามารถท้าทายผลการธุรกรรมด้วยการคำนวณพิสูจน์การฉ้อโกง หากการทำธุรกรรมไม่ถูกต้อง บล็อก Rollup จะถูกเพิกถอน ผู้ท้าทายจะได้รับรางวัล และตัวตรวจสอบจะถูกลงโทษ
หากการจัดหมวดหมู่ Rollup ยังไม่ได้ถูกท้าทายหลังจากช่วงเวลาท้าทาย (เช่น การดำเนินการทุกธุรกรรมถูกดำเนินการไปอย่างถูกต้อง) จะถือว่าถูกต้องและได้รับการยอมรับบน Ethereum ผู้อื่นสามารถดำเนินการเพิ่มบล็อก Rollup ที่ยังไม่ได้ยืนยันต่อไป แต่โปรดทราบว่าผลลัพธ์ของธุรกรรมจะถูกย้อนกลับหากธุรกรรมถูกดำเนินการขึ้นอยู่กับข้อผิดพลาดที่เผยแพร่ไว้ก่อนหน้า
ในที่สุดผู้ใช้ต้องส่งคำขอถอนเงินไปยังสัญญา Rollup เพื่อถอนเงินจาก Layer 2 ไปยัง Layer 1 สัญญาจะตรวจสอบว่าผู้ใช้มีเงินพอใน Rollup และอัปเดตยอดเงินของพวกเขาใน mainchain ตามกฎหมาย
ด้วยการก่อสร้างเชิงนิเวศน์และ airdrops Arbitrum กลายเป็นเครือข่ายที่มีการใช้งานมากที่สุดใน ETH Layer2 อย่างรวดเร็วโดย TVL มีมูลค่าเกิน 2.7 พันล้านดอลลาร์ ทีม Arbitrum ได้เปิดตัวโปรแกรม Arbitrum Orbit: สนับสนุนให้นักพัฒนาสร้าง Layer3 โดยใช้เทคโนโลยีที่เกี่ยวข้องกับ Arbitrum Beosin ได้เสร็จสิ้นการตรวจสอบความปลอดภัยของ ArbSwap, Arbipad เพื่อช่วยในการพัฒนาความปลอดภัยของระบบนิเวศ Arbitrum
มากกว่า 25 เครือข่าย Layer2 ได้รับการสร้างขึ้นโดยใช้ OP Stack ซึ่งรวมถึงโครงการดาวรุ่งเช่น Base, Mantle, Manta, OP BNB และ Celo แล้ว นอกจากนี้ยังมี DIPX Finance และ Starnet ที่สร้างขึ้นบน Optimism ผ่านการตรวจสอบความปลอดภัยจาก Beosin แล้ว
Base เป็นเครือข่าย Layer2 ที่ใช้ OP Stack ซึ่งเป็นอันดับสองรองจาก Arbitrum ในแง่ของกิจกรรมทางนิเวศวิทยาและ TVL ก่อนหน้านี้ Beosin ได้วิเคราะห์สถาปัตยกรรมและความเสี่ยงด้านความปลอดภัยของ Base โดยละเอียด และตรวจสอบ Surf Protocol และ EDA เพื่อช่วยให้เจ้าของโครงการและผู้ใช้หลีกเลี่ยงความเสี่ยงด้านความปลอดภัย
Blast ในตอนท้ายของการแข่งขันนักพัฒนา "Big Bang" ได้เห็น TVL ทะยานขึ้นเป็นมากกว่า 2 พันล้านดอลลาร์โดยเข้ามาแทนที่ในวงจร Layer2 Beosin วิเคราะห์ความปลอดภัยของเครือข่ายของ Blast ก่อนการเปิดตัวเมนเน็ต เนื่องจาก Blast ไม่ได้ใช้หลักฐานการฉ้อโกงทรัพย์สินจึงถูกเก็บไว้ในกระเป๋าเงินหลายลายเซ็นไม่ใช่สะพาน Rollup ซึ่งมีความเสี่ยงสูงในการรวมศูนย์ Beosin ได้ตรวจสอบโครงการระบบนิเวศ Blast หลายโครงการเช่น Wand Protocol, Zest, Kalax
OP Stack, เฟรมเวิร์กที่เจริญและเจริญเป็นระบบสำหรับ Optimistic Rollups, โดยพื้นฐานแล้วจะแยกกระบวนการที่ซับซ้อนของการสร้างลูกโซ่ของ optimistic Rollups เป็นกระบวนการที่เรียบง่ายโดยการ提供ชุดเต็มของคอมโพเนนต์ซอฟต์แวร์ โปรแกรมเครื่องมือ และเฟรมเวิร์ก ที่完整 ที่นี่เราจะนำเฟรม Op stack เป็นตัวอย่างเพื่อวิเคราะห์โครงสร้างที่ทีพิเศษของ Optimism Rollups
● โหนดการดำเนินการ: Op-geth เป็นไคลเอ็นต์การดำเนินการที่ถูกขยายของ Ethereum ที่จัดการฟังก์ชันที่เฉพาะเจาะจงของ Layer2 เช่นการรับฝากโทเค็นจาก Layer1 ชั้นนี้กำหนดฟังก์ชันทั้งหมดที่รับผิดชอบการดำเนินการสถานะ ที่นี่การเปลี่ยนสถานะถูกเรียก trigger ขึ้นอยู่กับข้อมูล input ที่ได้รับจากโหนดสรุป (ลำดับและตรวจสอบ) ผ่าน engine API
● โหนด Rollup: รวมถึง sequencer และ validator โคลเล็กเตอร์รับผิดชอบการเรียงลำดับธุรกรรมที่ประมวลผลจากชั้นที่ 2 และเผยแพร่ไปยังเลเยอร์ 1 ซีเควนเซอร์กำหนดวิธีการเก็บรวบรวมและเผยแพร่ธุรกรรมบนโซ่ชั้นที่ 2 และ validator ตรวจสอบความถูกต้องของธุรกรรมแบบแบทช์และส่งหลักฐานหากพบการฉ้อโกงใด ๆ
● พิสูจน์การฉ้อโกง: Cannon เป็นเวอร์ชันที่อัพเกรดของ Geth และรับผิดชอบในการเรียกใช้ EVM ขณะที่ตรวจจับการฉ้อโกงและพิสูจน์ มันเป็นหลักทรัพย์เครื่องยนต์ที่อยู่บนเชนที่จะประสบความขัดแย้ง ซึ่งสร้างความสอดคล้องกับ sequentiers และ validators ผ่าน apis เพื่อพิสูจน์ธุรกรรมที่ผิด
● การส่งกลุ่ม: ตัวแปรชุดทำงานแบบกลุ่มของ Sequencers ประมวลผลธุรกรรมที่ได้รับการตรวจสอบจากผู้ตรวจสอบ และ Sequencers ส่งธุรกรรมที่ได้รับการประมวลผลแบบกลุ่มไปยังเลเยอร์ 1
● สัญญาสะพาน: ได้รับการจัดตั้งบน Ethereum และ Layer2 ซึ่งช่วยให้ผู้ใช้สามารถส่งข้อความและโอนสินทรัพย์ระหว่าง Layer1 และ Layer2 ได้
ภายใต้โครงสร้างเทคนิคของ Optimistic Rollup จำเป็นต้องให้ความสำคัญกับความปลอดภัยของสินทรัพย์ของผู้ใช้เมื่อพวกเขาเคลื่อนย้ายระหว่าง L1 และ L2 ข้อมูลต่อไปนี้เป็นรายละเอียดว่าผู้ใช้สามารถเข้าถึงสินทรัพย์ระหว่างชั้นทั้งสองได้อย่างไร และระบบจะรักษาความสมบูรณ์และความปลอดภัยของธุรกรรมเหล่านี้
● การเชื่อมโยงสินทรัพย์เป็น Rollup: ผู้ใช้ฝากเงินเข้าสัญญาสะพานโซ่ของ Rollup บน Layer1 สัญญาสะพานโซ่จะถ่ายทอดธุรกรรมไปยัง Layer2 ซึ่งมีการสร้างสินทรัพย์จํานวนเท่ากันและส่งไปยังที่อยู่ที่เลือกโดยผู้ใช้ใน Optimistic Rollup
ธุรกรรมที่สร้างโดยผู้ใช้ เช่น เงินฝากจากเลเยอร์1 ไปยังเลเยอร์2 มักจะถูกคิวไว้จนกว่าผู้กักกันจะส่งใหม่ให้กับสัญญา Rollup อย่างไรก็ตาม ในการรักษาความต้านทานต่อการเซ็นเซอร์ชั่น Rollup ที่เติบโต อนุมัติ Rollup ช่วยให้ผู้ใช้สามารถส่งธุรกรรมโดยตรงไปยังสัญญา Rollup on-chain หากความล่าช้าในธุรกรรมเกินเวลาที่อนุญาตสูงสุด
●การถอนสินทรัพย์จาก Rollup: เนื่องจากกลไกการป้องกันการฉ้อโกงการถอนเงินจาก Optimistic Rollup ไปยัง Ethereum จึงซับซ้อนกว่า หากผู้ใช้เริ่มต้นธุรกรรม Layer2 ถึง Layer1 เพื่อถอนเงินที่จัดการบน Layer1 พวกเขาจะต้องรอการสิ้นสุดระยะเวลาการท้าทายซึ่งโดยทั่วไปจะใช้เวลาประมาณ 7 วัน
เมื่อผู้ใช้เริ่มต้นขอการถอนเงินใน Rollup ธุรกรรมจะถูกรวมในชุดถัดไปและทรัพย์สินของผู้ใช้ใน Rollup จะถูกทำลาย หลังจากนั้นชุดถัดไปจะถูกเผยแพร่บน Ethereum ผู้ใช้สามารถคำนวณพิสูจน์ Merkle เพื่อยืนยันว่าธุรกรรมการออกออกของพวกเขาถูกนำเข้าในบล็อก ขั้นตอนถัดไปคือรอให้ระยะเวลาการล่าช้าสิ้นสุดเพื่อดำเนินการธุรกรรมใน Layer1 และถอนเงินไปยัง mainnet
เพื่อหลีกเลี่ยงการรอหนึ่งสัปดาห์ก่อนที่จะถอนเงินจาก Ethereum ผู้ใช้ของ Optimistic Rollup สามารถขอล่วงหน้าจากผู้ให้บริการสภาพคล่อง (LP) ซึ่งถือว่าเป็นเจ้าของการถอนเงินที่รอดําเนินการและจ่ายเงินของผู้ใช้ใน Layer1 เพื่อแลกกับค่าธรรมเนียม ผู้ให้บริการสภาพคล่องสามารถตรวจสอบความถูกต้องของคําขอถอนเงินของผู้ใช้โดยการตรวจสอบข้อมูลแบบ on-chain ด้วยตนเองก่อนที่จะปล่อยเงิน ด้วยวิธีนี้พวกเขาสามารถมั่นใจได้ว่าการทําธุรกรรมจะได้รับการยืนยันในที่สุดบรรลุความแน่นอนของความไว้วางใจ
Layer2 เป็นระบบบล็อกเชนที่สมบูรณ์ ดังนั้นการตรวจสอบทั่วไปของโซลูชั่นการปรับขนาดสาธารณะก็ใช้กับ Optimistic Rollup เช่นกัน ตามหมายเหตุที่อยู่ท้ายบทความนี้
นอกจากนี้ เนื่องจากมีลักษณะพิเศษ Optimistic Rollup จึงต้องการการตรวจสอบเพิ่มเติมหลายรายการ:
●หลักฐานความพร้อมใช้งานของข้อมูล: ตรวจสอบให้แน่ใจว่าข้อมูลธุรกรรม Layer2 มีอยู่ใน Layer1 เพื่อป้องกันการสูญหายของข้อมูล
● กลไกการซิงโครไนซ์ข้อมูล: ตรวจสอบว่ากลไกการซิงโครไนซ์ข้อมูลระหว่างเลเยอร์ 1 และเลเยอร์ 2 เป็นเสียงและสามารถจัดการกับสถานการณ์ผิดปกติ เช่นการแบ่งแยกระบบเครือข่าย
● สัญญาการพิสูจน์การฉ้อโกง: ตรวจสอบว่าสัญญาการพิสูจน์การฉ้อโกงได้รับการนำมาใช้ถูกต้อง
● กลไกระยะเวลาท้าทาย: ตรวจสอบว่าความยาวของระยะเวลาท้าทายเหมาะสมหรือไม่ และว่าหลักฐานการป้องกันการฉ้อโกงสามารถเสร็จสิ้นภายในเวลาที่กำหนดหรือไม่
● กระบวนการส่งข้อมูลการทุจริต: ตรวจสอบว่ากระบวนการส่งข้อมูลการทุจริตเป็นที่ปลอดภัย
● กระบวนการฝากเงินและถอนเงิน: ตรวจสอบกระบวนการฝากเงินและถอนเงินจากเลเยอร์ 1 ไปยังเลเยอร์ 2 และจากเลเยอร์ 2 ไปยังเลเยอร์ 1 เพื่อให้แน่ใจว่ากระบวนการเป็นปลอดภัย
● การสร้างและทำลายสินทรัพย์: ตรวจสอบตรรกะการหล่อและทำลายสินทรัพย์บน Layer2 เพื่อให้แน่ใจว่าสินทรัพย์บน Layer1 สอดคล้องถูกต้อง
● กลไกผู้ให้ความสะดวกในการเงิน: หากมีกลไกผู้ให้ความสะดวกในการเงิน (LP) จะต้องตรวจสอบกระบวนการทำงานของ LP และความปลอดภัยของมัน
ซีรี้ส์ Zero-Knowledge (ZK) Rollup คือเทคโนโลยี Layer2 ที่ใช้บนหลักการพิสูจน์แบบซีโร (Zero-Knowledge Proof) โดยมีหน้าที่หลักคือการคำนวณและสร้างพิสูจน์ที่ซับซ้อนขึ้นมานอกเหนือจากเครือข่าย และทำการตรวจสอบพิสูจน์ผ่านเครือข่าย ซึ่งการเก็บรักษาข้อมูลส่วนหนึ่งจะเป็นส่วนหนึ่งในการยืนยันความถูกต้องของข้อมูล
ZK Rollup เป็น "โซลูชันการปรับขนาดแบบไฮบริด" ซึ่งเป็นโปรโตคอลนอกเครือข่ายที่ทํางานอย่างอิสระ แต่ได้รับความปลอดภัยจาก Ethereum โดยเฉพาะเครือข่าย Ethereum บังคับใช้ความถูกต้องของการอัปเดตสถานะบน ZK Rollups และรับประกันความพร้อมใช้งานของข้อมูลพื้นหลังทุกครั้งที่อัปเดตสถานะ Rollup สถานะของ Rollup ได้รับการดูแลโดยสัญญาอัจฉริยะที่ปรับใช้บนเครือข่าย Ethereum ในการอัปเดตสถานะนี้โหนด ZK Rollups จะต้องส่งหลักฐานความถูกต้องสําหรับการตรวจสอบ การพิสูจน์ความถูกต้องคือการรับประกันการเข้ารหัสว่าการเปลี่ยนแปลงสถานะที่เสนอนั้นเป็นผลมาจากการดําเนินการชุดธุรกรรมที่กําหนด ซึ่งหมายความว่า ZK Rollups จะต้องแสดงหลักฐานความถูกต้องเพื่อสรุปธุรกรรมบน Ethereum โดยไม่ต้องเผยแพร่ข้อมูลธุรกรรมทั้งหมด
ไม่มีความล่าช้าในการโอนเงินจาก ZK Rollups ไปยัง Ethereum เนื่องจากธุรกรรมการออกออกจากการทำ Rollups ถูกดำเนินการเมื่อสัญญา ZK Rollups ได้ตรวจสอบพิสูจน์ความถูกต้องแล้ว ในทวิตรา การถอนเงินจาก Optimistic Rollups ทำให้เกิดความล่าช้าเนื่องจากใครก็สามารถใช้พิสูจน์การฉ้อโกงเพื่อท้าทายธุรกรรมการออกออก
zkSync ซึ่งเป็นโซลูชัน L2 ที่เปิดตัวเมื่อห้าปีที่แล้วโดยทีม Matter Labs ใช้เทคโนโลยีการพิสูจน์ความรู้เป็นศูนย์เพื่อให้สามารถตรวจสอบธุรกรรมได้อย่างมีประสิทธิภาพและระดมทุนได้มากกว่า 200 ล้านดอลลาร์ zkSync เป็นหนึ่งในเครือข่าย Layer2 ที่ใช้งานระบบนิเวศมากที่สุดโดยใช้ ZK Rollups และ zkSync ก็เป็นที่ถกเถียงกันเช่นกัน ก่อนหน้านี้ Beosin ได้ทําการตรวจสอบโครงการ DeFi ชั้นนํา SyncSwap ซึ่งครอบคลุมคุณภาพของโค้ดตรรกะของสัญญาและความปลอดภัยรูปแบบการดําเนินงานและอื่น ๆ
StarkNet ใช้ ZK-STARK เพื่อสร้าง Layer2 เพื่อเพิ่มความเร็วในการทำธุรกรรมและลดค่าธุรกรรม StarkNet มีเครื่องจำลองเสมือน (Cairo VM) และภาษาการพัฒนา Cairo เพื่อช่วยนักพัฒนาเขียนสัญญาอัจฉริยะได้อย่างปลอดภัยและง่ายมากขึ้น Beosin ได้เป็นพันธมิตรด้านความปลอดภัยทางการเป็นทางการของ StarkNet โดยทำการตรวจสอบความปลอดภัยสำหรับ Option Dance และ Reddio ในวันที่ 13 สิงหาคม 2024 Reddio ได้ปิดรอบทุนเมล็ดพันธุ์ซึ่งถูกนำโดย Paradigm เพื่อสร้างเครือข่าย Layer2 ของ EVM แบบขนานที่มีประสิทธิภาพสูง
Scroll ถูกปรับขนาดโดยเทคโนโลยีพิสูจน์ทศนิยมศูนย์ และฮาร์ดแวร์เร่งความเร็วในการสร้างและตรวจสอบพิสูจน์ทศนิยมศูนย์ เพื่อทำให้สามารถใช้งาน Solidity และเครื่องมือพัฒนาที่เกี่ยวข้องกับ Ethereum ได้โดยตรงในการสร้างสัญญาฉลากเฉลี่ยระดับ bytecode
เฟรมเวิร์กทั่วไปสําหรับ ZK Rollups ได้แก่ สัญญา Rollup และ Bridge, collators, aggregators, Repeaters และ Roller networks ที่สร้างการพิสูจน์ความรู้เป็นศูนย์ สถาปัตยกรรมเฉพาะแสดงในรูปต่อไปนี้:
● สัญญา Rollup และสัญญาสะพาน:
สัญญา Rollup รับผิดชอบในการ提供 kedata availability สำหรับธุรกรรม Rollup การตรวจสอบพิสูจน์ความถูกต้องของ zkEVM และอนุญาตให้ผู้ใช้โอนสินทรัพย์ระหว่าง Ethereum และ Rollup สถานะ Layer 2 root และ block จาก collator สถานะ root จะเก็บไว้ในสถานะ Ethereum และข้อมูล block ของ layer 2 จะถูกบันทึกเป็นข้อมูลเรียกใช้ของ Ethereum
สัญญาสะพานถูกติดตั้งบน Ethereum และ Layer2 ทำให้ผู้ใช้สามารถส่งข้อความและโอนสินทรัพย์ระหว่าง Layer1 และ Layer2 ได้
● ตัวเรียงลำดับ: ตัวเรียงลำดับให้หน้าที่ของ JSON-RPC และยอมรับการทำธุรกรรม Layer2 โดยเรียกข้อมูลจากสระหน่วยความจำเป็นตามระยะเวลาเพื่อดำเนินการ โดยสร้างบล็อค Layer2 และรากสถานะใหม่ ๆ การปฏิบัติงานของมันจะอิงตาม Go-Ethereum (Geth) ซึ่งรับประกันความเข้ากันได้ดีที่สุดและความปลอดภัยสูงสุด
●ผู้ประสานงาน: ผู้ประสานงานจะได้รับแจ้งเมื่อผู้รวบรวมสร้างบล็อกใหม่และได้รับร่องรอยการดําเนินการของบล็อกนั้นจากคอลเลเตอร์ การติดตามการดําเนินการจะถูกส่งไปยังลูกกลิ้งที่เลือกแบบสุ่มในเครือข่ายลูกกลิ้งซึ่งจะสร้างหลักฐานยืนยันความถูกต้อง
● Relayer: ตัวทําซ้ําจะตรวจสอบสัญญา Rollup และสัญญาบริดจ์ที่ปรับใช้บน Ethereum และ Layer2 ความรับผิดชอบหลักคือ :1) การติดตามความพร้อมใช้งานของข้อมูลและการตรวจสอบความถูกต้องของบล็อก Layer2 โดยการตรวจสอบสัญญา Rollup 2) ตรวจสอบเหตุการณ์การฝากและถอนเงินของ Ethereum และ Layer2 bridge engagement และส่งต่อข้อความไปยังอีกด้านหนึ่ง
●เครือข่ายลูกกลิ้ง: ลูกกลิ้งในเครือข่าย Roller ทําหน้าที่เป็นผู้พิสูจน์และรับผิดชอบในการสร้างหลักฐานความถูกต้องสําหรับ ZK Rollup การติดตามการดําเนินการบล็อกจะได้รับครั้งแรกจากผู้ประสานงานแปลงเป็นพยานวงจรจากนั้นหลักฐานจะถูกสร้างขึ้นสําหรับแต่ละ zkevm โดยใช้การเร่งด้วยฮาร์ดแวร์และในที่สุดการรวมหลักฐานจะถูกใช้เพื่อรวมหลักฐานหลายรายการให้เป็นหลักฐานเดียว
ภายใต้โครงสร้างเทคนิคของ ZK Rollups จำเป็นต้องรักษาความปลอดภัยของสินทรัพย์ของผู้ใช้ระหว่างการโอนระหว่าง L1 และ L2 ต่อไปนี้คือรายละเอียดเกี่ยวกับวิธีการผู้ใช้สามารถเข้าถึงสินทรัพย์ระหว่างสองชั้นและวิธีการระบบให้ความสมบูรณ์และความปลอดภัยของธุรกรรมเหล่านี้
● การเชื่อมโยงสินทรัพย์เป็น Rollup: ผู้ใช้เข้าสู่ Rollup โดยการโพสต์โทเค็นลงในสัญญา ZK Rollups ที่ปรับใช้บนเลเยอร์ของห่วงโซ่เครือข่าย ธุรกรรมนี้จะต้องส่งไปยังสัญญา Rollup โดยฝั่งโครงการ
หากคิวการฝากที่รอดำเนินการเริ่มเติมเต็ม ผู้ดำเนินการ ZK Rollups จะยอมรับธุรกรรมการฝากเหล่านี้และส่งให้สัญญา Rollup ครั้งหนึ่งที่เงินถูกฝากใน Rollup ผู้ใช้สามารถเริ่มการประมวลผลธุรกรรม
ผู้ใช้สามารถตรวจสอบยอดเงินใน Rollup โดยแฮชบัญชีของพวกเขา แล้วส่งค่าแฮชไปยังสัญญา Rollup และให้พิสูจน์ Merkle ที่ยืนยันกับรากสถานะปัจจุบัน
● การถอนทรัพย์สินจาก Rollup: ผู้ใช้เริ่มต้นธุรกรรมการออกจากรอลลัพฯ โดยส่งทรัพย์สินใน Rollup ไปยังบัญชีที่ระบุเพื่อทำลาย หากผู้ดำเนินการเพิ่มธุรกรรมในชุดถัดไปผู้ใช้สามารถส่งคำขอถอนไปยังสัญญาบนเชื่อมโยงกันแบบ on-chain คำขอถอนรวมถึง:
พิสูจน์เมอร์เคิล ซึ่งพิสูจน์ว่าธุรกรรมของผู้ใช้ถูกเพิ่มในบัญชีที่ถูกทำลายในชุดธุรกรรม
ข้อมูลการทำธุรกรรม
กลุ่มราก
ที่อยู่เครือข่าย Layer1 สำหรับรับเงินฝาก
สัญญา Rollup แฮชข้อมูลธุรกรรม ตรวจสอบว่ารากแบทช์มีอยู่หรือไม่ และใช้พิสูจน์เมอร์เคิลเพื่อตรวจสอบว่าแฮชธุรกรรมเป็นส่วนหนึ่งของรากแบทช์ สัญญาดำเนินธุรกรรมการออกและส่งเงินไปยังที่อยู่บนเครือข่าย Layer1 ที่ผู้ใช้เลือก
เลเยอร์ 2 เป็นระบบบล็อกเชนที่สมบูรณ์โดยเนื้อหาการตรวจสอบทั่วไปสำหรับบล็อกเชนยังใช้กับ ZK Rollup ดังรายละเอียดในภาคผนวกที่สิ้นสุดของบทความนี้
นอกจากนี้ เนื่องจากความเฉพาะเจาะจงของ ZK Rollup จำเป็นต้องดำเนินการตรวจสอบเพิ่มเติมบางอย่าง:
● การพิสูจน์ความปลอดภัยของระบบ: ตรวจสอบความปลอดภัยและความถูกต้องของโครงร่างพิสูจน์ที่ใช้ (เช่น Groth16, Plonk, Halo2, zk-STARK, เป็นต้น)
●ความปลอดภัยของวงจร: ตรวจสอบช่องโหว่ที่อาจเกิดขึ้นในการออกแบบและการใช้งานวงจรส่วนใหญ่รวมถึงสิ่งต่อไปนี้:
วงจรที่ไม่ถูกจำกัด
วงจรที่ถูกขีดจำกัดเกินไป
วงจรที่ไม่กำหนดได้
การเกิดการนับเกิน/นับน้อยทางคณิตศาสตร์
ความยาวบิตที่ไม่ตรงกัน
ไม่ใช้ข้อมูลนำเข้าสาธารณะที่ไม่จำเป็นถูกปรับปรุงออก
Frozen Heart: การปั้น Proof of Zero Knowledge
การรั่วไหลของการตั้งค่าที่เชื่อถือได้
ได้รับมอบหมาย แต่ไม่ได้ถูกจำกัด
การใช้ส่วนประกอบที่ไม่ปลอดภัย
ความแม่นยำแปรผัน
● การสร้างและตรวจสอบพิสูจน์: ตรวจสอบกระบวนการสร้างและตรวจสอบพิสูจน์เพื่อให้มั่นใจว่ามันมีประสิทธิภาพและปลอดภัย
● การพิสูจน์ความพร้อมข้อมูล: ให้แน่ใจว่าข้อมูลการทำธุรกรรมของ Layer2 พร้อมใช้งานบน Layer1 เพื่อป้องกันการสูญหายของข้อมูล
● กลไกการซิงโครไนซ์ข้อมูล: ตรวจสอบว่ากลไกการซิงโครไนซ์ข้อมูลระหว่างเลเยอร์ 1 และเลเยอร์ 2 เป็นเสียงและสามารถจัดการกับสถานการณ์ผิดปกติ เช่น การแบ่งแยกเครือข่าย
●กระบวนการฝากและถอนเงิน: ตรวจสอบกระบวนการฝากและถอนเงินจาก Layer1 ถึง Layer2 และจาก Layer2 ถึง Layer1 เพื่อให้แน่ใจว่ากระบวนการปลอดภัย
● การสร้างและทำลายสินทรัพย์: ตรวจสอบตรรกะการหล่อเหล็กและการทำลายของสินทรัพย์บน Layer2 เพื่อให้แน่ใจว่าสอดคล้องถูกต้องกับสินทรัพย์บน Layer1
● การสแกนสำหรับความขึ้นอยู่กับแหล่งกำเนิดภายนอกและช่องโหว่ที่รู้จัก: ZK Rollup บ่อนทำนายอย่างมากในที่มาของค่าเข้มและโซลูชั่นทางคณิตศาสตร์หรือเครื่องมือของบุคคลที่สามและควรตรวจสอบความปลอดภัยของขึ้นอยู่กับความมั่นคงของแหล่งกำเนิดและการตรวจสอบช่องโหว่ที่รู้จักอย่างละเอียด
รายการตรวจสอบทั่วไปของบล็อกเชน & Layer2:
● การทำให้ค่าเกิน: ตรวจสอบค่าเกินของจำนวนเต็มและค่าต่ำกว่าของจำนวนเต็ม
● วงจร: ตรวจสอบวงจรของโปรแกรมเพื่อดูว่าเงื่อนไขเหมาะสมหรือไม่
● การเรียกตัวเองอย่างไม่มีที่สิ้นสุด: ตรวจสอบว่าเงื่อนไขการออกจากการเรียกตัวเองของโปรแกรมมีความเหมาะสมหรือไม่
● เงื่อนไขการแข่งขัน: ตรวจสอบการเข้าถึงทรัพยากรที่ใช้ร่วมกันในสถานะที่เกิดขึ้นพร้อมกัน
● ข้อยกเว้นที่เกิดข้อผิดพลาด: ตรวจสอบรหัสที่สร้างข้อยกเว้นซึ่งทำให้โปรแกรมออกจากการทำงานแบบใช้กิจกรรม
● ช่องโหว่หาร 0: ตรวจสอบว่ามีกรณีที่หารด้วย 0 หรือไม่
● การแปลงประเภท: ตรวจสอบว่าการแปลงประเภทถูกต้องและว่าข้อมูลสำคัญได้สูญเสียระหว่างการแปลง
● อาร์เรย์เกินขอบเขต: ตรวจสอบการเข้าถึงองค์ประกอบนอกขอบเขตของอาร์เรย์
● ช่องโหว่ในกระบวนการถอดรหัส: ตรวจสอบปัญหาในระหว่างกระบวนการถอดรหัส
●ความปลอดภัยในการใช้งานฟังก์ชัน: ตรวจสอบว่าการใช้งานอินเทอร์เฟซ RPC มีความเสี่ยงด้านความปลอดภัยและสอดคล้องกับการออกแบบการทํางานของอินเทอร์เฟซ RPC หรือไม่
● ตรวจสอบการตั้งค่าสิทธิ์ของอินเตอร์เฟซ RPC ที่ไวต่อความเป็นไปได้: ตรวจสอบการตั้งค่าสิทธิ์การเข้าถึงของอินเตอร์เฟซ RPC ที่มีความไวต่อความไว้วางใจ
●กลไกการส่งข้อมูลที่เข้ารหัส: ตรวจสอบว่าใช้โปรโตคอลการส่งข้อมูลที่เข้ารหัสเช่น TLS หรือไม่
● การแยกวิเคราะห์รูปแบบข้อมูลคำขอ: ตรวจสอบกระบวนการแยกวิเคราะห์รูปแบบสำหรับข้อมูลคำขอ
● การโจมตีการปลดล็อกกระเป๋าเงิน: เมื่อโหนดปลดล็อกกระเป๋าเงินของมัน จะถูกร้องขอโดย RPC เพื่อขโมยเงิน
●ความปลอดภัยของเว็บแบบดั้งเดิม: ตรวจสอบช่องโหว่ต่อไปนี้: การเขียนสคริปต์ข้ามไซต์ (XSS)/การแทรกเทมเพลต/ช่องโหว่ของส่วนประกอบของบุคคลที่สาม/การปนเปื้อนพารามิเตอร์ HTTP/การแทรก SQL/การแทรกเอนทิตี XXE/ช่องโหว่ deserialization/ช่องโหว่ SSRF/การแทรกโค้ด/การรวมไฟล์ภายในเครื่อง/การรวมไฟล์ระยะไกล/การแทรกการดําเนินการคําสั่งและช่องโหว่แบบดั้งเดิมอื่นๆ
●การพิสูจน์ตัวตนโหนดเครือข่ายและกลไกการระบุตัวตน: ตรวจสอบว่ามีกลไกการระบุข้อมูลประจําตัวของโหนดหรือไม่กลไกการระบุตัวโหนดสามารถหลีกเลี่ยงได้
● โซลูชั่นการปรับขนาดของตารางเส้นทาง: ตรวจสอบว่าตารางเส้นทางสามารถถูกแทรกหรือเขียนทับได้โดยอคติ
● อัลกอริทึมการค้นหาโหนด: ตรวจสอบว่าอัลกอริทึมการค้นหาโหนดเป็นสมดุลและไม่สามารถคาดเดาได้ เช่น อัลกอริทึมระยะทางไม่สมดุล
●การตรวจสอบการใช้งานการเชื่อมต่อ: ตรวจสอบว่าขีด จํากัด และการจัดการจํานวนโหนดที่เชื่อมต่อกับเครือข่าย p2p นั้นสมเหตุสมผลหรือไม่
● การโจมตีดาวเคราะห์สุริยะ: ประเมินค่าใช้จ่ายและความเสี่ยงของการโจมตีดาวเคราะห์สุริยะ โดยให้การวิเคราะห์ที่เป็นตัวเลขถ้าจำเป็น
● การโจมตีซิบิล: การประเมินกลไกการเชื่อมต่อในการลงคะแนนเสียงและวิเคราะห์กลยุทธ์การตรวจสอบความสามารถในการลงคะแนนเสียง
●การโจมตีดักฟัง: ตรวจสอบว่าโปรโตคอลการสื่อสารเปิดเผยความเป็นส่วนตัวหรือไม่
● การโจมตีจากต่างดาว: ประเมินว่าโหนดสามารถรู้จักโหนดข้อตกลงประเภทเดียวกันหรือไม่
● การโจมตีด้วยการเปลี่ยนเวลา: ตรวจสอบกลไกการคำนวณเวลาในเครือข่ายของโหนด
● การโจมตีการใช้หน่วยความจำ: ตรวจสอบการใช้หน่วยความจำที่ใช้งานมาก
● การโจมตีการใช้พื้นที่ฮาร์ดดิสก์: ตรวจสอบที่เก็บไฟล์ขนาดใหญ่
● การโจมตีด้วยการกดของซ็อกเก็ต: ตรวจสอบนโยบายการจำกัดเกี่ยวกับจำนวนลิงค์
● การโจมตีแบบการใช้งาน handle ของ kernel: ตรวจสอบข้อจำกัดในการสร้าง handle ของ kernel เช่น handle ไฟล์
● การรั่วหน่อยหน้าที่ต่อเนื่อง: ตรวจสอบการรั่วหน่อยหน้าที่
●ความปลอดภัยของอัลกอริทึมแฮช: ตรวจสอบความต้านทานการชนกันของอัลกอริทึมแฮช
● ความปลอดภัยของอัลกอริทึมลายเซ็นดิจิตอล: ตรวจสอบความปลอดภัยของอัลกอริทึมลายเซ็นและการนำไปใช้งานของอัลกอริทึม
● ความปลอดภัยของอัลกอริทึมการเข้ารหัส: ตรวจสอบความปลอดภัยของอัลกอริทึมการเข้ารหัสและการปรับใช้อัลกอริทึม
●ความปลอดภัยของตัวสร้างตัวเลขสุ่ม: ตรวจสอบว่าอัลกอริธึมการสร้างหมายเลขสุ่มคีย์นั้นสมเหตุสมผลหรือไม่
● ความปลอดภัยของการปรับใช้ BFT: ประเมินความปลอดภัยของอัลกอริทึม BFT
● กฎเลือกคัดสรร Fork: ตรวจสอบกฎเลือกคัดสรร Fork เพื่อให้มั่นคงปลอดภัย
● การทดสอบระดับการจัดกลุ่ม: ระบุว่ามีการออกแบบระบบที่มีการจัดกลุ่มเกินไปหรือไม่
● การตรวจสอบผลกระทบของสิ่งตอบแทนต่อความปลอดภัย
● การโจมตี Double-spending: ตรวจสอบว่าความเห็นร่วมกันสามารถป้องกันการโจมตี Double-spending ได้หรือไม่
● การตรวจสอบการโจมตี MEV: ตรวจสอบผลกระทบของ MEV ของโหนดแพ็คเกจบล็อกต่อความเป็นธรรมของเชื่อมโยง
●บล็อกการตรวจสอบกระบวนการซิงโครไนซ์: ตรวจสอบปัญหาด้านความปลอดภัยระหว่างการซิงโครไนซ์
●บล็อกการตรวจสอบกระบวนการแยกวิเคราะห์รูปแบบ: ตรวจสอบปัญหาด้านความปลอดภัยระหว่างการแยกวิเคราะห์รูปแบบเช่นข้อผิดพลาดในการแยกวิเคราะห์ที่ทําให้เกิดข้อขัดข้อง
●การตรวจสอบกระบวนการสร้างบล็อก: ตรวจสอบปัญหาด้านความปลอดภัยในกระบวนการสร้างบล็อกรวมถึงว่ารากต้นไม้ Merkle ถูกสร้างขึ้นอย่างสมเหตุสมผลหรือไม่
การตรวจสอบกระบวนการตรวจสอบบล็อก: ตรวจสอบว่ารายการลายเซ็นบล็อกและตรรกะการตรวจสอบเพียงพอหรือไม่
การตรวจสอบโลจิกการตรวจสอบบล็อก: ตรวจสอบว่าอัลกอริทึมและการดำเนินการในการตรวจสอบบล็อกเหมาะสม
● การชนของบล็อกแฮช: ตรวจสอบวิธีการสร้างการชนของบล็อกแฮชและว่ามีการจัดการการชนอย่างเหมาะสมหรือไม่
● ขีดจำกัดทรัพยากรการประมวลผลบล็อก: ตรวจสอบว่าสระน้ำบล็อกกาษาทรัพยากรสูญเสียการตรวจสอบการคำนวณการแก้ไขฮาร์ดดิสก์และขีดจำกัดทรัพยากรอื่น ๆ มีความเหมาะสมหรือไม่
กระบวนการตรวจสอบการซิงโครไนซ์ธุรกรรม: ตรวจสอบปัญหาด้านความปลอดภัยในกระบวนการซิงโครไนซ์
● การชนแฮชธุรกรรม: ตรวจสอบวิธีการสร้างและการจัดการกับการชนแฮชธุรกรรม
การวิเคราะห์รูปแบบธุรกรรม: ตรวจสอบปัญหาด้านความปลอดภัยในระหว่างการวิเคราะห์รูปแบบ เช่น ข้อผิดพลาดในการวิเคราะห์รูปแบบที่ทำให้เกิดความผิดพลาด
●การตรวจสอบความถูกต้องของธุรกรรม: ตรวจสอบว่ารายการลายเซ็นของธุรกรรมแต่ละประเภทและตรรกะการตรวจสอบเพียงพอหรือไม่
●ขีด จํากัด ทรัพยากรการประมวลผลธุรกรรม: ตรวจสอบว่าขีด จํากัด ทรัพยากรเช่นกลุ่มธุรกรรมการคํานวณการตรวจสอบและการกําหนดแอดเดรสฮาร์ดดิสก์นั้นสมเหตุสมผลหรือไม่
●การโจมตีความอ่อนตัวของธุรกรรม: ธุรกรรมสามารถเปลี่ยนฟิลด์ภายใน (เช่น ScriptSig) เพื่อเปลี่ยนแฮชธุรกรรมโดยไม่ส่งผลกระทบต่อความถูกต้องของธุรกรรมได้หรือไม่
●การตรวจสอบการโจมตีซ้ําธุรกรรม: ตรวจสอบการตรวจจับการเล่นซ้ําของธุรกรรมของระบบ
● การตรวจสอบ bytecode ของสัญญา: ตรวจสอบความปลอดภัยของกระบวนการตรวจสอบสัญญาของเครื่องจำลองเสมือน เช่น การเกิด integer overflow และการวนซ้ำที่เกิดขึ้น
●การดําเนินการ bytecode สัญญา: ตรวจสอบความปลอดภัยของกระบวนการเรียกใช้ bytecode ของเครื่องเสมือนเช่นจํานวนเต็มล้นลูปตายและอื่น ๆ
● โมเดล Gas: ตรวจสอบว่าค่าธรรมเนียมสำหรับแต่ละการดำเนินการแอตทอมิกของการประมวลผลธุรกรรม / การดำเนินการสัญญาสมรรถนะสัมพันธ์กับการใช้ทรัพยากร
● ความครบถ้วนของบันทึก: ตรวจสอบว่ามีข้อมูลสำคัญถูกบันทึกหรือไม่
● ความปลอดภัยของบันทึก: ตรวจสอบว่าการจัดการบันทึกที่ไม่ถูกต้องทำให้เกิดปัญหาด้านความปลอดภัย เช่น การรวมตัวเลข
● บันทึกข้อมูลมีข้อมูลเกี่ยวกับความเป็นส่วนตัว: ตรวจสอบว่าบันทึกข้อมูลมีข้อมูลเกี่ยวกับความเป็นส่วนตัวเช่นคีย์หรือไม่
●การจัดเก็บบันทึก: ตรวจสอบว่ามีการบันทึกเนื้อหาที่มากเกินไปในบันทึกซึ่งใช้ทรัพยากรโหนดหรือไม่
●รหัสโหนดความปลอดภัยของห่วงโซ่อุปทาน: ตรวจสอบไลบรารีส่วนประกอบและเวอร์ชันของเฟรมเวิร์กห่วงโซ่สาธารณะของบุคคลที่สามทั้งหมดสําหรับปัญหาที่ทราบ