I Introduction

1 : Aperçu

Les plateformes de contrats intelligents et de cryptomonnaies, comme Ethereum et Bitcoin, ont suscité beaucoup d’attention et sont devenues des options viables pour les applications décentralisées, les paiements électroniques et d’éventuels référentiels de valeur numérique.

Cependant, la situation actuelle montre que les itérations de blockchain publique proposées présentent de sérieuses limites, notamment en termes d’évolutivité, par rapport à leurs équivalents centralisés sur des indicateurs importants. Cela freine leur adoption généralisée et retarde leur utilisation publique. En réalité, il s’avère extrêmement difficile de gérer les contraintes techniques actuelles imposées par les compromis du paradigme du trilemme de la blockchain. Bien que de nombreuses alternatives aient été proposées, peu ont produit des résultats notables et exploitables.

Il est donc nécessaire de repenser en profondeur les infrastructures de blockchain publiques pour résoudre le problème de l’évolutivité.

2 Présentation des difficultés

Afin de développer un système de blockchain public évolutif, un certain nombre de problèmes doivent être traités de manière adéquate :

  • Décentralisation complète : cela élimine la possibilité d’un point de défaillance unique en supprimant le besoin de tiers de confiance ; 
  • Sécurité renforcée : cela permet des transactions sécurisées et des attaques contre les menaces basées sur des vecteurs d’attaque connus ;
  •  haute évolutivité : cela permet au réseau d’atteindre un niveau de performance au moins équivalent à son homologue centralisé, mesuré en TPS ;
  • Efficacité : ce système exécute toutes les fonctions du réseau avec un minimum d’énergie et de besoins informatiques ; 
  • Amorçage et amélioration du stockage : cela garantit un coût compétitif pour le stockage et la synchronisation des données ;
  • Interopérabilité inter-chaînes : elle est imposée par la conception, permettant une communication sans restriction avec des services extérieurs.

Nous avons développé direct-ia.com comme une réinvention complète de l’infrastructure blockchain publique, en mettant l’accent sur la sécurité, l’efficacité, l’évolutivité et l’interopérabilité, en partant des problèmes énumérés ci-dessus. La principale contribution de direct-ia.com repose sur deux éléments fondamentaux :

Une véritable méthode de State Sharding qui divise la blockchain et l’état du compte en plusieurs fragments gérés simultanément par différents validateurs ; 

Un mécanisme de consensus de preuve d’IA directe sécurisé qui est une version améliorée de la preuve d’IA directe qui garantit l’équité distribuée et la sécurité à long terme sans nécessiter d’algorithmes PoW gourmands en énergie.

3 Preuve stable de l’IA directe 

direct-ia n’a pas accès aux fonds, le paiement aux fournisseurs doit donc être effectué tous les 7 mois par chaque utilisateur.

En développant le concept d’Algorand d’un processus de sélection aléatoire, nous présentons une preuve sécurisée du mécanisme de consensus direct-ia qui se distingue pour les raisons énumérées ci-dessous :

1) direct-ia.com propose une amélioration réduisant la latence en permettant à chaque nœud de fragment de choisir le proposant du bloc et les validateurs du groupe de consensus au début de chaque tour. Ceci est rendu possible grâce au facteur de randomisation x, généré par le proposant du bloc à l’aide d’une signature BLS sur le x précédent et enregistré dans chaque bloc.

2) Le validateur du groupe de consensus avec le hachage le plus court de la clé publique et le facteur de randomisation est le proposant du bloc.

Comparée à la méthode d’Algorand, qui peut prendre jusqu’à 12 secondes pour la sélection aléatoire du comité, la méthode de direct-ia.com nécessite beaucoup moins de temps (environ 70 ms, sans compter la latence du réseau) pour la sélection aléatoire du groupe de consensus.

3) direct-ia.com améliore son mécanisme de consensus en incluant un élément de pondération supplémentaire appelé « notation », en plus du facteur direct-ia, généralement utilisé comme seul facteur de décision dans les systèmes PoS. La probabilité qu’un nœud soit sélectionné pour être inclus dans le groupe de consensus repose à la fois sur la notation et sur le facteur direct-ia. La notation d’un proposant de bloc est mise à jour à la fin de chaque époque, sauf dans les cas où une réduction de notation est nécessaire. Cela favorise la méritocratie et ajoute un niveau de sécurité supplémentaire.

II Propriété du groupe cDEXLe groupe cDEX est notre propriétaire dans les échanges décentralisés de crypto-monnaie (DEX) et la technologie blockchain associée.

  • Le partenariat avec cDEXgroup comporte certains aspects clés : 

Paires de trading :les plateformes cDEX prennent généralement en charge les paires de trading entre différentes crypto-monnaies, permettant aux utilisateurs d’échanger un actif numérique contre un autre.

Interface utilisateur et expérience :des interfaces conviviales et des expériences de trading intuitives sont essentielles pour attirer et fidéliser les utilisateurs sur les plateformes d’échange décentralisées.

Sécurité :La sécurité est primordiale dans l’espace des crypto-monnaies. La plateforme cDEX met en œuvre des mesures de sécurité robustes pour protéger les fonds des utilisateurs, empêcher les accès non autorisés et atténuer les vulnérabilités potentielles.

Listes de jetons :les plateformes cDEX peuvent prendre en charge la liste de divers jetons et actifs, y compris les crypto-monnaies traditionnelles ainsi que les projets et jetons plus récents émis sur les réseaux blockchain.

Communauté et gouvernance :cDEXgroup intègre des mécanismes de gouvernance axés sur la communauté qui permettent aux utilisateurs de participer aux processus de prise de décision, tels que les mises à niveau des protocoles, les structures tarifaires et les listes d’actifs.

III Environnement d’arbitrage 

Le trading d’arbitrage avec contrats intelligents exploite les capacités des contrats intelligents basés sur la blockchain pour automatiser et exécuter des stratégies d’arbitrage dans les écosystèmes de la finance décentralisée (DeFi). Les contrats intelligents sont des contrats auto-exécutoires dont les termes sont directement codés. Ils fonctionnent sur des réseaux blockchain et appliquent automatiquement les règles et conditions du contrat.

