zkOracle et zkCoprocessor

Intermédiaire1/7/2024, 1:23:40 PM
L'article explique les concepts de zkCorprocessor et zkOracle, mettant en avant les différences entre les deux et développant les scénarios dans lesquels chaque type de zk est adapté à des cas d'utilisation différents.

0. Introduction

Dans ce post, nous examinerons les concepts récemment populaires de zkCoprocessor et zkOracle et comparerons leurs différences.

1. Définition de zkCoprocessor

Quand un terme est inventé, sa véritable signification n'est pas définie par lui-même. Nous avons beaucoup vu cela dans le cas de la blockchain.

  1. ZK: Alors que les universitaires font souvent référence aux fonctionnalités de confidentialité de Zero Knowledge, dans le contexte de la blockchain, ZK désigne souvent simplement la concision et la validité de la technologie. Même les projets construits sur ZK Rollup se nomment zkSomething.
  2. DA : Jusqu’à présent, beaucoup de gens ne savaient pas vraiment que la disponibilité des données n’est pas le stockage des données, donc pour résoudre ce problème de terminologie, certaines personnes ont suggéré remplacer DA par DP (Publication de données), ou en transformant toute la signification de DA en Publication de données + Stockage de données (1, 2).

Nous observons un phénomène similaire dans le terme zkCoprocessor. Tout le monde utilise le terme, mais ils ne font pas nécessairement référence aux mêmes choses.

Nous voulions donc exprimer ce que le projet lui-même pense de zkCoprocessor, ce que la communauté comprend de zkCoprocessor, et ce que zkCoprocessor signifie vraiment et fait de notre point de vue.

a) De Projet Eux-mêmes

Définition 1 de l'Axiom : zkCoprocessor prouve les données historiques onchain.

Le concept du zkCoprocessor a été popularisé par Axiom, qui l'a initialement conçu comme un zkAttestor. À partir de l'idée d'Axiom, le zkCoprocessor représente le composant qui "prouve les données historiques on-chain et les utilise de manière fiable dans un contrat intelligent".

Notez que l'équipe Brevis a déclaré que ce type de zkCoprocessors est essentiellement une couche API/DSL au-dessus du circuit zk sous-jacent. Donc ce n'est pas programmable.

Définition 2 de RISC Zero: zkCoprocessor décharge le calcul de la chaîne vers la hors chaîne.

RISC Zero se réfère également souvent à lui-même comme un zkCoprocessor. De leur point de vue, ils voient zkCoprocessor comme un concept plus large, "un outil pour utiliser les ZKPs afin de décharger le calcul de la chaîne vers hors de la chaîne".

b) De la communauté

Définition de Peteris (identique à 1) : zkCoprocessor peut accéder à l'état historique onchain.

Peteris est de Aera Financecroitque zkCoprocessor agit très semblablement à un oracle d'état, avec pour fonction principale l'accès aux données historiques. En même temps, lui et Rishabh de BananaHQcroit que la description de la définition 2 ressemble plus à un zkVM qu'à une sous-classe de zkCoprocessor.

Définition de Messari, Modular Media et Kobi (identique à 2) : zkCoprocessor décharge le calcul de la chaîne vers hors de la chaîne.

Messari a également donné sa propre définition de zkCoprocessor. Sami, un chercheur chez Messari, croitce zkCoprocessor permet aux développeurs de smart contract de décharger facilement la logique complexe hors chaîne sans de nouvelles hypothèses de confiance. Modular Media aussidonne le même concept. Kobi de Geometrycompare Rollup avec un coprocesseur, Brevis a ajouté que zkCoprocessornégocie le coût de maintien d'un stockage d'état permanent contre des performances hyper-boostées, Taiko a ​​conçu le design deBooster Rollupqui a poussé plus loin l'idée de Rollup Coprocessor. Il s'agit de la même définition que RISC Zero.

c) De notre part

Pour résumer, nous concluons qu'il existe deux types de zkCoprocessor en pratique, et ils sont les suivants:

  1. Accès aux données zkCoprocessor : alimente principalement certaines données (bloc historique, état historique) à un endroit précis (contrat intelligent).
  2. Calculateur zkCoprocessor zkVM : calcule par le zkVM hors chaîne, puis renvoie le résultat à la chaîne.Compresse un calcul en O(n) en une simple vérification en O(1).

2. Définition de zkOracle

a) Oracle

Hyper Oracle nous fournit une explication d'Oracle dans Définition de zkOracle pour Ethereum.

