Nous allons voir dans le chapitre suivant comment créer et requêter une base QLDB.
Pour créer une nouvelle base, il suffit simplement d’aller sur https://console.aws.amazon.com/qldb et d’entrer un nom de base, par exemple ‘vehicules’. Une fois créé, AWS propose un outil de requêtes en ligne. Créons un table:
Insérons-y une nouvelle ligne :
Allons maintenant dans les paramètres de la base et demandons le calcul du digest de la base :
QLDB nous renvoie le digest ou SHA-256 de la base au 10/2/2019 a 9:34:52 AM, soit 18kdrhSoMVgtQlBC5BDSH1ZkVbjJXwv43zhedUnZ/Do=. On obtient également le Digest Tip qui représente la localisation du dernier bloc couvert par le digest. En effet, bien qu’il se s'agit pas d’une blockchain, QLDB utilise quand même une structure en blocs. Chaque mutation de données génère un ou plusieurs nouveau blocs. Le standId représente l’identifiant de notre chaîne. Pour le moment, une base QLDB ne peut avoir qu’une seule chaîne. Le strandId est donc l’identifiant de notre base de données et ne changera pas. Le sequenceNo représente la longueur de notre chaîne, soit le nombre de blocs qu’elle contient. Ici, notre chaîne a une longueur de 11 blocs.
Maintenant, modifions le propriétaire du véhicule:
Re-demandons le calcul du digest de la base :
Le digest est différent, ce qui prouve que la base a été modifiée. On voit également que notre chaîne fait désormais 27 blocs. Allons donc voir l’historique des modifications:
On y voit deux lignes: la création initiale du véhicule, puis la modification du propriétaire. Chaque ligne montre plusieurs propriétés:
Enfin, QLDB propose un outil de vérification cryptographique de la donnée. Supposons que j’enregistre le digest sur mon ordinateur au bloc 45. Ce digest couvre donc l’ensemble des mutations jusqu’au bloc 45. Puis, plus tard, au bloc 87, supposons que je souhaite vérifier la création de mon véhicule au bloc 4. En utilisant l’ID du document, je peux demander a QLDB de recalculer le digest de la base jusqu’au bloc 45 et de le matcher au digest que j’ai enregistré précédemment. Si les digests sont égaux, cela prouve que l’historique et plus particulièrement cette mutation n’ont pas été altérés entre le moment où j’ai enregistré le digest au bloc 45 et maintenant au bloc 87.
AWS QLDB est un veritable game changer. Aussi simple à utiliser qu’une base de données SQL, QLDB permet également d’obtenir l’historique de toutes les mutations et de prouver cryptographiquement que cet historique n’a pas été altéré. De nombreux cas d’usage de blockchain privé peuvent alors être remplacé par QLDB. On pourrait également imaginer une surcouche API de signature par clé privée/clé publique afin de vérifier cryptographiquement l’auteur des mutations, on aurait alors le parfait système de traçage des données. Cette utilisation serait particulièrement intéressante pour les entreprises nécessitant d’avoir une donnée auditable, telle que les banques.
A noter cependant que QLDB a quelques limites en terme de taille et appels concurrentiels. Enfin, QLDB est centralisé chez AWS mais est-ce vraiment un problème quand on peut chiffrer la donnée et prouver qu’elle n’a pas été altérée par Amazon ? La décentralisation est importante pour de nombreux cas d’usages en blockchain publique, mais dans les autres cas, il y a désormais QLDB.
AWS QLDB | Blockchain Privée |
Historique complet des transactions | |
Vérifiable cryptographiquement | |
Centralisé chez AWS | Decentralisé |
As-a-service | As-a-service ou On-premise |
Facile à utiliser | Difficile à utiliser |
Serverless | Difficile à passer à l'échelle |
Tx/s similaire à un BDD classique | Tx/s souvent trés limité |
Compatible requêtes SQL | Spécifique à chaque blockchain |