ในวันที่ 10 ตุลาคม เวลา 14:00 น. โซลูชัน Ethereum Layer 2 Scroll mainnet ได้สร้างบล็อกแรก ซึ่งนับเป็นความสำเร็จในการเปิดตัว mainnet ของ Scroll ณ วันที่ 25 ตุลาคม มีการเชื่อมโยง ETH มากกว่า 7600 ETH เข้ากับเครือข่าย Scroll ผ่านสะพานข้ามสายโซ่ และแพลตฟอร์มการซื้อขายแบบกระจายอำนาจ 24 แห่งได้เผยแพร่บน Mainnet ของ Scroll โดยมีมูลค่า TVL รวมประมาณ 10 ล้านดอลลาร์
เมื่อวันที่ 17 ตุลาคม Scroll ได้ประกาศเปิดตัว mainnet อย่างเป็นทางการ ในขณะที่ยังคงรักษาความมุ่งมั่นต่อโอเพ่นซอร์สและการกระจายอำนาจ ในระยะต่อไป Scroll จะมุ่งเน้นไปที่การสร้างเครือข่ายและเครื่องคัดแยกหลักฐานการกระจายอำนาจ ในบทความนี้ เราจะให้การวิเคราะห์โดยละเอียดเกี่ยวกับสถาปัตยกรรมและเทคโนโลยีของ Scroll เพื่อช่วยให้ทุกคนเข้าใจสถานะเครือข่ายปัจจุบันและทิศทางการพัฒนาในอนาคตของ Scroll นอกจากนี้เรายังจะอธิบายวงจร zkEVM ของ Scroll และความรู้ด้านการตรวจสอบเพื่อเสริมสร้างมาตรการรักษาความปลอดภัยสำหรับโครงการ zk
Scroll เป็นโซลูชันการปรับขนาด Ethereum Layer 2 ที่ใช้เทคโนโลยีพิสูจน์ความรู้เป็นศูนย์ โดยมีเป้าหมายเพื่อปรับปรุงปริมาณธุรกรรมและความเร็วของเครือข่าย Ethereum เมื่อเปรียบเทียบกับ Rollup ในแง่ดีแล้ว Scroll สามารถปรับขนาดได้ผ่านการพิสูจน์ความรู้เป็นศูนย์ และเร่งการสร้างและการตรวจสอบการพิสูจน์ความรู้เป็นศูนย์ผ่านการเร่งด้วยฮาร์ดแวร์ มุ่งมั่นที่จะบรรลุความเข้ากันได้ EVM ระดับไบต์โค้ด ซึ่งหมายความว่านักพัฒนาสามารถใช้ Solidity และเครื่องมือการพัฒนาที่เกี่ยวข้องกับ Ethereum ได้โดยตรงเพื่อสร้างสัญญาอัจฉริยะและปรับใช้บน Scroll โดยไม่ต้องแก้ไขใดๆ
ตามเว็บไซต์อย่างเป็นทางการของ Scroll ปัจจุบันมีสมาชิกหลัก 10 คนในทีม Scroll ซึ่งกระจายอยู่ทั่วเอเชีย อเมริกา และยุโรป สมาชิกในทีมมีประสบการณ์มากมายในการพัฒนา zkRollup และการดำเนินงานในอุตสาหกรรม โดยส่วนใหญ่สำเร็จการศึกษาจากมหาวิทยาลัยที่มีชื่อเสียงและสำเร็จการศึกษาระดับปริญญาเอก
ปัจจุบัน ระบบนิเวศของ Scroll อุดมสมบูรณ์มาก โดยมีโครงการโครงสร้างพื้นฐาน เช่น กระเป๋าเงิน เครื่องมือในการพัฒนา สิ่งอำนวยความสะดวกด้านความปลอดภัย และอื่นๆ อีกมากมาย เป้าหมายคือการให้การสนับสนุนโครงการอย่างครอบคลุมตลอดวงจรชีวิตทั้งหมด ตั้งแต่การออกแบบ การพัฒนา การดำเนินงาน ไปจนถึงการตรวจสอบความปลอดภัย ปัจจุบันมีโครงการระบบนิเวศมากกว่า 180 โครงการบนเมนเน็ต Scroll
กระเป๋าสตางค์
ปัจจุบัน Scroll รองรับกระเป๋าสตางค์กระแสหลักเกือบทั้งหมด: Metamask, TrustWallet, MathWallet, TokenPocket, WalletConnect, Binance Chain Wallet, SafePal Wallet นอกจากนี้ กระเป๋าเงินระบบนิเวศของ Scroll ยังรวมถึง OKX Wallet, Versa Wallet และอื่นๆ
สะพานข้ามโซ่
โครงสร้างพื้นฐานข้ามสายโซ่อย่างเป็นทางการของ Scroll ประกอบด้วย Celer Network, Stargate, Orbiter Finance, Hop Protocol, LI.FI, Connext เป็นต้น นอกจากนี้ยังรวมถึงโปรโตคอลสภาพคล่องข้ามเชน Synapse Protocol, Owlto Finance มุ่งเน้นไปที่บริดจ์ข้ามเชนเลเยอร์ 2, Ethereum Layer 1 และเลเยอร์ 2 ข้ามเชนบริดจ์ Pheasant Network, Symbiosis, Catalyst เป็นต้น
เดไฟ
ในระบบนิเวศของ Scroll มีโปรเจ็กต์ DeFi ที่ได้รับการยอมรับอย่างดีหลายโครงการ รวมถึงโปรโตคอลการให้ยืม Aave, ตัวรวบรวม DEX แบบหลายสายโซ่ DODO, DEX SushiSwap, ตัวรวบรวม DEX OpenOcean, โปรโตคอล DeFi แบบหลายสายโซ่ iZUMi Finance, DEX Syncswap, โปรโตคอลผลตอบแทน Pendle Finance, การให้ยืม โปรโตคอล dForce และใช้ประโยชน์จากโปรโตคอล MUX ของผู้รวบรวมการซื้อขาย นอกจากนี้ยังมีโครงการนวัตกรรมเช่น GMX ที่ยังไม่ได้รับการยอมรับอย่างกว้างขวาง
คนอื่น
ในแง่ของ NFT การเล่นเกม และด้านสังคม โครงการอื่น ๆ ในระบบนิเวศของ Scroll ได้แก่ NFTScan, แพลตฟอร์มงาน Web3 QuestN, TaskOn, แพลตฟอร์มการลงนามโปรโตคอลอิเล็กทรอนิกส์ EthSign, Galaxy Blitz, OmniKingdoms และเกมบล็อกเชนออนไลน์อื่น ๆ
อะไรทำให้เทคโนโลยี Scroll แตกต่างจากเทคโนโลยีอื่นๆ
สถาปัตยกรรมของ Scroll ประกอบด้วยสามองค์ประกอบ:
Scroll Node: สร้างบล็อกบนเครือข่าย Scroll ตามธุรกรรมของผู้ใช้ ส่งธุรกรรมเหล่านี้ไปยังเลเยอร์ฐาน Ethereum และจัดการข้อความที่ส่งผ่านระหว่าง Ethereum และ Scroll
Roller: Roller มีหน้าที่แปลงสัญญาอัจฉริยะเป็นวงจร zkEVM จากนั้นสร้างหลักฐานเพื่อพิสูจน์ความถูกต้องของธุรกรรม มีลูกกลิ้งหลายตัวในเครือข่าย Scroll ซึ่งประมวลผลธุรกรรมแบบขนานและเร่งการสร้างหลักฐานผ่านฮาร์ดแวร์ Scroll บรรลุความเข้ากันได้ระดับไบต์โค้ดกับ EVM โดยการพิสูจน์ความถูกต้องของการประมวลผลโค้ดไบต์ EVM โดยตรง
Rollup and Bridge Contract: สัญญาเหล่านี้ให้ความพร้อมใช้งานของข้อมูลสำหรับธุรกรรม Scroll และตรวจสอบหลักฐานความถูกต้องที่สร้างโดย zkEVM อาจกล่าวได้ว่า Scroll เชื่อมต่อกับเลเยอร์ฐาน Ethereum ผ่านสัญญา Rollup และ Bridge ด้วยสัญญาเหล่านี้ ผู้ใช้สามารถแลกเปลี่ยนข้อความที่กำหนดเองระหว่าง Ethereum และ Scroll และถ่ายโอนสินทรัพย์ ERC-20 ในทิศทางใดทิศทางหนึ่งด้วยความช่วยเหลือของสัญญาเกตเวย์
ที่มา: https://scroll.mirror.xyz/nDAbJbSIJdQIWqp9kn8J0MVS4s6pYBwHmK7keidQs-k
Scroll เป็นสัญญาหลักที่ใช้งานบน Ethereum blockchain:
สัญญาพร็อกซีการกำหนดเส้นทางเกตเวย์ (ตรวจสอบให้แน่ใจว่าการแมปโทเค็นในการดำเนินการข้ามเชนถูกต้อง): 0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6
Message Proxy Contract (การส่งข้อความระหว่าง L1 และ L2): 0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367
เป็นที่น่าสังเกตว่าสัญญาเหล่านี้สามารถแก้ไขได้โดยผู้ดูแลระบบพร็อกซีและเจ้าของ นอกจากนี้ Scroll ยังได้รวมฟังก์ชันไวท์ลิสต์ที่ช่วยให้สามารถปรับค่าธรรมเนียมน้ำมันสำหรับที่อยู่เฉพาะภายใน Scroll ได้ ในปัจจุบัน ตัวจัดลำดับ Scroll ทำงานในลักษณะรวมศูนย์ ซึ่งอนุญาตให้ตรวจสอบข้อความและธุรกรรมบนเครือข่าย Scroll นอกจากนี้ ยังมีความเป็นไปได้ที่จะข้ามข้อความใดๆ ในคิวข้อความและยืนยันข้อความเฉพาะได้โดยตรง
หลังจากที่ Scroll สร้างบล็อก มันจะผ่านผู้ประสานงานและผู้พิสูจน์หลายราย (ลูกกลิ้ง) เพื่อสร้างการพิสูจน์แบบรวม หลักฐานเหล่านี้จะถูกส่งไปยังสัญญา Ethereum Rollup เพื่อตรวจสอบ กระบวนการโดยละเอียดมีดังนี้:
1、ตัวจัดลำดับได้รับธุรกรรมใหม่ เครื่องเสมือนจะอ่านรหัสไบต์ที่เกี่ยวข้องกับแต่ละธุรกรรม สร้างการติดตามการดำเนินการ และส่งไปยังผู้ประสานงาน ในขณะเดียวกัน ตัวจัดลำดับจะส่งข้อมูลธุรกรรมไปยังสัญญา Rollup
2、ลูกกลิ้งจะแปลงการติดตามการดำเนินการที่ได้รับจากผู้ประสานงานให้เป็นวงจร zkEVM แต่ละขั้นตอนในการติดตามการดำเนินการสอดคล้องกับวงจร zkEVM สำหรับฟังก์ชันที่ไม่เป็นมิตรกับ zk (เช่น แฮชและ Keccak) Scroll จะสร้างตารางการค้นหาเพื่อจับคู่อินพุตและเอาต์พุตของฟังก์ชันเหล่านี้ในการติดตามการดำเนินการกับตารางการค้นหา มีการใช้วงจรเพิ่มเติมเพื่อตรวจสอบความถูกต้องของตารางค้นหา จากนั้นโรลเลอร์จะสร้างการพิสูจน์สำหรับวงจร zkEVM เหล่านี้
3、หลังจากสร้างหลักฐานแล้ว โรลเลอร์จะส่งหลักฐานกลับไปยังผู้ประสานงาน ทุกๆ สองสามช่วงตึก ผู้ประสานงานจะสุ่มมอบหมายงานการรวมกลุ่มให้กับลูกกลิ้ง โรลเลอร์ที่ได้รับมอบหมายจะรวมการพิสูจน์สำหรับบล็อกหลาย ๆ บล็อกไว้เป็นหลักฐานเดียว
4、สุดท้าย ผู้ประสานงานส่งหลักฐานรวมไปยังสัญญา Rollup สัญญา Rollup ใช้หลักฐานนี้เพื่อตรวจสอบความถูกต้องของสถานะและข้อมูลธุรกรรมที่ส่งมาก่อนหน้านี้ ดังนั้นจึงยืนยันความถูกต้องของบล็อก
zkEVM ประกอบด้วยหลายวงจร แต่ละวงจรได้รับมอบหมายให้ตรวจสอบลักษณะเฉพาะของ EVM (Ethereum Virtual Machine) ในที่สุดวงจรเหล่านี้จะรวมกันหรือรวมเข้าด้วยกันเพื่อสร้างหลักฐานการทำธุรกรรม แผนภาพด้านล่างแสดงความสัมพันธ์ระหว่างวงจรเหล่านี้กับตาราง
มีวงจรย่อยที่มีขนาดเล็กกว่า เช่น วงจร ECDSA และวงจรย่อยที่เกี่ยวข้องกับ opcode ที่ไม่โต้ตอบกับตารางและวงจรอื่นในลักษณะที่ส่งผลต่อการรวมกันของวงจร วงจรย่อยเหล่านี้จะถูกละเว้นจากแผนภาพเพื่อความชัดเจน
วงจรอีวีเอ็ม
Ethereum Virtual Machine (EVM) เป็นเครื่องสถานะที่สร้างกฎสำหรับการเปลี่ยนสถานะที่ถูกต้องภายในโปรโตคอล Ethereum โดยจะดำเนินการตามคำสั่ง (opcodes) เพื่อให้เกิดการเปลี่ยนแปลงเหล่านี้ และสร้างการติดตามการดำเนินการ วัตถุประสงค์ของวงจร EVM คือการสร้างระบบข้อจำกัดที่แสดงถึงการติดตามการดำเนินการ และสามารถตรวจสอบได้โดยใช้ระบบพิสูจน์ความรู้แบบศูนย์
การออกแบบวงจร EVM ระดับสูงค่อนข้างคล้ายกับการออกแบบของ EVM เอง เช่นเดียวกับ go-ethereum ใน go-ethereum ตัวแปลจะวนซ้ำคำสั่ง opcodes ทั้งหมดบนการติดตามการดำเนินการ สำหรับแต่ละคำสั่ง ล่ามจะตรวจสอบข้อมูลบริบทที่เกี่ยวข้อง เช่น แก๊ส สแตก และหน่วยความจำ จากนั้นส่ง opcode ไปที่ JumpTable ซึ่งให้คำแนะนำโดยละเอียดสำหรับการดำเนินการ opcode
ในทำนองเดียวกัน ในวงจร EVM นั้น Scroll จะสร้างขั้นตอนการดำเนินการตามการติดตามการดำเนินการ และจัดเตรียมการพิสูจน์สำหรับ opcode และบริบทการดำเนินการ สำหรับแต่ละขั้นตอนการดำเนินการ จะมีการใช้ชุดข้อจำกัดเพื่อตรวจสอบข้อมูลเชิงบริบท สำหรับแต่ละ opcode จะมีการใช้ชุดข้อจำกัดเพื่อตรวจสอบพฤติกรรมของมัน ภายในการติดตามการดำเนินการ opcode เดียวกันควรมีข้อจำกัดเหมือนกัน Scroll ใช้ตัวเลือกเพื่อ "เปิด" ทุกขั้นตอนด้วย opcode เดียวกันในการติดตามการดำเนินการ และใช้ระบบพิสูจน์แบ็กเอนด์เพื่อพิสูจน์พฤติกรรม
สเตทเซอร์กิต
ในระหว่างการดำเนินการ การดำเนินการอ่านและเขียนทั้งหมดของ EVM จะถูกบันทึกไว้ใน rw_table และเรียงลำดับโดยตัวแปร rw_counter วัตถุประสงค์ของวงจรสถานะคือการสาธิตการสร้าง rw_table ที่แม่นยำ
วงจร MPT
Merkle Patricia Tree (MPT) เป็นโครงสร้างข้อมูลสำคัญที่ใช้ในเลเยอร์พื้นที่จัดเก็บข้อมูล Ethereum ใน zkevm-Circuits ของ Scroll นั้น MPT ได้รับการแก้ไขเป็น zkTrie ซึ่งโดยพื้นฐานแล้วคือ Merkle Patricia Trie ไบนารีแบบกระจัดกระจาย ใน zkevm-Circuits นั้น Scroll จะใช้ตาราง MPT เพื่อติดตามการเปลี่ยนแปลงสถานะของการดำเนินการ MPT ทีละขั้นตอน ตาราง MPT มีโครงร่างดังต่อไปนี้:
เป้าหมายของวงจร MPT คือการตรวจสอบความถูกต้องของตาราง MPT ที่กล่าวถึงข้างต้น ช่วยให้มั่นใจได้ว่าการอัปเดตแต่ละครั้งที่บันทึกไว้ในตาราง MPT จะส่งผลให้เกิดการเปลี่ยนแปลงที่ถูกต้อง ซึ่งหมายความว่าสำหรับการอัปเดตทุกครั้ง วงจร MPT รับประกันว่ามีเพียงวิธีเดียวเท่านั้นที่จะทำการเปลี่ยนแปลงได้ วิธีนี้จะป้องกันการดัดแปลงโดยไม่ได้ตั้งใจหรือไม่ได้รับอนุญาต และรับประกันความสมบูรณ์และความถูกต้องของ MPT โดยเฉพาะอย่างยิ่ง เมื่อ MPT มีการเปลี่ยนแปลงเนื่องจากการอัพเดตในบัญชีหรือการจัดเก็บ วงจร MPT จะต้องพิสูจน์ว่าการอัพเดตเหล่านี้ดำเนินการตามกฎที่ระบุ นอกจากนี้ จะต้องแสดงให้เห็นว่าแฮชรูทสะท้อนผลลัพธ์ของการเปลี่ยนแปลงทั้งหมดอย่างแม่นยำ
เค็คคักเซอร์กิต
Scroll ได้นำ Keccak256 เวอร์ชันของตัวเองไปใช้ ตามข้อกำหนดของ NIST Keccak และข้อกำหนดของทีม Keccak
และใช้วงจร Keccak เพื่อพิสูจน์ความถูกต้องของการทำงานของ Keccak256 การใช้งานวงจรนี้มีความซับซ้อน สาเหตุหลักมาจากอัลกอริธึม keccak256 เองนั้นไม่เป็นมิตรต่อ zk
วงจรเท็กซัส
วงจร Tx มีข้อจำกัดในการตรวจสอบความถูกต้องของธุรกรรม โดยจะตรวจสอบด้านต่อไปนี้ของธุรกรรมเป็นหลัก:
ความถูกต้องของ CallDataLength และ CallDataGasCost สะสม: กำหนดเกตที่กำหนดเองและค้นหาไบต์ข้อมูลการโทรแถวสุดท้ายในตาราง tx
ความถูกต้องของข้อมูลที่เกี่ยวข้องกับ TxSign และ TxHash: ค้นหาตาราง RLP และตาราง Keccak
พิสูจน์ความถูกต้องของ “ถ้า tx_type เป็น L1Msg แล้ว msg_hash”: ตรวจสอบโดยการค้นหาตาราง RLP
ดำเนินการลายเซ็น tx อย่างถูกต้องโดยใช้ ECDSA และกู้คืนที่อยู่ของผู้โทรอย่างถูกต้องจากลายเซ็น ECDSA: ตรวจสอบโดยการค้นหาตาราง sig;
พฤติกรรมการเปลี่ยนผ่านที่ถูกต้องของ tx id, cum_num_txs และ call_data_length
ข้อจำกัดพื้นฐานบางประการ เช่น ค่าบูลีนของตัวแปรตัวบ่งชี้บางตัว
วงจรไบต์โค้ด
วงจร EVM จำเป็นต้องค้นหาตารางรหัสไบต์ที่มีข้อมูลรหัสไบต์ที่ถูกต้อง เพื่อให้แน่ใจว่าไบต์ที่จัดเก็บไว้ในสัญญาตรงกับไบต์ที่โหลดจากตาราง วัตถุประสงค์ของวงจร bytecode คือเพื่อบังคับใช้ความถูกต้องของตาราง bytecode ซึ่งรวมถึง:
ข้อจำกัดที่เกี่ยวข้องกับพฤติกรรมขอบเขตด้วยแท็ก (แท็ก): ข้อจำกัดในบรรทัดแรกและบรรทัดสุดท้าย การแปลงจากแท็ก == ไบต์เป็นส่วนหัวและในทางกลับกัน การแปลงจากส่วนหัวเป็นส่วนหัว
ข้อจำกัดเกี่ยวกับขนาดโค้ด: รวมถึงการคำนวณความยาวของโค้ดไบต์ผ่านข้อจำกัดของดัชนีของไบต์สุดท้ายของโค้ดไบต์
ข้อจำกัดของโค้ดแฮช: จำกัดพฤติกรรม RLC ของไบต์ในโค้ดแฮชอย่างถูกต้อง และตรวจสอบโค้ดแฮชโดยการค้นหาตาราง Keccak
ตรวจสอบความถูกต้องของพฤติกรรม PUSH: is_code = push_data_left == 0 (ต้องเป็นค่าบูลีน) และตรวจสอบขนาดของข้อมูลที่พุชสำหรับ PUSH1-PUSH32 โดยค้นหา push_table;
ตรวจสอบให้แน่ใจว่ามีการเผยแพร่ที่ถูกต้องในแต่ละบรรทัดของโค้ดไบต์
เชนต่างๆ มีฟังก์ชันโมดูลธุรกิจแบบกำหนดเอง ซึ่งโดยปกติจะแก้ไขสัญญาและ opcode ที่คอมไพล์แล้วใน EVM หนึ่งในนั้นคือ Scroll zkEVM เป็นโซลูชันการปรับขนาดเลเยอร์ที่สองโดยอิงจากการพิสูจน์ความรู้แบบไม่มีศูนย์ โซลูชันนี้จะสร้าง opcode ที่เกี่ยวข้องขึ้นใหม่โดยใช้วงจร และสร้างการพิสูจน์ตามการติดตามการดำเนินการ การใช้งานที่ซับซ้อนนี้เพิ่มความยากในการตรวจสอบอย่างมาก หลังจากการประเมินโดยผู้เชี่ยวชาญด้านความปลอดภัยของ Beosin การตรวจสอบความปลอดภัยของ zkEVM จะมุ่งเน้นไปที่ประเด็นต่อไปนี้เป็นหลัก:
GAS:เมื่อสร้างการพิสูจน์สำหรับการติดตามการดำเนินการของวงจร zkEVM จะตรวจสอบความถูกต้องของปริมาณการใช้ก๊าซสำหรับธุรกรรมด้วย หากมีการใช้ตัวแปรอิสระที่ไม่มีข้อจำกัดบ่อยครั้งในวงจรการใช้งานของ opcode อาจส่งผลให้เกิดความล้มเหลวในการสร้างการพิสูจน์หรือข้อผิดพลาดที่ไม่ทราบอื่นๆ
ความปลอดภัยของหน่วยความจำ: วงจร zkEVM บางวงจรจะขึ้นอยู่กับข้อผูกพันพหุนาม เช่น ข้อผูกพัน KZG ที่ใช้โดย Scroll อย่างไรก็ตาม การคำนวณพหุนามไม่ได้จัดตำแหน่งโดยอัตโนมัติ ดังนั้นหากวงจรไม่มีข้อจำกัด อาจส่งผลให้ช่วงค่าไม่สอดคล้องกับช่วงไบต์ในโปรแกรมคอมพิวเตอร์ ในบางกรณี เมื่อผู้พัฒนาตามสัญญาเปิดใช้งานการเพิ่มประสิทธิภาพก๊าซ การจัดเรียงข้อมูลที่กะทัดรัดอาจนำไปสู่ปัญหาด้านความปลอดภัยของหน่วยความจำ เช่น พหุนามคงที่ BYTE_C4096 ใน Polygon zkEVM พหุนามอนุญาตให้ค่าพารามิเตอร์เกินช่วงค่าไบต์สูงสุดที่ 255 ซึ่งอาจเปิดใช้งานซีเควนเซอร์ที่เป็นอันตรายเพื่อจัดการพารามิเตอร์เพื่อหากำไรในบางแพลตฟอร์มการแลกเปลี่ยนที่ใช้โมเดล AMM โดยพื้นฐานแล้ว ช่องโหว่ประเภทนี้เกิดขึ้นจากความไม่สอดคล้องกันระหว่างช่วงความถูกต้องเชิงตัวเลขที่แสดงโดยวงจรและช่วงค่าตัวแปรของโปรแกรม ตัวอย่างคือช่องโหว่ CVE-2023-33252 ที่ค้นพบโดยนักวิจัยด้านความปลอดภัยของ Beosin ในไลบรารี Snarkjs
ความปลอดภัยของ Opcode: เมื่อใช้ opcode zkEVM จะมีปัญหาด้านความปลอดภัยทั่วไป โดยเฉพาะอย่างยิ่งเกี่ยวกับความแม่นยำ ตัวอย่างเช่น เมื่อเปรียบเทียบตัวเลขสองตัวในวงจรพื้นฐาน ถ้าความแม่นยำของการดำเนินการเปรียบเทียบในโปรแกรมคือ 1 ไบต์ ข้อจำกัดของวงจรจำเป็นต้องระบุช่วงค่า มิฉะนั้นความแม่นยำของการทำงานในวงจรจะเกินความแม่นยำของโปรแกรมส่งผลให้ผลลัพธ์ไม่ถูกต้อง
รองรับ EIP ที่ปลอดภัย: รองรับ EIP ที่เน้นความปลอดภัย เช่น EIP-2 และ EIP-155
ปัญหาการรวมศูนย์ใน Sequencer: ในปัจจุบัน การพิสูจน์ทั้งหมดที่สร้างโดย Scroll ขึ้นอยู่กับการติดตามการดำเนินการที่สร้างโดย Sequencer หาก Sequencer ทำงานที่เป็นอันตราย zkEVM จะไม่สามารถรับประกันความปลอดภัยของทรัพย์สินของผู้ใช้ได้
ปัญหาความเข้ากันได้: zkEVM สร้างการพิสูจน์วงจรตามการติดตามการดำเนินการและตรวจสอบในสัญญา แม้แต่การอัพเกรดเล็กน้อยใน Sequencer ก็อาจส่งผลให้เกิดความแตกต่างอย่างมีนัยสำคัญในการติดตามการดำเนินการที่สร้างขึ้นในระดับภาษาพื้นฐาน
ปัจจุบัน Scroll ใช้ระบบพิสูจน์ Halo2 เวอร์ชัน KZG สองชั้น โดยใช้การเร่งด้วยฮาร์ดแวร์ GPU เพื่อเร่งการสร้างหลักฐาน ปัญหาคอขวดได้เปลี่ยนไปสู่การสร้างพยานและการจำลองข้อมูล นอกจากนี้ ระดับการรวมศูนย์และต้นทุนการดำเนินงานด้านฮาร์ดแวร์ของ Roller ยังเป็นแง่มุมที่ Scroll ต้องพิจารณาสำหรับการพัฒนาระบบพิสูจน์อักษรแบบหลายขั้นตอนในอนาคต
เนื่องจากการติดตามการดำเนินการ EVM มีการเปลี่ยนแปลงแบบไดนามิก จึงมีข้อจำกัดและขนาดของวงจรที่หลากหลาย ในปัจจุบัน เพื่อรองรับการติดตามการดำเนินการที่เปลี่ยนแปลงแบบไดนามิก แต่ละขั้นตอนของการติดตามการดำเนินการจำเป็นต้องเป็นไปตามขนาดวงจรที่ใหญ่ที่สุด ส่งผลให้สูญเสียหน่วยความจำเพิ่มเติม
ปัจจุบัน Scroll's Roller คาดว่าจะได้กำไรจากค่าธรรมเนียมการทำธุรกรรมเครือข่าย อย่างไรก็ตาม จำนวนผู้ใช้ปัจจุบันและค่าธรรมเนียมการทำธุรกรรมในเครือข่าย Scroll ไม่สามารถครอบคลุมต้นทุนการดำเนินงานของ Roller และซีเควนเซอร์ได้ ในอนาคต วิธีที่เครือข่าย Scroll มอบแรงจูงใจทางเศรษฐกิจเพื่อดึงดูดผู้ใช้และรักษาการทำงานของเครือข่ายให้มีเสถียรภาพเป็นคำถามที่ต้องพิจารณา
ปัจจุบัน Beosin ยังสนับสนุนการตรวจสอบโครงการ zk ด้วย สำหรับการวิจัยความปลอดภัยแบบฮาร์ดคอร์บน zk คุณสามารถอ่านบทความต่อไปนี้: 1. การโจมตีความอ่อนไหวของธุรกรรมของ Groth16 Proof; 2. สำรวจเจาะลึก Tornado Cash เพื่อเปิดเผยการโจมตีแบบอ่อนตัวในโครงการ ZKP
Beosin ในฐานะบริษัทรักษาความปลอดภัยบล็อคเชนชั้นนำระดับโลก ได้ก่อตั้งสาขาในกว่า 10 ประเทศและภูมิภาคทั่วโลก บริการของเราครอบคลุมการตรวจสอบความปลอดภัยของโค้ดก่อนเปิดตัวโครงการ การตรวจสอบความเสี่ยงด้านความปลอดภัย การเตือนล่วงหน้าและการป้องกันในระหว่างการดำเนินโครงการ การกู้คืนสินทรัพย์สำหรับสกุลเงินเสมือนที่ถูกขโมย และบริการการปฏิบัติตามข้อกำหนดที่ปลอดภัย เช่น KYT/AML เรามอบโซลูชั่นแบบครบวงจรสำหรับผลิตภัณฑ์และบริการด้านความปลอดภัยบล็อคเชน ปัจจุบัน เราได้ให้บริการเทคโนโลยีความปลอดภัยแก่องค์กรบล็อกเชนมากกว่า 3,000 แห่งทั่วโลก และตรวจสอบสัญญาอัจฉริยะมากกว่า 3,000 สัญญา อย่าลังเลที่จะติดต่อเรา
ในวันที่ 10 ตุลาคม เวลา 14:00 น. โซลูชัน Ethereum Layer 2 Scroll mainnet ได้สร้างบล็อกแรก ซึ่งนับเป็นความสำเร็จในการเปิดตัว mainnet ของ Scroll ณ วันที่ 25 ตุลาคม มีการเชื่อมโยง ETH มากกว่า 7600 ETH เข้ากับเครือข่าย Scroll ผ่านสะพานข้ามสายโซ่ และแพลตฟอร์มการซื้อขายแบบกระจายอำนาจ 24 แห่งได้เผยแพร่บน Mainnet ของ Scroll โดยมีมูลค่า TVL รวมประมาณ 10 ล้านดอลลาร์
เมื่อวันที่ 17 ตุลาคม Scroll ได้ประกาศเปิดตัว mainnet อย่างเป็นทางการ ในขณะที่ยังคงรักษาความมุ่งมั่นต่อโอเพ่นซอร์สและการกระจายอำนาจ ในระยะต่อไป Scroll จะมุ่งเน้นไปที่การสร้างเครือข่ายและเครื่องคัดแยกหลักฐานการกระจายอำนาจ ในบทความนี้ เราจะให้การวิเคราะห์โดยละเอียดเกี่ยวกับสถาปัตยกรรมและเทคโนโลยีของ Scroll เพื่อช่วยให้ทุกคนเข้าใจสถานะเครือข่ายปัจจุบันและทิศทางการพัฒนาในอนาคตของ Scroll นอกจากนี้เรายังจะอธิบายวงจร zkEVM ของ Scroll และความรู้ด้านการตรวจสอบเพื่อเสริมสร้างมาตรการรักษาความปลอดภัยสำหรับโครงการ zk
Scroll เป็นโซลูชันการปรับขนาด Ethereum Layer 2 ที่ใช้เทคโนโลยีพิสูจน์ความรู้เป็นศูนย์ โดยมีเป้าหมายเพื่อปรับปรุงปริมาณธุรกรรมและความเร็วของเครือข่าย Ethereum เมื่อเปรียบเทียบกับ Rollup ในแง่ดีแล้ว Scroll สามารถปรับขนาดได้ผ่านการพิสูจน์ความรู้เป็นศูนย์ และเร่งการสร้างและการตรวจสอบการพิสูจน์ความรู้เป็นศูนย์ผ่านการเร่งด้วยฮาร์ดแวร์ มุ่งมั่นที่จะบรรลุความเข้ากันได้ EVM ระดับไบต์โค้ด ซึ่งหมายความว่านักพัฒนาสามารถใช้ Solidity และเครื่องมือการพัฒนาที่เกี่ยวข้องกับ Ethereum ได้โดยตรงเพื่อสร้างสัญญาอัจฉริยะและปรับใช้บน Scroll โดยไม่ต้องแก้ไขใดๆ
ตามเว็บไซต์อย่างเป็นทางการของ Scroll ปัจจุบันมีสมาชิกหลัก 10 คนในทีม Scroll ซึ่งกระจายอยู่ทั่วเอเชีย อเมริกา และยุโรป สมาชิกในทีมมีประสบการณ์มากมายในการพัฒนา zkRollup และการดำเนินงานในอุตสาหกรรม โดยส่วนใหญ่สำเร็จการศึกษาจากมหาวิทยาลัยที่มีชื่อเสียงและสำเร็จการศึกษาระดับปริญญาเอก
ปัจจุบัน ระบบนิเวศของ Scroll อุดมสมบูรณ์มาก โดยมีโครงการโครงสร้างพื้นฐาน เช่น กระเป๋าเงิน เครื่องมือในการพัฒนา สิ่งอำนวยความสะดวกด้านความปลอดภัย และอื่นๆ อีกมากมาย เป้าหมายคือการให้การสนับสนุนโครงการอย่างครอบคลุมตลอดวงจรชีวิตทั้งหมด ตั้งแต่การออกแบบ การพัฒนา การดำเนินงาน ไปจนถึงการตรวจสอบความปลอดภัย ปัจจุบันมีโครงการระบบนิเวศมากกว่า 180 โครงการบนเมนเน็ต Scroll
กระเป๋าสตางค์
ปัจจุบัน Scroll รองรับกระเป๋าสตางค์กระแสหลักเกือบทั้งหมด: Metamask, TrustWallet, MathWallet, TokenPocket, WalletConnect, Binance Chain Wallet, SafePal Wallet นอกจากนี้ กระเป๋าเงินระบบนิเวศของ Scroll ยังรวมถึง OKX Wallet, Versa Wallet และอื่นๆ
สะพานข้ามโซ่
โครงสร้างพื้นฐานข้ามสายโซ่อย่างเป็นทางการของ Scroll ประกอบด้วย Celer Network, Stargate, Orbiter Finance, Hop Protocol, LI.FI, Connext เป็นต้น นอกจากนี้ยังรวมถึงโปรโตคอลสภาพคล่องข้ามเชน Synapse Protocol, Owlto Finance มุ่งเน้นไปที่บริดจ์ข้ามเชนเลเยอร์ 2, Ethereum Layer 1 และเลเยอร์ 2 ข้ามเชนบริดจ์ Pheasant Network, Symbiosis, Catalyst เป็นต้น
เดไฟ
ในระบบนิเวศของ Scroll มีโปรเจ็กต์ DeFi ที่ได้รับการยอมรับอย่างดีหลายโครงการ รวมถึงโปรโตคอลการให้ยืม Aave, ตัวรวบรวม DEX แบบหลายสายโซ่ DODO, DEX SushiSwap, ตัวรวบรวม DEX OpenOcean, โปรโตคอล DeFi แบบหลายสายโซ่ iZUMi Finance, DEX Syncswap, โปรโตคอลผลตอบแทน Pendle Finance, การให้ยืม โปรโตคอล dForce และใช้ประโยชน์จากโปรโตคอล MUX ของผู้รวบรวมการซื้อขาย นอกจากนี้ยังมีโครงการนวัตกรรมเช่น GMX ที่ยังไม่ได้รับการยอมรับอย่างกว้างขวาง
คนอื่น
ในแง่ของ NFT การเล่นเกม และด้านสังคม โครงการอื่น ๆ ในระบบนิเวศของ Scroll ได้แก่ NFTScan, แพลตฟอร์มงาน Web3 QuestN, TaskOn, แพลตฟอร์มการลงนามโปรโตคอลอิเล็กทรอนิกส์ EthSign, Galaxy Blitz, OmniKingdoms และเกมบล็อกเชนออนไลน์อื่น ๆ
อะไรทำให้เทคโนโลยี Scroll แตกต่างจากเทคโนโลยีอื่นๆ
สถาปัตยกรรมของ Scroll ประกอบด้วยสามองค์ประกอบ:
Scroll Node: สร้างบล็อกบนเครือข่าย Scroll ตามธุรกรรมของผู้ใช้ ส่งธุรกรรมเหล่านี้ไปยังเลเยอร์ฐาน Ethereum และจัดการข้อความที่ส่งผ่านระหว่าง Ethereum และ Scroll
Roller: Roller มีหน้าที่แปลงสัญญาอัจฉริยะเป็นวงจร zkEVM จากนั้นสร้างหลักฐานเพื่อพิสูจน์ความถูกต้องของธุรกรรม มีลูกกลิ้งหลายตัวในเครือข่าย Scroll ซึ่งประมวลผลธุรกรรมแบบขนานและเร่งการสร้างหลักฐานผ่านฮาร์ดแวร์ Scroll บรรลุความเข้ากันได้ระดับไบต์โค้ดกับ EVM โดยการพิสูจน์ความถูกต้องของการประมวลผลโค้ดไบต์ EVM โดยตรง
Rollup and Bridge Contract: สัญญาเหล่านี้ให้ความพร้อมใช้งานของข้อมูลสำหรับธุรกรรม Scroll และตรวจสอบหลักฐานความถูกต้องที่สร้างโดย zkEVM อาจกล่าวได้ว่า Scroll เชื่อมต่อกับเลเยอร์ฐาน Ethereum ผ่านสัญญา Rollup และ Bridge ด้วยสัญญาเหล่านี้ ผู้ใช้สามารถแลกเปลี่ยนข้อความที่กำหนดเองระหว่าง Ethereum และ Scroll และถ่ายโอนสินทรัพย์ ERC-20 ในทิศทางใดทิศทางหนึ่งด้วยความช่วยเหลือของสัญญาเกตเวย์
ที่มา: https://scroll.mirror.xyz/nDAbJbSIJdQIWqp9kn8J0MVS4s6pYBwHmK7keidQs-k
Scroll เป็นสัญญาหลักที่ใช้งานบน Ethereum blockchain:
สัญญาพร็อกซีการกำหนดเส้นทางเกตเวย์ (ตรวจสอบให้แน่ใจว่าการแมปโทเค็นในการดำเนินการข้ามเชนถูกต้อง): 0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6
Message Proxy Contract (การส่งข้อความระหว่าง L1 และ L2): 0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367
เป็นที่น่าสังเกตว่าสัญญาเหล่านี้สามารถแก้ไขได้โดยผู้ดูแลระบบพร็อกซีและเจ้าของ นอกจากนี้ Scroll ยังได้รวมฟังก์ชันไวท์ลิสต์ที่ช่วยให้สามารถปรับค่าธรรมเนียมน้ำมันสำหรับที่อยู่เฉพาะภายใน Scroll ได้ ในปัจจุบัน ตัวจัดลำดับ Scroll ทำงานในลักษณะรวมศูนย์ ซึ่งอนุญาตให้ตรวจสอบข้อความและธุรกรรมบนเครือข่าย Scroll นอกจากนี้ ยังมีความเป็นไปได้ที่จะข้ามข้อความใดๆ ในคิวข้อความและยืนยันข้อความเฉพาะได้โดยตรง
หลังจากที่ Scroll สร้างบล็อก มันจะผ่านผู้ประสานงานและผู้พิสูจน์หลายราย (ลูกกลิ้ง) เพื่อสร้างการพิสูจน์แบบรวม หลักฐานเหล่านี้จะถูกส่งไปยังสัญญา Ethereum Rollup เพื่อตรวจสอบ กระบวนการโดยละเอียดมีดังนี้:
1、ตัวจัดลำดับได้รับธุรกรรมใหม่ เครื่องเสมือนจะอ่านรหัสไบต์ที่เกี่ยวข้องกับแต่ละธุรกรรม สร้างการติดตามการดำเนินการ และส่งไปยังผู้ประสานงาน ในขณะเดียวกัน ตัวจัดลำดับจะส่งข้อมูลธุรกรรมไปยังสัญญา Rollup
2、ลูกกลิ้งจะแปลงการติดตามการดำเนินการที่ได้รับจากผู้ประสานงานให้เป็นวงจร zkEVM แต่ละขั้นตอนในการติดตามการดำเนินการสอดคล้องกับวงจร zkEVM สำหรับฟังก์ชันที่ไม่เป็นมิตรกับ zk (เช่น แฮชและ Keccak) Scroll จะสร้างตารางการค้นหาเพื่อจับคู่อินพุตและเอาต์พุตของฟังก์ชันเหล่านี้ในการติดตามการดำเนินการกับตารางการค้นหา มีการใช้วงจรเพิ่มเติมเพื่อตรวจสอบความถูกต้องของตารางค้นหา จากนั้นโรลเลอร์จะสร้างการพิสูจน์สำหรับวงจร zkEVM เหล่านี้
3、หลังจากสร้างหลักฐานแล้ว โรลเลอร์จะส่งหลักฐานกลับไปยังผู้ประสานงาน ทุกๆ สองสามช่วงตึก ผู้ประสานงานจะสุ่มมอบหมายงานการรวมกลุ่มให้กับลูกกลิ้ง โรลเลอร์ที่ได้รับมอบหมายจะรวมการพิสูจน์สำหรับบล็อกหลาย ๆ บล็อกไว้เป็นหลักฐานเดียว
4、สุดท้าย ผู้ประสานงานส่งหลักฐานรวมไปยังสัญญา Rollup สัญญา Rollup ใช้หลักฐานนี้เพื่อตรวจสอบความถูกต้องของสถานะและข้อมูลธุรกรรมที่ส่งมาก่อนหน้านี้ ดังนั้นจึงยืนยันความถูกต้องของบล็อก
zkEVM ประกอบด้วยหลายวงจร แต่ละวงจรได้รับมอบหมายให้ตรวจสอบลักษณะเฉพาะของ EVM (Ethereum Virtual Machine) ในที่สุดวงจรเหล่านี้จะรวมกันหรือรวมเข้าด้วยกันเพื่อสร้างหลักฐานการทำธุรกรรม แผนภาพด้านล่างแสดงความสัมพันธ์ระหว่างวงจรเหล่านี้กับตาราง
มีวงจรย่อยที่มีขนาดเล็กกว่า เช่น วงจร ECDSA และวงจรย่อยที่เกี่ยวข้องกับ opcode ที่ไม่โต้ตอบกับตารางและวงจรอื่นในลักษณะที่ส่งผลต่อการรวมกันของวงจร วงจรย่อยเหล่านี้จะถูกละเว้นจากแผนภาพเพื่อความชัดเจน
วงจรอีวีเอ็ม
Ethereum Virtual Machine (EVM) เป็นเครื่องสถานะที่สร้างกฎสำหรับการเปลี่ยนสถานะที่ถูกต้องภายในโปรโตคอล Ethereum โดยจะดำเนินการตามคำสั่ง (opcodes) เพื่อให้เกิดการเปลี่ยนแปลงเหล่านี้ และสร้างการติดตามการดำเนินการ วัตถุประสงค์ของวงจร EVM คือการสร้างระบบข้อจำกัดที่แสดงถึงการติดตามการดำเนินการ และสามารถตรวจสอบได้โดยใช้ระบบพิสูจน์ความรู้แบบศูนย์
การออกแบบวงจร EVM ระดับสูงค่อนข้างคล้ายกับการออกแบบของ EVM เอง เช่นเดียวกับ go-ethereum ใน go-ethereum ตัวแปลจะวนซ้ำคำสั่ง opcodes ทั้งหมดบนการติดตามการดำเนินการ สำหรับแต่ละคำสั่ง ล่ามจะตรวจสอบข้อมูลบริบทที่เกี่ยวข้อง เช่น แก๊ส สแตก และหน่วยความจำ จากนั้นส่ง opcode ไปที่ JumpTable ซึ่งให้คำแนะนำโดยละเอียดสำหรับการดำเนินการ opcode
ในทำนองเดียวกัน ในวงจร EVM นั้น Scroll จะสร้างขั้นตอนการดำเนินการตามการติดตามการดำเนินการ และจัดเตรียมการพิสูจน์สำหรับ opcode และบริบทการดำเนินการ สำหรับแต่ละขั้นตอนการดำเนินการ จะมีการใช้ชุดข้อจำกัดเพื่อตรวจสอบข้อมูลเชิงบริบท สำหรับแต่ละ opcode จะมีการใช้ชุดข้อจำกัดเพื่อตรวจสอบพฤติกรรมของมัน ภายในการติดตามการดำเนินการ opcode เดียวกันควรมีข้อจำกัดเหมือนกัน Scroll ใช้ตัวเลือกเพื่อ "เปิด" ทุกขั้นตอนด้วย opcode เดียวกันในการติดตามการดำเนินการ และใช้ระบบพิสูจน์แบ็กเอนด์เพื่อพิสูจน์พฤติกรรม
สเตทเซอร์กิต
ในระหว่างการดำเนินการ การดำเนินการอ่านและเขียนทั้งหมดของ EVM จะถูกบันทึกไว้ใน rw_table และเรียงลำดับโดยตัวแปร rw_counter วัตถุประสงค์ของวงจรสถานะคือการสาธิตการสร้าง rw_table ที่แม่นยำ
วงจร MPT
Merkle Patricia Tree (MPT) เป็นโครงสร้างข้อมูลสำคัญที่ใช้ในเลเยอร์พื้นที่จัดเก็บข้อมูล Ethereum ใน zkevm-Circuits ของ Scroll นั้น MPT ได้รับการแก้ไขเป็น zkTrie ซึ่งโดยพื้นฐานแล้วคือ Merkle Patricia Trie ไบนารีแบบกระจัดกระจาย ใน zkevm-Circuits นั้น Scroll จะใช้ตาราง MPT เพื่อติดตามการเปลี่ยนแปลงสถานะของการดำเนินการ MPT ทีละขั้นตอน ตาราง MPT มีโครงร่างดังต่อไปนี้:
เป้าหมายของวงจร MPT คือการตรวจสอบความถูกต้องของตาราง MPT ที่กล่าวถึงข้างต้น ช่วยให้มั่นใจได้ว่าการอัปเดตแต่ละครั้งที่บันทึกไว้ในตาราง MPT จะส่งผลให้เกิดการเปลี่ยนแปลงที่ถูกต้อง ซึ่งหมายความว่าสำหรับการอัปเดตทุกครั้ง วงจร MPT รับประกันว่ามีเพียงวิธีเดียวเท่านั้นที่จะทำการเปลี่ยนแปลงได้ วิธีนี้จะป้องกันการดัดแปลงโดยไม่ได้ตั้งใจหรือไม่ได้รับอนุญาต และรับประกันความสมบูรณ์และความถูกต้องของ MPT โดยเฉพาะอย่างยิ่ง เมื่อ MPT มีการเปลี่ยนแปลงเนื่องจากการอัพเดตในบัญชีหรือการจัดเก็บ วงจร MPT จะต้องพิสูจน์ว่าการอัพเดตเหล่านี้ดำเนินการตามกฎที่ระบุ นอกจากนี้ จะต้องแสดงให้เห็นว่าแฮชรูทสะท้อนผลลัพธ์ของการเปลี่ยนแปลงทั้งหมดอย่างแม่นยำ
เค็คคักเซอร์กิต
Scroll ได้นำ Keccak256 เวอร์ชันของตัวเองไปใช้ ตามข้อกำหนดของ NIST Keccak และข้อกำหนดของทีม Keccak
และใช้วงจร Keccak เพื่อพิสูจน์ความถูกต้องของการทำงานของ Keccak256 การใช้งานวงจรนี้มีความซับซ้อน สาเหตุหลักมาจากอัลกอริธึม keccak256 เองนั้นไม่เป็นมิตรต่อ zk
วงจรเท็กซัส
วงจร Tx มีข้อจำกัดในการตรวจสอบความถูกต้องของธุรกรรม โดยจะตรวจสอบด้านต่อไปนี้ของธุรกรรมเป็นหลัก:
ความถูกต้องของ CallDataLength และ CallDataGasCost สะสม: กำหนดเกตที่กำหนดเองและค้นหาไบต์ข้อมูลการโทรแถวสุดท้ายในตาราง tx
ความถูกต้องของข้อมูลที่เกี่ยวข้องกับ TxSign และ TxHash: ค้นหาตาราง RLP และตาราง Keccak
พิสูจน์ความถูกต้องของ “ถ้า tx_type เป็น L1Msg แล้ว msg_hash”: ตรวจสอบโดยการค้นหาตาราง RLP
ดำเนินการลายเซ็น tx อย่างถูกต้องโดยใช้ ECDSA และกู้คืนที่อยู่ของผู้โทรอย่างถูกต้องจากลายเซ็น ECDSA: ตรวจสอบโดยการค้นหาตาราง sig;
พฤติกรรมการเปลี่ยนผ่านที่ถูกต้องของ tx id, cum_num_txs และ call_data_length
ข้อจำกัดพื้นฐานบางประการ เช่น ค่าบูลีนของตัวแปรตัวบ่งชี้บางตัว
วงจรไบต์โค้ด
วงจร EVM จำเป็นต้องค้นหาตารางรหัสไบต์ที่มีข้อมูลรหัสไบต์ที่ถูกต้อง เพื่อให้แน่ใจว่าไบต์ที่จัดเก็บไว้ในสัญญาตรงกับไบต์ที่โหลดจากตาราง วัตถุประสงค์ของวงจร bytecode คือเพื่อบังคับใช้ความถูกต้องของตาราง bytecode ซึ่งรวมถึง:
ข้อจำกัดที่เกี่ยวข้องกับพฤติกรรมขอบเขตด้วยแท็ก (แท็ก): ข้อจำกัดในบรรทัดแรกและบรรทัดสุดท้าย การแปลงจากแท็ก == ไบต์เป็นส่วนหัวและในทางกลับกัน การแปลงจากส่วนหัวเป็นส่วนหัว
ข้อจำกัดเกี่ยวกับขนาดโค้ด: รวมถึงการคำนวณความยาวของโค้ดไบต์ผ่านข้อจำกัดของดัชนีของไบต์สุดท้ายของโค้ดไบต์
ข้อจำกัดของโค้ดแฮช: จำกัดพฤติกรรม RLC ของไบต์ในโค้ดแฮชอย่างถูกต้อง และตรวจสอบโค้ดแฮชโดยการค้นหาตาราง Keccak
ตรวจสอบความถูกต้องของพฤติกรรม PUSH: is_code = push_data_left == 0 (ต้องเป็นค่าบูลีน) และตรวจสอบขนาดของข้อมูลที่พุชสำหรับ PUSH1-PUSH32 โดยค้นหา push_table;
ตรวจสอบให้แน่ใจว่ามีการเผยแพร่ที่ถูกต้องในแต่ละบรรทัดของโค้ดไบต์
เชนต่างๆ มีฟังก์ชันโมดูลธุรกิจแบบกำหนดเอง ซึ่งโดยปกติจะแก้ไขสัญญาและ opcode ที่คอมไพล์แล้วใน EVM หนึ่งในนั้นคือ Scroll zkEVM เป็นโซลูชันการปรับขนาดเลเยอร์ที่สองโดยอิงจากการพิสูจน์ความรู้แบบไม่มีศูนย์ โซลูชันนี้จะสร้าง opcode ที่เกี่ยวข้องขึ้นใหม่โดยใช้วงจร และสร้างการพิสูจน์ตามการติดตามการดำเนินการ การใช้งานที่ซับซ้อนนี้เพิ่มความยากในการตรวจสอบอย่างมาก หลังจากการประเมินโดยผู้เชี่ยวชาญด้านความปลอดภัยของ Beosin การตรวจสอบความปลอดภัยของ zkEVM จะมุ่งเน้นไปที่ประเด็นต่อไปนี้เป็นหลัก:
GAS:เมื่อสร้างการพิสูจน์สำหรับการติดตามการดำเนินการของวงจร zkEVM จะตรวจสอบความถูกต้องของปริมาณการใช้ก๊าซสำหรับธุรกรรมด้วย หากมีการใช้ตัวแปรอิสระที่ไม่มีข้อจำกัดบ่อยครั้งในวงจรการใช้งานของ opcode อาจส่งผลให้เกิดความล้มเหลวในการสร้างการพิสูจน์หรือข้อผิดพลาดที่ไม่ทราบอื่นๆ
ความปลอดภัยของหน่วยความจำ: วงจร zkEVM บางวงจรจะขึ้นอยู่กับข้อผูกพันพหุนาม เช่น ข้อผูกพัน KZG ที่ใช้โดย Scroll อย่างไรก็ตาม การคำนวณพหุนามไม่ได้จัดตำแหน่งโดยอัตโนมัติ ดังนั้นหากวงจรไม่มีข้อจำกัด อาจส่งผลให้ช่วงค่าไม่สอดคล้องกับช่วงไบต์ในโปรแกรมคอมพิวเตอร์ ในบางกรณี เมื่อผู้พัฒนาตามสัญญาเปิดใช้งานการเพิ่มประสิทธิภาพก๊าซ การจัดเรียงข้อมูลที่กะทัดรัดอาจนำไปสู่ปัญหาด้านความปลอดภัยของหน่วยความจำ เช่น พหุนามคงที่ BYTE_C4096 ใน Polygon zkEVM พหุนามอนุญาตให้ค่าพารามิเตอร์เกินช่วงค่าไบต์สูงสุดที่ 255 ซึ่งอาจเปิดใช้งานซีเควนเซอร์ที่เป็นอันตรายเพื่อจัดการพารามิเตอร์เพื่อหากำไรในบางแพลตฟอร์มการแลกเปลี่ยนที่ใช้โมเดล AMM โดยพื้นฐานแล้ว ช่องโหว่ประเภทนี้เกิดขึ้นจากความไม่สอดคล้องกันระหว่างช่วงความถูกต้องเชิงตัวเลขที่แสดงโดยวงจรและช่วงค่าตัวแปรของโปรแกรม ตัวอย่างคือช่องโหว่ CVE-2023-33252 ที่ค้นพบโดยนักวิจัยด้านความปลอดภัยของ Beosin ในไลบรารี Snarkjs
ความปลอดภัยของ Opcode: เมื่อใช้ opcode zkEVM จะมีปัญหาด้านความปลอดภัยทั่วไป โดยเฉพาะอย่างยิ่งเกี่ยวกับความแม่นยำ ตัวอย่างเช่น เมื่อเปรียบเทียบตัวเลขสองตัวในวงจรพื้นฐาน ถ้าความแม่นยำของการดำเนินการเปรียบเทียบในโปรแกรมคือ 1 ไบต์ ข้อจำกัดของวงจรจำเป็นต้องระบุช่วงค่า มิฉะนั้นความแม่นยำของการทำงานในวงจรจะเกินความแม่นยำของโปรแกรมส่งผลให้ผลลัพธ์ไม่ถูกต้อง
รองรับ EIP ที่ปลอดภัย: รองรับ EIP ที่เน้นความปลอดภัย เช่น EIP-2 และ EIP-155
ปัญหาการรวมศูนย์ใน Sequencer: ในปัจจุบัน การพิสูจน์ทั้งหมดที่สร้างโดย Scroll ขึ้นอยู่กับการติดตามการดำเนินการที่สร้างโดย Sequencer หาก Sequencer ทำงานที่เป็นอันตราย zkEVM จะไม่สามารถรับประกันความปลอดภัยของทรัพย์สินของผู้ใช้ได้
ปัญหาความเข้ากันได้: zkEVM สร้างการพิสูจน์วงจรตามการติดตามการดำเนินการและตรวจสอบในสัญญา แม้แต่การอัพเกรดเล็กน้อยใน Sequencer ก็อาจส่งผลให้เกิดความแตกต่างอย่างมีนัยสำคัญในการติดตามการดำเนินการที่สร้างขึ้นในระดับภาษาพื้นฐาน
ปัจจุบัน Scroll ใช้ระบบพิสูจน์ Halo2 เวอร์ชัน KZG สองชั้น โดยใช้การเร่งด้วยฮาร์ดแวร์ GPU เพื่อเร่งการสร้างหลักฐาน ปัญหาคอขวดได้เปลี่ยนไปสู่การสร้างพยานและการจำลองข้อมูล นอกจากนี้ ระดับการรวมศูนย์และต้นทุนการดำเนินงานด้านฮาร์ดแวร์ของ Roller ยังเป็นแง่มุมที่ Scroll ต้องพิจารณาสำหรับการพัฒนาระบบพิสูจน์อักษรแบบหลายขั้นตอนในอนาคต
เนื่องจากการติดตามการดำเนินการ EVM มีการเปลี่ยนแปลงแบบไดนามิก จึงมีข้อจำกัดและขนาดของวงจรที่หลากหลาย ในปัจจุบัน เพื่อรองรับการติดตามการดำเนินการที่เปลี่ยนแปลงแบบไดนามิก แต่ละขั้นตอนของการติดตามการดำเนินการจำเป็นต้องเป็นไปตามขนาดวงจรที่ใหญ่ที่สุด ส่งผลให้สูญเสียหน่วยความจำเพิ่มเติม
ปัจจุบัน Scroll's Roller คาดว่าจะได้กำไรจากค่าธรรมเนียมการทำธุรกรรมเครือข่าย อย่างไรก็ตาม จำนวนผู้ใช้ปัจจุบันและค่าธรรมเนียมการทำธุรกรรมในเครือข่าย Scroll ไม่สามารถครอบคลุมต้นทุนการดำเนินงานของ Roller และซีเควนเซอร์ได้ ในอนาคต วิธีที่เครือข่าย Scroll มอบแรงจูงใจทางเศรษฐกิจเพื่อดึงดูดผู้ใช้และรักษาการทำงานของเครือข่ายให้มีเสถียรภาพเป็นคำถามที่ต้องพิจารณา
ปัจจุบัน Beosin ยังสนับสนุนการตรวจสอบโครงการ zk ด้วย สำหรับการวิจัยความปลอดภัยแบบฮาร์ดคอร์บน zk คุณสามารถอ่านบทความต่อไปนี้: 1. การโจมตีความอ่อนไหวของธุรกรรมของ Groth16 Proof; 2. สำรวจเจาะลึก Tornado Cash เพื่อเปิดเผยการโจมตีแบบอ่อนตัวในโครงการ ZKP
Beosin ในฐานะบริษัทรักษาความปลอดภัยบล็อคเชนชั้นนำระดับโลก ได้ก่อตั้งสาขาในกว่า 10 ประเทศและภูมิภาคทั่วโลก บริการของเราครอบคลุมการตรวจสอบความปลอดภัยของโค้ดก่อนเปิดตัวโครงการ การตรวจสอบความเสี่ยงด้านความปลอดภัย การเตือนล่วงหน้าและการป้องกันในระหว่างการดำเนินโครงการ การกู้คืนสินทรัพย์สำหรับสกุลเงินเสมือนที่ถูกขโมย และบริการการปฏิบัติตามข้อกำหนดที่ปลอดภัย เช่น KYT/AML เรามอบโซลูชั่นแบบครบวงจรสำหรับผลิตภัณฑ์และบริการด้านความปลอดภัยบล็อคเชน ปัจจุบัน เราได้ให้บริการเทคโนโลยีความปลอดภัยแก่องค์กรบล็อกเชนมากกว่า 3,000 แห่งทั่วโลก และตรวจสอบสัญญาอัจฉริยะมากกว่า 3,000 สัญญา อย่าลังเลที่จะติดต่อเรา