BTC
ETH
HTX
SOL
BNB
ดูตลาด
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

สินค้าแห้ง | การกระจายตัวของ Ethereum: ภาพรวมและขั้นสุดท้าย

星球君的朋友们
Odaily资深作者
2018-06-25 02:02
บทความนี้มีประมาณ 4732 คำ การอ่านทั้งหมดใช้เวลาประมาณ 7 นาที
ภาพรวมการออกแบบของ Ethereum Sharding
สรุปโดย AI
ขยาย
ภาพรวมการออกแบบของ Ethereum Sharding

บทความนี้มาจาก:CSDNบทความนี้มาจาก:liuchengxu,แปลภาษา:

ลิงค์ต้นฉบับ:

ลิงค์ต้นฉบับ:https://medium.com/@icebearhww/ethereum-sharding-and-finality-65248951f649

มีอยู่Ethereum Casper 101มีอยู่

ปัญหาความสามารถในการปรับขนาดของ Blockchainsharding doc .

ปัญหาความสามารถในการปรับขนาดของ Blockchain


  • ปัญหาความสามารถในการปรับขนาดของ Blockchain

  • ธุรกรรมที่กำลังเติบโต

  • กระบวนการสร้างบล็อกในปัจจุบันส่งผลให้ความสามารถในการปรับขนาดมีจำกัด ขีดจำกัดก๊าซของบล็อกจำกัดความสามารถในการคำนวณของบล็อก การเพิ่มขีดจำกัดของบล็อกแก๊สหรือลดเวลาบล็อกลงอย่างมากจะส่งผลให้อัตราการค้างสูงและทำให้ความสามารถของเครือข่ายในการต่อต้านการโจมตีลดลง


ความเท่าเทียมกันไม่เพียงพอ ประการแรก EVM ที่มีอยู่จะประมวลผลธุรกรรมตามลำดับตามลำดับ ประการที่สอง เพื่อความปลอดภัยและการกระจายอำนาจ แต่ละโหนดแบบเต็มจะดำเนินการทุกธุรกรรมและจัดเก็บแผนผังสถานะทั้งหมด (หรือตัด)EIP 648 — Easy parallelizability

ระยะเวลา

ขั้นแรก มาดูความแตกต่างระหว่างอ็อบเจ็กต์ในระดับต่างๆ บนเมนเชน (คุณสามารถเข้าใจได้ว่าเป็นเชนเมนเน็ตปัจจุบัน) และเชนชาร์ด:

คำอธิบายภาพ

คิดง่ายๆ ว่าธุรกรรมจะถูกโหลดลงใน "การเรียง" คล้ายกับบล็อก การเรียงยังชี้ไปที่การเรียงพาเรนต์บนเชน (หมายถึงเชนชาร์ด) การเป็น "ผู้เรียง" หมายความว่าคุณมีสิทธิ์เสนอชื่อการเรียงใหม่บนเชนชาร์ด POS

คำอธิบายภาพ

ชาร์ดดิ้งรองขั้นพื้นฐาน

ฉันทามติของเชนเศษขึ้นอยู่กับเชนหลัก

ฉันทามติของเชนเศษขึ้นอยู่กับเชนหลัก


  • คล้ายกับ sidechain การเรียงชุดมีหลักฐานชุดเล็ก ๆ ที่ต้องบันทึกไว้ใน mainchain ซึ่งเป็นแนวคิดพื้นฐานของวิธีที่เราปรับขนาด blockchains:

  • ธุรกรรมบนชาร์ดเชนอยู่ในพื้นที่อิสระของตนเอง และผู้ตรวจสอบความถูกต้องของชาร์ดจำเป็นต้องตรวจสอบชาร์ดที่พวกเขาสนใจเท่านั้น


สัญญาผู้จัดการตรวจสอบความถูกต้อง (VMC)

