Blockchain Consensus
Résumé
Cet article présente une nouvelle définition du consensus qui s'applique aux
chaînes de blocs (ou blockchains), des applications permettant de transférer
des biens au travers de transactions électroniques.
Plus précisément, une chaîne de bloc est une abstraction
distribuée où un consensus parmi les processus est nécessaire pour choisir un unique
bloc de transactions à rajouter en bout de chaîne.
Cette nouvelle définition du consensus requiert une propriété
de validité basée sur un prédicat défini par l'application.
Sa nouveauté est de permettre d'obtenir un consensus sur une valeur, même si celle-ci
n'a pas été proposée par des processus, à condition
bien sûr qu'elle soit valide.
L'avantage de cette differenciation entre la validation d'une valeur propos\'ee et
la nature du processus la proposant est de progresser---permettant
l'ajout de blocs contenant des transactions---là où les algorithmes typiques avorteraient---empêchant
l'ajout de nouvelles transactions.
En effet, à ce jour les variantes du consensus requéraient que la valeur commune proposée par
des corrects soient décidée si possible, ou qu'une valeur par défaut, comme $\bot$, soit décidée sinon.
Il est clair que de telles définitions empêchent à l'application de progresser: par définition la valeur
$\bot$ implique qu'elle est connue d'avance, ainsi elle ne peut que correspondre à un bloc vide ne contenant
aucune transaction. Nous proposons une réduction de ce problème au consensus binaire
et une solution complète dans le rapport technique
associé à cet article~\cite{CGLR17}.
Cet article présente une nouvelle définition du consensus qui s'applique aux chaînes de blocs (ou blockchains), des applications permettant de transférer des biens au travers de transactions électroniques.
Plus précisément, une chaîne de bloc est une abstraction distribuée où un consensus parmi les processus est nécessaire pour choisir un unique bloc de transactions à rajouter en bout de chaîne.
Cette nouvelle définition du consensus requiert une propriété de validité basée sur un prédicat défini par l'application.
Sa nouveauté est de permettre d'obtenir un consensus sur une valeur, même si celle-ci n'a pas été proposée par des processus, à condition bien sûr qu'elle soit valide.
L'avantage de cette différenciation entre la validation d'une valeur proposée et la nature du processus la proposant est de progresser---permettant l'ajout de blocs contenant des transactions---là où les algorithmes typiques avorteraient---empêchant l'ajout de nouvelles transactions.
En effet, à ce jour les variantes du consensus requéraient que la valeur commune proposée par
des corrects soient décidée si possible, ou qu'une valeur par défaut, comme ⊥, soit décidée sinon.
Il est clair que de telles définitions empêchent à l'application de progresser: par définition la valeur⊥ implique qu'elle est connue d'avance, ainsi elle ne peut que correspondre à un bloc vide ne contenant aucune transaction. Nous proposons une réduction de ce problème au consensus binaire et une solution complète dans le rapport technique associé à cet article~\cite{CGLR17}.
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...