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

Vitalik: การแยกส่วน + การสุ่มตัวอย่างความพร้อมใช้งานของข้อมูล

ECN以太坊中国
特邀专栏作者
บทความนี้มีประมาณ 6770 คำ การอ่านทั้งหมดใช้เวลาประมาณ 10 นาที
Ethereum 2.0 แก้ปัญหาความพร้อมใช้งานของข้อมูลได้อย่างไร
สรุปโดย AI
Ethereum 2.0 แก้ปัญหาความพร้อมใช้งานของข้อมูลได้อย่างไร

ผู้แต่ง | Vitalik Buterin

ผู้แต่ง | Vitalik Buterin"นอกจาก Proof of Stake แล้ว การเปลี่ยนแปลงที่สำคัญอีกอย่างหนึ่งในการออกแบบ eth2 คือการแบ่งส่วนย่อย ข้อเสนอนี้แนะนำรูปแบบการแบ่งกลุ่มที่จำกัด ซึ่งเรียกว่า "การแบ่งกลุ่มข้อมูล" โดยยึดตาม"แผนงานที่เน้นการหมุนเวียนเป็นศูนย์กลาง

เพื่อหลีกเลี่ยงภาระของโหนดในการดาวน์โหลดข้อมูลทั้งหมด เทคนิคทั้งสองนี้สามารถซ้อนทับกันเพื่อตรวจสอบความพร้อมใช้งานของข้อมูลจำนวนมาก: 1) การพิสูจน์โดยคณะกรรมการสุ่มตัวอย่าง 2) การสุ่มตัวอย่างความพร้อมใช้งานของข้อมูล (ความพร้อมใช้งานของข้อมูล การสุ่มตัวอย่าง, DAS) .

ชื่อระดับแรก

ภาษาถิ่น "คณะกรรมการสุ่มตัวอย่าง"

สมมติว่าคุณมีข้อมูลจำนวนมาก เช่น 16 MB นี่คือปริมาณที่เชน eth2 (อย่างน้อยในขั้นต้น) สามารถรองรับได้ต่อสล็อต เราแสดงข้อมูลนี้เป็น 64 blobs แต่ละขนาด 256 kB สมมติว่าเรามีระบบ PoS ที่มีตัวตรวจสอบประมาณ 6400 ตัว เราจะตรวจสอบข้อมูลนี้ได้อย่างไรโดยไม่ต้อง 1) กำหนดให้ใครก็ตามดาวน์โหลดข้อมูลทั้งหมด และ 2) ไม่เปิดโอกาสให้ผู้โจมตีเรียกใช้ตัวตรวจสอบความถูกต้องจำนวนหนึ่ง

ปัญหาแรก เราสามารถแก้ไขได้ด้วยการแบ่งงาน: ผู้ตรวจสอบ 1-100 จำเป็นต้องดาวน์โหลดและตรวจสอบ blob แรก ผู้ตรวจสอบ 101-200 ดาวน์โหลดและตรวจสอบ blob ที่สอง และอื่นๆ ผู้ตรวจสอบความถูกต้องในแต่ละชุดย่อย (คณะกรรมการ) จำเป็นต้องลงนามเพื่อพิสูจน์ว่าพวกเขาได้ตรวจสอบ blob ที่เกี่ยวข้องแล้ว จากนั้นเครือข่ายทั้งหมดสามารถยอมรับ blob ได้หลังจากได้รับลายเซ็นของผู้ตรวจสอบความถูกต้องส่วนใหญ่ในคณะกรรมการที่เกี่ยวข้อง

แต่สิ่งนี้นำไปสู่ปัญหา: จะเกิดอะไรขึ้นหากผู้โจมตีเข้าควบคุมชุดเครื่องมือตรวจสอบความถูกต้องที่อยู่ติดกัน (เช่น 1971-2070) หากเป็นกรณีนี้ แม้ว่าผู้โจมตีจะควบคุมเพียงประมาณ 1.5% ของชุดตรวจสอบความถูกต้องทั้งหมด พวกเขาสามารถควบคุมคณะกรรมการชุดเดียวได้ (ในกรณีข้างต้น พวกเขาสามารถควบคุม 70% ของผู้ตรวจสอบความถูกต้อง 2001-2100 ในคณะกรรมการ 20) ดังนั้น โจมตี ผู้ปฏิบัติงานสามารถเพิ่ม blobs ที่ไม่ถูกต้อง/ใช้ไม่ได้ไปยังห่วงโซ่

