Come convertire i byte ed25519 nella chiave pubblica Tezos
-
-
Questo risponde allatua domanda?[Comeeseguire l'hashing di una chiavepubblica Tezos] (https://tezos.stackexchange.com/questions/2016/how-to-hash-a-tezos-public-key)Does this answer your question? [How to hash a Tezos public key](https://tezos.stackexchange.com/questions/2016/how-to-hash-a-tezos-public-key)
- 0
- 2020-01-17
- utdrmac
-
Nonproprio.Sono anche un autore della domanda collegata;).Quello collegato riguarda la creazione di un hash di una chiavepubblicamentre questo riguarda la creazione di una chiavepubblica stessa: è unpassoprima.Not really. I am an author of the linked question as well ;) . The linked one is about creating a hash of a public key while this one is about creating a public key itself - it's a step before that.
- 0
- 2020-01-17
- K SS
-
1 risposta
- voti
-
- 2020-01-17
Puoitrovare queibytein fondo a questofile
https://gitlab.com/tezos/tezos/blob/master/src/lib_crypto/base58.ml
Neltuo caso,"\ 013 \ 015 \ 037 \ 217"
You can find those bytes at the bottom of this file
https://gitlab.com/tezos/tezos/blob/master/src/lib_crypto/base58.ml
In your case, "\013\015\037\217"
-
L'hoprovato.Ho `base58` codificatoi miei 36bytee ho ottenuto 49 caratteri`base58`.Quindi,aparteilprefisso,ho aggiunto anche 4byte casuali.Ho ricevuto 54 caratteri "base58",apartire da "edpk".Ciò significa cheilprefisso è chiaramente corretto,ma da dove ottengoi 4byte rimanentiper sostituirei miei casuali?I tried that. I `base58` encoded my 36 bytes and got 49 `base58` characters. Then apart from the prefix, I also appended 4 random bytes. I got 54 `base58` characters, starting from `edpk`. This means that prefix is clearly correct - but where do I get remaining 4 bytes to replace my random ones from?
- 0
- 2020-01-17
- K SS
-
Devi usarebase58Check che aggiunge alcunibyte da un hash dei datibinari come checksum.You have to use base58Check which appends some bytes from a hash of the binary data as a checksum.
- 0
- 2020-01-17
- Arthur B
-
Bello.Questomi dà una stringa di 55 caratteri cheinizia con "1edpk".Ho rimosso "1"iniziale (dovreifarlo?) E ho ottenuto qualcosa che assomiglia a una chiavepubblica Tezos valida.Tuttavia,dopo avertentato di creare un hashper questa chiavepubblica utilizzando [sotez] (https://www.npmjs.com/package/sotez) ho ricevuto "Errore: checksumnon valido".Questo suggerisce chei byte `ed25519` siano sbagliati?Tezos usa qualche variantepersonalizzata `ed25519`?L'implementazione che sto usandopergenerarei byte `ed25519` è [questa] (https://www.npmjs.com/package/ed25519).Nice. This gives me a 55 character string starting with `1edpk` . I removed leading `1` (am I supposed to do that?) and got something that looks like a valid Tezos public key. However, after attempting to create a hash for this public key using [sotez](https://www.npmjs.com/package/sotez) I got `Error: Invalid checksum` . Does this suggest that `ed25519` bytes are wrong? Does Tezos use some custom `ed25519` variant? Implementation that I'm using to generate `ed25519` bytes is [this one](https://www.npmjs.com/package/ed25519) .
- 0
- 2020-01-17
- K SS
-
Non sono sicuro di quelmodulo specifico,ma Sotez utilizza [libsodium-wrappers] (https://www.npmjs.com/package/libsodium-wrappers)pereseguire le suefunzioni crittograficheed25519.Puoifare riferimento a [questo] (https://github.com/AndrewKishino/sotez/blob/master/src/crypto.ts#L163)peresempio.I'm not sure about that specific module, but Sotez uses [libsodium-wrappers](https://www.npmjs.com/package/libsodium-wrappers) to perform its ed25519 crypto functions. You can reference [this](https://github.com/AndrewKishino/sotez/blob/master/src/crypto.ts#L163) for example.
- 0
- 2020-01-18
- AKISH
-
L'utilizzo di `libsodium`pergenerarei byte`ed25519`mi ha dato lo stessoerrore.Sembra che "1"inizialefacciaparte del checksum di "base58check" quindinon dovrebbeessere rimosso.Ma senon viene rimossa,la chiaveinizia con "1edpk" quindi,non sorprende che riceva "Error: Invalidprefix".Non hoidea di come risolverlo O_OUsing `libsodium` to generate `ed25519` bytes gave me the same error. It seems that leading `1` is a part of `base58check` checksum so it should not be removed. But if not removed, the key starts with `1edpk` so, unsurprisingly I'm getting `Error: Invalid prefix` . I have no idea how to work that out O_O
- 0
- 2020-01-20
- K SS
Hoprovato afarlo codificando
base58
codificandoed255191
byte della chiavepubblica. Considera unesempio di codice seguente:Stampa:
Una stringa
base58
che ho ottenuto è 10 caratteripiù corta di una chiavepubblica Tezoseffettiva. Questoe anche quell'argomento suggerisce che devo anteporre aimiei datied25519
alcunibytemagiciprima di codificarli conbase58
. Quali sono queibytemagici? Esiste una documentazione a riguardo?Grazie.
MODIFICA dopo la risposta di Arthur B:
Hoprovato ad aggiungerebyteprefisso:
\013\015\037\217
aed25519
byteprima di codificarli conbase58
. Tuttavia,ho 49 caratteri quando una vera chiavepubblica Tezos ha 54 caratteri. Dopo aver aggiunto altri 4byte casuali,ho ottenuto 54 caratteri desideratie un valore cheinizia conedpk
. Chiaramente questo significa cheilprefisso è corretto,ma da dove ottengoi 4byte rimanenti?MODIFICA dopo la discussionenei commenti:
Mancavano 4byteperché utilizzavo
base58
invece dibase58check
che ha 4byte aggiuntivi come checksum. Dopo aver utilizzatobase58check
ho ottenuto 55byte cheiniziano con1edpk
,quindi qualcosa che assomiglia a unindirizzo Tezospubblico validopreceduto da un1
.Ilproblema attuale è: quando si lavora con la chiave (inparticolare - calcolandoil suo hash) ho rimosso un
1
inizialee ho ottenuto 54 caratteri. Di conseguenza,una libreria che sto utilizzandopereseguire l'hashing di una chiave hagenerato unerroreInvalid checksum
. Chiaramente,1
faparte del checksumbase58check
. Tuttavia,senon viene rimosso,la chiave avrà unprefissonon valido. Unesempio di codice aggiornato hail seguente aspetto:Stampa:
Qualsiasi ulteriore aiuto sarebbemolto apprezzatoperchénon capisco comefarlofunzionarenonostante abbia letto MOLTO sull'argomento;)