ความสามารถในการปรับขนาดได้อยู่ในระดับแนวหน้าของการอภิปรายทางเทคนิคในฉาก cryptocurrency ปัจจุบัน bitcoin blockchain มีขนาดเกิน 12 GB ซึ่งต้องใช้เวลาหลายวันสำหรับโหนด Bitcoind ใหม่เพื่อซิงโครไนซ์อย่างเต็มที่ชุด UTXO ที่ต้องเก็บไว้ใน RAM กำลังเข้าใกล้ 500 MB และการปรับปรุงซอฟต์แวร์อย่างต่อเนื่องในซอร์สโค้ดไม่เพียงพอที่จะบรรเทาแนวโน้ม ในทุก ๆ ปีที่ผ่านมามันจะกลายเป็นเรื่องยากมากขึ้นสำหรับผู้ใช้ทั่วไปในการเรียกใช้โหนด bitcoin ที่ใช้งานได้อย่างเต็มที่บนเดสก์ท็อปของตัวเองและแม้กระทั่งราคาการยอมรับของผู้ค้าและความนิยมของ bitcoin ได้พุ่งสูงขึ้น ต่อวินาที หากความนิยมของ Bitcoin เพิ่มขึ้นเป็นสิบเท่าอีกครั้งขีด จำกัด จะบังคับให้ค่าธรรมเนียมการทำธุรกรรมสูงถึงเกือบหนึ่งดอลลาร์ทำให้ Bitcoin มีประโยชน์น้อยกว่า PayPal หากมีปัญหาหนึ่งที่การดำเนินการอย่างมีประสิทธิภาพของ cryptocurrency 2.0 จำเป็นต้องแก้ไขมันเป็นสิ่งนี้
เหตุผลที่เราอยู่ในยานอวกาศ cryptocurrency ที่มีปัญหาเหล่านี้และกำลังคืบหน้าเล็กน้อยในการหาวิธีแก้ปัญหาคือมีปัญหาพื้นฐานอย่างหนึ่งกับการออกแบบ cryptocurrency ทั้งหมดที่ต้องได้รับการแก้ไข จากหลักฐานการทำงานที่หลากหลายหลักฐานการถือหุ้นและการออกแบบบล็อกเชนที่มีชื่อเสียงที่มีชื่อเสียงซึ่งได้รับการเสนอไม่ใช่หนึ่งเดียวที่สามารถเอาชนะปัญหาหลักเดียวกันได้: ทุกโหนดเต็มรูปแบบต้องดำเนินการทุกธุรกรรม การมีโหนดที่สามารถประมวลผลการทำธุรกรรมทุกรายการแม้จะมีระดับการทำธุรกรรมนับพันต่อวินาทีเป็นไปได้ ระบบส่วนกลางเช่น PayPal, MasterCard และเซิร์ฟเวอร์ธนาคารทำได้ดี อย่างไรก็ตามปัญหาคือต้องใช้ทรัพยากรจำนวนมากในการตั้งค่าเซิร์ฟเวอร์ดังกล่าวและดังนั้นจึงไม่มีแรงจูงใจสำหรับทุกคนยกเว้นธุรกิจขนาดใหญ่สองสามแห่งที่จะทำ เมื่อสิ่งที่เกิดขึ้นจากนั้นโหนดบางอย่างเหล่านั้นอาจเสี่ยงต่อแรงจูงใจในการทำกำไรและแรงกดดันด้านกฎระเบียบและอาจเริ่มทำการเปลี่ยนแปลงทางทฤษฎีโดยไม่ได้รับอนุญาตต่อรัฐเช่นการให้เงินฟรีและผู้ใช้อื่น ๆ ทั้งหมดซึ่งขึ้นอยู่กับโหนดส่วนกลางเพื่อความปลอดภัย
ใน Ethereum ณ จุดนี้เราไม่มีการปรับปรุงพื้นฐานเกี่ยวกับหลักการที่ว่าทุกโหนดเต็มรูปแบบจะต้องดำเนินการทุกธุรกรรม มีความคิดที่ชาญฉลาดที่เสนอโดยนักพัฒนา Bitcoin หลายแห่งที่เกี่ยวข้องกับโซ่ที่มีการผสมพันธุ์หลายครั้งพร้อมโปรโตคอลสำหรับการย้ายเงินทุนจากห่วงโซ่หนึ่งไปยังอีกห่วงและสิ่งเหล่านี้จะเป็นส่วนใหญ่ของความพยายามในการวิจัยสกุลเงินดิจิตอลของเรา แต่ ณ จุดนี้การวิจัยเกี่ยวกับวิธีการใช้งานนี้ อย่างไรก็ตามด้วยการแนะนำของ บล็อกโปรโตคอล 2.0 (BP2) เรามีโปรโตคอลที่ในขณะที่ไม่ผ่านข้อบกพร่องความสามารถในการปรับขนาดของ blockchain พื้นฐานได้เราจะพาเราไปที่นั่น: ตราบใดที่มีโหนดเต็มอย่างน้อยหนึ่งโหนดที่ซื่อสัตย์ (และด้วยเหตุผลต่อต้านสแปมมีอย่างน้อย 0.01% กำลังการขุดหรือการเป็นเจ้าของอีเธอร์
ไคลเอนต์เบาคืออะไร?

แนวคิดพื้นฐานที่อยู่เบื้องหลังไคลเอนต์เบาคือต้องขอบคุณโครงสร้างข้อมูลที่มีอยู่ใน Bitcoin (และในก แบบฟอร์มดัดแปลงethereum) เรียกว่าต้นไม้ Merkle เป็นไปได้ที่จะสร้างหลักฐานว่าการทำธุรกรรมบางอย่างอยู่ในบล็อกเช่นการพิสูจน์นั้นมีขนาดเล็กกว่าบล็อกของตัวเองมาก ตอนนี้บล็อก bitcoin มีขนาดประมาณ 150 kb; การพิสูจน์การทำธุรกรรมของ Merkle นั้นอยู่ที่ประมาณครึ่งกิโลไบต์ หากบล็อก Bitcoin มีขนาด 2 GB การพิสูจน์อาจขยายไปถึง Kilobyte ทั้งหมด ในการสร้างหลักฐานเราเพียงแค่ต้องติดตาม “สาขา” ของต้นไม้ตลอดทางจากการทำธุรกรรมไปยังรูทและให้โหนดที่ด้านข้างทุกขั้นตอน การใช้กลไกนี้ลูกค้าเบาสามารถมั่นใจได้ว่าการทำธุรกรรมที่ส่งไปยังพวกเขา (หรือจากพวกเขา) ทำให้มันเป็นบล็อกจริง
สิ่งนี้ทำให้ยากขึ้นอย่างมากสำหรับคนงานที่เป็นอันตรายในการหลอกลูกค้าเบา ๆ หากในโลกสมมุติที่การใช้โหนดเต็มรูปแบบนั้นไม่สามารถทำได้อย่างสมบูรณ์สำหรับผู้ใช้ทั่วไปผู้ใช้ต้องการอ้างว่าพวกเขาส่ง 10 BTC ไปยังผู้ค้าที่มีทรัพยากรไม่เพียงพอที่จะดาวน์โหลดบล็อกทั้งหมดผู้ค้าจะไม่ทำอะไรไม่ถูก พวกเขาจะขอหลักฐานว่าการทำธุรกรรมที่ส่ง 10 BTC ไปยังพวกเขาอยู่ในบล็อก หากผู้โจมตีเป็นนักขุดพวกเขาอาจมีความซับซ้อนมากขึ้นและใส่ธุรกรรมดังกล่าวลงในบล็อก แต่ให้ใช้เงินทุน (เช่น UTXO) ที่ไม่มีอยู่จริง อย่างไรก็ตามถึงแม้จะมีการป้องกัน: ลูกค้าเบาสามารถขอหลักฐานการพิสูจน์ต้นไม้ Merkle ที่สองแสดงให้เห็นว่าเงินทุนที่การทำธุรกรรม 10 BTC นั้นมีอยู่เช่นกันและอื่น ๆ ลงไปที่ความลึกของบล็อกที่ปลอดภัย จากมุมมองของคนงานเหมืองโดยใช้ไคลเอนต์แสง morphs นี้เป็นโปรโตคอลการตอบสนองต่อความท้าทาย: โหนดเต็มรูปแบบที่ตรวจสอบการทำธุรกรรมเมื่อตรวจพบว่าการทำธุรกรรมใช้เอาต์พุตที่ไม่มีอยู่สามารถเผยแพร่ “ความท้าทาย” ไปยังเครือข่ายและโหนดอื่น ๆ อย่างไรก็ตามมีจุดอ่อนอย่างหนึ่งในโปรโตคอลนี้ใน Bitcoin: ค่าธรรมเนียมการทำธุรกรรม นักขุดที่เป็นอันตรายสามารถเผยแพร่บล็อกให้รางวัล 1,000 BTC และคนงานเหมืองอื่น ๆ ที่ใช้งานลูกค้าเบาจะไม่มีทางรู้ว่าบล็อกนี้ไม่ถูกต้องโดยไม่ต้องเพิ่มค่าธรรมเนียมทั้งหมดจากการทำธุรกรรมทั้งหมดเอง สำหรับทุกสิ่งที่พวกเขารู้ว่าคนอื่นอาจจะบ้าพอที่จะเพิ่มค่าธรรมเนียม 975 BTC
BP2

ด้วยโปรโตคอลบล็อกก่อนหน้า 1.0 Ethereum ยิ่งแย่ลงไปอีก ไม่มีทางที่ลูกค้าจะต้องตรวจสอบว่าต้นไม้สถานะของบล็อกเป็นผลที่ถูกต้องของสถานะหลักและรายการธุรกรรม ในความเป็นจริงวิธีเดียวที่จะได้รับการรับรองใด ๆ คือให้โหนดทำงานผ่านการทำธุรกรรมทุกครั้งและนำไปใช้กับสถานะหลักของตัวเอง อย่างไรก็ตาม BP2 เพิ่มการรับรองที่แข็งแกร่งขึ้น กับ BP2ตอนนี้ทุกบล็อกมีต้นไม้สามต้น: ต้นไม้รัฐต้นไม้ธุรกรรมและต้นไม้ร่องรอยสแต็กให้รากกลางของต้นไม้รัฐและต้นไม้ธุรกรรมหลังจากแต่ละขั้นตอน สิ่งนี้จะช่วยให้โปรโตคอลตอบสนองการท้าทายซึ่งในรูปแบบง่ายทำงานได้ดังนี้:
-
Miner M เผยแพร่บล็อก B. บางทีคนงานเหมืองอาจเป็นอันตรายซึ่งในกรณีนี้บล็อกจะอัปเดตสถานะไม่ถูกต้องในบางจุด
-
Mild Node L ได้รับ block B และทำหลักฐานพื้นฐานการทำงานและการตรวจสอบความถูกต้องของโครงสร้างบนส่วนหัว หากการตรวจสอบเหล่านี้ผ่านไปแล้ว L เริ่มต้นการรักษาบล็อกว่าถูกต้องตามกฎหมายแม้ว่าจะไม่ได้รับการยืนยัน
-
เต็มโหนด F รับบล็อก B และเริ่มทำกระบวนการตรวจสอบเต็มรูปแบบใช้การทำธุรกรรมแต่ละครั้งกับสถานะหลักและตรวจสอบให้แน่ใจว่าแต่ละสถานะกลางตรงกับสถานะกลางที่จัดทำโดยคนงานเหมือง สมมติว่า F พบความไม่สอดคล้องกัน ณ จุด Ok จากนั้น F ออกอากาศ“ ความท้าทาย” ไปยังเครือข่ายที่ประกอบด้วยแฮชของ B และค่า Ok
-
L ได้รับความท้าทายและตั้งค่าสถานะ B ชั่วคราวว่าไม่น่าเชื่อถือ
-
หากการเรียกร้องของ F เป็นเท็จและบล็อกนั้นถูกต้อง ณ จุดนั้น M สามารถสร้างหลักฐานของความสอดคล้องที่แปลได้โดยการแสดงการพิสูจน์ต้นไม้ merkle ของจุด ok ในการติดตามสแต็กจุด Ok+1 ในการติดตามสแต็กและส่วนย่อยของโหนดต้นไม้ Merkle ในรัฐและต้นไม้ธุรกรรม L สามารถตรวจสอบการพิสูจน์ได้โดยใช้คำของ M เกี่ยวกับความถูกต้องของบล็อกถึงจุด Ok การเรียกใช้การอัปเดตจาก Ok ถึง Ok+1 ด้วยตนเอง (ประกอบด้วยการประมวลผลธุรกรรมเดียว) และตรวจสอบให้แน่ใจว่ารูทแฮชตรงกับสิ่งที่ M ให้ไว้ในตอนท้าย แน่นอนว่าจะตรวจสอบด้วยว่าการพิสูจน์ Merkle Tree สำหรับค่าที่สถานะ Ok และ Ok+1 นั้นถูกต้อง
-
หากการเรียกร้องของ F เป็นจริงแล้ว M จะไม่สามารถเกิดการตอบกลับได้และหลังจากระยะเวลาหนึ่งจะทิ้ง B ทันที
โปรดทราบว่าในปัจจุบันแบบจำลองนี้มีไว้สำหรับค่าธรรมเนียมการทำธุรกรรมที่จะถูกเผาไม่ได้แจกจ่ายให้กับคนงานเหมืองดังนั้นความอ่อนแอในโปรโตคอลไคลเอนต์แสงของ Bitcoin จึงไม่สามารถใช้ได้ อย่างไรก็ตามแม้ว่าเราจะตัดสินใจเปลี่ยนสิ่งนี้โปรโตคอลสามารถปรับให้เข้ากับมันได้อย่างง่ายดาย การติดตามสแต็กก็จะเก็บค่าธรรมเนียมการทำธุรกรรมที่ใช้งานไว้ข้างรัฐและรายการธุรกรรม ในฐานะที่เป็นมาตรการต่อต้านสแปมเพื่อให้ความท้าทายของ F นั้นถูกต้อง F จำเป็นต้องมีการขุดหนึ่งในหนึ่งใน 10,000 บล็อกสุดท้ายหรือถือ 0.01% ของอุปทานทั้งหมดของอีเธอร์เป็นเวลาอย่างน้อยระยะเวลาหนึ่ง หากโหนดเต็มรูปแบบส่งความท้าทายที่ผิดพลาดหมายความว่าคนงานเหมืองประสบความสำเร็จในการตอบสนองต่อมันโหนดแสงสามารถขึ้นบัญชีดำของคีย์สาธารณะของโหนดได้
พรึบสิ่งนี้หมายความว่าไม่เหมือนกับ Bitcoin, Ethereum มีแนวโน้มที่จะยังคงปลอดภัยอย่างเต็มที่รวมถึงการโจมตีการออกการฉ้อโกงแม้ว่าจะมีโหนดเต็มจำนวนน้อยเท่านั้น ตราบใดที่โหนดเต็มอย่างน้อยหนึ่งโหนดนั้นซื่อสัตย์ตรวจสอบบล็อกและความท้าทายในการเผยแพร่ตามความเหมาะสมลูกค้าเบาสามารถพึ่งพาได้เพื่อชี้ให้เห็นว่าบล็อกใดมีข้อบกพร่อง โปรดทราบว่ามีจุดอ่อนอย่างหนึ่งในโปรโตคอลนี้: ตอนนี้คุณจำเป็นต้องทราบการทำธุรกรรมทั้งหมดก่อนเวลาก่อนประมวลผลบล็อกและการเพิ่มธุรกรรมใหม่ต้องใช้ความพยายามอย่างมากในการคำนวณค่าการติดตามสแต็กระดับกลางใหม่ดังนั้นกระบวนการผลิตบล็อกจะไม่มีประสิทธิภาพมากขึ้น อย่างไรก็ตามมีความเป็นไปได้ที่จะแก้ไขโปรโตคอลเพื่อแก้ไขปัญหานี้และหากเป็นไปได้ BP2.1 จะมีการแก้ไขดังกล่าว
การขุดที่ใช้ blockchain
เรายังไม่ได้สรุปรายละเอียดของเรื่องนี้ แต่ Ethereum มีแนวโน้มที่จะใช้สิ่งที่คล้ายกับสิ่งต่อไปนี้สำหรับอัลกอริทึมการขุด:
-
ให้ h (i) = sha3 (sha3 (ส่วนหัวบล็อกที่ไม่มี nonce) ++ nonce ++ i) สำหรับ i ใน (0 … 16)
-
ให้ n เป็นจำนวนธุรกรรมในบล็อก
-
ให้ t (i) เป็น (h (i) mod n) ธุรกรรม th ในบล็อก
-
ให้ S เป็นสถานะบล็อกหลัก
-
ใช้ t (0) … t (15) กับ s และให้สถานะผลลัพธ์เป็น s ‘
-
ให้ x = sha3 (s’.root)
-
บล็อกนั้นถูกต้องถ้า x * ความยาก <= 2^256
สิ่งนี้มีคุณสมบัติต่อไปนี้:
-
นี่คือความทรงจำที่ยากมากยิ่งกว่านั้น กริชเนื่องจากการทำเหมืองอย่างมีประสิทธิภาพต้องการการเข้าถึงบล็อกเชนทั้งหมด อย่างไรก็ตามมันสามารถขนานกับพื้นที่ดิสก์ที่ใช้ร่วมกันได้ดังนั้นจึงเป็นไปได้ที่จะได้รับการปกครองโดย GPU ไม่ใช่การปกครองด้วย CPU อย่างที่กริช แต่เดิมหวังว่าจะเป็น
-
มันเป็นหน่วยความจำที่ง่ายต่อการตรวจสอบเนื่องจากการพิสูจน์ความถูกต้องประกอบด้วยเฉพาะชุดย่อยที่ค่อนข้างเล็กของโหนด Patricia ที่ใช้ในขณะประมวลผล t (0) … t (15)
-
คนงานเหมืองทั้งหมดจะต้องเป็นโหนดเต็ม การขอให้เครือข่ายสำหรับข้อมูลบล็อกสำหรับทุกคนที่ไม่ได้รับการห้ามช้า ดังนั้นจะมีจำนวนโหนดเต็มจำนวนมากใน Ethereum มากกว่าใน Bitcoin
-
อันเป็นผลมาจาก (3) หนึ่งในแรงจูงใจที่สำคัญในการใช้พูลเหมืองแร่ส่วนกลางความจริงที่ว่าพวกเขาอนุญาตให้คนงานเหมืองทำงานโดยไม่ต้องดาวน์โหลด blockchain ทั้งหมดนั้นเป็นโมฆะ เหตุผลหลักอื่น ๆ ในการใช้กลุ่มเหมืองแร่ความจริงที่ว่าพวกเขายังมีอัตราการจ่ายเงินสามารถถูกต้องได้อย่างง่ายดายเช่นเดียวกับการกระจายอำนาจ P2Pool (ซึ่งเราน่าจะจบลงด้วยการสนับสนุนทรัพยากรการพัฒนา)
-
ASICS สำหรับอัลกอริทึมการขุดนี้เป็น ASICS พร้อมกันสำหรับการประมวลผลการทำธุรกรรมดังนั้น Ethereum ASICS จะช่วยแก้ปัญหาความสามารถในการปรับขนาด
จากที่นี่มีเพียงการเพิ่มประสิทธิภาพเพียงอย่างเดียวที่สามารถทำได้: การหาวิธีที่จะผ่านอุปสรรคที่ทุกโหนดเต็มรูปแบบจะต้องดำเนินการทุกธุรกรรม นี่เป็นปัญหาที่ยาก โซลูชันที่ปรับขนาดได้และมีประสิทธิภาพอย่างแท้จริงจะใช้เวลาสักครู่ในการพัฒนา อย่างไรก็ตามนี่เป็นการเริ่มต้นที่แข็งแกร่งและอาจจบลงด้วยการเป็นหนึ่งในส่วนผสมที่สำคัญในการแก้ปัญหาขั้นสุดท้าย
