ทุกสิ่งที่คุณต้องรู้เกี่ยวกับค่าสะสมที่มองโลกในแง่ดี
หมายเหตุบรรณาธิการ: บทความนี้มาจากข่าวลูกโซ่ ChainNews (ID: chainnewscom)เผยแพร่โดยได้รับอนุญาต
หมายเหตุบรรณาธิการ: บทความนี้มาจาก
ข่าวลูกโซ่ ChainNews (ID: chainnewscom)
ข่าวลูกโซ่ ChainNews (ID: chainnewscom)
เผยแพร่โดยได้รับอนุญาต
เขียนโดย: Georgios Konstantopoulos หุ้นส่วนการวิจัยของ Paradigm บริษัทร่วมทุนด้านคริปโต
ผู้เรียบเรียง: Zhan Juan
Paradigm อนุญาตให้ Lianwen แปลและจัดพิมพ์บทความฉบับภาษาจีน
ในระบบนิเวศ Ethereum หนึ่งในความท้าทายที่ยิ่งใหญ่ที่สุดคือการบรรลุความหน่วงต่ำและปริมาณงานสูงภายใต้ข้อจำกัดด้านทรัพยากรที่รุนแรง (เช่น CPU, แบนด์วิธ, หน่วยความจำ, พื้นที่ดิสก์)
การกระจายอำนาจของระบบถูกกำหนดโดยความสามารถของโหนดที่อ่อนแอที่สุดในเครือข่ายในการตรวจสอบกฎของระบบ โปรโตคอลประสิทธิภาพสูงที่สามารถทำงานบนฮาร์ดแวร์ที่มีทรัพยากรต่ำสามารถเรียกว่า "ปรับขนาดได้"
ในโพสต์นี้ เราจะเจาะลึกถึงวิธีการทำงานของ "โซลูชันเลเยอร์ 2" ในปัจจุบัน รูปแบบการรักษาความปลอดภัยที่สอดคล้องกัน และวิธีการแก้ไขปัญหาความสามารถในการปรับขนาดของ Ethereum
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับเทคโนโลยีความสามารถในการปรับขนาดที่ล้ำสมัยของ Ethereum และวิธีการสร้างและออกแบบระบบดังกล่าว บทความนี้อาจเป็นประโยชน์สำหรับคุณ
ตลอดทั้งบทความ คำหลักหรือแนวคิดที่สำคัญจะถูกเน้นด้วยตัวหนา ซึ่งเป็นคำ/คำศัพท์ที่คุณจะพบในขณะที่เรียนรู้เกี่ยวกับสกุลเงินดิจิทัล หัวข้อนี้ซับซ้อน บางทีคุณอาจจะรู้สึกสับสนเล็กน้อยในกระบวนการอ่าน แต่ตราบใดที่คุณยังคงอ่านมันต่อไป ผมเชื่อว่าคุณจะได้รับบางสิ่ง
ความต้องการทรัพยากรบล็อกเชน
มีสามปัจจัยที่ส่งผลต่อความต้องการทรัพยากรในการเรียกใช้โหนดในเครือข่ายแบบกระจายอำนาจ เช่น Bitcoin และ Ethereum:
แบนด์วิดธ์: ค่าใช้จ่ายในการดาวน์โหลดและเผยแพร่ข้อมูลที่เกี่ยวข้องกับบล็อกเชน
การคำนวณ: ค่าใช้จ่ายในการรันการคำนวณในสคริปต์หรือสัญญาอัจฉริยะ
การจัดเก็บ: ค่าใช้จ่ายในการจัดเก็บข้อมูลธุรกรรมสำหรับการจัดทำดัชนี และค่าใช้จ่ายในการจัดเก็บ "สถานะ" เพื่อดำเนินการบล็อกธุรกรรมใหม่ต่อไป เป็นที่น่าสังเกตว่าการจัดเก็บ "สถานะ" (ยอดคงเหลือในบัญชี, รหัสไบต์ของสัญญา, ค่า nonce) นั้นแพงกว่าการจัดเก็บข้อมูลธุรกรรมดิบ
มี 2 วิธีในการวัดประสิทธิภาพ:
ปริมาณงาน: จำนวนธุรกรรมที่ระบบสามารถประมวลผลต่อวินาที
เวลาแฝง: เวลาที่จำเป็นสำหรับการประมวลผลธุรกรรม
การกระจายอำนาจเป็นคุณสมบัติที่ต้องการของเครือข่าย crypto ที่เกิดขึ้นใหม่ เช่น Bitcoin และ Ethereum แต่อะไรคือองค์ประกอบที่ทำให้เครือข่ายกระจายอำนาจ
ความน่าเชื่อถือต่ำ: คุณสมบัตินี้ช่วยให้บุคคลใด ๆ สามารถตรวจสอบได้ว่าจำนวน bitcoins ไม่เกิน 21 ล้าน หรือ bitcoins ของพวกเขาไม่สามารถปลอมแปลงได้ ผู้ที่เรียกใช้ซอฟต์แวร์โหนดโดยอิสระจะคำนวณสถานะล่าสุดและตรวจสอบว่ากฎทั้งหมดได้รับการปฏิบัติตามในกระบวนการ
ต้นทุนต่ำ: หากซอฟต์แวร์โหนดมีราคาแพงในการทำงาน บุคคลจะพึ่งพาบุคคลที่สามที่เชื่อถือได้ในการตรวจสอบสถานะ ค่าใช้จ่ายสูงหมายถึงความต้องการความไว้วางใจสูง ซึ่งเป็นสิ่งที่เราต้องการหลีกเลี่ยงตั้งแต่แรก
คุณสมบัติที่ต้องการอีกประการหนึ่งคือความสามารถในการปรับขนาดได้: ความสามารถในการปรับขนาดปริมาณงานและเวลาแฝงแบบเหนือเส้นตรงให้กับค่าใช้จ่ายในการรันระบบ นั่นเป็นคำจำกัดความที่ดี แต่ไม่รวมถึง "ความไว้วางใจ" ดังนั้นเราจึงให้คำจำกัดความของ "ความสามารถในการปรับขนาดแบบกระจายอำนาจ": การบรรลุความสามารถในการปรับขนาดโดยไม่ต้องเพิ่มสมมติฐานความน่าเชื่อถือของระบบอย่างมีนัยสำคัญ
ในการซูมเข้า สภาพแวดล้อมรันไทม์ของ Ethereum คือ Ethereum Virtual Machine (EVM) ธุรกรรมที่ดำเนินการผ่าน EVM ดำเนินการต่างๆ ด้วยต้นทุนที่แตกต่างกัน ตัวอย่างเช่น การดำเนินการร้านค้ามีราคาแพงกว่าการดำเนินการเพิ่ม หน่วยการคำนวณในธุรกรรมเรียกว่า "แก๊ส" พารามิเตอร์ของระบบถูกตั้งค่าให้ประมวลผลแก๊สสูงสุด 12.5 ล้านแก๊สต่อบล็อก และบล็อกธุรกรรมจะถูกสร้างขึ้นทุกๆ 12.5 วินาทีโดยเฉลี่ย ดังนั้น Ethereum จึงมีเวลาแฝงอยู่ที่ 12.5 วินาที และมีอัตราความเร็ว 1 ล้านก๊าซต่อวินาที
คุณอาจถาม: 1 ล้านก๊าซต่อวินาทีให้ประโยชน์อะไร
~ 47 ธุรกรรม "การโอนอย่างง่าย" ต่อวินาที ธุรกรรมเหล่านี้ใช้แก๊ส 21,000 รายการ มีหน้าที่โอน ETH จาก A ไป B และเป็นธุรกรรมประเภทที่ง่ายที่สุด
~16 โทเค็น ERC20 โอนต่อวินาที เมื่อเทียบกับการโอน ETH วิธีการเหล่านี้เกี่ยวข้องกับการดำเนินการจัดเก็บมากกว่า และทำให้มีค่าใช้จ่ายประมาณ 60,000 ต่อครั้ง
~ 10 รายการสินทรัพย์ Uniswap ต่อวินาที ต้นทุนเฉลี่ยของการทำธุรกรรมโทเค็นต่อโทเค็นคือประมาณ 102k gas
…เลือกค่าน้ำมันของการทำธุรกรรมใดๆ ที่คุณต้องการแล้วหารด้วย 1m (12.5m / 12.5 /gas)
โปรดทราบว่าเมื่อความซับซ้อนในการดำเนินการธุรกรรมเพิ่มขึ้น ปริมาณงานของระบบจะลดลงเหลือค่าที่ต่ำมาก ยังมีช่องว่างสำหรับการปรับปรุง!
แนวทางที่ 1: ใช้ตัวกลาง
เราสามารถใช้บุคคลที่สามที่เชื่อถือได้เพื่ออำนวยความสะดวกในการทำธุรกรรมทั้งหมด ด้วยวิธีนี้ เราสามารถบรรลุทรูพุตที่สูงมาก และเวลาแฝงอาจเป็นเพียงเสี้ยววินาทีเท่านั้น เยี่ยมมาก การดำเนินการนี้จะไม่เปลี่ยนแปลงพารามิเตอร์ของทั้งระบบ แต่เราจะเลือกใช้โมเดลความน่าเชื่อถือที่บุคคลที่สามตั้งค่าไว้เพียงฝ่ายเดียว พวกเขาอาจเลือกที่จะเซ็นเซอร์เราหรือแม้แต่ยึดทรัพย์สินของเรา สิ่งนี้ไม่เป็นที่ต้องการ
แนวทางที่ 2: สร้างบล็อกให้ใหญ่ขึ้นและถี่ขึ้น
เราสามารถลดเวลาแฝงได้โดยลดเวลาระหว่างบล็อกสองบล็อก และเราสามารถเพิ่มปริมาณงานได้โดยเพิ่มขีดจำกัดแก๊สของบล็อก การเปลี่ยนแปลงนี้จะทำให้การใช้งานโหนดมีราคาแพงขึ้น ทำให้ยากต่อการใช้งานโหนด (สิ่งนี้เคยเกิดขึ้นกับ EOS, Solana, Ripple เป็นต้น)
ในโซลูชันที่ 1 ความต้องการความไว้วางใจเพิ่มขึ้น ในตัวเลือกที่ 2 ค่าใช้จ่ายจะเพิ่มขึ้น สิ่งนี้จะกำจัดพวกเขาในฐานะตัวเลือกการปรับขยาย
เริ่มจากหลักการแรก ค้นพบ Optimistic Rollup อีกครั้ง
ในหัวข้อถัดไป เราคิดว่าผู้อ่านมีความคุ้นเคยกับแฮชและ Merkle tree มาบ้างแล้ว
จากสิ่งที่เราได้เรียนรู้มา เราจะจำลองบทสนทนาแบบ Socratic โดยมีเป้าหมายเพื่อค้นหาโปรโตคอลที่เพิ่มปริมาณงานที่มีประสิทธิภาพของ Ethereum โดยไม่สร้างภาระให้กับผู้ใช้และผู้ให้บริการโหนด
ถาม: เราต้องการขยายขนาด Ethereum โดยไม่เปลี่ยนแปลงความเชื่อใจและสมมติฐานด้านต้นทุนอย่างมีนัยสำคัญ ฉันควรทำอย่างไร
ตอบ: เราต้องการลดความต้องการด้านต้นทุนของระบบสำหรับการดำเนินการที่มีอยู่ (ดูด้านบนสำหรับประเภททรัพยากรสามประเภท) เพื่อให้เข้าใจว่าทำไมสิ่งนี้ถึงไม่ง่าย เราต้องดูสถาปัตยกรรมของ Ethereum ก่อน:
ทุกโหนดใน Ethereum ปัจจุบันจัดเก็บและดำเนินการทุกธุรกรรมที่ส่งโดยผู้ใช้ ในระหว่างการดำเนินการ ธุรกรรมจะดำเนินการผ่าน EVM และโต้ตอบกับสถานะของ EVM (เช่น พื้นที่จัดเก็บ ยอดคงเหลือ ฯลฯ) ซึ่งเป็นการดำเนินการที่มีราคาแพงมาก เทคนิคการเพิ่มประสิทธิภาพสัญญาอัจฉริยะทั่วไปมุ่งเน้นไปที่การลดจำนวนการโต้ตอบกับรัฐให้น้อยที่สุด แต่ให้การปรับปรุงเพียงเล็กน้อยอย่างต่อเนื่อง
ถาม: คุณกำลังบอกว่ามีวิธีการทำธุรกรรมโดยไม่เกี่ยวข้องกับรัฐ ทำให้ต้นทุนทรัพยากรต่ำใช่หรือไม่
ตอบ: ในกรณีร้ายแรง เราสามารถย้ายการดำเนินการทั้งหมดออกจากเครือข่ายในขณะที่เก็บข้อมูลบางส่วนไว้บนเครือข่ายได้หรือไม่ เราสามารถทำได้โดยแนะนำบุคคลที่สามที่เรียกว่า "ซีเควนเซอร์" พวกเขามีหน้าที่รับผิดชอบในการจัดเก็บและดำเนินธุรกรรมที่ผู้ใช้ส่งมาในเครื่อง เพื่อรักษาระบบให้คงอยู่ ผู้สั่งซื้อจำเป็นต้องส่ง Merkle root ของธุรกรรมที่ได้รับเป็นระยะๆ และ state root ที่สร้างขึ้นบน Ethereum นี่เป็นขั้นตอนในทิศทางที่ถูกต้อง เนื่องจากเราจัดเก็บข้อมูล O(1) ในสถานะของ Ethereum สำหรับธุรกรรมนอกเชนของ O(N) เท่านั้น
ถาม: ดังนั้นเราจึงปรับขนาดโดยให้ตัวเรียงลำดับคำนวณทุกอย่างนอกเครือข่ายและเผยแพร่เฉพาะรากของ Merkle
คำตอบ: ใช่
ถาม: ตกลง ดังนั้นเมื่อคุณเข้าร่วม ผู้สั่งซื้อจะรับประกันค่าธรรมเนียมการโอนที่ถูก ดังนั้นการฝากและถอนเงินจะทำงานอย่างไร?
คำตอบ: ผู้ใช้จะเข้าสู่ระบบโดยการฝากเงินบน Ethereum จากนั้นผู้สั่งซื้อจะเครดิตจำนวนเงินที่สอดคล้องกันไปยังบัญชีของผู้ใช้ ผู้ใช้สามารถเสนอเนื้อหาธุรกรรมดังกล่าวบน Ethereum ได้ เช่น "ฉันต้องการถอน 3 ETH บัญชีของฉันมี > 3 ETH อยู่แล้ว นี่คือหลักฐาน" แม้ว่าจะไม่มีสถานะผู้ใช้จริงที่เลเยอร์ 1 ผู้ใช้สามารถค้นหาสถานะรูทที่เผยแพร่โดยผู้สั่งซื้อเพื่อแสดงหลักฐานของ Merkle ที่เกี่ยวข้องว่าพวกเขามีเงินเพียงพอในสถานะปัจจุบัน
ถาม: ตอนนี้เราทราบแล้วว่าผู้ใช้ต้องการหลักฐานของ Merkle เพื่อถอนเงิน ผู้ใช้จะได้รับข้อมูลเพื่อสร้างหลักฐานของ Merkle ได้อย่างไร
ตอบ: พวกเขาสามารถขอให้ผู้คัดแยกให้ข้อมูลได้!
ถาม: จะเกิดอะไรขึ้นหากตัวเรียงลำดับใช้งานไม่ได้ชั่วคราวหรือถาวร
ตอบ: ตัวเรียงลำดับอาจเป็นอันตราย หรืออาจออฟไลน์ได้เนื่องจากปัญหาทางเทคนิค ซึ่งจะทำให้ประสิทธิภาพการทำงานลดลง (หรือแย่กว่านั้นคือ ขโมยทรัพย์สินของคุณ!) ดังนั้นเราจึงต้องกำหนดให้ผู้สั่งซื้อส่งข้อมูลการทำธุรกรรมทั้งหมดบนเครือข่ายเพื่อการจัดเก็บ แต่ไม่ใช่การดำเนินการ ในปัญหานี้ เป้าหมายคือการได้รับความพร้อมใช้งานของข้อมูล สมมติว่าข้อมูลทั้งหมดถูกจัดเก็บไว้ใน Ethereum อย่างถาวร แม้ว่าผู้สั่งซื้อจะหายไป ผู้สั่งซื้อรายใหม่สามารถดึงข้อมูลที่เกี่ยวข้องกับเลเยอร์ 2 ทั้งหมดจาก Ethereum สร้างสถานะเลเยอร์ 2 ล่าสุดขึ้นใหม่ และออกจากตำแหน่งก่อนหน้าเพื่อดำเนินการต่อ
ถาม: หากผู้สั่งซื้อออนไลน์แต่ปฏิเสธที่จะให้ข้อมูลหลักฐาน Merkle แก่ฉัน ฉันจะสามารถดาวน์โหลดจาก Ethereum ได้หรือไม่
ตอบ: ได้ คุณสามารถซิงค์โหนด Ethereum ด้วยตัวคุณเอง หรือเชื่อมต่อกับหนึ่งในบริการโหนดที่มีการจัดการมากมาย
ถาม: สิ่งหนึ่งที่ฉันยังไม่เข้าใจคือ คุณจะเก็บบางอย่างไว้ใน Ethereum โดยไม่ดำเนินการได้อย่างไร ทุกธุรกรรมไม่ผ่าน EVM ใช่หรือไม่
คำตอบ: สมมติว่าคุณส่งธุรกรรม 10 รายการเพื่อโอน ETH จาก A ไป B การดำเนินการแต่ละรายการจะทำดังต่อไปนี้: เพิ่ม nonce ของ A, ลดยอดคงเหลือของ A และเพิ่มยอดคงเหลือของ B สิ่งนี้เกี่ยวข้องกับการเขียนและอ่านค่อนข้างน้อยจากสถานะโลกของ Ethereum แต่คุณสามารถส่งการเข้ารหัสของธุรกรรมทั้งหมดไปยังฟังก์ชันเผยแพร่ (bytes_transactions) สาธารณะ { } ของสัญญาอัจฉริยะได้ โปรดทราบว่าเนื้อหาของฟังก์ชันว่างเปล่า! ซึ่งหมายความว่าข้อมูลธุรกรรมที่เผยแพร่จะไม่ถูกตีความ ดำเนินการ หรือเข้าถึงได้จากทุกที่ ข้อมูลจะถูกเก็บไว้ในบันทึกประวัติของบล็อกเชนเท่านั้น (ค่าใช้จ่ายในการเขียนต่ำมาก)
ถาม: เราสามารถไว้วางใจผู้คัดแยกได้หรือไม่? จะเกิดอะไรขึ้นหากพวกเขาออกการเปลี่ยนสถานะที่ไม่ถูกต้อง
ตอบ: เมื่อใดก็ตามที่ผู้สั่งซื้อเผยแพร่ชุดการเปลี่ยนสถานะ จะมี "ช่วงเวลาโต้แย้ง" ซึ่งในระหว่างนั้นฝ่ายใดฝ่ายหนึ่งสามารถออก "หลักฐานการฉ้อโกง" เพื่อแสดงว่าการเปลี่ยนสถานะครั้งใดรายการหนึ่งไม่ถูกต้อง สิ่งนี้สามารถแสดงให้เห็นได้โดยการเล่นซ้ำบนเครือข่ายธุรกรรมที่ทำให้เกิดการเปลี่ยนสถานะ และเปรียบเทียบรูทสถานะที่เป็นผลลัพธ์กับรูทสถานะที่เผยแพร่โดยผู้สั่งซื้อ หากรากของสถานะไม่ตรงกัน การพิสูจน์การฉ้อโกงจะสำเร็จ และการเปลี่ยนสถานะจะถูกยกเลิก หากมีการเปลี่ยนสถานะเพิ่มเติมหลังจากการเปลี่ยนสถานะที่ไม่ถูกต้อง การเปลี่ยนสถานะนั้นจะถูกยกเลิกด้วย แต่หากธุรกรรมผ่านช่วงระยะเวลาโต้แย้งแล้ว จะไม่สามารถโต้แย้งได้อีกต่อไปและถือเป็นที่สิ้นสุด
ถาม: รอสักครู่! คุณได้กล่าวไว้ก่อนหน้านี้ว่า ถ้ามัน a) เพิ่มต้นทุน หรือ b) นำเสนอสมมติฐานความน่าเชื่อถือใหม่ มันก็ไม่มีคุณสมบัติในการขยายขนาดได้ ในสถานการณ์ที่คุณอธิบาย เราไม่ได้คาดคะเนเพิ่มเติมว่าจะมีคนรายงานการฉ้อโกงเสมอใช่หรือไม่
คำตอบ: ใช่ เราถือว่าการมีอยู่ของเอนทิตีที่เรียกว่า "ตัวตรวจสอบ" ซึ่งตรวจสอบการฉ้อโกงและเผยแพร่หลักฐานการฉ้อโกง หากสถานะของเลเยอร์ 1 และเลเยอร์ 2 ไม่ตรงกัน เรายังถือว่าผู้ตรวจสอบสามารถรับหลักฐานการฉ้อโกงที่มีอยู่ใน Ethereum ได้อย่างน่าเชื่อถือภายในระยะเวลาการโต้แย้ง เราถือว่าการมีอยู่ของ Validator เป็นข้อสันนิษฐานที่ "อ่อนแอ" ลองนึกภาพว่ามีแอปพลิเคชันที่มีผู้ใช้หลายพันคน และคุณต้องการเพียงหนึ่งคนเพื่อเรียกใช้ตัวตรวจสอบความถูกต้อง นั่นฟังดูไม่ไกลเกินเอื้อม! ในทางกลับกัน การเปลี่ยนรูปแบบความน่าเชื่อถือของ Ethereum หรือการเพิ่มต้นทุนการดำเนินงานของโหนด Ethereum เป็นสมมติฐานที่ "แข็งแกร่ง" ที่เราไม่ต้องการเปลี่ยนแปลง นี่คือสิ่งที่เราหมายถึงโดย "การเปลี่ยนสมมติฐานของระบบพื้นฐานอย่างมีนัยสำคัญ" เมื่อเรากำหนดความสามารถในการปรับขนาดแบบกระจายอำนาจ
ถาม: ฉันยอมรับว่ามีคนเรียกใช้ตัวตรวจสอบความถูกต้องเนื่องจากทุกฝ่ายได้รับประโยชน์จากความสำเร็จของโซลูชันใหม่นี้ แต่แน่นอนว่ามันขึ้นอยู่กับค่าใช้จ่ายในการดำเนินการจริงด้วย ดังนั้นข้อกำหนดด้านทรัพยากรสำหรับการเรียกใช้ตัวตรวจสอบความถูกต้องและตัวเรียงลำดับคืออะไร
ตอบ: ผู้สั่งซื้อและผู้ตรวจสอบต้องเรียกใช้โหนดเต็มของ Ethereum (ไม่ใช่โหนดเก็บถาวร) ซึ่งเป็นโหนดเต็มเลเยอร์ 2 เพื่อสร้างสถานะเลเยอร์ 2 ซอฟต์แวร์ที่ดำเนินการโดยผู้ตรวจสอบมีหน้าที่สร้างหลักฐานการฉ้อโกง และซอฟต์แวร์ที่ดำเนินการโดยผู้สั่งซื้อมีหน้าที่รับผิดชอบในการรวมกลุ่มธุรกรรมของผู้ใช้และเผยแพร่
ถาม: อย่างนั้นเหรอ?
คำตอบ: ใช่! ยินดีด้วย! คุณได้ค้นพบ Optimistic Rollup อีกครั้ง (Optimistic Rollup คือการรวมกันของ "Optimistic Contracts" และ "On-Chain Data Availability" (หรือที่เรียกว่า "Data Aggregation")) ซึ่งเป็นโซลูชันการปรับขนาดที่คาดว่าจะได้รับมากที่สุดในปี 2019-2021 เป็นเรื่องง่ายที่จะเข้าใจว่าทำไม เนื่องจากเป็นผลิตภัณฑ์สุดท้ายของกระบวนการวิจัยที่ใช้เวลานานหลายปีโดยชุมชน Ethereum ซึ่งคุณควรมีประสบการณ์ในการสนทนาสั้นๆ ด้านบนนี้แล้ว
แรงจูงใจในแง่ดี
การปรับขนาดเลเยอร์ 2 ขึ้นอยู่กับความจริงที่ว่าเราพยายามลดจำนวนการทำธุรกรรมบนเครือข่ายที่ดำเนินการ เราใช้หลักฐานการฉ้อโกงเพื่อยกเลิกการเปลี่ยนสถานะที่ไม่ถูกต้องที่อาจเกิดขึ้น เนื่องจากการพิสูจน์การฉ้อโกงเป็นธุรกรรมบนเครือข่าย เราจึงต้องการลดจำนวนการพิสูจน์การฉ้อโกงที่ออกบน Ethereum ในโลกอุดมคติ การฉ้อฉลไม่เคยเกิดขึ้น ดังนั้นจึงไม่มีการออกหลักฐานการฉ้อโกง
เรายับยั้งการฉ้อโกงด้วยการสร้างพันธะความภักดี เพื่อให้ผู้ใช้กลายเป็นผู้คัดแยก อันดับแรกพวกเขาต้องโพสต์พันธบัตรบน Ethereum ซึ่งจะถูกริบหากพิสูจน์ได้ว่าเป็นการฉ้อโกง เพื่อจูงใจให้บุคคลตรวจพบการฉ้อโกง พันธบัตรคำสั่งซื้อจะถูกแจกจ่ายให้กับผู้ตรวจสอบหลังจากถูกเฉือน
พันธบัตรความภักดีและระยะเวลาการโต้แย้ง
เมื่อออกแบบสิ่งจูงใจสำหรับการพิสูจน์การฉ้อโกง มีสองพารามิเตอร์ที่ต้องปรับ:
ขนาดพันธบัตรความภักดี: ผู้สั่งซื้อต้องเผยแพร่จำนวนเงินที่แจกจ่ายให้กับผู้ตรวจสอบความถูกต้อง สเกลที่ใหญ่ขึ้น แรงจูงใจในการเป็นผู้ตรวจสอบก็จะยิ่งมากขึ้น และแรงจูงใจในการโกงในฐานะผู้สั่งซื้อก็จะยิ่งน้อยลงเท่านั้น
ระยะเวลาข้อพิพาท: กรอบเวลาที่สามารถออกหลักฐานการฉ้อโกงได้ หลังจากนั้นธุรกรรมชั้น 2 จะถือว่าปลอดภัยในชั้น 1 ระยะเวลาการโต้เถียงที่นานขึ้นจะช่วยป้องกันการโจมตีจากการเซ็นเซอร์ได้ดีขึ้น ระยะเวลาการโต้เถียงที่สั้นลงจะสร้างประสบการณ์การใช้งานที่ดีสำหรับผู้ใช้ที่ถอนตัวจากเลเยอร์ 2 ไปเป็นเลเยอร์ 1 เนื่องจากพวกเขาไม่ต้องรอนานเพื่อให้เงินกลับมาใช้ในเลเยอร์ 1 อีกครั้ง
ในความเห็นของเรา เราไม่สามารถหาค่าคงที่ที่แน่นอนสำหรับพารามิเตอร์ทั้งสองได้ บางทีพันธบัตร 10 ETH และระยะเวลาการโต้แย้ง 1 วันก็เพียงพอแล้ว แต่บางที 1 ETH และ 7 วันก็เพียงพอแล้ว คำตอบที่แท้จริงคือขึ้นอยู่กับสิ่งจูงใจในการเป็นผู้ตรวจสอบ (ซึ่งขึ้นอยู่กับค่าใช้จ่ายในการดำเนินการ) และความง่ายในการออกหลักฐานการฉ้อโกง (ซึ่งขึ้นอยู่กับความแออัดของเลเยอร์ 1) ทั้งสองอย่างนี้ควรปรับได้ด้วยตนเองหรือโดยอัตโนมัติ
เป็นมูลค่าการกล่าวขวัญว่า EIP1559 แนะนำ BASEFEE opcode ใหม่ให้กับ Ethereum ที่สามารถใช้เพื่อประเมินความแออัดของเครือข่ายและปรับระยะเวลาของช่วงเวลาการโต้แย้งโดยทางโปรแกรม
วิธีการใช้กลไกการลงโทษนี้อย่างถูกต้องเป็นสิ่งสำคัญ มิฉะนั้นจะถูกนำไปใช้ในทางที่ผิด ผมขอยกตัวอย่างเพื่อแสดงให้เห็นว่าอะไรคือการใช้งานที่ไร้เดียงสาและไม่สมจริง:
อลิซโพสต์พันธบัตร 1 ETH ซึ่งช่วยให้เธอทำหน้าที่เป็นผู้สั่งซื้อในระบบได้
อลิซโพสต์อัปเดตสถานะหลอกลวง
บ็อบสังเกตเห็นสิ่งนี้และเผยแพร่ข้อโต้แย้ง หากประสบความสำเร็จ สิ่งนี้จะให้รางวัล 1 ETH ในพันธะของ Alice กับ Bob และยกเลิกการอัปเดตสถานะที่ฉ้อฉล
อลิซสังเกตเห็นการโต้เถียงและโพสต์ด้วย (ท้าทายตัวเอง!)
ALice ได้รับ 1 ETH และแม้ว่าเธอจะพยายามโกง แต่เธอก็ไม่ได้รับการลงโทษ
อลิซสามารถเปิดการโจมตีนี้โดย "วิ่งไปข้างหน้า" นั่นคือออกอากาศรายการเดียวกับบ็อบ แต่ด้วยราคาน้ำมันที่สูงกว่า ทำให้ธุรกรรมของอลิซถูกดำเนินการก่อนบ็อบ ซึ่งหมายความว่า Alice สามารถพยายามโกงต่อไปโดยมีค่าใช้จ่ายน้อยที่สุด (เฉพาะค่าธรรมเนียมการทำธุรกรรม Ethereum)
วิธีแก้ปัญหานี้ง่ายมาก: แทนที่จะให้รางวัลพันธบัตรทั้งหมดแก่ผู้โต้แย้ง ให้เผาพันธบัตร X% ในตัวอย่างข้างต้น หากเราเผาผลาญ 50% อลิซจะได้รับเพียง 0.5 ETH ซึ่งเพียงพอที่จะหยุดเธอจากการพยายามโกงในขั้นตอนที่ 2 แน่นอนว่าการเบิร์นพันธบัตรจะลดแรงจูงใจในการเรียกใช้ตัวตรวจสอบความถูกต้อง (เนื่องจากการจ่ายเงินจะน้อยลง) ดังนั้นจึงต้องแน่ใจว่าการเบิร์นพันธบัตรนั้นยังคงเพียงพอที่จะจูงใจผู้ใช้ให้เป็นผู้ตรวจสอบความถูกต้อง
คำวิจารณ์ทั่วไปของ Optiistic Rollup และคำตอบของเรา
ตอนนี้เราได้สร้างบล็อคของ Optimistic Rollup เสร็จแล้ว เรามาสำรวจและจัดการกับคำวิจารณ์ที่เป็นที่นิยมที่สุดของกลไกกัน
ระยะเวลาการถอนตัว/การโต้แย้งที่ยาวนานส่งผลเสียต่อการยอมรับและการรวมเข้าด้วยกัน
เรากล่าวไว้ข้างต้นว่าระยะเวลาการโต้แย้งที่ยาวนานนั้นดีต่อความปลอดภัย ดูเหมือนจะมีการแลกเปลี่ยนโดยธรรมชาติที่นี่: ระยะเวลาการโต้เถียงที่ยาวนานนั้นไม่ดีสำหรับผู้ใช้ที่ต้องรอนานหากต้องการถอนเงิน ระยะเวลาการโต้เถียงที่สั้นลงทำให้ผู้ใช้ได้รับประสบการณ์ที่ราบรื่นอย่างแน่นอน แต่จากนั้นคุณก็เสี่ยงต่อการฉ้อโกงที่จะเกิดขึ้น
เราไม่คิดว่ามันเป็นปัญหา ด้วยศักยภาพในการถอนเงินที่ล่าช้า เราคาดว่าผู้ดูแลสภาพคล่องจะเข้ามาดำเนินการอย่างรวดเร็วและเสนอการถอนเงินที่เร็วขึ้น สิ่งนี้เป็นไปได้เนื่องจากบุคคลที่ตรวจสอบสถานะเลเยอร์ 2 สามารถตัดสินได้อย่างถูกต้องว่าการถอนเงินน่าจะเป็นการฉ้อโกง และทำให้ "ซื้อ" บริการของพวกเขาด้วยส่วนลดเล็กน้อย ตัวอย่างเช่น:
ผู้เข้าร่วม:
อลิซ: มี 5 ETH ในชั้นที่ 2
Bob: ในสัญญาอัจฉริยะของ "ผู้ดูแลสภาพคล่อง" มี 4.95 ETH ในเลเยอร์ 1 และมีตัวตรวจสอบความถูกต้องทำงานบนเลเยอร์ 2
ขั้นตอน:
Alice บอกให้ Bob รู้ว่าเธอต้องการถอนเงิน "เร็ว" และจ่ายค่าธรรมเนียมให้เขา 0.05 ETH
อลิซส่งคำขอเงินสดไปยังสัญญาอัจฉริยะ "ผู้ดูแลสภาพคล่อง" ของบ็อบ
ณ จุดนี้สามารถเกิดขึ้นได้สองสิ่ง:
Bob ตรวจสอบว่าการถอนนั้นถูกต้องบนตัวตรวจสอบเลเยอร์ 2 ของเขาและอนุมัติการถอนอย่างรวดเร็ว สิ่งนี้จะโอน 4.95 ETH ไปยังที่อยู่เลเยอร์ 1 ของอลิซทันที หลังจากระยะเวลาการถอนหมด Bob สามารถรับ 5 ETH เพื่อทำกำไรสุทธิSimple Fast Withdrawalsเจ้าหน้าที่ตรวจสอบความถูกต้องของ Bob แจ้งเตือนเขาว่าธุรกรรมไม่ถูกต้อง Bob โต้แย้งการเปลี่ยนสถานะที่เกิดจากธุรกรรม ยกเลิกธุรกรรม และได้รับพันธะจากการอนุญาตให้เกิดธุรกรรมที่เป็นอันตราย
อลิซสามารถซื่อสัตย์และนำเงินออกทันที หรือทุจริตและถูกลงโทษ เราคาดว่าค่าธรรมเนียมที่จ่ายให้กับผู้ดูแลสภาพคล่องจะลดลงเมื่อเวลาผ่านไป ทำให้ผู้ใช้มองไม่เห็นกระบวนการนี้ในที่สุดหากมีความต้องการใช้บริการ
ความหมายที่สำคัญที่สุดของคุณสมบัตินี้คือช่วยให้สามารถประกอบกันได้กับสัญญาเลเยอร์ 1 โดยไม่ต้องรอระยะเวลาการโต้แย้งทั้งหมด
โปรดทราบว่าเทคนิคนี้ถูกนำมาใช้ครั้งแรกใน "
"(การถอนเงินที่ง่ายและรวดเร็ว)" ที่อธิบายไว้ในบทความ
นักขุดสามารถติดสินบนเพื่อเซ็นเซอร์การถอนเงิน ทำลายความปลอดภัย Optimistic Rollup
ในโพสต์ "Optimistic Rollup's Near-Zero-Cost Attack Scenario" บางคนเชื่อว่าแรงจูงใจของนักขุดมีมากเกินไป ซึ่งจะทำให้ผู้สั่งซื้อสมรู้ร่วมคิดกับนักขุด Ethereum และไม่เต็มใจที่จะตรวจสอบธุรกรรมที่มีข้อโต้แย้งใดๆ แน่นอนว่า เนื่องจากการพึ่งพาความปลอดภัยของระบบในการระงับข้อพิพาท นี่ถือเป็นผลร้ายแรงต่อระบบที่มองโลกในแง่ดีใดๆ
ภาวะที่กลืนไม่เข้าคายไม่ออกของ Validator ยับยั้งการทำงานของ Validator ทำลายการสรุปผลในแง่ดีวิเคราะห์และสารละลายEd Felten เขียนบทความที่ยอดเยี่ยมเกี่ยวกับภาวะที่กลืนไม่เข้าคายไม่ออกของผู้ตรวจสอบความถูกต้อง
วิเคราะห์
และ
สารละลาย
เราสรุปดังนี้:
หากแรงจูงใจของระบบทำงานได้ตามที่ตั้งใจไว้ก็จะไม่มีใครโกง
ไม่มีประโยชน์ที่จะใช้ตัวตรวจสอบความถูกต้องหากไม่มีใครโกงเพราะคุณไม่สามารถทำเงินจากการใช้งานได้
ตัวเรียงลำดับโกงและระบบไม่ทำงานตามที่คาดไว้อีกต่อไป
สรุปแล้ว
สิ่งนี้ฟังดูสำคัญ เกือบจะขัดแย้งกัน สมมติว่ามีขนาดรางวัลคงที่ ผู้ตรวจสอบจำนวนมากขึ้นจะลดรางวัลที่คาดไว้สำหรับผู้ตรวจสอบความถูกต้องคนเดียว นอกจากนี้ เมื่อมีตัวตรวจสอบความถูกต้องมากขึ้น ดูเหมือนว่าจะมีพายน้อยลงและการฉ้อโกงน้อยลง ซึ่งทำให้ปัญหารุนแรงขึ้นอีก ในการวิเคราะห์ติดตามผล Felten ยังให้แนวทางแก้ไขภาวะที่กลืนไม่เข้าคายไม่ออกของผู้ตรวจสอบความถูกต้อง
ฉันต้องการแสดงจุดยืนตรงกันข้ามที่นี่ และฉันไม่คิดว่าสภาพของผู้ตรวจสอบความถูกต้องมีความสำคัญเท่ากับที่นักวิจารณ์พูด ในทางปฏิบัติ มีแรงจูงใจที่ไม่ใช่ตัวเงินในการเป็นผู้ตรวจสอบความถูกต้อง ตัวอย่างเช่น คุณอาจสร้างแอปพลิเคชันขนาดใหญ่บนแพลตฟอร์มแบบรวม และคุณอาจเก็บโทเค็นไว้ และหากระบบล้มเหลว แอปพลิเคชันของคุณจะใช้งานไม่ได้ หรือโทเค็นของคุณจะสูญเสียมูลค่า นอกเหนือจากนั้น ความจำเป็นในการถอนเงินอย่างรวดเร็วยังสร้างแรงจูงใจให้ผู้ตรวจสอบความถูกต้องของผู้ดูแลสภาพคล่องมีอยู่ (ดังที่เราเห็นในส่วนก่อนหน้า) ซึ่งไม่คุ้มกันต่อการฉ้อโกง ให้เฉพาะเจาะจงมากขึ้น Bitcoin ไม่ได้ให้สิ่งจูงใจใด ๆ ในการจัดเก็บประวัติ blockchain ทั้งหมดหรือให้ข้อมูลในเครื่องของคุณแก่เพื่อน ๆ แต่ผู้คนทำเช่นนั้นโดยเห็นแก่ผู้อื่น
แม้ว่าการเรียกใช้ตัวตรวจสอบความถูกต้องในสุญญากาศจะไม่ได้รับสิ่งจูงใจ แต่ก็ทำให้ระบบมีความปลอดภัย ซึ่งเป็นสิ่งสำคัญที่สุดสำหรับหน่วยงานที่ลงทุนในความสำเร็จของระบบ ดังนั้นเราจึงเชื่อว่าในชั้นที่ 2 ของระบบมองโลกในแง่ดี ไม่จำเป็นต้องคิดค้นกลไกเพื่อเลี่ยงภาวะที่กลืนไม่เข้าคายไม่ออกของผู้ตรวจสอบความถูกต้องสรุปแล้วเราวิเคราะห์หนึ่งในเทคโนโลยีที่จะมีความสำคัญต่อ Ethereum ในปี 2021: Optimistic Rollup
เพื่อสรุปประโยชน์ของมัน: Optimistic Rollup เป็นส่วนขยายของ Ethereum ที่มีความปลอดภัย ความสามารถในการจัดองค์ประกอบ และคูเมืองสำหรับนักพัฒนาของ Ethereum ในขณะที่ปรับปรุงประสิทธิภาพโดยไม่ส่งผลกระทบต่อต้นทุนหรือความต้องการความไว้วางใจของผู้ใช้ Ethereum เราสำรวจโครงสร้างสิ่งจูงใจที่ทำให้ Optimistic Rollups ทำงานและตอบสนองต่อคำวิจารณ์ทั่วไปเราต้องการย้ำว่าเพดานประสิทธิภาพของ Optimistic Rollup ถูกกำหนดโดยข้อมูลที่เผยแพร่ในระดับที่ 1 ดังนั้น ข้อดีของมันคือ: 1) บีบอัดข้อมูลที่คุณเผยแพร่ให้ได้มากที่สุด (เช่น โดยการรวมลายเซ็น BLS), 2) มีชั้นข้อมูลขนาดใหญ่และราคาถูก (เช่น ETH2)สำหรับการอ่านเพิ่มเติม เราขอแนะนำ Buterin's On Rollup และ


