Come derivare la chiave pubblica tezos dai punti sulla curva (SECP256K1 o P-256)
1 risposta
- voti
-
- 2019-02-27
Le chiavipubblichein Tezos sono archiviatein forma compressa:
<1 byte prefix>|X
- Ilprefisso èb '\ x02' se Y èpari,b '\ x03' altrimenti,ora hai una chiave compressa di 33byte;
- Aggiungiilprefissotezosb '\ x03 \ xfe \ xe2V'per secp256k1,b '\ x03 \ xb2 \ x8b \ x7f'perp256;
- Codifica con algoritmo Base58 con checksum.
Controlla le pytezos.crypto fontiperesempi diimplementazione.
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.
-
Che cos'è "Y" qui?(Unerrore dibattitura,dovrebbeessere X?)What is `Y` here? (A typo, should be X?)
- 0
- 2020-01-17
- arvidj
-
X,Yprovengono dall'equazione della curvaellittica,per 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
Comeposso derivare la chiavepubblica Tezos daipunti x,y sulla curva (o
SECP256K1
oP-256
)?Adesempio,per Ethereumpuoi calcolarlo utilizzando
Keccak-256
su[x,y]
. L'indirizzo viene quindi ottenutoprendendogli ultimi 40byte (20 caratteriesadecimali)e anteponendogli 0xper untotale di 42byte.