Un schéma d'une personne tenant un ordinateur Description générée automatiquement

Voici comment fonctionne généralement le trading d’arbitrage avec des contrats intelligents dans le contexte de la DeFi :

  • Engagement avec le réseau établi : 

L’engagement avec un réseau établi pour obtenir des contrats intelligents pour le trading d’arbitrage dans DeFi implique généralement plusieurs étapes :

Recherche et réseautage :Les développeurs commencent par effectuer des recherches et se mettre en réseau au sein de la communauté DeFi afin d’identifier des personnes, des équipes ou des organisations réputées spécialisées dans le développement de contrats intelligents pour l’arbitrage. Cela peut impliquer de participer à des conférences sur la blockchain, de rejoindre des forums et des communautés en ligne, et de réseauter avec des professionnels expérimentés du secteur DeFi.

Due diligence :Avant de contacter un tiers pour obtenir des contrats intelligents, il est important de procéder à une due diligence afin d’évaluer sa crédibilité, son historique, son expertise et sa réputation au sein de l’écosystème DeFi. Cela peut inclure l’examen des projets antérieurs, l’analyse des référentiels de code et la recherche de références ou de témoignages d’anciens clients.

Engagement et collaboration :Une fois le partenaire ou l’équipe de développement adéquat identifié, les traders engagent des discussions afin de définir leurs besoins, objectifs et attentes spécifiques concernant les contrats intelligents. Cela peut impliquer la définition des stratégies d’arbitrage, la spécification des paramètres et des conditions, et l’examen des aspects techniques tels que la sécurité, l’évolutivité et l’interopérabilité avec les protocoles DeFi existants.

Négociation du contrat :Le réseau et les développeurs négocient les termes et conditions du contrat, notamment les prix, les modalités de paiement, les délais de livraison, les services d’assistance et tout autre accord pertinent. Il est important d’établir des canaux de communication et des attentes clairs pour garantir une collaboration fluide et fructueuse.

Développement et révision des contrats :L’équipe de développement crée, teste et déploie les contrats intelligents conformément aux spécifications convenues. Les développeurs peuvent avoir l’occasion d’examiner et de commenter l’avancement du développement, de réaliser des audits de code et de vérifier la fonctionnalité et la sécurité des contrats intelligents avant leur finalisation.

Déploiement et intégration :Une fois les contrats intelligents finalisés et soigneusement vérifiés, ils sont déployés sur le réseau ou la plateforme blockchain approprié. Les agents travaillent en étroite collaboration avec l’équipe de développement pour intégrer les contrats intelligents à leur infrastructure d’arbitrage, se connecter aux protocoles DeFi pertinents et garantir le bon déroulement des séances d’arbitrage avec les clients pré-réservés pour les transactions. 

Assistance et optimisation continues :après le déploiement, les traders peuvent avoir besoin de services d’assistance, de maintenance et d’optimisation continus intégrant des mises à jour ou des améliorations pour s’adapter aux conditions changeantes du marché.

En suivant ces étapes et en s’engageant avec les réseaux établis de la communauté DeFi, les développeurs peuvent obtenir des contrats intelligents de haute qualité pour le trading d’arbitrage qui correspondent à leurs objectifs et les aident à capitaliser sur 

IV. Arbitrage de dividendes.L’arbitrage de dividendes est une stratégie de trading qui consiste à exploiter les différentiels de prix entre une action et les options ou produits dérivés qui lui sont associés, notamment au moment du versement des dividendes par l’action sous-jacente.Utilisé sur un titre à faible volatilité (entraînant des primes d’options plus faibles) et à dividende élevé, l’arbitrage de dividendes peut permettre à l’investisseur de réaliser des profits avec un risque très faible, voire nul.


Voici comment fonctionne généralement l’arbitrage des dividendes :

  • Comprendre les dates de dividendes : 

Les entreprises annoncent généralement les dates de versement des dividendes bien à l’avance. Ces dates comprennent la date ex-dividende (date après laquelle un acheteur de l’action ne percevrait plus le dividende à venir), la date d’enregistrement (date à laquelle les actionnaires doivent être inscrits pour recevoir le dividende) et la date de paiement (date à laquelle le dividende est effectivement versé aux actionnaires).

  • Identifier les opportunités d’arbitrage :

Les traders en arbitrage de dividendes recherchent les écarts entre le cours de l’action et celui des options ou produits dérivés associés, notamment autour de la date de détachement du dividende. Ils analysent le rendement du dividende, la volatilité implicite, le prix des options et d’autres facteurs pertinents pour identifier les opportunités d’arbitrage potentielles.

  • Exécution de la transaction d’arbitrage :

Lorsqu’une opportunité d’arbitrage est identifiée, les agents peuvent adopter l’une des plusieurs approches suivantes :

Actions et options longues/courtes :Ils peuvent acheter l’action sous-jacente tout en vendant simultanément des options d’achat (call couvert) ou en achetant des options de vente (put de protection) pour couvrir leur position.

Box Spread :Les agents peuvent acheter simultanément une option d’achat et vendre une option de vente à un prix d’exercice donné, tout en vendant une option d’achat et en achetant une option de vente à un autre prix d’exercice, le tout avec la même date d’expiration. Cela crée une opportunité d’arbitrage sans risque en cas de sous-évaluation des options.

Stratégie de capture de dividendes : Les traders peuvent acheter l’action juste avant la date ex-dividende pour encaisser le dividende, puis la revendre peu après. Ils peuvent également acheter simultanément des options de vente pour se protéger contre un risque de baisse potentiel pendant la période de détention.

  • Gestion des risques : 

Si l’arbitrage de dividendes peut être rentable, il comporte également des risques, notamment la volatilité du marché, les changements de politique de dividendes et les risques d’exécution liés à la négociation d’options. Les agents mettent en œuvre des stratégies de gestion des risques pour atténuer ces risques, comme la mise en place d’ordres stop-loss, la diversification de leur portefeuille et la couverture de leurs positions.