Oracle résume pratiquement l'"infra" dans tout espace blockchain, comme une meilleure définition qu'un coprocesseur.

Si l'entrée de l'infra/oracle est des données hors chaîne et que la sortie est en chaîne, alors il s'agit d'un oracle d'entrée (par exemple, Chainlink Price Feed). En revanche, il s'agit d'un oracle de sortie (par exemple, The Graph). Si l'oracle de sortie est d'abord, puis l'oracle d'entrée, alors il s'agit d'un oracle E/S (par exemple, Gelato Network).

En bref, oracle est très similaire au concept de coprocesseur, mais en même temps a les caractéristiques d'accès aux données et de calcul.

b) zkOracle

Prenant Hyper Oracle comme exemple, quelle est la relation entre un zkOracle et un zkCoprocessor?

Le zkOracle discuté dans Définition de zkOracle pour Ethereum possède en fait les capacités des deux zkCoprocesseurs.

Par exemple, un zkOracle tel que Hyper Oracle:

  1. Accès aux données historiques de manière digne de confiance.
  2. Peut effectuer des calculs programmables.

3. zkCoprocessor et zkOracle

Lorsque nous comparons directement les deux types de zkCoprocessor avec zkOracle, nous pouvons voir que zkOracle a toutes les fonctionnalités de zkCoprocessor en même temps :

  1. traitement asynchrone pour contrat intelligent
  2. interagir avec et améliorer les capacités des applications existantes sur L1 ou L2
  3. déchargement de calcul dans un système aux ressources limitées

Par comparaison directe, zkOracle est une solution plus complète qui peut fournir aux développeurs une pile technologique plus complète.

Les deux zkCoprocessors étendent leurs verticales respectives, par exemple, le zkCoprocessor d'accès aux données débloque des scénarios de chaîne croisée, et le zkVM Compute zkCoprocessor représente un rouleau zk basé sur zkVM.

4. Construisez avec zkCoprocessor ou zkOracle

Lequel choisir lors de la construction?

Dans un ordre pas à pas, nous pouvons prendre certaines décisions concernant la construction d'une application.

a) DApp avec contrat intelligent pur

Tout d'abord, une implémentation pure de contrats intelligents en Solidity reste un très bon choix. Bien que les contrats intelligents purs ne fournissent pas certaines des meilleures fonctionnalités innovantes, ils restent suffisants dans certains scénarios. De plus, la disponibilité actuelle d'Arbitrum Stylus a débloqué de nombreuses nouvelles applications avec des contrats intelligents purs.

b) DApp qui a besoin d'un accès plus riche aux données

Dans de nombreux cas, les développeurs peuvent souhaiter utiliser le zkCoprocessor d'accès aux données ou le zkOracle pour les contrats intelligents afin d'accéder à des sources de données plus riches.

Dans ce scénario, si Data Access zkCoprocessor est utilisé seul, le calcul est toujours géré dans le contrat intelligent. Le rôle du zkCoprocessor est de réduire la complexité de l'obtention de données de la manière traditionnelle, mais pas de rendre le contrat intelligent plus puissant computationnellement.

Dans ce scénario, nous voyons beaucoup de petits projets de données, plutôt que des DApps à part entière au sens traditionnel :

  1. En utilisant zkCoprocessor Axiom : une meilleure gestion LP, remise MEVictim
  2. Utilisation de zkOracle Hyper Oracle : Prix Uniswap v2, Activité de trading OpenSea, Moniteur du volume USDT

c) Application décentralisée nécessitant un calcul intensif

Souvent, certains algorithmes complexes ne peuvent pas être calculés directement sur la chaîne, pour les jeux, la logique de calcul est très complexe, comme etherquake et GameOfLife qui coûtent 2k $ pour exécuter une étape. Ou des algorithmes complexes liés à l'IA. Ou des algorithmes complexes liés à l'IA qui sont impossibles à exécuter sur la chaîne. Par conséquent, nous avons besoin de zkVM zkCoprocessor ou zkOracle pour exécuter le calcul hors chaîne, puis le soumettre à la chaîne sous forme de ZKP.

Dans cet exemple, nous pouvons voir une partie de leur potentiel de calcul illimité :

  1. Utilisation de zkCoprocessor Bonsaï : Zeth (Prove Reth dans zkVM), zk-sentiment
  2. En utilisant zkOracle Hyper Oracle ou zkWASM: zkGo (Prove L2-Geth dans zkVM, Type-0 zkEVM),zkAMM

d) DApp de nouvelle génération avec toutes les fonctionnalités (DeFi 3.0)

