ภาพรวมเทคนิคของโปรโตคอล JAM ของ Polkadot

บทความนี้มีการวิเคราะห์ทางเทคนิคเกี่ยวกับโปรโตคอล JAM ที่เสนอใหม่ของ Polkadot ซึ่งช่วยให้ผู้อ่านเข้าใจว่า JAM เป็นอะไร และเป็นอย่างไรที่ช่วยเพิ่มความสามารถในระดับใหม่ให้กับนิเวศ Polkadot

ข้างล่างนี้คือคำอธิบายอย่างละเอียดเกี่ยวกับ Polkadot1, Polkadot2, และวิธีที่พวกเขาพัฒนาเป็น JAM (สำหรับรายละเอียดเพิ่มเติมดูที่: https://www.navalmanack.com/almanack-of-naval-ravikant/how-to-think-clearly). บทความนี้มุ่งเน้นไปที่ผู้อ่านด้านเทคนิคโดยเฉพาะอย่างยิ่งผู้ที่อาจไม่คุ้นเคยมากับ Polkadot แต่มีความรู้เกี่ยวกับระบบบล็อกเชนบ้าง และมีโอกาสที่จะรู้จักเทคโนโลยีจากระบบนิวกับอื่น
ฉันเชื่อว่าบทความนี้เป็นสิ่งที่ดีก่อนที่จะอ่าน JAM Gray Paper (สำหรับข้อมูลเพิ่มเติมดูที่: https://graypaper.com/)

ความรู้พื้นฐาน

บทความนี้สันนิษฐานว่าผู้อ่านมีความรู้เรื่องแนวคิดต่อไปนี้:

บทนำ: Polkadot1

เรามาทบทวนคุณลักษณะที่น่าประทับใจที่สุดของ Polkadot1 ก่อน

ด้านสังคม:

  • Polkadot เป็นองค์กรอัตโนมัติที่มีความยิ่งใหญ่ (DAO) โดยไม่มีการกำหนด ระบบนี้นำการปฏิบัติการบนเชน และการปกครองตนเองโดยสมบูรณ์ รวมถึงการอัพเกรดรันไทม์โดยไม่ต้อง fork
  • คณะกรรมการกำกับ SEC ได้รับรู้ DOT เป็นซอฟต์แวร์ ไม่ใช่หลักทรัพย์ (สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ https://polkadot.com/newsroom/press-releases/web3-foundation-announces-polkadot-blockchains-native-token-dot-has-morphed-and-is-software-not-a-security)
  • งานพัฒนาส่วนใหญ่บนเครือข่ายถูกดำเนินการโดย Polkadot Fellowship (สำหรับข้อมูลเพิ่มเติม ดูที่:https://polkadot-fellows.github.io/dashboard/) แทนที่จะโดย Parity Technologies, บริษัทที่สนับสนุนโครงการด้านการเงินhttps://www.parity.io/).

ด้านเทคนิค:

  • Polkadot นำมาใช้ร่วมกันในการรักษาความปลอดภัยและการดำเนินการแบบชาร์ด
  • ใช้เมตาโปรโตคอลที่ใช้ WASM (สำหรับรายละเอียดเพิ่มเติม ดูที่: https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/wasm_meta_protocol/index.html) รหัสของบล็อกเชนจะถูกเก็บไว้ในสถานะเป็นไบต์โค้ด สิ่งนี้ทําให้การอัพเกรดส่วนใหญ่เกิดขึ้นได้โดยไม่ต้องใช้ส้อมและเปิดใช้งานการแบ่งส่วนที่แตกต่างกัน (ดูส่วนที่เกี่ยวข้องสําหรับข้อมูลเพิ่มเติมเกี่ยวกับ "การแบ่งส่วนที่แตกต่างกัน")

การดำเนินการแบบ Sharded: จุดสำคัญ

ปัจจุบันเรากำลังพูดถึงเครือข่ายชั้นที่ 1 ที่เป็นเจ้าภาพของเครือข่าย "บล็อกเชน" ชั้นที่ 2 อื่น ๆ โดยคล้ายกับ Polkadot และ Ethereum ดังนั้นคำว่า Layer 2 และ Parachain สามารถใช้แทนกันได้

ปัญหาหลักของความสามารถในการขยายของบล็อกเชนสามารถเข้าใจได้โดยการเรียงเป็นว่า: มีชุดของผู้ตรวจสอบที่ใช้เศรษฐศาสตร์ของการพิสูจน์โอนแบบสถานะ ทำให้การดำเนินการของรหัสบางอย่างเป็นไปได้ โดยค่าเริ่มต้น ผู้ตรวจสอบเหล่านี้ต้องทำการดำเนินการแบบใหม่ทั้งหมดของกัน ถ้าเราตรวจสอบแล้วว่าผู้ตรวจสอบทุกคนจะต้องทำการดำเนินการทุกอย่างเสมอ ระบบทั้งหมดยังคงไม่สามารถขยายได้

โปรดทราบว่า ตราบเท่าที่หลักการของการทำงานซ้ำอย่างแน่นอนยังคงเปลี่ยนแปลงไม่ไป การเพิ่มจำนวนผู้ตรวจสอบในโมเดลนี้จริงๆ แล้วไม่ทำให้ประสิทธิภาพของระบบดียิ่งขึ้น

นี้แสดงให้เห็นถึงบล็อกเชนแบบโมโนลิทิก (ต่างจากบล็อกเชนแบบชาร์ด) ผู้ตรวจสอบเครือข่ายทั้งหมดจะประมวลผลข้อมูลนำเข้า (เช่น บล็อก) ทีละอัน ในระบบเช่นนี้ ถ้าเลเยอร์ 1 ต้องการเป็นโฮสต์เพิ่มเลเยอร์ 2 แล้ว ผู้ตรวจสอบทั้งหมดจะต้องทำการประมวลผลงานของเลเยอร์ 2 ทั้งหมดอีกครั้ง โดยชัดเจนว่าวิธีนี้ไม่สามารถมีประสิทธิภาพ

Optimistic rollups address this issue by only re-executing (fraud proofs) when fraud is claimed. SNARK-based Rollups address this issue by leveraging the fact that the cost of validating SNARK proofs is significantly lower than the cost of generating them, thereby allowing all validators to efficiently verify SNARK proofs. For more details, refer to the “Appendix: Scalability Space Diagram.”

วิธีการแก้ปัญหาอย่างตรงไปตรงมาสำหรับการแบ่งชาร์ด คือการแบ่งชุดผู้ตรวจสอบเป็นชุดย่อยเล็ก ๆ และทำให้ชุดย่อยเหล่านี้รันบล็อกเลเยอร์ 2 ซ้ำอีกครั้ง ปัญหาที่เกิดขึ้นกับวิธีการเช่นนี้คือ เรากำลังแบ่งชาร์ดทั้งการดำเนินการและความปลอดภัยทางเศรษฐกิจของเครือข่าย แบบโซลูชันเลเยอร์ 2 ดังกล่าวมีความปลอดภัยต่ำกว่าเลเยอร์ 1 และความปลอดภัยลดลงต่อไปเมื่อเราแบ่งชุดผู้ตรวจสอบเป็นชุดย่อยมากขึ้น

ในขณะที่ optimistic rollups ที่ต้นแบบมีค่าใช้จ่ายในการทำงานใหม่ไม่สามารถหลีกเลี่ยงได้เสมอ Polkadot ถูกออกแบบมาพร้อมกับการทำงานแชร์ ซึ่งช่วยให้ส่วนหนึ่งของผู้ตรวจสอบสามารถที่จะทำงานใหม่บล็อก Layer 2 ในขณะที่ยังมีหลักฐานทางคริปโทเศียรที่เพียงพอต่อเครือข่ายทั้งหมดเพื่อพิสูจน์ว่าบล็อก Layer 2 เป็นปลอดภัยเท่าเทียมกับการที่ชุดตรวจสอบทั้งหมดได้ทำงานใหม่ นี่เป็นผลมาจากการใช้กลไกที่ใหม่ (และเร็วๆ นี้ได้รับการตีพิมพ์เป็นทางการ) ที่รู้จักกันดีว่า ELVES (สำหรับรายละเอียดเพิ่มเติม ดูที่: https://eprint.iacr.org/2024/961)

ในสรุป ELVES สามารถมองเป็นกลไก "suspicious rollups" ผ่านรอบหลาย ๆ รอบของ validators ที่สอบถาม validators คนอื่น ๆ ว่าบล็อก Layer 2 ที่กำหนดไว้ถูกต้องหรือไม่ เราสามารถยืนยันได้ด้วยความน่าจะเป็นสูงว่าความถูกต้องของบล็อก ในกรณีของข้อพิพาท ชุด validators เต็มรูปแบบก็จะเข้ามาในทันที ผู้ก่อตั้ง Polkadot Rob Habermeier ได้อธิบายอย่างละเอียดในบทความ (สำหรับข้อมูลเพิ่มเติม ดูที่: https://polkadot.com/blog/polkadot-v1-0-sharding-and-economic-security#approval-checking-and-finality)

ELVES ทำให้ Polkadot สามารถมีการดำเนินการแบ่งชั้นและความปลอดภัยที่ใช้ร่วมกัน 2 คุณสมบัติที่เรียกว่าไม่สามารถใช้ร่วมกันได้ก่อนหน้านี้ นี่คือความสำเร็จทางเทคนิคหลักของ Polkadot1 ในเรื่องของการขยายขอบเขต

ตอนนี้เรามาดูไปข้างหน้ากับการอุปมาของ "Core" กันบ้าง บล็อกเชนการดำเนินการแบบ Sharded คล้ายกับ CPU: เช่นเดียวกับ CPU ที่สามารถมีหลาย Core ที่ดำเนินการคำสั่งพร้อมกัน Polkadot สามารถประมวลผลบล็อกชั้นที่ 2 พร้อมกัน นี่คือเหตุผลที่ชั้นที่ 2 บน Polkadot เรียกว่า parachain และสภาพแวดล้อมที่สับสนที่ Validator ย่อยมีการดำเนินการทำซ้ำบล็อกชั้นที่ 2 เดียวกันเรียกว่า "core" แต่ละ core สามารถถูกจัดแยกออกเป็น "กลุ่มของ Validator ที่ร่วมมือ"

คุณสามารถคิดว่าบล็อกเชนแบบโมโนลิติกจะประมวลผลบล็อกเดียวในเวลาเดียวกัน ในขณะที่ Polkadot จะประมวลผลทั้งบล็อกเชนส่งข้อมูลและบล็อกพาราเชนสำหรับแต่ละคอร์ในช่วงเวลาเดียวกัน

ความหลากหลาย

จนถึงตอนนี้เราได้พูดถึงความสามารถในการขยายขนาดและการดำเนินการแบบ sharded ที่ Polkadot มีเสนอแล้วเท่านั้น สำคัญที่ต้องระบุคือว่าแต่ละชิ้นกระจายของ Polkadot นั้นจริง ๆ แล้วเป็นแอปพลิเคชันที่แตกต่างกันอย่างสมบูรณ์ นี้ทำได้โดยผ่าน metaprotocol ที่เก็บเป็น bytecode: protocol ที่เก็บคำจำกัดของบล็อกเชนเองเป็น bytecode ในสถานะของมัน ใน Polkadot 1.0 WASM ถูกใช้เป็น bytecode ที่เลือกใช้ ในขณะที่ใน JAM PVM/RISC-V ถูกนำมาใช้งาน

นี่คือเหตุผลที่ Polkadot ถูกอ้างถึงว่าเป็นบล็อกเชนที่แบ่งชิ้นเป็นส่วนต่าง ๆ (สำหรับรายละเอียดเพิ่มเติม ดูที่: https://x.com/kianenigma/status/1790763921600606259) ทุกชั้น Layer 2 เป็นแอปพลิเคชันที่แตกต่างอย่างสมบูรณ์

Polkadot2

สิ่งสําคัญอย่างหนึ่งของ Polkadot2 คือการทําให้การใช้คอร์มีความยืดหยุ่นมากขึ้น ในรูปแบบ Polkadot ดั้งเดิมระยะเวลาการเช่าหลักอยู่ในช่วง 6 เดือนถึง 2 ปีซึ่งเหมาะกับองค์กรที่อุดมด้วยทรัพยากร แต่เป็นไปได้น้อยกว่าสําหรับทีมขนาดเล็ก คุณสมบัติที่ช่วยให้แกน Polkadot สามารถใช้งานได้อย่างยืดหยุ่นมากขึ้นเรียกว่า "Agile Coretime" (สําหรับรายละเอียดเพิ่มเติมโปรดดู: https://polkadot.com/agile-coretime) ในโหมดนี้ เงื่อนไขสัญญาเช่าหลักสามารถเริ่มต้นตั้งแต่บล็อกเดียวหรือนานถึงหนึ่งเดือน พร้อมที่จะมีราคาสูงสุดสำหรับผู้ที่ต้องการเช่าในระยะเวลายาว

คุณลักษณะอื่น ๆ ของ Polkadot 2 กำลังถูกเปิดเผยเรื่อย ๆ ขณะที่การสนทนาของเรากำลังก้าวหน้า ดังนั้นไม่จำเป็นต้องอธิบายเพิ่มเติมที่นี่

การดำเนินการในไคออน vs การดำเนินการบนเชน

เพื่อเข้าใจ JAM ควรเข้าใจก่อนว่าเกิดอะไรขึ้นเมื่อบล็อก Layer 2 เข้าสู่ Polkadot core ครั้งแรก ดังนี้คืออธิบายอย่างง่าย

โปรดจำไว้ว่าซอร์สประกอบไปด้วยกลุ่มของผู้ตรวจสอบหลักๆ ดังนั้นเมื่อเราพูดว่า "ข้อมูลถูกส่งไปยังซอร์ส" หมายความว่าข้อมูลถูกส่งไปยังกลุ่มผู้ตรวจสอบเหล่านี้

  1. บล็อก Layer 2 พร้อมกับส่วนหนึ่งของสถานะของ Layer 2 นั้นถูกส่งไปยังแกน. ข้อมูลนี้ประกอบด้วยข้อมูลทั้งหมดที่ต้องใช้ในการดำเนินการบล็อก Layer 2

  2. ส่วนหนึ่งของผู้ตรวจสอบความถูกต้องของระบบจะทำการรันบล็อกชั้นที่ 2 อีกครั้งและดำเนินการต่อไปกับงานที่เกี่ยวข้องกับการตกลง

  3. ผู้ตรวจสอบแกนหลักเหล่านี้จะให้ข้อมูลที่ถูกดำเนินการใหม่ให้กับผู้ตรวจสอบคนอื่นนอกเหนือจากแกนหลัก ตามกฎ ELVES ผู้ตรวจสอบเหล่านี้อาจตัดสินใจว่าจะดำเนินการใหม่บล็อกชั้นที่ 2 หรือไม่ โดยต้องใช้ข้อมูลนี้เพื่อดำเนินการ

สำคัญที่จะระบุว่า ตอนนี้ทุกการดำเนินการเหล่านี้กำลังเกิดขึ้นนอกบล็อก Polkadot หลักและฟังก์ชันการเปลี่ยนสถานะ ทุกอย่างเกิดขึ้นภายในคอร์และชั้นข้อมูลที่สามารถใช้ได้

  1. สุดท้าย, ส่วนเล็ก ๆ ของสถานะ Layer 2 ล่าสุดกลายเป็นเห็นได้บนโซ่เรลย์หลักของ Polkadot โดยไม่เหมือนกับการดำเนินการก่อนหน้านี้, ขั้นตอนนี้ถูกและมีราคาที่ถูกกว่าการประมวลผลบล็อค Layer 2 และมีผลต่อสถานะหลักของ Polkadot มันเป็นเห็นได้ในบล็อค Polkadot และถูกดำเนินการโดยผู้ตรวจสอบ Polkadot ทั้งหมด

จากนี้เราสามารถสำรวจหลาย ๆ การดำเนินงานสำคัญที่ Polkadot กำลังดำเนินการ

  • จากขั้นตอนที่ 1 เราสามารถสรุปได้ว่า Polkadot ได้นำเสนอรูปแบบการดำเนินการใหม่ที่แตกต่างจากฟังก์ชันการเปลี่ยนสถานะบล็อกเชนแบบดั้งเดิม ตามปกติเมื่อผู้ตรวจสอบเครือข่ายทำงาน สถานะบล็อกเชนหลักจะได้รับการอัปเดต นี่คือสิ่งที่เราเรียกว่าการปฏิบัติตามบัญชี, และมันคือสิ่งที่เกิดขึ้นในขั้นตอนที่ 3 อย่างไรก็ตามสิ่งที่เกิดขึ้นภายในแกนกลาง (ขั้นตอนที่ 1) นั้นแตกต่างกัน วิธีการคำนวณบล็อกเชนรูปแบบใหม่นี้เรียกว่าการดำเนินการภายในแกน.
  • จากขั้นตอนที่ 2 เราสืบค้นว่า Polkadot มี ความพร้อมในการใช้ข้อมูล (DA)เลเยอร์ และเลเยอร์ 2 ใช้โดยอัตโนมัติเพื่อให้แน่ใจว่าหลักฐานการดำเนินการของพวกเขายังคงมีอยู่ในระยะเวลาหนึ่ง อย่างไรก็ตามบล็อกข้อมูลที่สามารถโพสต์ไปยังเลเยอร์ DA มีขนาดคงที่ ประกอบด้วยเพียงหลักฐานที่จำเป็นสำหรับการดำเนินการเลเยอร์ 2 อีกทั้ง รหัสพาราเชนไม่อ่านข้อมูลเลเยอร์ DA

เข้าใจสิ่งนี้เป็นพื้นฐานสำหรับเข้าใจ JAM นี่คือสรุป:

  • การดําเนินการแบบ In-Core: หมายถึงการดำเนินการที่เกิดขึ้นภายในส่วนหลัก การดำเนินการเหล่านี้มีความหลากหลาย มีขนาดใหญ่ และได้รับการรักษาความปลอดภัยผ่าน cryptoeconomics และ ELVES ซึ่งมอบความปลอดภัยเดียวกันกับการดำเนินการ on-chain
  • การดำเนินการบนเชื่อมโยง: หมายถึงการดำเนินการที่ดำเนินการโดยผู้ตรวจสอบทั้งหมด มีการรับประกันด้านเศรษฐศาสตร์ว่าปลอดภัยโดยค่าเริ่มต้น แต่มีค่าใช้จ่ายและถูกจำกัดมากขึ้นเนื่องจากทุกคนทำงานทุกงาน
  • ความพร้อมใช้ข้อมูล: หมายถึง ความสามารถของผู้ตรวจสอบ Polkadot ในการรับรองถึงความพร้อมในการใช้งานของข้อมูลบางประการสำหรับระยะเวลาหนึ่ง และให้มันกับผู้ตรวจสอบคนอื่น

JAM

ด้วยความเข้าใจนี้ เราสามารถนำเสนอ JAM ได้แล้ว

JAM เป็นโปรโตคอลใหม่ที่ได้รับแรงบันดาลจากการออกแบบของ Polkadot และเป็นไปตามมาตรฐานอย่างเต็มที่ โดยมีเป้าหมายที่จะแทนที่ Polkadot relay chain และทำให้การใช้งานหลักเป็นไปอย่างเต็มที่และไม่จำกัด

สร้างบน Polkadot 2, JAM มุ่งเน้นทำให้การสร้าง Layer 2s บนระบบหลักเป็นไปอย่างง่ายขึ้น มอบความยืดหยุ่นมากกว่าโมเดล agile-coretime

  • Polkadot 2 ช่วยให้การสร้างและใช้งาน Layer 2 บนคอร์สามารถเป็นไปได้อย่างมีเสถียรภาพมากขึ้น
  • JAM มีเป้าหมายที่จะอนุญาตให้แอปพลิเคชันใด ๆ สามารถถูกประยุกต์ใช้บนระบบ Polkadot's core ได้ แม้แต่แอปพลิเคชันเหล่านั้นจะไม่มีโครงสร้างเหมือนบล็อกเชนหรือเลเยอร์ 2

นี่เป็นการบรรลุผลโดยส่วนใหญ่โดยการเปิดเผยสามแนวคิดหลักที่ได้ถูกพูดถึงไว้ก่อนหน้านี้ให้แก่นักพัฒนา: การดำเนินการบนเชน, การดำเนินการในคอร์, และเลเยอร์ DA

กล่าวอีกอย่างคือ ใน JAM, นักพัฒนาสามารถ:

  • โปรแกรมทั้งในแกนและงานบนโซ่ทั้งหมด
  • อ่านและเขียนไปยังเลเยอร์ DA ของ Polkadot ด้วยข้อมูลอย่างสมบูรณ์

นี่เป็นภาพรวมพื้นฐานของวัตถุประสงค์ของ JAM โดยไม่ต้องบอกว่ามีการทำให้ง่ายลงมาก และโปรโตคอลน่าจะพัฒนาต่อไป

ด้วยความเข้าใจที่มีรากฐานนี้ เราสามารถลึกอย่างละเอียดเกี่ยวกับ JAM ในบทต่อไป

บริการและรายการงาน

ใน JAM สิ่งที่เคยถูกเรียกว่าชั้นที่ 2 หรือพาราเชน ตอนนี้ถูกเรียกว่าบริการ, และสิ่งที่เคยถูกอ้างถึงเป็นบล็อกหรือธุรกรรมตอนนี้ถูกเรียกว่างานหรืองานแพ็คเกจ. โดยเฉพาะอย่างยิ่ง รายการงานเป็นของบริการ และ แพ็คเกจงานคือการรวบรวมของรายการงาน คำศัพท์เหล่านี้ถูกออกแบบโดยตั้งใจให้ครอบคลุมกรณีการใช้งานที่หลากหลายเกินไปจากกรณีการใช้งานบล็อกเชน/Layer 2

บริการถูกอธิบายโดยจุดเข้าถึงสามจุด ซึ่งสองจุดคือ fn refine() และ fn accumulate() จุดแรกอธิบายถึงบริการที่ทำในระหว่างการประมวลผลในภายใน และจุดที่สองอธิบายถึงการทำงานขณะการประมวลผลบนเชน

สุดท้ายชื่อของจุดเข้านี้เป็นเหตุผลที่โปรโตคอลเรียกว่า JAM (Join Accumulate Machine)เข้าร่วม หมายถึง fn refine(), ซึ่งเป็นช่วงเวลาที่ทุกๆ คอร์ของ Polkadot ประมวลผลงานมากมายพร้อมกันในบริการต่างๆ หลายอัน หลังจากข้อมูลถูกประมวลผลแล้ว มันก็ย้ายไปสู่ขั้นตอนถัดไปสะสมหมายถึงกระบวนการที่สะสมผลลัพธ์ทั้งหมดเข้าสู่สถานะ JAM หลัก ซึ่งเกิดขึ้นในช่วงเวลาการดำเนินการบนเชน

รายการที่ทำงานสามารถระบุโค้ดที่พวกเขา execute ได้อย่างแม่นยำในคอร์และบนเชื่อมโยงได้อย่างไร และจากที่ไหนพวกเขาอ่านหรือเขียนเนื้อหาใน Distributed Data Lake ได้

ความเอื้อเฟื้อ

การตรวจสอบเอกสารที่มีอยู่เกี่ยวกับ XCM (ภาษาที่ Polkadot เลือกสำหรับการสื่อสารระหว่างพาราเชน) การสื่อสารทั้งหมดเป็นแบบไม่เชื่อมต่อ (สำหรับรายละเอียดเพิ่มเติม ดูที่ที่นี่). นี่หมายความว่าเมื่อส่งข้อความแล้ว คุณไม่สามารถรอคำตอบได้ การสื่อสารแบบไม่เกี่ยวข้องเป็นอาการของความไม่สอดคล้องในระบบ และเป็นหนึ่งในข้อเสียหลักของระบบที่แบ่งแยกอย่างถาวร เช่น Polkadot 1, Polkadot 2, และระบบนิเวศ Layer 2 ของ Ethereum ที่มีอยู่

อย่างไรก็ตาม ตามที่อธิบายไว้ในส่วน 2.4 ของกระดาษสีเทา, ระบบที่สมบูรณ์แบบที่ยังคงเป็นระบบที่เป็นสม่ำเสมอสำหรับผู้เช่าทุกคนสามารถขยายได้เพียงอย่างใดๆ โดยไม่เสียจากความสามารถในการใช้งานทั่วไป การเข้าถึงหรือความทนทาน

  • Synchronous ≈ ความสอดคล้อง || Asynchronous ≈ ความไม่สอดคล้อง

นี่คือที่ JAM โดดเด่น: โดยการนำเสนอคุณลักษณะหลายรูปแบบ JAM บรรลุสถานะกลางที่ใหม่ที่รู้จักกันว่าเป็นระบบที่มีความสอดคล้องบางส่วน ในระบบนี้ ระบบย่อยที่สื่อสารบ่อยสามารถสร้างสภาพแวดล้อมที่สอดคล้องกันกับกันโดยไม่บังคับให้ระบบทั้งหมดเป็นสม่ำเสมอ นี่เป็นการอธิบายที่ดีที่สุดจากดร. กาวิน วูดผู้เขียนกระดาษสีเทาในการสัมภาษณ์https://www.youtube.com/watch?t=1378&v=O3kRAVBTkfs&embeds_referring_euri=https%3A%2F%2Fblog.kianenigma.nl%2F&source_ve_path=OTY3MTQ

วิธีอื่น ๆ ในการเข้าใจสิ่งนี้คือการมอง Polkadot/JAM เป็นระบบที่ถูกแบ่งเป็นชั้น โดยที่ขอบเขตระหว่างชั้นเหล่านี้เป็นสิ่งที่เปลี่ยนไปอย่างยืดหยุ่นและถูกกำหนดไว้โดยเชิงพลวัต

Polkadot มีการแบ่งแยกและหลากหลายอย่างอยู่เสมอ

ตอนนี้มันไม่เพียงแต่ถูกแบ่งพิเศษและแตกต่างกัน แต่ขอบเขตของชาร์ดเหล่านี้สามารถกำหนดได้อย่างยืดหยุ่น - สิ่งที่ Gavin Wood อ้างถึงว่าเป็นระบบ 'semi-consistent' ในทวีตของเขาและกระดาษสีเทา (โปรดดู: https://x.com/gavofyork?ref_src=twsrc%5Etfw、https://graypaper.com/)

มีลักษณะหลายอย่างทำให้สถานะที่เป็นไปได้นี้เป็นไปได้:

  1. การเข้าถึงการดําเนินการแบบขนานแบบไร้สถานะซึ่งบริการที่แตกต่างกันสามารถโต้ตอบแบบซิงโครนัสกับบริการอื่น ๆ ภายในคอร์เดียวกันและบล็อกเฉพาะรวมถึงการดําเนินการแบบ on-chain ซึ่งบริการสามารถเข้าถึงผลลัพธ์จากบริการทั้งหมดในทุกคอร์
  2. JAM ไม่บังคับการจัดตารางบริการเฉพาะใด บริการที่มีการสื่อสารบ่อย สามารถให้สิ่งส่งตัวสร้างเศรษฐีให้กับตารางเวลาเพื่อสร้างงานที่มีบริการที่สื่อสารบ่อยเหล่านี้ ซึ่งทำให้บริการเหล่านี้ทำงานภายในคอร์ที่เดียวกัน ทำให้การโต้ตอบของพวกเขาดูเหมือนเป็นเชิงเวลาจริง แม้ว่าพวกเขาจะกระจาย
  3. นอกจากนี้ JAM services สามารถเข้าถึงชั้น DA และใช้เป็นชั้นข้อมูลชั่วคราวที่มีราคาประหยัดมาก หลังจากที่ข้อมูลถูกวางไว้ใน DA มันจะแพร่กระจายไปยังทุก core แต่จะพร้อมใช้งานใน core เดียวกันทันที ดังนั้น JAM services สามารถบรรลุความสามารถในการเข้าถึงข้อมูลที่สูงขึ้นโดยการกำหนดตารางเวลาให้ตัวเองอยู่ใน core เดียวกันตลอดบล็อกติดต่อกัน

สำคัญที่จะระบุว่าในขณะที่ความสามารถเหล่านี้เป็นไปได้ภายใน JAM แต่ไม่ได้บังคับที่ระดับโปรโตคอล ดังนั้น บางอินเตอร์เฟซเป็นทฤษฎีเป็นไม่เช่นเดียวกันแต่สามารถทำงานแบบซิงโครนัสในปฏิบัติได้เนื่องจากการนำเสนอที่ซับซ้อนและสาระสำคัญ CorePlay ซึ่งจะถูกพูดถึงในส่วนถัดไป เป็นตัวอย่างของปรากฎการณ์นี้

CorePlay

ในส่วนนี้จะแนะนำ CorePlay ซึ่งเป็นแนวคิดการทดลองในสภาพแวดล้อม JAM ซึ่งสามารถบรรยายได้ว่าเป็นรูปแบบโปรแกรมสมาร์ทคอนแทร็คใหม่ ณ เวลาที่เขียน CorePlay ยังไม่ได้ถูกกำหนดอย่างเต็มที่และยังคงเป็นแนวคิดที่อยู่ในระดับสมมติ

เพื่อเข้าใจ CorePlay เราต้องแนะนำเครื่องจำลองเสมือน (VM) ที่ถูกเลือกโดย JAM: PVM

PVM

PVM เป็นรายละเอียดสำคัญในทั้ง JAM และ CorePlay รายละเอียดระดับต่ำของ PVM อยู่เหนือขอบเขตของเอกสารนี้และดีที่สุดที่จะอธิบายโดยผู้เชี่ยวชาญด้านโดเมนใน Graypaper อย่างไรก็ตาม สำหรับคำอธิบายนี้เราจะเน้นที่บางคุณสมบัติสำคัญของ PVM

  • การวัดที่มีประสิทธิภาพ
  • ความสามารถในการหยุดและดำเนินการต่อ

ส่วนหลังสำคัญอย่างยิ่งสำหรับ CorePlay

CorePlay เป็นตัวอย่างของวิธีที่ JAM's flexible primitives สามารถใช้ในการสร้างสภาพแวดล้อมสัญญาฉลาดที่เป็นซิงโครนัสและมีขยายตัวได้ด้วยอินเตอร์เฟซการเขียนโปรแกรมที่ยืดหยุ่นมาก CorePlay предложенияว่า สัญญาฉลาดที่ขึ้นอยู่กับนักแสดง ควรถูกติดตั้งโดยตรงบน JAM cores ทำให้พวกเขาได้รับประโยชน์จากอินเตอร์เฟซการเขียนโปรแกรมแบบซิงโครนัส นักพัฒนาสามารถเขียนสัญญาฉลาดเหมือนกับว่าพวกเขาเป็นฟังก์ชัน main() อย่างง่ายๆ โดยใช้นิพจน์เช่น let result = other_coreplay_actor(data).await?เพื่อสื่อสาร ถ้านักแสดงคอร์เพลย์คนอื่นอยู่บนคอร์ JAM เดียวกันในบล็อกเดียวกัน การเรียกนี้เป็นการเรียกที่เป็นพร้อมกัน หากอยู่บนคอร์อื่น นักแสดงจะถูกระงับและดำเนินการต่อในบล็อก JAM ถัดไป สิ่งนี้เป็นไปได้ด้วย JAM services, การจัดงานที่ยืดหยุ่นของพวกเขา และความสามารถของ PVM

บริการ CoreChains

ในที่สุด เรามาสรุปเหตุผลหลักที่ JAM เข้ากันได้อย่างสมบูรณ์กับ Polkadot ได้ เกี่ยวกับผลิตภัณฑ์ปัจจุบันของ Polkadot คือ parachains ที่มี agile-coretime ซึ่งยังคงต่อเนื่องใน JAM บริการที่ถูกนำไปใช้งานเป็นอันดับแรกใน JAM จะเป็น CoreChains หรือ Parachains ซึ่งทำให้ parachains แบบ Polkadot-2 ที่มีอยู่สามารถทำงานบน JAM

บริการเพิ่มเติมสามารถนำไปใช้บน JAM และบริการ CoreChains ที่มีอยู่สามารถสื่อสารกับพวกเขา อย่างไรก็ตาม ผลิตภัณฑ์ปัจจุบันของ Polkadot จะยังคงมั่นคง แค่เปิดรับประตูใหม่สำหรับทีม Parachain ที่มีอยู่

ข้อมูล Data Sharding

ส่วนใหญ่ของเอกสารนี้กล่าวถึงประสิทธิภาพในแง่มุมของการแบ่งชาร์ดในการดำเนินการ อย่างไรก็ตาม เรายังสามารถสำรวจปัญหานี้จากมุมมองของการแบ่งชาร์ดข้อมูลได้ด้วย น่าสนใจที่เราพบว่าสิ่งนี้คล้ายกับโมเดลที่มีความสอดคล้องบางส่วนที่กล่าวถึงไว้ก่อนหน้านี้ โดยหลักการแล้ว ระบบที่สอดคล้องอย่างสมบูรณ์นั้นเป็นที่เหนือกว่า แต่ไม่สามารถขยายขนาดได้ ในขณะที่ระบบที่ไม่สอดคล้องอย่างสมบูรณ์มีประสิทธิภาพในการขยายขนาดได้ดี แต่ไม่ได้ถูกเลือกตั้ง JAM ด้วยโมเดลที่มีความสอดคล้องบางส่วน นำเสนอทางเลือกใหม่

  • ระบบที่เป็นไปตามมาตรฐานอย่างสมบูรณ์: นี่คือแพลตฟอร์มที่ทุกอย่างถูกซิงโครไนส์ เช่น Solana หรือเหล่านั้นที่ถูกใช้งานอย่างเฉพาะเฉพาะบน Ethereum Layer 1 ข้อมูลแอปพลิเคชันทั้งหมดถูกเก็บบนเชนและสามารถเข้าถึงได้ง่ายๆ โดยแอปพลิเคชันอื่นๆ สิ่งนี้เป็นไอเดียที่เหมาะสมจากด้านความสามารถในการโปรแกรม แต่ไม่สามารถขยายได้
  • ระบบที่ไม่สอดคล้อง: ข้อมูลแอปพลิเคชันถูกเก็บไว้นอก Layer 1 หรือในชั้นเชิงตัวแยกที่แตกต่างกัน นี่เป็นวิธีที่มีการขยายของสูง แต่ประสิทธิภาพในด้านการรวมกันไม่ดี โมเดล rollup ของ Polkadot และ Ethereum อยู่ใในหมวดหมู่นี้

JAM นำเสนอสิ่งที่เกินกว่าตัวเลือกสองตัวนี้: มันช่วยให้นักพัฒนาสามารถเผยแพร่ข้อมูลอย่างสมบูรณ์ไปยังชั้นข้อมูล JAM DA ซึ่งทำหน้าที่เป็นพื้นที่กลางระหว่างข้อมูล on-chain และ off-chain แอปพลิเคชันใหม่สามารถสร้างขึ้นโดยใช้ชั้น DA เพื่อข้อมูลส่วนมากของพวกเขาในขณะที่เฉพาะข้อมูลสำคัญที่สุดจะถูกบันทึกไว้ในสถานะ JAM

Appendix: Scalability Landscape

ส่วนนี้จะกลับมาพิจารณามุมมองของเราเกี่ยวกับความสามารถในการขยายของบล็อกเชนซึ่งก็ได้ถูกพูดถึงในเกรย์เปเปอร์ ถึงแม้จะนำเสนอที่นี่ในรูปแบบที่กระชับกว่า

การขยายขอบเขตของบล็อกเชนส่วนใหญ่จะปฏิบัติตามวิธีการ传统จากระบบกระจาย: การขยายแนวตั้งและการขยายแนวนอน

การเพิ่มมาตราส่วนในแนวตั้งคือสิ่งที่แพลตฟอร์มเช่น Solana ให้ความสำคัญกับการเพิ่มประสิทธิภาพของการทำงานโดยการปรับปรุงทั้งโค้ดและฮาร์ดแวร์ให้สูงสุด

การขยายขนาดแนวนอนเป็นกลยุทธ์ที่ Ethereum และ Polkadot นำมาใช้: ลดภาระงานที่แต่ละผู้เข้าร่วมต้องจัดการ ในระบบกระจายแบบดั้งเดิม สิ่งนี้ถูกบรรจุไว้โดยการเพิ่มเครื่องคัดลอกเพิ่มเติม ในบล็อกเชน “คอมพิวเตอร์” คือเครือข่ายทั้งหมดของผู้ตรวจสอบ โดยการแบ่งงานให้พวกเขา (เช่น ELVES ทำ) หรือลดหน้าที่ของพวกเขาให้มีความหวัง (เช่นใน Optimistic Rollups) เราลดภาระงานสำหรับเซ็ตผู้ตรวจสอบทั้งหมดลง ซึ่งทำให้การขยายขนาดแนวนอนเป็นไปได้

ในบล็อกเชน การขยายมิติแนวนอนสามารถเปรียบเสมือนกับ "การลดจำนวนเครื่องที่ต้องดำเนินการทุก ๆ กระบวนการ"

สรุป:

  1. การปรับขนาดแนวตั้ง: ฮาร์ดแวร์ที่มีประสิทธิภาพสูง + การปรับแต่งบล็อกเชนแบบโมโนลิทิก
  2. การขยายขนาดแนวนอน:
    • Optimistic Rollups
    • SNARK-based Rollups
    • ELVES: โพลคาด็อทซินิคัลโรลอัพ

ส่วนเสริม: อุปกรณ์เดียวกัน อัปเกรดเคอร์เนล

ส่วนนี้เรียกตามคำอุปมาของ Rob Habermeier จาก Sub0 2023: Polkadot: Kernel/Userland | Sub0 2023 - YouTube (see: https://www.youtube.com/watch?v=15aXYvVMxlw) เปิดตัว JAM ในฐานะการอัปเกรดสำหรับ Polkadot: การอัปเดตเคอร์เนลบนฮาร์ดแวร์เดียวกัน

ในคอมพิวเตอร์ปกติ เราสามารถแบ่งสแต็กทั้งหมดเป็นสามส่วน:

  1. ฮาร์ดแวร์
  2. เคอร์เนล
  3. พื้นที่ผู้ใช้

ใน Polkadot ฮาร์ดแวร์—โครงสร้างหลักที่ให้บริการคำนวณและความพร้อมในการใช้ข้อมูล—เป็นเสมอ โดยที่เคยกล่าวถึงก่อนหน้านี้

ใน Polkadot, kernel ประกอบด้วยส่วนหลักสองส่วนจนถึงปัจจุบัน:

  1. โปรโตคอล Parachains: วิธีใช้แบบคงที่และมีความคิดเห็น
  2. ชุดของฟังก์ชันระดับต่ำ, เช่น โทเค็น DOT และความสามารถในการโอนย้ายเงิน, การจำนง, การปกครอง, ฯลฯ

ทั้งสองอยู่ใน Polkadot’s Relay Chain

แอปพลิเคชันในพื้นที่ผู้ใช้ในทางตรงข้ามก็คือ parachains ตัวเอง โทเคนเชื้อเพลิงของพวกเขา และทุกสิ่งที่สร้างขึ้นบนพวกเขา

เราสามารถมองเห็นกระบวนการนี้ได้ดังนี้:

Polkadot ฝันถึงการย้ายฟังก์ชันหลักเพิ่มเติมไปยังผู้ใช้หลักของตน - พาราเชน นี่คือเป้าหมายของ Minimal Relay RFC อย่างแน่นอน (สำหรับรายละเอียดเพิ่มเติม ดูที่Minimal Relay RFC)

นี่หมายความว่าโพลคาดอทเรลเลย์เชนจะเกี่ยวข้องเพียงในการ提供โปรโตคอลพาราเชนเท่านั้น ซึ่งจะทำให้พื้นที่ของเคอร์เนลลดลงบ้าง

เมื่อโครงสร้างนี้ถูกนำมาใช้ จะง่ายขึ้นในการมองเห็นว่าการย้าย JAM จะเป็นอย่างไร การย้าย JAM จะลดพื้นที่ของ kernel ของ Polkadot ลงอย่างมีนัยสำคัญ ทำให้มีความหลากหลายมากขึ้น อีกทั้งโปรโตคอล Parachains จะย้ายไปยัง user space เนื่องจากมันเป็นหนึ่งในวิธีเดียวที่สามารถสร้างแอปพลิเคชันบนส่วนสำคัญ (ฮาร์ดแวร์) เดียวกันและ kernel (JAM)

นี่ยังเสริมความแข็งแกร่งของเหตุผลที่ JAM เป็นทางเลือกสำหรับ Polkadot Relay Chain ไม่ใช่สำหรับ parachains ครับ

กล่าวอีกอย่างคือ เราสามารถมองการย้าย JAM เป็นการอัพเกรดเคอร์เนล ฮาร์ดแวร์พื้นฐานยังคงเหมือนเดิม และเนื้อหาของเคอร์เนลเก่ามีการย้ายไปยังพื้นที่ผู้ใช้เพื่อทำให้ระบบง่ายขึ้น

Disclaimer:

  1. บทความนี้ถูกพิมพ์ใหม่จาก [ สถาบันวิจัยนิเวศของ Polkadot] ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [สถาบันวิจัยนิเวศของ Polkadot]. If there are objections to this reprint, please contact the เกต เรียนทีม และพวกเขาจะจัดการกับมันอย่างรวดเร็ว
  2. คำปฏิเสธความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงของผู้เขียนเท่านั้น และไม่เป็นการให้คำแนะนำทางการลงทุนใด ๆ
  3. การแปลบทความเป็นภาษาอื่นทําโดยทีม Gate Learn ห้ามคัดลอก แจกจ่าย หรือลอกเลียนแบบบทความที่แปลแล้ว เว้นแต่จะกล่าวถึง

ภาพรวมเทคนิคของโปรโตคอล JAM ของ Polkadot

ขั้นสูง9/14/2024, 10:47:29 AM
บทความนี้มีการวิเคราะห์ทางเทคนิคเกี่ยวกับโปรโตคอล JAM ที่เสนอใหม่ของ Polkadot ซึ่งช่วยให้ผู้อ่านเข้าใจว่า JAM เป็นอะไร และเป็นอย่างไรที่ช่วยเพิ่มความสามารถในระดับใหม่ให้กับนิเวศ Polkadot

ข้างล่างนี้คือคำอธิบายอย่างละเอียดเกี่ยวกับ Polkadot1, Polkadot2, และวิธีที่พวกเขาพัฒนาเป็น JAM (สำหรับรายละเอียดเพิ่มเติมดูที่: https://www.navalmanack.com/almanack-of-naval-ravikant/how-to-think-clearly). บทความนี้มุ่งเน้นไปที่ผู้อ่านด้านเทคนิคโดยเฉพาะอย่างยิ่งผู้ที่อาจไม่คุ้นเคยมากับ Polkadot แต่มีความรู้เกี่ยวกับระบบบล็อกเชนบ้าง และมีโอกาสที่จะรู้จักเทคโนโลยีจากระบบนิวกับอื่น
ฉันเชื่อว่าบทความนี้เป็นสิ่งที่ดีก่อนที่จะอ่าน JAM Gray Paper (สำหรับข้อมูลเพิ่มเติมดูที่: https://graypaper.com/)

ความรู้พื้นฐาน

บทความนี้สันนิษฐานว่าผู้อ่านมีความรู้เรื่องแนวคิดต่อไปนี้:

บทนำ: Polkadot1

เรามาทบทวนคุณลักษณะที่น่าประทับใจที่สุดของ Polkadot1 ก่อน

ด้านสังคม:

  • Polkadot เป็นองค์กรอัตโนมัติที่มีความยิ่งใหญ่ (DAO) โดยไม่มีการกำหนด ระบบนี้นำการปฏิบัติการบนเชน และการปกครองตนเองโดยสมบูรณ์ รวมถึงการอัพเกรดรันไทม์โดยไม่ต้อง fork
  • คณะกรรมการกำกับ SEC ได้รับรู้ DOT เป็นซอฟต์แวร์ ไม่ใช่หลักทรัพย์ (สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ https://polkadot.com/newsroom/press-releases/web3-foundation-announces-polkadot-blockchains-native-token-dot-has-morphed-and-is-software-not-a-security)
  • งานพัฒนาส่วนใหญ่บนเครือข่ายถูกดำเนินการโดย Polkadot Fellowship (สำหรับข้อมูลเพิ่มเติม ดูที่:https://polkadot-fellows.github.io/dashboard/) แทนที่จะโดย Parity Technologies, บริษัทที่สนับสนุนโครงการด้านการเงินhttps://www.parity.io/).

ด้านเทคนิค:

  • Polkadot นำมาใช้ร่วมกันในการรักษาความปลอดภัยและการดำเนินการแบบชาร์ด
  • ใช้เมตาโปรโตคอลที่ใช้ WASM (สำหรับรายละเอียดเพิ่มเติม ดูที่: https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/wasm_meta_protocol/index.html) รหัสของบล็อกเชนจะถูกเก็บไว้ในสถานะเป็นไบต์โค้ด สิ่งนี้ทําให้การอัพเกรดส่วนใหญ่เกิดขึ้นได้โดยไม่ต้องใช้ส้อมและเปิดใช้งานการแบ่งส่วนที่แตกต่างกัน (ดูส่วนที่เกี่ยวข้องสําหรับข้อมูลเพิ่มเติมเกี่ยวกับ "การแบ่งส่วนที่แตกต่างกัน")

การดำเนินการแบบ Sharded: จุดสำคัญ

ปัจจุบันเรากำลังพูดถึงเครือข่ายชั้นที่ 1 ที่เป็นเจ้าภาพของเครือข่าย "บล็อกเชน" ชั้นที่ 2 อื่น ๆ โดยคล้ายกับ Polkadot และ Ethereum ดังนั้นคำว่า Layer 2 และ Parachain สามารถใช้แทนกันได้

ปัญหาหลักของความสามารถในการขยายของบล็อกเชนสามารถเข้าใจได้โดยการเรียงเป็นว่า: มีชุดของผู้ตรวจสอบที่ใช้เศรษฐศาสตร์ของการพิสูจน์โอนแบบสถานะ ทำให้การดำเนินการของรหัสบางอย่างเป็นไปได้ โดยค่าเริ่มต้น ผู้ตรวจสอบเหล่านี้ต้องทำการดำเนินการแบบใหม่ทั้งหมดของกัน ถ้าเราตรวจสอบแล้วว่าผู้ตรวจสอบทุกคนจะต้องทำการดำเนินการทุกอย่างเสมอ ระบบทั้งหมดยังคงไม่สามารถขยายได้

โปรดทราบว่า ตราบเท่าที่หลักการของการทำงานซ้ำอย่างแน่นอนยังคงเปลี่ยนแปลงไม่ไป การเพิ่มจำนวนผู้ตรวจสอบในโมเดลนี้จริงๆ แล้วไม่ทำให้ประสิทธิภาพของระบบดียิ่งขึ้น

นี้แสดงให้เห็นถึงบล็อกเชนแบบโมโนลิทิก (ต่างจากบล็อกเชนแบบชาร์ด) ผู้ตรวจสอบเครือข่ายทั้งหมดจะประมวลผลข้อมูลนำเข้า (เช่น บล็อก) ทีละอัน ในระบบเช่นนี้ ถ้าเลเยอร์ 1 ต้องการเป็นโฮสต์เพิ่มเลเยอร์ 2 แล้ว ผู้ตรวจสอบทั้งหมดจะต้องทำการประมวลผลงานของเลเยอร์ 2 ทั้งหมดอีกครั้ง โดยชัดเจนว่าวิธีนี้ไม่สามารถมีประสิทธิภาพ

Optimistic rollups address this issue by only re-executing (fraud proofs) when fraud is claimed. SNARK-based Rollups address this issue by leveraging the fact that the cost of validating SNARK proofs is significantly lower than the cost of generating them, thereby allowing all validators to efficiently verify SNARK proofs. For more details, refer to the “Appendix: Scalability Space Diagram.”

วิธีการแก้ปัญหาอย่างตรงไปตรงมาสำหรับการแบ่งชาร์ด คือการแบ่งชุดผู้ตรวจสอบเป็นชุดย่อยเล็ก ๆ และทำให้ชุดย่อยเหล่านี้รันบล็อกเลเยอร์ 2 ซ้ำอีกครั้ง ปัญหาที่เกิดขึ้นกับวิธีการเช่นนี้คือ เรากำลังแบ่งชาร์ดทั้งการดำเนินการและความปลอดภัยทางเศรษฐกิจของเครือข่าย แบบโซลูชันเลเยอร์ 2 ดังกล่าวมีความปลอดภัยต่ำกว่าเลเยอร์ 1 และความปลอดภัยลดลงต่อไปเมื่อเราแบ่งชุดผู้ตรวจสอบเป็นชุดย่อยมากขึ้น

ในขณะที่ optimistic rollups ที่ต้นแบบมีค่าใช้จ่ายในการทำงานใหม่ไม่สามารถหลีกเลี่ยงได้เสมอ Polkadot ถูกออกแบบมาพร้อมกับการทำงานแชร์ ซึ่งช่วยให้ส่วนหนึ่งของผู้ตรวจสอบสามารถที่จะทำงานใหม่บล็อก Layer 2 ในขณะที่ยังมีหลักฐานทางคริปโทเศียรที่เพียงพอต่อเครือข่ายทั้งหมดเพื่อพิสูจน์ว่าบล็อก Layer 2 เป็นปลอดภัยเท่าเทียมกับการที่ชุดตรวจสอบทั้งหมดได้ทำงานใหม่ นี่เป็นผลมาจากการใช้กลไกที่ใหม่ (และเร็วๆ นี้ได้รับการตีพิมพ์เป็นทางการ) ที่รู้จักกันดีว่า ELVES (สำหรับรายละเอียดเพิ่มเติม ดูที่: https://eprint.iacr.org/2024/961)

ในสรุป ELVES สามารถมองเป็นกลไก "suspicious rollups" ผ่านรอบหลาย ๆ รอบของ validators ที่สอบถาม validators คนอื่น ๆ ว่าบล็อก Layer 2 ที่กำหนดไว้ถูกต้องหรือไม่ เราสามารถยืนยันได้ด้วยความน่าจะเป็นสูงว่าความถูกต้องของบล็อก ในกรณีของข้อพิพาท ชุด validators เต็มรูปแบบก็จะเข้ามาในทันที ผู้ก่อตั้ง Polkadot Rob Habermeier ได้อธิบายอย่างละเอียดในบทความ (สำหรับข้อมูลเพิ่มเติม ดูที่: https://polkadot.com/blog/polkadot-v1-0-sharding-and-economic-security#approval-checking-and-finality)

ELVES ทำให้ Polkadot สามารถมีการดำเนินการแบ่งชั้นและความปลอดภัยที่ใช้ร่วมกัน 2 คุณสมบัติที่เรียกว่าไม่สามารถใช้ร่วมกันได้ก่อนหน้านี้ นี่คือความสำเร็จทางเทคนิคหลักของ Polkadot1 ในเรื่องของการขยายขอบเขต

ตอนนี้เรามาดูไปข้างหน้ากับการอุปมาของ "Core" กันบ้าง บล็อกเชนการดำเนินการแบบ Sharded คล้ายกับ CPU: เช่นเดียวกับ CPU ที่สามารถมีหลาย Core ที่ดำเนินการคำสั่งพร้อมกัน Polkadot สามารถประมวลผลบล็อกชั้นที่ 2 พร้อมกัน นี่คือเหตุผลที่ชั้นที่ 2 บน Polkadot เรียกว่า parachain และสภาพแวดล้อมที่สับสนที่ Validator ย่อยมีการดำเนินการทำซ้ำบล็อกชั้นที่ 2 เดียวกันเรียกว่า "core" แต่ละ core สามารถถูกจัดแยกออกเป็น "กลุ่มของ Validator ที่ร่วมมือ"

คุณสามารถคิดว่าบล็อกเชนแบบโมโนลิติกจะประมวลผลบล็อกเดียวในเวลาเดียวกัน ในขณะที่ Polkadot จะประมวลผลทั้งบล็อกเชนส่งข้อมูลและบล็อกพาราเชนสำหรับแต่ละคอร์ในช่วงเวลาเดียวกัน

ความหลากหลาย

จนถึงตอนนี้เราได้พูดถึงความสามารถในการขยายขนาดและการดำเนินการแบบ sharded ที่ Polkadot มีเสนอแล้วเท่านั้น สำคัญที่ต้องระบุคือว่าแต่ละชิ้นกระจายของ Polkadot นั้นจริง ๆ แล้วเป็นแอปพลิเคชันที่แตกต่างกันอย่างสมบูรณ์ นี้ทำได้โดยผ่าน metaprotocol ที่เก็บเป็น bytecode: protocol ที่เก็บคำจำกัดของบล็อกเชนเองเป็น bytecode ในสถานะของมัน ใน Polkadot 1.0 WASM ถูกใช้เป็น bytecode ที่เลือกใช้ ในขณะที่ใน JAM PVM/RISC-V ถูกนำมาใช้งาน

นี่คือเหตุผลที่ Polkadot ถูกอ้างถึงว่าเป็นบล็อกเชนที่แบ่งชิ้นเป็นส่วนต่าง ๆ (สำหรับรายละเอียดเพิ่มเติม ดูที่: https://x.com/kianenigma/status/1790763921600606259) ทุกชั้น Layer 2 เป็นแอปพลิเคชันที่แตกต่างอย่างสมบูรณ์

Polkadot2

สิ่งสําคัญอย่างหนึ่งของ Polkadot2 คือการทําให้การใช้คอร์มีความยืดหยุ่นมากขึ้น ในรูปแบบ Polkadot ดั้งเดิมระยะเวลาการเช่าหลักอยู่ในช่วง 6 เดือนถึง 2 ปีซึ่งเหมาะกับองค์กรที่อุดมด้วยทรัพยากร แต่เป็นไปได้น้อยกว่าสําหรับทีมขนาดเล็ก คุณสมบัติที่ช่วยให้แกน Polkadot สามารถใช้งานได้อย่างยืดหยุ่นมากขึ้นเรียกว่า "Agile Coretime" (สําหรับรายละเอียดเพิ่มเติมโปรดดู: https://polkadot.com/agile-coretime) ในโหมดนี้ เงื่อนไขสัญญาเช่าหลักสามารถเริ่มต้นตั้งแต่บล็อกเดียวหรือนานถึงหนึ่งเดือน พร้อมที่จะมีราคาสูงสุดสำหรับผู้ที่ต้องการเช่าในระยะเวลายาว

คุณลักษณะอื่น ๆ ของ Polkadot 2 กำลังถูกเปิดเผยเรื่อย ๆ ขณะที่การสนทนาของเรากำลังก้าวหน้า ดังนั้นไม่จำเป็นต้องอธิบายเพิ่มเติมที่นี่

การดำเนินการในไคออน vs การดำเนินการบนเชน

เพื่อเข้าใจ JAM ควรเข้าใจก่อนว่าเกิดอะไรขึ้นเมื่อบล็อก Layer 2 เข้าสู่ Polkadot core ครั้งแรก ดังนี้คืออธิบายอย่างง่าย

โปรดจำไว้ว่าซอร์สประกอบไปด้วยกลุ่มของผู้ตรวจสอบหลักๆ ดังนั้นเมื่อเราพูดว่า "ข้อมูลถูกส่งไปยังซอร์ส" หมายความว่าข้อมูลถูกส่งไปยังกลุ่มผู้ตรวจสอบเหล่านี้

  1. บล็อก Layer 2 พร้อมกับส่วนหนึ่งของสถานะของ Layer 2 นั้นถูกส่งไปยังแกน. ข้อมูลนี้ประกอบด้วยข้อมูลทั้งหมดที่ต้องใช้ในการดำเนินการบล็อก Layer 2

  2. ส่วนหนึ่งของผู้ตรวจสอบความถูกต้องของระบบจะทำการรันบล็อกชั้นที่ 2 อีกครั้งและดำเนินการต่อไปกับงานที่เกี่ยวข้องกับการตกลง

  3. ผู้ตรวจสอบแกนหลักเหล่านี้จะให้ข้อมูลที่ถูกดำเนินการใหม่ให้กับผู้ตรวจสอบคนอื่นนอกเหนือจากแกนหลัก ตามกฎ ELVES ผู้ตรวจสอบเหล่านี้อาจตัดสินใจว่าจะดำเนินการใหม่บล็อกชั้นที่ 2 หรือไม่ โดยต้องใช้ข้อมูลนี้เพื่อดำเนินการ

สำคัญที่จะระบุว่า ตอนนี้ทุกการดำเนินการเหล่านี้กำลังเกิดขึ้นนอกบล็อก Polkadot หลักและฟังก์ชันการเปลี่ยนสถานะ ทุกอย่างเกิดขึ้นภายในคอร์และชั้นข้อมูลที่สามารถใช้ได้

  1. สุดท้าย, ส่วนเล็ก ๆ ของสถานะ Layer 2 ล่าสุดกลายเป็นเห็นได้บนโซ่เรลย์หลักของ Polkadot โดยไม่เหมือนกับการดำเนินการก่อนหน้านี้, ขั้นตอนนี้ถูกและมีราคาที่ถูกกว่าการประมวลผลบล็อค Layer 2 และมีผลต่อสถานะหลักของ Polkadot มันเป็นเห็นได้ในบล็อค Polkadot และถูกดำเนินการโดยผู้ตรวจสอบ Polkadot ทั้งหมด

จากนี้เราสามารถสำรวจหลาย ๆ การดำเนินงานสำคัญที่ Polkadot กำลังดำเนินการ

  • จากขั้นตอนที่ 1 เราสามารถสรุปได้ว่า Polkadot ได้นำเสนอรูปแบบการดำเนินการใหม่ที่แตกต่างจากฟังก์ชันการเปลี่ยนสถานะบล็อกเชนแบบดั้งเดิม ตามปกติเมื่อผู้ตรวจสอบเครือข่ายทำงาน สถานะบล็อกเชนหลักจะได้รับการอัปเดต นี่คือสิ่งที่เราเรียกว่าการปฏิบัติตามบัญชี, และมันคือสิ่งที่เกิดขึ้นในขั้นตอนที่ 3 อย่างไรก็ตามสิ่งที่เกิดขึ้นภายในแกนกลาง (ขั้นตอนที่ 1) นั้นแตกต่างกัน วิธีการคำนวณบล็อกเชนรูปแบบใหม่นี้เรียกว่าการดำเนินการภายในแกน.
  • จากขั้นตอนที่ 2 เราสืบค้นว่า Polkadot มี ความพร้อมในการใช้ข้อมูล (DA)เลเยอร์ และเลเยอร์ 2 ใช้โดยอัตโนมัติเพื่อให้แน่ใจว่าหลักฐานการดำเนินการของพวกเขายังคงมีอยู่ในระยะเวลาหนึ่ง อย่างไรก็ตามบล็อกข้อมูลที่สามารถโพสต์ไปยังเลเยอร์ DA มีขนาดคงที่ ประกอบด้วยเพียงหลักฐานที่จำเป็นสำหรับการดำเนินการเลเยอร์ 2 อีกทั้ง รหัสพาราเชนไม่อ่านข้อมูลเลเยอร์ DA

เข้าใจสิ่งนี้เป็นพื้นฐานสำหรับเข้าใจ JAM นี่คือสรุป:

  • การดําเนินการแบบ In-Core: หมายถึงการดำเนินการที่เกิดขึ้นภายในส่วนหลัก การดำเนินการเหล่านี้มีความหลากหลาย มีขนาดใหญ่ และได้รับการรักษาความปลอดภัยผ่าน cryptoeconomics และ ELVES ซึ่งมอบความปลอดภัยเดียวกันกับการดำเนินการ on-chain
  • การดำเนินการบนเชื่อมโยง: หมายถึงการดำเนินการที่ดำเนินการโดยผู้ตรวจสอบทั้งหมด มีการรับประกันด้านเศรษฐศาสตร์ว่าปลอดภัยโดยค่าเริ่มต้น แต่มีค่าใช้จ่ายและถูกจำกัดมากขึ้นเนื่องจากทุกคนทำงานทุกงาน
  • ความพร้อมใช้ข้อมูล: หมายถึง ความสามารถของผู้ตรวจสอบ Polkadot ในการรับรองถึงความพร้อมในการใช้งานของข้อมูลบางประการสำหรับระยะเวลาหนึ่ง และให้มันกับผู้ตรวจสอบคนอื่น

JAM

ด้วยความเข้าใจนี้ เราสามารถนำเสนอ JAM ได้แล้ว

JAM เป็นโปรโตคอลใหม่ที่ได้รับแรงบันดาลจากการออกแบบของ Polkadot และเป็นไปตามมาตรฐานอย่างเต็มที่ โดยมีเป้าหมายที่จะแทนที่ Polkadot relay chain และทำให้การใช้งานหลักเป็นไปอย่างเต็มที่และไม่จำกัด

สร้างบน Polkadot 2, JAM มุ่งเน้นทำให้การสร้าง Layer 2s บนระบบหลักเป็นไปอย่างง่ายขึ้น มอบความยืดหยุ่นมากกว่าโมเดล agile-coretime

  • Polkadot 2 ช่วยให้การสร้างและใช้งาน Layer 2 บนคอร์สามารถเป็นไปได้อย่างมีเสถียรภาพมากขึ้น
  • JAM มีเป้าหมายที่จะอนุญาตให้แอปพลิเคชันใด ๆ สามารถถูกประยุกต์ใช้บนระบบ Polkadot's core ได้ แม้แต่แอปพลิเคชันเหล่านั้นจะไม่มีโครงสร้างเหมือนบล็อกเชนหรือเลเยอร์ 2

นี่เป็นการบรรลุผลโดยส่วนใหญ่โดยการเปิดเผยสามแนวคิดหลักที่ได้ถูกพูดถึงไว้ก่อนหน้านี้ให้แก่นักพัฒนา: การดำเนินการบนเชน, การดำเนินการในคอร์, และเลเยอร์ DA

กล่าวอีกอย่างคือ ใน JAM, นักพัฒนาสามารถ:

  • โปรแกรมทั้งในแกนและงานบนโซ่ทั้งหมด
  • อ่านและเขียนไปยังเลเยอร์ DA ของ Polkadot ด้วยข้อมูลอย่างสมบูรณ์

นี่เป็นภาพรวมพื้นฐานของวัตถุประสงค์ของ JAM โดยไม่ต้องบอกว่ามีการทำให้ง่ายลงมาก และโปรโตคอลน่าจะพัฒนาต่อไป

ด้วยความเข้าใจที่มีรากฐานนี้ เราสามารถลึกอย่างละเอียดเกี่ยวกับ JAM ในบทต่อไป

บริการและรายการงาน

ใน JAM สิ่งที่เคยถูกเรียกว่าชั้นที่ 2 หรือพาราเชน ตอนนี้ถูกเรียกว่าบริการ, และสิ่งที่เคยถูกอ้างถึงเป็นบล็อกหรือธุรกรรมตอนนี้ถูกเรียกว่างานหรืองานแพ็คเกจ. โดยเฉพาะอย่างยิ่ง รายการงานเป็นของบริการ และ แพ็คเกจงานคือการรวบรวมของรายการงาน คำศัพท์เหล่านี้ถูกออกแบบโดยตั้งใจให้ครอบคลุมกรณีการใช้งานที่หลากหลายเกินไปจากกรณีการใช้งานบล็อกเชน/Layer 2

บริการถูกอธิบายโดยจุดเข้าถึงสามจุด ซึ่งสองจุดคือ fn refine() และ fn accumulate() จุดแรกอธิบายถึงบริการที่ทำในระหว่างการประมวลผลในภายใน และจุดที่สองอธิบายถึงการทำงานขณะการประมวลผลบนเชน

สุดท้ายชื่อของจุดเข้านี้เป็นเหตุผลที่โปรโตคอลเรียกว่า JAM (Join Accumulate Machine)เข้าร่วม หมายถึง fn refine(), ซึ่งเป็นช่วงเวลาที่ทุกๆ คอร์ของ Polkadot ประมวลผลงานมากมายพร้อมกันในบริการต่างๆ หลายอัน หลังจากข้อมูลถูกประมวลผลแล้ว มันก็ย้ายไปสู่ขั้นตอนถัดไปสะสมหมายถึงกระบวนการที่สะสมผลลัพธ์ทั้งหมดเข้าสู่สถานะ JAM หลัก ซึ่งเกิดขึ้นในช่วงเวลาการดำเนินการบนเชน

รายการที่ทำงานสามารถระบุโค้ดที่พวกเขา execute ได้อย่างแม่นยำในคอร์และบนเชื่อมโยงได้อย่างไร และจากที่ไหนพวกเขาอ่านหรือเขียนเนื้อหาใน Distributed Data Lake ได้

ความเอื้อเฟื้อ

การตรวจสอบเอกสารที่มีอยู่เกี่ยวกับ XCM (ภาษาที่ Polkadot เลือกสำหรับการสื่อสารระหว่างพาราเชน) การสื่อสารทั้งหมดเป็นแบบไม่เชื่อมต่อ (สำหรับรายละเอียดเพิ่มเติม ดูที่ที่นี่). นี่หมายความว่าเมื่อส่งข้อความแล้ว คุณไม่สามารถรอคำตอบได้ การสื่อสารแบบไม่เกี่ยวข้องเป็นอาการของความไม่สอดคล้องในระบบ และเป็นหนึ่งในข้อเสียหลักของระบบที่แบ่งแยกอย่างถาวร เช่น Polkadot 1, Polkadot 2, และระบบนิเวศ Layer 2 ของ Ethereum ที่มีอยู่

อย่างไรก็ตาม ตามที่อธิบายไว้ในส่วน 2.4 ของกระดาษสีเทา, ระบบที่สมบูรณ์แบบที่ยังคงเป็นระบบที่เป็นสม่ำเสมอสำหรับผู้เช่าทุกคนสามารถขยายได้เพียงอย่างใดๆ โดยไม่เสียจากความสามารถในการใช้งานทั่วไป การเข้าถึงหรือความทนทาน

  • Synchronous ≈ ความสอดคล้อง || Asynchronous ≈ ความไม่สอดคล้อง

นี่คือที่ JAM โดดเด่น: โดยการนำเสนอคุณลักษณะหลายรูปแบบ JAM บรรลุสถานะกลางที่ใหม่ที่รู้จักกันว่าเป็นระบบที่มีความสอดคล้องบางส่วน ในระบบนี้ ระบบย่อยที่สื่อสารบ่อยสามารถสร้างสภาพแวดล้อมที่สอดคล้องกันกับกันโดยไม่บังคับให้ระบบทั้งหมดเป็นสม่ำเสมอ นี่เป็นการอธิบายที่ดีที่สุดจากดร. กาวิน วูดผู้เขียนกระดาษสีเทาในการสัมภาษณ์https://www.youtube.com/watch?t=1378&v=O3kRAVBTkfs&embeds_referring_euri=https%3A%2F%2Fblog.kianenigma.nl%2F&source_ve_path=OTY3MTQ

วิธีอื่น ๆ ในการเข้าใจสิ่งนี้คือการมอง Polkadot/JAM เป็นระบบที่ถูกแบ่งเป็นชั้น โดยที่ขอบเขตระหว่างชั้นเหล่านี้เป็นสิ่งที่เปลี่ยนไปอย่างยืดหยุ่นและถูกกำหนดไว้โดยเชิงพลวัต

Polkadot มีการแบ่งแยกและหลากหลายอย่างอยู่เสมอ

ตอนนี้มันไม่เพียงแต่ถูกแบ่งพิเศษและแตกต่างกัน แต่ขอบเขตของชาร์ดเหล่านี้สามารถกำหนดได้อย่างยืดหยุ่น - สิ่งที่ Gavin Wood อ้างถึงว่าเป็นระบบ 'semi-consistent' ในทวีตของเขาและกระดาษสีเทา (โปรดดู: https://x.com/gavofyork?ref_src=twsrc%5Etfw、https://graypaper.com/)

มีลักษณะหลายอย่างทำให้สถานะที่เป็นไปได้นี้เป็นไปได้:

  1. การเข้าถึงการดําเนินการแบบขนานแบบไร้สถานะซึ่งบริการที่แตกต่างกันสามารถโต้ตอบแบบซิงโครนัสกับบริการอื่น ๆ ภายในคอร์เดียวกันและบล็อกเฉพาะรวมถึงการดําเนินการแบบ on-chain ซึ่งบริการสามารถเข้าถึงผลลัพธ์จากบริการทั้งหมดในทุกคอร์
  2. JAM ไม่บังคับการจัดตารางบริการเฉพาะใด บริการที่มีการสื่อสารบ่อย สามารถให้สิ่งส่งตัวสร้างเศรษฐีให้กับตารางเวลาเพื่อสร้างงานที่มีบริการที่สื่อสารบ่อยเหล่านี้ ซึ่งทำให้บริการเหล่านี้ทำงานภายในคอร์ที่เดียวกัน ทำให้การโต้ตอบของพวกเขาดูเหมือนเป็นเชิงเวลาจริง แม้ว่าพวกเขาจะกระจาย
  3. นอกจากนี้ JAM services สามารถเข้าถึงชั้น DA และใช้เป็นชั้นข้อมูลชั่วคราวที่มีราคาประหยัดมาก หลังจากที่ข้อมูลถูกวางไว้ใน DA มันจะแพร่กระจายไปยังทุก core แต่จะพร้อมใช้งานใน core เดียวกันทันที ดังนั้น JAM services สามารถบรรลุความสามารถในการเข้าถึงข้อมูลที่สูงขึ้นโดยการกำหนดตารางเวลาให้ตัวเองอยู่ใน core เดียวกันตลอดบล็อกติดต่อกัน

สำคัญที่จะระบุว่าในขณะที่ความสามารถเหล่านี้เป็นไปได้ภายใน JAM แต่ไม่ได้บังคับที่ระดับโปรโตคอล ดังนั้น บางอินเตอร์เฟซเป็นทฤษฎีเป็นไม่เช่นเดียวกันแต่สามารถทำงานแบบซิงโครนัสในปฏิบัติได้เนื่องจากการนำเสนอที่ซับซ้อนและสาระสำคัญ CorePlay ซึ่งจะถูกพูดถึงในส่วนถัดไป เป็นตัวอย่างของปรากฎการณ์นี้

CorePlay

ในส่วนนี้จะแนะนำ CorePlay ซึ่งเป็นแนวคิดการทดลองในสภาพแวดล้อม JAM ซึ่งสามารถบรรยายได้ว่าเป็นรูปแบบโปรแกรมสมาร์ทคอนแทร็คใหม่ ณ เวลาที่เขียน CorePlay ยังไม่ได้ถูกกำหนดอย่างเต็มที่และยังคงเป็นแนวคิดที่อยู่ในระดับสมมติ

เพื่อเข้าใจ CorePlay เราต้องแนะนำเครื่องจำลองเสมือน (VM) ที่ถูกเลือกโดย JAM: PVM

PVM

PVM เป็นรายละเอียดสำคัญในทั้ง JAM และ CorePlay รายละเอียดระดับต่ำของ PVM อยู่เหนือขอบเขตของเอกสารนี้และดีที่สุดที่จะอธิบายโดยผู้เชี่ยวชาญด้านโดเมนใน Graypaper อย่างไรก็ตาม สำหรับคำอธิบายนี้เราจะเน้นที่บางคุณสมบัติสำคัญของ PVM

  • การวัดที่มีประสิทธิภาพ
  • ความสามารถในการหยุดและดำเนินการต่อ

ส่วนหลังสำคัญอย่างยิ่งสำหรับ CorePlay

CorePlay เป็นตัวอย่างของวิธีที่ JAM's flexible primitives สามารถใช้ในการสร้างสภาพแวดล้อมสัญญาฉลาดที่เป็นซิงโครนัสและมีขยายตัวได้ด้วยอินเตอร์เฟซการเขียนโปรแกรมที่ยืดหยุ่นมาก CorePlay предложенияว่า สัญญาฉลาดที่ขึ้นอยู่กับนักแสดง ควรถูกติดตั้งโดยตรงบน JAM cores ทำให้พวกเขาได้รับประโยชน์จากอินเตอร์เฟซการเขียนโปรแกรมแบบซิงโครนัส นักพัฒนาสามารถเขียนสัญญาฉลาดเหมือนกับว่าพวกเขาเป็นฟังก์ชัน main() อย่างง่ายๆ โดยใช้นิพจน์เช่น let result = other_coreplay_actor(data).await?เพื่อสื่อสาร ถ้านักแสดงคอร์เพลย์คนอื่นอยู่บนคอร์ JAM เดียวกันในบล็อกเดียวกัน การเรียกนี้เป็นการเรียกที่เป็นพร้อมกัน หากอยู่บนคอร์อื่น นักแสดงจะถูกระงับและดำเนินการต่อในบล็อก JAM ถัดไป สิ่งนี้เป็นไปได้ด้วย JAM services, การจัดงานที่ยืดหยุ่นของพวกเขา และความสามารถของ PVM

บริการ CoreChains

ในที่สุด เรามาสรุปเหตุผลหลักที่ JAM เข้ากันได้อย่างสมบูรณ์กับ Polkadot ได้ เกี่ยวกับผลิตภัณฑ์ปัจจุบันของ Polkadot คือ parachains ที่มี agile-coretime ซึ่งยังคงต่อเนื่องใน JAM บริการที่ถูกนำไปใช้งานเป็นอันดับแรกใน JAM จะเป็น CoreChains หรือ Parachains ซึ่งทำให้ parachains แบบ Polkadot-2 ที่มีอยู่สามารถทำงานบน JAM

บริการเพิ่มเติมสามารถนำไปใช้บน JAM และบริการ CoreChains ที่มีอยู่สามารถสื่อสารกับพวกเขา อย่างไรก็ตาม ผลิตภัณฑ์ปัจจุบันของ Polkadot จะยังคงมั่นคง แค่เปิดรับประตูใหม่สำหรับทีม Parachain ที่มีอยู่

ข้อมูล Data Sharding

ส่วนใหญ่ของเอกสารนี้กล่าวถึงประสิทธิภาพในแง่มุมของการแบ่งชาร์ดในการดำเนินการ อย่างไรก็ตาม เรายังสามารถสำรวจปัญหานี้จากมุมมองของการแบ่งชาร์ดข้อมูลได้ด้วย น่าสนใจที่เราพบว่าสิ่งนี้คล้ายกับโมเดลที่มีความสอดคล้องบางส่วนที่กล่าวถึงไว้ก่อนหน้านี้ โดยหลักการแล้ว ระบบที่สอดคล้องอย่างสมบูรณ์นั้นเป็นที่เหนือกว่า แต่ไม่สามารถขยายขนาดได้ ในขณะที่ระบบที่ไม่สอดคล้องอย่างสมบูรณ์มีประสิทธิภาพในการขยายขนาดได้ดี แต่ไม่ได้ถูกเลือกตั้ง JAM ด้วยโมเดลที่มีความสอดคล้องบางส่วน นำเสนอทางเลือกใหม่

  • ระบบที่เป็นไปตามมาตรฐานอย่างสมบูรณ์: นี่คือแพลตฟอร์มที่ทุกอย่างถูกซิงโครไนส์ เช่น Solana หรือเหล่านั้นที่ถูกใช้งานอย่างเฉพาะเฉพาะบน Ethereum Layer 1 ข้อมูลแอปพลิเคชันทั้งหมดถูกเก็บบนเชนและสามารถเข้าถึงได้ง่ายๆ โดยแอปพลิเคชันอื่นๆ สิ่งนี้เป็นไอเดียที่เหมาะสมจากด้านความสามารถในการโปรแกรม แต่ไม่สามารถขยายได้
  • ระบบที่ไม่สอดคล้อง: ข้อมูลแอปพลิเคชันถูกเก็บไว้นอก Layer 1 หรือในชั้นเชิงตัวแยกที่แตกต่างกัน นี่เป็นวิธีที่มีการขยายของสูง แต่ประสิทธิภาพในด้านการรวมกันไม่ดี โมเดล rollup ของ Polkadot และ Ethereum อยู่ใในหมวดหมู่นี้

JAM นำเสนอสิ่งที่เกินกว่าตัวเลือกสองตัวนี้: มันช่วยให้นักพัฒนาสามารถเผยแพร่ข้อมูลอย่างสมบูรณ์ไปยังชั้นข้อมูล JAM DA ซึ่งทำหน้าที่เป็นพื้นที่กลางระหว่างข้อมูล on-chain และ off-chain แอปพลิเคชันใหม่สามารถสร้างขึ้นโดยใช้ชั้น DA เพื่อข้อมูลส่วนมากของพวกเขาในขณะที่เฉพาะข้อมูลสำคัญที่สุดจะถูกบันทึกไว้ในสถานะ JAM

Appendix: Scalability Landscape

ส่วนนี้จะกลับมาพิจารณามุมมองของเราเกี่ยวกับความสามารถในการขยายของบล็อกเชนซึ่งก็ได้ถูกพูดถึงในเกรย์เปเปอร์ ถึงแม้จะนำเสนอที่นี่ในรูปแบบที่กระชับกว่า

การขยายขอบเขตของบล็อกเชนส่วนใหญ่จะปฏิบัติตามวิธีการ传统จากระบบกระจาย: การขยายแนวตั้งและการขยายแนวนอน

การเพิ่มมาตราส่วนในแนวตั้งคือสิ่งที่แพลตฟอร์มเช่น Solana ให้ความสำคัญกับการเพิ่มประสิทธิภาพของการทำงานโดยการปรับปรุงทั้งโค้ดและฮาร์ดแวร์ให้สูงสุด

การขยายขนาดแนวนอนเป็นกลยุทธ์ที่ Ethereum และ Polkadot นำมาใช้: ลดภาระงานที่แต่ละผู้เข้าร่วมต้องจัดการ ในระบบกระจายแบบดั้งเดิม สิ่งนี้ถูกบรรจุไว้โดยการเพิ่มเครื่องคัดลอกเพิ่มเติม ในบล็อกเชน “คอมพิวเตอร์” คือเครือข่ายทั้งหมดของผู้ตรวจสอบ โดยการแบ่งงานให้พวกเขา (เช่น ELVES ทำ) หรือลดหน้าที่ของพวกเขาให้มีความหวัง (เช่นใน Optimistic Rollups) เราลดภาระงานสำหรับเซ็ตผู้ตรวจสอบทั้งหมดลง ซึ่งทำให้การขยายขนาดแนวนอนเป็นไปได้

ในบล็อกเชน การขยายมิติแนวนอนสามารถเปรียบเสมือนกับ "การลดจำนวนเครื่องที่ต้องดำเนินการทุก ๆ กระบวนการ"

สรุป:

  1. การปรับขนาดแนวตั้ง: ฮาร์ดแวร์ที่มีประสิทธิภาพสูง + การปรับแต่งบล็อกเชนแบบโมโนลิทิก
  2. การขยายขนาดแนวนอน:
    • Optimistic Rollups
    • SNARK-based Rollups
    • ELVES: โพลคาด็อทซินิคัลโรลอัพ

ส่วนเสริม: อุปกรณ์เดียวกัน อัปเกรดเคอร์เนล

ส่วนนี้เรียกตามคำอุปมาของ Rob Habermeier จาก Sub0 2023: Polkadot: Kernel/Userland | Sub0 2023 - YouTube (see: https://www.youtube.com/watch?v=15aXYvVMxlw) เปิดตัว JAM ในฐานะการอัปเกรดสำหรับ Polkadot: การอัปเดตเคอร์เนลบนฮาร์ดแวร์เดียวกัน

ในคอมพิวเตอร์ปกติ เราสามารถแบ่งสแต็กทั้งหมดเป็นสามส่วน:

  1. ฮาร์ดแวร์
  2. เคอร์เนล
  3. พื้นที่ผู้ใช้

ใน Polkadot ฮาร์ดแวร์—โครงสร้างหลักที่ให้บริการคำนวณและความพร้อมในการใช้ข้อมูล—เป็นเสมอ โดยที่เคยกล่าวถึงก่อนหน้านี้

ใน Polkadot, kernel ประกอบด้วยส่วนหลักสองส่วนจนถึงปัจจุบัน:

  1. โปรโตคอล Parachains: วิธีใช้แบบคงที่และมีความคิดเห็น
  2. ชุดของฟังก์ชันระดับต่ำ, เช่น โทเค็น DOT และความสามารถในการโอนย้ายเงิน, การจำนง, การปกครอง, ฯลฯ

ทั้งสองอยู่ใน Polkadot’s Relay Chain

แอปพลิเคชันในพื้นที่ผู้ใช้ในทางตรงข้ามก็คือ parachains ตัวเอง โทเคนเชื้อเพลิงของพวกเขา และทุกสิ่งที่สร้างขึ้นบนพวกเขา

เราสามารถมองเห็นกระบวนการนี้ได้ดังนี้:

Polkadot ฝันถึงการย้ายฟังก์ชันหลักเพิ่มเติมไปยังผู้ใช้หลักของตน - พาราเชน นี่คือเป้าหมายของ Minimal Relay RFC อย่างแน่นอน (สำหรับรายละเอียดเพิ่มเติม ดูที่Minimal Relay RFC)

นี่หมายความว่าโพลคาดอทเรลเลย์เชนจะเกี่ยวข้องเพียงในการ提供โปรโตคอลพาราเชนเท่านั้น ซึ่งจะทำให้พื้นที่ของเคอร์เนลลดลงบ้าง

เมื่อโครงสร้างนี้ถูกนำมาใช้ จะง่ายขึ้นในการมองเห็นว่าการย้าย JAM จะเป็นอย่างไร การย้าย JAM จะลดพื้นที่ของ kernel ของ Polkadot ลงอย่างมีนัยสำคัญ ทำให้มีความหลากหลายมากขึ้น อีกทั้งโปรโตคอล Parachains จะย้ายไปยัง user space เนื่องจากมันเป็นหนึ่งในวิธีเดียวที่สามารถสร้างแอปพลิเคชันบนส่วนสำคัญ (ฮาร์ดแวร์) เดียวกันและ kernel (JAM)

นี่ยังเสริมความแข็งแกร่งของเหตุผลที่ JAM เป็นทางเลือกสำหรับ Polkadot Relay Chain ไม่ใช่สำหรับ parachains ครับ

กล่าวอีกอย่างคือ เราสามารถมองการย้าย JAM เป็นการอัพเกรดเคอร์เนล ฮาร์ดแวร์พื้นฐานยังคงเหมือนเดิม และเนื้อหาของเคอร์เนลเก่ามีการย้ายไปยังพื้นที่ผู้ใช้เพื่อทำให้ระบบง่ายขึ้น

Disclaimer:

  1. บทความนี้ถูกพิมพ์ใหม่จาก [ สถาบันวิจัยนิเวศของ Polkadot] ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [สถาบันวิจัยนิเวศของ Polkadot]. If there are objections to this reprint, please contact the เกต เรียนทีม และพวกเขาจะจัดการกับมันอย่างรวดเร็ว
  2. คำปฏิเสธความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงของผู้เขียนเท่านั้น และไม่เป็นการให้คำแนะนำทางการลงทุนใด ๆ
  3. การแปลบทความเป็นภาษาอื่นทําโดยทีม Gate Learn ห้ามคัดลอก แจกจ่าย หรือลอกเลียนแบบบทความที่แปลแล้ว เว้นแต่จะกล่าวถึง
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!