Vous êtes sur la page 1sur 2

ENSA (Oujda) Cryptomonnaie – 5 ème Année SIC

Année 2022-2023 Dr. H.Ouadfel

TD °3 – correction

Transactions/P2PK/P2SH/CHECKMULTISIG

Exercice 1: Répondre par vrai ou faux.


L’opération CHECKMULTISIG sert les objectifs suivants :
1. Permet de faire un paiement joint à partir de plusieurs inputs en vérifiant les
signatures individuelles des émetteurs de fonds.
2. Permet de transférer des fonds à plusieurs destinataires (disons n) qui peuvent les
utiliser si t destinataires parmi ces n destinataires sont capables de fournir des
signatures valides.
3. Est possible seulement avec le P2SH protocole et non pas le P2PK protocole de
paiement
4. Est l’opération la plus utilisée par les usagers de Bitcoin après CHECKSIG

Exercice 2: Répondre par vrai ou faux


Le protocole de paiement P2SH (Pay to Script Hash):

1. A été ajouté au code source de Bitcoin en 2012.


2. A fait parti du code source de Bitcoin depuis son lancement par son créateur en
2009.
3. Permet d’envoyer des fonds à des scripts complexes et non à de simples adresses
Bitcoin.
4. Remplace un script complexe (« locking script ») en lui substituant une simple
empreinte obtenue par hachage du script.
5. Permet d’alléger le pool des UTXO’s (« Unspent Transaction Outputs »), c.-à-d., les
outputs des transactions non encore dépensées, stockées sur la RAM des « full
nodes », c-a-d, ces participants du réseau Bitcoin ayant la charge de vérifier le flux
de toutes les transactions émises dans le réseau.
6. Transfère la charge d’une transaction (en termes de taille) dans le temps : du
moment où les fonds sont transférés au moment où ils seront à nouveau dépensés.
7. Transfère les frais de transaction de l’émetteur des fonds au bénéficiaire des fonds.
8. Elargit l’éventai des transactions possibles en permettant d’implémenter par exemple
des contrats intelligents (« smart contracts »)

Exercice 3 (ESCROW Transactions):


Alice et Bob utilisent Bitcoin. Alice veut acheter à Bob une marchandise d’une valeur de 3
BTC. Elle transfère les 3 BTC à Bob mais voudrait s’assurer que Bob honore sa part du
marché et lui envoie la marchandise convenue. Pour cela elle sollicite, en accord avec Bob,
une tierce partie, appelons-la Judy, qui jouera le rôle de Juge en cas de litige entre Alice et
Bob. Bob pour sa part voudrait être sûr qu’il sera payé pour sa marchandise et qu’Alice ne lui
fera pas défaut. Une solution est:
 Alice envoie les fonds à Alice, Bob et Judy utilisant CHECKMULTISIG (appelée
transaction par ESCROW),
 Si Alice reçoit la marchandise et est satisfaite elle signe avec Bob une nouvelle
transaction où elle transfère l’argent à Bob (le cas le plus probable si Alice et Bob sont
tous deux honnêtes)
 Sinon, si Alice est insatisfaite mais Bob estime qu’il a rempli sa part du marché, alors
Judy intervient pour résoudre le litige : suivant son jugement deux cas sont possibles :
a. Judy est favorable à Alice : Alors Alice et Judy signent une nouvelle transaction
transférant l’argent à Alice,
b. Judy est favorable à Bob: Alors Bob et Judy signent une nouvelle transaction
transférant l’argent à Bob

1) Former la transaction ESCROW de l’étape 1


2) Former la transaction suivante en cas de non litige de l’étape 2
3) Former la transaction suivante en cas de litige, mais Judy est favorable à Alice de l’étape
3.a.
4) Former la transaction suivante en cas de litige, mais Judy est favorable à Bob de l’étape
3.b.

Exercice 4 (P2SH Transactions):


Mohammed est un entrepreneur avec 3 associés Assoc1, Assoc2 et Assoc3. Sa compagnie
a embauché un conseiller juridique en la personne de Mourad. La compagnie livre des
machines de travaux publiques à ses clients et accepte de se faire payer en Bitcoin. Mais
tout paiement reçu, pour être dépensé, doit être signé par au moins deux personnes parmi
les 5 précités.

1) Montrer comment la compagnie peut utiliser le P2SH protocole pour former une adresse
qu’elle fournira à ses clients pour se faire payer.
2) Ecrire le « redeem script » formé par Mohammed et ses associés.
3) Si (Mohammed_et_Assoc) est l’adresse fournie par la compagnie à ses clients, écrire le
« locking script » rédigé par un client lambda payant la compagnie 6BTC par exemple.
4) Former une transaction où la compagnie dépense cet argent pour payer Mourad pour
ses services pour un montant de 3 BTC. Admettons pour cela que Mohammed et deux
de ses associés (disons Assoc1 et Assoc2) sont absents et ne peuvent pas signer de
dépense. Prévoir un output ou la compagnie récupère son change.

Vous aimerez peut-être aussi