ELI5: IBC คืออะไร

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

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

คล้ายกับอินเทอร์เน็ตที่อำนวยความสะดวกให้คอมพิวเตอร์ประเภทต่างๆ ในส่วนต่างๆ ของโลกสามารถสื่อสารกันได้ เทคโนโลยีที่คล้ายกันซึ่งทำหน้าที่เป็นเนื้อเยื่อเกี่ยวพันระหว่างบล็อกเชนเป็นสิ่งที่จำเป็นสำหรับการสะสมมูลค่าที่แท้จริง โปรโตคอล Inter-Blockchain Communication (IBC) มีวัตถุประสงค์เพื่อตอบสนองวัตถุประสงค์นี้

IBC เป็นโปรโตคอลการทำงานร่วมกันที่เป็นสากลซึ่งอนุญาตให้บล็อคเชนสองอันที่แตกต่างกันสื่อสารกันได้ IBC รับประกันการสื่อสาร ที่ เชื่อถือได้สั่งซื้อและรับรองความถูกต้อง

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

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

IBC ยังเป็นมากกว่าสะพานที่อำนวยความสะดวกในการโอนโทเค็น เป็นโปรโตคอลการส่งข้อความวัตถุประสงค์ทั่วไป ซึ่งหมายความว่าสามารถสื่อสารข้อมูลรูปแบบใดก็ได้ ผ่าน IBC

IBC ทำงานอย่างไร

เพื่อให้เข้าใจถึงวิธีการทำงานของ IBC สิ่งสำคัญคือต้องแยกเลเยอร์ IBC สองเลเยอร์ออกจากกัน — 1) เลเยอร์การขนส่ง และ 2) เลเยอร์แอปพลิเคชัน

การพรรณนาระดับสูงของแพ็กเก็ต IBC ระหว่างสองบล็อกเชน

ชั้นการขนส่ง

ข้อความที่สื่อสารผ่าน IBC จะถูกส่งภายในแพ็กเก็ตข้อมูล และเลเยอร์การขนส่งมีหน้าที่ในการขนส่งรับรองความถูกต้องและสั่งซื้อแพ็กเก็ตข้อมูลเหล่านี้

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

ส่วนประกอบที่สำคัญของชั้นการขนส่ง ได้แก่ไคลเอ็นต์แบบเบา รีเลย์ การเชื่อมต่อ และช่องสัญญาณ

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

บล็อกเชน AและBอิสระสองตัว ที่ โต้ตอบผ่าน IBC มีไคลเอ็นต์แบบเบาของเชนคู่สัญญา ซึ่งหมายความว่าAมีไคลเอ็นต์แบบ light บนบล็อกเชน ซึ่งทำหน้าที่เป็นตัวแทนของบล็อกเชนของ B ที่มีน้ำหนักเบา เมื่อAต้องการสื่อสารข้อความ'X'กับBข้อความนั้นจะส่งส่วนหัวของบล็อกที่มีข้อความนั้นอยู่ พร้อมกับหลักฐานยืนยันข้อความนั้นไปยังB หลักฐานความมุ่งมั่นจะใช้เพื่อตรวจสอบการมีหรือไม่มีข้อความเฉพาะในA การใช้ส่วนหัวของบล็อกและการพิสูจน์Bจะยืนยันสิ่งนั้นด้วยการเข้ารหัสAทำX จริง ๆ การใช้ไคลเอนต์แบบไลท์ใน IBC นี้ทำให้บล็อคเชนสามารถแลกเปลี่ยนข้อความระหว่างกันได้โดยไม่จำเป็นต้องมีบุคคลที่สามที่เชื่อถือได้

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

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

แอปพลิเคชันเลเยอร์

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

IBC รองรับการใช้งานที่หลากหลาย เช่น การโอนโทเค็นแบบใช้ร่วมกันได้/ใช้ร่วมกันไม่ได้, ฟีด Oracle แบบข้ามเชน, บัญชี Interchain , Interchain Queries, มิดเดิลแวร์ค่าธรรมเนียม (เพื่อจูงใจผู้ส่งต่อ) เป็นต้น

ตัวอย่างเช่น แอปพลิเคชันระดับ IBC สำหรับการถ่ายโอนโทเค็น — ที่เรียกว่าInterchain Standard 20 (ICS 20) — ระบุว่าควรจัดโครงสร้างแพ็กเก็ตข้อมูลอย่างไร และตีความโดยการรับสายอย่างไร ในกรณีของการถ่ายโอนโทเค็นที่ใช้ร่วมกันได้ แพ็กเก็ตข้อมูลจะมีข้อมูลเกี่ยวกับผู้ส่ง ผู้รับ จำนวนเงิน และหน่วย (หน่วย IBC) ฟิลด์ denom จะติดตามเส้นทางที่โทเค็นหนึ่งผ่านเพื่อไปยังเชนหนึ่งๆ ICS 20 ระบุลอจิกเกี่ยวกับวิธีดำเนินการแพ็กเก็ตด้วย

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