RNG (Random Number Generator) ได้รับการเริ่มต้นหลังจากผู้ตรวจสอบความถูกต้องฝากและดัชนีของผู้ตรวจสอบความถูกต้องแต่ละคนได้รับการแก้ไข ดังนั้นผู้โจมตีจึงไม่สามารถพยายามดึงผู้ตรวจสอบความถูกต้องทั้งหมดเข้าสู่คณะกรรมการชุดเดียวกันได้ ผู้โจมตีอาจโชคดี แต่ถ้าพวกเขาควบคุมมากกว่า 1/3 ของผู้ตรวจสอบความถูกต้องทั้งหมด

ชื่อระดับแรก

ภาษาท้องถิ่น "การสุ่มตัวอย่างความพร้อมใช้งานของข้อมูล"

ในบางแง่มุม การสุ่มตัวอย่างความพร้อมใช้งานของข้อมูลคือภาพสะท้อนของคณะกรรมการสุ่มตัวอย่าง การสุ่มตัวอย่างยังคงเกิดขึ้นเนื่องจากแต่ละโหนดลงเอยด้วยการดาวน์โหลดเพียงเศษเสี้ยวของข้อมูลทั้งหมด แต่การสุ่มตัวอย่างเกิดขึ้นในไคลเอ็นต์และต่อ blob ไม่ใช่ข้าม blobs

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

กลไกนี้มีประสิทธิภาพเนื่องจากไคลเอนต์ต้องการดาวน์โหลดข้อมูลเพียงเล็กน้อยในแต่ละ blob เพื่อยืนยันความพร้อมใช้งาน กลไกนี้มีความปลอดภัยสูงเช่นกัน เพราะแม้แต่ผู้โจมตี 51% ก็ไม่สามารถหลอกลวงลูกค้าให้ยอมรับหยดที่ใช้ไม่ได้

ลบการเข้ารหัส

ข้อความ

เพื่อหลีกเลี่ยงสถานการณ์ที่ผู้โจมตีให้ข้อมูล 50-99% ของข้อมูลที่มีอยู่ (ซึ่งอาจทำให้ลูกค้าบางรายปฏิเสธ blob และผู้อื่นยอมรับ) เราจึงใช้เทคนิคที่เรียกว่าโค้ดลบ การเข้ารหัสการลบข้อมูลช่วยให้เราเข้ารหัส Blob ในลักษณะที่หากมีการเผยแพร่ข้อมูลมากกว่าครึ่งหนึ่งใน Blob ทุกคนในเครือข่ายสามารถสร้างใหม่และเผยแพร่ข้อมูลที่เหลือได้

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

การเปรียบเทียบทางคณิตศาสตร์ที่ง่ายที่สุดในการทำความเข้าใจการเข้ารหัสการลบคือ "จุดสองจุดเพียงพอเสมอที่จะกู้คืนบรรทัด": ถ้าฉันมีสี่จุดในแบบฟอร์ม ((1, 4), (2, 7), (3, 10), (4 , 13)) เพื่อสร้าง "ไฟล์" แต่ละจุดอยู่บนเส้นตรง ตราบใดที่คุณมีพิกัดของจุดสองจุด คุณสามารถสร้างเส้นใหม่และคำนวณจุดที่เหลืออีกสองจุดได้ ( เราถือว่า x- พิกัด 1, 2, 3, 4 เป็นพารามิเตอร์คงที่ของระบบ ไม่ใช่ทางเลือกของผู้สร้างไฟล์)