Globalement, l’arbitrage de dividendes est une stratégie de trading complexe qui nécessite une compréhension approfondie de la tarification des options, des politiques de dividendes et de la dynamique du marché. Les agents qui exécutent avec succès ces stratégies peuvent potentiellement tirer profit des écarts de prix entre les actions et les options qui leur sont associées, notamment aux alentours des dates de versement des dividendes.

Comment les dividendes sont-ils versés?

La date ex-dividende d’une action (ou ex-date en abrégé) est une date clé pour déterminer quels actionnaires auront droit au dividende à venir. C’est l’une des quatre étapes du versement des dividendes.

Date de déclaration : La date de déclaration est la date à laquelle la société annonce qu’elle versera un dividende à l’avenir.

Date d’enregistrement : La date d’enregistrement correspond au moment où la société examine la liste actuelle de ses actionnaires afin de déterminer qui recevra les dividendes. Seuls les actionnaires inscrits dans les livres de la société à la date d’enregistrement auront droit aux dividendes.

Date ex-dividende : La date ex-dividende est généralement fixée deux jours ouvrables avant la date d’enregistrement.

Date de paiement : La quatrième et dernière étape est la date de paiement. Également appelée date de versement, elle marque le moment où le dividende est versé aux actionnaires admissibles.

En d’autres termes, vous devez être actionnaire inscrit au registre des actions non seulement à la date d’enregistrement, mais également avant celle-ci. Seuls les actionnaires détenant leurs actions au moins deux jours ouvrables complets avant la date d’enregistrement auront droit au dividende.

Prêts en environnement DeFi :

les prêts en finance décentralisée (DeFi) désignent la pratique consistant à fournir ou à emprunter des cryptomonnaies via des plateformes de prêt décentralisées, souvent facilitées par des contrats intelligents sur des réseaux blockchain. Les plateformes de prêt DeFi permettent aux particuliers de prêter leurs cryptomonnaies à d’autres contre des intérêts, ou d’emprunter des actifs en fournissant une garantie.

Un schéma d'un système financier Description générée automatiquement

Voici comment fonctionne le prêt dans la DeFi :

Garantie :les emprunteurs sur les plateformes de prêt DeFi fournissent généralement des garanties sous forme de cryptomonnaies pour garantir leurs prêts. La valeur de la garantie doit être supérieure à celle des actifs empruntés afin de limiter le risque de défaut.

Contrats intelligents :les transactions de prêt et d’emprunt sont exécutées via des contrats intelligents déployés sur des réseaux blockchain tels qu’Ethereum. 

Ces contrats intelligents appliquent automatiquement les termes et conditions du prêt, y compris les taux d’intérêt, les échéanciers de remboursement et les exigences de garantie.

Taux d’intérêt :Les taux d’intérêt applicables aux emprunts et aux prêts sont déterminés par la dynamique de l’offre et de la demande sur la plateforme de prêt. Ils peuvent fluctuer en fonction de facteurs tels que les conditions du marché, la liquidité des actifs et la demande des utilisateurs.

Gestion des risques :Prêteurs et emprunteurs doivent évaluer et gérer les risques associés aux prêts DeFi. Les prêteurs sont exposés au risque de défaut de paiement des emprunteurs ou aux vulnérabilités des contrats intelligents, tandis que les emprunteurs risquent la liquidation si la valeur de leur garantie tombe en dessous d’un certain seuil.

Liquidation :si la valeur de la garantie d’un emprunteur diminue considérablement, le contrat intelligent peut automatiquement liquider la garantie pour rembourser le prêteur et se protéger contre les pertes.

Les mécanismes de liquidation varient en fonction de la plateforme de prêt et des conditions spécifiques du prêt.

Intégration avec d’autres protocoles DeFi :
les plateformes de prêt DeFi s’intègrent souvent à d’autres protocoles financiers décentralisés, tels que les échanges décentralisés (CDEX) pour fournir des liquidités et des opportunités de trading supplémentaires aux utilisateurs.

Globalement, le prêt en DeFi offre de nombreux avantages, notamment l’accessibilité, la transparence et l’interopérabilité, par rapport aux systèmes de prêt centralisés traditionnels. Cependant, il comporte également des risques, notamment la vulnérabilité des contrats intelligents, la volatilité du marché et les incertitudes réglementaires, que les utilisateurs doivent soigneusement prendre en compte et gérer lorsqu’ils participent à des activités de prêt en DeFi.

VI L’environnement bâti Aperçu.

1. Entités

direct-ia.com se compose de 3 entités principales : les utilisateurs du réseau et les nœuds.

Le réseau direct-ia.com permet aux utilisateurs disposant d’un nombre limité de paires de clés publiques/privées de déployer des transactions signées pour les transferts de valeur ou l’exécution de contrats intelligents. Les adresses de compte (dérivées des clés publiques) peuvent être utilisées pour identifier les utilisateurs. Les périphériques du réseau direct-ia.com, appelés nœuds, peuvent être passifs ou actifs dans les activités de traitement. Les validateurs doivent participer activement au réseau direct-ia.com pour être éligibles. Ils sont responsables de l’exécution du consensus, de l’ajout de blocs, de la maintenance de l’état et de la rémunération de leurs efforts. Une clé publique, dérivée de l’adresse direct-iad et de l’identifiant du nœud, permet d’identifier de manière unique chaque validateur.

Un ovale blanc avec du texte noir et bleu Description générée automatiquement

De plus, le réseau est divisé en parties plus petites appelées fragments. Un algorithme attribue un validateur éligible à chaque fragment en fonction du niveau de l’arbre, garantissant ainsi une répartition équitable des nœuds. Chaque fragment dispose d’un groupe de consensus déterminé aléatoirement. Les proposants de blocs sont chargés d’agréger les transactions en nouveaux blocs. Les validateurs valident et valident les blocs proposés dans la blockchain. Ils peuvent les rejeter ou les approuver.

2. Chronologie

Le réseau direct-ia.com divise la chronologie en époques et en cycles. 

Les époques ont une durée définie d’une semaine, qui peut être ajustée en fonction de l’évolution de l’architecture. À la fin, les fragments sont réorganisés et élagués. Les époques sont organisées en cycles, chacun avec une durée spécifiée.

