Comment puis-je signaler un message avec mon grand livre?
3 réponses
- votes
-
- 2019-01-30
Tout ce que legrand livre sait commentfaireest d'offrir des signatures de différentstypes demessages que l'application client l'envoie.Donc,dans ce sens,votre questionfait référence davantage à la capacité du client Tezos,vous connectez votregrand livre à (noeud complet,Tezbox,etc.).
Pour lemoment,l'optionn'estpasproposée dans un clientpour signer desmessages de chaîne réguliers (de lamêmemanière à dire dans leportefeuille d'interfacegraphique Standard Bitcoin),la réponse à votre questionest donc "non".La chose laplusproche disponibleest avec lenoeud complet de signer desmessages d'octets avec la commande
./tezos-client sign bytes <data> for <src>
Qui demanderait une signature de votregrand livreest que l'on contrôle src
Cela étant dit qu'il s'agit d'unefonctionnalité utilepour avoiret vaut lapeine de demander à divers développeurs deportefeuille!
All that ledger knows how to do is to offer signatures of different kinds of messages the client app sends it. So in that sense your question refers more to capability of the Tezos client you are connecting your Ledger to (full node, tezbox etc...).
At the moment unfortunately the option is not offered in either client to sign regular string messages (similarly to say in the bitcoin standard gui wallet) so the answer to your question is "no". The closest thing that is available is with the full node to sign bytes messages with the command
./tezos-client sign bytes <data> for <src>
which would request a signature from your ledger is that one controls src
That being said it is a useful feature to have and worth requesting to various wallet developpers!
-
AVERTISSEMENT: `Signer des octets`peut signer destransferts,etc. Ilfautfaire attention à ce que les`
`sont. Warning: `sign bytes` can sign transfers, etc. One must be careful what the `` is.- 1
- 2020-01-07
- Tom
-
- 2019-02-14
AVERTISTIVATION : Lepiratage suivantest dangereux cariltraite votremessage sous laforme d'une opération quipourrait être réinterprété dans un contexte ultérieurpour signifier quelque chose que vousn'avezpasintention. Vouspouvez réellement convaincre legrand livre de signer des choses arbitraires actuellement.Il affichera un "signenonnon vérifié?"Invite:
tezos-client sign bytes 0x03$(echo "hi there!" | xxd -ps | tr -d '\n') for <account>
mais avoir une solutionentièrementpriseen charge à ce sujet où legrand livre vousmontre que lemessage (ou une version vérifiable de celui-ci) seraitidéal.
WARNING: The following hack is dangerous because it treats your message as an operation which could be reinterpreted in a later context to mean something you did not intend.
You can actually convince the ledger to sign arbitrary things right now. It will display a "Sign Unverified?" prompt:
tezos-client sign bytes 0x03$(echo "hi there!" | xxd -ps | tr -d '\n') for <account>
But having a fully supported solution to this where the ledger actually shows you the message (or some verifiable version of it) would be ideal.
-
AVERTISSEMENT: Ne signerezpas les choses arbitrairesen utilisant 0x03.0x03 signifie qu'une opération suit.Warning: do not sign arbitrary things using 0x03. 0x03 signifies that an operation follows.
- 1
- 2020-01-07
- Tom
-
Je suis content quetu sors ça.Cepiratage devrait être considéré comme risqué car ces signaturespouvaientfinirpar être réinterprété dans un contexte ultérieur,comme cela signifiait que vousn'avezpas l'intention.Espérons que Tezos soutiendra * desmessages arbitraires réels * à unmoment donné.I'm glad you point this out. This hack should be considered risky as those signatures could end up being reinterpreted in a later context as having meaning that you didn't intend. Tezos will hopefully support *real* arbitrary messages at some point.
- 0
- 2020-03-12
- Elliot Cameron
-
@Tomj'ai ajouté un avertissement à la réponse officielle.Merci.@Tom I added a warning to the official response. Thanks.
- 0
- 2020-03-12
- Elliot Cameron
-
- 2019-02-15
Iln'y apas de commandes Tezos-Clienttrèspratiques ou de RPCSpour vous aider,mais onpeut actuellement signer uneexpression de Micheline demanière conventionnelle comme celle-ci:
$ Tezos-Client Hash Data '"Bonjour,World"' detype string| Grep 'Data Emballe RAW:'| Cut -D: -f2 0x05010000000C68656C6C6F2C20776F726C64 $ Tezos-Client Déballez Michelson Data 0x05010000000C68656C6C6F2C20776F726C64 "Bonjour lemonde" $ Tezos-Client signent des octets 0x05010000000C68656C6C6F2C20776F726C64pour la clé ...
Unetelle signature sera acceptée,parexemple,par un contrat quifait
{push string "bonjour,monde"; PACK; Blake2b; Signaturepush ...; Touchepoussée ...; Check_signature; Affirmer}
.Cette conventionest utiliséeparexemplepar les contrats d'acquisition de Genesismultisig.
À compter d'aujourd'hui,l'application Wallet Ledgerne confirmerapas unetelle signature,affichant «la signaturenon vérifiée». Peut-être qu'unjour,il affichera le hachage affichépar
Données de hachage
.Jene me senspas à l'aise de décrire cela sansfournir un avertissement:
Ilpeut être dangereux de signer lesexpressions de Micheline.
Notez également que
Les octets
sont dangereux . Ilest crucial au-dessus que les octets étant signés commencentpar0x05
,ce quiindique classiquement qu'uneexpression de Micheline suit. Si les octets commencentpar0x01
-0x04
,ilspourraient signifier quelque chose d'autre ! (S'ils commencentpar0x03
,parexemple,ilspourraient signifier untransfert!)Généralement,preneztoujours soin desmessages que vous signez avec quelles clés.
N'oubliezpas que vos signatures sont valablespourtoujours,les situationsfutures sont égalementpertinentes.
Voir aussi deux anti-modèles de Michelsonpertinents,qui commencent àindiquer une complexité associéeici (dupoint de vue de l'auteur contractuel): Signatures uniquementn'empêchepas les attaques de replay , Ne supposezpas que les utilisateurs utiliseront une clé uniquepour chaque contratintelligent .
There are no very convenient tezos-client commands or RPCs to help with this yet, but one can currently sign a Micheline expression in a conventional way like this:
$ tezos-client hash data '"hello, world"' of type string | grep 'Raw packed data:' | cut -d: -f2 0x05010000000c68656c6c6f2c20776f726c64 $ tezos-client unpack michelson data 0x05010000000c68656c6c6f2c20776f726c64 "hello, world" $ tezos-client sign bytes 0x05010000000c68656c6c6f2c20776f726c64 for key ...
Such a signature will be accepted, for example, by a contract doing
{PUSH string "hello, world"; PACK; BLAKE2B; PUSH signature ...; PUSH key ...; CHECK_SIGNATURE; ASSERT}
.This convention is used for example by the genesis multisig vesting contracts.
As of today the Ledger wallet app will not confirm such a signature, displaying "Sign Unverified". Maybe someday it will display the hash displayed by
hash data
.I don't feel comfortable describing this without providing a warning:
It can be dangerous to sign Micheline expressions.
Note also that
sign bytes
is dangerous. It is crucial above that the bytes being signed start with0x05
, which conventionally indicates that a Micheline expression follows. If the bytes start with0x01
-0x04
, they might mean something else! (If they start with0x03
, for example, they might mean a transfer!)Generally, always take care which messages you sign with which keys.
Remember that your signatures are valid forever, so future situations are relevant too.
See also two relevant Michelson anti-patterns, which start to hint at related complexity here (from the contract author's perspective): Signatures alone do not prevent replay attacks, Do not assume users will use a unique key for every smart contract.
J'aimerais savoir s'il y a unmoyen de signer unmessage?Toute aide serait appréciée.Merci!