ความท้าทายในการปรับขนาด Ethereum: ข้อมูลสถานะ
หมายเหตุบรรณาธิการ: บทความนี้มาจากผู้ที่ชื่นชอบ Ethereum (ID: ethfans)หมายเหตุบรรณาธิการ: บทความนี้มาจาก
ผู้ที่ชื่นชอบ Ethereum (ID: ethfans)
ผู้ที่ชื่นชอบ Ethereum (ID: ethfans)
ผู้เขียน: Trustnodes แปลและพิสูจน์อักษร: Min Min & A Jian พิมพ์ซ้ำโดย Odaily พร้อมการอนุญาต
แม้ว่าขีดจำกัดบนของบล็อก Gas ใน Ethereum จะเพิ่มขึ้น แต่ขนาดของบล็อก (ปริมาณข้อมูล) ก็ไม่ได้เปลี่ยนแปลงมากนัก เนื่องจากจำนวนธุรกรรมบน Ethereum ไม่ได้มีความสัมพันธ์เชิงบวกอย่างสมบูรณ์กับปริมาณข้อมูล
ดังที่คุณเห็นจากรูปด้านบน เห็นได้ชัดว่ามีความสัมพันธ์บางอย่างระหว่างขนาดของข้อมูลบล็อกบน Ethereum และขีดจำกัดบนของบล็อก Gas หากเป็นแผนภูมิเส้นก็จะแสดงแนวโน้มขาขึ้นด้วย อย่างไรก็ตามความสัมพันธ์ระหว่างทั้งสองค่อนข้างซับซ้อน
ก๊าซใน Ethereum เป็นหน่วยเชิงนามธรรมที่ใช้วัดปริมาณทรัพยากรคอมพิวเตอร์ที่ใช้ไปในการดำเนินการ
เนื่องจากสัญญาทัวริงเสร็จสมบูรณ์ คุณจึงสามารถรวมโครงสร้างการวนซ้ำจำนวนไม่สิ้นสุดในธุรกรรมของคุณได้ (เพื่อหลีกเลี่ยงการวนซ้ำไม่สิ้นสุด) Ethereum ได้กำหนดขีดจำกัดสูงสุดสำหรับ Gas ที่มีอยู่สำหรับบล็อกเดียว ซึ่งปัจจุบันอยู่ที่ 12 ล้าน
คำอธิบายภาพ
- ปริมาณธุรกรรม Ethereum ในเดือนมิถุนายน 2020-
แม้ว่าขีดจำกัด block gas จะเพิ่มขึ้น 50% แต่ปริมาณธุรกรรมบน Ethereum ก็ยังต่ำกว่าระดับสูงสุดตลอดกาล นี่เป็นเพราะแก๊สส่วนใหญ่ใช้สำหรับธุรกรรมโทเค็นหรือธุรกรรมสัญญาอัจฉริยะ
การทำธุรกรรมโทเค็นอย่างง่ายจะใช้ก๊าซ 80,000 รายการ ในขณะที่ธุรกรรมการโอนผ่านอีเทอร์จะใช้ก๊าซ 20,000 รายการ การดำเนินธุรกรรม dapp ขึ้นอยู่กับสถานการณ์ แต่ปริมาณการใช้ก๊าซมักจะสูงกว่าธุรกรรมโทเค็นสูงสุด)
ในทางตรงกันข้าม Bitcoin นั้นง่ายกว่ามาก ธุรกรรมพื้นฐานมีขนาดเพียง 250 ไบต์ (โดยที่ธุรกรรมมีขนาดเพียง 250 ไบต์หรืออาจเป็นฐาน จากนั้นธุรกรรมแต่ละรายการจะมีขนาด 20 ไบต์ เราไม่เข้าใจครึ่งหลังของประโยค—— ผู้แปล ).
ไม่มีการบีบอัดธุรกรรมระดับโปรโตคอลบน Ethereum เนื่องจากใช้ระบบบัญชี
เพื่ออำนวยความสะดวกในการจัดการบัญชี เครือข่าย Ethereum จะอัปเดตสถานะทุกครั้งที่มีการเพิ่มบล็อกใหม่ Griffin Ichiba Hotchkiss จากมูลนิธิ Ethereum กล่าวว่า:
"สถานะ" ของ Ethereum ที่สมบูรณ์หมายถึงสถานะปัจจุบันของบัญชีและยอดคงเหลือทั้งหมด และ 'หน่วยความจำ' ของสัญญาอัจฉริยะทั้งหมดที่ปรับใช้และทำงานใน EVM (Ethereum Virtual Machine) บน Ethereum blockchain ทุกบล็อกทุกบล็อกที่สรุปแล้ว มีสถานะเดียวและสถานะเดียวที่ทั้งเครือข่ายเห็นด้วย ทุกๆ ครั้งที่บล็อกใหม่ถูกเพิ่มเข้าไปในเชน
เพื่อให้การเปรียบเทียบที่ง่ายที่สุด: สถานะของ Bitcoin หมายถึง UTXO (ผลลัพธ์ของธุรกรรมที่ยังไม่ได้ใช้งาน) ไม่ว่าจะเป็นสถานะของ Ethereum หรือสถานะของ Bitcoin มันเป็นแนวคิดที่เข้าใจยาก พูดง่ายๆ ก็คือ หน่วยความจำ (ram) หรือ snapshot ของเครือข่ายนั่นเอง ดังนั้นทั้งยอดคงเหลือในบัญชีและฟังก์ชันรหัสที่อยู่ในสัญญาจึงปรากฏต่อสาธารณะ
ในการซิงค์ Ethereum จากบล็อกการกำเนิด คุณต้องสำรวจ "โหนด" 400 ล้านรายการ ซึ่งใช้เวลาประมาณ 1 สัปดาห์
ทุกครั้งที่มีการสร้างบล็อก โหนดเต็มมากกว่า 10,000 โหนดของเครือข่าย Ethereum ทั้งหมด (คอมพิวเตอร์ที่เรียกใช้ไคลเอ็นต์ Ethereum และบันทึกบล็อกเชน Ethereum ทั้งหมด) จะต้องได้รับการอัปเดตในเครื่อง โดยอัปเดต "โหนด" ของแผนผังสถานะประมาณ 3,000 รายการ
ซึ่งหมายความว่าทุกๆ 15 วินาที หน่วยความจำของคอมพิวเตอร์ของคุณต้องซิงค์บล็อกหนึ่ง และดิสก์จะต้องคอยอ่านและเขียนการเปลี่ยนแปลงไปยังเครือข่าย Ethereum ในแต่ละบล็อก
ดังนั้น ยิ่งมีการเปลี่ยนแปลงมากเท่าใด หน่วยความจำและดิสก์ของคอมพิวเตอร์ก็จะยุ่งมากขึ้นเท่านั้น หลังจากทรัพยากรถึงขีดจำกัดสูงสุดแล้ว ความคืบหน้าของเครือข่ายทั้งหมดจะไม่สามารถซิงโครไนซ์ได้
การไม่สามารถซิงค์ได้หมายความว่าไม่สามารถดาวน์โหลดประวัติได้ แต่ไม่สามารถทำธุรกรรมให้เสร็จสมบูรณ์ได้ในเวลาเดียวกันกับทั้งเครือข่าย
นอกจากนี้ บทความเมื่อปีที่แล้วชี้ให้เห็นว่าสำหรับโปรแกรมเมอร์แล้ว การสร้างแบบจำลองทางคณิตศาสตร์เพื่อเชื่อมโยง "ค่าใช้จ่ายในการดำเนินการ (แก๊ส) กับจำนวนทรัพยากรที่ใช้ (เช่น CPU และหน่วยความจำ)" อย่างถูกต้องนั้นไม่ใช่ปัญหาง่ายๆ
เอกสารยังระบุด้วยว่า: "เราพบความแตกต่างบางประการในแบบจำลองทางเศรษฐมิติ เช่น ความไม่สอดคล้องกันอย่างมากในการกำหนดราคาตามคำสั่งซื้อ เราออกแบบอัลกอริทึมเชิงพันธุกรรมที่สามารถสร้างสัญญาที่ประมวลผลช้ากว่าสัญญาทั่วไปถึง 200 เท่า หลังจากนั้น เราแสดงให้เห็นว่า การใช้งานไคลเอนต์ ethereum ที่สำคัญทั้งหมดมีความเสี่ยง และถ้าพวกเขาทำงานบนฮาร์ดแวร์ระดับผู้บริโภค พวกเขาจะไม่สามารถติดตามเครือข่ายได้ในกรณีที่เกิดการโจมตี"
ในทำนองเดียวกัน ในระบบ Bitcoin หากผู้โจมตีสร้างบล็อกที่ยากต่อการตรวจสอบ อาจทำให้ระบบการขุดของคอมพิวเตอร์ของคุณพังได้ อย่างไรก็ตาม หากมีคนทำเช่นนี้ มีโอกาสสูญเสียรางวัลบล็อก 6.25 BTC หากกลุ่มการขุดทำเช่นนี้ มีโอกาสสูงที่จะสูญเสียนักขุดทั้งหมด
แต่ในระบบ Ethereum สิ่งที่ผู้โจมตีสูญเสียคือค่าใช้จ่ายในการออกสัญญาเท่านั้น จากการค้นพบ ของนักวิจัย ความสูญเสียนี้ไม่ได้แปรผันโดยตรงกับผลกระทบของการโจมตี
แน่นอน เราสามารถเรียกใช้โหนดผ่านผู้ให้บริการคลาวด์ Infura การดำเนินการส่วนใหญ่บนเครือข่าย Ethereum ดำเนินการโดยโหนดบน Infura
Joseph Lubin ผู้ก่อตั้ง Ethereum incubator ConsenSys กล่าวว่า ConsenSys เพิ่งร่วมมือกับ AMD เพื่อสร้าง W3BCLOUD ซึ่งมีจุดมุ่งหมายเพื่อสร้าง
อย่างไรก็ตาม ทางออกที่แท้จริงในตอนนี้คือการชาร์ดดิ้งระดับสัญญาของบล็อกเชน
คำอธิบายภาพ
-Ethereum Scaling Plan (มิถุนายน 2020)-
โซลูชันส่วนขยายสามรายการทางด้านขวามีสภาพแวดล้อมเครือข่ายและบล็อกเชนที่เป็นอิสระต่อกัน และได้สร้างการสื่อสารกับ Ethereum อย่างไรก็ตาม สำหรับตอนนี้ เครือข่ายเหล่านี้ไม่ได้สื่อสารระหว่างกัน
หากประวัติศาสตร์ซ้ำรอย ขั้นตอนแรกอาจเป็นการเชื่อมต่อคอมพิวเตอร์จากโลกอิสระหลายๆ เครื่องเข้าด้วยกัน เพื่อให้ทุกคนสามารถสื่อสารกันได้
ในตอนแรก หากคุณมีแล็ปท็อป คุณจะสามารถเข้าถึงข้อมูลได้จากแล็ปท็อปเครื่องนั้นเท่านั้น ต่อมา ด้วยความก้าวหน้าทางเทคโนโลยี แล็ปท็อปหลายเครื่องเชื่อมต่อกัน (เริ่มแรกใช้สายเคเบิล) และคุณสามารถเข้าถึงข้อมูลบนแล็ปท็อปของเพื่อนบ้านได้
เนื่องจากคอมพิวเตอร์เหล่านี้สามารถสื่อสารกันได้ เราจึงอนุญาตให้ทุกคนเข้าถึงข้อมูลของเราได้ แต่เราไม่จำเป็นต้องให้ทุกคนเก็บข้อมูลของเรา เว้นแต่พวกเขาจะต้องการ
เฉพาะผู้ที่รับผิดชอบในการแบ่งปันข้อมูลเท่านั้นที่ต้องจัดเก็บข้อมูล เราเพียงแค่ต้องเชื่อมต่อกับคอมพิวเตอร์ของผู้อื่นเพื่อให้เราสามารถมองเห็นข้อมูลของกันและกันได้
นั่นคือเราต้องใช้การสื่อสารระหว่าง OMG และ ZK เหตุผลที่เราไม่สามารถสร้างการสื่อสารระหว่าง Bitcoin และ Ethereum ได้เนื่องจากเป็นโปรโตคอลที่แตกต่างกัน แต่ยังมีโครงการที่พยายามเชื่อมต่อทั้งสอง
หากเราปล่อยให้กลุ่มข้อมูลเหล่านี้สื่อสารกันเอง ตราบใดที่พวกเขาทั้งหมดทำงานบนโปรโตคอลเดียวกัน ก็จะไม่มีข้อจำกัดในการขยายขนาดอีกต่อไป
นี่คือสิ่งที่ต้องใช้เวลามากในการบรรลุ หากเรามองจากมุมมองนี้ เราจะพบว่าทั้ง Satoshi Nakamoto และ Gregory Maxwell พูดถูก เพราะพวกเขาพิจารณาจากระดับเวลาที่แตกต่างกัน