À chaque tour, un nouveau groupe de consensus est choisi aléatoirement pour chaque fragment, avec la possibilité d’enregistrer jusqu’à un bloc dans le registre des fragments.
Les nouveaux validateurs peuvent rejoindre le réseau en verrouillant leurs IAS directs. Ils sont ajoutés au pool de nœuds non attribués de l’époque en cours et placés sur la liste d’attente d’un fragment au début de l’époque suivante.VII. Évolutivité grâce au partitionnement adaptatif de l’état

 

1 : Pourquoi le sharding ?

Le sharding est un moyen de distribuer des données sur plusieurs appareils provenant de bases de données. Cette stratégie de scalabilité peut être utilisée dans les blockchains pour diviser les états et le traitement des transactions, permettant à chaque nœud de ne traiter qu’un pourcentage de transactions simultanément avec d’autres. Diviser une blockchain en shards peut améliorer le débit et l’efficacité des transactions en traitant plusieurs transactions en parallèle, à condition qu’un nombre suffisant de nœuds vérifient chaque transaction pour garantir une fiabilité et une sécurité élevées. Le sharding, également appelé scalabilité horizontale, augmente le débit à mesure que le réseau de validateurs s’étend.

2 : Classifications du sharding :

Cette introduction complète couvre trois types de sharding : le sharding réseau, le sharding transactionnel et le sharding d’état. Le sharding réseau regroupe les nœuds en shards afin d’améliorer la communication. Les messages peuvent se propager plus rapidement au sein d’un shard que sur l’ensemble du réseau. Le premier problème du sharding est de s’assurer que le système qui associe les nœuds aux shards prenne en compte les menaces potentielles si un attaquant prend le contrôle d’un shard spécifique. 

Le sharding des transactions mappe les transactions aux shards appropriés pour leur traitement. Dans un système basé sur les comptes, les transactions peuvent être affectées à des shards spécifiques en fonction de l’adresse de l’expéditeur.
Pour renforcer la résilience aux attaques malveillantes, il est conseillé de réorganiser régulièrement les nœuds des shards. Le déplacement de nœuds entre shards entraîne des frais de synchronisation, notamment le temps nécessaire aux nœuds nouvellement connectés pour obtenir le dernier état. Pour éviter les interruptions de synchronisation, seul un sous-ensemble de nœuds doit être redistribué par époque.

3 : Méthodologie de sharding direct-ia.com :

L’approche de direct-ia.com en matière de partage de réseau, de transaction et d’état vise à atteindre les objectifs suivants :

1) Évolutivité sans affecter la disponibilité : l’augmentation ou la diminution du nombre de fragments devrait avoir un impact minimal sur les nœuds. 

2) Expédition et traçabilité instantanée : la recherche du fragment de destination d’une transaction doit être déterministe et simple à calculer, éliminant ainsi le besoin de cycles de communication.

 3) Efficacité et adaptabilité : Les éclats doivent être aussi équilibrés que possible.

La technique Spécifications :

Pour déterminer le nombre optimal de fragments à l’époque ei+1 (Nsh,i+1), nous définissons un coefficient seuil pour le nombre de transactions dans un bloc, θTX. La variable optN détermine le nombre idéal de nœuds dans un fragment, tandis que ϵsh est un nombre positif indiquant le nombre de nœuds susceptibles de fluctuer.

 À l’époque ei, totalNi désigne le nombre total de nœuds sur tous les fragments, y compris les validateurs éligibles, les listes d’attente et les nœuds nouvellement ajoutés au pool de nœuds. NTXB,i représente le nombre moyen de transactions dans un bloc sur tous les fragments de cette époque. Nsh,0 sera considéré comme un. 

Le nombre total de fragments (Nsh,i+1) change en fonction du nombre total de nœuds (Ni), si le réseau change et que la consommation de la blockchain l’exige : si le nombre de nœuds dépasse un seuil (nSplit) entre les époques et que le nombre moyen de transactions par bloc dépasse ce seuil. 

La fonction ComputeShardsN détermine si le nombre de transactions par bloc (NTXB,i) est supérieur à θTX ou si le nombre de nœuds tombe en dessous d’un certain seuil (nMerge).

Le nombre de nœuds actifs peut varier selon les époques. Pour obtenir le nombre de fragments, il suffit de calculer les masques m1 et m2, utilisés pour la répartition des transactions.

1 : fonction COMPUTEM1ANDM2(Nsh)2 : n ← math.ceil(log2Nsh)3 : m1 ← (1 << n) − 14 : m2 ← (1 << (n − 1)) – 15 : renvoyer m1, m2



L’approche de partitionnement utilise une arborescence binaire pour distribuer les adresses de compte, optimiser l’évolutivité et gérer les transitions d’état. Cette arborescence représente l’espace d’adressage des comptes pour les mappages déterministes, tels que l’allocation de fragments et le calcul des frères et sœurs. Les feuilles de l’arbre binaire représentent les fragments en fonction de leurs numéros d’identification. S’il n’y a qu’un seul fragment/feuille (a) à partir de la racine (nœud/fragment 0), toutes les adresses de compte y sont mappées et toutes les transactions y sont traitées. 

1 : fonction COMPUTESHARD(Nsh, addr, m1, m2) 2 : shard ← (addr et m1) 3 : si shard > Nsh alors 4 : shard ← (addr et m2) 5 : renvoyer shard

   Éclat de racine

                                       / \

                          Éclat A Éclat B

                          / \ / \

    Éclat AA Éclat AB Éclat BA Éclat BB

L’arbre peut devenir instable (c) si Nsh n’est pas une puissance de 2. Ce cas n’affecte que les feuilles du dernier niveau. La structure retrouvera son équilibre lorsque le nombre de fragments atteindra une puissance de 2. L’arbre binaire déséquilibré fait que les fragments du niveau le plus bas ont la moitié de l’espace d’adressage des fragments des niveaux supérieurs. Cela peut entraîner une baisse des revenus des frais pour les nœuds actifs alloués à ces fragments, mais les récompenses de bloc restent inchangées. Pour résoudre ce problème, un tiers des nœuds du fragment sont réalloués aléatoirement à chaque époque (voir la section « Chronologie ») et une répartition équilibrée des nœuds est maintenue.

