Blockchain Consensus - Inria - Institut national de recherche en sciences et technologies du numérique
Communication Dans Un Congrès Année : 2017

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}.
Fichier principal
Vignette du fichier
byz-block.pdf (148.51 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01518743 , version 1 (05-05-2017)

Identifiants

  • HAL Id : hal-01518743 , version 1

Citer

Tyler Crain, Vincent Gramoli, Mikel Larrea, Michel Raynal. Blockchain Consensus. ALGOTEL 2017 - 19èmes Rencontres Francophones sur les Aspects Algorithmiques des Télécommunications, May 2017, Quiberon, France. ⟨hal-01518743⟩
1163 Consultations
2682 Téléchargements

Partager

More