B² Network技术实现:基于零知识证明验证承诺的比特币ZK-Rollup
ผู้เขียนต้นฉบับ: Stone, B² Network Research Lead
B² Network เป็นโซลูชันเลเยอร์ 2 บน Bitcoin โดยส่วนใหญ่จะใช้ข้อผูกพันในการตรวจสอบการพิสูจน์ความรู้เป็นศูนย์เพื่อส่งไปยังเครือข่าย Bitcoin ช่วยให้ผู้ท้าทายสามารถเริ่มต้นความท้าทายในการพิสูจน์การฉ้อโกงเพื่อให้บรรลุการใช้ฉันทามติที่แข็งแกร่งของเครือข่าย Bitcoin เพื่อรับรองความปลอดภัย ของเครือข่ายB² เป้าหมายของ
บทความนี้จะแนะนำกลไกการทำงานของ ZK-Rollup และ OP-Rollup บน Ethereum เป็นหลัก แนะนำวงจรเกต NAND อันมหัศจรรย์ แนะนำบทบาทของความมุ่งมั่น และใช้กลไกและแนวคิดเหล่านี้เพื่อออกแบบความมุ่งมั่นในการตรวจสอบพิสูจน์ความรู้เป็นศูนย์บนเครือข่าย B² และ จากนั้นจะอธิบายหลักฐาน Zero-Knowledge เพื่อตรวจสอบว่าข้อผูกพันได้รับการดำเนินการอย่างไรบนเครือข่าย Bitcoin และวิธีที่พวกเขามั่นใจในความปลอดภัยของเครือข่าย B²
ZK-Rollup บน Ethereum
ZK-Rollup เป็นโซลูชันการปรับขนาดสองชั้นสำหรับบล็อกเชนที่รับประกันความถูกต้องและความสมบูรณ์ของชุดธุรกรรมเหล่านี้โดยการรวบรวมธุรกรรมหลายรายการและใช้การพิสูจน์ความรู้แบบศูนย์บนเครือข่ายบล็อกเชนแบบชั้นเดียว การตรวจสอบการพิสูจน์ความรู้จึงใช้ขั้นตอนแรก เครือข่ายเลเยอร์เพื่อความปลอดภัยของเครือข่ายเลเยอร์ที่สอง ได้รับการออกแบบมาเพื่อเพิ่มปริมาณงานของระบบบล็อคเชนและลดค่าธรรมเนียมการทำธุรกรรมในขณะที่ยังคงรักษาระดับความปลอดภัยและความสมบูรณ์ของข้อมูลในระดับสูง
กระบวนการทำงานของ ZK-Rollup มีดังนี้:
การรวมและการเรียงลำดับธุรกรรม ผู้ใช้ส่งธุรกรรมไปที่ ZK-Rollup และธุรกรรมจะถูกส่งไปยัง mempool Sequencer ของ ZK-Rollup รับธุรกรรมผู้ใช้จาก mempool และรวบรวมและเรียงลำดับ Sequencer มีหน้าที่รับผิดชอบในการประมวลผลธุรกรรม อัปเดตสถานะบัญชี และสุดท้ายสร้างแบทช์ที่แสดงถึงการอัปเดตเหล่านี้
การเปลี่ยนสถานะและการคำนวณ การดำเนินการธุรกรรมและการอัปเดตสถานะทั้งหมดเกิดขึ้นนอกเครือข่าย VM ของ ZK-Rollup (รวมถึงกลไกการดำเนินการตามสัญญาอัจฉริยะแบบ Zero-Knowledge Proof เช่น zkEVM และ zkVM) จะคำนวณสถานะบัญชีใหม่และจัดการการดำเนินการ เช่น การโอนและการโต้ตอบกับสัญญาอัจฉริยะ ในเวลาเดียวกัน ข้อมูลและหลักฐานที่จำเป็นจะถูกสร้างขึ้นเพื่อพิสูจน์ว่าธุรกรรมและการอัปเดตสถานะเหล่านี้ถูกต้อง รวมถึงสถานะบัญชีใหม่และการพิสูจน์ความรู้เป็นศูนย์
การสร้างหลักฐานความรู้เป็นศูนย์ Prover ของ ZK-Rollup ใช้เทคโนโลยีพิสูจน์ความรู้เป็นศูนย์ (เช่น zk-SNARKs หรือ zk-STARKs) เพื่อสร้างข้อพิสูจน์ว่าธุรกรรมที่รวบรวมทั้งหมดนั้นถูกต้องและไม่ละเมิดกฎของเครือข่าย หลักฐานนี้ไม่ได้เปิดเผยข้อมูลใดๆ เกี่ยวกับเนื้อหาธุรกรรม ปกป้องความเป็นส่วนตัวของผู้ใช้ ในขณะเดียวกันก็รับประกันความสมบูรณ์และความปลอดภัยของข้อมูล
การตรวจสอบหลักฐานที่ไม่มีความรู้ ผู้รวบรวมส่งข้อมูลจำนวนมากและการพิสูจน์ความรู้แบบศูนย์ไปยังเครือข่ายบล็อกเชนแบบชั้นเดียว ซึ่งมักจะเกิดขึ้นในรูปแบบของการบีบอัดเพื่อลดพื้นที่บนเชนที่ต้องการ สัญญาอัจฉริยะบนเลเยอร์ของเครือข่ายบล็อกเชนจะได้รับข้อมูลและข้อพิสูจน์เหล่านี้ และตรวจสอบความถูกต้องของข้อพิสูจน์ หากพิสูจน์แล้วว่าถูกต้อง สัญญาจะอัปเดตสถานะของเลเยอร์ ZK-Rollup ที่บันทึกไว้
หัวใจสำคัญของ ZK-Rollup อยู่ที่การสร้างและการตรวจสอบการพิสูจน์ความรู้ที่ไม่มีความรู้ ธุรกรรมของ ZK-Rollup ดำเนินการแบบ off-chain และสถานะจะถูกสร้างขึ้นแบบ off-chain การพิสูจน์ความรู้เป็นศูนย์ถูกสร้างขึ้นผ่าน Prover ซึ่งเป็นความมุ่งมั่นของ ZK-Rollup ความมุ่งมั่นนี้แสดงให้เห็นว่าธุรกรรมบน ZK-Rollup ได้รับการดำเนินการอย่างถูกต้องและมีประสิทธิภาพ โดยสร้างสถานะที่ถูกต้อง เครือข่ายบล็อกเชนชั้นเดียวไม่จำเป็นต้องตรวจสอบธุรกรรมและสถานะทั้งหมดของ ZK-Rollup เพียงต้องการตรวจสอบข้อผูกพันเท่านั้น การตรวจสอบข้อผูกพันคือการดำเนินการตรวจสอบการพิสูจน์ความรู้เป็นศูนย์ผ่านสัญญาอัจฉริยะของชั้นเดียว เครือข่ายเพื่อยืนยันความถูกต้องของ ZK-Rollup
ดังนั้น ใน ZK-Rollup ของ Ethereum ข้อมูลการพิสูจน์ความรู้เป็นศูนย์จึงเป็นข้อผูกพันที่เครือข่ายชั้นสองส่งไปยังเครือข่ายชั้นที่หนึ่ง
OP-Rollup บน Ethereum
Optimistic Rollup (OP-Rollup) เป็นเทคโนโลยีที่ออกแบบมาเพื่อขยายประสิทธิภาพของบล็อกเชนโดยเก็บข้อมูลออนไลน์ให้น้อยที่สุด และทำการคำนวณนอกเครือข่ายให้ได้มากที่สุดเท่าที่จะเป็นไปได้ OP-Rollup ใช้ประโยชน์จากสมมติฐาน ในแง่ดี ที่ว่าธุรกรรมส่วนใหญ่มีความซื่อสัตย์ แทนที่จะตรวจสอบความถูกต้องของแต่ละธุรกรรมทันที สามารถตรวจสอบได้หลังจากช่วงระยะเวลาหนึ่ง ซึ่งช่วยปรับปรุงปริมาณงานและประสิทธิภาพได้อย่างมาก
กระบวนการทำงานของ OP-Rollup มีดังนี้:
การรวมและการเรียงลำดับธุรกรรม ผู้ใช้ส่งธุรกรรมไปยัง OP-Rollup และธุรกรรมจะถูกส่งไปยัง mempool Sequencer ของ OP-Rollup รับธุรกรรมของผู้ใช้จาก mempool และรวบรวมและเรียงลำดับ Sequencer มีหน้าที่รับผิดชอบในการประมวลผลธุรกรรม อัปเดตสถานะบัญชี และสุดท้ายสร้างแบทช์ที่แสดงถึงการอัปเดตเหล่านี้
การดำเนินการธุรกรรม ธุรกรรม OP-Rollup ดำเนินการนอกเครือข่าย การดำเนินการของธุรกรรมแต่ละชุดจะทำให้สถานะเก่าเปลี่ยนเป็นสถานะใหม่ แต่ละชุดจะคำนวณรูทสถานะใหม่ (สแน็ปช็อต ที่เข้ารหัสซึ่งแสดงถึงสถานะระบบทั้งหมด) และ ส่งไปยังเลเยอร์ของเครือข่ายบล็อคเชน
การตรวจสอบสถานะ OP-Rollup ไม่ได้ทำการตรวจสอบที่ซับซ้อนทันทีเมื่อส่งชุดธุรกรรม แต่ ในแง่ดี จะถือว่าธุรกรรมเหล่านี้ถูกต้อง จากนั้นจึงส่งเลเยอร์ของเครือข่ายบล็อกเชน หากผู้สังเกตการณ์เชื่อว่าแบตช์ไม่ถูกต้อง พวกเขาสามารถโต้แย้งแบตช์นั้นได้โดยการส่งหลักฐานการฉ้อโกง ในโซลูชัน Optimistic Rollup การพิสูจน์การฉ้อโกงเป็นกลไกที่ช่วยให้ผู้สังเกตการณ์สามารถท้าทายสถานะหรือธุรกรรมที่ส่งไปยังห่วงโซ่อย่างไม่ถูกต้องหรือเป็นอันตราย Optimistic Rollup ใช้หลักฐานการฉ้อโกงเพื่อให้แน่ใจว่าแม้แต่ธุรกรรมที่ได้รับการยอมรับ ในแง่ดี ก็สามารถพิสูจน์ได้ว่าผิดหลังจากข้อเท็จจริงและย้อนกลับตามนั้น
กลไกการท้าทาย ช่วงเวลาท้าทายคือ OP-Rollup หลังจากยืนยันสถานะการส่งแล้ว จะมีช่วงกรอบเวลาท้าทายซึ่งทุกคนสามารถตรวจสอบแบทช์ที่ส่งมาและส่งหลักฐานการฉ้อโกงหากพบข้อผิดพลาด โดยปกติจะเป็นการส่งธุรกรรมไปยังเลเยอร์ ของเครือข่าย blockchain เพื่อนำไปใช้ ธุรกรรมจะประกาศสิ่งที่พวกเขาเชื่อว่าเป็นข้อผิดพลาดและให้หลักฐานที่เกี่ยวข้อง Arbitrum Rollup (โซลูชันสำหรับ Rollup ในแง่ดี) ใช้กระบวนการที่เรียกว่า เกมการตรวจสอบเชิงโต้ตอบ เพื่อแก้ไขปัญหาที่ท้าทาย ในกระบวนการนี้ จะมีการแข่งขันกันหลายรอบระหว่างผู้ท้าชิงและผู้ยื่นคำร้อง โดยค่อยๆ ลดขอบเขตความขัดแย้งลงเกี่ยวกับสิ่งที่ผิดพลาด (โดยใช้วิธีค้นหาแบบไบนารี่เพื่อค้นหาตำแหน่งธุรกรรมที่ไม่ถูกต้องอย่างรวดเร็ว) ท้ายที่สุดแล้ว กระบวนการนี้จะกำหนดตำแหน่งที่แน่นอนที่เกิดข้อผิดพลาด เมื่อข้อผิดพลาดได้รับการยืนยัน ชุดเดิมจะถูกเพิกถอนและผู้ตรวจสอบความถูกต้องที่ทำให้เกิดข้อผิดพลาดจะถูกลงโทษ หากการท้าทายล้มเหลว ผู้ท้าชิงอาจสูญเสียเงินทุนที่พวกเขาเดิมพันไว้เพื่อเริ่มการท้าทาย หากการท้าทายสำเร็จ ผู้ท้าชิงจะได้รับรางวัลที่ได้รับจากการเปิดการท้าทายสำเร็จ
หัวใจสำคัญของ OP-Rollup อยู่ที่กลไกการพิสูจน์การฉ้อโกงและความท้าทาย OP-Rollup จะ มองโลกในแง่ดี ก่อนว่าธุรกรรมทั้งหมดจะดำเนินการอย่างถูกต้อง จากนั้นรวบรวมการคำนวณเป็นรหัสไบต์ของเครื่องเสมือน (AVM, OVM) ในสัญญาบนเลเยอร์แรกของเครือข่าย และปล่อยความมุ่งมั่นของรหัสไบต์ . การตรวจสอบข้อผูกมัดของ OP-Rollup จำเป็นต้องมีการคำนวณธุรกรรม การได้รับ bytecode และการตรวจสอบข้อผูกมัดแล้ว เมื่อผู้สังเกตการณ์ค้นพบกลุ่มที่มีข้อผูกพันที่ไม่ตรงกัน ผู้สังเกตการณ์จะสร้างหลักฐานการฉ้อโกงผ่านกลไกการท้าทายและรับรางวัล
OP-Rollup ของ Ethereum ยืนยันและส่งข้อผูกพัน ในแง่ดี ก่อน จากนั้นใช้กลไกการท้าทายเพื่อให้ใครก็ตามสามารถท้าทายข้อผูกพันที่ส่งมา และสุดท้ายทำให้มั่นใจได้ว่า OP-Rollup ได้รับการตรวจสอบและยืนยันผ่านความมุ่งมั่นและการท้าทาย
เกท NAND อันมหัศจรรย์
เกต NAND เป็นเกตลอจิกพื้นฐานในลอจิกดิจิทัล โดยจะใช้การดำเนินการ NOT (NOT) แบบลอจิคัลหลังจากการดำเนินการแบบลอจิคัล AND (AND) คุณสมบัติของเกต NAND ทำให้เกตนี้เป็นพื้นฐานสำหรับการสร้างลอจิกเกตอื่นๆ และวงจรลอจิกที่ซับซ้อนได้ ต่อไปนี้เป็นคำแนะนำโดยละเอียดเกี่ยวกับวิธีใช้เกต NAND เพื่อสร้างลอจิกเกต (เช่น เกต AND, OR เกต, เกต XOR) รวมถึงเกตบวกและเกตการลบ:
1. ข้อมูลเบื้องต้นเกี่ยวกับเกท NAND
เกท NAND มีอินพุตสองตัวและเอาต์พุตจะเป็น 0 ก็ต่อเมื่ออินพุตทั้งสองเป็น 1 เท่านั้น ในกรณีอื่น ๆ เอาต์พุตจะเป็น 1 ซึ่งสามารถแสดงได้ด้วยนิพจน์เชิงตรรกะเป็น A NAND B
2. สร้างลอจิกเกตพื้นฐาน
และประตู (และ)
การสร้างเกท AND โดยใช้เกท NAND:
ขั้นตอนที่ 1: เชื่อมต่ออินพุตทั้งสองเข้ากับเกท NAND
ขั้นตอนที่ 2: เชื่อมต่อเอาต์พุตของเกท NAND นี้เข้ากับอินพุตทั้งสองของเกท NAND อื่น
ผลลัพธ์: เอาต์พุตของเกท NAND ที่สองเป็นผลจากเกท AND
หรือประตู (OR)
การสร้างเกท OR โดยใช้เกท NAND:
ขั้นตอนที่ 1: ส่งแต่ละอินพุตผ่านเกต NAND (ตัวเองและตัวเอง) เพื่อสร้างเอฟเฟกต์ของเกต NOT สองเกต
ขั้นตอนที่ 2: ใช้เอาต์พุตของเกต NAND ทั้งสองนี้เป็นอินพุตของเกต NAND เดียว
ผลลัพธ์: เอาต์พุตของเกท NAND เป็นผลลัพธ์ของเกท OR
พิเศษหรือเกต (XOR)
หากต้องการสร้างเกต XOR โดยใช้เกต NAND (ซับซ้อนกว่าเล็กน้อย):
ขั้นตอนที่ 1: สร้างเกท NAND สองเกท โดยแต่ละอินพุตเชื่อมต่อกับเกทใดเกทหนึ่ง
ขั้นตอนที่ 2: ใช้เอาต์พุตของเกต NAND สองตัวในขั้นตอนแรกเป็นอินพุตของเกต NAND ที่สาม
ขั้นตอนที่ 3: เชื่อมต่ออินพุต A ดั้งเดิมและเอาต์พุตของเกท NAND แรกเข้ากับเกท NAND ที่สี่ และเชื่อมต่ออินพุต B ดั้งเดิมและเอาต์พุตของเกท NAND ที่สองเข้ากับเกท NAND ที่ห้า
ขั้นตอนที่ 4: สุดท้าย เชื่อมต่อเอาต์พุตของเกท NAND ที่สี่และห้าเข้ากับเกท NAND ที่หก
ผลลัพธ์: เอาต์พุตของเกท NAND ที่หกเป็นผลจากเกท XOR
3. สร้างประตูเพิ่มเติม
บวกครึ่ง
ตัวบวกครึ่งหนึ่งเป็นตัวบวกธรรมดาที่จัดการการบวกสองบิตและสร้างผลรวมและตัวดำเนินการ
ผลรวม: ใช้เกต XOR เพื่อสร้างผลรวม
พกพา: ใช้ประตู AND เพื่อสร้างพกพา
เกตพื้นฐานเหล่านี้สร้างขึ้นโดยใช้เกต NAND จากนั้นนำมารวมกันเป็นฮาล์ฟแอดเดอร์
แอดเดอร์เต็ม
ตัวบวกแบบเต็มคำนึงถึงอินพุตพกพาจากบิตล่าง
ขั้นตอนที่ 1: สร้างตัวบวกครึ่งตัวสองตัว ตัวแรกจับ A และ B ตัวที่สองจัดการผลรวมและนำอินพุต C ของตัวบวกครึ่งแรก
รวม: ผลรวมของบวกครึ่งหลัง
การพกพา: เอาต์พุตการพกพาของตัวบวกครึ่งสองตัวเชื่อมต่อกันผ่านเกท OR
สร้างตัวบวกครึ่งหนึ่งและเกต OR โดยใช้เกต NAND จากนั้นรวมเข้าด้วยกันเพื่อสร้างตัวบวกแบบเต็ม
4. สร้างประตูการลบ
ตัวลบครึ่งตัว
ตัวลบครึ่งหนึ่งจัดการการลบสองบิต
ความแตกต่าง: ใช้เกต XOR เพื่อสร้างความแตกต่าง
ยืม: ใช้เกท NAND และเกท NOT เพื่อสร้างการยืม
ใช้เกต NAND เพื่อสร้างเกต XOR และตรรกะที่จำเป็นอื่นๆ จากนั้นรวมเข้าด้วยกันเพื่อสร้างตัวลบครึ่งหนึ่ง
ตัวลบแบบเต็ม
ตัวลบเต็มจะคำนึงถึงการยืมจากบิตที่สูง
ขั้นตอนที่ 1: สร้างตัวลบครึ่งหนึ่งสองตัว ตัวแรกจับ A และ B และตัวที่สองจัดการความแตกต่างและยืมอินพุตของตัวลบครึ่งแรก
ความแตกต่าง: เอาต์พุตผลต่างของตัวลบครึ่งหลัง
การยืม: ผลลัพธ์การยืมของตัวลบครึ่งหนึ่งสองตัวเชื่อมต่อกันผ่านประตู OR
ใช้เกต NAND เพื่อสร้างตัวลบครึ่งและเกต OR จากนั้นรวมเข้าด้วยกันเพื่อสร้างตัวลบแบบเต็ม
5. สร้างประตูการคูณ
การคูณไบนารี
ใช้การคูณเลขฐานสองสองตัว
ขั้นตอนที่ 1: ใช้ AND gate สำหรับการคูณระดับบิต
ขั้นตอนที่ 2: ใช้ตัวบวกแบบเต็มในชุดเพื่อดำเนินการเพิ่มเติมอย่างต่อเนื่อง
ส่วนที่ 3: ดำเนินการขยับและการสะสม
6. สร้างทะเบียน
D ฟลิปฟล็อป
เก็บข้อมูลไบนารีหนึ่งบิต
ขั้นตอนที่ 1: สร้างสลักโดยใช้เกท NAND
ขั้นตอนที่ 2: ขยายสลักเป็นฟลิปฟล็อป (Flip-flop)
ลงทะเบียน
เก็บเลขฐานสองหลายหลัก
รองเท้าแตะ D หลายตัวเชื่อมต่อแบบขนาน แต่ละอันเก็บหนึ่งบิต
7. การสร้างนาฬิกา
ออสซิลเลเตอร์
ให้สัญญาณนาฬิกาเป็นระยะ
ใช้เกต NAND เพื่อสร้างลูปป้อนกลับที่สร้างการแกว่งอย่างต่อเนื่อง
สรุปแล้ว
เกต NAND เรียกว่า ประตูลอจิกสากล เนื่องจากความสามารถในการสร้างลอจิกเกตอื่นๆ และวงจรที่ซับซ้อน ด้วยวิธีการข้างต้น เกต NAND สามารถใช้สร้างวงจรการบวก ลบ การคูณ การจัดเก็บ และนาฬิกาที่ซับซ้อน ซึ่งเป็นพื้นฐานสำหรับการดำเนินการทางคณิตศาสตร์ในคอมพิวเตอร์และระบบดิจิทัล ในการออกแบบวงจรรวมสมัยใหม่ เกท NAND ถูกนำมาใช้กันอย่างแพร่หลายเนื่องจากความเรียบง่ายและความสามารถรอบด้าน
ในทางปฏิบัติของ B² Network ตรรกะการประมวลผลใดๆ สามารถสร้างได้ผ่านเกท NAND
สัญญาในการเข้ารหัส
ข้อผูกพันใช้กันอย่างแพร่หลายในวิทยาการเข้ารหัสลับและบล็อกเชน SHA 256, Merkle Tree และ KZG ในการพิสูจน์ความรู้เป็นศูนย์ล้วนเป็นข้อผูกพัน เช่นเดียวกับ ZK-Rollup ที่แนะนำข้างต้น การพิสูจน์ความรู้เป็นศูนย์ถูกใช้เป็นข้อผูกพันของ Rollup OP-Rollup ใช้รหัสไบต์ ในเครื่องเสมือนเป็นข้อผูกพันสำหรับ Rollup
เราใช้ Merkle Tree เพื่ออธิบายรายละเอียดวิธีใช้คำสัญญา:
ความมุ่งมั่น: Prover คำนวณแฮชสำหรับค่าทั้งหมด และแฮชจะถูกใช้เป็นโหนดใบของ binary tree การคำนวณแฮชจะดำเนินต่อไปในระดับสูงขึ้น และในที่สุด Merkle Tree จะถูกสร้างขึ้น และแฮชของรากต้นไม้จะถูกปล่อยเป็นความมุ่งมั่น
เปิดเผย: Prover เปิดเผยค่าที่สอดคล้องกับโหนดใบและสาขาของมัน
ตรวจสอบ: Verifier คำนวณแฮชผ่านค่าที่เปิดเผยและสาขา และสุดท้ายเปรียบเทียบกับความมุ่งมั่นที่เผยแพร่สำหรับการตรวจสอบ
ดังที่แสดงด้านล่าง:
ความมุ่งมั่น: Prover คำนวณแฮชของ tx 1, tx 2...tx 8 ตามลำดับ และรับ H(1), H(2)...H(8) และทำการคำนวณแฮชอย่างต่อเนื่องเป็นคู่เพื่อสร้างกราฟในที่สุด โครงสร้างไบนารีทรีใน Merkle Tree เผยแพร่ค่า H (12345678) ของโหนดรูทของ Merkle Tree เพื่อเป็นคำมั่นสัญญา
เปิดเผย: Prover เปิดเผยค่าที่สอดคล้องกับโหนดใบ เช่น tx 3 และสาขา (H( 4) -> H( 12) -> H( 5678))
ตรวจสอบ: Verifier คำนวณและตรวจสอบสัญญาโดยเปิดเผย tx 3 และสาขา (H( 4) -> H( 12) -> H( 5678) ):
คำนวณแฮช H(3) ของ tx 3
H(3) ถูกแฮชด้วย H(4) ในสาขาเพื่อรับ H(34)
H(34) ถูกแฮชด้วย H(12) ในสาขาเพื่อรับ H(1234)
H(1234) ถูกแฮชด้วย H(5678) ในสาขาเพื่อรับ H(12345678)
ตรวจสอบ H(12345678) กับสัญญาที่เผยแพร่