การใช้พหุนามลำดับที่สูงกว่า เราสามารถขยายแนวคิดนี้เพื่อสร้าง 3 จาก 6 ไฟล์, 4 จาก 8 ไฟล์ หรือพูดโดยทั่วไปคือ n จาก 2n ไฟล์ หากคุณมีคะแนน n จากไฟล์ คุณสามารถคำนวณคะแนนที่เหลือใน 2n ได้

เราใช้การผูกมัดพหุนาม โดยเฉพาะการผูกมัดของ Kate แทนที่จะเป็นรากของ Merkle เป็นเครื่องพิมพ์สำหรับ data blobs เนื่องจากการผูกมัดพหุนามช่วยให้เราสามารถพิสูจน์ได้อย่างง่ายดายว่าค่าที่กำหนดนั้นเป็นพหุนามจริงในระดับ n ในค่าประมาณที่ถูกต้องที่พิกัด มิฉะนั้น เราจะต้องพิสูจน์ (เช่น การใช้ SNARK) ว่ารากของ Merkle เข้ารหัสโพลิโนเมียลระดับต่ำ หรืออาศัยหลักฐานการฉ้อโกงเพื่อเผยแพร่หากการเข้ารหัสไม่ถูกต้อง (ซึ่งเพิ่มความซับซ้อนสูงและสมมติฐานที่ตรงกันมากขึ้น)

ชื่อระดับแรก

การสุ่มตัวอย่างความพร้อมใช้งานของข้อมูลยังจำเป็นสำหรับกลไกของคณะกรรมการหรือไม่

หากคุณพึ่งพาคณะกรรมการเพียงอย่างเดียวอาจมีข้อเสียดังต่อไปนี้:

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

ยิ่งไปกว่านั้น การลงโทษผู้โจมตี 51% อย่างมีประสิทธิภาพเป็นเรื่องยากมาก เนื่องจากมีเงินฝากจำนวนน้อยมาก (เงินฝากที่เข้าร่วมในคณะกรรมการเฉพาะนั้น) ซึ่งสามารถพิสูจน์ได้ว่าเกี่ยวข้องกับพฤติกรรมที่เป็นอันตรายและถูกลงโทษตามนั้น

➤ DAS นั้นง่ายกว่ากลไกของคณะกรรมการเล็กน้อยในการต่อต้านการโจมตีด้วยควอนตัม (อาจต้องใช้ลายเซ็นรวมหลังควอนตัม)

ชื่อระดับแรก

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

หากใช้เฉพาะ DAS ปัญหาต่อไปนี้อาจเกิดขึ้น:

➤ DAS เป็นเทคโนโลยีใหม่ที่ยังไม่ได้ทดสอบ ซึ่งแกนหลัก (ดูที่นี่) ได้รับการพัฒนาจริง ๆ เมื่อปีที่แล้วเท่านั้น ดังนั้นจึงแนะนำให้ใช้คณะกรรมการเพื่อให้ความคุ้มครองในกรณีที่ DAS ขัดข้องหรือขยายเวลาการพัฒนาโดยไม่คาดคิด

➤ DAS มีความหน่วงแฝงสูงกว่าคณะกรรมการ

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

สิ่งนี้จะเพิ่มความเสี่ยงของผู้โจมตีที่จะเผยแพร่ blob ที่ใช้งานไม่ได้และตอบสนองต่อคำขอของผู้เสนอเท่านั้น สิ่งนี้จะไม่ทำให้โหนดอื่นๆ ของเครือข่ายยอมรับ blobs ที่ไม่ได้ใช้ แต่อาจทำให้การโจมตีอื่นๆ ง่ายขึ้น ทำให้บล็อกบีคอนที่สร้างโดยผู้เสนอที่ซื่อสัตย์ถูกปฏิเสธและแยกออกจากห่วงโซ่หลัก คณะกรรมการสามารถแก้ไขได้

➤ ความเข้ากันได้ล่วงหน้าของกลไกคณะกรรมการแข็งแกร่งขึ้น ทำให้สามารถเพิ่มฟังก์ชันการดำเนินการไปยังชิ้นส่วนในอนาคตได้

ความสำคัญของความพร้อมของข้อมูล? ความท้าทายคืออะไร?

