Como derivar a chave pública de Tezos dos pontos na curva (SECP256K1 ou P-256)
1 responda
- votos
-
- 2019-02-27
Chavespúblicasem Tezos são armazenadosem forma compactada:
<1 byte prefix>|X
- .
- prefixo é B '\ x02' Se y émesmo,B '\ x03' caso contrário,agora vocêtem uma chave compactada de 33bytes longos;
- Adicionarprefixo de Tezos B '\ x03 \ xfe \ x03'para secp256k1,b '\ x03 \ xb2 \ x8b \ x7f'parap256;
- codifique com o Base58 Algo com soma de verificação.
checkout pytezos.crypto fontesparaexemplos deimplementação.
Public keys in Tezos are stored in compressed form:
<1 byte prefix>|X
- Prefix is b'\x02' if Y is even, b'\x03' otherwise, now you have a compressed key of 33 bytes long;
- Add tezos prefix b'\x03\xfe\xe2V' for secp256k1, b'\x03\xb2\x8b\x7f' for p256;
- Encode with Base58 algo with checksum.
Checkout pytezos.crypto sources for implementation examples.
-
O que é 'y' aqui?(Umerro de digitação deve ser x?)What is `Y` here? (A typo, should be X?)
- 0
- 2020-01-17
- arvidj
-
X,y são daequação de curvaelíptica,para secp256k1 é `y ^ 2=x ^ 3 + 7`X, Y are from the elliptic curve equation, for secp256k1 it's `y^2 = x^3 + 7`
- 0
- 2020-01-17
- Michael Zaikin
Comoposso derivar a chavepública de Tezos de x,y apontana curva (
SECP256K1
ouP-256
)?Porexemplo,para Ethereum,vocêpode calcularisso usando o
Keccak-256
no[x,y]
. Oendereço éentão obtidotomando os últimos 40bytes (20 chars hex)e prefixando-o com 0xpara umtotal de 42bytes.