Comment fonctionne la signature de plusieurs personnes?

Sowmay Jain

Comment fonctionne la signature de plusieurs personnes?


J’avais créé un contrat intelligent DAO où environ 20 personnes votent pour des propositions. Ils font chacun de nouveaux Tx.

La signature hors ligne est agréable pour minimiser le coût du gaz. Vous vous demandez comment la signature hors ligne fonctionne avec les fonctions du contrat, cela aussi avec plusieurs personnes signant des votes différents?

J’ai entendu dire que plusieurs personnes signaient leur équilibre dans l’état des canaux du réseau d’éclairage.

Réponses


 hextet

Vous utilisez la signature de la même manière que si une personne signait. Chaque personne devra payer les frais de transaction nécessaires à la remise de sa signature. Cependant, vous pouvez créer une seule fonction qui analysera automatiquement tous les messages signés pour un prix légèrement inférieur à celui de la soumission d’une nouvelle transaction pour analyser chaque message signé. Vous pourriez potentiellement implémenter quelque chose comme des parachutages merkle ( https://blog.ricmoo.com/merkle-air-drops-e6406945584d )

Il y a quelques pièges qui viennent avec la vérification des messages signés, j’ai un ensemble de contrats et un programme de signature python qui démontrent le flux de travail nécessaire pour signer des messages:

Lors de la signature des messages, ils sont ajoutés avec les données suivantes: https://github.com/postables/Postables-Payment-Channel/blob/7d2f91bb060f80b139cab72b5fdff79d116f6210/solidity/ChannelsV4.sol#L12

J’ai également un script python qui peut être utilisé pour signer des messages: https://github.com/postables/Postables-Payment-Channel/blob/develop/python/signer.py

La fonction de solidité suivante détaille comment vérifier le message ORIGINAL qui a été signé, ainsi que le signataire du message signé: https://github.com/postables/Postables-Payment-Channel/blob/7d2f91bb060f80b139cab72b5fdff79d116f6210/solidity/ChannelsV4.sol# L257

La fonction de solidité suivante détaille comment vérifier le signataire d’un message: https://github.com/postables/Postables-Payment-Channel/blob/7d2f91bb060f80b139cab72b5fdff79d116f6210/solidity/ChannelsV4.sol#L192

Sowmay Jain

Vous avez dit « pour un peu moins cher ». Proportionnellement, combien le coût du gaz peut être économisé avec cette méthode indiquée?

hextet

Le montant exact que je n’ai pas été en mesure de calculer, mais chaque transaction que vous soumettez doit inclure un gaz de 21000, donc théoriquement, vous économisez 21K de gaz pour chaque transaction que vous ne soumettez pas. Certes, cela ne fonctionnera pas exactement comme ça, mais vous en économiserez.


 Edmund Edgar

Oui, vous pouvez demander aux gens de signer hors ligne, de rassembler toutes les signatures et de les envoyer dans le cadre de la section des données d’une seule transaction et de faire vérifier par le contrat le nombre de signatures valides. Cela devrait vous faire économiser de l’essence et permettra souvent de conclure un contrat plus simple.

Voir cet exemple de portefeuille multisig qui fonctionne comme ceci: https://medium.com/@ChrisLundkvist/exploring-simpler-ethereum-multisig-contracts-b71020c19037

Cependant, gardez à l’esprit que chaque signature que vous ajoutez augmentera le coût du gaz de la transaction qui les envoie, et le gaz total que vous pouvez utiliser dans une seule transaction est limité par la limite de gaz en bloc, qui peut changer. Par conséquent, si le nombre de signatures pouvant être requis est élevé ou illimité, vous devrez peut-être toujours rédiger le contrat afin que les signatures puissent être réparties sur plusieurs transactions.

 

#de, #la, comment, fonctionne, personnes, plusieurs, signature

 

yahoo

Laisser un commentaire

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