การวิจัยล่าสุดของ V God: ข้อ จำกัด ของความสามารถในการปรับขนาดของ blockchain การหักล้างวิธีการขยาย Dogeco
บทความนี้มาจาก:วิถีแห่ง DeFiบทความนี้มาจาก:
วิถีแห่ง DeFi
วิถีแห่ง DeFi
ผู้เขียน: Vitalik Buterin ผู้ก่อตั้ง Ethereum ส่งต่อด้วยการอนุญาต
blockchain สามารถปรับขนาดได้แค่ไหน? สามารถทำได้จริงตามที่ Elon Musk (Tesla CEO) ต้องการ "โดยลดเวลาบล็อกลง 10 เท่า เพิ่มขนาดบล็อก 10 เท่า และลดค่าธรรมเนียมการจัดการลง 100 เท่า" โดยไม่ทำให้เกิดการรวมศูนย์มากเกินไปและทำให้บล็อกเสียหายซึ่งเป็นพื้นฐาน คุณสมบัติของห่วงโซ่สาระสำคัญ? ถ้าไม่ ความสามารถในการปรับขนาดของ blockchain สามารถทำได้มากน้อยเพียงใด จะเกิดอะไรขึ้นถ้าคุณเลือกที่จะปรับขนาดโดยการเปลี่ยนอัลกอริทึมที่สอดคล้องกัน ที่สำคัญกว่านั้น จะเกิดอะไรขึ้นหากคุณเปลี่ยนเทคโนโลยีเพื่อแนะนำคุณสมบัติต่างๆ เช่น ZK-SNARK หรือการแบ่งชิ้นส่วน ตามทฤษฎีแล้ว sharded blockchain สามารถเพิ่ม shards ได้มากขึ้น สิ่งนี้จะนำไปสู่การเพิ่มสิ่งต่าง ๆ มากขึ้นหรือไม่?
ปรากฎว่ามีปัจจัยทางเทคนิคที่สำคัญและค่อนข้างละเอียดอ่อนซึ่งจำกัดความสามารถในการปรับขนาดของบล็อกเชน แม้จะมีบล็อกเชนแบบแยกส่วนก็ตาม ในหลายกรณี เราจะมีโซลูชันความสามารถในการปรับขยายที่สอดคล้องกัน แต่โซลูชันเหล่านี้ก็มีข้อจำกัดเช่นกัน โพสต์นี้จะสำรวจปัญหาต่างๆ ของแผนการปรับขนาดเหล่านี้
ปัญหาทั้งหมดสามารถแก้ไขได้โดยการเพิ่มพารามิเตอร์ แต่ราคาเท่าไหร่?
1 ผู้ใช้ทั่วไปยังสามารถเรียกใช้โหนดได้ ซึ่งเป็นสิ่งสำคัญสำหรับการกระจายอำนาจของบล็อกเชน
เมื่อเวลา 02:35 น. คุณได้รับโทรศัพท์ด่วนจากเพื่อนที่อยู่อีกซีกโลกหนึ่งให้ช่วยคุณจัดการกลุ่มการขุด (หรืออาจเป็นกลุ่มการเดิมพัน) คู่ของคุณบอกคุณว่าเมื่อประมาณ 14 นาทีที่แล้ว พูลของคุณและพูลอื่นๆ อีกหลายตัวถูกแยกออกจากเชนทันที และเชนเดิมยังคงใช้พลังการประมวลผลเครือข่ายถึง 79% ตามโหนดของคุณ บล็อกที่สร้างโดยเชนส่วนใหญ่นี้ (เชนดั้งเดิม) นั้นไม่ถูกต้อง สิ่งนี้ส่งผลให้เกิดข้อผิดพลาดของยอดคงเหลือ: บล็อคกุญแจดูเหมือนจะจัดสรรเหรียญเพิ่มเติม 4.5 ล้านเหรียญไปยังที่อยู่ที่ไม่รู้จักผิดพลาด
หนึ่งชั่วโมงต่อมา คุณเริ่มสื่อสารในกลุ่มโทรเลขกับกลุ่มการขุดอีกสองกลุ่มที่สับสนเช่นเดียวกับคุณ และบล็อกนักสำรวจและการแลกเปลี่ยน ในที่สุดคุณก็เห็นใครบางคนทวีตลิงก์ "กองทุนการพัฒนาโปรโตคอลที่ยั่งยืนบนเครือข่ายใหม่เปิดตัวอย่างเป็นทางการ" ทวีตอ่าน
ในตอนเช้า ทวิตเตอร์ ฟอรัมชุมชนเต็มไปด้วยข้อโต้แย้งที่ไม่ถูกเซ็นเซอร์ การสนทนามีอยู่ทุกที่ แต่ในเวลานี้ ส่วนใหญ่ของโทเค็น 4.5 ล้านโทเค็นที่ออกใหม่ก่อนหน้านี้ได้ถูกแปลงเป็นสินทรัพย์อื่นบนเครือข่าย และมีการทำธุรกรรม DeFi หลายพันล้านดอลลาร์ 79% ของโหนดที่สอดคล้องกันและเบราว์เซอร์ที่สำคัญทั้งหมดและกระเป๋าเงินขนาดเล็กกำลังติดตามเครือข่ายใหม่นี้ บางทีกองทุนสำหรับนักพัฒนาใหม่นี้อาจจะเป็นทุนในการพัฒนาบางส่วน หรือบางทีเงินทั้งหมดนั้นอาจถูกกลืนหายไปจากกลุ่มการขุดชั้นนำ การแลกเปลี่ยน ฯลฯ แต่ไม่ว่าผลจะออกมาเป็นอย่างไร สำหรับความตั้งใจและวัตถุประสงค์ทั้งหมดแล้ว กองทุนก็ล้มเหลว และผู้ใช้ทั่วไปก็ไม่มีอำนาจที่จะต่อสู้กลับ
การแสดงที่ดีกำลังจะมา อาจได้รับทุนจาก MolochDAO หรืออะไรสักอย่าง
สิ่งนี้สามารถเกิดขึ้นกับ blockchain ของคุณได้หรือไม่? ชุมชนบล็อกเชนระดับหัวกะทิของคุณ รวมถึงกลุ่มการขุด นักสำรวจบล็อก และโหนดผู้ดูแล มีแนวโน้มที่จะประสานงานกันเป็นอย่างดี พวกเขาน่าจะอยู่ในกลุ่ม Telegram และกลุ่ม WeChat เดียวกัน หากพวกเขาต้องการเปลี่ยนแปลงอย่างกะทันหันกับกฎโปรโตคอลเพื่อผลประโยชน์ของตนเอง พวกเขาก็อาจจะทำ Ethereum blockchain สามารถแก้ไขความล้มเหลวที่เป็นเอกฉันท์ได้อย่างสมบูรณ์ภายในสิบชั่วโมง หาก blockchain ของคุณมีการใช้งานไคลเอ็นต์เพียงตัวเดียว และคุณเพียงแค่ปรับใช้การเปลี่ยนแปลงโค้ดกับโหนดไม่กี่สิบโหนด ดังนั้นการประสานงานในการเปลี่ยนโค้ดไคลเอ็นต์ความเร็วจะเร็วขึ้น วิธีที่แน่นอนเพียงวิธีเดียวที่จะทำให้การโจมตีทางสังคมแบบประสานงานดังกล่าวไม่ได้ผลคือผ่านการป้องกันอย่างแข็งขันของชุมชนที่กระจายอำนาจหรือที่เรียกว่าผู้ใช้
ขอให้ชัดเจน: การต่อต้านการเปลี่ยนแปลงโปรโตคอลที่เป็นอันตรายของคุณมาจากวัฒนธรรมของผู้ใช้ที่ตรวจสอบบล็อคเชน แทนที่จะเป็น PoW หรือ PoS - Hasu
สิ่งนี้สามารถเห็นได้จากสิ่งที่ Hasu กล่าว
หากชุมชนของคุณประกอบด้วย 37 โหนดรันเนอร์และผู้ฟังแบบพาสซีฟ 80,000 คนที่ตรวจสอบลายเซ็นและบล็อกส่วนหัว ผู้โจมตีจะชนะ ถ้าทุกคนในชุมชนของคุณกำลังเรียกใช้โหนด ผู้โจมตีจะล้มเหลว เราไม่ทราบว่าเกณฑ์ที่แน่นอนสำหรับ "ภูมิต้านทานฝูง" ต่อการโจมตีแบบประสานกันคืออะไร แต่สิ่งหนึ่งที่ชัดเจนอย่างยิ่งคือ โหนดจำนวนมากย่อมดีกว่า โหนดน้อยกว่าจะแย่กว่า และแน่นอนว่าเราต้องการมากกว่าสองสามโหลหรือสองสามร้อย
ชื่อระดับแรก
2 แล้วเราต้องทำงานเต็มโหนดมากแค่ไหน?
เพื่อเพิ่มจำนวนผู้ใช้ที่สามารถเรียกใช้โหนดได้ เราจะมุ่งเน้นไปที่ฮาร์ดแวร์ระดับผู้บริโภคทั่วไป เป็นไปได้ที่จะเพิ่มความจุของเครือข่ายโดยต้องการฮาร์ดแวร์พิเศษบางอย่างที่พร้อมใช้งาน (เช่น จาก Amazon) แต่ในทางปฏิบัติสิ่งนี้ไม่ได้เพิ่มความสามารถในการปรับขนาดมากนัก
มีข้อจำกัดที่สำคัญสามประการสำหรับความสามารถของโหนดทั้งหมดในการประมวลผลธุรกรรมจำนวนมาก:
พลังการประมวลผล: เปอร์เซ็นต์ของพลังงาน CPU ที่จำเป็นสำหรับการรันโหนดอย่างปลอดภัย
แบนด์วิดธ์: จากความเป็นจริงของการเชื่อมต่ออินเทอร์เน็ตในปัจจุบัน หนึ่งบล็อกสามารถบรรจุได้กี่ไบต์
ที่เก็บข้อมูล: เราสามารถขอให้ผู้ใช้จัดเก็บดิสก์ได้เท่าใด นอกจากนี้ ความเร็วในการอ่านต้องใช้ความเร็วเท่าไร? (สามารถใช้ฮาร์ดไดรฟ์เชิงกลของ HDD ได้หรือไม่ หรือคุณต้องการไดรฟ์โซลิดสเทตหรือไม่)
ความเข้าใจผิดส่วนใหญ่เกี่ยวกับวิธีที่ blockchain สามารถปรับขนาดได้โดยใช้เทคโนโลยี "ง่ายๆ" เกิดจากการมองโลกในแง่ดีมากเกินไปเกี่ยวกับตัวเลขเหล่านี้ เราสามารถแนะนำปัจจัยทั้งสามนี้ทีละตัว:
ความสามารถในการคำนวณ
ข้อผิดพลาด: พลังงาน CPU 100% สามารถใช้สำหรับการตรวจสอบบล็อก
ถูกต้อง: สามารถใช้พลังงาน CPU ประมาณ 5-10% สำหรับการตรวจสอบความถูกต้องของบล็อก
มีสี่สาเหตุหลักสำหรับเปอร์เซ็นต์ต่ำ:
เราต้องการส่วนต่างของความปลอดภัยจากความเป็นไปได้ของการโจมตี DoS (ธุรกรรมที่ทำโดยผู้โจมตีเพื่อใช้ประโยชน์จากจุดอ่อนของโค้ดจะใช้เวลาดำเนินการนานกว่าธุรกรรมปกติ)
โหนดต้องสามารถซิงค์เชนได้หลังจากออฟไลน์ ถ้าฉันตัดการเชื่อมต่อจากเครือข่ายสักครู่ ฉันน่าจะสามารถซิงค์กับเครือข่ายได้อีกครั้งในไม่กี่วินาที
การเรียกใช้โหนดไม่ควรทำให้แบตเตอรี่หมดเร็วเกินไป และไม่ควรทำให้แอปพลิเคชันอื่นๆ ทั้งหมดทำงานช้าลง
โหนดยังจำเป็นต้องทำงานการผลิตแบบ non-block อื่นๆ โดยส่วนใหญ่จะตรวจสอบความถูกต้องและตอบสนองต่อธุรกรรมและคำขอที่เข้ามาบนเครือข่าย p2p
โปรดทราบว่าจนกระทั่งเมื่อเร็วๆ นี้ คำอธิบายส่วนใหญ่สำหรับ "ทำไมเพียง 5-10%" มุ่งเน้นไปที่ปัญหาที่แตกต่างกัน: เนื่องจากบล็อก PoW ปรากฏขึ้นแบบสุ่ม ยิ่งใช้เวลานานในการตรวจสอบความถูกต้องของบล็อกเพิ่มขึ้นพร้อมกัน ความเสี่ยงในการสร้างหลายบล็อก มีวิธีแก้ไขปัญหานี้มากมาย (เช่น Bitcoin NG หรือการใช้ PoS) แต่การแก้ไขเหล่านั้นไม่สามารถแก้ไขอีกสี่ข้อที่เหลือได้ ดังนั้นจึงไม่ได้ให้ประโยชน์อย่างมากในการปรับขนาดอย่างที่หลายคนคิดในตอนแรก
ความเท่าเทียมไม่ใช่ทุกสิ่ง โดยทั่วไปแล้ว แม้แต่ไคลเอ็นต์บล็อกเชนแบบเธรดเดียวที่ดูเหมือนจะได้รับการขนานกัน: ลายเซ็นสามารถตรวจสอบได้ด้วยเธรดเดียว ในขณะที่การดำเนินการเสร็จสิ้นโดยเธรดอื่น และมีลอจิกพูลธุรกรรมการจัดการเธรดแยกต่างหากในเบื้องหลัง นอกจากนี้ ยิ่งใช้เธรดทั้งหมดใกล้ถึง 100% ก็ยิ่งใช้พลังงานมากขึ้นในการรันโหนด และลดขอบเขตความปลอดภัยเมื่อเทียบกับ DoS
แบนด์วิธ
ข้อผิดพลาด: หากเราสร้างบล็อกขนาด 10 MB ทุก 2-3 วินาที ผู้ใช้ส่วนใหญ่จะมีความเร็วเครือข่ายมากกว่า 10 MB/วินาที จึงสามารถจัดการกับบล็อกดังกล่าวได้อย่างแน่นอน
ถูกต้อง: บางทีเราอาจประมวลผลบล็อก 1-5 MB ทุกๆ 12 วินาที มันยากอยู่แล้ว
เรามักจะได้ยินสถิติโฆษณาในปัจจุบันเกี่ยวกับปริมาณแบนด์วิธที่การเชื่อมต่ออินเทอร์เน็ตสามารถให้ได้: มักจะได้ยินตัวเลข 100 Mbps หรือแม้แต่ 1 Gbps อย่างไรก็ตาม มีความคลาดเคลื่อนอย่างมากระหว่างแบนด์วิธที่โฆษณาและแบนด์วิดธ์ที่คาดไว้จริงเนื่องจากสาเหตุหลายประการ:
"Mbps" หมายถึง "ล้านบิตต่อวินาที" บิตคือ 1/8 ของไบต์ ดังนั้นคุณต้องหารตัวเลขบิตที่โฆษณาด้วย 8 เพื่อให้ได้จำนวนไบต์ในโฆษณา
เครือข่าย p2p จะนำค่าโสหุ้ยมาเองอย่างหลีกเลี่ยงไม่ได้: โหนดมักจะลงเอยด้วยการดาวน์โหลดและอัปโหลดบล็อกเดียวกันซ้ำหลายครั้ง (ไม่ต้องพูดถึงธุรกรรมที่ออกอากาศผ่าน mempool ก่อนที่จะรวมอยู่ในบล็อก)
พื้นที่จัดเก็บ
พื้นที่จัดเก็บ
ข้อความ
ข้อผิดพลาด: 10 TB
ข้อความ
ถูกต้อง: 512 GB
อย่างที่คุณอาจเดาได้ ข้อโต้แย้งหลักที่นี่: ความแตกต่างระหว่างทฤษฎีและการปฏิบัติ
กลุ่มนักวิจัยโปรโตคอลบล็อกเชนได้ทำการสำรวจว่าทุกคนมีพื้นที่ดิสก์เท่าใด ฉันรู้ว่าขนาดตัวอย่างมีขนาดเล็ก แต่ก็ยังบอกอะไรบางอย่างได้
นอกจากนี้ ขนาดพื้นที่เก็บข้อมูลยังกำหนดเวลาที่โหนดใหม่จะสามารถออนไลน์และเริ่มเข้าร่วมในเครือข่ายได้ ข้อมูลใด ๆ ที่โหนดที่มีอยู่จะต้องเก็บไว้คือข้อมูลที่โหนดใหม่จะต้องดาวน์โหลด เวลาในการซิงค์เริ่มต้น (และแบนด์วิธ) ยังเป็นอุปสรรคสำคัญสำหรับผู้ใช้ที่เรียกใช้โหนด การซิงโครไนซ์โหนด geth ใหม่ใช้เวลาประมาณ 15 ชั่วโมงในขณะที่เขียนโพสต์บล็อกนี้
หากการใช้งาน Ethereum เพิ่มขึ้น 10 เท่า จะใช้เวลาอย่างน้อยหนึ่งสัปดาห์ในการซิงค์โหนด geth ใหม่ ซึ่งมักจะทำให้การเชื่อมต่อเครือข่ายของคุณถูกจำกัด สิ่งนี้มีความสำคัญอย่างยิ่งในระหว่างการโจมตี เมื่อการตอบสนองต่อการโจมตีสำเร็จเกี่ยวข้องกับผู้ใช้ใหม่ที่ไม่เคยเรียกใช้โหนดมาก่อน
ชื่อระดับแรก
นอกจากนี้ยังมีปฏิสัมพันธ์ระหว่างต้นทุนทั้งสามนี้ เนื่องจากฐานข้อมูลภายในใช้โครงสร้างแบบต้นไม้เพื่อจัดเก็บและดึงข้อมูล ค่าใช้จ่ายในการดึงข้อมูลจากฐานข้อมูลจึงเพิ่มขึ้นตามขนาดของฐานข้อมูลในเชิงลอการิทึม ในความเป็นจริง เนื่องจากเลเยอร์บนสุด (หรือหลายเลเยอร์บนสุด) สามารถแคชไว้ใน RAM ได้ ค่าใช้จ่ายในการเข้าถึงดิสก์จึงแปรผันตามขนาดของฐานข้อมูล ซึ่งเป็นหลายเท่าของขนาดของข้อมูลที่แคชใน RAM
อย่าใช้กราฟนี้อย่างแท้จริง ฐานข้อมูลที่แตกต่างกันทำงานแตกต่างกัน และส่วนในหน่วยความจำมักจะเป็นเพียงระดับเดียว (แต่ใหญ่) (ดูแผนผัง LSM ที่ใช้ใน leveldb) แต่หลักการพื้นฐานเหมือนกัน
ตัวอย่างเช่น หากแคชมีขนาด 4 GB และเราถือว่าแต่ละชั้นของฐานข้อมูลมีขนาดใหญ่กว่าชั้นก่อนหน้า 4 เท่า สถานะปัจจุบันของ Ethereum ที่ ~64 GB จะต้องมีสิทธิ์เข้าถึง ~2 ครั้ง อย่างไรก็ตาม หากขนาดสถานะเพิ่มขึ้น 4x เป็น ~256 GB การเข้าถึงจะเพิ่มเป็น ~3 ดังนั้นการเพิ่มขึ้น 4 เท่าของขีดจำกัดของแก๊สจึงสามารถแปลเป็น ~6 เท่าของเวลาในการตรวจสอบความถูกต้องของบล็อกได้ ผลกระทบอาจรุนแรงกว่า: โดยทั่วไปการอ่านและเขียนจะใช้เวลานานกว่าเมื่อไดรฟ์เต็มนานกว่าเมื่อไดรฟ์ใกล้เต็ม
4 สิ่งนี้หมายความว่าอย่างไรสำหรับ Ethereum
ทุกวันนี้ ใน Ethereum blockchain การเรียกใช้โหนดกลายเป็นเรื่องท้าทายสำหรับผู้ใช้หลายคน แม้ว่าจะยังคงทำได้ในฮาร์ดแวร์ทั่วไป (ฉันเพิ่งซิงค์โหนดบนแล็ปท็อปขณะที่ฉันเขียนสิ่งนี้!) ดังนั้นเราจึงเข้าใกล้คอขวด ความกังวลที่ใหญ่ที่สุดของนักพัฒนาหลักคือขนาดพื้นที่เก็บข้อมูล ดังนั้น สำหรับตอนนี้ ความพยายามอย่างกล้าหาญในการแก้ปัญหาคอขวดของคอมพิวเตอร์และข้อมูล หรือแม้แต่การเปลี่ยนแปลงอัลกอริทึมที่สอดคล้องกัน ไม่น่าจะส่งผลให้ขีดจำกัดก๊าซที่ยอมรับเพิ่มขึ้นอย่างมาก แม้แต่การแก้ช่องโหว่ DoS ที่โดดเด่นที่สุดของ Ethereum ก็ยังเพิ่มขีดจำกัดก๊าซได้เพียง 20% เท่านั้น
ทางออกเดียวสำหรับปัญหาขนาดพื้นที่เก็บข้อมูลคือการไร้สถานะและการหมดอายุของสถานะ การไร้สัญชาติทำให้คลาสของโหนดสามารถตรวจสอบ blockchain ได้โดยไม่ต้องเก็บรักษาที่เก็บข้อมูลถาวร สถานะการเผยแพร่ที่หมดอายุซึ่งไม่ได้เข้าถึงเมื่อเร็วๆ นี้ ทำให้ผู้ใช้ต้องแสดงหลักฐานการบำรุงรักษาอย่างต่อเนื่องของสถานะเหล่านี้ด้วยตนเอง ทั้งสองเส้นทางนี้ถูกใช้มาเป็นเวลานานแล้ว และการพิสูจน์แนวคิดของการไร้รัฐไร้สัญชาติก็เริ่มขึ้นเช่นกัน เมื่อรวมกันแล้ว การปรับปรุงทั้งสองอย่างนี้น่าจะช่วยบรรเทาความกังวลเหล่านี้ได้อย่างมาก และเปิดประตูสู่ขีดจำกัดของก๊าซที่สูงขึ้นอย่างมาก อย่างไรก็ตาม แม้จะมีการใช้ภาวะไร้รัฐไร้สัญชาติและการหมดอายุสถานะแล้ว ขีดจำกัดก๊าซอาจเพิ่มขึ้นได้อย่างปลอดภัยประมาณ 3 เท่าก่อนที่ข้อจำกัดอื่นๆ จะเริ่มครอบงำอีกครั้ง
ชื่อระดับแรก
5 จะเกิดอะไรขึ้นหลังจากแยกส่วน
เป็นผลให้บล็อกเชนแบบแยกส่วนสามารถมีปริมาณธุรกรรมที่สูงมากได้อย่างปลอดภัย ซึ่งบล็อกเชนแบบแยกส่วนไม่สามารถทำได้ ต้องใช้ความเฉลียวฉลาดในการเข้ารหัสอย่างมากในการสร้างการแทนที่ที่ถูกต้องซึ่งผ่านการยืนยันอย่างสมบูรณ์ซึ่งปฏิเสธการบล็อกที่ไม่ถูกต้องได้สำเร็จ แต่สามารถทำได้: ทฤษฎีถูกสร้างขึ้นและมีการพิสูจน์แนวคิดตามข้อมูลจำเพาะแบบร่างที่กำลังดำเนินการอยู่
Ethereum กำลังวางแผนที่จะใช้ Quadratic Sharding และความสามารถในการขยายขนาดโดยรวมนั้นถูกจำกัดด้วยข้อเท็จจริงที่ว่าโหนดจะต้องสามารถจัดการ Shards แต่ละตัวได้ และ Beacon Chain จะต้องทำงานด้านการดูแลระบบสำหรับแต่ละ Shard หากชิ้นส่วนมีขนาดใหญ่เกินไป โหนดจะไม่สามารถประมวลผลชิ้นส่วนเดียวได้อีกต่อไป หากมีชิ้นส่วนมากเกินไป โหนดจะไม่สามารถประมวลผลห่วงโซ่บีคอนได้อีกต่อไป ผลคูณของข้อจำกัดทั้งสองนี้ก่อตัวเป็นขอบเขตบน
เป็นไปได้ว่าเราจะสามารถไปต่อได้โดยการแตกย่อยสามครั้งหรือทวีคูณ การสุ่มตัวอย่างความพร้อมใช้งานของข้อมูลจะมีความซับซ้อนมากขึ้นในการออกแบบนี้ แต่สามารถทำได้ แต่ Ethereum จะไม่นำส่วนย่อยที่สูงกว่าส่วนย่อยรองมาใช้ เหตุผลก็คือการแบ่งชิ้นส่วนจากชิ้นส่วนการทำธุรกรรมนั้นแทบจะเป็นไปไม่ได้เลยที่จะได้รับความสามารถในการปรับขยายเพิ่มเติม เว้นแต่ความเสี่ยงอื่นๆ เริ่มสูงจนไม่สามารถยอมรับได้
ชื่อระดับแรก
6 แล้วความเสี่ยงเหล่านี้คืออะไร?
จำนวนผู้ใช้ขั้นต่ำ
เป็นไปได้ว่าบล็อกเชนแบบ non-sharded สามารถทำงานได้แม้ว่าจะมีผู้ใช้เพียงรายเดียวที่เต็มใจเข้าร่วมก็ตาม นี่ไม่ใช่กรณีของบล็อกเชนแบบแยกส่วน: ไม่มีโหนดเดียวที่สามารถประมวลผลเชนทั้งหมดได้ ดังนั้นคุณต้องมีโหนดเพียงพอเพื่อให้อย่างน้อยโหนดเหล่านั้นสามารถประมวลผลบล็อกเชนร่วมกันได้ หากแต่ละโหนดสามารถจัดการได้ 50 TPS และเชนทั้งหมดสามารถรองรับได้ 10,000 TPS ดังนั้นเชนต้องการโหนดอย่างน้อย 200 โหนดเพื่อความอยู่รอด หากเชนในบางจุดมีโหนดน้อยกว่า 200 โหนด โหนดนั้นไม่สามารถติดตามเชนได้อีกต่อไป หรือโหนดหยุดตรวจหาบล็อกที่ไม่ถูกต้อง หรือสิ่งเลวร้ายอื่นๆ อาจเกิดขึ้นได้ ขึ้นอยู่กับวิธีการตั้งค่าซอฟต์แวร์โหนด
ในทางปฏิบัติ เนื่องจากความต้องการความซ้ำซ้อน (รวมถึงการสุ่มตัวอย่างความพร้อมใช้งานของข้อมูล) จำนวนโหนดขั้นต่ำที่ปลอดภัยจึงสูงกว่า "เชน TPS หารด้วยโหนด TPS" หลายเท่า สำหรับตัวอย่างข้างต้น สมมติว่ามี 1,000 โหนด
หากความสามารถของ sharded blockchain เพิ่มขึ้น 10 เท่า จำนวนผู้ใช้ขั้นต่ำก็จะเพิ่มขึ้น 10 เท่าเช่นกัน ตอนนี้ คุณอาจถามว่า: ทำไมเราไม่เริ่มต้นด้วยความจุขนาดเล็ก เพิ่มความจุเมื่อเราเห็นผู้ใช้จำนวนมาก และลดความจุเมื่อจำนวนผู้ใช้ลดลง
มีปัญหาบางอย่างที่นี่:
จะเกิดอะไรขึ้นหากผู้ใช้หลายคนออกจากระบบอย่างกะทันหันและกะทันหัน
เพิ่มจำนวนผู้ใช้ขั้นต่ำที่จำเป็นในการเริ่มต้นการแยก ทำให้การยึดครองที่เป็นอันตรายทำได้ยากขึ้น
จำนวนผู้ใช้ขั้นต่ำคือ 1,000 ซึ่งเกือบจะโอเค ในทางกลับกัน จำนวนผู้ใช้ขั้นต่ำกำหนดไว้ที่ 1 ล้านคน ซึ่งไม่สามารถยอมรับได้อย่างแน่นอน แม้แต่การกำหนดจำนวนผู้ใช้ขั้นต่ำที่ 10,000 คนก็ยังค่อนข้างเสี่ยง ดังนั้นจึงเป็นการยากที่จะพิสูจน์ว่ามี Sharded Blockchain ที่มีมากกว่าสองสามร้อย Shards
ชื่อระดับแรก
7 ความสามารถในการกู้คืนข้อมูลย้อนหลัง
คุณสมบัติที่สำคัญของบล็อกเชนที่ผู้ใช้ให้ความสำคัญคือความคงทน เมื่อบริษัทล้มละลายหรือหมดความสนใจในการดูแลระบบนิเวศ สินทรัพย์ดิจิทัลที่จัดเก็บไว้บนเซิร์ฟเวอร์จะหยุดมีอยู่ภายใน 10 ปี ในทางกลับกัน NFT บน Ethereum เป็นแบบถาวร
การประเมินความเสี่ยงนี้เป็นเรื่องง่าย นำความจุข้อมูลของ blockchain (MB/วินาที) คูณด้วย ~30 เพื่อรับจำนวนข้อมูลที่จัดเก็บไว้ใน TB ต่อปี แผนการชาร์ดดิ้งปัจจุบันมีความจุข้อมูลประมาณ 1.3 MB/วินาที ดังนั้นประมาณ 40 TB/ปี หากคุณเพิ่มขึ้น 10 เท่า จะกลายเป็น 400 TB/ปี หากเราต้องการให้ข้อมูลไม่เพียงเข้าถึงได้ แต่เข้าถึงได้ง่าย เราก็ต้องมีข้อมูลเมตาด้วย (เช่น ขยายขนาดธุรกรรมรวม) นั่นคือ 4 PB ต่อปี หรือ 40 PB ในระยะเวลา 10 ปี Internet Archive ใช้เพียง 50 PB ดังนั้น นี่จึงเป็นขอบเขตบนที่สมเหตุสมผลสำหรับการรักษาความปลอดภัยของบล็อกเชนที่แยกส่วน
สรุป
ดังนั้น ดูเหมือนว่าการออกแบบ Ethereum sharding นั้นมุ่งเป้าไปที่ค่าความปลอดภัยสูงสุดที่สมเหตุสมผลในทั้งสองมิติ ค่าคงที่สามารถเพิ่มได้เล็กน้อย แต่ไม่มากเกินไป
ชื่อระดับแรก
สรุป
มีสองวิธีในการพยายามปรับขนาดบล็อกเชน: การปรับปรุงทางเทคนิคขั้นพื้นฐานและการเพิ่มพารามิเตอร์ ขั้นแรก การเพิ่มพารามิเตอร์ฟังดูน่าสนใจ: หากคุณกำลังคำนวณเลขบนผ้าเช็ดปาก เป็นเรื่องง่ายที่จะโน้มน้าวใจตัวเองว่าแล็ปท็อปที่บ้านของคุณสามารถจัดการธุรกรรมได้หลายพันรายการต่อวินาที โดยไม่จำเป็นต้องใช้ ZK-SNARK, การย้อนกลับ หรือการแบ่งส่วนย่อย น่าเสียดายที่มีเหตุผลเล็กน้อยหลายประการที่ทำให้แนวทางนี้มีข้อบกพร่องโดยพื้นฐาน
คอมพิวเตอร์ที่ใช้โหนด blockchain ไม่สามารถใช้พลังงาน CPU ได้ 100% ในการตรวจสอบความถูกต้องของ blockchain พวกเขาต้องการความปลอดภัยสูงจากการโจมตี DoS ที่ไม่คาดคิด และพวกเขาต้องการความจุสำรองเพื่อทำสิ่งต่างๆ เช่น ประมวลผลธุรกรรมในงาน mempool ซึ่งคุณไม่ต้องการ เพื่อรันโหนดบนเครื่องเพื่อไม่ให้ใช้เครื่องกับแอพพลิเคชั่นอื่นในเวลาเดียวกัน แบนด์วิธยังเป็นเดิมพัน: การเชื่อมต่อ 10 MB/s ไม่ได้หมายความว่าคุณจะมีบล็อก 10 MB ต่อวินาทีได้! อาจจะบล็อก 1-5 MB ทุก ๆ 12 วินาที นี้เหมือนกับการจัดเก็บ การเพิ่มข้อกำหนดของฮาร์ดแวร์สำหรับการรันโหนดและการจำกัดการทำงานของโหนดเฉพาะนักแสดงเฉพาะนั้นไม่ใช่วิธีแก้ปัญหา สำหรับบล็อกเชนแบบกระจายอำนาจ ผู้ใช้ทั่วไปจะสามารถเรียกใช้โหนดและพัฒนาวัฒนธรรมที่เรียกใช้โหนดเป็นกิจกรรมปกติได้เป็นสิ่งสำคัญ


