Como converter Ed25519 bytes para a chave pública de Tezos
-
-
Isso responde suapergunta?[Como Hash A Tezos Public Key] (https://tezos.stackexchange.com/Questions/2016/How-to-hashash-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
-
Na verdade.Eu sou autor dapergunta ligadatambém;).O vinculado é sobre criar um hash de uma chavepúblicaenquantoesta é sobre a criação de uma chavepública - é umpasso antes disso.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 responda
- votos
-
- 2020-01-17
Vocêpodeencontraressesbytesnaparteinferior deste arquivo
https://gitlab.com/tezos/tezos/blob/master/src/lib_crypto/base58.ml
no seu 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"
-
Eutentei isso.Eu `Base58` codimeus 36bytese tenho 49 caracteres debase58`.Depois,além doprefixo,eutambém anexi 4bytes aleatórios.Eutenho 54 caracteres debase58`,começando de 'edpk`.Isso significa que oprefixoestá claramente correto -mas ondefaço restantes 4bytespara substituirmeus aleatórios?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
-
Vocêtem que usarbase58Check,que acrescenta algunsbytes de um hash dos dadosbinários como uma soma de verificação.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
-
Legal.Issome dá uma corda de 55 caracteres que começa com `1DPK`.Eu removi liderando `1` (Eu devofazerisso?) Etenho algo que separece com uma chavepública de Tezos válida.Noentanto,depois detentar criar um hashparaesta chavepública usando [Sotez] (https://www.npmjs.com/package/sotez)eutenho 'Erro: Checksuminválido'.Isso sugere que osbytes "ed25519"estãoerrados?Tezos usa alguma variantepersonalizada `Ed25519`?Implementação queestou usandoparagerar 'bytes'ed25519` é [este] (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
-
Nãotenho certeza sobreessemóduloespecífico,mas Sotez usa [Libsódio-wrappers] (https://www.npmjs.com/package/libsodium-wrappers)paraexecutar suasfunções de Crypto ED25519.Vocêpode referenciar [isto] (https://github.com/andrewkishino/sotez/blob/master/src/crypto.ts#l163)porexemplo.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
-
Usando `libsódio`paragerar 'ed25519`bytesme deu omesmoerro.Parece que oprincipal `1 'é umaparte da soma de verificação` Base58Check`,porissonão deve ser removido.Mas senãofor removido,a chave começa com `1edpk`então,sem surpresa Estou recebendo 'erro:prefixoinválido'.Eunãotenhoideia de comotrabalharisso 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
Eutentei fazerissopor
base58
codificaçãoed255191
bytes da chavepública. Considere uma amostra de código a seguir:Imprime:
Abase58 string que recebi é 10 caracteresmais curtos que uma chavepública de Tezos real. Isso,e também Essetópico sugere queeupreciseprefixarmeu código
ED25519
com algunsbytesmágicos antes de codificá-lo combase58
. Quais sãoessesbytesmágicos? Existe uma documentação sobreisso?obrigado.
editar após a resposta de Arthur B:
Eutentei anexarbytesprefix:
\ 013 \ 015 \ 037 \ 217
paraed25519
bytes antesbase58
codificando-os. Ainda assim,recebi 49 caracteres quando uma chavepública Tezos realtem 54 caracteres. Depois de anexar 4bytes aleatórios adicionais,eu recebi 54 caracterese um valor queinicia comedpk
. Claramenteisso significa que oprefixoestá correto -mas ondefico restando 4bytes?editar após discussãoem comentários:
4bytesestavamfaltando devido amim usando
base58
em vez debase58Check
quetem 4bytes adicionais como uma soma de verificação. Depois de usarBase58Check
Eutenho 55bytes começando com1edpk
-então algoparecido com umendereço Tezospúblico válido Preparado com um1
.Oproblema atual é: Aotrabalhar com a chave (especificamente - Computando seu hash) removi um líder
1
e tenho 54 caracteres. Como resultado,umabiblioteca queestou usandopara Hash A Keyjogou umerro de verificaçãoinválido . Claramente,1
é umaparteBase58Check
CheckSum. Ainda assim,senãofor removido,a chave vaiter umprefixoinválido. Uma amostra de código atualizada é assim:Imprime:
Qualquer ajuda adicional comisso seriamuito apreciada comoeunãoentendo comofazerissofuncionar apesar de lermuito sobre otópico;)