สัญญาผู้จัดการตรวจสอบความถูกต้อง (VMC)


  • ในการเพิ่ม Shard Chain ให้กับ Main Chain จำเป็นต้องมีสัญญาพิเศษที่เรียกว่า Validator Manager Contract (VMC) บน Main Chain VMC เป็นแกนหลักของกลไกการแบ่งส่วนข้อมูลนี้ วัตถุประสงค์ของ VMC สามารถสรุปได้ดังนี้

  • ระบบพิสูจน์การเดิมพัน หากผู้ตรวจสอบประพฤติตัวไม่เหมาะสม เงินเดิมพันของพวกเขาจะถูกเอารัดเอาเปรียบ

  • การสุ่มตัวอย่างหลอก ผู้เปรียบเทียบที่มีสิทธิ์จะถูกสุ่มตัวอย่างโดยใช้แฮชของบล็อกปัจจุบันเป็นเมล็ดพันธุ์ โดยทั่วไป ผู้ตรวจสอบความถูกต้องจะฝากเงินเดิมพันของตนลงใน VMC จากนั้นที่อยู่รหัสการตรวจสอบความถูกต้อง (ที่อยู่รหัสการตรวจสอบความถูกต้อง) จะถูกบันทึกในรายการกลุ่มผู้ตรวจสอบความถูกต้องส่วนกลางภายใน VMC (รายการกลุ่มผู้ตรวจสอบความถูกต้องส่วนกลาง) ระบบจะสุ่มตัวอย่างผู้รับรองชาร์ดเชนจากรายชื่อผู้รับรอง และกำหนดให้เป็นผู้รับรองชาร์ดที่ระบุภายใน "ระยะเวลา (ระยะเวลา ระยะเวลาคืออะไรจะอธิบายด้านล่าง)" วิธีการนี้ทำให้ผู้ตรวจสอบความถูกต้องไม่สามารถคาดการณ์ล่วงหน้าได้เมื่อพวกเขาจะกลายเป็นผู้ตรวจสอบความถูกต้องหรือชิ้นส่วนใดที่พวกเขาจะกลายเป็นผู้ตรวจสอบความถูกต้อง

  • การตรวจสอบความถูกต้องของส่วนหัวการเปรียบเทียบ VMC มีฟังก์ชัน addHeader(bytes collationHeader) ที่ตรวจสอบความถูกต้องของส่วนหัวของการเปรียบเทียบด้วย = และบันทึกแฮชของส่วนหัวของการเปรียบเทียบที่ถูกต้อง ฟังก์ชันนี้ให้การยืนยันออนไลน์แบบทันที

  • การสื่อสารข้ามชาร์ด การใช้โมเดล UTXO และโดยการทำธุรกรรมบนเชนหลักและสร้างใบเสร็จรับเงิน (พร้อม ID ใบเสร็จ) ผู้ใช้สามารถฝากอีเทอร์ไว้ในเศษที่กำหนดได้ ผู้ใช้ในห่วงโซ่การแบ่งส่วนสามารถสร้างธุรกรรมที่ใช้ใบเสร็จรับเงินด้วย ID ใบเสร็จที่กำหนดเพื่อใช้ใบเสร็จ


จะเสนอชื่อ Collation ภายใน Shard ได้อย่างไร?

จะเสนอชื่อ Collation ภายใน Shard ได้อย่างไร?

"ช่วงเวลา" ถูกกำหนดให้เป็นขอบเขตของกรอบเวลาของบล็อก เช่น PERIOD_LENGTH = 5 หมายถึง 5 บล็อกต่อช่วงเวลา ซึ่งหมายความว่าจะไม่มีการเรียงที่ถูกต้องมากกว่า 1 รายการต่อชาร์ดต่อยุค

คำอธิบายภาพ

เมื่อตัวตรวจสอบถูกสุ่มตัวอย่างเป็นผู้เรียงที่มีสิทธิ์เพื่อเสนอการเรียงใหม่ ผู้เรียงต้องตรวจสอบการเรียงล่าสุดและส่งธุรกรรมเพื่อเรียกใช้ฟังก์ชัน addHeader โปรดทราบว่าหากมีการสุ่มตัวอย่างรอบ collator 10 เพื่อส่งการเรียงใหม่ หมายความว่าธุรกรรม addHeader จะต้องรวมอยู่ในรอบ 10 นั่นคือ ธุรกรรมต้องอยู่ระหว่างบล็อกหมายเลข 10 * PERIOD_LENGTH ถึงบล็อกหมายเลข (10 + 1) * ระหว่าง PERIOD_LENGTH - 1

คำอธิบายภาพ

-รูปภาพที่ 2(b) สำหรับชิ้นหนึ่ง จุดหนึ่งๆ จะมีเพียงหนึ่งการเรียง บล็อกสามารถมีธุรกรรม addHeader หลายรายการของชิ้นส่วนที่แตกต่างกัน-

กฎการเลือกส้อมสำหรับโซ่เศษ

กฎการเลือกส้อมสำหรับโซ่เศษ