Enfin, nous avons parlé des applications qui ne peuvent être construites qu'avec zkOracle. En prenant l'application DeFi comme exemple, un DeFi complet est très complexe. La prochaine génération d'applications DeFi, ou DeFi 3.0DApps, nécessitera :

  1. Accès aux données plus riches
  2. Calcul illimité
  3. Autonome (pour la liquidation, la mise à jour des paramètres, la gouvernance du protocole)

Nous avons déjà discuté de la manière dont zkOracle partage les capacités à la fois des zkCoprocessors, tout en répondant aux deux premières exigences fonctionnelles. Comment zkOracle remplit-il la fonction autonome et comment zkCoprocessor ne le fait-il pas ?

  1. zkOracle : Aucune intervention humaine n’est nécessaire. Les tâches d’accès aux données et de calcul peuvent être entièrement définies et exécutées de manière programmable et automatisée. Tous les appels onchain sont toujours valides et sans confiance.
  2. zkCoprocessor: Nécessite une surveillance et un filtrage on-chain de la réponse de calcul par le relais, ou l'ajout de mécanismes complexes supplémentaires.

Alors, qu'implique l'absence d'autonomie dans le zkCoprocessor : le

  1. Décentralisation insuffisante
  2. Risque de mécanismes potentiellement complexes
  3. Charge mentale du développeur

Par conséquent, zkOracle est un choix parfait et suffisant pour une application complète comme la DeFi.

Il convient de noter que les Hooks peuvent également gérer une partie des fonctionnalités manquantes de zkCoprocessor, mais SEULEMENT dans des scénarios comme DeFi, et pas universellement.

Avertissement:

  1. Cet article est repris de [ miroir]. Tous les droits d'auteur appartiennent à l'auteur original [SevenX Ventures]. If there are objections to this reprint, please contact the Porte Apprendreéquipe, et ils s'en occuperont rapidement.
  2. Clause de non-responsabilité : Les points de vue et opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent aucun conseil en investissement.
  3. Les traductions de l'article dans d'autres langues sont réalisées par l'équipe Gate Learn. Sauf mention contraire, la copie, la distribution ou le plagiat des articles traduits est interdit.

zkOracle et zkCoprocessor

Intermédiaire1/7/2024, 1:23:40 PM
L'article explique les concepts de zkCorprocessor et zkOracle, mettant en avant les différences entre les deux et développant les scénarios dans lesquels chaque type de zk est adapté à des cas d'utilisation différents.

0. Introduction

Dans ce post, nous examinerons les concepts récemment populaires de zkCoprocessor et zkOracle et comparerons leurs différences.

1. Définition de zkCoprocessor

Quand un terme est inventé, sa véritable signification n'est pas définie par lui-même. Nous avons beaucoup vu cela dans le cas de la blockchain.

  1. ZK: Alors que les universitaires font souvent référence aux fonctionnalités de confidentialité de Zero Knowledge, dans le contexte de la blockchain, ZK désigne souvent simplement la concision et la validité de la technologie. Même les projets construits sur ZK Rollup se nomment zkSomething.
  2. DA : Jusqu’à présent, beaucoup de gens ne savaient pas vraiment que la disponibilité des données n’est pas le stockage des données, donc pour résoudre ce problème de terminologie, certaines personnes ont suggéré remplacer DA par DP (Publication de données), ou en transformant toute la signification de DA en Publication de données + Stockage de données (1, 2).

Nous observons un phénomène similaire dans le terme zkCoprocessor. Tout le monde utilise le terme, mais ils ne font pas nécessairement référence aux mêmes choses.

Nous voulions donc exprimer ce que le projet lui-même pense de zkCoprocessor, ce que la communauté comprend de zkCoprocessor, et ce que zkCoprocessor signifie vraiment et fait de notre point de vue.

a) De Projet Eux-mêmes

Définition 1 de l'Axiom : zkCoprocessor prouve les données historiques onchain.

Le concept du zkCoprocessor a été popularisé par Axiom, qui l'a initialement conçu comme un zkAttestor. À partir de l'idée d'Axiom, le zkCoprocessor représente le composant qui "prouve les données historiques on-chain et les utilise de manière fiable dans un contrat intelligent".

Notez que l'équipe Brevis a déclaré que ce type de zkCoprocessors est essentiellement une couche API/DSL au-dessus du circuit zk sous-jacent. Donc ce n'est pas programmable.

Définition 2 de RISC Zero: zkCoprocessor décharge le calcul de la chaîne vers la hors chaîne.

