[Protocole] Paiement vers une adresse

Le CRC ? Le Pubkey+CRC ? Pour moi oui, c’est aussi uniquement côté client que ça a du sens !

Si je reprends l’algo Bitcoin, alors je pourrais lister 4 fonctions :

  • ADDRESS(pubkey) = RIPEMD-160(SHA256(pubkey))
  • G1PREFIX() = "3201"
  • CRC(pubkey) = 1ST_8BYTES(SHA256(SHA256(G1PREFIX() + ADDRESS(pubkey))))
  • G1-CRC-ADDRESS(pubkey) = G1PREFIX() + ADDRESS(pubkey) + CRC(pubkey)

Donc au niveau du protocole, on ne ferait qu’utiliser la fonction ADDRESS, les 3 autres fonctions étant spécifiques aux clients.

Tu as raison en plus c’est évident, sinon une même clé publique ne pourrait pas être utilisée à la fois sur Ğ1 et Ğ1-Test pour un paiement par adresse. Seule la fonction ADDRESS est commune, c’est donc elle qui est la plus appropriée pour faire partie du protocole.

T’as éclairci ma compréhension de l’algo Bitcoin, je n’avais pas vu cette décomposition :slight_smile:

1 Like

Pour utiliser une source générée par une adresse, comment est-ce que ça va se passer ?

Ça se passerait de façon très similaire à une dépense/paiement avec/vers une clé publique.

Paiement vers une adresse

On envoie de la monnaie vers une adresse g1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2 avec la condition de verrouillage ADR à la place de SIG. Voici un exemple qui envoie 2,48 unités de monnaie à cette adresse :

248:0:ADR(g1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2)

Dépense depuis une adresse

Le processus est rigoureusement identique à une dépense normale, avec la fonction de déverrouillage SIG :

248:0:T:F98BF7A8BF82E76F5B69E70CEF0A07A08BFDB03561955EC57B254DB1E958529C:1

Se déverrouille avec SIG(0) si l’émetteur de la transaction est la clé publique pubkey telle que ADDRESS(pubkey) = g1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2.

Donc au final, seul le paiement change en ajoutant une autre condition de verrouillage ADR.

1 Like