พวกเขาไม่รู้ว่าเนื้อหาในซองคืออะไร มันทำหน้าที่รวบรวมซองจดหมายจากจุด A และส่งไปยังจุด B เท่านั้น ซองจดหมายนั้นอาจถูกมองว่าเป็นแพ็กเก็ต IBC ที่ส่งจากเชนหนึ่งไปยังอีกเชนหนึ่ง และบนซองนี้ให้ระบุที่อยู่ของผู้รับด้วย ซึ่งคล้ายกับวิธีที่แพ็กเก็ต IBC มีข้อมูลเกี่ยวกับผู้ที่ส่งแพ็กเก็ต (ระบุโดยรหัสแชนเนล) และใครที่มีไว้สำหรับ (ระบุโดยรหัสแชนเนลของคู่สัญญา) ในท้ายที่สุด ผู้รับ (แอปพลิเคชัน) เป็นผู้รับผิดชอบในการเปิดซองจดหมาย (แพ็กเก็ตข้อมูล) และตีความเนื้อหาของจดหมาย

IBC ใช้ทำอะไรได้บ้าง?

นอกเหนือจากการโอนโทเค็นที่ใช้ร่วมกันได้ แอปพลิเคชันระดับ IBC อีกสองรายการ ได้แก่ บัญชี Interchain และInterchain Security

บัญชี Interchain อำนวยความสะดวกในการโต้ตอบแบบลูกโซ่ต่อลูกโซ่ในขณะที่ยังคงอยู่ในอินเทอร์เฟซเดียว ซึ่งหมายความว่าการดำเนินการใดๆ เช่น การโอน การปักหลัก หรือการลงคะแนนเสียงในข้อเสนอการกำกับดูแลซึ่งสามารถดำเนินการบนB (เรียกว่า 'โฮสต์เชน') สามารถดำเนินการได้จากA (เรียกว่า 'คอนโทรลเลอร์เชน') บัญชี Interchain เพิ่มความสามารถในการรวมภายใน Interchain อย่างมีนัยสำคัญโดยการปรับปรุงประสบการณ์ผู้ใช้

Interchain Security คือเวอร์ชันความปลอดภัยที่ใช้ร่วมกันของ Cosmos Ecosystem ช่วยให้ blockchain สามารถเช่าความปลอดภัยจาก chain อื่นได้อย่างสมบูรณ์ สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับเครือข่ายใหม่ที่สามารถเลือกที่จะใช้ประโยชน์จากความปลอดภัยที่นำเสนอโดยเครือข่ายที่จัดตั้งขึ้นแล้ว เช่น Cosmos Hub Interchain Security ขจัดความจำเป็นในการใช้เชนในการบู๊ตสแตรปชุดตัวตรวจสอบความถูกต้องของตนเอง

ขอบเขตของแอปพลิเคชันที่สามารถดำเนินการได้โดยใช้ IBC เป็นแกนดั้งเดิมนั้นมีการเติบโตอย่างต่อเนื่อง การถ่ายโอน NFT แบบ Cross-chain และ Interchain Queries (ซึ่งเชนหนึ่งสามารถอ่านสถานะจากอีกเชนหนึ่งได้) กำลังได้รับการพัฒนาและจะพร้อมสำหรับการผลิตในเร็วๆ นี้

IBC แก้ปัญหาอะไรได้บ้าง?

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

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

ตัวอย่างเช่น ผู้ใช้อาจต้องการใช้ Stablecoins จากบล็อกเชนหนึ่งเพื่อสร้างผลตอบแทนผ่านกลุ่มสภาพคล่อง (LP) บนการแลกเปลี่ยนแบบกระจายศูนย์ (DEX) ที่มีอยู่ในบล็อกเชนอื่น หรือพวกเขาอาจต้องการใช้ประโยชน์จากคุณสมบัติการรักษาความเป็นส่วนตัวที่บล็อกเชนอื่นมีให้ จำเป็นต้องมีการทำงานร่วมกันระหว่างเชนเพื่อให้เข้าใจถึงกรณีการใช้งานเหล่านี้และอีกมากมาย

IBC ไม่เพียงแต่แก้ปัญหาความสามารถในการทำงานร่วมกันเท่านั้น แต่ยังแก้ปัญหาในลักษณะที่ไว้วางใจได้น้อยที่สุด ปลอดภัย ขยายได้ และมีวัตถุประสงค์ทั่วไป

ฉันจะเป็นนักพัฒนาแอปพลิเคชันใช้ IBC ได้อย่างไร

ลักษณะโมดูลาร์ของ Cosmos SDK ช่วยป้องกันไม่ให้นักพัฒนาต้องพะวงกับเลเยอร์นามธรรมบางอย่าง เช่น ไคลเอ็นต์แบบไลท์ การเชื่อมต่อ การตรวจสอบหลักฐาน ฯลฯ สำหรับนักพัฒนา ข้อกำหนดและฟังก์ชันที่เกี่ยวข้องมากที่สุดที่ต้องทำความคุ้นเคยคือช่องสัญญาณและพอร์ต สำหรับข้อมูลรายละเอียดเพิ่มเติมเกี่ยวกับ IBC คุณสามารถอ้างอิงจาก porta l ผู้พัฒนาของเรา

หากคุณกำลังสร้างบล็อกเชนโดยใช้ Cosmos SDK ให้ดูรายละเอียดขั้นตอนที่จำเป็นในการเปิดใช้งาน IBC สำหรับโมดูล SDK ที่นี่ คุณยังสามารถสมัครเข้าร่วม Interchain Builders Program ซึ่งเป็นโครงการริเริ่มของ ICF เพื่อรับการสนับสนุนในการสร้างใน Cosmos

เกี่ยวกับผู้เขียน: โพสต์นี้เขียนโดยAdi Ravi Rajนักวิเคราะห์โปรโตคอล IBC ที่ Interchain GmbH