zkOracle และ zkCoprocessor

บทความอธิบายแนวคิดของ zkCorprocessor และ zkOracle โดดเด่นที่การแตกต่างระหว่างทั้งสอง และพิทักษ์ถึงสถานการณ์ที่แต่ละประเภทของ zk เหมาะสมสำหรับกรณีการใช้งานที่แตกต่างกัน

0. บทนำ

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

1. คำจำกัดความของ zkCoprocessor

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

  1. ZK: ในขณะที่นักวิชาการมักอ้างถึงคุณสมบัติเกี่ยวกับความเป็นส่วนตัวของ Zero Knowledge ในบริบทของบล็อกเชน ZK มักจะหมายถึงความกระชับและความถูกต้องของเทคโนโลยี โปรเจคท์ที่ถูกพัฒนาขึ้นบน ZK Rollup ก็เรียกตัวเองว่า zkSomething บ่อยครั้ง
  2. DA: จนถึงตอนนี้หลายคนยังไม่เข้าใจจริง ๆ ว่าการมีข้อมูล (Data Availability) ไม่ใช่การเก็บข้อมูล (Data Storage) ดังนั้นเพื่อแก้ปัญหาทางศัพท์นี้บางคนได้แนะนำ การแทนที่ DA ด้วย DP(การเผยแพร่ข้อมูล), หรือทำให้ความหมายของ DA เป็นการเผยแพร่ข้อมูล + การจัดเก็บข้อมูล (1, 2).

เราเห็นปรากฏการณ์ที่คล้ายกันในคำว่า zkCoprocessor ทุกคนใช้คำว่านี้ แต่ พวกเขาไม่จำเป็นต้องอ้างถึงสิ่งเดียวกัน.

เราต้องการแสดงว่าโครงการเองคิดอย่างไรเกี่ยวกับ zkCoprocessor, ชุมชนเข้าใจ zkCoprocessor อย่างไร และ zkCoprocessor หมายถึงอะไรและทำอะไรจริงๆ จากมุมมองของเรา

a) จากโปรเจคเองเอง

Definition 1 จาก Axiom: zkCoprocessor พิสูจน์ข้อมูลประวัติบนเชื่อมต่อ

แนวคิดของ zkCoprocessor ได้รับความนิยมจาก Axiom ซึ่งเริ่มต้นด้วยการคิดค้นมันเป็น zkAttestor จากความคิดของ Axiom zkCoprocessor แทนส่วนประกอบที่ "พิสูจน์ข้อมูลประวัติบนเชื่อมต่อและใช้ข้อมูลนั้นในสัญญาสมาร์ทโดยที่ไม่มีความเชื่อมั่น"

โปรดทราบว่าทีม Brevis กล่าวว่าชนิดของ zkCoprocessors เหล่านี้นั้นพื้นที่ API/DSL บนวงจร zk สายใต้มีอยู่ ดังนั้นนี้ไม่สามารถโปรแกรมได้

Definition 2 จาก RISC Zero: zkCoprocessor offloads การคำนวณจาก onchain ไปยัง offchain

RISC Zero ยังบ่งชี้ถึงตนเองในฐานะ zkCoprocessor บ่อย ๆ ด้วย จากมุมมองของพวกเขา พวกเขาเห็น zkCoprocessor ว่าเป็นแนวคิดที่กว้างกว่า "เครื่องมือสำหรับใช้ ZKPs เพื่อโอนการคำนวณจาก on-chain ไปยัง off-chain"

b) จากชุมชน

คำจำกัดความจาก Peteris (เหมือนกับ 1): zkCoprocessor สามารถเข้าถึงสถานะประวัติบนเชื่อมโยงได้

Peteris มาจาก Aera Financeเชื่อzkCoprocessor ทำหน้าที่เหมือนอย่างมากกับ Oracle ของสถานะ โดยฟังก์ชันหลักคือการเข้าถึงข้อมูลทางประวัติ ในเวลาเดียวกันเขาและ Rishabh จาก BananaHQเชื่อว่าคำจำกัดความของนิยาม 2 มีลักษณะเป็น zkVM มากกว่าการเป็นซับคลาสของ zkCoprocessor