ในตัวอย่างในรูปที่ 3(a) มีส้อมสองอันบนโซ่หลัก และโซ่ที่สองในรูปด้านล่างคือโซ่หลักที่ยาวที่สุดที่ถูกต้อง เนื่องจากบล็อก B3 เป็นบล็อกส่วนหัว จึงเป็นเรื่องง่ายที่จะเห็นว่าการเรียง C3 เป็นการเรียงส่วนหัว

คำอธิบายภาพ

จากนั้นบล็อก B3' ในรูปที่ 3(b) ก็มาถึง สมมติว่าบล็อก B3 มีคะแนนสูงกว่าบล็อก B3' แสดงว่าเชนด้านบนยังคงเป็นเชนหลักที่ยาวที่สุด:

คำอธิบายภาพ

สุดท้าย รูปที่ 3(c) มาถึงบล็อก 4 โปรดทราบว่าสำหรับชิ้นส่วนนี้ แม้ว่าการเรียง C3 จะมีคะแนนสูงกว่าการเรียง C2 แต่สายล่างเป็นสายหลักที่มีประสิทธิผลที่ยาวที่สุด ดังนั้นตอนนี้การเรียง C2 จึงเป็นการเรียงส่วนหัว:

คำอธิบายภาพ

เพิ่มเติมเกี่ยวกับ: การออกแบบอื่น - ของ Vlad Zamfirsharded fork choice rule

คำอธิบายภาพ

- การออกแบบที่หรูหราที่รับประกันว่าบล็อกเชนสามารถถูกทำให้เป็นอะตอมได้ก่อนที่จะเสร็จสิ้น -

การแลกเปลี่ยนระหว่างความสามารถในการปรับขนาดและความปลอดภัย

— Blockchain Trilemma in Sharding FAQ

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

. ในขณะที่กระจายธุรกรรมไปยังเศษเพื่อเพิ่ม TPS (ธุรกรรมต่อวินาที) เรายังลดทรัพยากรการประมวลผลสำหรับแต่ละธุรกรรมด้วย


  • กลไกที่สำคัญอย่างหนึ่งของการแตกย่อยคือวิธีสร้างตัวเลขสุ่มบนห่วงโซ่

  • ความน่าจะเป็นของคอลเลเตอร์ที่ถูกเลือกควรเกี่ยวข้องและเป็นสัดส่วนกับเงินฝากของผู้ตรวจสอบเท่านั้น


หาก Validator สามารถคาดเดาหรือเลือกเศษส่วนที่พวกเขาต้องการเข้าร่วมได้ตามอำเภอใจ ผู้ตรวจสอบที่ไม่ซื่อสัตย์สามารถสมรู้ร่วมคิดซึ่งกันและกันและเริ่มการโจมตีแบบปรับเปลี่ยนได้ควบคุมการแบ่งส่วน.

-ภาพที่ 4 การโจมตีส่วนใหญ่แบบดั้งเดิม (การโจมตี 51%)-

คำอธิบายภาพ

-ภาพที่ 5. 1% โจมตีเศษชิ้นส่วน-

การสิ้นสุดโดยปริยาย vs การสิ้นสุดที่ชัดเจน

การสิ้นสุดโดยปริยาย vs การสิ้นสุดที่ชัดเจน

ก่อนอื่น ฉันต้องประกาศว่ากลไกการแบ่งส่วนควรจะสามารถนำไปใช้กับทั้งเครือข่าย POW และ POS ถึงอย่างนั้น สิ่งเล็ก ๆ น้อย ๆ ของการสิ้นสุดที่ชัดเจนอย่างแคสเปอร์ก็สามารถทำให้การแบ่งส่วนแข็งแกร่งขึ้นได้ในห่วงโซ่ POW ทั่วไป ความน่าจะเป็นสุดท้ายคือโดยนัยCasper the Friendly Finality Gadget (“FFG”). พูดง่ายๆ ก็คือ แม้ว่าบล็อกจะมีการยืนยันเป็นพันๆ ครั้ง แต่ก็ยังเป็นไปได้ที่จะเขียนเชนใหม่ ให้ใส่แทน

กลไกทางเศรษฐกิจของการเข้ารหัสถูกนำไปใช้กับ POS อย่างชัดเจนในโปรโตคอล (ในโปรโตคอล) เพื่อบังคับใช้การรับประกันว่าสรุปให้เราแล้วหรือไม่

ขั้นสุดท้ายของห่วงโซ่หลักขึ้นอยู่กับ

