Qu’est-ce que ThunderCore ?
ThunderCore est une blockchain à part entière qui a sa propre crypto-monnaie native. Elle a toutefois une particularité assez unique. Développée par des experts leaders du secteur, ThunderCore est compatible avec la virtual machine d’Ethereum et peut donc lui faire atteindre un débit de plus de 1200 tx/sec, pour des temps de bloc inférieurs à une seconde et des coûts en gaz très faibles. Bref, les ingrédients nécessaires à faciliter, accélérer et rendre scalables les DApps d’Ethereum. Résultat : une vitesse inédite pour une blockchain et des performances globales considérablement améliorées, sans compromis en matière de sécurité.
Comment ça marche ?
ThunderCore propose un protocole extrêmement simple, basé sur les recherches des professeurs Shi et Pass. Chaque étapes du dit protocole est détaillée et étayée par des preuves mathématiques rigoureuses.
L’ACCELERATEUR
Le pivot de tout le système est l’accélérateur, un système distribué résistant aux attaques DDoS, qui constitue un réseau de nœuds chargé de voter pour les nouveaux blocs.
En moins d’une seconde, ces nœuds votent par consensus et confirment les transactions d’un bloc. Les utilisateurs n’ont pas besoin de faire confiance ni à l’accélérateur ni à un nœud spécifique de consensus. Ils ont seulement besoin de faire confiance au fait que la majorité des noeuds votants reste honnête.
ThunderCore utilise cet accélérateur en conditions normales mais peut basculer et revenir en mode « blockchain classique » (sous jacente) en cas de soucis.
On distingue donc deux voies : la rapide et la lente
LA VOIE RAPIDE
En conditions normales, au moins ¾ des noeuds du comité de vote arrivent à trouver le consensus sur un état. L’accélérateur se comporte alors comme prévu et les transactions sont confirmées très rapidement (moins d’une seconde).
Pour devenir membre du comité, il faut bloquer une somme en crypto-monnaie Thunder, dans un wallet de chaîne lente. On devient ainsi des stake-holders. ThunderCore sélectionnera 500 nœuds, proportionnellement au nombre des avoirs mis en jeu. Ces nœuds changeront périodiquement.
Le leader courant des noeuds votants ainsi que les autres membres du comité recevront des récompenses provenant des frais de transaction et une partie des jetons Thunder pré-émis.
LA VOIE LENTE
Elle fonctionne exactement comme la blockchain Ethereum, d’où la totale compatibilité : si vous avez un smart-contract ETH vous le postez tel quel dans ThunderCore et il fonctionnera. On peut dire que la partie lente de ThunderCore est 100% un copié-collé de Ethereum. Elle fonctionne donc en proof-of-work (le consensus ETH actuel) mais a un rôle en plus : elle protège et rend inefficaces les attaques à 51% éventuellement destinées à la voie rapide.
L’un des points de valeur clés de ThunderCore est le fait de pouvoir passer en automatique et facilement à la chaîne lente, puis de revenir sur la voie rapide au besoin. La méthode la plus simple est de rester dans le mode lent pour un nombre fixe de blocs sur la chaîne lente sous-jacente et de passer à la confirmation « rapide » des blocs passés, dans l’espoir que l’accélérateur soit réparé entre temps. Si ce n’est pas le cas, les transactions seront encore confirmées sur la voir lente.
Grâce à ses deux voies, ThunderCore se veut :
- Décentralisé à la vue de ses 500 membres du comité de vote
- Sécurisé contre les attaques 51%
- Scalable avec ses plus de 1 000 transactions par seconde
Dans des conditions idéales, lorsque le comité est honnête et/ou n’est pas sous attaque, le réseau peut atteindre un débit élevé au tour de 1600tx/sec et une confirmation presque instantanée. Par comparaison, Visa traite environ 1.700 transactions par seconde, valeur qui est rarement dépassée même si on peut avoir des pics.
En mode dégradée (voie lente) la blockchain ThunderCore reste aussi sécurisée que Ethereum même si l’accélérateur est complètement corrompu, tant que la chaîne lente n’est pas sous un attaque de type 51%.
COMPARAISON AVEC LES AUTRES CONSENSUS
Dans les réseaux de consensus PBFT classiques et variantes (Tendermint par exemple) si le leader est corrompu ou bloqué, le protocole entre en mode récupération, ce qui est complexe et inefficace puisqu’il continue de fonctionner en mode asynchrone avec une réseau sous-jacent qui n’est plus disponible. ThunderCore utilise tout simplement la blockchain Ethereum et son PoW comme outil de récupération. Après une période limite pour la validation d’un bloc, le chemin lent s’active et commence à être utilisé.
Ainsi, tandis que les blockchain utilisant des solutions de consensus bizantines sont protégées contre des attaques au niveau d’un tiers de leurs noeuds, ThunderCore atteint les mêmes performances, niveau vitesse, tout en offrant une protection contre les attaques jusqu’à un taux de défaillance (noeuds malveillants) de 50%. Notez que ces seuils sont flous. A partir de 51% on a des chances statistiques de pouvoir corrompre le système.
DU COUP, UNE OU DEUX BLOCKCHAIN ?
Initialement, Thunder utilisera la blockchain publique de Ethereum comme
chaîne lente. A l’avenir, Thunder envisage de mettre en place sa propre chaîne lente et de prendre tout en charge afin d’améliorer le service. La première version de Thunder sera déjà entièrement compatible avec la EVM (Ethereum virtual machine) donc aura la possibilité de migrer instantanément des applications existantes.
Ethereum et ThunderCore vont donc être à terme deux blockchain 100% séparées. Ce qui veut dire que si vous avez déjà une solution qui tourne dans ETH vous devrez la redéployer dans ThunderCore, en version testnet au moment où nous écrivons cet article (mai 2019). Il n’y a donc aucune manière de faire bénéficier au mainnet d’Ethereum des améliorations apportées par ThunderCore. La seule manière serait d’intégrer le même code source dans ETH (mais à ce moment on aurait deux ThunderCore.)
ETHEREUM vs THUNDERCORE
On peut se poser un tas de questions. ThunderCore pourrait agir un peu comme Litecoin pour le Bitcoin : une sorte de lab-de-test qui intègre à l’avance les break techno (ce qui avait été le cas avec le Lightning Network)
Quel serait alors impact sur Ethereum ? Allons nous assister à une migration en masse des smart contracts de Ethereum vers ThunderCore ? Est-ce que cela remet en question le besoin même d’avoir Ethereum ? Est ce que intégrer Thunder dans Ethereum n’est pas déjà une solution sur étagère au problème de scalabilité ? Si c’est le cas, a-t-il du sens de continuer à chercher ?
Le protocole est décrit dans le whitepaper comme essentiel et très simple. Pourquoi donc si c’était si simple, le très doué core-dev d’Ethereum n’y a t-il pas pensé avant ?
L’accélérateur est de facto une sorte d’autorité de gouvernance et constitue donc un important facteur de centralisation. C’est pourquoi cette solution, bien que technologiquement très proche d’Ethereum, devrait être critiquée et non supportée par le core-dev d’Ethereum. Au même titre que EOS, par exemple.
Vitalik Buterin & Co ont toujours cherchés la solution ultime à la décentralisation en fuyant le plus possible tout facteur de centralisation. Il n’y pas de raison que ce cas soit traité différemment.
Nous sommes toutefois au coeur du monde blockchain où la vérité sera le taux d’adoption. Si la scalabilité ETH tarde à venir et en même temps ThunderCore gagne en traction, ce projet pourrait avoir plus que son mot à dire dans l’écosystème.