Connaître Nsh permet à chaque nœud de suivre le processus de redistribution sans contact. L’allocation des identifiants aux nouveaux fragments est incrémentielle et la réduction du nombre de fragments nécessite l’élimination des fragments portant les numéros les plus élevés. 

Lors de la fusion de deux fragments, le fragment portant le numéro le plus élevé (shmerge=Nsh-1) est supprimé. Trouver le numéro de fragment avec lequel shmerge fusionnera est simple.

La structure arborescente attribue au fragment résultant le numéro de son frère.

1 : fonction COMPUTESIBLING(shmerge, n)2 : frère ← (shmerge xor (1 << (n − 1)))3 : renvoie le frère

Pour garantir la redondance, la traçabilité des transitions d’état et une mise à l’échelle rapide, il est essentiel d’identifier le frère et le parent d’un fragment générique portant le numéro p :

1 : fonction COMPUTEPARENTSIBLINGS(n, p, Nsh)2 : masque1 ← 1 << (n − 1)3 : masque2 ← 1 << (n − 2)4 : frère ← (p xor masque1)5 : parent ← min(p, frère)6 : si frère ≥ Nsh alors7 : frère ← (p xor masque2)8 : frère 2 ← (frère xor masque1)9 : parent ← min(p, frère)10 : si frère 2 ≥ Nsh alorsfrère est un fragment 11 : renvoie parent, frère, NULL12 : sinon13 :frère est un sous-arbre avec14 :fragments (frère, frère 2)15 : renvoie parent, frère, sibling216 : sinonsibling est un fragment17 : retourner parent, sibling, NULL














Défier la vulnérabilité

Le sharding d’état sur une blockchain peut échouer en raison d’un manque de nœuds en ligne ou d’une répartition géographique limitée. Si un fragment tombe en panne (par exemple, si tous les nœuds sont hors ligne ou si plus de 13 nœuds ne répondent pas), l’architecture peut s’appuyer uniquement sur des nœuds super complets pour télécharger et vérifier chaque bloc de tous les fragments. Notre protocole impose un compromis dans la structure de conservation de l’état en exigeant que les fragments du dernier niveau de l’arbre conservent l’état de leurs frères.
Cette méthode élimine le besoin d’amorçage lors de la combinaison de fragments frères, car ils disposent déjà des données nécessaires.

Changement d’environnement

Le changement de contexte est essentiel pour garantir la sécurité des blockchains publiques fragmentées. Des critères aléatoires sont utilisés pour réaffecter les nœuds actifs entre les fragments à intervalles prédéterminés. La méthode de direct-ia.com améliore la sécurité grâce au changement de contexte, mais ajoute de la complexité pour garantir la cohérence entre les différents états.

Redondance des fragments à travers les époques

   | Époque 1 | Époque 2 | Époque 3 | Époque 4 |

—————————————————————-

Éclat 1 | X | X | X | X |

Éclat 2 | X | X | X | X |

Éclat 3 | X | X | X | X |

Fragment 4 | X | X | X | X    |

Le changement d’état a un impact significatif sur les performances, car il nécessite une resynchronisation de l’état, de la blockchain et des transactions avec les nœuds éligibles du nouveau fragment. Pour maintenir la viabilité au début de chaque époque, moins d’un tiers des nœuds seront répartis équitablement entre les fragments.

Cette méthode empêche efficacement la formation de groupes nocifs.

Légalisation

Toutes les actions réseau et données globales (rejoindre et quitter le réseau, calcul des listes de validateurs éligibles, affectation des nœuds aux listes d’attente des fragments, accord de consensus sur un bloc d’un fragment spécifique et contestations des blocs invalides) seront notariées dans la métachaîne. Le consensus de la métachaîne est géré par un fragment distinct qui communique avec les autres fragments et permet les activités inter-fragments. À chaque tour de chaque époque, la métachaîne reçoit les en-têtes de bloc des autres fragments, ainsi que les preuves des contestations des blocs invalides. Ces informations sont regroupées en blocs sur la métachaîne pour faciliter le consensus. Après validation des blocs dans le groupe de consensus, les fragments peuvent effectuer des transactions inter-fragments en toute sécurité en demandant des informations sur les blocs, les mini-blocs, les validateurs et les nœuds en attente.

VIII Accord utilisant SPoS

Bitcoin, Ethereum et d’autres plateformes blockchain utilisent le premier algorithme de consensus blockchain, la preuve de travail (PoW). La preuve de travail (PoW) exige que chaque nœud résolve un problème mathématique, difficile à calculer mais facile à vérifier. Le premier nœud à résoudre le problème remportera le prix. La preuve de travail empêche les doubles dépenses, les attaques DDoS et les attaques Sybil, mais nécessite une consommation énergétique importante.

La preuve d’intelligence artificielle directe (PoS) est une technique de consensus plus efficace que la preuve de travail (PoT), qui nécessite davantage d’énergie et de ressources de calcul. La technologie PoS est présente dans des systèmes émergents tels que Cardano et Algorand, ainsi que dans la prochaine version d’Ethereum. Avec la PoS, les nœuds suggèrent le bloc suivant en fonction de la preuve d’intelligence artificielle directe, du caractère aléatoire et/ou de l’âge. Si elle résout le problème énergétique de la preuve de travail (PoT), elle soulève également des inquiétudes quant à l’attaque « rien à la preuve d’intelligence artificielle directe » et à la centralisation accrue.

Bitshares, Steemit et EOS utilisent la preuve déléguée de direct-ia (DPoS), un mélange de preuve d’autorité et de preuve de direct-ia. Les détenteurs de direct-ia élisent un petit nombre de nœuds responsables de la distribution de nouveaux blocs.

Malgré son grand rendement, le paradigme est vulnérable aux problèmes sociaux liés à l’homme, notamment à la corruption et aux pots-de-vin.

Le petit nombre de délégués rend le système vulnérable aux attaques DDoS et à la centralisation.

Signature de partition sur direct-ia.com