เรื่องนี้มีการพูดคุยกันที่อื่น ดังนั้นฉันจะไม่โพสต์ที่นี่ แต่ฉันแนะนำให้อ่าน:

➤หมายเหตุเกี่ยวกับความพร้อมใช้งานของข้อมูลและการลบโค้ด (บทนำเบื้องต้นเกี่ยวกับความพร้อมใช้งานของข้อมูล)

➤ บทความโดย Alberto Sonnino, Mustafa Al-Bassam และ Vitalik Buterin ขยายแนวคิด

➤ โปรโตคอลรุ่งอรุณแห่งไฮบริดเลเยอร์ 2 กล่าวถึงทฤษฎีเกมในความพร้อมใช้งานของข้อมูล

➤ Base Layers และ Functionality Escape Velocity ตามแนวคิดข้างต้น ส่วนของความสามารถในการปรับขนาดข้อมูลได้อธิบายไว้

➤ ปัญหาความพร้อมใช้งานของข้อมูล (Ethereum Silicon Valley Meetup) ซึ่งเป็นการสนทนาทางวิดีโอเกี่ยวกับปัญหาความพร้อมใช้งานของข้อมูล

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

Sharding ทำงานบนเลเยอร์ P2P อย่างไร

เพื่อให้บรรลุวัตถุประสงค์ด้านความสามารถในการปรับขนาดของการชาร์ดดิ้ง เราต้องการระบบ P2P เพื่อให้ทุกโหนดไม่จำเป็นต้องดาวน์โหลดข้อมูลทั้งหมด โชคดีที่เรามีรูปแบบการแบ่งส่วนเลเยอร์ P2P ในเฟส 0 แล้ว โดยเฉพาะอย่างยิ่ง ชุดย่อย 64 ชุดถูกใช้เพื่อแสดงการรวม เครื่องมือตรวจสอบแต่ละรายการจะต้องมีอยู่ใน "เครือข่ายย่อยสากล" หลักและเครือข่ายย่อยการรวมการรับรองของตนเองเท่านั้น โดยไม่ต้องดึงข้อมูลใดๆ จากชุดย่อยการรับรองรวม 63 รายการอื่นๆ

ในชาร์ดดิ้งประเภทคณะกรรมการ + DAS เราขยายไปสู่สถาปัตยกรรมแบบ "กริด" ซึ่งมีซับเน็ตแนวนอน 2048 ซับเน็ต (ซับเน็ตแนวนอน) นั่นคือมีซับเซ็ตในแต่ละคู่ชาร์ดสล็อตของแต่ละยุค และซับเน็ตแนวตั้ง 2048 ซับเน็ต (แนวตั้ง เครือข่ายย่อย) นั่นคือมีส่วนย่อยของแต่ละดัชนีในแต่ละหยด

ในแต่ละช่อง เราเลือกผู้เสนอต่อชาร์ด ผู้เสนอแต่ละรายมีสิทธิ์ที่จะเสนอ blob: บล็อกข้อมูลโดยพลการที่มีขนาดสูงสุด 512 kB (ซึ่งเราเข้าใจได้ว่าเป็นชุดของ "ตัวอย่าง" ประมาณ 512 ไบต์) พร้อมส่วนขยายการลบรหัสและหลักฐานเพิ่มเติมที่แต่ละส่วนใน blob ได้รับการตรวจสอบโดยอิสระ

โครงสร้างของหยด โครงสร้างของหยด

โครงสร้าง "เนื้อหา" ของ blob ประกอบด้วยข้อมูลต้นฉบับ ข้อมูลส่วนขยาย และการพิสูจน์ (หากต้องการ ข้อมูลส่วนขยายสามารถละเว้นได้เพื่อประสิทธิภาพของข้อมูล เนื่องจากแต่ละโหนดที่ได้รับ blob สามารถสร้างข้อมูลใหม่ได้อย่างรวดเร็ว)

"ส่วนหัว" ของ Blob ประกอบด้วยข้อผูกมัดของ Kate ที่สอดคล้องกัน พร้อมด้วยข้อมูลอื่นๆ (สล็อต ชาร์ด และหลักฐานความยาว) และลายเซ็นของผู้เสนอ