ขั้นสุดท้ายของห่วงโซ่หลักขึ้นอยู่กับ

ในการแยกย่อยพื้นฐาน โซ่ย่อยจะยึดกับโซ่หลัก

สำหรับ Shard Validator เราต้องการให้ Shards ขยายความจุของ Blockchain 100 เท่าในเฟส 1 ดังนั้น Validator ทั้งหมดของ 100 Shards เหล่านี้จะต้องตรวจสอบสถานะ VMC เพื่อให้ได้การเรียงส่วนหัวที่ถูกต้องและมีประสิทธิภาพ เป็นสิ่งสำคัญสำหรับผู้ตรวจสอบความถูกต้องที่จะต้องเชื่อมั่นโดยเร็วที่สุดว่าพวกเขาเป็นผู้รวบรวมหรือไม่ สำหรับผู้ใช้ทั่วไป หากเราใช้ธุรกรรมข้ามชาร์ดในเฟส 2 ผู้ใช้ทั่วไปจะต้องดึงข้อมูลเงินฝาก (รหัสใบเสร็จ) บน VMC ด้วย

ขั้นสุดท้ายที่ชัดเจนช่วยให้ลูกค้าไร้สัญชาติ

ขั้นสุดท้ายที่ชัดเจนช่วยให้ลูกค้าไร้สัญชาติหลักการพื้นฐานของไคลเอนต์ไร้สัญชาติคือจะไม่เก็บแผนผังสถานะทั้งหมด แต่ไคลเอนต์ไร้สัญชาติจะเก็บเฉพาะรูทของต้นไม้สถานะเท่านั้น ไคลเอ็นต์เก็บถาวรจัดเก็บแผนผังสถานะทั้งหมดและจัดเตรียมสาขา Merkle ที่จำเป็นสำหรับการเปรียบเทียบที่กำหนด ด้วยสาขาของ Merkle ลูกค้าไร้สัญชาติสามารถสร้างส่วนต่างๆ ของแผนผังสถานะและ 。

การซิงโครไนซ์จะทำงานทันทีที่ตัวตรวจสอบถูกสุ่มตัวอย่างและสับเปลี่ยน ด้วยกลไกไคลเอนต์ไร้สัญชาติ ค่าใช้จ่ายในการสับใหม่ (เช่น การเปลี่ยนชิ้นส่วนที่ตรวจพบโดยตัวตรวจสอบความถูกต้อง และการซิงโครไนซ์ห่วงโซ่ชิ้นส่วน) นั้นต่ำ (ใกล้เคียงกับ) ศูนย์ เนื่องจากพวกเขาต้องการเพียงแค่ตรวจสอบการเรียงล่าสุดเท่านั้น (เช่น มีการเรียงคะแนนสูงสุด ) เพื่อซิงโครไนซ์ชาร์ด

คำอธิบายภาพ

-รูปที่ 6. โมเดลไคลเอ็นต์ไร้สัญชาติ รูปที่ 6. โมเดลไคลเอ็นต์ไร้สัญชาติ-

เนื่องจากกระบวนการซิงโครไนซ์ทำได้รวดเร็วมาก โมเดลไคลเอ็นต์ไร้สถานะจึงสามารถสับเปลี่ยนระหว่างการเรียงแต่ละรายการได้ สิ่งนี้จะไม่เพียงลดแรงดันในการจัดเก็บและค่าใช้จ่าย แต่ยังทำให้ระบบมีความปลอดภัยมากขึ้น เนื่องจากการสุ่มตัวอย่างบ่อยครั้งสามารถต้านทานการโจมตีที่ปรับเปลี่ยนได้after about 2.5 “epoch times”Casper FFG จะให้เกณฑ์การสิ้นสุดที่ชัดเจน, นั่นคือ,125 บล็อกครั้ง

บทสรุป

บทสรุป

หวังว่าฉันจะได้แนะนำสั้น ๆ เกี่ยวกับแนวคิดปัจจุบันของการออกแบบการแบ่งส่วนย่อยของ Ethereum และการสิ้นสุดที่ชัดเจนจะเป็นประโยชน์ต่อกลไกการแบ่งส่วนอย่างไร สำหรับข้อมูลเชิงลึกเกี่ยวกับการออกแบบโปรโตคอล โปรดไปที่ETHResear.chและsharding doc

และ

หากมีข้อผิดพลาดหรือคำไม่ชัดเจนโปรดแก้ไขฉันด้วย!


ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk