في هذا المنشور، سنلقي نظرة على مفاهيم zkCoprocessor و zkOracle التي أصبحت شائعة مؤخرًا ونقارن بين الفروقات بينهما.
عندما يُطلق مصطلح ما، لا يُحدد معناه الحقيقي بنفسه. لقد رأينا هذا كثيرًا في حالة تقنية البلوكشين.
نرى ظاهرة مماثلة في مصطلح zkCoprocessor. الجميع يستخدم هذا المصطلح، ولكن لا تشير بالضرورة إلى نفس الأشياء.
لذلك أردنا التعبير عما يعتقده المشروع نفسه حول zkCoprocessor، وما يفهمه المجتمع عن zkCoprocessor، وما تعنيه وتفعله zkCoprocessor حقًا من وجهة نظرنا.
التعريف 1 من بديهية: يثبت zkCoprocessor البيانات التاريخية على السلسلة.
تم تشهير مفهوم zkCoprocessor من قبل Axiom، التي ابتكرته أصلاً باسم zkAttestor. من فكرة Axiom، يمثل zkCoprocessor العنصر الذي "يثبت البيانات التاريخية على السلسلة ويستخدم تلك البيانات بدون ثقة في عقد ذكي".
لاحظ أن فريق بريفيس قال إن هذا النوع من zkCoprocessors هو في الأساس طبقة API/DSL أعلى من الدائرة zk الأساسية. لذا هذا ليس قابلا للبرمجة.
التعريف 2 من RISC Zero: يقوم zkCoprocessor بتفريغ الحسابات من السلسلة الرئيسية إلى السلسلة الفرعية.
يُشير RISC Zero في كثير من الأحيان إلى نفسه أيضًا باسم zkCoprocessor. من وجهة نظرهم، يرون zkCoprocessor كمفهوم أوسع، "أداة لاستخدام ZKPs لتحميل الحسابات من سلسلة الكتل إلى خارج السلسلة".
التعريف من بيتريس (نفس الشيء الأول): يمكن لـ zkCoprocessor الوصول إلى الحالة التاريخية على السلسلة.
بيتيريس من Aera Financeيعتقدأن zkCoprocessor يعمل بشكل كبير مثل معمل الحالة، مع وظيفته الرئيسية هي الوصول إلى البيانات التاريخية. في نفس الوقت، هو وريشاب من BananaHQيعتقد أن وصف التعريف 2 يشبه أكثر zkVM من فئة فرعية من zkCoprocessor.
التعريف من Messari، Modular Media، و Kobi (نفس الرقم 2): يقوم zkCoprocessor بتفريغ الحسابات من السلسلة الرئيسية إلى السلسلة الفرعية.
أعطت Messari أيضًا تعريفها الخاص لـ zkCoprocessor. Sami، باحث في Messari، يعتقدأن zkCoprocessor يتيح لمطوري العقود الذكية تفويض البنية المنطقية المعقدة بسهولة خارج السلسلة دون افتراضات ثقة جديدة. كما توفر Modular Media يعطي نفس الفكرة. Kobi من Geometryيقارن الرول اب مع معالج مساعد, أضاف بريفيس أن zkCoprocessorيتبادل تكلفة الحفاظ على تخزين حالة دائمة مقابل أداء معزز بشكل هائل, تايكو توصلت إلى تصميم Booster Rollupالتي استكشفت بشكل أعمق فكرة معالج مساعد للتجميع. هذه نفس التعريف كما هو الحال مع RISC Zero.
لتلخيص، نستنتج أن هناك نوعين من zkCoprocessor في الممارسة، وهما كما يلي:
هايبر أوراكل يوفر لنا شرحًا للأوراكل فيتحديد zkOracle لإيثيريوم.
تلخص Oracle عمليا "البنية التحتية" في أي مساحة blockchain ، مثل تعريف أفضل من كوبروسيسور.
إذا كانت البيانات المدخلة إلى البنية التحتية / الأوراق هي بيانات خارج السلسلة والإخراج على السلسلة، فإنها تعتبر أوراق مدخلة (على سبيل المثال: سلسلة الأسعار Chainlink). وعلى العكس، إذا كانت أوراق الإخراج أولاً، فإن الأوراق المدخلة، فإنها تعتبر أوراق إخراج (على سبيل المثال: The Graph). إذا كانت أوراق الإخراج أولاً، ثم الأوراق المدخلة، فإنها تعتبر أوراق إدخال / إخراج (على سبيل المثال: شبكة Gelato).
باختصار، الأوراكل مشابه جدًا لمفهوم المعالج المشترك، لكن في نفس الوقت لها خصائص الوصول إلى البيانات والحساب.
مأخوذًا بـ Hyper Oracle كمثال، ما هي العلاقة بينzkOracleومعالج zkCoprocessor؟
الzkOracle المُناقش في تحديد zkOracle لـ Ethereum لديه في الواقع قدرات كل من zkCoprocessors.
على سبيل المثال، zkOracle مثل Hyper Oracle:
عند مقارنة مباشرة بين نوعين من zkCoprocessor مع zkOracle، يمكننا أن نرى أن zkOracle لديه جميع ميزات zkCoprocessor في نفس الوقت:
مقارنة مباشرة، zkOracle هو حلاً أكثر احترافية يمكن أن يوفر للمطورين تراكم تكنولوجي كامل أكثر.
يوسع زيكوبروسيسوران في مجالاتهما الرأسية الخاصة، على سبيل المثال، يفتح زيكوبروسيسور الوصول إلى البيانات سيناريوهات السلسلة المتقاطعة، وزيكوبروسيسور الحوسبة زيكفم يمثل رول أب زيك مستند إلى زيكفم.
أي واحدة تختار عند البناء؟
في ترتيب خطوة بخطوة، يمكننا اتخاذ بعض القرارات بشأن بناء تطبيق.
أولاً، تنفيذ صلب للذكاء الاصطناعي للعقود الذكية لا يزال خيارًا جيدًا جدًا. على الرغم من أن العقود الذكية الصلبة لا توفر بعض أفضل الميزات الجديدة، إلا أنها لا تزال كافيةفي بعض السيناريوهات. أيضًا، فإن توافر Arbitrum Stylus الحالي قد فتح الكثير من التطبيقات الجديدة بشكل نقي من خلال العقود الذكية.
في كثير من الحالات، قد يرغب المطورون في استخدام Data Access zkCoprocessor أو zkOracle للعقود الذكية للوصول إلى مصادر بيانات أكثر ثراءً.
في هذscenario، إذا تم استخدام Data Access zkCoprocessor بمفرده، يتم معالجة الحسابات في العقد الذكي. دور zkCoprocessor هو تقليل تعقيد الحصول على البيانات بالطريقة التقليدية، ولكن ليس لجعل العقد الذكي أكثر قوة حسابية.
في هذ scenario ، نرى الكثير من المشاريع الصغيرة ذات الصلة بالبيانات ، بدلاً من DApps الكاملة بالمعنى التقليدي:
غالبًا ما لا يمكن حساب بعض الخوارزميات المعقدة مباشرة على السلسلة، ففي الألعاب، منطق الحسابات معقد للغاية، مثل etherquake وGameOfLife التي تكلف $2k لتشغيل خطوة واحدة. أو الخوارزميات المعقدة ذات الصلة بالتعلم الآلي. أو الخوارزميات المعقدة ذات الصلة بالتعلم الآلي التي من المستحيل تشغيلها على السلسلة. لذلك، نحتاج إلى zkVM zkCoprocessor أو zkOracle لتشغيل الحسابات على السلسلة الخارجية، ثم تقديمها إلى السلسلة ك ZKP.
في هذا المثال، يمكننا رؤية بعض إمكانياتهم الحسابية غير المحدودة:
أخيرًا ، تحدثنا عن التطبيقات التي يمكن بناؤها فقط باستخدام zkOracle. باعتبار تطبيق DeFi مثالًا ، فإن DeFi الكامل معقد جدًا. الجيل التالي من تطبيقات DeFi ، أو DeFi 3.0 تطبيقات اللامركزية, سيتطلب:
لقد ناقشنا بالفعل كيف يشارك zkOracle قدرات كل من zkCoprocessors، مع تحقيق المتطلبات الوظيفية الأولى الاثنين. كيف يحقق zkOracle الميزة الذاتية وكيف لا يفعل zkCoprocessor؟
إذن ما الذي يستلزمه غياب الحكم الذاتي في zkCoprocessor:
لذلك، zkOracle هو خيار مثالي وكافٍ لتطبيق كامل مثل DeFi.
من الجدير بالذكر أن الخطافات يمكنها أيضًا التعامل مع بعض من وظائف zkCoprocessor المفقودة، ولكن فقط في سيناريوهات مثل DeFi، وليس عالميًا.
في هذا المنشور، سنلقي نظرة على مفاهيم zkCoprocessor و zkOracle التي أصبحت شائعة مؤخرًا ونقارن بين الفروقات بينهما.
عندما يُطلق مصطلح ما، لا يُحدد معناه الحقيقي بنفسه. لقد رأينا هذا كثيرًا في حالة تقنية البلوكشين.
نرى ظاهرة مماثلة في مصطلح zkCoprocessor. الجميع يستخدم هذا المصطلح، ولكن لا تشير بالضرورة إلى نفس الأشياء.
لذلك أردنا التعبير عما يعتقده المشروع نفسه حول zkCoprocessor، وما يفهمه المجتمع عن zkCoprocessor، وما تعنيه وتفعله zkCoprocessor حقًا من وجهة نظرنا.
التعريف 1 من بديهية: يثبت zkCoprocessor البيانات التاريخية على السلسلة.
تم تشهير مفهوم zkCoprocessor من قبل Axiom، التي ابتكرته أصلاً باسم zkAttestor. من فكرة Axiom، يمثل zkCoprocessor العنصر الذي "يثبت البيانات التاريخية على السلسلة ويستخدم تلك البيانات بدون ثقة في عقد ذكي".
لاحظ أن فريق بريفيس قال إن هذا النوع من zkCoprocessors هو في الأساس طبقة API/DSL أعلى من الدائرة zk الأساسية. لذا هذا ليس قابلا للبرمجة.
التعريف 2 من RISC Zero: يقوم zkCoprocessor بتفريغ الحسابات من السلسلة الرئيسية إلى السلسلة الفرعية.
يُشير RISC Zero في كثير من الأحيان إلى نفسه أيضًا باسم zkCoprocessor. من وجهة نظرهم، يرون zkCoprocessor كمفهوم أوسع، "أداة لاستخدام ZKPs لتحميل الحسابات من سلسلة الكتل إلى خارج السلسلة".
التعريف من بيتريس (نفس الشيء الأول): يمكن لـ zkCoprocessor الوصول إلى الحالة التاريخية على السلسلة.
بيتيريس من Aera Financeيعتقدأن zkCoprocessor يعمل بشكل كبير مثل معمل الحالة، مع وظيفته الرئيسية هي الوصول إلى البيانات التاريخية. في نفس الوقت، هو وريشاب من BananaHQيعتقد أن وصف التعريف 2 يشبه أكثر zkVM من فئة فرعية من zkCoprocessor.
التعريف من Messari، Modular Media، و Kobi (نفس الرقم 2): يقوم zkCoprocessor بتفريغ الحسابات من السلسلة الرئيسية إلى السلسلة الفرعية.
أعطت Messari أيضًا تعريفها الخاص لـ zkCoprocessor. Sami، باحث في Messari، يعتقدأن zkCoprocessor يتيح لمطوري العقود الذكية تفويض البنية المنطقية المعقدة بسهولة خارج السلسلة دون افتراضات ثقة جديدة. كما توفر Modular Media يعطي نفس الفكرة. Kobi من Geometryيقارن الرول اب مع معالج مساعد, أضاف بريفيس أن zkCoprocessorيتبادل تكلفة الحفاظ على تخزين حالة دائمة مقابل أداء معزز بشكل هائل, تايكو توصلت إلى تصميم Booster Rollupالتي استكشفت بشكل أعمق فكرة معالج مساعد للتجميع. هذه نفس التعريف كما هو الحال مع RISC Zero.
لتلخيص، نستنتج أن هناك نوعين من zkCoprocessor في الممارسة، وهما كما يلي:
هايبر أوراكل يوفر لنا شرحًا للأوراكل فيتحديد zkOracle لإيثيريوم.
تلخص Oracle عمليا "البنية التحتية" في أي مساحة blockchain ، مثل تعريف أفضل من كوبروسيسور.
إذا كانت البيانات المدخلة إلى البنية التحتية / الأوراق هي بيانات خارج السلسلة والإخراج على السلسلة، فإنها تعتبر أوراق مدخلة (على سبيل المثال: سلسلة الأسعار Chainlink). وعلى العكس، إذا كانت أوراق الإخراج أولاً، فإن الأوراق المدخلة، فإنها تعتبر أوراق إخراج (على سبيل المثال: The Graph). إذا كانت أوراق الإخراج أولاً، ثم الأوراق المدخلة، فإنها تعتبر أوراق إدخال / إخراج (على سبيل المثال: شبكة Gelato).
باختصار، الأوراكل مشابه جدًا لمفهوم المعالج المشترك، لكن في نفس الوقت لها خصائص الوصول إلى البيانات والحساب.
مأخوذًا بـ Hyper Oracle كمثال، ما هي العلاقة بينzkOracleومعالج zkCoprocessor؟
الzkOracle المُناقش في تحديد zkOracle لـ Ethereum لديه في الواقع قدرات كل من zkCoprocessors.
على سبيل المثال، zkOracle مثل Hyper Oracle:
عند مقارنة مباشرة بين نوعين من zkCoprocessor مع zkOracle، يمكننا أن نرى أن zkOracle لديه جميع ميزات zkCoprocessor في نفس الوقت:
مقارنة مباشرة، zkOracle هو حلاً أكثر احترافية يمكن أن يوفر للمطورين تراكم تكنولوجي كامل أكثر.
يوسع زيكوبروسيسوران في مجالاتهما الرأسية الخاصة، على سبيل المثال، يفتح زيكوبروسيسور الوصول إلى البيانات سيناريوهات السلسلة المتقاطعة، وزيكوبروسيسور الحوسبة زيكفم يمثل رول أب زيك مستند إلى زيكفم.
أي واحدة تختار عند البناء؟
في ترتيب خطوة بخطوة، يمكننا اتخاذ بعض القرارات بشأن بناء تطبيق.
أولاً، تنفيذ صلب للذكاء الاصطناعي للعقود الذكية لا يزال خيارًا جيدًا جدًا. على الرغم من أن العقود الذكية الصلبة لا توفر بعض أفضل الميزات الجديدة، إلا أنها لا تزال كافيةفي بعض السيناريوهات. أيضًا، فإن توافر Arbitrum Stylus الحالي قد فتح الكثير من التطبيقات الجديدة بشكل نقي من خلال العقود الذكية.
في كثير من الحالات، قد يرغب المطورون في استخدام Data Access zkCoprocessor أو zkOracle للعقود الذكية للوصول إلى مصادر بيانات أكثر ثراءً.
في هذscenario، إذا تم استخدام Data Access zkCoprocessor بمفرده، يتم معالجة الحسابات في العقد الذكي. دور zkCoprocessor هو تقليل تعقيد الحصول على البيانات بالطريقة التقليدية، ولكن ليس لجعل العقد الذكي أكثر قوة حسابية.
في هذ scenario ، نرى الكثير من المشاريع الصغيرة ذات الصلة بالبيانات ، بدلاً من DApps الكاملة بالمعنى التقليدي:
غالبًا ما لا يمكن حساب بعض الخوارزميات المعقدة مباشرة على السلسلة، ففي الألعاب، منطق الحسابات معقد للغاية، مثل etherquake وGameOfLife التي تكلف $2k لتشغيل خطوة واحدة. أو الخوارزميات المعقدة ذات الصلة بالتعلم الآلي. أو الخوارزميات المعقدة ذات الصلة بالتعلم الآلي التي من المستحيل تشغيلها على السلسلة. لذلك، نحتاج إلى zkVM zkCoprocessor أو zkOracle لتشغيل الحسابات على السلسلة الخارجية، ثم تقديمها إلى السلسلة ك ZKP.
في هذا المثال، يمكننا رؤية بعض إمكانياتهم الحسابية غير المحدودة:
أخيرًا ، تحدثنا عن التطبيقات التي يمكن بناؤها فقط باستخدام zkOracle. باعتبار تطبيق DeFi مثالًا ، فإن DeFi الكامل معقد جدًا. الجيل التالي من تطبيقات DeFi ، أو DeFi 3.0 تطبيقات اللامركزية, سيتطلب:
لقد ناقشنا بالفعل كيف يشارك zkOracle قدرات كل من zkCoprocessors، مع تحقيق المتطلبات الوظيفية الأولى الاثنين. كيف يحقق zkOracle الميزة الذاتية وكيف لا يفعل zkCoprocessor؟
إذن ما الذي يستلزمه غياب الحكم الذاتي في zkCoprocessor:
لذلك، zkOracle هو خيار مثالي وكافٍ لتطبيق كامل مثل DeFi.
من الجدير بالذكر أن الخطافات يمكنها أيضًا التعامل مع بعض من وظائف zkCoprocessor المفقودة، ولكن فقط في سيناريوهات مثل DeFi، وليس عالميًا.