Contrat dans la Blockchain


#1

Bonjour à tous, j’ai vue dans ce post que vous prévoyez metre en place des Contrats intelligents. Instinctivement, je pense à Etherium et la possibilité de faire des token basé sur quelque chose d’autre et émis/coté en Etherium.

C’est bien de ça qu’il est question ici ou c’est uniquement des reconnaissance de dette ?


#2

Ca ne sera pas vraiment comme Ethereum. L’idée est de garder des scripts style Bitcoin (qui sont des contrats intelligents), et de développer des solutions autour (canaux de paiements, multisigs, oracles) pour pouvoir automatiser des contrats via la blockchain. Donc pas de contrats Turing-complets comme Ethereum pour le moment, et c’est peu problable que ça arrive pour le moment tant que ce n’est pas scalable (il y a des idée mais pas sur que les contrats style Ethereum ne fonctionnent avec).

Il n’y a pas de dette dans Duniter, donc que veux-tu dire par la ?


#3

Pourquoi il y en aurait pas ? Je ne voit pas de raison pour lequel je ne peut pas emprunter 1 Ğ1 ou 1 DU à une autre personne… C’est vrais que la monnaie n’est pas créer par la dette mais elle peu en faire l’objet…

Vous auriez une liste (exhaustive ou non) de ces idées ? Je suis curieux.


#4

Le protocole ne permet pas d’avoir des sommes négatives, d’avoir des dettes. C’est quelque chose qui peux par contre être réalisé en dehors, via un autre protocole au dessus de Duniter, mais Duniter en lui même ne permet pas de stocker des dettes. Si tu empreinte 1 G1 a quelqu’un d’autre, il t’envoi 1 G1, et la blockchain ne peut garantir que tu lui remboursera plus tard. Peut-être qu’il sera possible de gérer ce genre des choses avec des contrats, mais le protocole n’intègre pas ces concepts là. C’est quelque chose qui pourra être fait par dessus avec des locks scripts ou des contracts intelligents plus poussés, s’ils existent.

Ce sont des idées très récentes et qui seront bientôt intégrées à la RFC5. Pour faire très simple (trop simple même) toutes les informations (status de membre, certifications, DU, UTXO) seront représentrées par des jetons (tokens) et qui pourront être consommés pour produire de nouveaux jetons. Par exemple si je consomme le jeton “dernier DU consommé du membre A”, que je fourni (mais que je ne consomme pas) les jetons de l’identité du membre A ainsi que les jetons de 5 certifications qu’il a reçu, que tous ces jetons sont encore valides et que les signatures sont fournies, alors je pourrait créer un nouveau jeton “dernier DU consommé du membre A” actualisé à la date actuelle ainsi qu’un nouveau jeton UTXO contenant le DU produit, et qui pourra être utilisé dans d’autres transactions. La grande majorités des jetons ne sont pas stockés par tous les noeuds, mais leur preuve d’existence sera stocké dans chaque bloc sous la forme d’un arbre de Merkle.

Peut-être qu’il sera possible pour les utilisateur de définir leurs propres types de jetons qui suiveront des règles définies par des jetons “programmes”, mais ça ça viendra bien plus tard si c’est réalisable, vraiment utile et surtout si ça ne réduit pas trop le gain de scaling qu’apporte l’utilisation des jetons prouvables en premier lieu :wink:

Bref je ne vais pas plus détailler que ça, je dois rédiger et schématiser tout ça, ce qui va me prendre du temps; et l’expliquer à répétition prendrait encore plus de temps. Il faudrait surement attendre quelques jours ou semaines avant de pouvoir lire une description un tant soit peu formalisée de ces idées.

Edit : après reflexion, il pourrait être possible de faire des smart contracts, mais sous une forme différente que celle utilisée par Ethereum.

Edit : après plus de réflexion, il faut que je le formalise. Mais si mon idée est fonctionnelle, ça va envoyer du très lourd =D