ความคิดเห็น: ทำความเข้าใจ Ethereum และอนาคตจากมุมมอง "สถานะ"
บทความนี้มีประมาณ 8109 คำ การอ่านทั้งหมดใช้เวลาประมาณ 12 นาที
ทิศทางการพัฒนาต่างๆ ใช้ประโยชน์และเปลี่ยนแปลงกระบวนทัศน์ Ethereum อย่างไร?
สรุปโดย AI
ทิศทางการพัฒนาต่างๆ ใช้ประโยชน์และเปลี่ยนแปลงกระบวนทัศน์ Ethereum อย่างไร?
หมายเหตุบรรณาธิการ: บทความนี้มาจากผู้ที่ชื่นชอบ Ethereum (ID: ethfans)พิมพ์ซ้ำโดย Odaily โดยได้รับอนุญาต
หมายเหตุบรรณาธิการ: บทความนี้มาจาก
ผู้ที่ชื่นชอบ Ethereum (ID: ethfans)ผู้ที่ชื่นชอบ Ethereum (ID: ethfans)พิมพ์ซ้ำโดย Odaily โดยได้รับอนุญาตชื่อระดับแรก
I. บทนำ
นับตั้งแต่ก่อตั้งในปี 2558 Ethereum blockchain ได้ผ่านฤดูหนาวและฤดูร้อนไปแล้วห้าครั้ง ห้าปีที่ผ่านมาไม่เพียงแต่เปลี่ยนแนวคิดของ Ethereum Protocol 1 ให้เป็นจริงเท่านั้น แต่ยังทำให้โปรโตคอลนี้มีความเป็นผู้ใหญ่มากขึ้นและมีความเฉพาะเจาะจงมากขึ้นเท่านั้น แต่ยังได้เปิดเผยลักษณะเฉพาะและการแลกเปลี่ยนของชุดการออกแบบดังกล่าวด้วย การแลกเปลี่ยนเหล่านี้เป็นความท้าทายในการออกแบบ โดยธรรมชาติแล้วดึงดูดและดึงดูดผู้มีความสามารถจำนวนนับไม่ถ้วนให้พยายามปรับปรุงความสามารถในการใช้งานของ Ethereum ในหมู่พวกเขา สิ่งที่รวบรวมความพยายามและจินตนาการมากที่สุดคือการปรับปรุงชุดแผน "ความสามารถในการขยายขนาด"สิ่งที่บทความนี้ต้องการชี้ให้เห็นคือ เช่นเดียวกับกระบวนทัศน์ของ Ethereum ที่ต้องแลกกับการออกแบบ โซลูชันการปรับขยายขนาดได้ทั้งหมดก็เผชิญกับการแลกเปลี่ยนเช่นกัน และเพื่อประเมินว่าการแลกเปลี่ยนเหล่านี้คุ้มค่าหรือไม่ เราต้องกลับไปที่ Ethereum ตัวเองไปยัง Ethereum ปัญหาที่แท้จริงและความต้องการที่แท้จริงของโหนด Ethereum และผู้ใช้ Ethereum มุมมอง "สถานะ" เป็นมุมมองสำหรับการทำความเข้าใจ Ethereum เอง ช่วยให้เราอธิบายการออกแบบโครงร่างเหล่านี้ได้อย่างชัดเจนและเปิดเผยกำไรและขาดทุนของเราบทความนี้จะเริ่มต้นด้วยการอธิบายความหมายของ "สถานะ" เปิดเผยสุดยอดหอกและจุดอ่อนของ Ethereum จากนั้นสำรวจทิศทางต่างๆ เพื่อการปรับปรุง "สถานะมั่งคั่ง" เป็นแหล่งที่มาของ "องค์ประกอบ" ในสัญญาอัจฉริยะของ Ethereum แต่ก็เป็นจุดอ่อนที่ใหญ่ที่สุดของเครือข่าย Ethereum จากนี้ เราสามารถเห็นได้ว่าโซลูชันใดที่มักกล่าวถึงจะส่งผลต่อ "ความสามารถในการรวมกัน" และ "ความสามารถในการขยายขนาด" ใดที่มีความหมายที่ชัดเจนมากขึ้น2. Ethereum เป็นกระบวนทัศน์(1) สถานะที่สมบูรณ์และความสามารถในการจัดองค์ประกอบ"สถานะ" คืออะไร? สถานะคือสถานการณ์เฉพาะของระบบ ณ ช่วงเวลาหนึ่ง ยกตัวอย่าง blockchain ที่ใช้สกุลเงินเข้ารหัส สถานะของ blockchain ในช่วงเวลาหนึ่งคือการกระจายสินทรัพย์ของที่อยู่ทั้งหมดบน blockchain ในขณะนั้น (ที่อยู่ A มี 10 เหรียญ ที่อยู่ B มี 100 เหรียญ เป็นต้น) ( ในความเป็นจริงสิ่งที่เรามีเป็นเพียงบางสถานะซึ่งถูกตีความโดยจิตใจของเราและฉันทามติทางสังคมว่าเป็น "สินทรัพย์")จากมุมมองนี้ โปรโตคอลบล็อกเชนแต่ละชุดสามารถแบ่งออกเป็นสองส่วนอย่างคร่าวๆ ส่วนหนึ่งคือกลไกฉันทามติ และอีกส่วนคือกฎการเปลี่ยนแปลงสถานะ (บางครั้งเรียกว่า "กฎฉันทามติ") ส่วนแรกกำหนดกฎการสร้างบล็อก ซึ่งบ่งชี้ว่า เมื่อโหนดทั้งหมดที่เข้าร่วมในบล็อกเชนจำเป็นต้องอัปเดตสถานะของฐานข้อมูลบล็อกเชนภายในเครื่อง (เช่น เป็นโหนดของบล็อกเชน Ethereum เมื่อใดก็ตามที่ได้รับงานที่ตรงตามข้อกำหนดความยาก โหนดจะอัปเดตสถานะล่าสุดของบล็อกเชนในพื้นที่ ฐานข้อมูล) และกฎการเปลี่ยนสถานะกำหนดธุรกรรมที่ถูกต้อง ("บัญชีไม่สามารถใช้จ่ายเงินมากกว่ายอดคงเหลือของตัวเอง") และยังกำหนดวิธีที่โหนดควรอัปเดตสถานะเมื่อประมวลผลธุรกรรม ("ธุรกรรมนี้หมายความว่าบัญชีนั้น A โอน 5 เหรียญไปที่บัญชี B จากนั้นยอดคงเหลือของบัญชี A จะลดลง 5 และยอดคงเหลือของบัญชี B จะเพิ่มขึ้น 5")สำหรับ Bitcoin กลไกฉันทามติคือ "PoW + Nakamoto Consensus" และกฎการเปลี่ยนสถานะจะขึ้นอยู่กับ UTXO สำหรับ Ethereum กลไกการสร้างบล็อกคือ "กฎ PoW + Ghost" และกฎการเปลี่ยนสถานะจะขึ้นอยู่กับบัญชีแล้วอะไรที่ทำให้ Ethereum เป็นนวัตกรรมที่ก้าวล้ำเช่นนี้?เรามักจะได้ยินว่าเหตุผลที่ Ethereum มีความพิเศษคือ "แนะนำภาษาโปรแกรมทัวริงที่สมบูรณ์ซึ่งสนับสนุนความสามารถในการโปรแกรม" เป็นต้น อันที่จริง ข้อความนี้ไม่ถูกต้อง2. เนื่องจากการอนุญาตให้ใช้ภาษาโปรแกรมที่ซับซ้อนมากขึ้นไม่ได้มีความหมายอะไรเลย อันที่จริง Bitcoin ยังสามารถตั้งโปรแกรมได้ การอนุญาตให้ Bitcoin ใช้ภาษาโปรแกรมแบบ solidity ไม่ได้ทำให้ Ethereum สิ่งที่ทำให้ Ethereum พิเศษจริงๆ คือ "สถานะที่สมบูรณ์"3: มันอนุญาตให้สัญญาหนึ่งเรียกอีกสัญญาหนึ่งได้ และนอกเหนือจากขนาดบล็อกแล้ว ยังไม่จำกัดจำนวนระดับของการโทรดังกล่าวอีกด้วยสัญญา B สามารถเรียกสัญญา A และเปลี่ยนสถานะของสัญญา A ตามรหัสที่เปิดเผยโดยสัญญา A สัญญา C ที่เรียกสัญญา B ยังสามารถเรียกสัญญา A โดยอ้อมและเปลี่ยนสถานะของสัญญา A ได้ แต่ตรรกะการควบคุมอาจทับซ้อนกัน และสะสมอย่างต่อเนื่อง หากรัฐถูกเข้าใจว่าเป็นสินทรัพย์ ก็เท่ากับอนุญาตให้สิทธิ์ในการใช้ (เงื่อนไขการใช้งาน) ของสินทรัพย์ถูกควบคุมอย่างต่อเนื่องอย่างเข้มงวดและซับซ้อนมากขึ้น ซึ่งในทางทฤษฎี ตรรกะการปรับปรุงสถานะ สามารถใกล้เคียงกับสัญญาทางการเงินในชีวิตจริงได้อย่างไร้ขีดจำกัด (เนื่องจากสัญญาทางการเงินทั้งหมดสามารถซ้อนทับและรวมกันได้ผ่านตรรกะง่ายๆ) แอตทริบิวต์นี้ที่อนุญาตให้มีการสะสมเลเยอร์การควบคุมโดยพลการเป็นสิ่งที่สำคัญที่สุด แต่วิธีการตั้งโปรแกรมการควบคุมนี้เป็นเรื่องรองนอกจากนี้ Ethereum ยังอนุญาตให้ผู้ใช้เขียนสถานะลงในบล็อกเชน ทำให้สถานะเหล่านี้เป็นส่วนหนึ่งของสถานะส่วนกลาง และกำหนดให้โหนดอัปเดตสถานะตามตรรกะที่กำหนดโดยสัญญา เป็นผลให้สัญญาสามารถเปิดเผยสถานะของตัวเองไปยังบัญชีอื่น ๆ ทั้งหมดบน Ethereum และความสมบูรณ์ของสถานะที่กล่าวถึงข้างต้นก็เข้ามามีส่วนสำคัญถูกต้องแล้ว ตอนนี้เราได้รวบรวมคุณสมบัติสามอย่างเช่นการสะสมดราก้อนบอล:(1) กระบวนทัศน์การคำนวณบนห่วงโซ่: สัญญาสามารถกำหนดให้โหนดดำเนินการคำนวณตามตรรกะที่กำหนดขึ้นเอง
(2) สถานะสากล: สถานะของสัญญาสามารถกลายเป็นส่วนหนึ่งของสถานะโลกและถูกเปิดเผยไปยังบัญชีอื่นๆ ทั้งหมด(3) สถานะที่สมบูรณ์: สัญญาสามารถโทรหากันได้ และไม่จำกัดจำนวนเลเยอร์ของสแต็ก ดังนั้นลอจิกการควบคุมสามารถสะสมทีละเลเยอร์ตอนนี้เราสามารถเรียกหอกที่แข็งแกร่งที่สุดของ Ethereum: "Composability" (สกุลเงิน LEGO)!วิธีการคำนวณในห่วงโซ่ช่วยให้เรามีสัญญาที่หลากหลาย สถานะทั่วโลกอนุญาตให้สัญญาเหล่านี้เข้าถึงสถานะของกันและกัน สถานะรวยช่วยให้การรวมกันของสัญญามีความหลากหลายไม่สิ้นสุด ดังนั้นเราจึงไม่เพียงแต่มีสกุลเงิน DAI ที่เสถียรเท่านั้น แต่ยังมีตลาดให้กู้ยืม แอปพลิเคชันลอตเตอรี แอปพลิเคชันที่บริจาครายได้จากลอตเตอรีโดยอัตโนมัติ และแอปพลิเคชันที่ปรับสมดุลอัตราส่วนการออมโดยอัตโนมัติระหว่างตลาดสินเชื่อต่างๆ... …(2) ปัญหาการระเบิดของข้อมูลของรัฐ"ความสามารถในการจัดองค์ประกอบภาพ" นั้นดีเกินจริงใช่ไหม? ใช่ ทรินิตี้ของคุณลักษณะสามประการข้างต้นเป็นดาบสองคมกระบวนการเปลี่ยนสถานะของ Ethereum สามารถสรุปได้ดังนี้: ฟังก์ชันการเปลี่ยนสถานะใช้สถานะเก่าและรายการธุรกรรมเป็นอินพุต และส่งออกสถานะใหม่ ซึ่งหมายความว่าโหนดการยืนยันแบบเต็มของ Ethereum จะต้องรักษาสถานะล่าสุดของ Ethereum blockchain ไว้ในเครื่อง เพื่อให้สามารถดำเนินการฟังก์ชันสถานะและใช้ผลลัพธ์เพื่อตรวจสอบความถูกต้องของบล็อก (และเห็นด้วยกับโหนด Ethereum อื่น ๆ ฉันทามติ)ความขัดแย้งคือ: สำหรับสัญญาและผู้พัฒนา สถานะของสัญญาจะถูกเก็บไว้ในโหนดของ Ethereum ซึ่งเป็นส่วนหนึ่งของสถานะส่วนกลางของ Ethereum และการอัปเดตสถานะของสัญญาจะถูกคำนวณโดยโหนดของ Ethereum ( และโดยโหนดที่เริ่มต้นคำขอการคำนวณ ผู้ใช้จ่าย) สถาปัตยกรรม "ไร้เซิร์ฟเวอร์" นี้สะดวกสบายมาก อย่างไรก็ตาม สถานะเหล่านี้จะถูกเก็บไว้อย่างถาวรในโหนดการตรวจสอบเต็มรูปแบบของ Ethereum ตราบใดที่มีการชำระเงินหนึ่งครั้ง แม้ว่าแต่ละรายการ การอัปเดตจำเป็นต้องชำระเงินแต่ไม่สามารถหลีกเลี่ยงได้ ข้อมูลสถานะ จะยังคงสะสมและขยายตัวต่อไปสาเหตุที่การขยายตัวของข้อมูลสถานะเป็นปัญหาคือมันจะนำภาระการอ่านและเขียนของฮาร์ดดิสก์ (สุ่ม) ที่สูงขึ้นและสูงขึ้นไปยังโหนดการตรวจสอบแบบเต็ม ข้อมูลสถานะไม่เหมือนข้อมูลบล็อก ข้อมูลบล็อกเป็นแบบคงที่และไม่จำเป็นต้องอ่านและเขียนบ่อยครั้งหลังจากการจัดเก็บถาวร อย่างไรก็ตาม ข้อมูลสถานะจำเป็นต้องอ่านและเขียนหลายครั้งสำหรับบล็อกเพิ่มเติมแต่ละบล็อก ภาระของการอ่านและเขียน จะหนักหนาขึ้นเรื่อยๆ ในช่วงไม่กี่ปีที่ผ่านมา เรามักได้ยินผู้คนพูดว่าโหนดเต็มของ Ethereum นั้นใช้งานยาก และนี่เป็นหนึ่งในเหตุผลหลัก เมื่อไม่นานมานี้ บริการโหนด Ethereum ฟรีของ Infura ขัดข้อง 4 ครั้ง ทำให้บริการจำนวนมากที่ขึ้นอยู่กับ Infura ขัดข้อง
ปัญหานี้ไม่ง่ายที่จะแก้ไข ในช่วงไม่กี่ปีที่ผ่านมา การอัปเกรดฮาร์ดฟอร์กหลายครั้งของ Ethereum ได้เพิ่มปริมาณการใช้ก๊าซของ opcodes ที่เข้าถึงสถานะ เพื่อลดการสร้างสถานะใหม่ด้วยสัญญาที่มีต้นทุนทางเศรษฐกิจอย่างแม่นยำ แต่เห็นได้ชัดว่านี่เป็นเพียงวิธีแก้ปัญหาแบบประคับประคอง เนื่องจากตรรกะไม่ได้เปลี่ยนแปลงโดยพื้นฐาน ข้อมูลสถานะจะต้องถูกจัดเก็บไว้ในโหนด Ethereum ต่อไป แต่ผู้ใช้ที่สร้างข้อมูลสถานะจะต้องจ่ายเพียงครั้งเดียว มีข้อเสนอแนะด้วยว่าเพื่อเปลี่ยนแปลงสิ่งนี้ จำเป็นต้องมีกลไก "ค่าเช่าของรัฐ" บางอย่าง ซึ่งกำหนดให้สัญญาที่ช่วยให้รัฐจ่ายค่าเช่าอย่างต่อเนื่อง มิฉะนั้น ความพร้อมของสัญญาจะถูกยกเลิก อย่างไรก็ตาม กลไกนี้มีความซับซ้อนเกินจินตนาการ ในแง่หนึ่ง เป็นการยากที่จะกำหนดวิธีการเก็บค่าเช่าที่สมเหตุสมผล และในทางกลับกัน ยังเป็นการยากที่จะกำหนดวัตถุประสงค์ในการจ่ายเงินที่สมเหตุสมผลอีกด้วย ดังนั้นการวิจัยเกี่ยวกับกลไกค่าเช่าของรัฐจึงหยุดชะงักในปี 25625 นอกจากนี้ยังมีโครงการ (เช่น Nervos) ที่พยายามกำหนดขนาดของพื้นที่สถานะที่มีอยู่ตามจำนวนสกุลเงินที่ถือครอง ดังนั้นขนาดของข้อมูลสถานะจะมีขีดจำกัดบนเสมอ ซึ่งจะหลีกเลี่ยงปัญหาการขยายสถานะ แต่สิ่งนี้ยังเปลี่ยนสินทรัพย์ดั้งเดิมด้วยคุณลักษณะทางเศรษฐกิจจนถึงตอนนี้ ฉันยังไม่เห็นทางออกพื้นฐานที่น่าพอใจสำหรับปัญหานี้ นอกจาก "การไร้รัฐไร้สัญชาติ" ซึ่งพูดตามความเป็นจริงก็เผชิญกับความท้าทายมากมายเช่นกัน เราจะพูดถึงเรื่องนี้ในภายหลัง
สรุปแล้ว สถานะทั่วโลก การประมวลผลแบบออนเชน และสถานะที่ร่ำรวย ไม่เพียงแต่ทำให้สัญญาบน Ethereum สามารถเขียนได้เท่านั้น แต่ยังทำให้เครือข่าย Ethereum ตกอยู่ในอันตรายจากการรวมศูนย์ เช่นเดียวกับลอร์ดออฟเดอะริงส์ในนวนิยายเรื่อง "Lord of the แหวน" ไม่เพียงแต่สามารถเรียกพลังที่ทรงพลังออกมาเท่านั้น แต่ยังกลืนกินผู้ใช้เองอีกด้วย ฉันกังวลว่า Ethereum จะต้องแบกรับภาระนี้เป็นเวลานานต่อไป เราใช้มุมมอง "สถานะ" เพื่อทำความเข้าใจการออกแบบและการแลกเปลี่ยนของโซลูชันความสามารถในการปรับขนาดต่างๆ3. ทิศทางการพัฒนาของ Ethereumในบทนี้ เราจะวิเคราะห์สี่ทิศทางการพัฒนาของ Ethereum: รูปแบบ Layer-2, sharding, stateless และรูปแบบ Rollup การจัดหมวดหมู่นี้ไม่มีเหตุผลโดยสิ้นเชิง เนื่องจากการยกเลิกเป็นส่วนย่อยของโครงร่าง Layer-2 และความไร้สัญชาติเป็นเทคโนโลยีก่อนการแตกย่อย แม้ว่าจะไม่สมเหตุสมผลก็ตามที่จะรวมเข้าด้วยกัน เนื่องจากโครงร่าง Layer-2 แทบจะไม่ต้องเปลี่ยนเลเยอร์ล่างสุดของ Ethereum และ การแบ่งกลุ่มและการไร้สัญชาติมีข้อกำหนดดังกล่าว สิ่งนี้ทำเพื่อความสะดวกในการอธิบายและทำความเข้าใจเท่านั้น(1) รูปแบบ Layer-2แนวคิดเบื้องหลังโครงร่าง Layer-2 มาจากสัญชาตญาณที่เรียบง่ายแต่แม่นยำมาก: สาเหตุที่ Ethereum เผชิญกับปัญหาคอขวดของปริมาณงานเนื่องจากแบนด์วิธ พลังการประมวลผล และความสามารถในการรักษาข้อมูลสถานะของโหนดที่ประกอบกันเป็นเครือข่าย Ethereum ทั้งหมด จำกัด และยากที่จะปรับปรุง เพียงแค่ต้องการให้โหนดของเครือข่ายทั้งหมดประมวลผลธุรกรรมต่อหน่วยเวลามากขึ้น ความต้องการในการดำเนินงานของโหนดจะเพิ่มขึ้นอย่างหลีกเลี่ยงไม่ได้ ซึ่งจะสร้างความเสียหายต่อการกระจายอำนาจ อย่างไรก็ตาม จากมุมมองของการใช้งาน โหนดดังกล่าวไม่ ไม่ จำเป็นต้องใส่สถานะทั้งหมดบน Ethereum และไม่จำเป็นต้องให้การคำนวณสถานะทั้งหมดเกิดขึ้นบน Ethereum เราสามารถบันทึกสถานะกลาง (หรือสถานะทั้งหมด) ของสัญญาในที่อื่น ๆ และการโต้ตอบของผู้ใช้ (นั่น คือการอัปเดตสถานะ) จะไม่เกิดขึ้นใน Ethereum blockchain เฉพาะเมื่อผู้ใช้คิดว่าจำเป็นต้องชำระสถานะใดสถานะหนึ่ง สถานะจะถูกส่งไปยัง Ethereum เพื่อยืนยันพูดง่ายๆ ก็คือ หากเราไม่สามารถทำให้เครือข่ายบรรลุฉันทามติเกี่ยวกับธุรกรรมที่มากขึ้นต่อหน่วยเวลาได้ ให้ปรับปรุงความหมายแฝงของธุรกรรมเดียว
รูปแบบ Layer-2 แบบคลาสสิก "ช่องทางของรัฐ" รวบรวมแนวคิดนี้อย่างละเอียดที่สุด: เมื่อผู้ใช้สองคนที่เข้าร่วมในช่องทางล็อคเงินทุนไว้ในสัญญา ธุรกรรมระหว่างทั้งสองจะไม่ถูกส่งไปยังเครือข่ายในภายหลัง และพวกเขาจะใช้เครื่องมือสื่อสารอื่นๆ เพื่อแลกเปลี่ยน ข้อความลงนามและบรรลุฉันทามติเกี่ยวกับสถานะของช่องสัญญาณ (ดังนั้น ไม่ว่าจะส่งและรับข้อความจำนวนเท่าใด และข้อมูลสถานะจะก่อตัวขึ้นมากเพียงใด มันก็จะไม่กลายเป็นภาระของ Ethereum) จนกระทั่งทั้งสองคนคิดว่าไม่มี จำเป็นต้องโต้ตอบ (หรือจำเป็นต้องชำระชั่วคราวครั้งเดียว) ดังนั้นพวกเขาจึงส่งสถานะที่ยอมรับร่วมกันและลายเซ็นของทั้งสองคนไปยัง Ethereum จากนั้น Ethereum จะอัปเดตสถานะของสัญญา และตามสถานะนี้ บุคคลทั้งสอง กองทุนชำระบัญชี
หากคุณถือว่าโซลูชัน Layer-2 เป็นรูปแบบการออกแบบของสัญญา คุณจะเห็นชัดเจนยิ่งขึ้น - โซลูชัน Layer-2 เลือกที่จะไม่ใช้สถานะส่วนกลาง สัญญาอื่นไม่สามารถรู้แบบเรียลไทม์ว่าสถานะใดอยู่ในสัญญา Layer-2 (ผู้ใช้ A\B\C มีเงินเท่าไหร่) เนื่องจากสถานะเหล่านี้ไม่ได้อยู่ในห่วงโซ่ ดังนั้นสัญญา Layer-2 จึงไม่สามารถทำได้ รวมกับสัญญาอื่นๆถึงกระนั้นก็ตาม โซลูชัน Layer-2 ยังได้แลกเปลี่ยนสิ่งที่มีค่าอย่างมาก: ความเร็วของการทำธุรกรรมที่เร็วขึ้น (แม้ว่าสถานะระดับกลางที่ได้รับการยืนยันจะไม่ปลอดภัยเท่าสถานะของห่วงโซ่หลัก) ค่าธรรมเนียมการจัดการที่ต่ำกว่า และภาระที่น้อยลงบนโหนดของห่วงโซ่หลัก .แต่ทำไมโซลูชัน Layer-2 ถึงไม่เกิดผลในช่วงไม่กี่ปีที่ผ่านมา? เนื่องจากก่อนที่โครงร่าง Rollup จะปรากฏขึ้น โครงร่างอื่น ๆ รวมถึงช่องของรัฐและ Plasma ไม่สามารถพิสูจน์ได้ว่าเงินทุนที่ถูกล็อคไว้ในสัญญาของพวกเขาเองนั้นปลอดภัยเท่ากับที่ถูกล็อคไว้ในสัญญาที่มีสถานะ (ไม่แช่แข็งหรือถูกขโมย) ในรูปแบบช่องทางของรัฐ หากคุณไม่ตรวจสอบบล็อกเชนตลอดเวลา คู่สัญญาของคุณสามารถ "ขโมย" เงินของคุณโดยส่งสถานะเก่าไปยังห่วงโซ่หลัก ในรูปแบบพลาสมา คุณมักจะต้องพึ่งพาผู้ดำเนินการเพื่อให้ คุณพร้อมหลักฐานแสดงสถานะของคุณเอง ดังนั้นจึงเป็นเรื่องยากมากสำหรับผู้ดำเนินการเองที่จะปกป้องสิ่งนี้แตกต่างอย่างสิ้นเชิงจากประสบการณ์การใช้สัญญาของรัฐบน Ethereum mainnet หากไม่รวมความเสี่ยงด้านรหัสของสัญญา เงินที่คุณฝากในสัญญาจะไม่ถูกขโมย เว้นแต่จะมีคนโจมตี 51% เพื่อยกเลิกธุรกรรมของคุณ ถอนเงินของคุณเอง (ในบทความต่อไป เราจะมาดูกันว่าโซลูชัน Rollup แก้ปัญหานี้ได้อย่างไร)(2) การแยกส่วนอีกหนึ่งสัญชาตญาณในการปรับปรุง Ethereum และเพิ่มทรูพุตของ Ethereum คือ: ทรูพุตของ Ethereum มีจำกัด เนื่องจากโหนดเต็มแต่ละโหนดต้องประมวลผลธุรกรรมทั้งหมดบนเชน หากเราสามารถให้แต่ละโหนดประมวลผลธุรกรรมเพียงบางส่วน ความแตกต่างของโหนด ในกลุ่มประมวลผลธุรกรรมที่แตกต่างกันแยกกัน (แบบขนาน) ดังนั้นทรูพุตของระบบทั้งหมดต่อหน่วยเวลาจะเท่ากับผลรวมของความสามารถในการประมวลผลแบบกลุ่มเดียวของกลุ่มโหนดเหล่านี้ นั่นคือ ภาระของโหนดเดียว ไม่เพิ่มขึ้น แต่โดยรวมแล้ว ปริมาณงานของระบบเพิ่มขึ้น (และยิ่งแพ็กเก็ตละเอียดมาก ตัวคูณปริมาณงานก็ยิ่งมากขึ้น) สิ่งนี้เรียกว่าคำถามที่น่าสนใจเกี่ยวกับสถาปัตยกรรมแบบแยกส่วนคือคำจำกัดความที่แน่นอน ในสถาปัตยกรรมบล็อกเชนแบบคลาสสิกที่ไม่แยกส่วน โหนดแบบเต็มจะต้อง (1) ทำซ้ำการคำนวณทั้งหมด (2) รักษาสถานะทั้งหมด และ (3) เผยแพร่บล็อก/ธุรกรรมทั้งหมด บางคนคิดว่าต้องแยกเพียงหนึ่งรายการจึงจะถือว่าแยกส่วน แต่จากมุมมองที่เคร่งครัดกว่านั้น จะต้องแยกทั้งสามส่วนเพื่อให้ได้ผลการปรับปรุงปริมาณงานที่ได้มาตามทฤษฎี 6 คำจำกัดความที่แตกต่างกันมีผลต่างกัน ในที่นี้ คำจำกัดความที่ฉันใช้คืออย่างน้อยโหนดไม่จำเป็นต้องรักษาสถานะทั้งหมดของระบบทั้งหมด
แต่อีกคำถามที่น่าสนใจกว่าคือสถาปัตยกรรมนี้จะมีความหมายอย่างไรหากสามารถรับรู้เทคโนโลยีส่วนหน้าทั้งหมดที่จำเป็นสำหรับสถาปัตยกรรมการแบ่งส่วนได้ในสถาปัตยกรรมการแบ่งส่วนที่ทีมวิจัยของ Ethereum Foundation สร้างขึ้น สถานะของระบบทั้งหมดจะถูกแบ่งออกเป็นหลายส่วนและแต่ละส่วนจะได้รับการอัปเดตแบบคู่ขนาน สถานะภายในของส่วนย่อย เมื่อสัญญา A' ในชาร์ด A พยายามเรียกสัญญา B' ในชาร์ด B จะถือว่าโปรเซสเซอร์เป็นเจ้าของสถานะของชาร์ด B ไม่ได้ ดังนั้นผลการประมวลผลต้องรอให้ชาร์ด B อัปเดตสถานะให้เสร็จสิ้นก่อนส่งคืน ผลที่ตามมาคือ ธุรกรรมข้ามชาร์ดต้องทนกับต้นทุนที่ไม่สามารถแบกรับได้มากที่สุดในการประมวลผลธุรกรรม ซึ่งก็คือความล่าช้า ประเด็นก็คือความล่าช้านี้ไม่สามารถสรุปได้ด้วยต้นทุนที่เป็นตัวเงิน เนื่องจากชาร์ด B ไม่รู้ว่าธุรกรรมที่ต้องเรียกตัวเองนั้นเกิดขึ้นบนชาร์ด A ดังนั้นจึงทำได้เพียงรอเลเยอร์การสื่อสารที่เชื่อถือได้เพื่อเผยแพร่ธุรกรรมนี้สำหรับตัวเองค่าที่สามารถสร้างได้ต่อหน่วยเวลายิ่งสูง ความล่าช้าก็จะยิ่งทนไม่ได้ และนั่นหมายความว่า สมมติว่ามีเศษเสี้ยวในความเข้มข้นของแอปพลิเคชัน DeFi แอปพลิเคชันเหล่านี้จะไม่กำหนดเวลาการประมวลผลบนเศษส่วนอื่นๆ ผ่านการข้าม ชาร์ดทรานแซกชันที่ความจุทั้งหมด เนื่องจากไม่มีความหมายเลยและไม่สามารถตอบสนองความต้องการการหน่วงเวลาของแอปพลิเคชัน DeFi ได้ ในทำนองเดียวกัน นี่ก็หมายความว่าพลังการประมวลผลของเศษเสี้ยวเดียวที่รวบรวมโดยแอปพลิเคชัน DeFi นี้เป็นขีดจำกัดสูงสุดของพลังการประมวลผล (ไม่แตกต่างจากบล็อกเชนเดียว) การสร้างบ้านและสร้างถนนในภูเขาลึกและป่าเก่าแก่ไม่สามารถแก้ปัญหาพื้นที่อยู่อาศัยของผู้คนในเมืองใหญ่ได้(บางคนโต้แย้งว่าทรูพุตของชาร์ดที่ "ไม่ได้ใช้งาน" เหล่านี้สามารถถูกนำไปใช้โดยแอปพลิเคชันเฉพาะกลุ่มมากขึ้น ฉันคิดว่าโซลูชัน Layer-2 สามารถบรรลุผลเช่นเดียวกัน แต่มีการเปลี่ยนแปลงเลเยอร์พื้นฐานน้อยลงและปลอดภัยกว่า)(3) ความไร้สัญชาติการไร้รัฐไร้สัญชาติเป็นทิศทางการยกระดับเดียวที่เผชิญปัญหาการขยายข้อมูลของรัฐโดยตรง 7.ในโปรโตคอล Ethereum ปัจจุบัน ธุรกรรมนั้นไม่ได้นำข้อมูลของรัฐที่เข้าชม ด้วยเหตุนี้ โหนดที่ประมวลผลธุรกรรมจะต้องรักษาข้อมูลสถานะไว้เป็นเงื่อนไขเบื้องต้นสำหรับการดำเนินการฟังก์ชันการเปลี่ยนสถานะ ด้วยเหตุนี้การขยายตัวของข้อมูลสถานะจึงเป็นปัญหา (เพิ่มภาระให้กับโหนด)กุญแจสำคัญในการไร้สัญชาติคือการปล่อยให้ธุรกรรม/บล็อกแนบข้อมูลของรัฐที่เข้าชม ดังนั้น บล็อกจึงสามารถตรวจสอบได้ด้วยตัวเองและไม่มีความจำเป็นที่โหนดที่ประมวลผลธุรกรรมจะมีสถานะ
ความจริงแล้ว การไร้สัญชาติคือการเปลี่ยนวิธีการตรวจสอบของบล็อก Ethereum โดยเปลี่ยนโครงสร้างของบล็อก Ethereum ไม่จำเป็นต้องรักษาสถานะข้อมูล ซึ่งช่วยลดความจำเป็นในการอ่านและเขียนฮาร์ดดิสก์ และความเร็วในการตรวจสอบบล็อกยังเร็วกว่าอีกด้วย นอกจากนี้ แต่ละโหนดไม่สามารถรักษาข้อมูลสถานะได้เลย หรือรักษาข้อมูลสถานะของสัญญาบางส่วนตามความต้องการของตนเองแต่ตามจริงแล้ว ภาวะไร้รัฐไร้สัญชาติกำลังเผชิญกับความท้าทายด้านการออกแบบมากมาย โดยเฉพาะ: (1) การไร้สัญชาติกำหนดให้การบล็อก/ธุรกรรมต้องแนบหลักฐาน (พยาน) ของสถานะที่เข้าถึง ขนาดของข้อมูลส่วนนี้อาจมีขนาดใหญ่มาก ขนาดข้อมูลบล็อกปัจจุบันของ Ethereum อยู่ที่ประมาณ 20-40 KB อย่างไรก็ตาม ขนาดของข้อมูลพยานอาจอยู่ที่ระดับ MB (ขึ้นอยู่กับขนาดของวอลุ่มสถานะที่เข้าถึง) (2) เฉพาะโหนดที่รักษาสถานะทั้งหมดเท่านั้นที่สามารถรวบรวมพยานได้ ดังนั้น ใครจะเป็นผู้จัดเตรียมสถานะสำหรับผู้ใช้ทั่วไป ? (อันที่จริง นี่อาจถือเป็นการเปลี่ยนแปลงในสมมติฐานการดำเนินงานของ Ethereum: โหนดเต็มรูปแบบทั้งหมดสามารถเข้าร่วมในการขุดได้ แต่จะไม่ใช่หลังจากตระหนักถึงความไร้สัญชาติ) (3) จะกำหนดราคาปริมาณการใช้ก๊าซของธุรกรรมได้อย่างไร ? โดยเฉพาะอย่างยิ่งเนื่องจากความทันเวลาของพยาน จึงไม่สามารถระบุได้ว่าต้องใช้การคำนวณเท่าใดในการประกอบพยานตาม opcodeเนื่องจากความยากลำบากเหล่านี้ โหนดเต็มของ Ethereum อาจต้องทำงานในโหมดนี้เพื่อรักษาสถานะทั้งหมดเป็นเวลานาน อย่างไรก็ตาม การไร้สัญชาติเป็นทิศทางที่น่าตื่นเต้นที่สุดสำหรับการปรับปรุงโปรโตคอล Ethereum ในปัจจุบัน เพราะมันเผชิญปัญหาหลักของ Ethereum โดยตรง และพยายามที่จะแก้ปัญหานี้จากล่างขึ้นบน นอกจากนี้ การวิจัยเกี่ยวกับการใช้ข้อมูลสถานะในโปรโตคอล Ethereum ยังได้หล่อเลี้ยงทิศทางการวิจัยอื่นๆ เช่น วิธีการซิงโครไนซ์8ฉันมีความลำเอียงที่จะเชื่อว่าอนาคตของ Ethereum นั้นเป็นรูปแบบที่ได้รับแรงบันดาลใจจากการไร้สัญชาติ หากไม่ใช่การไร้สัญชาติ(4) รูปแบบการยกเลิกรูปแบบ Rollup เป็นรูปแบบ Layer-2 คุณสมบัติพิเศษของมันคือมันจะเผยแพร่ธุรกรรมที่ใช้ในการอัพเดทแต่ละสถานะบน Ethereum blockchainเช่นเดียวกับรูปแบบ Layer-2 อื่นๆ รูปแบบ Rollup ยังจัดเก็บสถานะนอกเครือข่าย และไม่จำเป็นต้องใช้โหนด Ethereum ในการคำนวณสถานะใหม่ของสัญญา อย่างไรก็ตาม ธุรกรรมทั้งหมดที่จะเปลี่ยนสถานะของสัญญาจะถูกเผยแพร่เป็นข้อมูล ซึ่งหมายความว่า บุคคลที่สามสามารถคำนวณสถานะของสัญญาโดยอาศัยข้อมูลสาธารณะเหล่านี้และกฎสาธารณะ (แม้ว่าสัญญาบน Ethereum จะไม่สามารถใช้สถานะเหล่านี้ได้)ดังที่ได้กล่าวไว้ก่อนหน้านี้ เมื่อสัญญา Lyaer-2 เลือกที่จะย้ายสถานะการคำนวณออกจากเชน Ethereum และปิดบังสถานะสัญญาของตัวเอง จะทำให้เกิดความเสี่ยงต่อผู้ใช้: ผู้ใช้ไม่ทราบว่าผู้ดำเนินการของสัญญา Layer-2 จะ สถานะที่ไม่ถูกต้องจะไม่ถูกส่งไปยังเชนเพื่อให้ blockchain จบ หากผู้ดำเนินการทำได้ก็เท่ากับขโมยเงินของผู้ใช้โดยตรง นอกจากนี้ ผู้ใช้ไม่ทราบการทำงานของสัญญา Layer-2 นักลงทุนจะไม่เซ็นเซอร์ธุรกรรมของตนเอง ซึ่งจะเป็นการระงับเงินทุนของตนเองมีสองวิธีในการแก้ปัญหาเงินถูกขโมย หนึ่งคือ เพื่อให้แน่ใจว่าการเปลี่ยนสถานะทุกครั้งนั้นถูกต้อง นั่นคือ ทุกครั้งที่มีการอัปเดตรูทสถานะของสัญญา ให้ Ethereum ดำเนินการโปรแกรมตรวจสอบความสมบูรณ์ของ การคำนวณ หลังจากผ่านการตรวจสอบแล้วสัญญาจะได้รับอนุญาตให้อัปเดตสถานะรูท นี่คือแนวคิดของ zk-rollup อีกแนวคิดหนึ่งคือต้องการให้ผู้คนแนบเงินมัดจำเมื่อขออัปเดตสถานะรูทของสัญญา ถ้า รูทสถานะที่ส่งไม่ถูกต้อง ผู้ที่รายงานรูทสถานะนี้สามารถรับเงินมัดจำจากผู้ส่งดั้งเดิม ซึ่งเป็นการยกเลิกในแง่ดี แต่แนวคิดหลังมีข้อกำหนดเบื้องต้น: ผู้แจ้งเบาะแสต้องมีวิธีการเพื่อให้ได้มาซึ่งสถานะก่อนการเปลี่ยนสถานะ มิฉะนั้นจะไม่มีทางสร้างหลักฐานเท็จเกี่ยวกับการเปลี่ยนแปลงได้มีทางเดียวเท่านั้นที่จะแก้ปัญหาการล็อคเงิน: ทำให้แนวคิดของ "ผู้ประกอบการ" อ่อนแอลงให้มากที่สุด เพื่อให้ทุกคนสามารถส่งธุรกรรมไปยัง Ethereum เพื่ออัปเดตสถานะของสัญญา Layer-2 แต่สิ่งนี้กลับไปสู่คำถาม: หากผู้ส่งไม่มีสถานะของสัญญา เขาจะพิสูจน์ความถูกต้องของการเข้าถึงสถานะของเขาและปล่อยให้สัญญาเผยแพร่ได้อย่างไรสุดท้าย โซลูชัน Rollup แก้ปัญหานี้โดย "เผยแพร่ข้อมูลธุรกรรมที่ตรงกันในทุกการเปลี่ยนสถานะ" ดังนั้น แม้ว่าสัญญาการยกเลิกจะไม่เปิดเผยสถานะในห่วงโซ่ แต่ใครก็ตาม รวมถึงผู้ใช้สัญญาการยกเลิก สามารถสร้างสถานะภายในของสัญญาการยกเลิกขึ้นใหม่ตามแพ็คเกจธุรกรรมสาธารณะเหล่านี้ ซึ่งหมายความว่า หากได้รับการออกแบบอย่างเหมาะสม เงินทุนในสัญญาการยกเลิกจะปลอดภัยเทียบเท่ากับสัญญาที่รัฐบันทึกไว้ใน Ethereum blockchain (นั่นคือ สัญญาที่เราใช้กันทั่วไปในตอนนี้)!
ยกตัวอย่าง zk-rollup โปรแกรมการยืนยันแบบออนไลน์ช่วยให้แน่ใจว่าสัญญาการยกเลิกไม่สามารถอัปเดตสถานะรูทที่ไม่ถูกต้อง เช่นเดียวกับที่ Maker DAO ไม่สามารถยึด DAI ของคุณโดยไม่ได้รับอนุญาตจากคุณ ในขณะเดียวกัน สมมติว่ายังเปิดเผยการคำนวณความสมบูรณ์ วิธีการก่อสร้าง คุณสามารถเริ่มต้นการเปลี่ยนสถานะเป็นสัญญาบนเครือข่ายได้โดยตรงเมื่อใดก็ได้เพื่อถอนเงินของคุณเอง สิ่งนี้เหมือนกับสัญญาที่มีสถานะปกติทุกประการ: ไม่มีทางที่จะย้อนกลับสถานะของสัญญาการยกเลิกโดยไม่มีการโจมตี 51% และไม่มีอะไรที่จะหยุดไม่ให้คุณรับเงินคืนโดยไม่มีการโจมตี 51% อย่างต่อเนื่องการยกเลิกในแง่ดีขึ้นอยู่กับสมมติฐานทางเศรษฐกิจของคริปโต ดังนั้นมันจึงอ่อนแอกว่าเล็กน้อย: นอกเหนือจากสถานะการย้อนกลับของการโจมตี 51% แล้ว ผู้โจมตียังสามารถแทรกสถานะที่ไม่ถูกต้องเข้าไปในสัญญาผ่านการตรวจสอบการโจมตี 51% ที่คงอยู่เป็นระยะเวลาหนึ่ง เดิมพันว่าไม่มีใครที่คำนวณสถานะล่าสุดของสัญญาจะสังเกตเห็นข้อผิดพลาด (ความน่าจะเป็นน้อยมาก) แต่การยกเลิกในแง่ดียังสามารถให้การปลอดอารักขาที่แข็งแกร่ง และคุณสามารถรับเงินคืนได้ทุกเมื่อETH
开发者
投资
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily


