create account

Bitcoin: Proof of Work by moh4m

View this thread on: hive.blogpeakd.comecency.com
· @moh4m ·
$0.08
Bitcoin: Proof of Work
# Bitcoin: Proof of Work 

## <u>1 idée, 2 problèmes</u> :
L'idée de la blockchain bitcoin fait malheureusement face à deux problèmes majeurs:
- **La double transaction**: comment s'assurer de ne pas accepter deux transactions identiques en même temps ?
- **Les généraux byzantins**: comment s'assurer qu'un nœud intermédiaire lors d'échanges ne vienne introduire des *informations erronées* ?

Pour le premier problème, cela peut être résolu en utilisant différents nœuds qui viendront vérifier les transactions.
Cependant, pour le second, il faudra trouver une façon de s'assurer qu'un nœud ai dit la vérité, et c'est là qu'intervient l'algorithme de consensus. 

### <u>Proof of Work</u>
la blockchain bitcoin se base sur le protocole de consensus : Proof of Work.</br>
C'est un système de validation basé sur la résolution d'un problème dit **difficile à prouver**, mais **facilement vérifiable**.
On viendra un plus tard pour expliquer pourquoi un tel système de vérification est utilisé, mais avant cela une mise au point sur la constitution d'un block dans la chaîne bitcoin est nécessaire.