กระบวนการกระจายเสียงหยด

เมื่อ Blob ถูกกระจาย ส่วนหัวของมันถูกกระจายไปยังซับเน็ตสากล และเนื้อความถูกกระจายไปยังซับเน็ตแนวนอนที่สอดคล้องกับสล็อตและ ID ชาร์ด

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

เครื่องมือตรวจสอบแต่ละรายการจำเป็นต้องเข้าร่วมเครือข่ายย่อยต่อไปนี้:

➤ ซับเน็ตทั่วโลก

➤ ซับเน็ตแนวตั้งที่สอดคล้องกับดัชนีที่กำหนด (คำนวณโดยใช้ seed ส่วนตัวต่อตัวตรวจสอบความถูกต้อง)

บล็อกออกอากาศ

ข้อความ

ผู้เสนอหยดสามารถกระจายตัวอย่างไปยังเครือข่ายย่อยทั้งหมด แต่ไม่จำเป็นต้องเป็นส่วนหนึ่งของเครือข่ายย่อย กระบวนการมีดังนี้:

➤ สิ่งพิมพ์: ผู้เสนอเผยแพร่หยดในเครือข่ายย่อยแนวนอนที่ถูกต้อง แต่ละตัวอย่างมาพร้อมกับหลักฐาน

➤ การกระจายตัวอย่างโดยตรง: ผู้เข้าร่วมรายอื่นในเครือข่ายย่อยแนวนอนเผยแพร่บล็อกไปยังแต่ละเครือข่ายย่อยแนวตั้งที่พวกเขาอยู่

➤ การกระจายตัวอย่างทางอ้อม: ผู้เสนอประกาศให้เครือข่ายย่อยแนวตั้งหลายเครือข่ายที่อยู่ใกล้เคียงกัน ดังนั้น ผู้เข้าร่วมแต่ละรายในเครือข่ายย่อยแนวนอนยังสามารถเห็นเครือข่ายย่อยแนวตั้งที่เพื่อนของตนอยู่ และเผยแพร่บล็อกที่เกี่ยวข้องไปยังเพื่อนเหล่านั้น

สมมติว่าบล็อกข้อมูลมีขนาด 512 ไบต์และ data blob สูงสุด 512 kB (ไม่รวมการเข้ารหัสการลบ) ซึ่งมีขนาดประมาณ 1 MB เมื่อรวมการเข้ารหัสการลบข้อมูล จะมีซับเน็ตแนวตั้ง 2048 ซับเน็ต หากแต่ละโหนดมีอยู่ใน 15 เครือข่ายย่อยแนวตั้งส่วนตัว 5 เครือข่ายย่อยแนวตั้งสาธารณะ และมี 50 เพียร์ สมมติว่าในกรณีที่เลวร้ายที่สุดมีสมาชิก 128 คนในแต่ละซับเน็ตแนวนอน (คณะกรรมการเท่านั้น) สมาชิกเครือข่ายย่อยเพียงอย่างเดียวจะถูกกระจายโดยตรงไปยัง 128 * 20 = 2560 เครือข่ายย่อย (ประมาณ .1461 หลังจากลบการเผยแพร่ซ้ำซ้อน) และหากมีการเพิ่มโหนดเพียร์ ก็จะเพิ่มเป็น 128 * 4 * 50 = 25600 ซับเน็ต

โปรดทราบว่าเป็นไปได้ในทางทฤษฎีที่ผู้เสนอบล็อกที่เป็นอันตรายจะเผยแพร่ตัวอย่างไปยังซับเน็ตแนวตั้งโดยไม่ต้องเผยแพร่บล็อกทั้งหมด เพื่อแก้ไขสถานการณ์นี้ เราได้เพิ่มกระบวนการที่บล็อกที่เผยแพร่ไม่สมบูรณ์ (หมายถึง 50% ขึ้นไปใช้ได้ แต่ไม่ 100%) สามารถ "รักษาตัวเอง" ได้ กระบวนการประกอบด้วยสามขั้นตอนพื้นฐาน:

