ETH 1.X: แนวคิดใหม่ของ Ethereum ไร้สัญชาติ "REGENESIS"
ที่มา |Ethereum Blog
ผู้แต่ง | กริฟฟิน อิจิบะ ฮอตช์คิส
ชื่อระดับแรก
Eth 1.x: แนวคิดใหม่ของ Ethereum ไร้สัญชาติ "reGenesis"สัปดาห์นี้เราจะเป็นสายวิจัย
อัปเดตเพื่อเพิ่มเหตุการณ์สำคัญใหม่สำหรับการพัฒนา Ethereum 1.x เหตุการณ์สำคัญเหล่านี้ไม่ถือว่าเป็นการใช้งาน Stateless Ethereum อย่างเต็มรูปแบบ แต่เป็นเป้าหมายที่เราสามารถบรรลุได้อย่างสมเหตุสมผลในระยะกลาง
ในขณะเดียวกัน เป้าหมายบางอย่างที่ค่อนข้างใกล้เคียงกับเราก็กำลังเตรียมพร้อมสำหรับ EIP เช่น การแบ่งโค้ด (โค้ด Merkleization) และสเตตไบนารีทรี ในบทความนี้ ผมจะอธิบายความคืบหน้าที่ประสบความสำเร็จ พร้อมแนบลิงก์เพื่อให้ผู้อ่านสามารถเจาะลึกลงไปในประเด็นที่สนใจได้
ชื่อระดับแรก
ต้นไม้ไบนารีปัจจุบัน Ethereum ใช้ส้อมสิบหกอันต้นไม้แพทริเซีย แมร์เคิล
ในการเข้ารหัสสถานะ แต่การแปลงเป็นไบนารีจะนำมาซึ่งการปรับปรุงประสิทธิภาพที่สำคัญ โดยเฉพาะอย่างยิ่งในแง่ของขนาดพยาน การบันทึกสถานะของ Ethereum อย่างสมบูรณ์จำเป็นต้องมีการพัฒนากระบวนทัศน์ใหม่ เช่นเดียวกับกลยุทธ์การเปลี่ยนแปลงที่ชัดเจน สุดท้าย จำเป็นต้องตัดสินใจว่าจะรวมรหัสสัญญาอัจฉริยะและรวมกระบวนการนี้ไว้ในการเปลี่ยนไบนารีทรีหรือเป็นการอัปเดตแบบสแตนด์อโลน
กระบวนทัศน์ต้นไม้ไบนารีแนวคิดของต้นไม้ไบนารีนั้นง่ายกว่าโครงสร้างต้นไม้ฐานสิบหกในปัจจุบันเล็กน้อย ต้นไม้เลขฐานสิบหกมีเส้นทางที่เป็นไปได้สิบหกเส้นทางในการสำรวจจากรูทไปยังโหนดลูก ในขณะที่ไบนารีทรีมีเพียงสองเส้นทาง ด้วยการทำให้ต้นไม้สถานะเป็นปกติ เรามีโอกาสแก้ไขความไร้ประสิทธิภาพที่มีนัยสำคัญในระยะเวลาห้าปีของ Ethereum นอกจากนี้ เรามีโอกาสที่จะทำให้รัฐปรับตัวเข้ากับความท้าทายด้านประสิทธิภาพของการเข้ารหัสฐานข้อมูลในโลกแห่งความเป็นจริงได้มากขึ้น (ในบทความก่อนหน้านี้ การเติบโตของรัฐ
กล่าวถึงใน).ethresearch.
สามารถดูการอภิปรายเกี่ยวกับข้อมูลจำเพาะของไบนารีทรีที่เป็นทางการและกฎการแบ่งย่อยได้ที่
เปลี่ยนเป็นไบนารีทรี
ไม่ใช่แค่ปลายทางของกระบวนทัศน์ไบนารีทรีเท่านั้นที่สำคัญ การเดินทางเองก็มีคุณค่าเช่นกัน! ในการเปลี่ยนแปลงที่เหมาะสม จะไม่มีการหยุดชะงักในการประมวลผลธุรกรรมของเครือข่าย หมายความว่าลูกค้าจะต้องสร้างไบนารีทรีใหม่ในขณะที่ประมวลผลบล็อกใหม่ที่ปรากฏทุก ๆ สิบห้าวินาทีกลยุทธ์การเปลี่ยนผ่านที่ดูมีแนวโน้มดีที่สุดในขณะนี้เรียกว่าวิธีการ "แทนที่"
ซึ่งเป็นส่วนหนึ่งของโปรโตคอลการซิงโครไนซ์สแน็ปช็อตใหม่ของ geth โดยทั่วไป การเปลี่ยนแปลงสถานะใหม่จะถูกเพิ่มให้กับเลขฐานสิบหกที่มีอยู่ในกระบวนทัศน์แบบไบนารี ซึ่งหมายความว่าจะมีการผสมผสานระหว่างเลขฐานสองและเลขฐานสิบหกในระหว่างการเปลี่ยน สถานะที่ไม่ได้รับผลกระทบจะเปลี่ยนเป็นการประมวลผลเบื้องหลัง เมื่อแปลงแล้ว เลเยอร์ทั้งสองจะรวมเป็นไบนารีทรีเดียว
สิ่งสำคัญคือต้องทราบว่าความหลากหลายของไคลเอ็นต์มีบทบาทสำคัญมากในกระบวนการแปลไบนารี ไคลเอนต์แต่ละรายจะต้องใช้การเปลี่ยนแปลงในเวอร์ชันของตัวเอง หรือพึ่งพาไคลเอ็นต์รายอื่นเพื่อทำการเปลี่ยน จากนั้นจึงรอแผนผังใหม่ในอีกด้านหนึ่ง
สิ่งนี้ทำให้เราต้อง "คิดทบทวน" และลูกค้าทุกรายต้องทำงานร่วมกันเพื่อทดสอบและประสานงานการเปลี่ยนแปลง ด้วยเหตุผลด้านความปลอดภัย เป็นไปได้ว่าเครือข่ายจะต้องหยุดให้บริการชั่วคราวระหว่างการเปลี่ยนแปลง (เช่น การขุดบล็อกเปล่า) แต่ยังเร็วเกินไปที่จะตกลงในแผนการที่เป็นรูปธรรมใดๆ
การแบ่งรหัส
ต้นไม้สถานะ Ethereum ส่วนใหญ่ประกอบด้วยรหัสสัญญาอัจฉริยะซึ่งคิดเป็นประมาณ 1GB ของสถานะ 50GB พยานทั้งหมดสำหรับการโต้ตอบสัญญาอัจฉริยะต้องระบุรหัสของการโต้ตอบเพื่อคำนวณ codeHash ซึ่งอาจสร้างข้อมูลเพิ่มเติมจำนวนมาก
มีหลายวิธีในการแบ่งโค้ดออกเป็นส่วนๆ ตามความซับซ้อน วิธีที่ง่ายกว่าคือการแบ่งย่อยทั่วไป (เช่น ขนาดแต่ละก้อนคือ 64 ไบต์) ในขณะที่วิธีที่ซับซ้อนกว่าคือการวิเคราะห์แบบสแตติกตามคำสั่ง Solidity functionId หรือ JUMPDEST ในที่สุดกลยุทธ์การแบ่งโค้ดที่เหมาะสมที่สุดจะขึ้นอยู่กับว่ามันใช้ได้กับข้อมูลจริงที่รวบรวมจากเครือข่ายหลักหรือไม่
reGenesis
ข้อความคำอธิบายที่ได้รับจาก @mandriginเช่นเดียวกับเช่นเดียวกับข้อเสนอฉบับเต็มส่งโดย @realLedgerwatch
โดยสรุปแล้ว reGenesis สามารถพูดได้โดยทั่วไปว่าเป็น "การทำความสะอาดบล็อกเชนทั่วไป" สถานะเต็มจะถูกแบ่งออกเป็นสถานะ "ใช้งาน" และ "ไม่ใช้งาน" ตามแนวคิด สถานะ "ใช้งานอยู่" โดยรวมจะถูกปิดใช้งานเป็นระยะ และจากนั้นธุรกรรมใหม่จะถูกสร้างขึ้นเพื่อสร้างสถานะใช้งานใหม่เกือบจะตั้งแต่ต้น (ดังนั้นชื่อ "reGenesis")
หากธุรกรรมต้องการสถานะก่อนหน้า จะมีการจัดเตรียมพยาน เหมือนกับหลักฐานที่จำเป็นใน Ethereum ไร้สัญชาติ: หลักฐานของ Merkle ว่าการเปลี่ยนแปลงสถานะนั้นสอดคล้องกับสถานะที่ไม่ได้ใช้งานบางอย่าง หากธุรกรรมต้องการส่วนที่ "ไม่ใช้งาน" ของสถานะ ระบบจะเปลี่ยนเป็นสถานะ "ใช้งานอยู่" โดยอัตโนมัติ (ไม่ว่าธุรกรรมจะสำเร็จหรือไม่ก็ตาม) และส่วนนี้จะถูกปล่อยไว้จนกว่าจะเกิด reGenesis ครั้งต่อไป
ข้อดีอย่างหนึ่งของสิ่งนี้คือสร้างข้อจำกัดทางเศรษฐกิจในการใช้สถานะโดยไม่ต้องลบสถานะใดๆ ประการที่สอง หากผู้ส่งธุรกรรมสุ่มสี่สุ่มห้าพยายามทำธุรกรรมซ้ำ ๆ จะไม่สามารถสร้างพยานได้
เกี่ยวกับความสำคัญของ reGenesis มันทำให้ Ethereum ก้าวไปสู่เป้าหมายไร้สัญชาติขั้นสูงสุด และหลีกเลี่ยงความท้าทายที่ยิ่งใหญ่ที่สุดเพื่อให้บรรลุถึงการไร้สัญชาติ นั่นคือ วิธีการคำนวณก๊าซพยานในระหว่างการดำเนินการ EVM ในเวลาเดียวกัน มันยังช่วยให้พยานการทำธุรกรรมบางเวอร์ชันสามารถเผยแพร่ในเครือข่ายได้ ทำให้ลูกค้ารายย่อยและนักพัฒนา dapp มีโอกาสมากขึ้นในการทำความคุ้นเคยกับกระบวนทัศน์ไร้สัญชาติและการสร้างพยาน
การไร้สัญชาติ "ที่แท้จริง" หลังจาก reGenesis เป็นเรื่องของระดับ: Stateless Ethereum เป็นเพียง reGenesis หลังจากแต่ละบล็อก
เครือข่ายของรัฐ
จากจุดเริ่มต้น การเพิ่มประสิทธิภาพโปรโตคอลเครือข่ายเป็นเพียง "งานรอง" ในโครงสร้างเทคโนโลยี แต่เมื่อ reGenesis เข้าสู่อาณาเขตของ Ethereum ไร้สถานะ มันจึงกลายเป็นภารกิจสำคัญในการสำรวจทางเลือกดั้งเดิมของเครือข่ายสำหรับการแบ่งปันข้อมูลเชน Ethereum (รวมถึงสถานะ ). ภารกิจหลัก. โปรโตคอลเครือข่ายปัจจุบันของ Ethereum เป็นโปรโตคอลทั้งหมด แต่ในความเป็นจริงมีข้อมูลหลายประเภทที่สามารถแบ่งปันผ่าน "เครือข่ายย่อย" ที่แตกต่างกัน และ "เครือข่ายย่อย" เหล่านี้สามารถตอบสนองความต้องการที่แตกต่างกันได้เมื่อเราพูดถึงหัวข้อนี้ก่อนหน้านี้ในเซสชันไร้สัญชาติ เราเรียกมันว่า,“สามเครือข่าย”ตาม DHT
เครือข่ายสามารถให้บริการประเภทข้อมูลที่เปลี่ยนแปลงไม่บ่อยได้อย่างมีประสิทธิภาพมากขึ้น ด้วยการนำ reGenesis มาใช้ สถานะ "ไม่ใช้งาน" สามารถรวมอยู่ในข้อมูลที่เปลี่ยนแปลงไม่บ่อยประเภทนี้ได้ และในทางทฤษฎียังสามารถนำไปใช้กับเครือข่ายกลุ่มบิตสตรีม แทนที่จะเป็นการออกอากาศแบบหนึ่งต่อหนึ่งในปัจจุบันโดยโหนดเต็มเครือข่ายที่เผยแพร่สถานะที่ไม่แปรผันทั่วทั้งเครือข่ายตั้งแต่ reGenesis ครั้งล่าสุดเป็นเครือข่ายสถานะคงที่ ซึ่งสามารถตามข้อกำหนด Discovery v5.1 ใหม่ในไลบรารี devp2p (โปรโตคอลเครือข่าย Ethereum)
เพื่อยืดMerry-go-Round syncคล้ายกับก่อนหน้านี้SNAP protocolซึ่งสามารถใช้ในการซิงโครไนซ์สถานะที่ใช้งานอยู่ เป็นขั้นตอนสำคัญสู่เครือข่ายสถานะไดนามิกที่กระจายอย่างสมบูรณ์ ทำให้ไคลเอนต์สามารถซิงโครไนซ์สถานะสมบูรณ์ได้อย่างรวดเร็ว
บทส่งท้าย
บทส่งท้ายสำหรับรายละเอียดเพิ่มเติมและคำอธิบายทางเทคนิคของแต่ละสาขาของโครงสร้างเทคโนโลยี Ethereum ไร้สัญชาติ ผู้อ่านสามารถอ้างอิงได้หัวข้อทั้งหมดนี้สามารถพูดคุยได้ใน Eth1x/2 R&D Discord หากคุณต้องการเข้าร่วม คุณสามารถขอคำเชิญได้ที่ ethresear.ch สำหรับคำติชมและข้อเสนอแนะ โปรดติดต่อ @gichiba หรือ @JHancock บน Twitter
ข้อจำกัดความรับผิดชอบ: งานแปลของ ECN มีเป้าหมายเพื่อส่งมอบข้อมูลคุณภาพสูงและทรัพยากรการเรียนรู้สำหรับชุมชน Ethereum ของจีน ลิขสิทธิ์ของบทความเป็นของผู้เขียนต้นฉบับ การพิมพ์ซ้ำต้องระบุแหล่งที่มาของข้อความต้นฉบับและ ethereum.cn สำหรับระยะยาว พิมพ์ซ้ำ โปรดติดต่อ Authorize etheremcn@gmail.com


