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

วิทยาศาสตร์ยอดนิยม: การเปลี่ยนสถานะใน Ethereum 2.0 Beacon Chain

以太坊爱好者
特邀专栏作者
บทความนี้มีประมาณ 2026 คำ การอ่านทั้งหมดใช้เวลาประมาณ 3 นาที
บล็อกการผลิตและการเปลี่ยนสถานะสำหรับบีคอนเชน
สรุปโดย AI
บล็อกการผลิตและการเปลี่ยนสถานะสำหรับบีคอนเชน

หมายเหตุบรรณาธิการ: บทความนี้มาจากผู้ที่ชื่นชอบ Ethereum (ID: ethfans)หมายเหตุบรรณาธิการ: บทความนี้มาจาก

ผู้ที่ชื่นชอบ Ethereum (ID: ethfans)

, ผู้แต่ง: Sly Gryphon, ผู้แปล & ผู้พิสูจน์อักษร: IAN LIU & A Jian, ทำซ้ำโดย Odaily โดยได้รับอนุญาต

ห่วงโซ่บีคอนประกอบด้วยบล็อกและสถานะโปรเกรสซีฟ บล็อกถูกสร้าง เซ็นชื่อ เผยแพร่ผ่านเครือข่าย แล้วใช้เพื่ออัปเดตสถานะ รูปต่อไปนี้แสดงความสัมพันธ์หลัก:

คำอธิบายภาพ

- เส้นทึบบ่งชี้ถึงความสัมพันธ์แบบรวม และเส้นประบ่งชี้ถึงความสัมพันธ์แบบพึ่งพา กล่าวคือ ส่วนที่ปล่อยลูกศรจะถูกรวม/ขึ้นอยู่กับสิ่งที่ลูกศรชี้ไปที่ -

ไดอะแกรมนี้อิงตามเวอร์ชัน 0.10.1 ของข้อกำหนด Ethereum 2.0 เมื่อเทียบกับเวอร์ชั่นใหม่ 0.11.0 เนื้อหาที่อธิบายในรูปด้านบนจะแตกต่างกันเล็กน้อยในส่วนของการคำนวณโดเมน แต่ความสัมพันธ์โดยรวมนั้นสอดคล้องกับเวอร์ชั่นก่อนหน้า

สร้างบล็อกใหม่

หากต้องการสร้างบล็อก ให้เริ่มจากด้านบนของบล็อกเชนปัจจุบัน

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

นอกจากนี้ แม้ว่าบางช่องจะถูกข้ามไป (ไม่มีการสร้างบล็อก) สถานะยังคงเป็นขั้นสูง (แต่ไม่ทำอะไรเลย)

BeaconBlockBody ("beacon chain block body") จะมีการดำเนินการทั้งหมดที่จำเป็นต้องดำเนินการ (การฝากพันธบัตร ข้อความรับรอง การออกจากโปรแกรมตรวจสอบความถูกต้อง ฯลฯ) การดำเนินการเหล่านี้จะใช้เพื่อเปลี่ยนสถานะและสร้าง BeaconState ใหม่ ("สถานะห่วงโซ่บีคอน")

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

แฮชรูทของสถานะสุดท้าย (สถานะที่มีค่ามากกว่า 0x000...) จะถูกคำนวณและเพิ่มลงในบล็อก จากนั้นแฮชของบล็อกจะได้รับรูทของบล็อก ("บล็อกรูท") และรวมเข้าด้วยกันกับโดเมนของ ลูกโซ่. กระจายเป็นเครือข่าย. ความหมายของโดเมนคือการป้องกันไม่ให้บล็อกแพร่กระจายไปยัง mainnet หรือ testnet อื่นจากการชนกัน

การเปลี่ยนสถานะการดำเนินการ

หลังจากที่โหนดได้รับ SignedBeaconBlock ("บล็อกลูกโซ่บีคอนที่ลงนาม") แล้ว โหนดจำเป็นต้องดำเนินการตรวจสอบบางอย่าง รวมถึง: ยืนยันความถูกต้องของลายเซ็น และมีสถานะที่สอดคล้องกับบล็อกพาเรนต์หรือไม่ (บล็อกพาเรนต์ถูกกำหนดโดย parent root "parent block") root tubers” ชี้ให้เห็น)

BeaconBlockHeader*

โดยการเลื่อนช่องสถานะไปยังช่องของบล็อก (อาจเป็นช่องที่ข้ามได้) จากนั้นดำเนินการต่างๆ ที่มีอยู่ใน BeaconBlockBody (เช่น การฝากเงิน ข้อความพยาน การออกจากตัวตรวจสอบความถูกต้อง ฯลฯ) เราสามารถอัปเดตสถานะได้

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

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

สถานะห่วงโซ่บีคอนประกอบด้วยองค์ประกอบพื้นฐานสามในสี่ส่วนของบล็อก - ช่องเวลา แฮชรูทของบล็อกพาเรนต์ และแฮชรูทของ BeaconBlockBody (กล่าวคือ การดำเนินการที่จะดำเนินการ)

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

องค์ประกอบเหล่านี้ทำหน้าที่เป็นคลัสเตอร์ โดยใช้โครงสร้างเดียวกันกับ BeaconBlockHeader แต่สถานะรูทของบล็อกที่ใช้จะเป็นศูนย์เสมอ (0x000...) เนื่องจากสถานะไม่สามารถวนซ้ำมีแฮชของตัวเอง แสดงในรูปเป็น "BeaconBlockHeader"

ข้อดีของวิธีนี้คือเราสามารถคำนวณสถานะของรูทของบล็อกได้อย่างง่ายดาย - โดยการคำนวณรูทแฮชของสถานะ จากนั้นสร้างสำเนาของส่วนหัวของบล็อกและแทรกสถานะรูทที่ถูกต้อง และสุดท้ายคำนวณแฮชของบล็อกทั้งหมด ส่วนหัว (ค่านี้จะเหมือนกับแฮชของบล็อกที่ได้รับ)

  • บล็อกที่เชื่อมโยงช่วยเพิ่มความไว้วางใจ

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

  • ความน่าเชื่อถืออย่างเป็นระบบสามารถอธิบายได้ด้วยลักษณะดังต่อไปนี้:

โปรเซสเซอร์จำนวนมาก (เช่น เครือข่ายสาธารณะ) - ยิ่งโปรเซสเซอร์เหล่านี้กระจายอำนาจมากเท่าใด ก็ยิ่งน่าเชื่อถือมากขึ้นเท่านั้น

ความหลากหลายของไคลเอนต์ (เช่น ทีมพัฒนา) - หากมีไคลเอนต์ให้เลือกหลายตัว คุณก็ยิ่งหลีกเลี่ยงการควบคุมอัลกอริทึมจากส่วนกลางได้มากขึ้นเท่านั้น

โอเพ่นซอร์ส - อนุญาตให้ทั้งการตรวจสอบอัลกอริทึมและการฟอร์กแบบสาธารณะ (หากคนส่วนใหญ่ต้องการเปลี่ยนทิศทางของระบบ)

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

การโจมตี 51% เฉพาะบล็อกล่าสุดอาจสำเร็จ แต่ถ้าคุณต้องการเปลี่ยนบล็อกเมื่อ 100 สล็อตที่ผ่านมา ผู้โจมตีต้องมีตัวประมวลผลควบคุม supermajority ระหว่าง 100 สล็อตเหล่านั้น (ยากมาก)

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