RISC Zero se réfère également souvent à lui-même comme un zkCoprocessor. De leur point de vue, ils voient zkCoprocessor comme un concept plus large, "un outil pour utiliser les ZKPs afin de décharger le calcul de la chaîne vers hors de la chaîne".

b) De la communauté

Définition de Peteris (identique à 1) : zkCoprocessor peut accéder à l'état historique onchain.

Peteris est de Aera Financecroitque zkCoprocessor agit très semblablement à un oracle d'état, avec pour fonction principale l'accès aux données historiques. En même temps, lui et Rishabh de BananaHQcroit que la description de la définition 2 ressemble plus à un zkVM qu'à une sous-classe de zkCoprocessor.

Définition de Messari, Modular Media et Kobi (identique à 2) : zkCoprocessor décharge le calcul de la chaîne vers hors de la chaîne.

Messari a également donné sa propre définition de zkCoprocessor. Sami, un chercheur chez Messari, croitce zkCoprocessor permet aux développeurs de smart contract de décharger facilement la logique complexe hors chaîne sans de nouvelles hypothèses de confiance. Modular Media aussidonne le même concept. Kobi de Geometrycompare Rollup avec un coprocesseur, Brevis a ajouté que zkCoprocessornégocie le coût de maintien d'un stockage d'état permanent contre des performances hyper-boostées, Taiko a ​​conçu le design deBooster Rollupqui a poussé plus loin l'idée de Rollup Coprocessor. Il s'agit de la même définition que RISC Zero.

c) De notre part

Pour résumer, nous concluons qu'il existe deux types de zkCoprocessor en pratique, et ils sont les suivants:

  1. Accès aux données zkCoprocessor : alimente principalement certaines données (bloc historique, état historique) à un endroit précis (contrat intelligent).
  2. Calculateur zkCoprocessor zkVM : calcule par le zkVM hors chaîne, puis renvoie le résultat à la chaîne.Compresse un calcul en O(n) en une simple vérification en O(1).

2. Définition de zkOracle

a) Oracle

Hyper Oracle nous fournit une explication d'Oracle dans Définition de zkOracle pour Ethereum.

Oracle résume pratiquement l'"infra" dans tout espace blockchain, comme une meilleure définition qu'un coprocesseur.

Si l'entrée de l'infra/oracle est des données hors chaîne et que la sortie est en chaîne, alors il s'agit d'un oracle d'entrée (par exemple, Chainlink Price Feed). En revanche, il s'agit d'un oracle de sortie (par exemple, The Graph). Si l'oracle de sortie est d'abord, puis l'oracle d'entrée, alors il s'agit d'un oracle E/S (par exemple, Gelato Network).

En bref, oracle est très similaire au concept de coprocesseur, mais en même temps a les caractéristiques d'accès aux données et de calcul.

b) zkOracle

Prenant Hyper Oracle comme exemple, quelle est la relation entre un zkOracle et un zkCoprocessor?

Le zkOracle discuté dans Définition de zkOracle pour Ethereum possède en fait les capacités des deux zkCoprocesseurs.

Par exemple, un zkOracle tel que Hyper Oracle:

  1. Accès aux données historiques de manière digne de confiance.
  2. Peut effectuer des calculs programmables.

3. zkCoprocessor et zkOracle

Lorsque nous comparons directement les deux types de zkCoprocessor avec zkOracle, nous pouvons voir que zkOracle a toutes les fonctionnalités de zkCoprocessor en même temps :

  1. traitement asynchrone pour contrat intelligent
  2. interagir avec et améliorer les capacités des applications existantes sur L1 ou L2
  3. déchargement de calcul dans un système aux ressources limitées

Par comparaison directe, zkOracle est une solution plus complète qui peut fournir aux développeurs une pile technologique plus complète.

Les deux zkCoprocessors étendent leurs verticales respectives, par exemple, le zkCoprocessor d'accès aux données débloque des scénarios de chaîne croisée, et le zkVM Compute zkCoprocessor représente un rouleau zk basé sur zkVM.

4. Construisez avec zkCoprocessor ou zkOracle

Lequel choisir lors de la construction?

Dans un ordre pas à pas, nous pouvons prendre certaines décisions concernant la construction d'une application.

a) DApp avec contrat intelligent pur

Tout d'abord, une implémentation pure de contrats intelligents en Solidity reste un très bon choix. Bien que les contrats intelligents purs ne fournissent pas certaines des meilleures fonctionnalités innovantes, ils restent suffisants dans certains scénarios. De plus, la disponibilité actuelle d'Arbitrum Stylus a débloqué de nombreuses nouvelles applications avec des contrats intelligents purs.

