Truebit: การสร้างตลาดสำหรับคอมพิวเตอร์ที่ตรวจสอบได้
แอปพลิเคชั่นแบบกระจายอำนาจวาดภาพอนาคตที่สดใสให้กับเรา มีความโปร่งใสและป้องกันการงัดแงะ ทำงานไม่หยุด ปลดปล่อยสิ่งจูงใจ และแก้ปัญหาการประสานงานในระดับโลก
แต่ระหว่างทางก็มีอุปสรรค
ชื่อระดับแรก
ปัญหาหนัก: การกระจายอำนาจของคอมพิวเตอร์
โค้ดที่เขียนใน Solidity จะถูกคอมไพล์เป็น bytecode ใน EVM (Ethereum Virtual Machine) แล้วบรรจุลงในบล็อกเชน ตั้งแต่นั้นมา ธุรกรรมทุกรายการที่ส่งไปยังที่อยู่สัญญาซึ่งจัดเก็บรหัสไบต์จะทำให้รหัสทำงาน จะเห็นได้จากสิ่งนี้ว่ามีความซ้ำซ้อนในการออกแบบกลไกฉันทามติของบล็อกเชน: นักขุดทุกคนทำการคำนวณแบบเดียวกันและจากนั้นจึงบรรลุฉันทามติเกี่ยวกับผลลัพธ์
การคำนวณจะถูกกำหนดเป็นปริมาณ และต้นทุนจะถูกกำหนดโดยความซับซ้อนของการดำเนินการโค้ด แต่ละการดำเนินการในชุดคำสั่งของเครื่องเสมือน blockchain จะถูกทำเครื่องหมายด้วยราคา (เรียกว่า "Gas") และผู้ส่งธุรกรรมจะชำระเงินตามจำนวนเงินที่คำนวณทุกครั้งที่มีการดำเนินการคำสั่ง
ตรรกะทางธุรกิจที่ซับซ้อนจะทำให้ต้นทุนสูงเสมอ
ยิ่งไปกว่านั้น จำนวนการคำนวณทั้งหมดที่ดำเนินการบนเครือข่ายจะได้รับผลกระทบจากขีดจำกัดบนของก๊าซ ขีดจำกัดบนของแก๊สหมายถึงปริมาณแก๊สทั้งหมดที่สามารถถูกใช้โดยธุรกรรมทั้งหมดในบล็อก น่าเสียดายที่เราไม่สามารถเพิ่มขีดจำกัดก๊าซได้เนื่องจากปัญหาที่กลืนไม่เข้าคายไม่ออกของผู้ตรวจสอบ เมื่อนักขุดได้รับบล็อกที่สร้างขึ้นใหม่ พวกเขาจำเป็นต้องตรวจสอบว่าบล็อกนั้นถูกต้องก่อนที่จะเริ่มมองหาบล็อกถัดไป แต่การตรวจสอบดังกล่าวเป็นการลงแรงฟรี นักขุดที่แสวงหาผลกำไรอยู่ในภาวะที่กลืนไม่เข้าคายไม่ออก: ตรวจสอบบล็อกหรือข้ามไป และเมื่อขีดจำกัดของก๊าซในบล็อกเพิ่มขึ้น ผลกระทบของภาวะที่กลืนไม่เข้าคายไม่ออกนี้จะมากขึ้นด้วย
การคำนวณจึงมีราคาแพงและมีข้อจำกัด
Truebit มุ่งแก้ปัญหานี้
ชื่อระดับแรก
โซลูชัน: คอมพิวเตอร์นอกเครือข่ายที่ตรวจสอบได้
เมื่อ dApp (แอปพลิเคชันที่กระจายอำนาจ) ต้องการเรียกใช้การคำนวณที่มีราคาแพงหรือเกินขีดจำกัดบนของ Gas แทนที่จะเรียกใช้การคำนวณโดยตรงบน Ethereum จะเป็นการดีกว่าหากส่งต่อไปยังโปรโตคอล Truebit
สัญญาทรูบิต
API สำหรับการโต้ตอบกับโปรโตคอล Truebit นั้นเรียบง่ายมาก มันเป็นเพียงฟังก์ชันที่เรียกว่า createTask บน Truebit smart contract
กระบวนการเรียกฟังก์ชัน createTask โดย dApp จำเป็นต้องส่งเนื้อหาต่อไปนี้:
โปรแกรม: รหัสโปรแกรม Truebit ใช้เทคโนโลยีเครื่องเสมือน WebAssembly ดังนั้น dApp จึงสามารถส่งรหัสไบต์ของรหัสโปรแกรมไปยังเครื่องเสมือน WebAssembly ได้โดยตรง หรือส่งค่าแฮชของรหัสโปรแกรมบน IPFS หรือระบบระบุที่อยู่ตามเนื้อหาอื่นๆ
ค่าอินพุต: ค่าอินพุตสำหรับโปรแกรม dApp สามารถส่งอินพุตเหล่านี้โดยตรง หรือแฮชของอินพุตเหล่านั้นบนระบบที่ระบุที่อยู่เนื้อหา
คำอธิบายภาพ
dApp สร้างงาน Truebit
เพื่ออธิบายกระบวนการนี้เพิ่มเติม ลองดูตัวอย่างสองตัวอย่าง
Livepeer เป็นแพลตฟอร์มการประมวลผลแบบกระจายอำนาจ ซึ่งจำเป็นต้องตรวจสอบว่าตัวแปลงรหัสทำงานอย่างถูกต้องหรือไม่ ดังนั้นจึงเรียกฟังก์ชัน createTask โดยส่ง FFmpeg เป็นโปรแกรมและวิดีโอเป็นค่าอินพุตไปยังฟังก์ชัน
Aragon เป็นแพลตฟอร์มสำหรับองค์กรนิรนามที่ต้องการทำงานนับคะแนน การหมุนเวียนการลงคะแนนเสียงเป็นชุดใหญ่บนเครือข่ายนั้นมีค่าใช้จ่ายสูง และหากมีการนับการลงคะแนนมากเกินไป แก๊สแคปจะขัดขวางการทำงานนี้ ดังนั้น Aragon จึงเรียกฟังก์ชัน createTask ของ Truebit และส่งฟังก์ชันการนับคะแนนเป็นโปรแกรมและอาร์เรย์ของการโหวตเป็นค่าอินพุตไปยังฟังก์ชัน
ฟังก์ชันนี้จะสร้างงานใหม่ในสัญญา Truebit
เครือข่ายทรูบิต
Truebit เป็นตลาดสำหรับงานคอมพิวเตอร์
ทุกคนสามารถติดตั้งไคลเอนต์ Truebit เข้าร่วมเครือข่ายที่ไม่จำกัด และรับเงินจากการเรียกใช้งานคอมพิวเตอร์
คำอธิบายภาพ
นักขุด Truebit ตรวจสอบงานคอมพิวเตอร์
เมื่องานใหม่ถูกสร้างขึ้น นักขุด Truebit สามารถดาวน์โหลดโค้ด รันโปรแกรมในเครื่องเสมือน Truebit WebAssembly ภายในเครื่องโดยใช้อินพุตที่ผู้เผยแพร่งานให้มา แล้วส่งผลลัพธ์ไปยังสัญญาอัจฉริยะ
คำอธิบายภาพ
ตัวจัดการงานส่งผลลัพธ์
ชื่อเรื่องรอง
กรณีที่ 1 ไม่มีผู้ท้าชิง
คำอธิบายภาพ
ชื่อเรื่องรอง
กรณีที่สอง: มีผู้ท้าชิง
คำอธิบายภาพ
ผู้ตรวจสอบได้เริ่มการท้าทาย
ชื่อเรื่องรอง
ตรวจสอบเกม
คำอธิบายภาพ
โปรแกรม C อย่างง่าย (ซ้าย) และรูปแบบข้อความ WebAssembly ที่คอมไพล์แล้ว (ขวา)
ผู้ท้าชิงเริ่มเกมการตรวจสอบ
ทั้งตัวจัดการงานและผู้ท้าทายมีสถานะเริ่มต้นเป็น 0 ทั้งคู่เริ่มเครื่องเสมือนที่ว่างเปล่า รันอินพุตเดียวกันด้วยโปรแกรมเดียวกัน (ตามที่ระบุในคำอธิบายงานบนบล็อกเชน) เมื่อสถานะเป็น 0 แสดงว่าสอดคล้องกัน
คำอธิบายภาพ
คำอธิบายภาพ
คำอธิบายภาพ
ผู้ท้าชิงสอบถามสถานะของตัวจัดการงาน
คำอธิบายภาพ
ตัวจัดการงานและผู้ท้าทายเล่นเกมการตรวจสอบ
ตอนนี้เป็นตาของผู้ท้าชิงที่จะคำนวณ Merkle root ของสถานะของตนเองและเปรียบเทียบผลลัพธ์กับผลลัพธ์ของตัวจัดการงาน
หากทั้งสองเท่ากัน สามารถตัดสินได้ว่าตำแหน่งที่ต่างกันนั้นอยู่ในครึ่งหลังของชุดคำสั่งการคำนวณ หากทั้งคู่ไม่เท่ากัน ความแตกต่างจะเกิดขึ้นในช่วงครึ่งแรกของเซต
คำอธิบายภาพ
รูทสถานะของผู้ท้าชิงและตัวจัดการงานจะเท่ากันเมื่อสถานะคือ 7
คำอธิบายภาพ
ผู้ท้าชิงถามสถานะของจุดกึ่งกลางที่สองในชุด
ตัวจัดการงานตอบสนองตามนั้น
คำอธิบายภาพ
ผู้ท้าชิงสอบถามสถานะรูทของจุดกึ่งกลางที่สาม
เกมการตรวจสอบแบบโต้ตอบยังคงดำเนินต่อไป
คำอธิบายภาพ
อาร์กิวเมนต์: คำสั่งเมื่อเปลี่ยนจากสถานะ 12 เป็นสถานะ 13
คำอธิบายภาพ
ตัวแปล WebAssembly บนสายโซ่เรียกใช้คำสั่งที่ขัดแย้งกัน
หากรากของ Merkle ที่คำนวณได้ของสถานะแตกต่างจากรากของสถานะที่จัดเตรียมโดยตัวจัดการงาน เงินฝากของสถานะนั้นจะถูกริบ
แค่นั้นแหละสำหรับกระบวนการทั้งหมด!
เราย้ายการคำนวณทั้งหมดออกจากเครือข่ายและใช้ Ethereum ในการคำนวณขั้นตอนเดียวเพื่อป้องกันข้อโต้แย้ง
ชื่อระดับแรก
เศรษฐศาสตร์เข้ารหัส
สิ่งจูงใจของ Truebit ได้แก่ รางวัลงาน เงินฝาก กลไกความท้าทายระหว่างตัวจัดการงานและผู้ท้าทาย และการออกแบบทางเศรษฐกิจของตลาดคอมพิวเตอร์
เมื่อเร็ว ๆ นี้เราได้ประกาศแผนการอัปเกรดโทเค็น Truebit ต่อไปนี้เป็นสองโซลูชันที่อยู่ระหว่างการพิจารณา:
สิ่งจูงใจชั้นที่ 1: ข้อผิดพลาดบังคับ & เงินรางวัลสะสม
การศึกษาโปรโตคอลนี้อย่างรอบคอบ ผู้อ่านที่ชาญฉลาดบางคนอาจพบปัญหา
ตัวจัดการงานรู้ว่าการคำนวณของพวกเขาจะได้รับการตรวจสอบ และหากพวกเขาทำผิดพลาด เงินฝากของพวกเขาจะถูกริบ ดังนั้นพวกเขาจะไม่โกง ในระยะยาว เป็นเรื่องยากมากสำหรับผู้ตรวจสอบความถูกต้องในการค้นหาจุดบกพร่อง ไม่มีรายได้ และในที่สุดก็หายไปในตลาดคอมพิวเตอร์ หลังจากที่ตัวตรวจสอบหายไป ตัวจัดการงานจะเริ่มโกง จากนั้นตัวตรวจสอบจะปรากฏขึ้นอีกครั้งและตรวจจับข้อผิดพลาด
ระบบไม่อยู่ในสมดุลที่คงที่ แต่มีการพลิกขึ้นและลงอย่างต่อเนื่อง
เพื่อแก้ปัญหานี้ Truebit ได้เสนอแนวคิดเกี่ยวกับข้อผิดพลาดที่ถูกบังคับและแจ็คพอตในสมุดปกขาว โปรโตคอล Truebit จะบังคับให้ตัวจัดการงานแสดงผลลัพธ์การคำนวณที่ไม่ถูกต้องภายใต้ความน่าจะเป็นที่แน่นอน ผู้ตรวจสอบความถูกต้องที่พบข้อผิดพลาดดังกล่าวและประสบความสำเร็จในการท้าทายจะได้รับแจ็คพอตโดยอัตโนมัติ ลาภลอยนี้มาจากรางวัลของงานทั้งหมด ดังนั้นมันจึงมีจำนวนมาก ทำให้ผู้ตรวจสอบได้รับผลตอบแทนที่คาดหวังไว้มาก งานการยืนยันมีประโยชน์แม้ว่าตัวจัดการงานจะให้ผลลัพธ์การคำนวณที่ถูกต้องเสมอ
สิ่งจูงใจชั้นที่ 2: ตัวจัดการงานหลายตัวและความท้าทายในการตรวจสอบคู่
อีกทางเลือกหนึ่งมาจากกระบวนการดำเนินการเฉพาะ ตัวจัดการงานและผู้ตรวจสอบจะทำงานเหมือนกันเสมอ: พวกเขาดาวน์โหลดโปรแกรมเดียวกัน เรียกใช้ในเครื่อง และรับการคำนวณ ดังนั้น แทนที่จะระบุตัวจัดการงานหนึ่งคนและผู้ท้าทายหลายคนตามกฎการจับเวลา ทำไมไม่เปลี่ยนโปรโตคอลเพื่อให้ทุกคนส่งผลการคำนวณพร้อมกัน
สัญญาอัจฉริยะจะตรวจสอบว่าการคำนวณทั้งหมดสอดคล้องกัน หากเห็นด้วยก็ถือว่าถูกต้อง หากผลลัพธ์ไม่สอดคล้องกันและมีการสร้างผลลัพธ์การคำนวณหลายประเภท สัญญาอัจฉริยะจะจัดระเบียบตัวประมวลผลงานประเภทต่างๆ เพื่อทำการตรวจสอบคู่
โปรโตคอลที่ได้รับการปรับปรุงนี้สามารถรับประกันความตรงต่อเวลาได้ดีขึ้น เนื่องจากความท้าทายในการตรวจสอบเป็นแบบคู่ขนานกัน การปรับปรุงนี้ยังสามารถแทนที่ข้อผิดพลาดบังคับและแจ็คพอตได้อีกด้วย แต่ข้อเสียคือจะเพิ่มความซับซ้อนของจำนวนเงินที่ผู้ริเริ่มงานควรจ่ายและวิธีแจกจ่ายรางวัลให้กับตัวจัดการงานหลายคน
ชื่อระดับแรก
สถาปัตยกรรมโมดูลาร์
คำอธิบายภาพ
สถาปัตยกรรมโมดูลาร์ของ Trubit
เลเยอร์การคำนวณ: นั่นคือเครื่องเสมือน WebAssembly (หรือเครื่องสถานะจำกัด เช่นเดียวกับที่เราใช้ในการออกแบบบริดจ์การแปลง Doge-Ethereum โดยใช้การเข้ารหัสแบบโต้ตอบ) ซึ่งต้องใช้ทั้งการสร้างแบบออนเชนและออฟเชน
ตัวแปล WebAssembly ของ Truebit เป็นตัวกำหนดและปรับขนาดได้ สามารถสร้าง Merkle tree ของสถานะภายในได้
เลเยอร์การระงับข้อพิพาท: นี่คือเกมการยืนยันแบบโต้ตอบระหว่างสองฝ่าย รวมถึงเซสชันคำถามและคำตอบแบบโต้ตอบหลายรายการระหว่างตัวจัดการงานและผู้ตรวจสอบ
ชั้นแรงจูงใจ: ชั้นนี้ประกอบด้วยรางวัล เงินฝาก กลไกการท้าทายระหว่างตัวจัดการงานและผู้ท้าชิง และกลไกโทเค็น
บทส่งท้าย
บทส่งท้าย
ทิศทางด้านวิศวกรรมของเรามุ่งเน้นไปที่ชั้นการคำนวณและการระงับข้อพิพาท การวิจัยของเรามุ่งเน้นไปที่ชั้นสิ่งจูงใจและกลไกโทเค็น
เมื่อเร็ว ๆ นี้เราได้ประกาศโซลูชัน Truebit สำหรับการตรวจสอบความถูกต้องของ Scrypt ซึ่งใช้งานในสะพานการแปลง Doge-Ethereum
คุณสามารถดูวิดีโอสาธิตของเราได้ที่นี่ หรือดูโค้ดของเราบน Github
รองรับ WebAssembly VM ในรุ่นถัดไปของเรา
คอยติดตาม!
ลิงค์ต้นฉบับ: https://medium.com/truebit/truebit-the-marketplace-for-verifiable-computation-f51d1726798f
ผู้เขียน: Sina Habibian
นักแปลและพิสูจน์อักษร: Anzi Clint & Min Min