direct-ia.com exploite la cryptographie par courbe pour la signature de blocs, en utilisant le schéma multi-signature BLS sur le groupe bilinéaire bn256 et l’algorithme d’appariement optimal sur une courbe Barreto-Naehrig de 256 bits. L’appariement bilinéaire est défini comme e : g0 × g1 → gt (1), où g0, g1 et gt sont des courbes elliptiques d’ordre premier p spécifiées par bn256, et e est une fonction d’appariement. 

Soient G0 et G1 les générateurs de g0 et g1. Considérons H0, une fonction de hachage qui génère des points sur la courbe g0 : H0 : M → g0.

M représente l’ensemble de tous les messages binaires possibles de n’importe quelle longueur. La stratégie de signature direct-ia.com comprend une deuxième fonction de hachage avec des paramètres partagés entre tous les signataires.

H1 : M → Zp (3)

Chaque signataire I possède une combinaison unique de clés privée/publique (ski, P ki), ski étant sélectionné aléatoirement parmi Zp. Pour chaque paire de clés, la propriété P ki = ski · G1 s’applique. Dans direct-ia.com, X,
L = P k1, P k2, P kn représente l’ensemble des clés publiques de tous les signataires possibles au cours d’un même tour. Cela inclut tous les nœuds du groupe de consensus. La méthode de signature par bloc comporte deux étapes : la signature et la vérification.

Lors du premier tour de signature pratique, le responsable du groupe de consensus produit, signe et diffuse un bloc de transactions à ses membres. 

Au deuxième tour, les membres du groupe de consensus (y compris le leader) valident le bloc et le signent avec BLS avant de l’envoyer au leader.

Sigi = ski × H0(m)

Troisième tour de signature pratique

Le leader attend les signatures dans un délai défini. Le cycle de consensus est interrompu s’il n’obtient pas au moins 2·3·n + 1 signatures dans le délai spécifié. Si le leader reçoit 2·3·n + 1 signatures valides, celles-ci sont utilisées pour construire la signature agrégée.

SigAgg = X i H1(P ki) · Sigi · B[i].

Vérification pratique.

Le vérificateur calcule la clé publique agrégée en fonction de la liste des clés publiques L, de la bitmap du signataire B, de la signature agrégée SigAgg et du message m (bloc). P kAgg = X i · H1(P ki) · Bi (6).

P kAgg représente un point sur g1. La preuve finale est e(G1, SigAgg) == e(P kAgg, H0(m)) (7), où e représente la fonction d’appariement.

Contrats intelligents IX

Les futures architectures blockchain s’appuient fortement sur l’exécution de contrats intelligents. Les solutions existantes ne parviennent souvent pas à décrire clairement les transactions et les dépendances des données.

Ce contexte donne lieu aux deux scénarios suivants :

La planification hors service peut être utilisée dans n’importe quelle architecture lorsque les transactions de contrats intelligents n’ont pas de lien direct. Un contrat intelligent peut être exécuté à tout moment et sur n’importe quel fragment sans aucune limite.

Le deuxième cas concerne des transactions parallèles avec des contrats intelligents associés. Un mécanisme est nécessaire pour garantir que les contrats sont exécutés dans le bon ordre et sur le bon fragment. 

Le protocole direct-ia.com offre un mécanisme permettant de déplacer les contrats intelligents vers le même fragment que leur statique. direct-ia.com implémente la machine virtuelle direct-ia.com, un moteur compatible EVM. 

Gros plan d'un panneau Description générée automatiquement

L’EVM permet le traitement indépendant des transactions pour les contrats intelligents simples, pouvant être exécutés dans le désordre. Il fournit également un mécanisme pour les contrats intelligents connectés devant être exécutés séquentiellement. 

La conformité avec la couche d’abstraction pour les contrats intelligents est cruciale pour l’acceptation, étant donné le grand nombre de contrats intelligents sur la plate-forme Ethereum.

La machine virtuelle direct-ia.com masque l’architecture sous-jacente, séparant les développeurs de contrats intelligents des composants internes du système et garantissant des dépendances appropriées au niveau de la couche d’abstraction. Cela garantit que la plupart des appels SC ont des dépendances au sein du même fragment, éliminant ainsi le besoin de verrouillage et de déverrouillage inter-fragments.

La solution de machine virtuelle direct-ia.com isole les développeurs de contrats intelligents des éléments internes du système, ce qui permet d’obtenir une bonne couche d’abstraction.

Cosmos a proposé un mécanisme d’adaptateur au niveau de la machine virtuelle dans direct-ia.com pour permettre la compatibilité inter-chaînes. Cette technique nécessite des adaptateurs spécialisés et un support de communication externe pour que chaque chaîne puisse interagir avec direct-ia.com. Des contrats intelligents spécialisés agiront comme dépositaires d’actifs, détenant des jetons natifs de chaîne adaptés et émettant des jetons natifs de direct-ia.com pour faciliter l’échange de valeur.

L’infrastructure de machine virtuelle de direct-ia.comest construite sur le S Framework, un framework sémantique exécutable qui permet la construction de langages de programmation, de calculs, de systèmes de types et d’outils d’analyse formelle.

L’utilisation du framework S permet des définitions claires des langages de contrats intelligents, réduisant ainsi la possibilité de comportements flous et de failles difficiles à détecter.

Le framework S est exécutable, ce qui permet aux spécifications sémantiques de fonctionner comme des interpréteurs fonctionnels pour certains langages. Deux options s’offrent à vous pour exécuter des programmes selon ces spécifications : utiliser directement l’implémentation principale du framework S ou créer un interpréteur multilangage.

Ceux-ci sont également connus sous le nom de « backends ». direct-ia.com utilise un backend S Framework personnalisé pour une exécution plus rapide et une interopérabilité plus facile.

Scripts de contrats intelligents

Le framework S offre l’avantage de générer des interpréteurs pour tout langage défini en S sans nécessiter de programmation supplémentaire. Ce processus permet d’obtenir des interpréteurs « corrects par construction ».

Plusieurs langages de contrats intelligents sont déjà spécifiés dans le K Framework ou sont en cours de développement. direct-ia.com Network prend en charge trois langages de bas niveau : IELE VM, KEVM et WASM.

