La Preuve de Travail retardée (dPoW ou delayed Proof of Work) est un mécanisme de sécurité conçu par le projet Komodo. Il s’agit d’une version modifiée de l’algorithme de consensus de Proof of Work (PoW ou Preuve de Travail en français) qui utilise la puissance de hachage de la blockchain Bitcoin afin de renforcer la sécurité du réseau. En utilisant la dPoW, les développeurs de Komodo peuvent sécuriser non seulement leur propre réseau, mais également toute chaîne tierce qui finirait par rejoindre l'écosystème Komodo à l'avenir. En fait, la dPoW peut être implémentée dans tout projet développant une blockchain indépendante et utilisant un modèle UTXO.
Comment fonctionne la dPoW?
En prenant Komodo comme exemple, où le mécanisme de sécurité de la dPoW a été développé et implémenté dans le code de base du Zcash, permettant une confidentialité totale et une sécurité du réseau accrue, en optimisant le taux de hachage du Bitcoin.
Toutes les dix minutes, le système Komodo prend une capture instantanée de sa propre blockchain. Ensuite, la capture est inscrite dans un bloc sur le réseau Bitcoin dans le cadre d'un processus appelé « notarisation ». Fondamentalement, ce processus crée une sauvegarde de l’ensemble du système Komodo, qui est enregistrée dans la blockchain Bitcoin.
Sur le plan technique, les « nœuds notaires » élus par la communauté de Komodo écrivent un hachage de bloc de chaque blockchain protégée par la dPoW dans le registre Komodo, en effectuant une transaction sur la chaîne Komodo. À l'aide de la commande OP_RETURN, les « nœuds notaires » stockent alors un hachage de bloc unique sur la chaîne Komodo.
La raison pour laquelle les « nœuds notaires » sélectionnent un hachage de bloc vieux d'environ dix minutes est pour s'assurer que l'ensemble du réseau reconnaît que le bloc est bien valide. En parallèle, le réseau de chaque blockchain fait toujours l'objet d'un consensus pour chaque bloc. Les « nœuds notaire » enregistrent simplement un hachage de bloc à partir d'un bloc précédemment miné.
Ensuite, les « nœuds notaire » inscrivent un hachage de bloc de la chaîne de Komodo sur le registre Bitcoin. Ce processus est également complété par l'exécution d’une transaction BTC et en utilisant l’OP_RETURN pour écrire les données dans un bloc de la chaîne Bitcoin.
Une fois cette notarisation effectuée sur Bitcoin, les « nœuds notaires » de Komodo écrivent ces données de bloc de la chaîne BTC sur la chaîne de toutes les autres chaînes protégées par le réseau. À ce stade, le réseau n'acceptera aucune réorganisation qui tenterait de modifier un bloc notarié (ni aucun bloc créé avant le dernier bloc notarié).
PoW vs dPoW
Le minage au sein des blockchain basées sur la PoW (Preuve de Travail) est très exigeant de par sa conception. Les mineurs doivent résoudre une énigme cryptographique complexe pour être capable de miner un nouveau bloc. Un tel processus implique un travail de calcul intensif, très coûteux en matériel et en électricité. Or, le processus de minage protège non seulement le réseau des attaques externes, mais vérifie également la légitimité des transactions et génère de nouvelles unités de crypto-monnaie (afin de récompenser le mineur qui résout le problème).
Par conséquent, l'une des raisons pour lesquelles les blockchains basées sur la Proof of Work sont sécurisées vient du fait que le processus de minage implique un investissement financier très élevé et dépend du consensus du réseau. Cependant, il est important de noter que la sécurité des blockchains PoW est directement liée à la quantité de puissance de calcul (taux de hachage) qui leur est consacrée, ce qui signifie que les petits réseaux blockchain ne sont pas aussi sécurisés que les grands.
En fait, la dPoW "rétablit" les règles de consensus d'une blockchain à chaque fois qu'un bloc est notarié. Par exemple, la plupart des chaînes PoW utilisent la "règle de la plus longue chaîne". Ainsi, chaque fois que le réseau d'une blockchain reçoit la confirmation que le bloc XXX, XX1 a été notarié, la règle de chaîne la plus longue commence au bloc XXX, XX2. Le réseau n'acceptera pas une chaîne commençant au bloc XXX, XX0 ou antérieur, même s'il s'agit de la plus longue.