คำจำกัดความจาก Messari, Modular Media, และ Kobi (เหมือนกับ 2): zkCoprocessor โอนการคำนวณจาก onchain ไปยัง offchain

Messari ยังมีความหมายของ zkCoprocessor ด้วย ซามิ นักวิจัยที่ Messari เชื่อว่า zkCoprocessor นั้นช่วยให้นักพัฒนาสัญญาอัจฉริยะสามารถลดภาระตรรกะที่ซับซ้อนได้อย่างง่ายดายโดยไม่ต้องมีสมมติฐานความน่าเชื่อถือใหม่ สื่อโมดูลาร์ด้วย ให้แนวคิดเดียวกัน. Kobi from Geometryเปรียบเทียบ rollup กับ coprocessor, Brevis เพิ่มว่า zkCoprocessorการเทรดออกจากค่าใช้จ่ายในการรักษาการเก็บรักษาสถานะถาวร ต่อการทำงานที่เร็วแรง, Taiko สร้างออกแบบขึ้นมาด้วยBooster Rollupที่สำรวจไอเดียของ Rollup Coprocessor อีกเพิ่มเติม นี่คือความหมายเดียวกับ RISC Zero

c) จากเรา

เพื่อสรุป เราสรุปว่ามีสองประเภทของ zkCoprocessor ในการปฏิบัติ และมันคือดังนี้

  1. Data Access zkCoprocessor: นำข้อมูลบางส่วน (บล็อกย้อนหลัง, สถานะย้อนหลัง) ไปยังที่ที่แน่นอน (สัญญาสมาร์ท)
  2. zkVM Compute zkCoprocessor: คำนวณโดย zkVM นอกเครือข่าย จากนั้นส่งผลลัพธ์กลับไปยัง onchainบีบอัด O(n) การคำนวณเป็นเพียง O(1) การตรวจสอบ.

2. นิยามของ zkOracle

a) Oracle

Hyper Oracle ให้คำอธิบายเกี่ยวกับ Oracle ใน กำหนด zkOracle สำหรับ Ethereum.

Oracle practically sums up the “infra” in any blockchain space, as คำจำกัดความที่ดีกว่าหน่วยประมวลผลร่วม.

หากข้อมูลเข้าสู่โครงสร้าง/ออราเคิลเป็นข้อมูลออฟเชน และผลลัพธ์เป็นออนเชน แล้วมันคือออราเคิลข้อมูลเข้า (เช่น Chainlink Price Feed) ในทางกลับกัน มันคือออราเคิลผลลัพธ์ (เช่น The Graph) หากออราเคิลผลลัพธ์มาก่อน จากนั้นเป็นออราเคิลข้อมูลเข้า แล้วมันเป็นออราเคิล I/O (เช่น Gelato Network)

สรุป oracle คือคล้ายกับคอนเซปต์ของ coprocessor แต่ในเวลาเดียวกันมีลักษณะการเข้าถึงข้อมูลและการคำนวณ

b) zkOracle

ยกตัวอย่าง Hyper Oracle ความสัมพันธ์ระหว่าง a คืออะไร zkOracleและ zkCoprocessor หรือ?

zkOracle ที่ถูกพูดถึงในการกำหนด zkOracle สำหรับ Ethereum นั้นจริงๆ มีความสามารถทั้งของ zkCoprocessors ด้วย

ตัวอย่างเช่น zkOracle เช่น Hyper Oracle:

  1. การเข้าถึงข้อมูลประวัติในลักษณะที่ไม่มีการเชื่อมั่น
  2. สามารถดำเนินการคำนวณได้ตามโปรแกรม

3. zkCoprocessor และ zkOracle

