Ah oui, ok pour les 2^160 adresses, effectivement ça limite les doublons ! Donc à la création d'une adresse (par multibit), il n'y a pas de vérification sur le réseau pour savoir si, à tout hasard, elle existe déjà ?
Ceci étant dit, que ce passerait t-il si deux adresses "identiques" venaient à faire une transaction en même temps ?
C'est impossible, le protocole ne vérifie pas.
Si il y a collision (si deux clés privées donne la même clé publique). Deux personnes pourrons dépenser les transactions recues par une adresse.
Et inversement, une adresse peut contenir plus de bitcoins que nécessaire. Ce qui se passe alors, c'est que la transaction va s'effectue, le montant que tu désire envoyé va partir a ton adresse cible et le reste retournera a ton adresse de retour.
Hum, désolé, je comprends toujours pas ce
reste.
Si j'ai 1 BTC dans mon wallet et que l'objet que je veux acheter coûte 0.5 et que je paye effectivement 0.5 : les 0.5 que je n'ai pas dépensés ne sont pas censés rester dans mon wallet ?
En fait, le protocole ne dépense pas un quantité de bitcoin recues par une adresse, mais effectue une transaction et la liant à une ou plusieurs précédentes.
Un exemple, soit un wallet ayant recu 4 transactions sur la clé publique add1:
tx1 (2 btc)
tx2 (2 btc)
tx3 (2 btc)
tx4 (10 btc)
Si tu veut dépenser par exemple 13 btc, le protocole va faire une transaction tx5 (lié à tx1, tx2, tx4), mais ca dépasse.
Il va te rembourser sur une adresse de change (add2) de 1 btc.
Dans ton wallet tu a bien au final 3 btc (tx3 et tx5), mais concernant deux adresses différentes add1 et add2.
Si tu perd la clé privée correspondant a add2, tu perd son solde.