ดูการพัฒนาระบบนิเวศของ Ethereum และ blockchain จากการประชุม Devcon5
หมายเหตุบรรณาธิการ: บทความนี้มาจาก Wanxiang Blockchain (ID: gh_1b8639a25429) ผู้เขียน: Wanxiang Blockchain Research Group และเผยแพร่โดยได้รับอนุญาต
บทความนี้เป็นการตีความเนื้อหาของการประชุมหลังจากที่ทีมวิจัยของ Wanxiang Blockchain R&D Department เข้าร่วมใน Devcon5 กลุ่มวิจัยของแผนก R&D ของ Wanxiang Blockchain เป็นทีมงานภายใน Wanxiang ที่มุ่งเน้นไปที่การวิจัยและการใช้เทคโนโลยีบล็อกเชนพื้นฐาน
ข้อความ
ข้อความ
ชื่อเรื่องรอง
Ethereum1.X
ในงาน Devcon4 ปีที่แล้ว กลุ่มนักพัฒนาหลักของ Ethereum และผู้ที่ชื่นชอบ Ethereum ได้กล่าวถึงความท้าทายในปัจจุบันของ Ethereum พวกเขาทั้งหมดมีมุมมองที่คล้ายกัน: เนื่องจากปัญหาคอขวดด้านประสิทธิภาพที่รุนแรงมากขึ้นและพื้นที่เก็บข้อมูลที่ถูกครอบครองเพิ่มขึ้นอย่างต่อเนื่อง หาก Ethereum mainnet ไม่ได้รับการเปลี่ยนแปลง ความสามารถในการใช้งานของ Ethereum จะแย่ลงอย่างมาก การลดลงของประสิทธิภาพมีสาเหตุหลักมาจากข้อมูลสถานะขนาดใหญ่ (และเพิ่มขึ้น) ความต้องการพื้นที่เก็บข้อมูลที่เพิ่มขึ้น สาเหตุหลักมาจากความจำเป็นในการคงอยู่ของบล็อก บันทึกเหตุการณ์ (ใบเสร็จรับเงิน) และประวัติสถานะ (ปัจจุบันสามารถลบได้ในไคลเอนต์ส่วนใหญ่)
ในที่สุดพวกเขาก็เห็นพ้องต้องกันว่า: ปรับปรุง Ethereum mainnet ต้องได้รับการปรับปรุง!
พวกเขายังให้ชื่อรหัสแผนการปรับปรุงว่า "Ethereum1.x" รวมการอัปเกรดและการอัปเดตที่สำคัญต่างๆ ที่ Ethereum mainnet วางแผนที่จะนำมาใช้ในอนาคตอันใกล้นี้รวมอยู่ด้วย
ความคิดริเริ่มที่มีชื่อรหัสว่า "Ethereum1.x" ประกอบด้วย:
1. ปรับปรุงความสามารถในการปรับขนาดของเครือข่ายหลักโดยเพิ่มปริมาณงาน tps (ผ่านการเพิ่มประสิทธิภาพไคลเอ็นต์ ซึ่งจะช่วยเพิ่มขีดจำกัดแก๊สของบล็อกอย่างมาก)
2. ผ่าน "ค่าเช่าพื้นที่เก็บข้อมูล" เพื่อลดและจำกัดความต้องการพื้นที่ดิสก์ เพื่อให้แน่ใจว่าการทำงานที่ยั่งยืนของโหนดทั้งหมด แนวทางเฉพาะคือการออกแบบรูปแบบการเช่าที่กำหนดให้นักพัฒนาสัญญาและผู้ใช้ต้องจ่ายค่าพื้นที่จัดเก็บ EVM2 เมื่อเวลาผ่านไป แทนที่จะจัดเก็บโค้ดและข้อมูลไปเรื่อยๆ
3. ปรับปรุงประสบการณ์ของนักพัฒนาผ่านการอัปเกรด VM (รวมถึง eWASM)
เพื่อให้บรรลุเป้าหมายและแผนเหล่านี้ ทีมพัฒนาหลักของ Ethereum ได้จัดตั้งคณะทำงานหลายกลุ่ม:
1. ค่าเช่าของรัฐ: ออกแบบรูปแบบต้นทุนของพื้นที่จัดเก็บเพื่อจำกัดพื้นที่จัดเก็บในห่วงโซ่
2. eWASM: เครื่องเสมือน Ethereum Wasm;
3. การตัดพื้นที่จัดเก็บ: เพิ่มประสิทธิภาพพื้นที่จัดเก็บที่ลูกค้าครอบครอง
4. การจำลอง/สถานการณ์จำลอง
ในงาน Devcon5 ปีนี้ มูลนิธิ Ethereum ได้แนะนำคณะทำงานหลายกลุ่มที่จัดตั้งขึ้นในปีที่ผ่านมา:
1. วิวัฒนาการของ EVM: เพิ่มประสิทธิภาพ ความปลอดภัย และการทำงานร่วมกัน
2. EIP 1559: การเพิ่มประสิทธิภาพโมเดลต้นทุนเพื่อทำให้ต้นทุนการทำธุรกรรมมีความเสถียรและคาดการณ์ได้มากขึ้น
3. การทดสอบ/โครงสร้างพื้นฐาน: ใช้เครื่องมือใหม่ๆ เพื่อช่วยทดสอบไคลเอ็นต์เพื่อให้เข้ากันได้มากขึ้น
4. ส่วนประกอบขั้นสุดท้าย: ใช้ห่วงโซ่บีคอน Ethereum2.0 เพื่อสิ้นสุดบล็อกที่สร้างโดย Ethereum1.0
เฮ้ ทำไมมี Ethereum 1.0 และ 2.0 ล่ะ? พวกเขาเกี่ยวข้องกับ Ethereum 1.x อย่างไร?
กล่าวง่ายๆ เครือข่ายหลักของ Ethereum ในปัจจุบันคือ Ethereum1.0, Ethereum1.x คือแผนการปรับปรุงสำหรับเครือข่ายหลักปัจจุบัน และ Ethereum2.0 เป็นห่วงโซ่ที่พัฒนาโดยอิสระจาก Ethereum1.0 Ethereum1.0 จะเปลี่ยนเป็น 2.0
ชื่อเรื่องรอง
Ethereum2.0
Ethereum 2.0 เป็นเวอร์ชัน Serenity ของ Ethereum อย่างที่ฉันพูดไปเมื่อกี้ มันเป็น chain ที่พัฒนาขึ้นโดยอิสระจาก Ethereum 1.0 และในการประชุม Devcon4 เมื่อปีที่แล้ว มีการระบุชัดเจนว่า Ethereum 2.0 จะไม่แทนที่ Ethereum 1.0 ภายใน 3-5 ปี
Ethereum 2.0 จะประกอบด้วยชุดของการอัปเกรด เช่น Sharding (การแบ่งส่วนย่อย), Proof of Stake Consensus และ VM ใหม่ (เช่น eWASM)
มีเป้าหมายหลัก 5 ประการ:
☆ การกระจายอำนาจ: อนุญาตให้คอมพิวเตอร์โน้ตบุ๊กระดับผู้บริโภคทั่วไปใช้ทรัพยากร O(C) เพื่อประมวลผลและตรวจสอบชิ้นส่วน O(1) (รวมถึงการตรวจสอบระดับระบบ เช่น บีคอนเชน เป็นต้น)
☆ ความยืดหยุ่น: ระบบยังคงใช้งานได้เมื่อเครือข่ายหลักถูกแบ่งพาร์ติชันหรือโหนดจำนวนมากออฟไลน์
☆ ความปลอดภัย (ความปลอดภัย): ใช้เทคนิคการเข้ารหัสและการออกแบบเพื่อให้แน่ใจว่าโหนดการตรวจสอบจำนวนมากสามารถเข้าร่วมในระบบได้ (ในระยะสั้นและระยะยาว)
☆ ความเรียบง่าย (Simplicity): ลดความซับซ้อนให้เหลือน้อยที่สุด แม้ว่าจะสูญเสียประสิทธิภาพไปบ้างก็ตาม
☆ อายุการใช้งานที่ยาวนาน: เลือกส่วนประกอบที่ปลอดภัยต่อควอนตัม หรือเปลี่ยนได้อย่างง่ายดายด้วยส่วนประกอบที่ปลอดภัยต่อควอนตัมที่สอดคล้องกันเมื่อมี
นี่เป็นโครงการขนาดใหญ่ ดังนั้นจะไม่เสร็จสิ้นในเวลาเดียว แต่จะพัฒนาเป็นขั้นเป็นตอน นี่คือคำอธิบายสั้น ๆ ของแต่ละขั้นตอนและสิ่งที่วางแผนที่จะทำให้สำเร็จ
เฟส 0 บีคอนเชน
Phase0 คือจุดเริ่มต้นของห่วงโซ่สัญญาณ ห่วงโซ่บีคอนเป็นรากฐานของระบบทั้งหมด และใช้เพื่อจัดการตัวเองและโปรโตคอล Casper Proof of Stake ของแต่ละชาร์ดเชน:
1. จัดการโหนดการยืนยันและเงินเดิมพัน
2. แต่งตั้งผู้ผลิตบล็อกสำหรับแต่ละชิ้นส่วนในแต่ละขั้นตอน
3. จัดระเบียบโหนดการตรวจสอบเป็นคณะกรรมการตรวจสอบ (คณะกรรมการ) ซึ่งใช้ในการลงคะแนนในบล็อกที่เสนอ
4. เรียกใช้โปรโตคอลฉันทามติ
5. ให้รางวัลและลงโทษโหนดการตรวจสอบ
6. ในฐานะที่เป็นจุดยึด แต่ละชาร์ดจะลงทะเบียนสถานะของมันด้วย จึงช่วยอำนวยความสะดวกในการดำเนินการธุรกรรมข้ามชาร์ด
การโหลดข้อมูลหลักบนบีคอนเชนคือการยืนยัน รวมถึงการลงคะแนนความพร้อมใช้งานสำหรับชาร์ดบล็อกและการลงคะแนน PoS สำหรับบล็อกบีคอน
Phase0 จะใช้ Casper the Friendly Finality Gadget (FFG) เพื่อให้บรรลุขั้นสุดท้าย
ในช่วง Phase0 การทำธุรกรรมของผู้ใช้และการคำนวณสัญญาอัจฉริยะทั้งหมดจะดำเนินการบน Ethereum1.0 หลังจาก Phase0 เสร็จสิ้น จะมีสองเชนพร้อมกัน: เชน Ethereum1.0 และเชน Ethereum2.0
Phase1 Shard Chain (เศษโซ่)
Sharded blockchains เป็นกุญแจสู่ความสามารถในการปรับขนาดในอนาคต เนื่องจากช่วยให้การทำธุรกรรมดำเนินไปพร้อมกันได้ ระยะที่ 1 ส่วนใหญ่มุ่งเน้นไปที่การสร้าง ความถูกต้อง และความสอดคล้องของข้อมูลในบล็อกเชนที่แยกส่วน แต่ไม่ได้ใช้การดำเนินการของรัฐและยอดคงเหลือในบัญชี ระยะที่ 1 เป็นการทดลองใช้งานโครงสร้างชาร์ดดิ้งมากกว่าการพยายามปรับขนาดโดยใช้ชาร์ดดิ้ง สำหรับบีคอนเชน จะถือว่าบล็อกที่แตกเป็นชุดของบิตแทนที่จะเป็นข้อมูลที่มีโครงสร้างหรือมีความหมาย
ครอสลิงก์ถูกใช้ในบล็อกเชนบีคอนเพื่อแสดงสถานะปัจจุบันของชาร์ด (นั่นคือ รากข้อมูลที่รวมกัน) ในช่วงระยะเวลาหนึ่ง
Crosslink คือชุดของลายเซ็นที่มีประสิทธิภาพของบล็อกบนคณะกรรมการโหนดการตรวจสอบบนชาร์ดเชน ซึ่งแสดงถึงสถานะล่าสุดของชาร์ดบล็อกเชน และยังเป็นพื้นฐานสำหรับการสื่อสารแบบอะซิงโครนัสข้ามชาร์ด
การดำเนินการสถานะ Phase2 (State Execution)
ในระยะที่ 2 ฟังก์ชันที่เกี่ยวข้องทั้งหมดจะถูกรวมเข้าด้วยกัน ข้อมูลของบล็อกเชนที่แยกส่วนจะไม่ใช่ที่เก็บข้อมูลธรรมดาอีกต่อไป แต่จะนำข้อมูลเชนที่มีโครงสร้างและสัญญาอัจฉริยะกลับมาใช้ใหม่ แต่ละส่วนจะจัดการ VM ที่ใช้ eWASM, บัญชีที่รองรับ, สัญญา, ข้อมูลสถานะ ฯลฯ
มีความเป็นไปได้มากที่ State Rent จะเปิดตัวในเฟส 2 และผู้พัฒนาสัญญาและผู้ใช้จะจ่ายค่าพื้นที่จัดเก็บ eWASM
ระยะที่ 3 และระยะต่อ ๆ ไปจะได้รับการอัปเดตอย่างต่อเนื่อง
แผนที่เกี่ยวข้องจะได้รับการปรับปรุงอย่างต่อเนื่อง สำหรับรายละเอียด โปรดดูที่:
ชื่อเรื่องรอง
ความสุ่มใน Ethereum 2.0
ในการประชุม Devcon5 นี้มีหัวข้อสนทนาเกี่ยวกับการสุ่มใน Ethereum 2.0
ในระบบบล็อกเชนในปัจจุบัน ปัญหาของการสุ่มของระบบกำลังได้รับความสนใจมากขึ้นเรื่อยๆ
Ethereum 2.0 ใช้โปรโตคอลที่สอดคล้องกันซึ่งรวมเอา PoS (Proof of Stake) และกลไกการแบ่งส่วน และการเลือกคณะกรรมการที่สอดคล้องกันนั้นขึ้นอยู่กับค่าสุ่มที่สร้างโดยระบบ ดังนั้นความปลอดภัยของโครงร่างจึงเกี่ยวข้องอย่างมากกับการสุ่มของค่าสุ่มที่ระบบสร้างขึ้น เมื่อผู้โจมตีที่ประสงค์ร้ายสามารถจัดการหรือมีอิทธิพลต่อการสร้างค่าสุ่ม พวกเขาสามารถใช้ประโยชน์จากข้อได้เปรียบนี้เพื่อเพิ่มโอกาสในการได้รับเลือกเข้าสู่คณะกรรมการในระหว่างกระบวนการฉันทามติ ลดค่าใช้จ่ายในการโจมตีระบบ และคุกคามความปลอดภัยของโปรโตคอล .
บล็อกเชนเป็นแพลตฟอร์มพื้นฐานสำหรับการพกพาแอพพลิเคชั่นแบบกระจาย และหมายเลขสุ่มที่ปลอดภัยบนเชนยังเป็นการรับประกันที่สำคัญสำหรับความปลอดภัยของแอพพลิเคชั่นจำนวนมาก
ตัวเลขสุ่มส่วนใหญ่จะใช้ในสามลิงค์ต่อไปนี้ใน Ethereum2.0:
การเลือกผู้เสนอบล็อก
การเลือกคณะกรรมการฉันทามติ
แอปพลิเคชั่นลูกโซ่
อัลกอริทึมการสุ่มที่ปลอดภัยจำเป็นต้องรับประกัน:
1. ความเป็นธรรม (เป็นกลาง): ผู้เข้าร่วมไม่สามารถส่งผลกระทบต่อผลลัพธ์ของการสร้างตัวเลขสุ่ม
2. คาดเดาไม่ได้: ก่อนสร้างตัวเลขสุ่ม ไม่มีผู้เข้าร่วมรายใดสามารถคาดเดาผลลัพธ์ที่ออกมาล่วงหน้าได้
นอกจากนี้ เพื่อให้เป็นไปตามความทนทานต่อความผิดพลาดของระบบแบบกระจาย อัลกอริธึมการสุ่มที่เชื่อถือได้ควรตรวจสอบให้แน่ใจว่าอัลกอริทึมยังคงทำงานต่อไปแม้ว่าโหนดต่างๆ ในระบบจะหยุดทำงานก็ตาม
ดังนั้นอัลกอริทึมการสุ่มที่ปลอดภัยเช่น:
1. ตรวจสอบความถูกต้องของการเลือกผู้เสนอบล็อก และป้องกันผู้โจมตีจากการคาดเดาตัวตนของผู้เสนอล่วงหน้าและเปิดการโจมตี DOS
2. ในขั้นตอนการเลือกคณะกรรมการ ลดความเป็นไปได้ที่ผู้โจมตีจะควบคุมคณะกรรมการบางชุด
ชื่อเรื่องรอง
อัลกอริทึมความสุ่มแบบกระจาย RANDAO
RANDAO เป็นอัลกอริธึมการสุ่มแบบกระจายอย่างง่ายที่ช่วยให้หลายโหนดสามารถเจรจาโต้ตอบเพื่อสร้างหมายเลขสุ่มที่ปลอดภัยที่สอดคล้องกัน
อัลกอริทึมประกอบด้วยสองขั้นตอน:
ขั้นตอนความมุ่งมั่น (มุ่งมั่น)
เวทีเปิดเผย (เปิดเผย)
ในขั้นตอนการผูกมัด โหนดทั้งหมดในระบบจะเลือกหมายเลขสุ่มจำนวนหนึ่งแบบออฟไลน์ จากนั้นจึงส่งข้อผูกมัดไปยังหมายเลขสุ่มไปยัง RANDAO
ในขั้นตอนการเปิดเผย ผู้เข้าร่วมแต่ละคนมีความมุ่งมั่นในการเผยแพร่ค่าสุ่มของตน และผลลัพธ์ของการดำเนินการ XOR ของหมายเลขสุ่มสาธารณะทั้งหมดคือหมายเลขสุ่มที่สร้างขึ้นโดยข้อตกลงรอบนี้
แต่ RANDAO ก็มีข้อบกพร่องเช่นกัน:
1. ตัวเลขสุ่มที่สร้างโดยโปรโตคอล RANDAO นั้นไม่สามารถคาดเดาได้และมีความทนทานต่อข้อผิดพลาดเช่นเดียวกับโปรโตคอลฉันทามติที่แฝงอยู่ แต่ก็ยังมีข้อบกพร่องในด้านความยุติธรรม
2. ในโปรโตคอล ในขั้นตอนการเปิดเผย โหนดที่ประกาศค่าสุ่มในที่สุดอาจส่งผลต่อค่าสุ่มที่สร้างขึ้นขั้นสุดท้าย
3. โดยเฉพาะอย่างยิ่ง หลังจากที่ผู้โจมตีเห็นว่าโหนดอื่น ๆ ทั้งหมดในเครือข่ายเผยแพร่หมายเลขสุ่มที่เลือกไว้ พวกเขาสามารถดำเนินการ XOR ตามหมายเลขสุ่มของตนเอง และตัดสินใจว่าจะเผยแพร่หมายเลขสุ่มของตนเองตามข้อดีและข้อเสียของ ผลลัพธ์สำหรับตัวเอง เบอร์
4. สิ่งนี้ทำให้ผู้โจมตีรายเดียวมีผลกระทบบางอย่างต่อผลลัพธ์ ขณะเดียวกัน เมื่อจำนวนผู้เข้าร่วมที่ถูกควบคุมโดยผู้โจมตีเพิ่มขึ้น การทำลายล้างของการโจมตีประเภทนี้ก็เพิ่มขึ้นเช่นกัน
5. สำหรับระบบบล็อกเชน หากผู้โจมตีใช้ประโยชน์จากข้อได้เปรียบที่ได้รับจากกระบวนการสร้างตัวเลขแบบสุ่ม มันจะลดค่าใช้จ่ายที่จำเป็นในการโจมตีระบบ โดยเฉพาะอย่างยิ่ง หากระบบบล็อกเชนใช้ RANDAO และหลักการของห่วงโซ่ที่ยาวที่สุดเป็นโปรโตคอลที่สอดคล้องกัน ผู้โจมตีต้องการเพียง 36% ของสัญญา (เดิมพัน) เพื่อควบคุมระบบทั้งหมด (หมายเหตุ: การวิเคราะห์นี้มาจากคนตัวใหญ่ Vitalik)
ชื่อเรื่องรอง
ฟังก์ชัน VDF
VDF เป็นฟังก์ชันทางคณิตศาสตร์ชนิดหนึ่ง (Verifable Delay Function) ซึ่งมีลักษณะดังนี้
1. การคำนวณต้องมีระยะเวลาอย่างน้อยที่ทราบ
2. ผ่านการพิสูจน์ความถูกต้องของผลลัพธ์เอาต์พุตของฟังก์ชันสามารถตรวจสอบได้อย่างรวดเร็ว
การใช้ความล่าช้าในการคำนวณของฟังก์ชัน VDF โหนดที่ประกาศค่าสุ่มในโปรโตคอล RANDAO ในที่สุดอาจสูญเสียอิทธิพลต่อผลลัพธ์สุดท้าย
โดยเฉพาะอย่างยิ่งในขั้นตอนการเปิดเผยของโปรโตคอล RANDAO ค่าสุ่มที่ประกาศโดยผู้เข้าร่วมทั้งหมดไม่ใช่การดำเนินการ XOR แบบธรรมดาอีกต่อไป แต่ค่าสุ่มสุดท้ายจะได้รับผ่านฟังก์ชัน VDF คาดหวัง จากนั้น ผู้โจมตีจะไม่สามารถคำนวณค่าสุ่มขั้นสุดท้ายล่วงหน้าได้ และไม่สามารถกำหนดผลประโยชน์ของตัวเองในการเผยแพร่ค่าสุ่มของตัวเอง ดังนั้นจึงรับประกันความยุติธรรมของอัลกอริธึมการสุ่ม
ชื่อเรื่องรอง
เปลี่ยนจาก Ethereum 1.0 เป็น 2.0
การย้ายจากเชน Ethereum1.0 ไปยังเชน Ethereum2.0 จำเป็นต้องพิจารณาปัจจัยสำคัญสองประการ ประการแรก จำเป็นต้องย้ายอีเธอร์ที่มีอยู่ และประการที่สอง จำเป็นต้องย้ายสถานะ
Phase0 Ethereum Migration (บีคอนเชน)
ในระยะที่ 0 ผู้ใช้บนเครือข่าย Ethereum 1.0 จะสามารถล็อค Ether ในสัญญาและรับ Ether ในจำนวนที่เทียบเท่าบน Beacon Chain ใน Ethereum 2.0 หลังจากนั้น พวกเขาสามารถเดิมพัน ETH (32 ETH) เพื่อเป็นผู้ตรวจสอบความถูกต้อง และเริ่มรับรางวัลการตรวจสอบบนเครือข่าย Ethereum2.0
การเปลี่ยนสถานะ Phase1 (การแบ่งส่วนย่อย)
ในระยะที่ 1 สถานะของเชน Ethereum1.0 ปัจจุบันจะถูกโอนไปยังส่วนย่อยบนเชน Ethereum2.0 รับประกันได้ว่าข้อมูลทั้งหมดจากเชน Ethereum1.0 จะมีอยู่ในเชน Ethereum2.0 ระยะที่ 1 และหลังจากนั้นยังไม่อยู่ในระหว่างการพัฒนา
เฟส 2 สัญญาอัจฉริยะ
เฟสนี้วางแผนที่จะนำสัญญาอัจฉริยะกลับมาใช้ใหม่และแทนที่ EVM ปัจจุบันด้วย eWASM นอกจากนี้ แนวคิดของค่าเช่าของรัฐซึ่งถูกกล่าวถึงใน Ethereum1.x อาจถูกนำมาใช้ในขั้นตอนนี้
พื้นที่จัดเก็บสถานะนอกเครือข่ายเฟส 3
ระยะที่ 3 จะพยายามถ่ายโอนสถานะบนเชนไปยังออฟเชนให้มากที่สุด ซึ่งจะเป็นการลดสถานะบนเชนให้เหลือน้อยที่สุด การรักษาและเรียกคืนสถานะออฟไลน์ในเฟส 3 จะเป็นข้อจำกัดในการออกแบบที่สำคัญสำหรับ dApps
Phase4 สัญญาการแยกส่วน
ตระหนักถึงการโต้ตอบระหว่างสัญญาในส่วนต่างๆ ท่ามกลางข้อเสนอต่างๆ ในปัจจุบันเกี่ยวกับการทำงานร่วมกันของสัญญาชาร์ดดิ้ง ดูเหมือนว่าไม่มีข้อเสนอใดที่สามารถแก้ปัญหาความขัดแย้งของการซิงโครไนซ์และการขยายตัว ซึ่งเป็นหนึ่งในขั้นตอนที่ท้าทายที่สุดเช่นกัน