เมื่อเราเปรียบเทียบโดยตรงระหว่างสองประเภทของ zkCoprocessor กับ zkOracle เราจะเห็นว่า zkOracle มีคุณสมบัติทั้งหมดของ zkCoprocessor พร้อมๆ กัน:

  1. การประมวลผลแบบไม่ซ้อนของสมาร์ทคอนแทรค
  2. การทำงานร่วมกับและเสริมสร้างความสามารถของแอปพลิเคชันที่มีอยู่บน L1 หรือ L2
  3. การปลดล็อคการคำนวณในระบบทรัพยากรที่จำกัด

โดยการเปรียบเทียบโดยตรง zkOracle เป็นโซลูชันเชิงปลายทางที่สามารถให้นักพัฒนาด้วยเทคโนโลยีสแต็กที่สมบูรณ์กว่า

zkCoprocessors 2 โปรขยายออกไปในแนวดิเรกทรอลของตัวเอง เช่น zkCoprocessor การเข้าถึงข้อมูลปลดล็อกสถานการณ์ข้ามโซน และ zkVM Compute zkCoprocessor แทน zkVM-based zk rollup

4. สร้างด้วย zkCoprocessor หรือ zkOracle

เลือกตัวไหนเมื่อกำลังสร้าง?

เราสามารถตัดสินใจเกี่ยวกับการสร้างแอปพลิเคชันได้ตามลำดับขั้นตอน

a) DApp ด้วยสัญญาฉลาดเท่านั้น

เริ่มแรก การประยุกต์ใช้ Solidity อย่างบริสุทธิ์ในสมาร์ทคอนแทรคยังคงเป็นทางเลือกที่ดีมาก แม้ว่าสมาร์ทคอนแทรคที่บริสุทธิ์ไม่ได้ให้คุณสมบัติบางอย่างที่ดีที่สุด แต่ก็ยังเพียงพอในบางสถานการณ์. ในขณะเดียวกันความพร้อมใช้งานปัจจุบันของ Arbitrum Stylus ได้ปลดล็อกแอปพลิเคชันใหม่มากมายด้วยสัญญาฉลากฉลองเท่านั้น

b) DApp ที่ต้องการการเข้าถึงข้อมูลที่มีความเป็นรายละเอียดมากกว่า

ในหลายกรณี นักพัฒนาอาจต้องการใช้ Data Access zkCoprocessor หรือ zkOracle สําหรับสัญญาอัจฉริยะเพื่อเข้าถึงแหล่งข้อมูลที่สมบูรณ์ยิ่งขึ้น

ในสถานการณ์นี้ หากใช้ Data Access zkCoprocessor คนเดียว การคำนวณยังคงถูกจัดการในสมาร์ทคอนแทรค บทบาทของ zkCoprocessor คือการลดความซับซ้อนในการเข้าถึงข้อมูลในการทำเช่นเดียวกับเดิม แต่ไม่ได้ทำให้สมาร์ทคอนแทรคมีความสามารถทางคำนวณมากขึ้น

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

  1. การใช้ zkCoprocessor Axiom: การจัดการ LP ที่ดีขึ้น, การคืนเงิน MEVictim
  2. การใช้ zkOracle Hyper Oracle: Uniswap v2 Price, OpenSea Trade Activity, USDT Volume Monitor

c) DApp ที่ต้องการการคำนวณที่หนัก

บ่อยครั้งบางอัลกอริทึมที่ซับซ้อนไม่สามารถคำนวณได้โดยตรงบนเชน สำหรับเกม ตรรกะคอมพิวเตอร์ซับซ้อนมาก เช่น เอเธอร์เควค และ GameOfLife ที่ต้องใช้ $2k เพื่อดำเนินการขั้นตอนหนึ่ง หรืออัลกอริทึมซับซ้อนที่เกี่ยวข้องกับเอ็มแอล หรืออัลกอริทึมซับซ้อนที่เกี่ยวข้องกับเอ็มแอลที่เป็นไปไม่ได้ที่จะดำเนินการบนเชน ดังนั้นเราจำเป็นต้องใช้ zkVM zkCoprocessor หรือ zkOracle เพื่อดำเนินการคำนวณนอกเชน แล้วส่งมันเข้าสู่เชนเป็น ZKP

ในตัวอย่างนี้เราจะเห็นศักยภาพในการคํานวณที่ไม่ จํากัด ของพวกเขา:

  1. การใช้ zkCoprocessor Bonsai: Zeth (พิสูจน์ Reth ใน zkVM), zk-sentiment
  2. การใช้ zkOracle Hyper Oracle หรือ zkWASM: zkGo (พิสูจน์ L2-Geth ใน zkVM, ประเภท-0 zkEVM),zkAMM

d) Next-Gen DApp with Full Features (DeFi 3.0)

ในที่สุด เราได้พูดถึงแอปพลิเคชันที่สามารถสร้างขึ้นได้เพียงด้วย zkOracle เช่นการใช้แอปพลิเคชัน DeFi เป็นตัวอย่าง การสร้าง DeFi ที่สมบูรณ์เป็นเรื่องที่ซับซ้อนมาก รุ่นถัดไปของแอปพลิเคชัน DeFi หรือ DeFi 3.0DApps, จะต้อง:

  1. การเข้าถึงข้อมูลที่มีความเป็นระบบมากขึ้น
  2. คำนวณได้ไม่จำกัด
  3. Autonomous (for liquidation, parameter update, protocol governance)

เราได้พูดถึงว่า zkOracle แชร์ความสามารถของ zkCoprocessors ทั้งสอง ในขณะที่ทำความเข้าใจความต้องการฟังก์ชันอย่างแรกสองอย่าง zkOracle ทำฟีเจอร์อัตโนมัสได้อย่างไร และ zkCoprocessor ไม่ได้อย่างไร

  1. zkOracle: ไม่จําเป็นต้องมีการแทรกแซงจากมนุษย์ งานการเข้าถึงข้อมูลและการประมวลผลสามารถกําหนดและดําเนินการได้อย่างสมบูรณ์ด้วยวิธีที่ตั้งโปรแกรมได้และอัตโนมัติ การโทรแบบ onchain ทั้งหมดเป็นการโทรที่ไม่น่าเชื่อถือและถูกต้องเสมอ
  2. zkCoprocessor: ต้องการการตรวจสอบและกรองการตอบสนองของการคำนวณโดย relayer บนเชน หรือการเพิ่มกลไกที่ซับซ้อนเพิ่มเติม

ดังนั้นความขาดหากของอัตราการใน zkCoprocessor หมายถึง:

  1. ความไม่เพียงพอของการกระจายอำนาจ
  2. ความเสี่ยงจากกลไกที่อาจจะซับซ้อน
  3. ภาระทางจิตใจของนักพัฒนา

ดังนั้น, zkOracle เป็นตัวเลือกที่สมบูรณ์และเพียงพอสำหรับแอปพลิเคชันที่สมบูรณ์แบบเช่น DeFi

ควรทราบว่า ฮุคส์ ยังสามารถจัดการกับบางส่วนของคุณลักษณะที่ขาดหายของ zkCoprocessor ได้ แต่เฉพาะในสถานการณ์เช่น DeFi เท่านั้น และไม่ใช่ทั่วไป

ข้อปฏิเสธ:

  1. บทความนี้พิมพ์ซ้ําจาก [กระจก]. ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [SevenX Ventures]. หากมีข้อขัดแย้งใดๆ เกี่ยวกับการพิมพ์ฉบับนี้ โปรดติดต่อประตูเรียนรู้ทีม และพวกเขาจะจัดการกับมันโดยเร็ว
  2. คำปฏิเสธความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงของผู้เขียนเท่านั้น และไม่เป็นการให้คำแนะนำทางการลงทุนใดๆ
  3. การแปลบทความเป็นภาษาอื่น ๆ ถูกดำเนินการโดยทีม Gate Learn การคัดลอก การกระจาย หรือการลอกเลียนแบบบทความที่ถูกแปลถ้าไม่ได้กล่าวถึง จะถูกห้าม

zkOracle และ zkCoprocessor

กลาง1/7/2024, 1:23:40 PM
บทความอธิบายแนวคิดของ zkCorprocessor และ zkOracle โดดเด่นที่การแตกต่างระหว่างทั้งสอง และพิทักษ์ถึงสถานการณ์ที่แต่ละประเภทของ zk เหมาะสมสำหรับกรณีการใช้งานที่แตกต่างกัน

0. บทนำ

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

1. คำจำกัดความของ zkCoprocessor

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

  1. ZK: ในขณะที่นักวิชาการมักอ้างถึงคุณสมบัติเกี่ยวกับความเป็นส่วนตัวของ Zero Knowledge ในบริบทของบล็อกเชน ZK มักจะหมายถึงความกระชับและความถูกต้องของเทคโนโลยี โปรเจคท์ที่ถูกพัฒนาขึ้นบน ZK Rollup ก็เรียกตัวเองว่า zkSomething บ่อยครั้ง
  2. DA: จนถึงตอนนี้หลายคนยังไม่เข้าใจจริง ๆ ว่าการมีข้อมูล (Data Availability) ไม่ใช่การเก็บข้อมูล (Data Storage) ดังนั้นเพื่อแก้ปัญหาทางศัพท์นี้บางคนได้แนะนำ การแทนที่ DA ด้วย DP(การเผยแพร่ข้อมูล), หรือทำให้ความหมายของ DA เป็นการเผยแพร่ข้อมูล + การจัดเก็บข้อมูล (1, 2).

เราเห็นปรากฏการณ์ที่คล้ายกันในคำว่า zkCoprocessor ทุกคนใช้คำว่านี้ แต่ พวกเขาไม่จำเป็นต้องอ้างถึงสิ่งเดียวกัน.

เราต้องการแสดงว่าโครงการเองคิดอย่างไรเกี่ยวกับ zkCoprocessor, ชุมชนเข้าใจ zkCoprocessor อย่างไร และ zkCoprocessor หมายถึงอะไรและทำอะไรจริงๆ จากมุมมองของเรา

a) จากโปรเจคเองเอง

Definition 1 จาก Axiom: zkCoprocessor พิสูจน์ข้อมูลประวัติบนเชื่อมต่อ

แนวคิดของ zkCoprocessor ได้รับความนิยมจาก Axiom ซึ่งเริ่มต้นด้วยการคิดค้นมันเป็น zkAttestor จากความคิดของ Axiom zkCoprocessor แทนส่วนประกอบที่ "พิสูจน์ข้อมูลประวัติบนเชื่อมต่อและใช้ข้อมูลนั้นในสัญญาสมาร์ทโดยที่ไม่มีความเชื่อมั่น"

โปรดทราบว่าทีม Brevis กล่าวว่าชนิดของ zkCoprocessors เหล่านี้นั้นพื้นที่ API/DSL บนวงจร zk สายใต้มีอยู่ ดังนั้นนี้ไม่สามารถโปรแกรมได้

Definition 2 จาก RISC Zero: zkCoprocessor offloads การคำนวณจาก onchain ไปยัง offchain

RISC Zero ยังบ่งชี้ถึงตนเองในฐานะ zkCoprocessor บ่อย ๆ ด้วย จากมุมมองของพวกเขา พวกเขาเห็น zkCoprocessor ว่าเป็นแนวคิดที่กว้างกว่า "เครื่องมือสำหรับใช้ ZKPs เพื่อโอนการคำนวณจาก on-chain ไปยัง off-chain"

b) จากชุมชน

คำจำกัดความจาก Peteris (เหมือนกับ 1): zkCoprocessor สามารถเข้าถึงสถานะประวัติบนเชื่อมโยงได้

Peteris มาจาก Aera Financeเชื่อzkCoprocessor ทำหน้าที่เหมือนอย่างมากกับ Oracle ของสถานะ โดยฟังก์ชันหลักคือการเข้าถึงข้อมูลทางประวัติ ในเวลาเดียวกันเขาและ Rishabh จาก BananaHQเชื่อว่าคำจำกัดความของนิยาม 2 มีลักษณะเป็น zkVM มากกว่าการเป็นซับคลาสของ zkCoprocessor

คำจำกัดความจาก Messari, Modular Media, และ Kobi (เหมือนกับ 2): zkCoprocessor โอนการคำนวณจาก onchain ไปยัง offchain

Messari ยังมีความหมายของ zkCoprocessor ด้วย ซามิ นักวิจัยที่ Messari เชื่อว่า zkCoprocessor นั้นช่วยให้นักพัฒนาสัญญาอัจฉริยะสามารถลดภาระตรรกะที่ซับซ้อนได้อย่างง่ายดายโดยไม่ต้องมีสมมติฐานความน่าเชื่อถือใหม่ สื่อโมดูลาร์ด้วย ให้แนวคิดเดียวกัน. Kobi from Geometryเปรียบเทียบ rollup กับ coprocessor, Brevis เพิ่มว่า zkCoprocessorการเทรดออกจากค่าใช้จ่ายในการรักษาการเก็บรักษาสถานะถาวร ต่อการทำงานที่เร็วแรง, Taiko สร้างออกแบบขึ้นมาด้วยBooster Rollupที่สำรวจไอเดียของ Rollup Coprocessor อีกเพิ่มเติม นี่คือความหมายเดียวกับ RISC Zero

c) จากเรา

เพื่อสรุป เราสรุปว่ามีสองประเภทของ zkCoprocessor ในการปฏิบัติ และมันคือดังนี้

  1. Data Access zkCoprocessor: นำข้อมูลบางส่วน (บล็อกย้อนหลัง, สถานะย้อนหลัง) ไปยังที่ที่แน่นอน (สัญญาสมาร์ท)
  2. zkVM Compute zkCoprocessor: คำนวณโดย zkVM นอกเครือข่าย จากนั้นส่งผลลัพธ์กลับไปยัง onchainบีบอัด O(n) การคำนวณเป็นเพียง O(1) การตรวจสอบ.

2. นิยามของ zkOracle

a) Oracle

Hyper Oracle ให้คำอธิบายเกี่ยวกับ Oracle ใน กำหนด zkOracle สำหรับ Ethereum.

Oracle practically sums up the “infra” in any blockchain space, as คำจำกัดความที่ดีกว่าหน่วยประมวลผลร่วม.

หากข้อมูลเข้าสู่โครงสร้าง/ออราเคิลเป็นข้อมูลออฟเชน และผลลัพธ์เป็นออนเชน แล้วมันคือออราเคิลข้อมูลเข้า (เช่น Chainlink Price Feed) ในทางกลับกัน มันคือออราเคิลผลลัพธ์ (เช่น The Graph) หากออราเคิลผลลัพธ์มาก่อน จากนั้นเป็นออราเคิลข้อมูลเข้า แล้วมันเป็นออราเคิล I/O (เช่น Gelato Network)

สรุป oracle คือคล้ายกับคอนเซปต์ของ coprocessor แต่ในเวลาเดียวกันมีลักษณะการเข้าถึงข้อมูลและการคำนวณ

b) zkOracle

ยกตัวอย่าง Hyper Oracle ความสัมพันธ์ระหว่าง a คืออะไร zkOracleและ zkCoprocessor หรือ?

zkOracle ที่ถูกพูดถึงในการกำหนด zkOracle สำหรับ Ethereum นั้นจริงๆ มีความสามารถทั้งของ zkCoprocessors ด้วย

ตัวอย่างเช่น zkOracle เช่น Hyper Oracle:

  1. การเข้าถึงข้อมูลประวัติในลักษณะที่ไม่มีการเชื่อมั่น
  2. สามารถดำเนินการคำนวณได้ตามโปรแกรม

3. zkCoprocessor และ zkOracle

เมื่อเราเปรียบเทียบโดยตรงระหว่างสองประเภทของ zkCoprocessor กับ zkOracle เราจะเห็นว่า zkOracle มีคุณสมบัติทั้งหมดของ zkCoprocessor พร้อมๆ กัน:

  1. การประมวลผลแบบไม่ซ้อนของสมาร์ทคอนแทรค
  2. การทำงานร่วมกับและเสริมสร้างความสามารถของแอปพลิเคชันที่มีอยู่บน L1 หรือ L2
  3. การปลดล็อคการคำนวณในระบบทรัพยากรที่จำกัด

โดยการเปรียบเทียบโดยตรง zkOracle เป็นโซลูชันเชิงปลายทางที่สามารถให้นักพัฒนาด้วยเทคโนโลยีสแต็กที่สมบูรณ์กว่า

zkCoprocessors 2 โปรขยายออกไปในแนวดิเรกทรอลของตัวเอง เช่น zkCoprocessor การเข้าถึงข้อมูลปลดล็อกสถานการณ์ข้ามโซน และ zkVM Compute zkCoprocessor แทน zkVM-based zk rollup

4. สร้างด้วย zkCoprocessor หรือ zkOracle

เลือกตัวไหนเมื่อกำลังสร้าง?

เราสามารถตัดสินใจเกี่ยวกับการสร้างแอปพลิเคชันได้ตามลำดับขั้นตอน

a) DApp ด้วยสัญญาฉลาดเท่านั้น

เริ่มแรก การประยุกต์ใช้ Solidity อย่างบริสุทธิ์ในสมาร์ทคอนแทรคยังคงเป็นทางเลือกที่ดีมาก แม้ว่าสมาร์ทคอนแทรคที่บริสุทธิ์ไม่ได้ให้คุณสมบัติบางอย่างที่ดีที่สุด แต่ก็ยังเพียงพอในบางสถานการณ์. ในขณะเดียวกันความพร้อมใช้งานปัจจุบันของ Arbitrum Stylus ได้ปลดล็อกแอปพลิเคชันใหม่มากมายด้วยสัญญาฉลากฉลองเท่านั้น

b) DApp ที่ต้องการการเข้าถึงข้อมูลที่มีความเป็นรายละเอียดมากกว่า

ในหลายกรณี นักพัฒนาอาจต้องการใช้ Data Access zkCoprocessor หรือ zkOracle สําหรับสัญญาอัจฉริยะเพื่อเข้าถึงแหล่งข้อมูลที่สมบูรณ์ยิ่งขึ้น

ในสถานการณ์นี้ หากใช้ Data Access zkCoprocessor คนเดียว การคำนวณยังคงถูกจัดการในสมาร์ทคอนแทรค บทบาทของ zkCoprocessor คือการลดความซับซ้อนในการเข้าถึงข้อมูลในการทำเช่นเดียวกับเดิม แต่ไม่ได้ทำให้สมาร์ทคอนแทรคมีความสามารถทางคำนวณมากขึ้น

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

  1. การใช้ zkCoprocessor Axiom: การจัดการ LP ที่ดีขึ้น, การคืนเงิน MEVictim
  2. การใช้ zkOracle Hyper Oracle: Uniswap v2 Price, OpenSea Trade Activity, USDT Volume Monitor

c) DApp ที่ต้องการการคำนวณที่หนัก

บ่อยครั้งบางอัลกอริทึมที่ซับซ้อนไม่สามารถคำนวณได้โดยตรงบนเชน สำหรับเกม ตรรกะคอมพิวเตอร์ซับซ้อนมาก เช่น เอเธอร์เควค และ GameOfLife ที่ต้องใช้ $2k เพื่อดำเนินการขั้นตอนหนึ่ง หรืออัลกอริทึมซับซ้อนที่เกี่ยวข้องกับเอ็มแอล หรืออัลกอริทึมซับซ้อนที่เกี่ยวข้องกับเอ็มแอลที่เป็นไปไม่ได้ที่จะดำเนินการบนเชน ดังนั้นเราจำเป็นต้องใช้ zkVM zkCoprocessor หรือ zkOracle เพื่อดำเนินการคำนวณนอกเชน แล้วส่งมันเข้าสู่เชนเป็น ZKP

ในตัวอย่างนี้เราจะเห็นศักยภาพในการคํานวณที่ไม่ จํากัด ของพวกเขา:

  1. การใช้ zkCoprocessor Bonsai: Zeth (พิสูจน์ Reth ใน zkVM), zk-sentiment
  2. การใช้ zkOracle Hyper Oracle หรือ zkWASM: zkGo (พิสูจน์ L2-Geth ใน zkVM, ประเภท-0 zkEVM),zkAMM

d) Next-Gen DApp with Full Features (DeFi 3.0)

ในที่สุด เราได้พูดถึงแอปพลิเคชันที่สามารถสร้างขึ้นได้เพียงด้วย zkOracle เช่นการใช้แอปพลิเคชัน DeFi เป็นตัวอย่าง การสร้าง DeFi ที่สมบูรณ์เป็นเรื่องที่ซับซ้อนมาก รุ่นถัดไปของแอปพลิเคชัน DeFi หรือ DeFi 3.0DApps, จะต้อง:

  1. การเข้าถึงข้อมูลที่มีความเป็นระบบมากขึ้น
  2. คำนวณได้ไม่จำกัด
  3. Autonomous (for liquidation, parameter update, protocol governance)

เราได้พูดถึงว่า zkOracle แชร์ความสามารถของ zkCoprocessors ทั้งสอง ในขณะที่ทำความเข้าใจความต้องการฟังก์ชันอย่างแรกสองอย่าง zkOracle ทำฟีเจอร์อัตโนมัสได้อย่างไร และ zkCoprocessor ไม่ได้อย่างไร

  1. zkOracle: ไม่จําเป็นต้องมีการแทรกแซงจากมนุษย์ งานการเข้าถึงข้อมูลและการประมวลผลสามารถกําหนดและดําเนินการได้อย่างสมบูรณ์ด้วยวิธีที่ตั้งโปรแกรมได้และอัตโนมัติ การโทรแบบ onchain ทั้งหมดเป็นการโทรที่ไม่น่าเชื่อถือและถูกต้องเสมอ
  2. zkCoprocessor: ต้องการการตรวจสอบและกรองการตอบสนองของการคำนวณโดย relayer บนเชน หรือการเพิ่มกลไกที่ซับซ้อนเพิ่มเติม

ดังนั้นความขาดหากของอัตราการใน zkCoprocessor หมายถึง:

  1. ความไม่เพียงพอของการกระจายอำนาจ
  2. ความเสี่ยงจากกลไกที่อาจจะซับซ้อน
  3. ภาระทางจิตใจของนักพัฒนา

ดังนั้น, zkOracle เป็นตัวเลือกที่สมบูรณ์และเพียงพอสำหรับแอปพลิเคชันที่สมบูรณ์แบบเช่น DeFi

ควรทราบว่า ฮุคส์ ยังสามารถจัดการกับบางส่วนของคุณลักษณะที่ขาดหายของ zkCoprocessor ได้ แต่เฉพาะในสถานการณ์เช่น DeFi เท่านั้น และไม่ใช่ทั่วไป

ข้อปฏิเสธ:

  1. บทความนี้พิมพ์ซ้ําจาก [กระจก]. ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [SevenX Ventures]. หากมีข้อขัดแย้งใดๆ เกี่ยวกับการพิมพ์ฉบับนี้ โปรดติดต่อประตูเรียนรู้ทีม และพวกเขาจะจัดการกับมันโดยเร็ว
  2. คำปฏิเสธความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงของผู้เขียนเท่านั้น และไม่เป็นการให้คำแนะนำทางการลงทุนใดๆ
  3. การแปลบทความเป็นภาษาอื่น ๆ ถูกดำเนินการโดยทีม Gate Learn การคัดลอก การกระจาย หรือการลอกเลียนแบบบทความที่ถูกแปลถ้าไม่ได้กล่าวถึง จะถูกห้าม
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!