## <u>Bitcoin block header</u> :
![block_header.png](https://files.peakd.com/file/peakd-hive/moh4m/23tSzR6hh3wvukkLr4sYj7PhcKc9byQjbhZU9WW1zp2EoYNg1aAagZZ7FDL7NfbGttYSf.png)


- **Version number**: Numéro de la version du block, il est mis à jour avec le nouveau protocole à suivre de la chaîne bitcoin.
- **Previous block hash**: C'est le hash du block précèdent.
- **Merkle root**: C'est un arbre de hashage contenant le hash de chacune des transactions, grâce à celà il sera impossible de venir modifier une transaction après le hashage.
- **Time**: Heure à laquelle le mineur à commencer le calcul du hash du block.
- **Nbits**: C'est une version encodé du *target treshold*, c'est à dire le seuil du hash que le mineur calcul et qui ne doit pas dépasser pour faire valider le block. 
- **Nonce**: Un nombre de 32 byte choisi aléatoirement afin de faire varier le calcul du hash en dessous du seuil.

**le mineur est le nœud effectuant les calculs nécessaires pour valider un block.

## <u>Système de fonctionnement de l'algorithme</u>
L'algorithme de vérification s'inspire d'Hashcash, un algo bien connu utiliser pour la rémédiation aux mails spams.
![compute_step.png](https://zupimages.net/up/22/47/3y43.png)
*lien vers l'image: zupimages.net/up/22/47/3y43.png*

- **Ajustement de la difficulté**:
  On mesure la difficulté par l'effort qu'il faut pour résoudre le  problème.
    Celle-ci s'ajuste automatiquement tous les 2016 blocks crées dans le réseau à l'aide d'une fomule qui repose sur le *target treshold*.
    La difficulté doit être telle que il doit être possible de générer 1 block toute les 10 minutes environ.

- **Récupération et calcul de toutes les informations nécessaires à notre block**: 
  Nous récuperons ou calculerons toutes les informations relatives au block header.</br>En ce qui concerne le *merkle root* ,c'est le nœud qui choisira le nombre de transaction qu'il souhaite inclure dans son arbre (Parmi toutes les transactions faites à partir du dernier nœud crée).

- **Concaténation des informations et choix du nonce**:
  Les informations seront concaténées entre elles afin de former un message puis à ce message se rajoutera un nonce choisit aléatoirement.

- **Double hashage et verification du résulat**:
  Ce suit un double hashage du message ainsi que les vérifications finales.</br>
  Si un nœud a déjà résolu le problème alors nous devons recommencer les étapes depuis le début sinon on devra vérifier que le résultat soit bien inférieur ou égal au seuil.</br>
  Dans le cas où il le serait, on pourra diffuser notre block et gagner au passage quelques bitcoins sinon il faudra recommencer à l'étape du choix du nonce et faire varier celui-ci.

## <u>Conclusion:</u>
Pour répondre à l'interrogation du début: Pourquoi un tel système de vérification est utilisé.</br>
Grâce à cela si une personne souhaite modifier un bloc alors il devra recalculer tous les blocs précédents ce qui est quasiment impossible.</br>
Le proof of work répond bien à nos attentes concernant le problème des généraux byzantins en prenant compte nos technologies actuelles.


## <u>Source:</u>
- A Review on Consensus Algorithm of Blockchain (https://blockhack.osive.com/_downloads/33a65d87de38eaf5b8d817681a3e4674/7.pdf)
- Understanding Blockchain Consensus Model (https://web.archive.org/web/20220121100752id_/https://www.persistent.com/wp-content/uploads/2017/04/WP-Understanding-Blockchain-Consensus-Models.pdf?pdf=Understanding-Blockchain-Consensus-Models)

👍  , , , , , ,
properties (23)
authormoh4m
permlinkbitcoin-proof-of-work
categoryhive-114606
json_metadata"{"app":"peakd/2022.11.1","format":"markdown","description":"Explication de l'algorithme de consensus pour la blockchain bitcoin.","tags":["bitcoin","proofofwork","consensus","algorithm","blockchain","pow","hashcash"],"users":[],"image":["https://files.peakd.com/file/peakd-hive/moh4m/23tSzR6hh3wvukkLr4sYj7PhcKc9byQjbhZU9WW1zp2EoYNg1aAagZZ7FDL7NfbGttYSf.png","https://zupimages.net/up/22/47/3y43.png"]}"
created2022-11-22 20:04:30
last_update2022-11-22 20:04:30
depth0
children4
last_payout2022-11-29 20:04:30
cashout_time1969-12-31 23:59:59
total_payout_value0.042 HBD
curator_payout_value0.041 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length4,583
author_reputation2,847,453,666
root_title"Bitcoin: Proof of Work "
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id118,538,416
net_rshares176,554,431,455
author_curate_reward""
vote details (7)
@bonus-fr ·
---
---
✒️ Pour vous encourager dans vos études, nous vous offrons  💝**50 points-fr**💝, un reblogue, un mini-upvote
🎁 Recevez en plus un bonus de **3 points-fr** pour votre sélection et ce pourboire : !LUV !GIF algorithm
💰 Plus de Tokens de 2eme couches vous attendent dans les posts de sélections et de récompenses
<center> 
|	@points-fr /	@challenge-fr / @tokens-fr / @loterie-fr / @bonus-fr |
|	------------	|
</center>

<center> **[Cumulez facilement les points-fr](/created/faqpoints-fr)**
 Récompense Multi-engagements des Francophones
<a href='/created/points-fr'><img src='https://images.ecency.com/DQmbkGz3XuzUZJPndrZzNqh4tAoNgkRGWnhu6sjBg8mz4sD/logo_point_fr150.png'></a>
</center>
---
---
properties (22)
authorbonus-fr
permlinkre-moh4m-20221123t222512398z
categoryhive-114606
json_metadata{"tags":["bitcoin","proofofwork","consensus","algorithm","blockchain","pow","hashcash"],"app":"ecency/3.0.29-vision","format":"markdown+html"}
created2022-11-23 21:25:12
last_update2022-11-23 21:25:12
depth1
children2
last_payout2022-11-30 21:25:12
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length699
author_reputation10,094,917,467,831
root_title"Bitcoin: Proof of Work "
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id118,564,908
net_rshares0
@hivegifbot ·
<center>https://media.tenor.com/ciahzQtXpcgAAAAC/similarweb-data.gif
[Via Tenor](https://tenor.com/)</center>
properties (22)
authorhivegifbot
permlinkre-re-moh4m-20221123t222512398z-20221123t212523z
categoryhive-114606
json_metadata"{"app": "beem/0.24.26"}"
created2022-11-23 21:25:24
last_update2022-11-23 21:25:24
depth2
children0
last_payout2022-11-30 21:25:24
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length109
author_reputation38,192,557,766,504
root_title"Bitcoin: Proof of Work "
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id118,564,915
net_rshares0
@luvshares ·
@moh4m, @bonus-fr<sub>(10/10)</sub> sent you LUV. <a href="https://peakd.com/@luvshares/about" style="text-decoration:none"><img src="https://files.peakd.com/file/peakd-hive/crrdlx/AKU7oyCXxGwYyudB42kJ7JtoZ63bdeHvm4icoT9xdGNxA4i4BwudGyPvTQrEwPd.gif"></a> <a href="https://tribaldex.com/wallet/" style="text-decoration:none">wallet</a> | <a href="https://hive-engine.com/trade/LUV" style="text-decoration:none">market</a> | <a
    href="https://crrdlx.websavvy.work/" style="text-decoration:none">tools</a> | <a 
    href="https://discord.gg/K5GvNhcPqR" style="text-decoration:none">discord</a> | <a href="https://peakd.com/c/hive-159259">community | <a href="https://ichthys.netlify.app" style="text-decoration:none"><>< daily</a>
<br>
<center><a href="https://crrdlx.websavvy.work/wiki" target="_blank"><img src="https://files.peakd.com/file/peakd-hive/crrdlx/23sxEPgMNuQ5YPsuGungJ25Dpd6BjwgUmNkFAGCNnsKABBpUPXuRVgahFnwuZm9Qnf8Eh.png"></a><br><a href="https://crrdlx.websavvy.work/wiki" target="_blank">HiveWiki</a></center>
<br>
<center><a href="https://peakd.com/nftforpeace/@hivebuzz/nft-for-peace" target="_blank"><img src="https://files.peakd.com/file/peakd-hive/luvshares/242henrWsje7ivLwY3jxy15af3LJqvUzEmrEKAViGAowE1XsPqkDUuQ6QnwYpVJUWKN7c.gif"></a><br><a href="https://peakd.com/nftforpeace/@hivebuzz/nft-for-peace" target="_blank">HiveBuzz.me NFT for Peace</a></center>
properties (22)
authorluvshares
permlinkre-re-moh4m-20221123t222512398z-20221123t212534z
categoryhive-114606
json_metadata"{"app": "beem/0.24.26"}"
created2022-11-23 21:25:33
last_update2022-11-23 21:25:33
depth2
children0
last_payout2022-11-30 21:25:33
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,380
author_reputation5,651,102,754,153
root_title"Bitcoin: Proof of Work "
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id118,564,919
net_rshares0
@hivebuzz ·
Congratulations @moh4m! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

<table><tr><td><img src="https://images.hive.blog/60x70/http://hivebuzz.me/@moh4m/upvotes.png?202211281729"></td><td>You distributed more than 10 upvotes.<br>Your next target is to reach 50 upvotes.</td></tr>
</table>

<sub>_You can view your badges on [your board](https://hivebuzz.me/@moh4m) and compare yourself to others in the [Ranking](https://hivebuzz.me/ranking)_</sub>
<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>



**Check out the last post from @hivebuzz:**
<table><tr><td><a href="/hive-102201/@hivebuzz/wc2022-recap-day9"><img src="https://images.hive.blog/64x128/https://i.imgur.com/uNPMgnd.png"></a></td><td><a href="/hive-102201/@hivebuzz/wc2022-recap-day9">HiveBuzz World Cup Contest - Recap of Day 9</a></td></tr><tr><td><a href="/hive-122221/@hivebuzz/pud-202212"><img src="https://images.hive.blog/64x128/https://i.imgur.com/805FIIt.jpg"></a></td><td><a href="/hive-122221/@hivebuzz/pud-202212">Hive Power Up Day - December 1st 2022</a></td></tr><tr><td><a href="/hive-102201/@hivebuzz/wc2022-ranking"><img src="https://images.hive.blog/64x128/https://i.imgur.com/8kplXrX.png"></a></td><td><a href="/hive-102201/@hivebuzz/wc2022-ranking">HiveBuzz World Cup Contest - Check your ranking</a></td></tr></table>

###### Support the HiveBuzz project. [Vote](https://hivesigner.com/sign/update_proposal_votes?proposal_ids=%5B%22199%22%5D&approve=true) for [our proposal](https://peakd.com/me/proposals/199)!
properties (22)
authorhivebuzz
permlinknotify-moh4m-20221129t163739
categoryhive-114606
json_metadata{"image":["http://hivebuzz.me/notify.t6.png"]}
created2022-11-29 16:37:39
last_update2022-11-29 16:37:39
depth1
children0
last_payout2022-12-06 16:37:39
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,615
author_reputation370,312,284,093,113
root_title"Bitcoin: Proof of Work "
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id118,707,511
net_rshares0