Mise à jour 08/12/23 : une version définitive de l’étude sur Precedence et ses preuves d’existence a été publiée par Jérémie Albert et Serge Chaumette à l’occasion de la conférence ACSAC 2023.
Precedence est une solution logicielle open-source développée en 2018 par les co-fondateurs d’IBEx qui permet la création et la gestion d’actifs numériques, leur horodatage ainsi que leur versionnage sur une blockchain en utilisant utilisant des arbres de Merkle Patricia pour structurer l’information, optimiser les performances et les coûts d’écriture. Les actifs numériques sont des actifs constitués par des données numériques, dont la propriété ou le droit d’usage est un élément du patrimoine d’une personne physique ou morale.
Ces actifs numériques sont créés à partir de n’importe quels types et formats d’information considérés comme des données binaires. Ce sont des empreintes obtenues via une fonction de hachage (SHA-256) des données dont le résultat est un hash, c’est-à-dire une petite série de 64 caractères hexadécimaux unique pour tout élément numérique. Le domaine d’application est donc très large. L’important réside dans la capacité de la solution à démontrer la réalité de ces données à travers une preuve d’existence. Ainsi, grâce à Precedence, il est possible de savoir à qui appartient un actif, connaître sa provenance, de le comprendre et de le localiser sur les réseaux.
La technologie Precedence agit comme une couche de données intermédiaire entre la plateforme ou le service qui l’utilise et une blockchain de niveau 1 sur laquelle les données sont enregistrées en dernière instance, de manière immuable. C’est en cela qu’on dit qu’il s’agit d’une solution de Layer 2. Aussi, Precedence autorise une décentralisation totale, sans risque de prise de contrôle, car elle ne nécessite pas de consensus global.
Principales fonctionnalités
- Hashage des données : emprunte d’un volume de données via une fonction SHA-256
- Ecritures Blockchain : interopérabilité entre les layers 1 compatibles EVM
- Consultation / Vérification par Explorer : journal de transactions transparent, immuable et cryptographiquement vérifiable
- Certificats d’existence : la preuve cryptographique d’existence d’un actif, horodaté
- API lecture/écriture : intégration facile dans n’importe quelle application.
Voir le gitHub de Precedence : https://github.com/inblocks/precedence
Fonctionnement
Precedence permet de structurer des informations en utilisant les principes fondamentaux des technologies de blockchain. Elle possède les mêmes caractéristiques clés, comme l’impossibilité de retirer un enregistrement d’un bloc existant sans devoir recalculer tous les blocs qui y font référence (c’est-à-dire tous les blocs créés après lui).
Chaque enregistrement est un ensemble arbitraire d’informations binaires qui peut être cryptographiquement lié à un ou plusieurs enregistrements précédents. Un bloc est un ensemble d’enregistrements et peut contenir un ou plusieurs enregistrements. Chaque bloc est cryptographiquement lié au bloc précédent (à l’exception du premier qui est explicitement identifiable comme premier bloc).
L’ensemble des enregistrements que constitue un bloc est structuré sous la forme d’un Merkle Patricia Trie. Cette structuration permet le calcul d’un nombre (appelé root hash), souvent représenté sous forme hexadécimale, qui représente l’ensemble des enregistrements du bloc; chaque modification aussi mineure soit-elle d’un enregistrement impacte la valeur du root hash.
Les arbres de Merkle Patricia, comme ceux utilisés dans Ethereum, offrent les mêmes garanties d’intégrité que les arbres de Merkle ordinaires mais sous une forme plus efficace en termes de stockage de paires “clé-valeur” (association d’un identifiant et d’un hash).
Dans un arbre de Merkle, la valeur de chaque “leaf node” (qui n’a pas de nœud enfant) est un hachage de ses données, et la valeur de chaque nœud parent est un hachage des valeurs des nœuds enfants. Cela permet d’obtenir des preuves cryptographiques efficaces qu’une feuille fait partie de l’arbre compte tenu de son hachage, du hachage de la racine et des hachages intermédiaires.
Ce format de données permet d’extraire une preuve d’existence cryptographique de chaque enregistrement dans un bloc. Il est donc possible de démontrer mathématiquement qu’un enregistrement fait partie d’un bloc et que cette preuve est irréfutable car non “forgeable” à partir d’autres enregistrements. Cette structuration permet également qu’à partir d’un hash enfant, il n’est pas possible de déterminer l’ensemble des enregistrements qui permet son calcul (on appelle cette classe de fonctions des fonctions à sens unique).
Precedence stocke les données relatives aux actifs en dehors de la chaîne et ne place que le hachage de la racine sur la blockchain de niveau 1. Pour prouver la propriété d’un actif, un utilisateur fournit les données de la feuille et régénère la preuve de Merkle sur le hachage de la racine de la chaîne. La sécurité découle de la nature unidirectionnelle des hachages cryptographiques – il est impossible de trouver une collision avec les données réelles ou de “forger” une preuve pour des données ne figurant pas dans l’arbre.
Le fonctionnement de Precedence vous intéresse ? Approfondissez avec cette étude co-réalisée par Jérémie Albert, co-fondateur d’IBEx : https://blog.ib.exchange/precedence/
Une blockchain plus respectueuse de l’environnement
L’utilisation du layer 2 Precedence est neutre en carbone. La traçabilité des certificats et de leurs échanges n’a pas d’impact sur l’environnement. La technologie est 99,99997% plus économe en énergie que celle du bitcoin grâce à l’utilisation de blockchains utilisant un algorithme de consensus type POS comme sur Ethereum ou la Binance Chain, pour mutualiser les écritures.
Cas d’utilisation
IBEx
IBEx utilise la technologie Precedence pour créer des actifs numériques intégrés, vérifiables, on- et off-chain qui peuvent être commercialisés, distribués, échangés et négociés sur les marchés privés et publics via sa plateforme.
La factorisation algorithmique des écritures permise par le layer 2 autorise pour sa communauté un coût d’utilisation pratiquement nul de la plateforme où les seuls frais existants sont ceux liés aux opérations de retraits car ils occasionnent un coût d’écriture dans une blockchain de niveau 1.
En savoir plus : https://inblocks.io/a-propos/#precedence
Precedence appliqué au vote en ligne
La blockchain de la plateforme Civicpower (token POWER sur IBEx) est basée sur Precedence pour générer une preuve cryptographique d’existence du vote, horodatée de manière irréfutable. Cela permet de constituer un “public ledger”, soit une preuve d’intégrité du vote qui est inaltérable et vérifiable par le votant.
Le mécanisme d’horodatage permet de démontrer de façon certaine la date de réception d’un vote électronique. Il garantit également la traçabilité des changements d’état pour un vote, dans le cas où l’on peut changer d’avis.
Les participants peuvent ainsi avoir la preuve que leur vote n’a pas été altéré. Precedence permet également de démontrer l’existence d’un engagement ou d’externaliser ses preuves numériques à des fins de pérennité ou pour rechercher un tiers de confiance au sein d’un consortium.
Pour en savoir plus sur Precedence et son utilisation par la plateforme Civicpower : https://civicpowerio.medium.com/precedence-et-la-preuve-de-vote-929532b536a9