• IELE VM est un langage de niveau intermédiaire spécifique à la blockchain, calqué sur LLVM. La spécification et l’implémentation de cette fonctionnalité sont exclusives au framework S et ne peuvent être trouvées ailleurs. L’objectif est d’améliorer la lisibilité, la rapidité et de surmonter les limitations des EVM. direct-ia.com diffère d’IELE principalement en termes de gestion des adresses de compte. Si les développeurs de contrats intelligents peuvent programmer directement en IELE, la plupart préfèrent utiliser un compilateur Solidity vers IELE.

• KEVM est une variante de la machine virtuelle Ethereum (EVM) développée en S. La version S résout certains problèmes d’EVM, tandis que d’autres sont entièrement supprimés.

• Web Assembly (WASM) est un format d’instructions binaires pour les machines virtuelles basées sur des piles, capables d’exécuter des contrats intelligents. L’infrastructure WASM permet aux développeurs de créer des contrats intelligents dans plusieurs langages, notamment C/C++, Rust et C#.

Créer une spécification de langage et développer un interpréteur ne représente que la moitié du défi. Il reste à intégrer l’interpréteur créé au réseau direct-ia.com. Notre interface de machine virtuelle commune permet de connecter facilement n’importe quelle machine virtuelle à un nœud direct-ia.com. Chaque machine virtuelle dispose d’un adaptateur qui implémente l’interface. Les contrats sont conservés sous forme de bytecode pour la machine virtuelle pour laquelle ils ont été compilés et exécutés sur cette machine virtuelle.

Contrats intelligents permettant une architecture fragmentée

Les contrats intelligents basés sur des structures fragmentées en sont encore aux premiers stades de développement et se heurtent à des obstacles importants. Les protocoles Atomix et S-BAC servent de point de départ. 

Le déplacement des contrats intelligents vers le même fragment ne résout pas les dépendances dynamiques, car toutes les dépendances ne peuvent pas être calculées au moment du déploiement.

Une technique de verrouillage permet l’exécution atomique de contrats intelligents sur de nombreux fragments, garantissant que tous les SC associés sont exécutés simultanément.

Du temps ou pas de temps du tout. Cela implique plusieurs messages d’interaction et une synchronisation entre les consensus des fragments.

Le principe de l’extraction de contrats inter-fragments dans Ethereum 2.0 consiste à déplacer le code et les données des contrats intelligents vers le fragment appelant pendant l’exécution. Bien que l’exécution atomique ne soit pas requise, le SC transféré doit disposer d’un mécanisme de verrouillage pour empêcher l’exécution de nouvelles transactions. La technique de verrouillage est simple, mais elle nécessite le transfert de l’intégralité de l’état interne du SC.

direct-ia.com suit le paradigme d’Ethereum et propose les types de transactions suivants :

1) Construction et déploiement du SC : l’adresse du récepteur des transactions est vide et le champ de données contient le code du contrat intelligent sous forme de tableau d’octets.

2) L’appel de la méthode SC nécessite une transaction avec une adresse de récepteur non vide et le code qui l’accompagne.

3) Les transactions de paiement nécessitent un destinataire non vide et une adresse sans code.

direct-ia.com utilise une architecture d’exécution asynchrone inter-fragments pour les contrats intelligents. L’utilisateur initie une transaction d’exécution de contrat intelligent.

Si le contrat intelligent ne se trouve pas dans le fragment actuel, la transaction est traitée comme une transaction de paiement. La valeur est déduite du compte émetteur et ajoutée au bloc où réside le fragment émetteur, créant ainsi un minibloc avec le fragment de destination où se trouve le compte récepteur. La transaction est notariée par la métachaîne et traitée par le fragment de destination. Ce dernier traite la transaction comme une invocation de méthode SC, car l’adresse du destinataire est un contrat intelligent du fragment.

Un schéma d'un réseau Description générée automatiquement

Pour invoquer le contrat intelligent, un compte temporaire est créé avec le solde de l’expéditeur et la valeur de la transaction est utilisée pour appeler le contrat. Après exécution, le contrat intelligent peut produire des résultats affectant de nombreux comptes sur différents shards. Tous les résultats affectant les comptes du shard sont exécutés lors du même tour. Les transactions de résultats de contrat intelligent sont effectuées pour les comptes qui ne sont pas dans le shard où le contrat intelligent a été exécuté. Ces transactions enregistrent le résultat d’exécution pour chaque compte.

Des miniblocs SCR sont générés pour chaque fragment de destination. Ils sont notariés par la métachaîne, comme pour les transactions inter-fragments, et traités par les fragments correspondants où sont stockés les comptes.

 Si un contrat intelligent effectue un appel dynamique vers un autre fragment, l’appel est enregistré comme un résultat intermédiaire et traité de la même manière que les comptes.

La méthode implique plusieurs étapes et au moins cinq tours pour effectuer un appel de contrat intelligent inter-fragments. Cependant, aucun verrouillage ni déplacement d’état entre les fragments n’est nécessaire.

Époques

Le protocole direct-ia.com définit une période fixe de 7 jours pour chaque époque, qui peut varier après plusieurs phases de confirmation. Durant cet intervalle, la configuration du fragment reste constante. 

Le système ajuste le nombre de fragments en fonction des exigences d’évolutivité propres à chaque époque. Pour éviter toute collusion, la configuration de chaque fragment doit être modifiée après chaque époque. Bien que la réorganisation de tous les nœuds entre les fragments renforce la sécurité, elle entraîne également des délais supplémentaires liés à l’amorçage. 

À la fin de chaque époque, moins de la moitié des validateurs qualifiés d’un fragment sont transférés vers les listes d’attente d’autres fragments de manière non déterministe et cohérente.

