บทนำ:
บทความนี้ให้การตีความเอกสารทางเทคนิคของ BitVM ซึ่งอธิบายแนวทางของ BitVM: ข้อมูลไม่จำเป็นต้องออนไลน์ตั้งแต่แรก ได้รับการเผยแพร่และจัดเก็บนอกเครือข่าย โดยมีเพียงข้อผูกพันที่จัดเก็บไว้ในบล็อกเชน
ชื่อบทความต้นฉบับที่ส่งต่อ: การตีความอย่างง่ายของ BitVM: วิธีตรวจสอบหลักฐานการฉ้อโกงบน BTC Blockchain (การดำเนินการ EVM หรือ Opcodes VM อื่น ๆ )
คำนำ: ปัจจุบัน Bitcoin Layer 2 ได้กลายเป็นกระแส โดยมีโครงการหลายสิบโครงการที่ระบุตัวเองว่าเป็น “Bitcoin Layer 2” สิ่งเหล่านี้จำนวนมากอ้างว่าเป็น "แบบโรลอัพ" ระบุว่าพวกเขากำลังใช้วิธีการที่เสนอในสมุดปกขาวของ BitVM โดยวางตำแหน่ง BitVM ให้เป็นส่วนสำคัญของระบบนิเวศ Bitcoin
อย่างไรก็ตาม เอกสารส่วนใหญ่ที่มีอยู่ใน BitVM ไม่ได้อธิบายหลักการในแง่ของคนธรรมดา บทความนี้อิงจากการอ่านเอกสารทางเทคนิค BitVM จำนวน 8 หน้าของเรา และหลังจากปรึกษาแหล่งข้อมูลที่เกี่ยวข้องกับ Taproot, MAST tree และ Bitcoin Script แล้ว ก็ได้นำเสนอบทสรุปที่เรียบง่าย เพื่อช่วยให้เข้าใจ เราได้เปลี่ยนแปลงสำนวนบางอย่างจากที่พบในสมุดปกขาวของ BitVM โดยสมมติว่าผู้อ่านมีความรู้เกี่ยวกับเลเยอร์ 2 บ้างและสามารถเข้าใจแนวคิดพื้นฐานของ “การพิสูจน์การฉ้อโกง”
แนวคิดเบื้องต้นของ BitVM สามารถสรุปได้เป็นไม่กี่ประโยค: ขจัดความจำเป็นในการใช้ข้อมูลบนเครือข่าย เริ่มเผยแพร่และจัดเก็บข้อมูลนอกเครือข่าย โดยมีเพียงข้อผูกพันที่จัดเก็บไว้ในบล็อกเชน ในกรณีที่มีการท้าทายหรือพิสูจน์การฉ้อโกง จะมีเพียงข้อมูลที่จำเป็นเท่านั้นที่จะถูกนำมาออนไลน์เพื่อแสดงให้เห็นถึงความเชื่อมโยงกับความมุ่งมั่นในบล็อกเชน ต่อจากนั้น BTC mainnet จะตรวจสอบข้อมูลออนไลน์สำหรับปัญหาใด ๆ และไม่ว่าผู้ผลิตข้อมูล (โหนดที่ประมวลผลธุรกรรม) มีส่วนร่วมในกิจกรรมที่เป็นอันตรายหรือไม่ แนวทางนี้เป็นไปตามหลักการ Razor ของ Occam นั่นคือ “ไม่ควรคูณเอนทิตีโดยไม่จำเป็น” (หากสามารถเป็นแบบ off-chain ได้ ให้คงไว้แบบ off-chain)
ข้อความหลัก: โครงการตรวจสอบหลักฐานการฉ้อโกง BTC blockchain ที่เรียกว่า BitVM ตามเงื่อนไขของคนธรรมดา:
1.ประการแรก คอมพิวเตอร์/โปรเซสเซอร์คือระบบอินพุต-เอาท์พุตที่ประกอบด้วยวงจรลอจิกเกตจำนวนมาก หนึ่งในแนวคิดหลักของ BitVM คือการใช้สคริปต์ Bitcoin เพื่อจำลองเอฟเฟกต์อินพุต-เอาต์พุตของวงจรลอจิกเกต ตราบใดที่วงจรลอจิกเกตสามารถจำลองได้ ตามทฤษฎีแล้ว เครื่องจักรทัวริงก็สามารถบรรลุผลสำเร็จได้ และทำงานที่คำนวณได้ทั้งหมดให้เสร็จสิ้น ซึ่งหมายความว่าหากคุณมีทรัพยากรและกำลังคนเพียงพอ คุณสามารถรวบรวมทีมวิศวกรเพื่อจำลองวงจรลอจิกเกตก่อนโดยใช้โค้ด Bitcoin Script พื้นฐาน จากนั้นจึงใช้วงจรลอจิกเกตจำนวนมหาศาลเพื่อใช้ฟังก์ชันการทำงานของ EVM หรือ WASM .
(ภาพหน้าจอนี้มาจากเกมการศึกษา: “Turing Complete” ซึ่งเนื้อหาหลักคือการสร้างโปรเซสเซอร์ CPU ที่สมบูรณ์ โดยเฉพาะอย่างยิ่งการใช้วงจรลอจิกเกต เช่น เกต NAND)
บางคนได้เปรียบเทียบแนวทางของ BitVM ในการสร้างโปรเซสเซอร์ M1 ใน “Minecraft” โดยใช้วงจร Redstone หรือคล้ายกับการสร้างตึกเอ็มไพร์สเตตในนิวยอร์กด้วยตัวต่อ LEGO
(ว่ากันว่ามีคนใช้เวลาหนึ่งปีในการสร้าง "โปรเซสเซอร์" ใน "Minecraft")
(ตัวอย่างโค้ด Bitcoin Script)
หาก Bitcoin Layer 2 มีเป้าหมายที่จะตรวจสอบหลักฐานการฉ้อโกงบนเลเยอร์ 1 เช่น โซลูชันเลเยอร์ 2 ของ Ethereum เช่น Arbitrum เพื่อสืบทอดความปลอดภัยของ BTC อย่างมาก ก็จำเป็นต้องตรวจสอบ “ธุรกรรมที่ถูกโต้แย้ง” หรือ “opcode ที่ถูกโต้แย้ง” โดยตรงบนบล็อกเชน BTC ซึ่งหมายความว่าภาษา Solidity / EVM opcodes ที่ใช้โดยเลเยอร์ 2 จำเป็นต้องได้รับการดำเนินการอีกครั้งบน Bitcoin blockchain ความท้าทายอยู่ที่:
การใช้ Bitcoin Script ซึ่งเป็นภาษาการเขียนโปรแกรมดั้งเดิมของ Bitcoin เพื่อให้บรรลุผลจาก EVM หรือเครื่องเสมือนอื่น ๆ
ดังนั้น จากมุมมองของหลักการในการคอมไพล์ วิธีการของ BitVM จะแปล opcode EVM / WASM / JavaScript ให้เป็น opcode ของสคริปต์ Bitcoin โดยมีวงจรลอจิกเกตทำหน้าที่เป็นตัวแทนระดับกลาง (IR) ระหว่าง “opcode ของ EVM —> opcode ของสคริปต์ Bitcoin”
(เอกสารทางเทคนิคของ BitVM กล่าวถึงแนวทางทั่วไปในการดำเนินการ "คำสั่งที่มีการโต้แย้ง" บางอย่างบน Bitcoin blockchain)
อย่างไรก็ตาม เอฟเฟกต์ขั้นสูงสุดที่จำลองขึ้นมาคือการประมวลผลคำสั่ง ซึ่งแต่เดิมสามารถจัดการได้เฉพาะบน EVM / WASM เท่านั้น บน Bitcoin blockchain โดยตรง แม้ว่าวิธีแก้ปัญหานี้จะเป็นไปได้ แต่ปัญหาอยู่ที่การใช้วงจรลอจิกเกตจำนวนมากเป็นรูปแบบกลางในการแสดง opcode EVM / WASM ทั้งหมด นอกจากนี้ การใช้วงจรลอจิกเกตร่วมกันเพื่อแสดงขั้นตอนการประมวลผลธุรกรรมที่ซับซ้อนอย่างยิ่งโดยตรงอาจส่งผลให้เกิดภาระงานจำนวนมาก
การพิสูจน์การฉ้อโกงแบบโต้ตอบเกี่ยวข้องกับคำที่เรียกว่ายืนยัน โดยทั่วไป ผู้เสนอของเลเยอร์ 2 (มักดำเนินการโดยซีเควนเซอร์) จะเผยแพร่การยืนยันบนเลเยอร์ 1 โดยประกาศว่าข้อมูลธุรกรรมบางอย่างและผลลัพธ์การเปลี่ยนแปลงสถานะนั้นถูกต้องและปราศจากข้อผิดพลาด
หากมีคนเชื่อว่าคำยืนยันที่ผู้เสนอส่งมานั้นมีปัญหา (ข้อมูลที่เกี่ยวข้องไม่ถูกต้อง) จะเกิดข้อพิพาทขึ้น ณ จุดนี้ ผู้เสนอและผู้ท้าชิงจะแลกเปลี่ยนข้อมูลเป็นรอบและใช้วิธีการค้นหาแบบไบนารีกับข้อมูลที่โต้แย้ง เพื่อค้นหาคำสั่งการปฏิบัติงานที่ละเอียดมากและส่วนข้อมูลที่เกี่ยวข้องอย่างรวดเร็ว
สำหรับคำสั่งการดำเนินการที่ถูกโต้แย้ง (รหัส OP) จำเป็นต้องดำเนินการโดยตรงบนเลเยอร์ 1 พร้อมกับพารามิเตอร์อินพุต และตรวจสอบความถูกต้องของผลลัพธ์เอาต์พุต (โหนดเลเยอร์ 1 จะเปรียบเทียบผลลัพธ์เอาต์พุตที่คำนวณกับผลลัพธ์เอาต์พุตที่เผยแพร่ก่อนหน้านี้โดยผู้เสนอ) ในอนุญาโตตุลาการ สิ่งนี้เรียกว่า “หลักฐานการฉ้อโกงในขั้นตอนเดียว” (ในโปรโตคอลป้องกันการฉ้อโกงแบบโต้ตอบของ Arbitrum การค้นหาแบบไบนารี่จะใช้เพื่อค้นหาคำสั่งที่ถูกโต้แย้งและผลการดำเนินการอย่างรวดเร็ว จากนั้นหลักฐานการฉ้อโกงในขั้นตอนเดียวจะถูกส่งไปยังเลเยอร์ 1 เพื่อตรวจสอบขั้นสุดท้าย)
ติดตามเรื่องนี้:
กระบวนการนี้เป็นแบบโต้ตอบ โดยทั้งสองฝ่ายผลัดกัน ฝ่ายหนึ่งแบ่งกลุ่มข้อมูลประวัติที่มีอยู่ใน Rollup Block และอีกฝ่ายชี้ให้เห็นว่ากลุ่มข้อมูลใดเป็นปัญหา สิ่งนี้คล้ายกับวิธีไบนารี่ (ในความเป็นจริง เป็นกระบวนการที่ค่อยๆ ลดช่วงลง N/K)
ต่อมา เป็นไปได้ที่จะค้นหาเพิ่มเติมว่าธุรกรรมใดและผลลัพธ์ใดที่เป็นปัญหา จากนั้นจึงจำกัดให้แคบลงเหลือเพียงคำสั่งเครื่องจักรเฉพาะภายในธุรกรรมนั้นที่ถูกโต้แย้ง
สัญญา ChallengeManager จะตรวจสอบว่า "ส่วนข้อมูล" ที่สร้างขึ้นโดยการแบ่งย่อยข้อมูลต้นฉบับนั้นถูกต้องเท่านั้น
เมื่อผู้ท้าชิงและผู้ถูกท้าทายพบคำสั่งเครื่องที่จะท้าทายแล้ว ผู้ท้าชิงจะเรียกใช้ oneStepProveExecution()
โดยส่งหลักฐานการฉ้อโกงในขั้นตอนเดียวเพื่อแสดงให้เห็นว่ามีปัญหากับผลการดำเนินการของคำสั่งเครื่องนี้
(ในโปรโตคอลป้องกันการฉ้อโกงแบบโต้ตอบของ Arbitrum กระบวนการเกี่ยวข้องกับการใช้การค้นหาแบบไบนารีเพื่อค้นหาคำสั่งที่มีการโต้แย้งอย่างรวดเร็วและผลการดำเนินการจากข้อมูลที่เผยแพร่โดยผู้เสนอ หลังจากระบุข้อมูลหรือ opcode ที่เป็นข้อโต้แย้งแล้ว หลักฐานการฉ้อโกงในขั้นตอนเดียวจะถูกส่งไปยังเลเยอร์ 1 เพื่อตรวจสอบขั้นสุดท้าย)
อ้างอิง:
อดีตเอกอัครราชทูตด้านเทคนิคของ Arbitrum อธิบายโครงสร้างส่วนประกอบของ Arbitrum (ตอนที่ 1)
(แผนภูมิการไหลหลักฐานการฉ้อโกงแบบโต้ตอบของอนุญาโตตุลาการ คำอธิบายค่อนข้างหยาบ)
เมื่อมาถึงจุดนี้ แนวคิดของการพิสูจน์การฉ้อโกงในขั้นตอนเดียวจะค่อนข้างตรงไปตรงมา: คำสั่งการทำธุรกรรมส่วนใหญ่ที่เกิดขึ้นบนเลเยอร์ 2 ไม่จำเป็นต้องได้รับการตรวจสอบอีกครั้งบนบล็อกเชน BTC อย่างไรก็ตาม หากส่วนข้อมูล/opcode ที่ถูกโต้แย้งโดยเฉพาะถูกท้าทาย จะต้องเล่นซ้ำบนเลเยอร์ 1
หากผลการตรวจสอบบ่งชี้ว่าข้อมูลที่ผู้เสนอเผยแพร่ก่อนหน้านี้มีปัญหา สินทรัพย์ที่วางเดิมพันของผู้เสนอจะถูกตัดออก หากพบว่าผู้ท้าชิงเป็นฝ่ายผิด ทรัพย์สินที่ผู้ท้าชิงเดิมพันจะถูกเฉือน ผู้พิสูจน์ที่ไม่ตอบสนองต่อความท้าทายในเวลาที่เหมาะสมก็สามารถถูกเฉือนได้เช่นกัน
Arbitrum ดำเนินการผลกระทบดังกล่าวผ่านสัญญาบน Ethereum ในขณะที่ BitVM มีเป้าหมายเพื่อให้ได้ฟังก์ชันที่คล้ายกันโดยใช้ Bitcoin Script เพื่อใช้การล็อคเวลา multisig และคุณสมบัติอื่น ๆ
4.หลังจากหารือเกี่ยวกับ "การพิสูจน์การฉ้อโกงแบบโต้ตอบ" และ "การพิสูจน์การฉ้อโกงในขั้นตอนเดียว" เราจะพูดถึงแผนผัง MAST และ Merkle Proofs ก่อนหน้านี้ เราได้กล่าวไว้ว่าในโซลูชัน BitVM ข้อมูลธุรกรรมจำนวนมหาศาลและวงจรลอจิกเกตที่ประมวลผลแบบออฟไลน์ที่เลเยอร์ 2 ไม่ได้ถูกวางแบบออนไลน์โดยตรง วงจรเกตข้อมูล/ลอจิกจำนวนน้อยที่สุดเท่านั้นที่จะถูกเชื่อมต่อแบบออนเชนเมื่อจำเป็น อย่างไรก็ตาม เราต้องการวิธีพิสูจน์ว่าข้อมูลนี้ ซึ่งแต่เดิมเป็นแบบออฟไลน์ และตอนนี้จำเป็นต้องใส่แบบออนไลน์ ไม่ได้ถูกสร้างขึ้น นี่คือจุดที่แนวคิดเรื่องความมุ่งมั่นในการเข้ารหัสเข้ามามีบทบาท และ Merkle Proof เป็นรูปแบบหนึ่งของความมุ่งมั่นดังกล่าว
ก่อนอื่น เรามาพูดถึงต้นไม้ MAST กันก่อน ชื่อเต็มของ MAST คือ Merkelized Abstract Syntax Trees ซึ่งเป็นการเปลี่ยนแปลงของ AST (Abstract Syntax Trees) จากขอบเขตของหลักการคอมไพเลอร์เป็น Merkle Trees แล้ว AST คืออะไร? กล่าวง่ายๆ ก็คือ โครงสร้างข้อมูลคล้ายต้นไม้ที่แบ่งคำสั่งที่ซับซ้อนออกเป็นกลุ่มหน่วยการทำงานพื้นฐานผ่านการวิเคราะห์คำศัพท์
(ตัวอย่างของแผนผัง AST จะแจกแจงการคำนวณง่ายๆ เช่น “x=2, y=x*3” ออกเป็นโค้ดการดำเนินการและข้อมูลพื้นฐาน )
ดังนั้น แผนผัง MAST เป็นผลมาจากการใช้ Merkleization กับแผนผัง AST ซึ่งสนับสนุน Merkle Proofs ข้อดีอย่างหนึ่งของแผนผัง Merkle คือความสามารถในการ "บีบอัด" ข้อมูลได้อย่างมีประสิทธิภาพ ตัวอย่างเช่น หากคุณต้องการเผยแพร่ส่วนของข้อมูลจากแผนผัง Merkle บนบล็อกเชน BTC เมื่อจำเป็น ในขณะเดียวกันก็ทำให้น่าเชื่อถือด้วยว่าส่วนข้อมูลนี้มีอยู่จริงบนแผนผัง Merkle และไม่ได้ถูกเลือกโดยพลการ คุณจะทำอย่างไร?
คุณเพียงแค่บันทึกรากของต้นไม้ Merkle บนบล็อคเชนล่วงหน้า ในอนาคต การนำเสนอ Merkle Proof ที่พิสูจน์ว่ามีข้อมูลชิ้นหนึ่งอยู่บนแผนผัง Merkle ที่สอดคล้องกับ Root ก็เพียงพอแล้ว
(ความสัมพันธ์ระหว่าง Merkle Proof/Branch และ Root)
ดังนั้นจึงไม่จำเป็นต้องจัดเก็บ MAST tree ที่สมบูรณ์บนบล็อกเชน BTC ก็เพียงพอแล้วที่จะเปิดเผยรูทของมันล่วงหน้าเป็นข้อผูกพัน เมื่อจำเป็น การนำเสนอส่วนข้อมูล + Merkle Proof/Branch ก็เพียงพอแล้ว สิ่งนี้จะช่วยลดปริมาณข้อมูลออนไลน์ได้อย่างมาก ในขณะเดียวกันก็ทำให้มั่นใจได้ว่าข้อมูลออนไลน์นั้นมีอยู่บนแผนผัง MAST อย่างแท้จริง นอกจากนี้ การเปิดเผยเพียงส่วนเล็กๆ ของกลุ่มข้อมูล + Merkle Proof บนบล็อกเชน BTC แทนที่จะเปิดเผยข้อมูลทั้งหมด สามารถปรับปรุงการปกป้องความเป็นส่วนตัวได้อย่างมาก
ข้อมูลอ้างอิง:การหักล้างข้อมูลและการพิสูจน์การฉ้อโกง: เหตุใดพลาสมาจึงไม่รองรับสัญญาอัจฉริยะ
(ตัวอย่างต้นไม้ MAST)
ในโซลูชันของ BitVM วงจรลอจิกเกตทั้งหมดจะแสดงโดยใช้สคริปต์ Bitcoin ซึ่งจัดเป็นแผนผัง MAST ขนาดใหญ่ ใบไม้ด้านล่างของแผนผังนี้ ซึ่งระบุเป็นเนื้อหาในแผนภาพ สอดคล้องกับวงจรลอจิกเกตที่ใช้ในสคริปต์ Bitcoin ผู้เสนอของเลเยอร์ 2 เผยแพร่รากของแผนผัง MAST บนบล็อกเชน BTC บ่อยครั้ง โดยแผนผัง MAST แต่ละต้นเชื่อมโยงกับธุรกรรมที่เกี่ยวข้องกับพารามิเตอร์อินพุต/รหัสการดำเนินการ/วงจรลอจิกเกตทั้งหมด สิ่งนี้ค่อนข้างคล้ายกับ Proposer ของ Arbitrum ที่เผยแพร่ Rollup Blocks บน Ethereum blockchain
เมื่อมีข้อพิพาทเกิดขึ้น ผู้ท้าชิงจะประกาศบนบล็อคเชน BTC ว่ารูทใดที่พวกเขาต้องการท้าทาย จากนั้นขอให้ผู้เสนอเปิดเผยส่วนข้อมูลเฉพาะที่เกี่ยวข้องกับรูท ต่อจากนั้น ผู้เสนอนำเสนอ Merkle Proof โดยเปิดเผยส่วนเล็กๆ ของข้อมูลออนไลน์ของแผนผัง MAST อย่างต่อเนื่อง จนกว่าวงจรลอจิกเกตที่ถูกโต้แย้งจะตั้งอยู่ร่วมกับผู้ท้าชิง หลังจากนั้นก็สามารถดำเนินการ Slash ได้
โดยสรุป โครงการ BitVM เริ่มต้นโดยใช้สคริปต์ Bitcoin เพื่อแสดงวงจรลอจิกเกต จากนั้นใช้วงจรเหล่านี้เพื่อแสดง opcode ของ EVM/VM อื่นๆ ซึ่งจะแสดงขั้นตอนการประมวลผลของคำสั่งธุรกรรมที่กำหนด และสุดท้ายจัดระเบียบสิ่งเหล่านี้เป็น ต้นไม้ Merkle/ต้นไม้ MAST หากขั้นตอนการประมวลผลธุรกรรมที่แสดงโดยแผนผังดังกล่าวมีความซับซ้อนมาก ก็อาจเกิน 100 ล้านใบได้อย่างง่ายดาย ดังนั้นจึงจำเป็นอย่างยิ่งที่จะต้องลดพื้นที่บล็อกที่ถูกครอบครองโดยข้อผูกมัดและขอบเขตที่ได้รับผลกระทบจากการพิสูจน์การฉ้อโกง
แม้ว่าการพิสูจน์การฉ้อโกงในขั้นตอนเดียวต้องใช้ข้อมูลจำนวนน้อยมากและสคริปต์ลอจิกเกตแบบออนไลน์ แต่ Merkle Tree ที่สมบูรณ์จะต้องถูกเก็บไว้นอกเครือข่ายเป็นเวลานาน เพื่อให้สามารถเข้าถึงออนไลน์ได้ตลอดเวลา เวลาถ้าใครมาท้าทายมัน แต่ละธุรกรรมในเลเยอร์ 2 จะสร้าง Merkle Tree ขนาดใหญ่ และใครๆ ก็สามารถจินตนาการถึงแรงกดดันในการคำนวณและการจัดเก็บบนโหนดได้ คนส่วนใหญ่อาจไม่ต้องการเรียกใช้โหนด (อย่างไรก็ตาม ข้อมูลประวัติดังกล่าวสามารถถูกแบ่งออกได้ และเครือข่าย B^2 แนะนำการพิสูจน์พื้นที่เก็บข้อมูล zk โดยเฉพาะที่คล้ายกับ Filecoin เพื่อจูงใจโหนดการจัดเก็บข้อมูลเพื่อรักษาข้อมูลประวัติในระยะยาว)
อย่างไรก็ตาม Rollups ในแง่ดีที่อิงจากการพิสูจน์การฉ้อโกงไม่จำเป็นต้องมีโหนดมากเกินไป เนื่องจากโมเดลความน่าเชื่อถือของพวกเขาคือ 1/N ซึ่งหมายความว่าตราบใดที่หนึ่งในโหนด N นั้นซื่อสัตย์และสามารถเริ่มต้นการพิสูจน์การฉ้อโกงในช่วงเวลาที่สำคัญ เครือข่ายเลเยอร์ 2 มีความปลอดภัย
อย่างไรก็ตาม มีความท้าทายมากมายในการออกแบบโซลูชันเลเยอร์ 2 ที่ใช้ BitVM เช่น:
1) ตามทฤษฎีแล้ว ในการบีบอัดข้อมูลเพิ่มเติม ไม่จำเป็นต้องตรวจสอบ opcodes โดยตรงบนเลเยอร์ 1 ขั้นตอนการประมวลผลของ opcode สามารถบีบอัดเพิ่มเติมให้เป็น zk-proof ได้ ช่วยให้ผู้ท้าชิงท้าทายขั้นตอนการตรวจสอบความถูกต้องของ zk-proof สิ่งนี้สามารถลดปริมาณข้อมูลออนไลน์ได้อย่างมาก อย่างไรก็ตามรายละเอียดการพัฒนาเฉพาะอาจซับซ้อนมาก
2) ผู้เสนอและผู้ท้าทายจำเป็นต้องสร้างปฏิสัมพันธ์นอกเครือข่ายซ้ำๆ วิธีการออกแบบโปรโตคอล และวิธีเพิ่มประสิทธิภาพกระบวนการมุ่งมั่นและความท้าทายในขั้นตอนการประมวลผล จะต้องใช้ความพยายามทางปัญญาอย่างมาก
บทนำ:
บทความนี้ให้การตีความเอกสารทางเทคนิคของ BitVM ซึ่งอธิบายแนวทางของ BitVM: ข้อมูลไม่จำเป็นต้องออนไลน์ตั้งแต่แรก ได้รับการเผยแพร่และจัดเก็บนอกเครือข่าย โดยมีเพียงข้อผูกพันที่จัดเก็บไว้ในบล็อกเชน
ชื่อบทความต้นฉบับที่ส่งต่อ: การตีความอย่างง่ายของ BitVM: วิธีตรวจสอบหลักฐานการฉ้อโกงบน BTC Blockchain (การดำเนินการ EVM หรือ Opcodes VM อื่น ๆ )
คำนำ: ปัจจุบัน Bitcoin Layer 2 ได้กลายเป็นกระแส โดยมีโครงการหลายสิบโครงการที่ระบุตัวเองว่าเป็น “Bitcoin Layer 2” สิ่งเหล่านี้จำนวนมากอ้างว่าเป็น "แบบโรลอัพ" ระบุว่าพวกเขากำลังใช้วิธีการที่เสนอในสมุดปกขาวของ BitVM โดยวางตำแหน่ง BitVM ให้เป็นส่วนสำคัญของระบบนิเวศ Bitcoin
อย่างไรก็ตาม เอกสารส่วนใหญ่ที่มีอยู่ใน BitVM ไม่ได้อธิบายหลักการในแง่ของคนธรรมดา บทความนี้อิงจากการอ่านเอกสารทางเทคนิค BitVM จำนวน 8 หน้าของเรา และหลังจากปรึกษาแหล่งข้อมูลที่เกี่ยวข้องกับ Taproot, MAST tree และ Bitcoin Script แล้ว ก็ได้นำเสนอบทสรุปที่เรียบง่าย เพื่อช่วยให้เข้าใจ เราได้เปลี่ยนแปลงสำนวนบางอย่างจากที่พบในสมุดปกขาวของ BitVM โดยสมมติว่าผู้อ่านมีความรู้เกี่ยวกับเลเยอร์ 2 บ้างและสามารถเข้าใจแนวคิดพื้นฐานของ “การพิสูจน์การฉ้อโกง”
แนวคิดเบื้องต้นของ BitVM สามารถสรุปได้เป็นไม่กี่ประโยค: ขจัดความจำเป็นในการใช้ข้อมูลบนเครือข่าย เริ่มเผยแพร่และจัดเก็บข้อมูลนอกเครือข่าย โดยมีเพียงข้อผูกพันที่จัดเก็บไว้ในบล็อกเชน ในกรณีที่มีการท้าทายหรือพิสูจน์การฉ้อโกง จะมีเพียงข้อมูลที่จำเป็นเท่านั้นที่จะถูกนำมาออนไลน์เพื่อแสดงให้เห็นถึงความเชื่อมโยงกับความมุ่งมั่นในบล็อกเชน ต่อจากนั้น BTC mainnet จะตรวจสอบข้อมูลออนไลน์สำหรับปัญหาใด ๆ และไม่ว่าผู้ผลิตข้อมูล (โหนดที่ประมวลผลธุรกรรม) มีส่วนร่วมในกิจกรรมที่เป็นอันตรายหรือไม่ แนวทางนี้เป็นไปตามหลักการ Razor ของ Occam นั่นคือ “ไม่ควรคูณเอนทิตีโดยไม่จำเป็น” (หากสามารถเป็นแบบ off-chain ได้ ให้คงไว้แบบ off-chain)
ข้อความหลัก: โครงการตรวจสอบหลักฐานการฉ้อโกง BTC blockchain ที่เรียกว่า BitVM ตามเงื่อนไขของคนธรรมดา:
1.ประการแรก คอมพิวเตอร์/โปรเซสเซอร์คือระบบอินพุต-เอาท์พุตที่ประกอบด้วยวงจรลอจิกเกตจำนวนมาก หนึ่งในแนวคิดหลักของ BitVM คือการใช้สคริปต์ Bitcoin เพื่อจำลองเอฟเฟกต์อินพุต-เอาต์พุตของวงจรลอจิกเกต ตราบใดที่วงจรลอจิกเกตสามารถจำลองได้ ตามทฤษฎีแล้ว เครื่องจักรทัวริงก็สามารถบรรลุผลสำเร็จได้ และทำงานที่คำนวณได้ทั้งหมดให้เสร็จสิ้น ซึ่งหมายความว่าหากคุณมีทรัพยากรและกำลังคนเพียงพอ คุณสามารถรวบรวมทีมวิศวกรเพื่อจำลองวงจรลอจิกเกตก่อนโดยใช้โค้ด Bitcoin Script พื้นฐาน จากนั้นจึงใช้วงจรลอจิกเกตจำนวนมหาศาลเพื่อใช้ฟังก์ชันการทำงานของ EVM หรือ WASM .
(ภาพหน้าจอนี้มาจากเกมการศึกษา: “Turing Complete” ซึ่งเนื้อหาหลักคือการสร้างโปรเซสเซอร์ CPU ที่สมบูรณ์ โดยเฉพาะอย่างยิ่งการใช้วงจรลอจิกเกต เช่น เกต NAND)
บางคนได้เปรียบเทียบแนวทางของ BitVM ในการสร้างโปรเซสเซอร์ M1 ใน “Minecraft” โดยใช้วงจร Redstone หรือคล้ายกับการสร้างตึกเอ็มไพร์สเตตในนิวยอร์กด้วยตัวต่อ LEGO
(ว่ากันว่ามีคนใช้เวลาหนึ่งปีในการสร้าง "โปรเซสเซอร์" ใน "Minecraft")
(ตัวอย่างโค้ด Bitcoin Script)
หาก Bitcoin Layer 2 มีเป้าหมายที่จะตรวจสอบหลักฐานการฉ้อโกงบนเลเยอร์ 1 เช่น โซลูชันเลเยอร์ 2 ของ Ethereum เช่น Arbitrum เพื่อสืบทอดความปลอดภัยของ BTC อย่างมาก ก็จำเป็นต้องตรวจสอบ “ธุรกรรมที่ถูกโต้แย้ง” หรือ “opcode ที่ถูกโต้แย้ง” โดยตรงบนบล็อกเชน BTC ซึ่งหมายความว่าภาษา Solidity / EVM opcodes ที่ใช้โดยเลเยอร์ 2 จำเป็นต้องได้รับการดำเนินการอีกครั้งบน Bitcoin blockchain ความท้าทายอยู่ที่:
การใช้ Bitcoin Script ซึ่งเป็นภาษาการเขียนโปรแกรมดั้งเดิมของ Bitcoin เพื่อให้บรรลุผลจาก EVM หรือเครื่องเสมือนอื่น ๆ
ดังนั้น จากมุมมองของหลักการในการคอมไพล์ วิธีการของ BitVM จะแปล opcode EVM / WASM / JavaScript ให้เป็น opcode ของสคริปต์ Bitcoin โดยมีวงจรลอจิกเกตทำหน้าที่เป็นตัวแทนระดับกลาง (IR) ระหว่าง “opcode ของ EVM —> opcode ของสคริปต์ Bitcoin”
(เอกสารทางเทคนิคของ BitVM กล่าวถึงแนวทางทั่วไปในการดำเนินการ "คำสั่งที่มีการโต้แย้ง" บางอย่างบน Bitcoin blockchain)
อย่างไรก็ตาม เอฟเฟกต์ขั้นสูงสุดที่จำลองขึ้นมาคือการประมวลผลคำสั่ง ซึ่งแต่เดิมสามารถจัดการได้เฉพาะบน EVM / WASM เท่านั้น บน Bitcoin blockchain โดยตรง แม้ว่าวิธีแก้ปัญหานี้จะเป็นไปได้ แต่ปัญหาอยู่ที่การใช้วงจรลอจิกเกตจำนวนมากเป็นรูปแบบกลางในการแสดง opcode EVM / WASM ทั้งหมด นอกจากนี้ การใช้วงจรลอจิกเกตร่วมกันเพื่อแสดงขั้นตอนการประมวลผลธุรกรรมที่ซับซ้อนอย่างยิ่งโดยตรงอาจส่งผลให้เกิดภาระงานจำนวนมาก
การพิสูจน์การฉ้อโกงแบบโต้ตอบเกี่ยวข้องกับคำที่เรียกว่ายืนยัน โดยทั่วไป ผู้เสนอของเลเยอร์ 2 (มักดำเนินการโดยซีเควนเซอร์) จะเผยแพร่การยืนยันบนเลเยอร์ 1 โดยประกาศว่าข้อมูลธุรกรรมบางอย่างและผลลัพธ์การเปลี่ยนแปลงสถานะนั้นถูกต้องและปราศจากข้อผิดพลาด
หากมีคนเชื่อว่าคำยืนยันที่ผู้เสนอส่งมานั้นมีปัญหา (ข้อมูลที่เกี่ยวข้องไม่ถูกต้อง) จะเกิดข้อพิพาทขึ้น ณ จุดนี้ ผู้เสนอและผู้ท้าชิงจะแลกเปลี่ยนข้อมูลเป็นรอบและใช้วิธีการค้นหาแบบไบนารีกับข้อมูลที่โต้แย้ง เพื่อค้นหาคำสั่งการปฏิบัติงานที่ละเอียดมากและส่วนข้อมูลที่เกี่ยวข้องอย่างรวดเร็ว
สำหรับคำสั่งการดำเนินการที่ถูกโต้แย้ง (รหัส OP) จำเป็นต้องดำเนินการโดยตรงบนเลเยอร์ 1 พร้อมกับพารามิเตอร์อินพุต และตรวจสอบความถูกต้องของผลลัพธ์เอาต์พุต (โหนดเลเยอร์ 1 จะเปรียบเทียบผลลัพธ์เอาต์พุตที่คำนวณกับผลลัพธ์เอาต์พุตที่เผยแพร่ก่อนหน้านี้โดยผู้เสนอ) ในอนุญาโตตุลาการ สิ่งนี้เรียกว่า “หลักฐานการฉ้อโกงในขั้นตอนเดียว” (ในโปรโตคอลป้องกันการฉ้อโกงแบบโต้ตอบของ Arbitrum การค้นหาแบบไบนารี่จะใช้เพื่อค้นหาคำสั่งที่ถูกโต้แย้งและผลการดำเนินการอย่างรวดเร็ว จากนั้นหลักฐานการฉ้อโกงในขั้นตอนเดียวจะถูกส่งไปยังเลเยอร์ 1 เพื่อตรวจสอบขั้นสุดท้าย)
ติดตามเรื่องนี้:
กระบวนการนี้เป็นแบบโต้ตอบ โดยทั้งสองฝ่ายผลัดกัน ฝ่ายหนึ่งแบ่งกลุ่มข้อมูลประวัติที่มีอยู่ใน Rollup Block และอีกฝ่ายชี้ให้เห็นว่ากลุ่มข้อมูลใดเป็นปัญหา สิ่งนี้คล้ายกับวิธีไบนารี่ (ในความเป็นจริง เป็นกระบวนการที่ค่อยๆ ลดช่วงลง N/K)
ต่อมา เป็นไปได้ที่จะค้นหาเพิ่มเติมว่าธุรกรรมใดและผลลัพธ์ใดที่เป็นปัญหา จากนั้นจึงจำกัดให้แคบลงเหลือเพียงคำสั่งเครื่องจักรเฉพาะภายในธุรกรรมนั้นที่ถูกโต้แย้ง
สัญญา ChallengeManager จะตรวจสอบว่า "ส่วนข้อมูล" ที่สร้างขึ้นโดยการแบ่งย่อยข้อมูลต้นฉบับนั้นถูกต้องเท่านั้น
เมื่อผู้ท้าชิงและผู้ถูกท้าทายพบคำสั่งเครื่องที่จะท้าทายแล้ว ผู้ท้าชิงจะเรียกใช้ oneStepProveExecution()
โดยส่งหลักฐานการฉ้อโกงในขั้นตอนเดียวเพื่อแสดงให้เห็นว่ามีปัญหากับผลการดำเนินการของคำสั่งเครื่องนี้
(ในโปรโตคอลป้องกันการฉ้อโกงแบบโต้ตอบของ Arbitrum กระบวนการเกี่ยวข้องกับการใช้การค้นหาแบบไบนารีเพื่อค้นหาคำสั่งที่มีการโต้แย้งอย่างรวดเร็วและผลการดำเนินการจากข้อมูลที่เผยแพร่โดยผู้เสนอ หลังจากระบุข้อมูลหรือ opcode ที่เป็นข้อโต้แย้งแล้ว หลักฐานการฉ้อโกงในขั้นตอนเดียวจะถูกส่งไปยังเลเยอร์ 1 เพื่อตรวจสอบขั้นสุดท้าย)
อ้างอิง:
อดีตเอกอัครราชทูตด้านเทคนิคของ Arbitrum อธิบายโครงสร้างส่วนประกอบของ Arbitrum (ตอนที่ 1)
(แผนภูมิการไหลหลักฐานการฉ้อโกงแบบโต้ตอบของอนุญาโตตุลาการ คำอธิบายค่อนข้างหยาบ)
เมื่อมาถึงจุดนี้ แนวคิดของการพิสูจน์การฉ้อโกงในขั้นตอนเดียวจะค่อนข้างตรงไปตรงมา: คำสั่งการทำธุรกรรมส่วนใหญ่ที่เกิดขึ้นบนเลเยอร์ 2 ไม่จำเป็นต้องได้รับการตรวจสอบอีกครั้งบนบล็อกเชน BTC อย่างไรก็ตาม หากส่วนข้อมูล/opcode ที่ถูกโต้แย้งโดยเฉพาะถูกท้าทาย จะต้องเล่นซ้ำบนเลเยอร์ 1
หากผลการตรวจสอบบ่งชี้ว่าข้อมูลที่ผู้เสนอเผยแพร่ก่อนหน้านี้มีปัญหา สินทรัพย์ที่วางเดิมพันของผู้เสนอจะถูกตัดออก หากพบว่าผู้ท้าชิงเป็นฝ่ายผิด ทรัพย์สินที่ผู้ท้าชิงเดิมพันจะถูกเฉือน ผู้พิสูจน์ที่ไม่ตอบสนองต่อความท้าทายในเวลาที่เหมาะสมก็สามารถถูกเฉือนได้เช่นกัน
Arbitrum ดำเนินการผลกระทบดังกล่าวผ่านสัญญาบน Ethereum ในขณะที่ BitVM มีเป้าหมายเพื่อให้ได้ฟังก์ชันที่คล้ายกันโดยใช้ Bitcoin Script เพื่อใช้การล็อคเวลา multisig และคุณสมบัติอื่น ๆ
4.หลังจากหารือเกี่ยวกับ "การพิสูจน์การฉ้อโกงแบบโต้ตอบ" และ "การพิสูจน์การฉ้อโกงในขั้นตอนเดียว" เราจะพูดถึงแผนผัง MAST และ Merkle Proofs ก่อนหน้านี้ เราได้กล่าวไว้ว่าในโซลูชัน BitVM ข้อมูลธุรกรรมจำนวนมหาศาลและวงจรลอจิกเกตที่ประมวลผลแบบออฟไลน์ที่เลเยอร์ 2 ไม่ได้ถูกวางแบบออนไลน์โดยตรง วงจรเกตข้อมูล/ลอจิกจำนวนน้อยที่สุดเท่านั้นที่จะถูกเชื่อมต่อแบบออนเชนเมื่อจำเป็น อย่างไรก็ตาม เราต้องการวิธีพิสูจน์ว่าข้อมูลนี้ ซึ่งแต่เดิมเป็นแบบออฟไลน์ และตอนนี้จำเป็นต้องใส่แบบออนไลน์ ไม่ได้ถูกสร้างขึ้น นี่คือจุดที่แนวคิดเรื่องความมุ่งมั่นในการเข้ารหัสเข้ามามีบทบาท และ Merkle Proof เป็นรูปแบบหนึ่งของความมุ่งมั่นดังกล่าว
ก่อนอื่น เรามาพูดถึงต้นไม้ MAST กันก่อน ชื่อเต็มของ MAST คือ Merkelized Abstract Syntax Trees ซึ่งเป็นการเปลี่ยนแปลงของ AST (Abstract Syntax Trees) จากขอบเขตของหลักการคอมไพเลอร์เป็น Merkle Trees แล้ว AST คืออะไร? กล่าวง่ายๆ ก็คือ โครงสร้างข้อมูลคล้ายต้นไม้ที่แบ่งคำสั่งที่ซับซ้อนออกเป็นกลุ่มหน่วยการทำงานพื้นฐานผ่านการวิเคราะห์คำศัพท์
(ตัวอย่างของแผนผัง AST จะแจกแจงการคำนวณง่ายๆ เช่น “x=2, y=x*3” ออกเป็นโค้ดการดำเนินการและข้อมูลพื้นฐาน )
ดังนั้น แผนผัง MAST เป็นผลมาจากการใช้ Merkleization กับแผนผัง AST ซึ่งสนับสนุน Merkle Proofs ข้อดีอย่างหนึ่งของแผนผัง Merkle คือความสามารถในการ "บีบอัด" ข้อมูลได้อย่างมีประสิทธิภาพ ตัวอย่างเช่น หากคุณต้องการเผยแพร่ส่วนของข้อมูลจากแผนผัง Merkle บนบล็อกเชน BTC เมื่อจำเป็น ในขณะเดียวกันก็ทำให้น่าเชื่อถือด้วยว่าส่วนข้อมูลนี้มีอยู่จริงบนแผนผัง Merkle และไม่ได้ถูกเลือกโดยพลการ คุณจะทำอย่างไร?
คุณเพียงแค่บันทึกรากของต้นไม้ Merkle บนบล็อคเชนล่วงหน้า ในอนาคต การนำเสนอ Merkle Proof ที่พิสูจน์ว่ามีข้อมูลชิ้นหนึ่งอยู่บนแผนผัง Merkle ที่สอดคล้องกับ Root ก็เพียงพอแล้ว
(ความสัมพันธ์ระหว่าง Merkle Proof/Branch และ Root)
ดังนั้นจึงไม่จำเป็นต้องจัดเก็บ MAST tree ที่สมบูรณ์บนบล็อกเชน BTC ก็เพียงพอแล้วที่จะเปิดเผยรูทของมันล่วงหน้าเป็นข้อผูกพัน เมื่อจำเป็น การนำเสนอส่วนข้อมูล + Merkle Proof/Branch ก็เพียงพอแล้ว สิ่งนี้จะช่วยลดปริมาณข้อมูลออนไลน์ได้อย่างมาก ในขณะเดียวกันก็ทำให้มั่นใจได้ว่าข้อมูลออนไลน์นั้นมีอยู่บนแผนผัง MAST อย่างแท้จริง นอกจากนี้ การเปิดเผยเพียงส่วนเล็กๆ ของกลุ่มข้อมูล + Merkle Proof บนบล็อกเชน BTC แทนที่จะเปิดเผยข้อมูลทั้งหมด สามารถปรับปรุงการปกป้องความเป็นส่วนตัวได้อย่างมาก
ข้อมูลอ้างอิง:การหักล้างข้อมูลและการพิสูจน์การฉ้อโกง: เหตุใดพลาสมาจึงไม่รองรับสัญญาอัจฉริยะ
(ตัวอย่างต้นไม้ MAST)
ในโซลูชันของ BitVM วงจรลอจิกเกตทั้งหมดจะแสดงโดยใช้สคริปต์ Bitcoin ซึ่งจัดเป็นแผนผัง MAST ขนาดใหญ่ ใบไม้ด้านล่างของแผนผังนี้ ซึ่งระบุเป็นเนื้อหาในแผนภาพ สอดคล้องกับวงจรลอจิกเกตที่ใช้ในสคริปต์ Bitcoin ผู้เสนอของเลเยอร์ 2 เผยแพร่รากของแผนผัง MAST บนบล็อกเชน BTC บ่อยครั้ง โดยแผนผัง MAST แต่ละต้นเชื่อมโยงกับธุรกรรมที่เกี่ยวข้องกับพารามิเตอร์อินพุต/รหัสการดำเนินการ/วงจรลอจิกเกตทั้งหมด สิ่งนี้ค่อนข้างคล้ายกับ Proposer ของ Arbitrum ที่เผยแพร่ Rollup Blocks บน Ethereum blockchain
เมื่อมีข้อพิพาทเกิดขึ้น ผู้ท้าชิงจะประกาศบนบล็อคเชน BTC ว่ารูทใดที่พวกเขาต้องการท้าทาย จากนั้นขอให้ผู้เสนอเปิดเผยส่วนข้อมูลเฉพาะที่เกี่ยวข้องกับรูท ต่อจากนั้น ผู้เสนอนำเสนอ Merkle Proof โดยเปิดเผยส่วนเล็กๆ ของข้อมูลออนไลน์ของแผนผัง MAST อย่างต่อเนื่อง จนกว่าวงจรลอจิกเกตที่ถูกโต้แย้งจะตั้งอยู่ร่วมกับผู้ท้าชิง หลังจากนั้นก็สามารถดำเนินการ Slash ได้
โดยสรุป โครงการ BitVM เริ่มต้นโดยใช้สคริปต์ Bitcoin เพื่อแสดงวงจรลอจิกเกต จากนั้นใช้วงจรเหล่านี้เพื่อแสดง opcode ของ EVM/VM อื่นๆ ซึ่งจะแสดงขั้นตอนการประมวลผลของคำสั่งธุรกรรมที่กำหนด และสุดท้ายจัดระเบียบสิ่งเหล่านี้เป็น ต้นไม้ Merkle/ต้นไม้ MAST หากขั้นตอนการประมวลผลธุรกรรมที่แสดงโดยแผนผังดังกล่าวมีความซับซ้อนมาก ก็อาจเกิน 100 ล้านใบได้อย่างง่ายดาย ดังนั้นจึงจำเป็นอย่างยิ่งที่จะต้องลดพื้นที่บล็อกที่ถูกครอบครองโดยข้อผูกมัดและขอบเขตที่ได้รับผลกระทบจากการพิสูจน์การฉ้อโกง
แม้ว่าการพิสูจน์การฉ้อโกงในขั้นตอนเดียวต้องใช้ข้อมูลจำนวนน้อยมากและสคริปต์ลอจิกเกตแบบออนไลน์ แต่ Merkle Tree ที่สมบูรณ์จะต้องถูกเก็บไว้นอกเครือข่ายเป็นเวลานาน เพื่อให้สามารถเข้าถึงออนไลน์ได้ตลอดเวลา เวลาถ้าใครมาท้าทายมัน แต่ละธุรกรรมในเลเยอร์ 2 จะสร้าง Merkle Tree ขนาดใหญ่ และใครๆ ก็สามารถจินตนาการถึงแรงกดดันในการคำนวณและการจัดเก็บบนโหนดได้ คนส่วนใหญ่อาจไม่ต้องการเรียกใช้โหนด (อย่างไรก็ตาม ข้อมูลประวัติดังกล่าวสามารถถูกแบ่งออกได้ และเครือข่าย B^2 แนะนำการพิสูจน์พื้นที่เก็บข้อมูล zk โดยเฉพาะที่คล้ายกับ Filecoin เพื่อจูงใจโหนดการจัดเก็บข้อมูลเพื่อรักษาข้อมูลประวัติในระยะยาว)
อย่างไรก็ตาม Rollups ในแง่ดีที่อิงจากการพิสูจน์การฉ้อโกงไม่จำเป็นต้องมีโหนดมากเกินไป เนื่องจากโมเดลความน่าเชื่อถือของพวกเขาคือ 1/N ซึ่งหมายความว่าตราบใดที่หนึ่งในโหนด N นั้นซื่อสัตย์และสามารถเริ่มต้นการพิสูจน์การฉ้อโกงในช่วงเวลาที่สำคัญ เครือข่ายเลเยอร์ 2 มีความปลอดภัย
อย่างไรก็ตาม มีความท้าทายมากมายในการออกแบบโซลูชันเลเยอร์ 2 ที่ใช้ BitVM เช่น:
1) ตามทฤษฎีแล้ว ในการบีบอัดข้อมูลเพิ่มเติม ไม่จำเป็นต้องตรวจสอบ opcodes โดยตรงบนเลเยอร์ 1 ขั้นตอนการประมวลผลของ opcode สามารถบีบอัดเพิ่มเติมให้เป็น zk-proof ได้ ช่วยให้ผู้ท้าชิงท้าทายขั้นตอนการตรวจสอบความถูกต้องของ zk-proof สิ่งนี้สามารถลดปริมาณข้อมูลออนไลน์ได้อย่างมาก อย่างไรก็ตามรายละเอียดการพัฒนาเฉพาะอาจซับซ้อนมาก
2) ผู้เสนอและผู้ท้าทายจำเป็นต้องสร้างปฏิสัมพันธ์นอกเครือข่ายซ้ำๆ วิธีการออกแบบโปรโตคอล และวิธีเพิ่มประสิทธิภาพกระบวนการมุ่งมั่นและความท้าทายในขั้นตอนการประมวลผล จะต้องใช้ความพยายามทางปัญญาอย่างมาก