สัญญาการตรวจสอบหลักฐานความรู้เป็นศูนย์ของ B² Network
B² Network เป็นโซลูชันชั้นสองของ ZK-Rollup ที่สร้างขึ้นบนเครือข่าย Bitcoin
ข้อจำกัดของ ZK-Rollup บน Bitcoin
เนื่องจากข้อจำกัดความไม่สมบูรณ์ของทัวริงของ Bitcoin จึงไม่มีทางตรวจสอบการพิสูจน์ความรู้เป็นศูนย์บนเครือข่าย Bitcoin ได้ ดังนั้นวิธีแก้ปัญหาแบบดั้งเดิมของ ZK-Rollup คือการตรวจสอบการใช้งานการพิสูจน์ความรู้เป็นศูนย์บนเลเยอร์ของบล็อกเชน เครือข่าย เป็นไปไม่ได้ วิธีการนี้ถูกนำไปใช้กับเครือข่าย Bitcoin
ZK-Rollup เขียนเฉพาะการพิสูจน์ความรู้เป็นศูนย์และการรวมข้อมูล Rollup ลงในเครือข่าย Bitcoin ผ่าน Taproot เท่านั้น สิ่งนี้สามารถรับประกันได้ว่าข้อมูล ZK-Rollup ยึดอยู่ในเครือข่าย Bitcoin และไม่สามารถแก้ไขได้ แต่ไม่สามารถรับประกันความปลอดภัยของ ZK- ธุรกรรม Rollup ในแง่ของความถูกต้องและความถูกต้องไม่มีทางใช้ความสามารถที่เป็นเอกฉันท์ที่แข็งแกร่งของเครือข่าย Bitcoin เพื่อรับรองความปลอดภัยของ ZK-Rollup ชั้นที่สอง
ดังนั้นการยืนยัน ZK-Rollup จะต้องดำเนินการบนเครือข่าย Bitcoin
การพิสูจน์ความรู้แบบศูนย์และวงจรเลขคณิต
หลักฐานความรู้เป็นศูนย์
ในการพิสูจน์ความรู้เป็นศูนย์ วงจรเลขคณิตถูกใช้เพื่อสร้างการพิสูจน์โดยที่ผู้พิสูจน์รู้ข้อมูลลับบางอย่างโดยไม่เปิดเผยข้อมูลนั้นเอง
การพิสูจน์ความรู้แบบศูนย์ใช้วงจรทางคณิตศาสตร์เพื่อสร้างการพิสูจน์:
สร้างหลักฐาน
เมื่อสร้างวงจรเลขคณิตแล้ว ผู้พิสูจน์จะใช้อินพุตลับของตนเพื่อคำนวณเอาต์พุตของวงจร ในระหว่างกระบวนการนี้ ผู้พิสูจน์ยังสร้างข้อมูลเพิ่มเติม (เช่น ข้อผูกพันและตัวเลขสุ่มที่ไม่ซ้ำกันสำหรับการพิสูจน์ความรู้เป็นศูนย์) ซึ่งใช้ในการสร้างการพิสูจน์
ใบรับรองการตรวจสอบ
ผู้พิสูจน์จะส่งหลักฐานไปยังผู้ตรวจสอบ ผู้ตรวจสอบไม่ทราบข้อมูลลับของผู้พิสูจน์ แต่มีคำอธิบายเกี่ยวกับวงจรและข้อพิสูจน์ของผู้พิสูจน์ เครื่องตรวจสอบจะตรวจสอบความถูกต้องของการพิสูจน์โดยการคำนวณวงจรแบบเดียวกัน และเปรียบเทียบผลลัพธ์กับการพิสูจน์ที่ผู้พิสูจน์ให้มา
วงจรเลขคณิต
โดยทั่วไปวงจรเลขคณิตจะแสดงเป็นกราฟอะไซคลิกโดยตรง (DAG) โดยที่แต่ละโหนดแสดงถึงการดำเนินการทางคณิตศาสตร์ และขอบแสดงถึงการไหลของข้อมูลระหว่างการดำเนินการ โหนดอินพุตแสดงถึงค่าอินพุตของวงจร ซึ่งโดยปกติจะเป็นตัวเลขหรือตัวแปรบางตัว ในขณะที่โหนดภายในแสดงถึงการดำเนินการทางคณิตศาสตร์ ผลลัพธ์ของวงจรคือผลการคำนวณขั้นสุดท้าย
ประตูวงจรพื้นฐานในวงจรเลขคณิต:
ประตูบวก
ประตูคูณ
ตามการแนะนำของเกท NAND ข้างต้น วงจรเลขคณิตสามารถแปลงเป็นเกท NAND ได้โดยการแปลงเกทบวกเป็นเกท NAND แปลงเกทคูณเป็นเกท NAND และสุดท้ายก็แปลงวงจรเลขคณิตเป็นวงจรเกทลอจิกที่ใช้เกท NAND
การพิสูจน์ความรู้เป็นศูนย์จะยืนยันคำมั่นสัญญา
โปรแกรมการตรวจสอบของการพิสูจน์ความรู้เป็นศูนย์นั้นเป็นวงจรทางคณิตศาสตร์ ด้วยการแปลงวงจรทางคณิตศาสตร์เป็นลอจิกเกตที่ใช้เกต NAND โปรแกรมการตรวจสอบของการพิสูจน์ความรู้เป็นศูนย์จึงสามารถแปลงเป็นวงจรลอจิกเกตที่ใช้ NAND ได้จริง ประตู
เกต NAND ถูกนำมาใช้ผ่านสคริปต์ Bitcoin และความมุ่งมั่นด้านมูลค่าบิตจะถูกประกอบเป็นลอจิกเกตเป็นอินพุตและเอาท์พุตเพื่อใช้ข้อจำกัดลอจิกเกต
สามารถเรียกย่อว่า
ในความเป็นจริง เกต NAND สามารถใช้งานได้ผ่านสคริปต์ Bitcoin จากนั้นเกตบวกและเกตการคูณจะถูกสร้างขึ้นจากเกต NAND เกตการเพิ่มและเกตการคูณจะรวมกันเป็นวงจรเลขคณิต และสุดท้ายคือโปรแกรมการตรวจสอบสำหรับ มีการสร้างหลักฐานความรู้เป็นศูนย์ อย่างไรก็ตาม เนื่องจากมีวงจรเกตจำนวนมากที่เกี่ยวข้อง สคริปต์ Bitcoin ที่สร้างขึ้นจึงมีขนาดใหญ่มากและไม่สามารถทำงานบนเครือข่าย Bitcoin ได้จริง
ประกอบการคอมมิตค่าบิตเป็นอินพุตและเอาต์พุตในลอจิกเกต และแต่ละลอจิกเกตที่มีอินพุตและเอาต์พุตต่างกันเป็นโหนดปลายสุดเพื่อสร้างวงจรไบนารีทรี Circuit Taproot ที่ปล่อยออกมาคือรากของแผนผังไบนารีซึ่งจะลดขนาดของการปล่อย .
Circuit Taproot มุ่งมั่นที่จะเป็น B² Rollup บนเครือข่ายบล็อกเชนชั้นเดียว Bitcoin ต่างจาก ZK-Rollup แบบดั้งเดิมที่สามารถทำการตรวจสอบบนเลเยอร์ของเครือข่ายได้ B² Rollup ไม่สามารถทำการตรวจสอบโดยตรงบน Bitcoin ได้ อย่างไรก็ตาม คุณสามารถอ้างถึงวิธี Optimistic Rollup เพื่อจัดเตรียมกลไกการท้าทายสำหรับข้อผูกพัน และดำเนินการยืนยันข้อผูกพัน Circuit Taproot ให้เสร็จสิ้นผ่านกลไกการท้าทาย
โปรโตคอลการตรวจสอบและตอบกลับ
ต่างจาก BitVM ธุรกรรมนอกเครือข่ายระหว่างสองฝ่ายจำเป็นต้องลงนามล่วงหน้า B² Network ใช้ธุรกรรม UTXO เพื่อออกรางวัลที่ถูกล็อค และสคริปต์ปลดล็อคคือสคริปต์ Taproot
สคริปต์ Taproot การปลดล็อคเฉพาะคือ Prover สร้างสคริปต์สำหรับแต่ละสาขาของ Circuit Taproot Tree ล่วงหน้าและให้แฮชอินพุต Challenger ใช้ preimage เพื่อรันสคริปต์ หากเอาต์พุตที่ดำเนินการไม่สอดคล้องกับการส่งของ Prover ก็สามารถใช้ MAST (Taproot Merklized Abstract Syntax Tree) เพื่อปลดล็อก Taproot ทั้งหมดและรับโบนัสที่ถูกล็อค
เนื่องจากต้นทุนการดำเนินการของโปรแกรมการตรวจสอบความรู้แบบศูนย์นั้นมีขนาดเล็กและรวดเร็วมาก ผู้ใช้บนเครือข่าย Bitcoin จึงสามารถทำหน้าที่เป็นผู้สังเกตการณ์กลไกการท้าทาย ตรวจสอบข้อผูกพันที่ส่งโดย B² Rollup และสามารถเริ่มต้นการท้าทายได้ทันทีเมื่อข้อผูกพันนั้น พบว่าไม่สอดคล้องกัน
กลไกการท้าทายนั้นคล้ายคลึงกับ เกมการตรวจสอบเชิงโต้ตอบ ของ Arbitrum Rollup โดยมองหาการคำนวณลอจิกเกตที่ดำเนินการอย่างไม่ถูกต้องอยู่ตลอดเวลา เพื่อที่จะค้นหาอันที่ผิดจากลอจิกเกตหลายๆ ลอจิกเกต จะใช้วิธีการค้นหาแบบไบนารีเพื่อรันสคริปต์ Bitcoin ของวงจรเกต ผู้ท้าชิงที่ค้นหาสาขาผิดเร็วที่สุดจะได้รับรางวัลจากการปลดล็อค UTXO ที่ล็อครางวัลในเครือข่าย Bitcoin
ในเวลาเดียวกัน สาขาของสคริปต์การล็อค Taproot คือสคริปต์การล็อคเวลา เมื่อการท้าทายไม่สำเร็จ Prover จะปลดล็อค UTXO ผ่านสคริปต์การล็อคเวลาหลังจากระยะเวลาการท้าทายสิ้นสุดลงและรับรางวัล
สรุป
B² Network ใช้ Ordinals Protocol เพื่อรวบรวมข้อมูลและพิสูจน์หลักฐานและเขียนลงใน Tapscript และใช้โปรโตคอลการจัดเก็บข้อมูลแบบกระจายอำนาจที่แตกต่างกันเพื่อบันทึกข้อมูลโดยละเอียดของ Rollup ทำให้มั่นใจได้ถึงความพร้อมใช้งานของข้อมูล Rollup อย่างมีประสิทธิภาพ
ด้วยการบันทึกความมุ่งมั่นในการตรวจสอบหลักฐานที่ไม่มีความรู้บน Bitcoin และอนุญาตให้ผู้สังเกตการณ์ทุกคนท้าทายกลไกความมุ่งมั่น B² Network สามารถสืบทอดความปลอดภัยของ Bitcoin และข้อมูลการรวบรวมฉันทามติบน Bitcoin


