Friday, June 27, 2025
Homeอีเธอเรียมสายวิจัยไร้สัญชาติ: reGenesis Version

สายวิจัยไร้สัญชาติ: reGenesis Version


สัปดาห์นี้เราจะทบทวน เทคทรี เพื่อสะท้อนถึงเหตุการณ์สำคัญใหม่ๆ ที่เกิดขึ้นกับการวิจัยและพัฒนา Ethereum 1.x ซึ่งยังไม่บรรลุผลสำเร็จอย่างสมบูรณ์สำหรับ Stateless Ethereum แต่สามารถบรรลุผลสำเร็จได้อย่างสมเหตุสมผลมากขึ้นในระยะกลาง ส่วนเสริมที่สำคัญที่สุดในสายวิจัยคือข้อเสนอการสร้างใหม่ของ Alexey นี่ยังห่างไกลจากการอัปเกรดที่มีการระบุอย่างชัดเจน แต่ความรู้สึกโดยทั่วไปจากฝ่าย R&D ก็คือ reGenesis นำเสนอขั้นตอนที่น่าทึ่งน้อยกว่าแต่บรรลุได้ง่ายกว่ามาก ไปสู่เป้าหมายสูงสุดของวิสัยทัศน์ “ไร้สัญชาติโดยสมบูรณ์” ในหลาย ๆ ด้านที่เสริมให้กับ reGenesis คือเครือข่ายสถานะคงที่ซึ่งจะช่วยกระจายสแน็ปช็อตสถานะและข้อมูลประวัติลูกโซ่ในเครือข่ายที่ใช้ DHT แบบบิตทอร์เรนต์ ในเวลาเดียวกัน การปรับปรุงในระยะสั้น เช่น การรวมโค้ดและการแทนสถานะแบบไบนารี่ trie กำลังเข้าใกล้ความพร้อมของ EIP มากขึ้นเรื่อยๆ ด้านล่างนี้ ฉันจะอธิบายและชี้แจงการเปลี่ยนแปลงที่เกิดขึ้น และลิงก์ไปยังการสนทนาที่เกี่ยวข้อง หากคุณต้องการเจาะลึกเกี่ยวกับคุณลักษณะเฉพาะใดๆ

Tech_Tree_อัปเดตแล้ว

ไบนารีทรี

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

รูปแบบไบนารี Trie