b) DApp qui a besoin d'un accès plus riche aux données

Dans de nombreux cas, les développeurs peuvent souhaiter utiliser le zkCoprocessor d'accès aux données ou le zkOracle pour les contrats intelligents afin d'accéder à des sources de données plus riches.

Dans ce scénario, si Data Access zkCoprocessor est utilisé seul, le calcul est toujours géré dans le contrat intelligent. Le rôle du zkCoprocessor est de réduire la complexité de l'obtention de données de la manière traditionnelle, mais pas de rendre le contrat intelligent plus puissant computationnellement.

Dans ce scénario, nous voyons beaucoup de petits projets de données, plutôt que des DApps à part entière au sens traditionnel :

  1. En utilisant zkCoprocessor Axiom : une meilleure gestion LP, remise MEVictim
  2. Utilisation de zkOracle Hyper Oracle : Prix Uniswap v2, Activité de trading OpenSea, Moniteur du volume USDT

c) Application décentralisée nécessitant un calcul intensif

Souvent, certains algorithmes complexes ne peuvent pas être calculés directement sur la chaîne, pour les jeux, la logique de calcul est très complexe, comme etherquake et GameOfLife qui coûtent 2k $ pour exécuter une étape. Ou des algorithmes complexes liés à l'IA. Ou des algorithmes complexes liés à l'IA qui sont impossibles à exécuter sur la chaîne. Par conséquent, nous avons besoin de zkVM zkCoprocessor ou zkOracle pour exécuter le calcul hors chaîne, puis le soumettre à la chaîne sous forme de ZKP.

Dans cet exemple, nous pouvons voir une partie de leur potentiel de calcul illimité :

  1. Utilisation de zkCoprocessor Bonsaï : Zeth (Prove Reth dans zkVM), zk-sentiment
  2. En utilisant zkOracle Hyper Oracle ou zkWASM: zkGo (Prove L2-Geth dans zkVM, Type-0 zkEVM),zkAMM

d) DApp de nouvelle génération avec toutes les fonctionnalités (DeFi 3.0)

Enfin, nous avons parlé des applications qui ne peuvent être construites qu'avec zkOracle. En prenant l'application DeFi comme exemple, un DeFi complet est très complexe. La prochaine génération d'applications DeFi, ou DeFi 3.0DApps, nécessitera :

  1. Accès aux données plus riches
  2. Calcul illimité
  3. Autonome (pour la liquidation, la mise à jour des paramètres, la gouvernance du protocole)

Nous avons déjà discuté de la manière dont zkOracle partage les capacités à la fois des zkCoprocessors, tout en répondant aux deux premières exigences fonctionnelles. Comment zkOracle remplit-il la fonction autonome et comment zkCoprocessor ne le fait-il pas ?

  1. zkOracle : Aucune intervention humaine n’est nécessaire. Les tâches d’accès aux données et de calcul peuvent être entièrement définies et exécutées de manière programmable et automatisée. Tous les appels onchain sont toujours valides et sans confiance.
  2. zkCoprocessor: Nécessite une surveillance et un filtrage on-chain de la réponse de calcul par le relais, ou l'ajout de mécanismes complexes supplémentaires.

Alors, qu'implique l'absence d'autonomie dans le zkCoprocessor : le

  1. Décentralisation insuffisante
  2. Risque de mécanismes potentiellement complexes
  3. Charge mentale du développeur

Par conséquent, zkOracle est un choix parfait et suffisant pour une application complète comme la DeFi.

Il convient de noter que les Hooks peuvent également gérer une partie des fonctionnalités manquantes de zkCoprocessor, mais SEULEMENT dans des scénarios comme DeFi, et pas universellement.

Avertissement:

  1. Cet article est repris de [ miroir]. Tous les droits d'auteur appartiennent à l'auteur original [SevenX Ventures]. If there are objections to this reprint, please contact the Porte Apprendreéquipe, et ils s'en occuperont rapidement.
  2. Clause de non-responsabilité : Les points de vue et opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent aucun conseil en investissement.
  3. Les traductions de l'article dans d'autres langues sont réalisées par l'équipe Gate Learn. Sauf mention contraire, la copie, la distribution ou le plagiat des articles traduits est interdit.
Bắt đầu giao dịch
Đăng ký và giao dịch để nhận phần thưởng USDTEST trị giá
$100
$5500