completed

Perun Channels for Cardano

$300,000.00 Received
$300,000.00 Requested
Ideascale logo View on ideascale
Community Review Results (1 reviewers)
Addresses Challenge
Feasibility
Auditability
Solution

We implement Perun Channels for Cardano and thereby enable P2P transactions at unlimited scalability and with cross-chain potential.

Problem:

[IMPACT]

**[Avertissement : Il s'agit d'une double proposition pour "Erdstall". "Perun" et "Erdstall" sont deux solutions de mise à l'échelle différentes développées par l'équipe PolyCrypt. Comme nous avons des ressources limitées, nous donnerons la priorité à un projet plutôt qu'à l'autre en fonction de l'intérêt de la communauté.]

Protocole Perun: Le protocole de canal Perun est une instance d'un protocole de canal d'état qui résulte d'une série d'articles de recherche renommés (EUROCRYPT, CCS, S&P). Le protocole permet à un groupe fixe de participants d'ouvrir un canal entre eux, de sorte que les fonds déposés peuvent ensuite être transférés au sein du groupe avec un consensus local à un coût nul et à un temps de latence presque nul en utilisant des transactions hors chaîne. Le protocole Perun garantit la sécurité des fonds à tout moment. En cas de litige (par exemple, si l'une des parties se déconnecte), le protocole permet aux participants honnêtes de recevoir un paiement en fonction de l'état hors chaîne le plus récent convenu.

**Le protocole Perun permet également d'imposer une logique arbitraire sur un canal, de sorte que des transactions peuvent être effectuées même en l'absence d'un consensus complet hors chaîne. Cela permet par exemple de réaliser des échanges atomiques hors chaîne avec une logique de transaction complexe.

**Grâce au mécanisme de consensus local, le protocole Perun peut être étendu à la prise en charge des chaînes croisées, où les actifs déposés peuvent se trouver sur différents réseaux de blockchain (par exemple, ETH et ADA). L'implémentation de cette fonctionnalité est en cours, mais nous prévoyons de l'apporter à tous les backends de blockchain supportés.

**La bibliothèque Go-Perun implémente le protocole Perun de manière abstraite afin qu'il puisse être utilisé avec n'importe quel backend de blockchain à condition d'implémenter le module de backend correspondant. Nous proposons actuellement des backends pour Ethereum, Cosmos et Polkadot.

**Afin d'apporter les canaux Perun à Cardano, plusieurs étapes sont nécessaires.

  1. Nous devons évaluer comment nous pouvons intégrer notre protocole et notre implémentation de canaux Perun avec les interfaces fournies par Cardano. Pour cela, nous avons besoin de ce qui suit :
    1. Nous devons comprendre comment notre protocole basé sur les comptes se traduit dans le modèle eUTXO.
    2. Nous devons être en mesure d'encoder des informations arbitraires dans le client hors chaîne, puis de décoder ces informations dans la logique du contrat intelligent.
    3. Nous devons pouvoir générer des signatures dans le client hors chaîne pour des états arbitraires, intégrer ces signatures dans les données de transaction, puis vérifier ces signatures dans le contrat intelligent sur la chaîne.
  2. Nous mettons en œuvre le contrat intelligent sur la chaîne qui gère la logique d'ouverture, de fermeture et de contestation d'un canal sur la chaîne.
  3. Nous implémentons le connecteur client hors chaîne qui permet à la bibliothèque go-perun d'envoyer des transactions au réseau Cardano.

Remarques sur la feuille de route et le champ d'application: Les éléments suivants doivent être pris en compte.

  • Afin de réduire la complexité au départ, nous prévoyons de nous concentrer sur la fonctionnalité des canaux de paiement simples, ce qui signifie que nous laisserons l'implémentation des canaux d'état avec une logique de transaction personnalisée à un moment ultérieur.
  • Nous sommes habitués à travailler dans le modèle basé sur les comptes et avec des langages de programmation de contrats intelligents impératifs. Nous nous attendons donc à une courbe d'apprentissage abrupte au début.

Mise à jour (9 mars 2022):

  • Synergies avec l'équipe Hydra:** Nous avons discuté des synergies possibles avec l'équipe Hydra et prévoyons d'approfondir cette question pendant la durée du projet. Nous pouvons potentiellement construire sur Hydra dans son ensemble ou réutiliser des composants existants d'Hydra. Nous avons également été informés que nous avions peut-être sous-estimé l'effort requis et nous avons donc ajusté notre calendrier et notre budget en conséquence.

Si le projet aboutit, une solution de mise à l'échelle basée sur les canaux d'état sera disponible pour Cardano. Les canaux d'état sont particulièrement viables pour les cas d'utilisation qui nécessitent des transactions à faible latence comme, par exemple, dans les jeux ou les solutions de micropaiement.

En outre, les canaux Perun permettront potentiellement des transactions inter-chaînes à l'avenir.

**Nous nous attendons à une courbe d'apprentissage abrupte et à des défis technologiques sur la voie de l'introduction des canaux Perun dans Cardano. Jusqu'à présent, nous sommes habitués à travailler dans le modèle basé sur les comptes et avec des langages de programmation impératifs.

*Nous visons à atténuer le défi d'une courbe d'apprentissage abrupte en mettant un tampon correspondant dans l'estimation de notre plan de projet. En outre, nous nous concentrerons d'abord sur la version la plus simple des canaux Perun sur Cardano avant de viser la mise en œuvre de l'ensemble des fonctionnalités de Perun.

**Notre bibliothèque est écrite en Go et nous comptons généralement sur la disponibilité d'un client Go pour envoyer des transactions à la blockchain et surveiller la blockchain pour les événements correspondants. Cependant, un tel client ne semble pas être disponible pour Cardano jusqu'à présent.

*Nous visons une implémentation de notre protocole d'abord d'une manière native pour Cardano en utilisant les langages de programmation natifs respectifs. Nous pourrons ensuite envisager de construire un adaptateur entre Go et l'environnement natif de Cardano.

**Notre logique de contrat intelligent doit prendre en charge une certaine forme de sérialisation qui est également disponible pour notre client hors chaîne en Go. De plus, le contrat intelligent doit être capable de vérifier les signatures, ce qui signifie que nous avons besoin de la disponibilité d'une fonction de vérification de signature au sein d'un contrat intelligent.

*Nous étudierons la disponibilité des bibliothèques et les moyens de sérialiser les informations et de vérifier les signatures dans un contrat intelligent au cours de la première phase de notre projet. En principe, nous savons que les contrats intelligents sur Cardano sont suffisamment puissants pour fournir les fonctionnalités requises. Cependant, si aucune d'entre elles n'est facilement disponible, cela pourrait en fait mettre en péril l'ensemble du projet.

[FEASIBILITY]

  1. Se familiariser avec le cadre de contrat intelligent Cardano et créer un concept détaillé pour porter le protocole Perun à Cardano et l'intégrer dans le cadre Perun. (3 mois)
  2. Contrat intelligent et partie off-chain du client dans l'environnement Cardano (y compris la suite de tests). (3 mois)
  3. Intégration avec go-perun, qui est la bibliothèque de base du Framework Perun (y compris la suite de tests). (3 mois)

Estimation totale : 9 mois

Nous attendons 2 développeurs, 1 chef de projet et 1 chercheur pour travailler sur le projet.

Nous demandons un budget d'environ 30k USD / mois.

**L'équipe comprend les membres suivants, qui seront potentiellement affectés au projet. **.

Sebastian Faust (directeur de recherche): Cofondateur de PolyCrypt et co-inventeur des protocoles Perun. Chef du groupe de recherche en cryptographie appliquée à l'université technique de Darmstadt (Allemagne). Nombreuses publications lors de conférences renommées sur la cryptographie et la sécurité informatique telles que CRYPTO, EUROCRYPT, S&P, CCS.

Hendrik Amler (responsable de la gestion des affaires et des projets) : Cofondateur et PDG de PolyCrypt. Dirige le développement commercial. Soutiendra la gestion de projet.

Matthias Geihs (responsable du développement) : Docteur en informatique, spécialisé dans la cryptographie et la sécurité informatique. Dirige le développement du cadre Perun depuis le début de l'année 2021. Il a fait ses preuves en menant avec succès des projets d'intégration de Perun avec Cosmos et Polkadot. Compétent dans une variété de langages de programmation, de recherche et de gestion de projet.

Steffen Rattay (développeur principal) : Développeur principal du Perun Framework depuis son lancement en 2019. Maîtrise de plusieurs langages de programmation, dont Go et Rust. Principal développeur de l'intégration prochaine de Perun avec le réseau informatique Internet Dfinity.

Norbert Dzikowski (développeur principal) : Développeur principal du cadre Perun depuis le milieu de l'année 2020. Expérimenté dans une variété de langages de programmation, y compris Go et Haskell.

[AUDITABILITY]

Nous publierons nos progrès dans un dépôt public, et suivrons les fonctionnalités majeures dans les problèmes du mieux que nous pourrons (en gardant un compromis raisonnable entre l'efficacité et la transparence). Le code des travaux en cours sera visible dans les commits des demandes de fusion.

L'exigence minimale pour réussir est que nous puissions démontrer la faisabilité des canaux Perun sur Cardano, ouvrant ainsi l'espace pour les applications qui nécessitent des transactions peer-to-peer évolutives et à faible coût, par exemple, les jeux ou les solutions de micropaiement.

Idéalement, nous serons en mesure d'intégrer les composants développés directement dans le cadre de Perun et de permettre ainsi la portabilité des applications existantes et potentiellement des fonctionnalités inter-chaînes à l'avenir.

Il s'agit d'un nouveau projet.

Yes Votes:
₳ 106,961,962
No Votes:
₳ 28,898,827
Votes Cast:
626

This proposal was approved and funded by the Cardano Community via Project F8: Cardano scaling solutions Catalyst funding round.

  • download
  • download
  • download
  • download
  • download
  • download
  • download

[IMPACT]

**[Avertissement : Il s'agit d'une double proposition pour "Erdstall". "Perun" et "Erdstall" sont deux solutions de mise à l'échelle différentes développées par l'équipe PolyCrypt. Comme nous avons des ressources limitées, nous donnerons la priorité à un projet plutôt qu'à l'autre en fonction de l'intérêt de la communauté.]

Protocole Perun: Le protocole de canal Perun est une instance d'un protocole de canal d'état qui résulte d'une série d'articles de recherche renommés (EUROCRYPT, CCS, S&P). Le protocole permet à un groupe fixe de participants d'ouvrir un canal entre eux, de sorte que les fonds déposés peuvent ensuite être transférés au sein du groupe avec un consensus local à un coût nul et à un temps de latence presque nul en utilisant des transactions hors chaîne. Le protocole Perun garantit la sécurité des fonds à tout moment. En cas de litige (par exemple, si l'une des parties se déconnecte), le protocole permet aux participants honnêtes de recevoir un paiement en fonction de l'état hors chaîne le plus récent convenu.

**Le protocole Perun permet également d'imposer une logique arbitraire sur un canal, de sorte que des transactions peuvent être effectuées même en l'absence d'un consensus complet hors chaîne. Cela permet par exemple de réaliser des échanges atomiques hors chaîne avec une logique de transaction complexe.

**Grâce au mécanisme de consensus local, le protocole Perun peut être étendu à la prise en charge des chaînes croisées, où les actifs déposés peuvent se trouver sur différents réseaux de blockchain (par exemple, ETH et ADA). L'implémentation de cette fonctionnalité est en cours, mais nous prévoyons de l'apporter à tous les backends de blockchain supportés.

**La bibliothèque Go-Perun implémente le protocole Perun de manière abstraite afin qu'il puisse être utilisé avec n'importe quel backend de blockchain à condition d'implémenter le module de backend correspondant. Nous proposons actuellement des backends pour Ethereum, Cosmos et Polkadot.

**Afin d'apporter les canaux Perun à Cardano, plusieurs étapes sont nécessaires.

  1. Nous devons évaluer comment nous pouvons intégrer notre protocole et notre implémentation de canaux Perun avec les interfaces fournies par Cardano. Pour cela, nous avons besoin de ce qui suit :
    1. Nous devons comprendre comment notre protocole basé sur les comptes se traduit dans le modèle eUTXO.
    2. Nous devons être en mesure d'encoder des informations arbitraires dans le client hors chaîne, puis de décoder ces informations dans la logique du contrat intelligent.
    3. Nous devons pouvoir générer des signatures dans le client hors chaîne pour des états arbitraires, intégrer ces signatures dans les données de transaction, puis vérifier ces signatures dans le contrat intelligent sur la chaîne.
  2. Nous mettons en œuvre le contrat intelligent sur la chaîne qui gère la logique d'ouverture, de fermeture et de contestation d'un canal sur la chaîne.
  3. Nous implémentons le connecteur client hors chaîne qui permet à la bibliothèque go-perun d'envoyer des transactions au réseau Cardano.

Remarques sur la feuille de route et le champ d'application: Les éléments suivants doivent être pris en compte.

  • Afin de réduire la complexité au départ, nous prévoyons de nous concentrer sur la fonctionnalité des canaux de paiement simples, ce qui signifie que nous laisserons l'implémentation des canaux d'état avec une logique de transaction personnalisée à un moment ultérieur.
  • Nous sommes habitués à travailler dans le modèle basé sur les comptes et avec des langages de programmation de contrats intelligents impératifs. Nous nous attendons donc à une courbe d'apprentissage abrupte au début.

Mise à jour (9 mars 2022):

  • Synergies avec l'équipe Hydra:** Nous avons discuté des synergies possibles avec l'équipe Hydra et prévoyons d'approfondir cette question pendant la durée du projet. Nous pouvons potentiellement construire sur Hydra dans son ensemble ou réutiliser des composants existants d'Hydra. Nous avons également été informés que nous avions peut-être sous-estimé l'effort requis et nous avons donc ajusté notre calendrier et notre budget en conséquence.

Si le projet aboutit, une solution de mise à l'échelle basée sur les canaux d'état sera disponible pour Cardano. Les canaux d'état sont particulièrement viables pour les cas d'utilisation qui nécessitent des transactions à faible latence comme, par exemple, dans les jeux ou les solutions de micropaiement.

En outre, les canaux Perun permettront potentiellement des transactions inter-chaînes à l'avenir.

**Nous nous attendons à une courbe d'apprentissage abrupte et à des défis technologiques sur la voie de l'introduction des canaux Perun dans Cardano. Jusqu'à présent, nous sommes habitués à travailler dans le modèle basé sur les comptes et avec des langages de programmation impératifs.

*Nous visons à atténuer le défi d'une courbe d'apprentissage abrupte en mettant un tampon correspondant dans l'estimation de notre plan de projet. En outre, nous nous concentrerons d'abord sur la version la plus simple des canaux Perun sur Cardano avant de viser la mise en œuvre de l'ensemble des fonctionnalités de Perun.

**Notre bibliothèque est écrite en Go et nous comptons généralement sur la disponibilité d'un client Go pour envoyer des transactions à la blockchain et surveiller la blockchain pour les événements correspondants. Cependant, un tel client ne semble pas être disponible pour Cardano jusqu'à présent.

*Nous visons une implémentation de notre protocole d'abord d'une manière native pour Cardano en utilisant les langages de programmation natifs respectifs. Nous pourrons ensuite envisager de construire un adaptateur entre Go et l'environnement natif de Cardano.

**Notre logique de contrat intelligent doit prendre en charge une certaine forme de sérialisation qui est également disponible pour notre client hors chaîne en Go. De plus, le contrat intelligent doit être capable de vérifier les signatures, ce qui signifie que nous avons besoin de la disponibilité d'une fonction de vérification de signature au sein d'un contrat intelligent.

*Nous étudierons la disponibilité des bibliothèques et les moyens de sérialiser les informations et de vérifier les signatures dans un contrat intelligent au cours de la première phase de notre projet. En principe, nous savons que les contrats intelligents sur Cardano sont suffisamment puissants pour fournir les fonctionnalités requises. Cependant, si aucune d'entre elles n'est facilement disponible, cela pourrait en fait mettre en péril l'ensemble du projet.

\N-[FEASIBILITY\N]

  1. Se familiariser avec le cadre de contrat intelligent Cardano et créer un concept détaillé pour porter le protocole Perun à Cardano et l'intégrer dans le cadre Perun. (3 mois)
  2. Contrat intelligent et partie off-chain du client dans l'environnement Cardano (y compris la suite de tests). (3 mois)
  3. Intégration avec go-perun, qui est la bibliothèque de base du Framework Perun (y compris la suite de tests). (3 mois)

Estimation totale : 9 mois

Nous attendons 2 développeurs, 1 chef de projet et 1 chercheur pour travailler sur le projet.

Nous demandons un budget d'environ 30k USD / mois.

**L'équipe comprend les membres suivants, qui seront potentiellement affectés au projet. **

Sebastian Faust (directeur de recherche): Cofondateur de PolyCrypt et co-inventeur des protocoles Perun. Chef du groupe de recherche en cryptographie appliquée à l'université technique de Darmstadt (Allemagne). Nombreuses publications lors de conférences renommées sur la cryptographie et la sécurité informatique telles que CRYPTO, EUROCRYPT, S&P, CCS.

Hendrik Amler (responsable de la gestion des affaires et des projets) : Cofondateur et PDG de PolyCrypt. Dirige le développement commercial. Soutiendra la gestion de projet.

Matthias Geihs (responsable du développement) : Docteur en informatique, spécialisé dans la cryptographie et la sécurité informatique. Dirige le développement du cadre Perun depuis le début de l'année 2021. Il a fait ses preuves en menant avec succès des projets d'intégration de Perun avec Cosmos et Polkadot. Compétent dans une variété de langages de programmation, de recherche et de gestion de projet.

Steffen Rattay (développeur principal) : Développeur principal du Perun Framework depuis son lancement en 2019. Maîtrise de plusieurs langages de programmation, dont Go et Rust. Principal développeur de l'intégration prochaine de Perun avec le réseau informatique Internet Dfinity.

Norbert Dzikowski (développeur principal) : Développeur principal du cadre Perun depuis le milieu de l'année 2020. Expérimenté dans une variété de langages de programmation, y compris Go et Haskell.

\N- [AUDITABILITY\N]

Nous publierons nos progrès dans un dépôt public, et suivrons les fonctionnalités majeures dans les problèmes du mieux que nous pourrons (en gardant un compromis raisonnable entre l'efficacité et la transparence). Le code des travaux en cours sera visible dans les commits des demandes de fusion.

L'exigence minimale pour réussir est que nous puissions démontrer la faisabilité des canaux Perun sur Cardano, ouvrant ainsi l'espace pour les applications qui nécessitent des transactions peer-to-peer évolutives et à faible coût, par exemple, les jeux ou les solutions de micropaiement.

Idéalement, nous serons en mesure d'intégrer les composants développés directement dans le cadre de Perun et de permettre ainsi la portabilité des applications existantes et potentiellement des fonctionnalités inter-chaînes à l'avenir.

Il s'agit d'un nouveau projet.

Avis des conseillers communautaires (1)

Comments

Monthly Reports

This is the first progress report. We started onboarding our team and getting ourselves familiar with Plutus and Haskell.

Disbursed to Date
$300,000
Status
Still in progress
Completion Target
3/31/2023
Comments 0

Login or Register to leave a comment!

-

Disbursed to Date
$300,000
Status
Still in progress
Completion Target
3/31/2023
Attachment(s)
Comments 0

Login or Register to leave a comment!

Disbursed to Date
$300,000
Status
Still in progress
Completion Target
4. After 6 months
Attachment(s)
Comments 0

Login or Register to leave a comment!

Disbursed to Date
$300,000
Status
Still in progress
Completion Target
4. After 6 months
Attachment(s)
Comments 0

Login or Register to leave a comment!

We have worked on testing our Application Script on a local testnet. This is more tricky than expected as there does not seem to exist much official documentation on that. We managed to get a local testnet environment working and setup a PAB instance. However, calls to the PAB instance are failing at the moment, which we are currently investigating.

Disbursed to Date
$300,000
Status
Still in progress
Completion Target
4. After 6 months
Attachment(s)
Comments 0

Login or Register to leave a comment!

The details can be found in: https://github.com/perun-network/perun-cardano-contract/tree/perun-pab The high level explanation is located in the report.

Disbursed to Date
$300,000
Status
Still in progress
Completion Target
3. In the next 6 months
Attachment(s)
Comments 0

Login or Register to leave a comment!

Disbursed to Date
$300,000
Status
Still in progress
Completion Target
3. In the next 6 months
Attachment(s)
Comments 0

Login or Register to leave a comment!

Disbursed to Date
$300,000
Status
Still in progress
Completion Target
3. In the next 6 months
Attachment(s)
Comments 0

Login or Register to leave a comment!

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3 min 24 s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4 min 3 s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3 min 48 s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2 min 16 s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3 min 14 s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3 min 19 s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4 min 59 s
    Darlington Kofa
0:00
/
~0:00