แนวคิดทั่วไปของ binary trie นั้นง่ายกว่าเล็กน้อย (ตั้งใจไว้ว่า :)) กว่าโครงสร้าง trie เลขฐานสิบหกของ Ethereum ในปัจจุบัน แทนที่จะมีหนึ่งใน 16 เส้นทางที่เป็นไปได้ที่จะเดินจากรากของ Trie ลงไปยังโหนดลูก ไบนารี่ Trie มี 2 เส้นทาง ด้วยข้อกำหนดใหม่ที่สมบูรณ์ของ State Trie ทำให้เกิดโอกาสเพิ่มเติมในการปรับปรุงตามความไร้ประสิทธิภาพที่ได้รับการยอมรับอย่างดีที่ได้ ตอนนี้รู้แล้วว่า Ethereum เปิดให้บริการมานานกว่า 5 ปีแล้ว โดยเฉพาะอย่างยิ่ง อาจเป็นโอกาสที่จะทำให้รัฐคล้อยตามความท้าทายด้านประสิทธิภาพในโลกแห่งความเป็นจริงของการเข้ารหัสฐานข้อมูลได้มากขึ้น (ตามที่ระบุไว้ใน บทความก่อนหน้าเกี่ยวกับการเติบโตของรัฐ

คุณสามารถดูการอภิปรายเกี่ยวกับข้อกำหนดเฉพาะของไบนารี่อย่างเป็นทางการและกฎการผสานได้ เกี่ยวกับการวิจัยทางจริยธรรม

การเปลี่ยนไบนารี Trie

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

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

โค้ด Merkleization

รหัสสัญญาอัจฉริยะเป็นส่วนสำคัญของการทดลองสถานะ Ethereum (ประมาณ 1 GB ของสถานะ ~ 50GB) พยานในการโต้ตอบกับสัญญาอัจฉริยะจำเป็นต้องระบุรหัสที่โต้ตอบด้วยเพื่อคำนวณ รหัสHashและนั่นอาจเป็นข้อมูลพิเศษที่ค่อนข้างมาก Code Merkleization เป็นวิธีการแบ่งรหัสสัญญาออกเป็นส่วนเล็กๆ แล้วแทนที่ รหัสHash ด้วยรากของ Merkle Trie อีกอันหนึ่ง การทำเช่นนี้จะช่วยให้พยานสามารถแทนที่โค้ดสัญญาอัจฉริยะส่วนใหญ่ที่อาจเป็นไปได้ด้วยแฮชอ้างอิง ซึ่งช่วยขจัดข้อมูลพยานที่สำคัญจำนวนกิโลไบต์ออกไป

มีแนวทางสองสามวิธีในการเขียนโค้ดแบบแผน Merkleization ซึ่งมีตั้งแต่การแบ่งส่วนในระดับสากล (เช่น เป็นชิ้นขนาด 64 ไบต์) ในด้านง่ายไปจนถึงวิธีที่ซับซ้อนมากขึ้น เช่น การวิเคราะห์แบบคงที่โดยยึดตาม Solidity’s รหัสฟังก์ชัน หรือ กระโดดที่สุด คำแนะนำ. กลยุทธ์ที่เหมาะสมที่สุดสำหรับการรวมโค้ดในท้ายที่สุดจะขึ้นอยู่กับสิ่งที่ดูเหมือนว่าจะทำงานได้ดีที่สุดกับข้อมูลจริงที่รวบรวมจาก mainnet

การเกิดใหม่

สถานที่ที่ดีที่สุดในการจัดการข้อเสนอ ReGenesis คือ คำอธิบายนี้โดย @mandrigin หรือ ข้อเสนอฉบับเต็มโดย @realLedgerwatchแต่ TL; DR คือ reGenesis โดยพื้นฐานแล้วคือ “การทำความสะอาดสปริงสำหรับ blockchain” สถานะเต็มจะถูกแบ่งตามแนวคิดเป็นสถานะ ‘ใช้งานอยู่’ และ ‘ไม่ใช้งาน’ เป็นระยะๆ สถานะ ‘ใช้งาน’ ทั้งหมดจะถูกปิดใช้งาน และธุรกรรมใหม่จะเริ่มสร้างสถานะใช้งานอีกครั้งจาก เกือบ ไม่มีอะไร (เพราะฉะนั้นชื่อ “reGenesis”) หากธุรกรรมต้องการส่วนเก่าของรัฐ มันจะให้พยานที่คล้ายกันมากกับสิ่งที่จำเป็นสำหรับ Stateless Ethereum: หลักฐานจาก Merkle ที่พิสูจน์ว่าการเปลี่ยนแปลงสถานะสอดคล้องกับสถานะที่ไม่ได้ใช้งานบางส่วน หากธุรกรรมแตะส่วนที่ ‘ไม่ได้ใช้งาน’ ของสถานะ ธุรกรรมนั้นจะยกระดับเป็น ‘ใช้งานอยู่’ โดยอัตโนมัติ (ไม่ว่าธุรกรรมจะสำเร็จหรือไม่ก็ตาม) โดยจะคงอยู่จนกระทั่งเหตุการณ์การสร้างใหม่ครั้งถัดไป นี่เป็นคุณสมบัติที่ดีในการสร้างขอบเขตทางเศรษฐกิจบางประการในการใช้งานของรัฐที่ค่าเช่าของรัฐมีโดยไม่ต้องลบรัฐใด ๆ จริง ๆ และอนุญาตให้ผู้ส่งธุรกรรมไม่สามารถสร้างพยานให้พยายามทำธุรกรรมต่อไปแบบสุ่มสี่สุ่มห้าจนกว่าทุกสิ่งที่สัมผัสจะ ‘ใช้งานอยู่’ อีกครั้ง .

ส่วนที่สนุกเกี่ยวกับ reGenesis คือการทำให้ Ethereum เข้าใกล้เป้าหมายสูงสุดของไร้สัญชาติมากขึ้น แต่จะก้าวข้ามความท้าทายที่ใหญ่ที่สุดบางประการเกี่ยวกับการไร้สัญชาติ กล่าวคือ วิธีการทำงานของบัญชีก๊าซพยานในระหว่างการดำเนินการ EVM นอกจากนี้ยังได้รับพยานการทำธุรกรรมบางเวอร์ชันที่เคลื่อนไหวไปรอบๆ เครือข่าย ช่วยให้ลูกค้าที่เบากว่าและเบากว่า และโอกาสมากขึ้นสำหรับนักพัฒนา dapp ในการทำความคุ้นเคยกับกระบวนทัศน์ไร้สัญชาติและเป็นพยานในการผลิต การไร้สัญชาติ “ที่แท้จริง” หลังจากการสร้างใหม่จะเป็นเรื่องของระดับ: Stateless Ethereum จริงๆ แล้วเป็นเพียงการสร้างใหม่หลังจากแต่ละบล็อก

เครือข่ายของรัฐ

โปรโตคอลเครือข่ายที่ดีกว่านั้นเป็น ‘ภารกิจด้านข้าง’ บนสายวิจัยตั้งแต่เริ่มต้น แต่ด้วยการเพิ่มการสร้างใหม่ให้กับขอบเขตของ Stateless Ethereum การค้นหาเครือข่ายทางเลือกดั้งเดิมสำหรับการแบ่งปันข้อมูลห่วงโซ่ Ethereum (รวมถึงสถานะ) ในตอนนี้ดูเหมือนจะเหมาะสมแล้ว เข้าสู่ภารกิจหลักได้ดีขึ้นมาก โปรโตคอลเครือข่ายปัจจุบันของ Ethereum เป็นแบบโมโนลิธ ซึ่งในความเป็นจริงแล้ว มีข้อมูลหลายประเภทที่แตกต่างกันซึ่งสามารถแบ่งปันได้โดยใช้ ‘เครือข่ายย่อย’ ที่แตกต่างกันซึ่งปรับให้เหมาะกับสิ่งต่างๆ ที่แตกต่างกัน

สามเครือข่าย

เมื่อก่อนนี้ได้มีการพูดถึงกันว่า “Three Networks” ในการโทรไร้สัญชาติก่อนหน้านี้ด้วย ที่ใช้ DHT เครือข่ายสามารถให้บริการข้อมูลบางส่วนได้อย่างมีประสิทธิภาพมากขึ้น ไม่เปลี่ยนแปลงไปชั่วขณะ– ด้วยการเปิดตัว reGenesis สถานะ ‘ไม่ใช้งาน’ จะพอดีกับหมวดหมู่ของข้อมูลที่ไม่มีการเปลี่ยนแปลง และในทางทฤษฎีสามารถให้บริการโดยเครือข่ายการจับกลุ่มสไตล์บิตทอร์เรนต์ แทนที่จะเป็นทีละชิ้นจากไคลเอ็นต์ที่ซิงค์อย่างสมบูรณ์ดังที่ดำเนินการอยู่ในปัจจุบัน

เครือข่ายที่ส่งผ่านสถานะที่ไม่เปลี่ยนแปลงเนื่องจากเหตุการณ์ reGenesis ครั้งล่าสุดจะเป็น เครือข่ายสถานะคงที่และสามารถสร้างได้ด้วยการต่อเติมใหม่ ข้อมูลจำเพาะ Discovery v5.1 ในไลบรารี devp2p (โปรโตคอลเครือข่ายของ Ethereum) ข้อเสนอก่อนหน้าเช่น ซิงค์ม้าหมุน และ (เป็นผู้ใหญ่มากขึ้น) โปรโตคอล SNAP สำหรับการซิงค์ คล่องแคล่ว รัฐยังคงเป็นก้าวที่มีคุณค่าไปสู่การกระจายตัวอย่างเต็มที่ เครือข่ายสถานะแบบไดนามิก สำหรับไคลเอนต์ที่พยายามซิงค์สถานะเต็มอย่างรวดเร็ว

ห่อขึ้น

เวอร์ชันทางเทคนิคที่กระชับยิ่งขึ้นของทุก Leaf ในผังวิทยาการไร้สัญชาติ (ไม่ใช่เฉพาะเวอร์ชันที่อัปเดต) มีให้ใช้งานแล้ว repo ข้อมูลจำเพาะของ Stateless Ethereumและการสนทนาอย่างแข็งขันในหัวข้อทั้งหมดที่กล่าวถึงในที่นี้อยู่ใน Discord ของ Eth1x/2 R&D – โปรดขอคำเชิญบน ethresear.ch หากคุณต้องการเข้าร่วม เช่นเคย ทวีต @gichiba หรือ @JHancock เพื่อขอคำติชม คำถาม และข้อเสนอแนะสำหรับหัวข้อใหม่ๆ

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

ความเห็นล่าสุด