1. การกระจายแบบย้อนกลับ: กระบวนการกระจายแบบเดียวกับด้านบน ยกเว้นในกรณีนี้ เพียร์บนซับเน็ตแนวตั้งจะเผยแพร่ตัวอย่างจากซับเน็ตแนวตั้งนั้นไปยังซับเน็ตแนวนอนที่สอดคล้องกับหยดที่ตัวอย่างนั้นอยู่

3. การกระจาย: ทำซ้ำขั้นตอนการแจกจ่ายข้างต้น

ชื่อระดับแรก

โซ่บีคอนทำงานอย่างไร?

ในแต่ละช่อง เราสุ่มเลือกผู้เสนอสำหรับแต่ละส่วนจากทั้งหมด 64 ชิ้น ผู้เสนอมีสิทธิ์ในการสร้าง Shard Blob เผยแพร่ผ่านกระบวนการข้างต้น และเผยแพร่ ShardHeader ของ Blob ไปยังซับเน็ตส่วนกลาง ShardHeader สามารถบรรจุลงในสล็อตเดียวกันบนสายสัญญาณบีคอน และยังสามารถรวมไว้ในสล็อตถัดไปในยุคเดียวกัน/ถัดไป

ห่วงโซ่สัญญาณติดตามรายการของวัตถุ PendingShardHeader PendingShardHeader จัดเก็บ: 1) ข้อมูลสำคัญใน ShardHeader (ชาร์ดและสล็อต ความมุ่งมั่นของ blob และความยาวของมัน) 2) บิตฟิลด์ที่ติดตามว่าตัวตรวจสอบใดในคณะกรรมการที่สุ่มเลือกลงนามใน blob (อันที่จริง เฟส 0 ได้แนะนำคณะกรรมการไปแล้ว) . โครงสร้าง AttestationData ถูกขยายเพื่อรวม shard_header_root ซึ่งเป็นแฮชรูทของ ShardHeader ที่ตัวตรวจสอบถูกเลือกให้ลงคะแนน Provers ยังสามารถลงคะแนนให้กับรูทแฮชที่ว่างเปล่าได้หากพวกเขาไม่เห็น Shard Blob ที่ถูกต้องและใช้งานได้ซึ่งถูกกำหนดให้กับคู่ของ Shard-Slot

หาก ShardHeader ได้รับการรับรองโดย 2/3 ของผู้ตรวจสอบความถูกต้องในคณะกรรมการ จะได้รับการยืนยันทันที หากในตอนท้ายของยุคถัดไป Shardheader ได้รับการสนับสนุนจากคณะกรรมการมากกว่า Shardheader อื่นๆ จะได้รับการยืนยันเมื่อสิ้นสุดยุคนั้น

กฎการเลือกทางแยก

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

นี่คือการสำรวจเพิ่มเติมของการมีเพศสัมพันธ์ที่แน่นและทำไมมันถึงมีค่า

เมื่อจำนวนผู้ตรวจสอบมีน้อย

หากมีผู้ตรวจสอบน้อยกว่า 262,144 คน (32 ช่อง * 64 ชาร์ด * 128 ขนาดคณะกรรมการขั้นต่ำ) แทนที่จะเลือกผู้เสนอสำหรับเศษทั้งหมด เราจะเลือกผู้เสนอสำหรับชุดย่อยที่จำกัดและวนซ้ำเศษชิ้นส่วน ตัวอย่างเช่น หากมีตัวตรวจสอบความถูกต้อง 32 * 128 * 50 และชาร์ดเริ่มต้นที่สล็อต N เป็น 0 ดังนั้นสล็อต N จะกำหนดผู้เสนอให้กับชาร์ด 0-49 และสล็อต N+1 จะกำหนดผู้เสนอให้กับชาร์ด 50- ชาร์ด 63 และ 0-35 จะกำหนดผู้เสนอ ช่อง N+2 จะกำหนดผู้เสนอให้กับเศษ 36-63 และ 0-21 เป็นต้น สิ่งนี้ทำเพื่อให้แน่ใจว่าแม้ในขณะที่การมีส่วนร่วมต่ำ ขนาดของคณะกรรมการยังคงเพียงพอ

