Support IVY : Encyclopédie #1 et site d'informations, Conseils, Tutorials, Guides et plus
  • Accueil
  • Astuces
  • Magazine
    • Conseil en relations
      • Astuces
    • Rédaction & écriture
    • Web Design
    • Réseaux sociaux
      • Facebook
  • Lifestyle
    • Food
  • Ressources
    • Questions & Réponses
    • Graphique
      • PixelArt
No Result
View All Result
Support IVY : Encyclopédie #1 et site d'informations, Conseils, Tutorials, Guides et plus
  • Accueil
  • Astuces
  • Magazine
    • Conseil en relations
      • Astuces
    • Rédaction & écriture
    • Web Design
    • Réseaux sociaux
      • Facebook
  • Lifestyle
    • Food
  • Ressources
    • Questions & Réponses
    • Graphique
      • PixelArt
Support IVY : Encyclopédie #1 et site d'informations, Conseils, Tutorials, Guides et plus
No Result
View All Result
Home Cryptomonnaie

Blockchain Democracy – The Startup

8 mai 2020
in Cryptomonnaie
Reading Time: 21 mins read
Blockchain Democracy – The Startup

Table des matières

ArticlesA lire

Bitcoin bull market is back – The Startup

Le marché haussier du Bitcoin est de retour – Sajjad Hussain

Crypto City Zeroing d’Akon sur le Sénégal – Akoin and the Aftermath

Crypto City Zeroing d’Akon sur le Sénégal – Akoin and the Aftermath

Merkle Trees: de plus en plus en usage – EricB10

Merkle Trees: de plus en plus en usage – EricB10

Analyse du marché Bitcoin – La startup

Analyse du marché Bitcoin – La startup

Blockchain Democracy – The Startup

Un guide pratique pour les développeurs de contrats intelligents

Alberto Cuesta Cañada
Photo de Markus Spiske provenant de Pexels

Lorsque vous votez pour quelque chose, comment savez-vous que quelque chose sera réellement fait? Comment savez-vous que les promesses seront tenues?

Dans cet article, je vais vous donner un aperçu de la façon dont la blockchain peut changer la démocratie. Avec un processus démocratique blockchain, les promesses deviennent des actions.

Je ne vais pas dire que nous pouvons ou devons supprimer les politiciens et installer une technocratie, mais je vais montrer comment gérer un système de vote où les propositions seront automatiquement adoptées si le vote réussit.

On pourrait appeler cela une démocratie imparable.

Design conceptuel

Pour commencer, permettez-moi de préparer le terrain avec deux qualités de contrat intelligent:

  • Un contrat intelligent est un programme immuable. Les règles codées dans un contrat intelligent ne peuvent pas être modifiées. Une fois déployé, il ne peut pas non plus être arrêté.
  • Un contrat intelligent peut également déclencher des actions sur d’autres contrats intelligents. Par exemple, un contrat intelligent peut en déclencher un autre pour débloquer des fonds sur un certain compte ou pour donner à quelqu’un la permission d’exécuter certaines transactions.

En appliquant ces concepts, nous pouvons coder un contrat intelligent qui exécute un processus de vote équitable, selon des règles claires que tout le monde peut voir. Dans ce contrat intelligent, nous pouvons inclure une proposition, qui est un appel à une fonction dans un autre contrat intelligent.

Le vote aura lieu, quoi qu’il arrive. Si le vote réussit, la proposition sera adoptée, quoi qu’il arrive.

Ethereum et démocratie

Le vote est l’un des piliers de la démocratie, et c’est également l’un des principaux éléments constitutifs d’Ethereum.

On pense que Vitalik Buterin a rompu avec Bitcoin et a proposé à Ethereum de créer une plate-forme qui permettrait la mise en œuvre d’organisations démocratiques, en utilisant les principes que nous avons décrits ci-dessus.

Ces organisations démocratiques basées sur la blockchain sont connues sous le nom de Organisations autonomes décentraliséesou DAO pour faire court. Les DAO sont dirigés par leurs parties prenantes, avec des règles encodées dans un contrat intelligent blockchain et sans contrôle central.

Lorsque vous votez pour quelque chose, comment savez-vous que quelque chose sera réellement fait? Comment savez-vous que les promesses seront tenues?

Lire le article wikipedia pour les DAO est très intéressant. Il révèle à quel point l’idée d’un DAO a été conçue et à quel point elle était puissante. Daniel Larimer (de renommée BitShares, Steem et EOS.IO) a proposé le concept et l’a implémenté dans BitShares dès 2013. Ensuite, vous avez également Le DAO (Đ) qui, avant d’être piraté, a réussi à attirer 14% de l’éther en circulation dans son organisation axée sur l’investissement.

Cependant, la disparition de « The DAO » ne signifiait pas la disparition de « the DAO ». Organisations autonomes décentralisées sont bien vivants, maintenant que la vulnérabilité qui a tué The DAO est bien connue et facilement évitée.

Vlad Farcas et j’ai commencé un projet DAO jouet, car nous voulions apprendre à appliquer le motif. En codant un DAO, j’ai compris les possibilités de processus démocratiques dans la blockchain, et cela m’a époustouflé. C’est pourquoi j’écris ceci.

Présentation terminée, examinons le code. Comment peut-on le faire?

Adopter des propositions de contrats intelligents

Considérez le contrat ci-dessous:

contract Proposal {
address public targetContract;
bytes public targetCall;
/// @param targetContract_ The address of the target contract for
/// a proposal to be enacted.
/// @param targetCall_ The abi encoding of a function call in the
/// target contract, with arguments
constructor(
address targetContract_,
bytes memory targetCall_,
) public {
targetContract = targetContract_;
proposalData = targetCall_;
}
/// @dev Function to enact one proposal of this voting.
function enact() external virtual {
(bool success, ) = targetContract.call(targetCall);
require(success, “Failed to enact proposal.”);
}
}

Ce contrat fait de la magie de bas niveau, mais il n’est pas trop difficile à expliquer. Au déploiement, il faut l’adresse d’un autre contrat et un appel de fonction. En appelant enact() il exécute l’appel de fonction sur le contrat cible.

L’encodage de la proposition peut être fait avec web3j. En javascript, l’exemple ci-dessous a Proposal est déployé qui frappera un ERC20 jeton lorsqu’il est adopté.

token = await ERC20Mintable.new(‘Token’, ‘TKN’, 18);
proposalData = web3.eth.abi.encodeFunctionCall(
{
type: ‘function’,
name: ‘mint’,
payable: false,
inputs: [
{name: ‘account’, type: ‘address’},
{name: ‘amount’, type: ‘uint256’},
],
},
[owner, ‘1’]
);
proposal = await Proposal.new(token.address, proposalData);

web3.eth.abi.encodeFunctionCall est un peu bavard, mais la seule chose qu’il fait est de compresser une signature de fonction et des arguments dans 32 octets de données.

Son premier paramètre désigne la signature en tant que fonction, appelée mint, non payable, avec un address paramètre appelé account et un autre uint256 paramètre appelé amount. Le deuxième paramètre attribue des valeurs aux paramètres comme owner compte défini ailleurs, et le amount de jetons à frapper comme 1.

Il existe des moyens beaucoup plus faciles pour qu’un contrat appelle une fonction sur un autre contrat. Jusqu’à présent, il est difficile de voir pourquoi nous ferions les choses de cette manière trop compliquée.

Continuez à lire, nous allons maintenant démocratiser cette proposition. Voyons un contrat qui promulgue des propositions, mais seulement après un vote réussi.

Un jeton, un vote

Vous pouvez trouver ceci contrat dans le référentiel HQ20, n’hésitez pas à jouer avec, mais ne l’utilisez pas tel quel dans un but réel. Pour faciliter la compréhension, nous n’avons pas corrigé un certain nombre de vulnérabilités, par exemple contre les attaques de prêt flash.

Dans ce OneTokenOneVote.sol:

  • Les votes sont des jetons d’un contrat ERC20, choisis au moment du déploiement.
  • Voter signifie transférer des jetons vers OneTokenOneVote en utilisant vote()
  • Une proposition est adoptée si à tout moment OneTokenOneVote détient une proportion supérieure à la threshold de tous les jetons en circulation.
  • Une fois la proposition acceptée, elle reste dans le passed état pour toujours.
  • Les électeurs peuvent cancel leurs votes et récupérer leurs jetons à tout moment, mais s’ils veulent que la proposition soit adoptée, ils doivent le faire après son adoption.
  • Tout le monde peut déclencher le dépouillement du vote en appelant validate(). Cela fera passer le vote si le threshold est rencontré.

Il y a plusieurs façons de mettre en œuvre un vote. Il existe des moyens plus sûrs de voter, notamment en exigeant le quorum. OneTokenOneVote.sol était l’exemple le plus simple auquel nous pouvions penser, mais il suffit de montrer les principes de la démocratie blockchain.

Lorsque le vote est déployé, il accepte comme proposition un targetContract et targetFunction avec ses paramètres encodés. Si le vote réussit, le enact() La fonction peut être appelée par n’importe qui pour exécuter la proposition.

Cela signifie que le contrat de vote comprend les mesures à prendre en cas de réussite du vote. Il n’est pas possible d’ignorer le résultat du vote. C’est le peu qui était impossible avant la blockchain, pensez-y.

Démocratie Smart Contract

Il y a une autre tournure que nous pouvons donner à ce concept de démocratie blockchain. Jusqu’à présent, nous savons comment déployer un contrat qui exécutera un processus de vote et ensuite adopter le résultat.

Nous pourrions coder un contrat où toutes les fonctions pourraient seulement être exécutées si elles ont été votées ainsi. C’est l’esprit d’un DAO, et c’est plus facile qu’il n’y paraît.

Dans le référentiel, nous avons inclus un troisième contrat, Democratic.sol, que je trouve vraiment passionnant à utiliser. Il permet à tout contrat de voter sur l’opportunité d’exécuter l’une de ses fonctions.

  • Democratic.sol est conçu pour être hérité par d’autres contrats, permettant de marquer toutes les fonctions en eux comme exécutables uniquement s’ils ont voté. Vous feriez cela en utilisant le onlyProposal modificateur.
  • Democratic.sol permet à quiconque de soumettre une proposition au vote. le propose() la fonction peut être utilisée par n’importe qui, avec la fonction cible encodée avec web3.eth.abi.encodeFunctionCall.
  • Les jetons de vote seront les mêmes pour toutes les propositions, créant une communauté comme avec les jetons MKR dans MakerDAO. Democratic.sol implémente tous les votes sur la base de jetons, mais cela pourrait facilement être changé en compte.
  • Les propositions sont toutes stockées dans un proposals et seules les propositions créées par le même contrat peuvent exécuter des fonctions marquées comme onlyProposal.

Si vous y pensez, vous pouvez utiliser Democratic.sol et OneTokenOneVote.sol comme le base d’un système démocratique complet. Si vous ne trouvez pas ça excitant, je ne sais pas quoi vous dire d’autre.

Conclusion

La blockchain a le potentiel de changer les processus démocratiques à un degré jamais vu auparavant de notre vivant.

En utilisant la blockchain, il est possible de mettre en œuvre des votes imparables, que personne ne peut éviter d’être adopté s’ils passent. Alors que de plus en plus de notre monde est accessible à partir de la blockchain, le pouvoir de la démocratie augmentera.

Dans cet article, nous avons montré comment mettre en œuvre des procédures de vote qui peuvent déclencher des exécutions de contrats intelligents, et l’avons affiné pour produire des contrats intelligents dont les fonctions peuvent seulement être exécuté par des processus démocratiques.

Rien de tout cela n’est nouveau dans l’écosystème de la blockchain, ces concepts ont été étudiés et mis en œuvre depuis la conception d’Ethereum. Cependant, dans ces contrats, nous pensons que nous fournissons des éléments de base faciles à utiliser pour faire avancer la démocratie un peu plus loin.

ShareTweetPin

Related Posts

Bitcoin bull market is back – The Startup
Cryptomonnaie

Le marché haussier du Bitcoin est de retour – Sajjad Hussain

Le marché haussier du Bitcoin est de retour - Sajjad Hussain Après les dizaines de milliers de dollars éphémères début...

Crypto City Zeroing d’Akon sur le Sénégal – Akoin and the Aftermath
Cryptomonnaie

Crypto City Zeroing d’Akon sur le Sénégal – Akoin and the Aftermath

Crypto City Zeroing d'Akon sur le Sénégal - Akoin and the Aftermath

Merkle Trees: de plus en plus en usage – EricB10
Cryptomonnaie

Merkle Trees: de plus en plus en usage – EricB10

Merkle Trees: de plus en plus en usage - EricB10 Ralph C. Merkle ( photo ci-dessus), né en 1952, est...

Analyse du marché Bitcoin – La startup
Cryptomonnaie

Analyse du marché Bitcoin – La startup

Analyse du marché Bitcoin - La startup D'accord, continue. Nous ne parlons pas de ces problèmes de coûts. Comme je...

Next Post
Business : d’une idée à un plan (+ modèle de Notion)

Business : d'une idée à un plan (+ modèle de Notion)

Impressions après 6 mois et 6 000 miles avec la gamme standard Tesla Model 3 +

Impressions après 6 mois et 6 000 miles avec la gamme standard Tesla Model 3 +

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

  • Accueil
  • Questions & Réponses
  • Science
  • Astuces
  • Business
  • Cryptomonnaie
  • Design
  • Marketing
  • Programmation
  • Politique de confidentialité
  • A propos
  • Contact

© 2018-2020 SupportIVY - Premium Magazine.

No Result
View All Result
  • Accueil
  • Astuces
  • Magazine
    • Conseil en relations
      • Astuces
    • Rédaction & écriture
    • Web Design
    • Réseaux sociaux
      • Facebook
  • Lifestyle
    • Food
  • Ressources
    • Questions & Réponses
    • Graphique
      • PixelArt