ed25519 바이트를 Tezos 공개 키로 변환하는 방법
-
-
이것이 귀하의 질문에 대답합니까?[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
-
별로.나는 링크 된 질문의 저자이기도합니다.).연결된 것은 공개 키의 해시를 생성하는 것이고,이 것은 공개 키 자체를 생성하는 것에 관한 것입니다. 그 전 단계입니다.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 대답
- 투표
-
- 2020-01-17
파일 하단에서 해당 바이트를 찾을 수 있습니다.
https://gitlab.com/tezos/tezos/blob/master/src/lib_crypto/base58.ml
귀하의 경우 "\ 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"
-
나는 그것을 시도했다.나는`base58`이 36 바이트를 인코딩했고 49 개의`base58` 문자를 얻었다.그런 다음 접두사 외에도 4 개의 임의 바이트를 추가했습니다.`edpk`부터 시작하여 54 개의`base58` 문자를 얻었습니다.이것은 접두사가 명확하게 정확하다는 것을 의미합니다. 그러나 임의의 것을 대체하기 위해 남은 4 바이트는 어디에서 얻습니까?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
-
바이너리 데이터의 해시에서 일부 바이트를 체크섬으로 추가하는base58Check를 사용해야합니다.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
-
좋은.이것은`1edpk`로 시작하는 55 개의 문자열을 제공합니다.나는 선행`1`을 제거하고 (그렇게해야합니까?) 유효한 Tezos 공개 키처럼 보이는 것을 얻었습니다.그러나 [sotez] (https://www.npmjs.com/package/sotez)를 사용하여이 공개 키에 대한 해시를 생성하려고 시도한 후`Error : Invalid checksum`이 표시되었습니다.이것이`ed25519` 바이트가 잘못되었음을 암시합니까?Tezos는 커스텀`ed25519` 변형을 사용합니까?`ed25519` 바이트를 생성하는 데 사용하는 구현은 [this one] (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
-
특정 모듈에 대해 잘 모르겠지만 Sotez는 [libsodium-wrappers] (https://www.npmjs.com/package/libsodium-wrappers)를 사용하여ed25519 암호화 기능을 수행합니다.예를 들어 [this] (https://github.com/AndrewKishino/sotez/blob/master/src/crypto.ts#L163)를 참조 할 수 있습니다.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
-
`libsodium`을 사용하여`ed25519` 바이트를 생성하면 동일한 오류가 발생했습니다.선행`1`은`base58check` 체크섬의 일부이므로 제거하지 않아야합니다.그러나 제거되지 않으면 키가`1edpk`로 시작하므로 당연히`Error : Invalidprefix`가 표시됩니다.어떻게 해결해야할지 모르겠어요 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
base58
공개 키 바이트를 인코딩하는ed255191
을 사용하여 시도했습니다. 다음 코드 샘플을 고려하십시오.인쇄 :
ed255191
문자열은 실제 Tezos 공개 키보다 10 자 더 짧습니다. 이것과 해당 주제 는ed255191
로 인코딩하기 전에 내base58
데이터에 마법의 바이트를 접두사로 추가해야한다고 제안합니다. 그 마법 바이트는 무엇입니까? 그것에 대한 문서가 있습니까?감사합니다.
<시간>Arthur B의 답변 후 수정 :
ed255191
인코딩하기 전에ed25519
바이트를base58
바이트에 추가하려고했습니다. 그래도 실제 Tezos 공개 키에 54자가있을 때 49자를 얻었습니다. 임의의 4 바이트를 추가 한 후 원하는 54 개의 문자와edpk
로 시작하는 값을 얻었습니다. 분명히 이것은 접두사가 정확하다는 것을 의미합니다. 그러나 남은 4 바이트는 어디에서 얻습니까?댓글 토론 후 수정 :
체크섬으로 추가 4 바이트가있는
base58
대신ed255191
을 사용하여 4 바이트가 누락되었습니다.base58
를 사용한 후1edpk
로 시작하는 55 바이트를 얻었습니다. 따라서1
앞에 추가 된 유효한 공개 Tezos 주소처럼 보입니다.현재 문제는 키로 작업 할 때 (특히 해시 계산) 선행
1
을 제거하고 54자를 얻었습니다. 그 결과 키를 해시하는 데 사용하는 라이브러리에서Invalid checksum
오류가 발생했습니다. 분명히1
은base58
체크섬의 일부입니다. 그래도 제거하지 않으면 키에 잘못된 접두사가 있습니다. 업데이트 된 코드 샘플은 다음과 같습니다.인쇄 :
이 주제에 대해 많이 읽었음에도 불구하고이 작업을 수행하는 방법을 이해하지 못하기 때문에 추가 도움을 주시면 감사하겠습니다.)