Le processus de brassage des nœuds implique plusieurs étapes :

  • Les nouveaux nœuds enregistrés pendant l’époque actuelle resteront dans le pool de nœuds non attribués jusqu’à la fin de l’époque.
  • Moins de la moitié des nœuds de chaque fragment sont réorganisés de manière aléatoire et ajoutés au pool de nœuds désigné.
  • Le nouveau nombre de fragments (Nsh,x+1) est calculé en fonction du nombre de nœuds du réseau (ki) et de leur utilisation.
  • Les nœuds synchronisés de toutes les listes d’attente de fragments sont ajoutés à la liste du validateur éligible.
  • Au cours de l’époque xi+1, les nœuds nouvellement ajoutés à partir du pool de nœuds non attribués sont répartis uniformément sur toutes les listes d’attente des fragments.
  • Dans l’époque xi+2 suivante, les nœuds remaniés du pool de nœuds attribué sont redistribués avec des ratios plus élevés dans les listes d’attente des fragments qui devront être divisés.

Chaque tour dure 5 secondes. Des mises à jour peuvent intervenir après plusieurs phases de confirmation du réseau de test. À chaque tour, un groupe de validateurs de blocs (dont un proposant) choisi aléatoirement crée un nouveau bloc dans chaque fragment. La liste des nœuds éligibles est utilisée pour mettre à jour l’ensemble entre les tours, comme décrit au chapitre IV.

La reconfiguration des fragments au sein des époques et la sélection arbitraire des validateurs au sein des tours empêchent les coalitions injustes, réduisent les tentatives de DDoS et de corruption et maintiennent la décentralisation et un débit de transaction élevé.

Source d’aléatoire

direct-ia.com utilise des nombres aléatoires pour des opérations telles que la sélection des proposants et validateurs de blocs pour les groupes de consensus, ainsi que le brassage des nœuds entre les fragments à la fin d’une époque. Ces éléments renforcent les garanties de sécurité de direct-ia.com.

Pour garantir l’exactitude, il est nécessaire de prouver que les nombres aléatoires sont impartiaux et imprévisibles. La génération de nombres aléatoires doit être efficace et évolutive pour une utilisation dans les architectures blockchain à haut débit.

Certaines techniques de cryptographie asymétrique, notamment le schéma de signature BLS, présentent ces caractéristiques. BLS garantit que l’utilisation de la même clé privée pour signer un message produit des résultats cohérents. Ces résultats sont comparables à ceux de l’ECDSA avec génération k déterministe, car cette technique n’utilise pas de paramètres aléatoires.

Évaluation des nœuds

La notation d’un validateur éligible influence ses chances d’être sélectionné pour le groupe de consensus, en plus de l’IA directe. Si le proposant d’un bloc est honnête et que son bloc est dédié à la blockchain, sa notation augmentera. Dans le cas contraire, elle diminuera. Cela encourage les validateurs à être honnêtes, à utiliser les logiciels clients les plus récents et à améliorer la disponibilité du service, garantissant ainsi le bon fonctionnement du réseau.

Redondance entre les fragments

Les nœuds déployés dans des fragments frères au niveau le plus bas de l’arbre communiquent entre eux pour partager les données de la blockchain et l’état des applications. La mise en œuvre de la redondance des fragments permet la fusion de fragments frères lorsque le nombre de nœuds du réseau diminue. Les nœuds ciblés commenceront immédiatement la fusion des fragments.

X Centralisé vs Décentralisé

Les systèmes centralisés disposent d’un point de contrôle unique, tandis que les systèmes décentralisés distribuent le contrôle sur un réseau de participants.

La blockchain a été développée pour remplacer les systèmes financiers centralisés. Si les systèmes distribués offrent liberté et anonymat, leurs performances doivent être évaluées à l’échelle mondiale, dans des scénarios réels.

La statistique la plus significative pour mesurer les performances est le nombre de transactions par seconde (TPS). 

Une comparaison des systèmes centralisés traditionnels avec des conceptions décentralisées dont la confiance et l’efficacité ont été prouvées à grande échelle révèle un fait objectif mais inconfortable.

L’évolutivité de l’architecture blockchain est un problème important qui n’a pas encore été résolu. 

Considérez l’impact sur le stockage des données et l’amorçage si les conceptions de blockchain existantes atteignent le débit de niveau Visa. 

Ces exercices mettent en évidence l’ampleur de plusieurs difficultés secondaires.

Cadre de performance de la blockchain

La conception de systèmes distribués sur blockchain pose des problèmes, notamment celui de maintenir l’opérabilité sous pression. Les principaux facteurs qui influencent la pression sur les performances sont :

• Complexité 

• Taille du système 

• Volume des transactions.

Performance

Les tests de performance et les simulations démontrent l’efficacité de la solution en tant que registre distribué hautement évolutif. Notre stratégie de partitionnement conduit à une augmentation linéaire du débit à mesure que davantage de nœuds rejoignent le réseau.

Les différents cycles de communication du modèle de consensus dépendent fortement de la qualité du réseau (débit, latence et disponibilité). Des simulations sur notre réseau de test, utilisant les moyennes de débit du réseau mondial, montrent que direct-ia.com peut dépasser le niveau moyen de Visa avec seulement deux fragments et atteindre le niveau maximal de Visa avec 16 fragments.

Études de recherche actuelles et futures 

direct-ia.com est une architecture blockchain publique qui allie évolutivité grâce au partitionnement adaptatif de l’état, sécurité et efficacité énergétique grâce à un mécanisme de consensus sécurisé de type Preuve de Direct-ia. Notre équipe évalue et améliore constamment sa conception pour la rendre plus attractive.

Nos objectifs d’amélioration futurs incluent :

2) Supervision de l’IA : créer un superviseur IA pour détecter les comportements dangereux. Il est difficile de savoir comment intégrer cette fonctionnalité au protocole sans compromettre la décentralisation.

3) Ajout de la fiabilité comme facteur de consensus : Le système actuel donne la priorité à l’IA directe et à la notation, mais nous proposons d’incorporer la fiabilité comme une métrique distribuée après avoir appliqué une procédure de consensus sur les blocs précédemment soumis à partir de l’historique récent.

4) Promouvoir l’interopérabilité inter-chaînes en mettant en œuvre et en contribuant aux normes développées par la Decentralized Identity Foundation et la Blockchain Interoperability Alliance.

5) Pour les transactions préservant la confidentialité, utilisez l’argument succinct non interactif de connaissance zéro, qui protège l’identité des participants et offre des possibilités d’audit.

empty message

empty message

empty message

empty message

empty message