เพิ่มกลไกที่คล้ายกับ EIP-1559 ข้อมูลชาร์ดการเรียกเก็บเงินเป็นไบต์ และปรับราคา: หากความจุเฉลี่ยของบล็อกเกิน 50% ค่าธรรมเนียมจะเพิ่มขึ้น และในทางกลับกัน ดังนั้น ตัวบ่งชี้คือ 50% ของขนาดบล็อกเฉลี่ย

ชื่อระดับแรก

ข้อสันนิษฐานด้านความปลอดภัย

Data blob-only sharding นั้นทรงพลังเพราะใช้สมมติฐานด้านความปลอดภัยน้อยกว่าแผนการแยกส่วนอื่น ๆ โดยเฉพาะอย่างยิ่ง จะหลีกเลี่ยงข้อสันนิษฐานส่วนใหญ่โดยสุจริต (เนื่องจาก DAS สามารถตรวจจับรอยเปื้อนที่ใช้ไม่ได้ซึ่งออกโดยเสียงข้างมาก) และข้อสันนิษฐานด้านเวลา (ซึ่งไม่เหมือนกับกลไก DAS รุ่นก่อนๆ คือใช้ข้อผูกพันของ Kate มากกว่าหลักฐานการฉ้อโกง ดังนั้นจึงไม่ต้องพึ่งพาข้อสันนิษฐานที่จำเป็นต้องมีหลักฐานการฉ้อโกง ออกอากาศเร็วมาก)

สมมติฐานหลักใหม่คือ "สมมติฐาน DAS ของชนกลุ่มน้อยที่ซื่อสัตย์": มีตัวอย่างโหนดจำนวนมากเพียงพอที่ผู้โจมตีต้องเผยแพร่มากกว่าครึ่งหนึ่งของบล็อก หากมี 2,048 ตัวอย่างใน blob จำเป็นต้องกู้คืน 1,024 ตัวอย่าง (พิจารณาว่าไคลเอ็นต์บางรายจะสุ่มตัวอย่างจุดเดียวกัน ดังนั้น 2048 * ln(2) ~= 1419) และไคลเอ็นต์แต่ละรายจะสุ่มตัวอย่าง 20 ตัวอย่าง ระบบสามารถพิจารณาได้ ปลอดภัยหากมีการสุ่มตัวอย่างมากกว่า 70 ไคลเอ็นต์ต่อชาร์ด

ชื่อระดับแรก

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

ข้อความ

https://github.com/ethereum/eth2.0-specs/pull/2146

บัญชีอย่างเป็นทางการ: สถานีจีน ​​ETH

Protolambda’s work-in-progress implementation

ลิงค์ต้นฉบับ:https://hackmd.io/@HWeNw8hNRimMm2m2GH56Cw/sharding_proposal

งานแปลของ ECN มีเป้าหมายเพื่อส่งมอบข้อมูลและทรัพยากรการเรียนรู้คุณภาพสูงสำหรับชุมชน Ethereum ของจีน ลิขสิทธิ์ของบทความเป็นของผู้เขียนต้นฉบับและต้องระบุแหล่งที่มาของข้อความต้นฉบับและเว็บไซต์ ETH ภาษาจีนเมื่อพิมพ์ซ้ำ สำหรับการพิมพ์ซ้ำในระยะยาว โปรดติดต่อ eth@ecn.co เพื่อขออนุญาต

บัญชีอย่างเป็นทางการ: สถานีจีน ​​ETH

เว็บไซต์: ethereum.cn

ETH
Vitalik
开发者
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก:
https://t.me/Odaily_News
กลุ่มสนทนา:
https://t.me/Odaily_GoldenApe
บัญชีทางการ:
https://twitter.com/OdailyChina
สารบัญบทความ
คลังบทความของผู้เขียน
ECN以太坊中国
อันดับบทความร้อน
Daily
Weekly
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android