Migrate identity (identity.changeOwnerKey())

Tu doit signer un message avec la nouvelle clé et insérer uniquement la signature, le message étant connu par la blockchain, ça ne servirait à rien de le fournir. voici le message à signer:

"icok" ++ GENESIS_HASH ++ IDTY_INDEX ++ OLD_OWNER_KEY

Tout doit être encodé et concaténé en binaire.

  • "icok" c’est juste un préfixe constant pour s’assurer qu’on signe bien pour cette opération et pas une autre, icok correspondant aux initiales de identity change owner key. Encodé en ASCII ou utf8 c’est pareil, en hexa ça donne 0x69636F6B.
  • GENESIS_HASH pour empêcher le rejeu sur un autre réseau.
  • IDTY_INDEX pour identifier l’identité pour laquelle on veut changer de clé publique. Doit être encodé en little endian non-signé sur 4 octets.
  • OLD_OWNER_KEY l’ancienne clé publique, pour empêcher le rejeu sur le même réseau. Ça implique qu’il ne faut jamais revenir à une ancienne clé.
2 Likes