Surmonter les limites de Bitcoin: Un guide complet pour auditer la mise à l'échelle de la couche 2 du BTC

Intermédiaire8/27/2024, 9:33:27 AM
Cet article explore les solutions de mise à l'échelle de la couche 2 de BTC, y compris le Lightning Network, les Sidechains et les technologies Rollup, qui facilitent des transactions rapides et peu coûteuses tout en maintenant la décentralisation et la sécurité du réseau BTC. Le Lightning Network améliore la vitesse et la confidentialité des transactions grâce aux canaux de paiement et aux transactions hors chaîne, tandis que les Sidechains comme CKB et Stacks offrent des fonctionnalités indépendantes et innovantes grâce à l'ancrage à double sens. La technologie Rollup augmente le débit en traitant de gros volumes de transactions hors chaîne, malgré les défis liés au temps d'établissement et aux ressources de calcul.

Depuis sa création en 2009, Bitcoin (BTC), en tant que première cryptomonnaie au monde, est progressivement devenu le pilier des actifs numériques et de la finance décentralisée. Cependant, à mesure que le nombre d'utilisateurs et de volumes de transactions augmente, plusieurs problèmes liés au réseau BTC deviennent de plus en plus apparents :

  • Frais de transaction élevés : Lorsque le réseau Bitcoin est congestionné, les utilisateurs doivent payer des frais plus élevés pour s'assurer que leurs transactions sont confirmées rapidement.
  • Temps de confirmation de la transaction: La blockchain Bitcoin génère un nouveau bloc environ toutes les 10 minutes, ce qui signifie que les transactions sur chaîne nécessitent généralement plusieurs confirmations de bloc avant d'être considérées comme définitives.
  • Limitations des contrats intelligents : le langage de script de Bitcoin est limité en fonctionnalités, ce qui rend difficile la mise en œuvre de contrats intelligents complexes.

Dans cet article, nous faisons référence à des technologies telles que leRéseau Lightning, Sidechains et Rollup collectivement en tant que solutions d'évolutivité de la couche 2 de BTC. Ces technologies permettent des transactions rapides et peu coûteuses tout en maintenant la décentralisation et la sécurité du réseau BTC. L'introduction des technologies de la couche 2 peut améliorer la vitesse des transactions, réduire les coûts de transaction, optimiser l'expérience utilisateur et étendre la capacité du réseau, fournissant un support technique crucial et une innovation pour le développement futur de BTC.

Actuellement, Beosin est devenu le partenaire officiel en matière de sécurité pour plusieurs projets BTC Layer2 comme Merlin Chain et a audité plusieurs protocoles de l'écosystème BTC, notamment Bitmap.Games, Surf Protocol, Savmswap et Mineral. Lors d'audits précédents, de nombreuses chaînes publiques bien connues, telles que Ronin Network, Clover, Self Chain et Crust Network, ont passé avec succès les audits de sécurité de la chaîne publique de Beosin. Beosin propose désormais une solution d'audit complète pour BTC Layer2, offrant des services d'audit de sécurité fiables et approfondis pour l'ensemble de l'écosystème BTC.

Le réseau Lightning

Le concept initial derrière le Lightning Network était connu sous le nom de "canal de paiement". La philosophie de conception était de mettre à jour en continu l'état des transactions non confirmées par le biais du remplacement de transaction jusqu'à ce qu'elles soient finalement diffusées sur le réseau Bitcoin. Lorsque Satoshi Nakamoto a créé Bitcoin en 2009, il avait déjà proposé l'idée de canaux de paiement, incluant même un code de projet pour les canaux de paiement dans Bitcoin 1.0. Ce projet permettait aux utilisateurs de mettre à jour l'état de la transaction avant qu'elle ne soit confirmée par le réseau. Cependant, ce n'est que lors de la publication du livre blanc intitulé Le réseau Lightning Bitcoin : paiement instantané hors chaîne et scalableque le Lightning Network est réellement apparu et a attiré l'attention du public.

Aujourd'hui, la mise en œuvre des canaux de paiement et du réseau Lightning est devenue assez mature. À l'heure actuelle, le réseau Lightning se compose de 13 325 nœuds et 49 417 canaux, avec un total de 4 975 BTC en jeu.

https://1ml.com/

Dans le Lightning Network, il est crucial de garantir la sécurité des actifs des utilisateurs lors des transferts. Ci-dessous, nous expliquerons le fonctionnement du Lightning Network et comment il protège la sécurité des actifs des utilisateurs, en fonction de l'échelle des nœuds du réseau.

Les deux parties impliquées soumettent deux transactions au réseau principal de Bitcoin : une pour ouvrir le canal et une autre pour le fermer. Le processus implique généralement trois étapes :

1. Ouverture de canal :

Tout d'abord, les deux utilisateurs misent du Bitcoin dans un portefeuille multi-signatures sur le réseau BTC via le Lightning Network. Une fois que le Bitcoin est misé avec succès et verrouillé, le canal de paiement est ouvert, permettant aux deux parties d'effectuer des transactions hors chaîne dans ce canal.

2. Transactions hors chaîne :

Une fois que le canal est ouvert, toutes les transactions de transfert entre les utilisateurs sont traitées au sein du Lightning Network, et il n'y a pas de limite au nombre de ces transactions hors chaîne. Ces transactions n'ont pas besoin d'être soumises immédiatement au Bitcoin mainnet, mais sont plutôt instantanément achevées grâce au mécanisme hors chaîne du Lightning Network.

Cette méthode de traitement hors chaîne augmente considérablement la vitesse et l'efficacité des transactions, évitant ainsi la congestion sur le réseau principal Bitcoin et les frais de transaction élevés.

3.Fermeture de canal et règlement du grand livre :

Lorsque l'un des utilisateurs décide de quitter le canal, un règlement final du grand livre a lieu. Ce processus garantit que tous les fonds du canal sont distribués selon l'état le plus récent. Les deux utilisateurs retirent ensuite leurs soldes respectifs réglés du portefeuille multi-signatures, reflétant la distribution réelle des fonds au moment de la fermeture du canal. Enfin, la transaction représentant l'état final du grand livre est soumise au réseau principal Bitcoin.

Les avantages du réseau Lightning incluent:

  • Vitesse de transaction accrue :
    Le réseau Lightning permet aux utilisateurs d'effectuer des transactions hors chaîne, ce qui signifie que les transactions peuvent être effectuées presque instantanément sans attendre les temps de confirmation des blocs. Cela permet d'atteindre des vitesses de transaction de deuxième niveau, améliorant considérablement l'expérience utilisateur.
  • Confidentialité renforcée :
    Les transactions hors chaîne sur le réseau Lightning n'ont pas besoin d'être enregistrées publiquement sur la chaîne principale de Bitcoin, améliorant ainsi la confidentialité des transactions. Seules l'ouverture et la fermeture des canaux doivent être enregistrées sur la chaîne principale, de sorte que les activités de transaction des utilisateurs ne sont pas entièrement divulguées.
  • Prise en charge des micro-paiements :
    Le Lightning Network est particulièrement adapté pour gérer les micro-paiements, tels que les paiements de contenu et les paiements entre les appareils IoT. Les transactions Bitcoin traditionnelles, en raison des frais élevés, ne sont pas idéales pour des micro-paiements fréquents, mais le Lightning Network résout ce problème.

Les défis auxquels est confronté le Lightning Network comprennent :

  • Liquidité du réseau:
    Le réseau Lightning repose sur le fait que le Bitcoin soit pré-verrouillé dans le canal. Cela signifie que les utilisateurs doivent déposer suffisamment de Bitcoin dans leurs canaux de paiement à l'avance pour faciliter les transactions. Une liquidité insuffisante peut entraîner des échecs de paiement, en particulier pour les paiements importants.
  • Routage :
    Trouver un itinéraire efficace de l'expéditeur au destinataire peut être un problème complexe, surtout lorsque le réseau prend de l'ampleur. À mesure que le nombre de nœuds et de canaux du réseau augmente, garantir la réussite du paiement devient de plus en plus difficile.
  • Fiducie de garde : Les nœuds peuvent être vulnérables aux attaques malveillantes, et les utilisateurs doivent faire confiance aux nœuds auxquels ils sont connectés pour ne pas essayer de voler des fonds. Il y a aussi la question de savoir si les nœuds peuvent empêcher les fuites de clés privées.
  • Normes techniques et interopérabilité : Des normes et protocoles techniques cohérents sont nécessaires pour garantir l'interopérabilité entre différentes implémentations du réseau Lightning. Actuellement, plusieurs équipes de développement travaillent sur diverses implémentations du réseau Lightning, ce qui pourrait entraîner des problèmes de compatibilité.
  • Problèmes de confidentialité : Bien que le Lightning Network améliore la confidentialité des transactions Bitcoin, les informations de transaction pourraient encore être suivies ou analysées. De plus, les opérateurs de nœuds du réseau peuvent voir les transactions passant par leurs nœuds, compromettant potentiellement certaines données privées.

La sécurité du Lightning Network a un impact direct sur la scalabilité hors chaîne du Bitcoin et la sécurité des fonds des utilisateurs. Par conséquent, en plus des éléments d'audit courants pour les chaînes publiques (détaillés dans l'annexe à la fin de ce document), le Lightning Network doit également traiter les risques de sécurité clés suivants :

  • Congestion du canal:
    Évaluez l'exhaustivité de la conception du système Lightning Network pour vous assurer qu'il n'est pas susceptible aux attaques par déni de service qui pourraient entraîner une congestion des canaux.
  • Interférence de canal:
    Évaluer la sécurité de la structure des canaux du réseau Lightning pour s'assurer qu'elle n'est pas vulnérable aux attaques de blocage de canal.
  • Verrouillage et déverrouillage des actifs de canal :
    Examinez les processus de verrouillage et de déverrouillage des actifs dans le Lightning Network pour garantir que les transferts de fonds entre on-chain et off-chain sont sécurisés et fiables lors de l'ouverture ou de la fermeture des canaux de paiement.
  • Mises à jour de l'état et fermeture du canal :
    Évaluez les processus de mise à jour de l'état des canaux et le mécanisme de fermeture forcée pour garantir que, en cas de situation anormale, le dernier état puisse être reconnu et exécuté avec précision.
  • Verrous temporels et contrats verrouillés par hachage temporel (HTLC) :
    Évaluer la mise en œuvre des HTLC pour s'assurer que les conditions de verrouillage temporel et de hachage sont correctement appliquées, empêchant toute perte éventuelle de fonds due à des problèmes de fenêtre temporelle.
  • Dépendance aux horodatages de la blockchain:
    Évaluez la dépendance du Lightning Network vis-à-vis des horodatages de la blockchain Bitcoin pour assurer une synchronisation correcte des temps on-chain et off-chain, empêchant les attaques basées sur le temps.
  • Sécurité de l'algorithme de routage: Examiner l'efficacité et la sécurité des algorithmes de routage pour prévenir les risques d'exposition de la vie privée et de manipulation malveillante du routage.
  • Stockage de canal et récupération de données :
    Vérifiez le mécanisme de stockage du canal et la stratégie de récupération des données pour vous assurer que les états du canal peuvent être restaurés en cas de défaillance des nœuds ou de déconnexions inattendues, empêchant la perte de fonds.

Sidechains

Contrairement au Lightning Network, une sidechain est une blockchain indépendante qui fonctionne en parallèle de la chaîne principale (comme la blockchain BTC) et interagit avec elle grâce à un mécanisme appelé un peg bidirectionnel (2WP). Le but des sidechains est de permettre des fonctionnalités et une évolutivité supplémentaires sans modifier le protocole de la chaîne principale.

Un sidechain, en tant que blockchain indépendante, possède son propre mécanisme de consensus, ses propres nœuds et ses propres règles de traitement des transactions. Il peut adopter différentes technologies et protocoles en fonction des besoins de scénarios d'application spécifiques. Grâce au mécanisme d'ancrage bidirectionnel, le sidechain communique avec la mainchain, garantissant que les actifs peuvent être transférés librement et en toute sécurité entre eux. Le fonctionnement du mécanisme d'ancrage bidirectionnel implique généralement les étapes suivantes:

  1. L'utilisateur verrouille BTC sur la chaîne principale. Une entité de confiance obtient ensuite et utilise la Vérification de Paiement Simplifiée (SPV) pour confirmer si la transaction de verrouillage de l'utilisateur a été confirmée.

  2. L'entité de confiance émet une quantité équivalente de jetons à l'utilisateur sur la chaîne latérale.

  3. Après avoir terminé leurs transactions, l'utilisateur verrouille les jetons restants sur la sidechain.

  4. Après avoir vérifié la légitimité des transactions, l'entité de confiance déverrouille et libère la valeur correspondante de BTC à l'utilisateur sur la chaîne principale.

Note 1: Les entités de confiance jouent un rôle crucial dans le mécanisme d'ancrage bidirectionnel, gérant le verrouillage et le déverrouillage des actifs. Ces entités doivent posséder un niveau élevé de fiabilité et de capacité technique pour garantir la sécurité des actifs des utilisateurs.

Note 2: La vérification SPV permet à un nœud de vérifier la validité d'une transaction spécifique sans télécharger l'intégralité de la chaîne de blocs. Les nœuds SPV n'ont besoin de télécharger que les en-têtes de bloc et d'utiliser l'arbre de Merkle pour vérifier si la transaction est incluse dans le bloc.

Projets de Sidechain Représentatifs

CKB (Réseau Nervos) \
Nervos Network est un écosystème de blockchain public open-source conçu pour tirer parti des avantages de sécurité et de décentralisation du mécanisme de consensus Proof of Work (PoW) de Bitcoin tout en introduisant un modèle UTXO plus scalable et flexible pour gérer les transactions. À son cœur se trouve la Base de Connaissances Commune (CKB), une blockchain de couche 1 construite sur RISC-V et utilisant PoW comme mécanisme de consensus. Il étend le modèle UTXO en modèle Cell, lui permettant de stocker n'importe quelle donnée et de prendre en charge des scripts écrits dans n'importe quel langage pour s'exécuter en tant que contrats intelligents on-chain.

Stacks

Stacks connecte chaque bloc Stacks à un bloc Bitcoin grâce à son mécanisme de Preuve de Transfert (PoX). Pour faciliter le développement de contrats intelligents, Stacks a conçu le langage de programmation Clarity. En Clarity, le obtenir des informations sur le bloc de combustion?fonction permet d'entrer une hauteur de bloc Bitcoin pour récupérer le hachage de l'en-tête du bloc, tandis que le burn-block-heightLe mot-clé récupère la hauteur de bloc actuelle de la chaîne Bitcoin. Ces fonctions permettent aux contrats intelligents Clarity de lire l'état de la chaîne de base Bitcoin, permettant aux transactions Bitcoin de déclencher des contrats. En exécutant automatiquement ces contrats intelligents, Stacks étend la fonctionnalité de Bitcoin. Pour une analyse détaillée de Stacks, vous pouvez vous référer à l'article de recherche précédent de Beosin :Qu'est-ce que Stacks? Quels défis pourraient rencontrer les réseaux de niveau 2 BTC Stacks?

Avantages des sidechains

  • Les sidechains peuvent adopter différentes technologies et protocoles, permettant diverses expérimentations et innovations sans affecter la stabilité et la sécurité de la chaîne principale.
  • Les sidechains peuvent introduire des fonctionnalités non présentes sur la chaîne principale, telles que les contrats intelligents, la protection de la vie privée et l'émission de jetons, enrichissant les scénarios d'application de l'écosystème blockchain.

Défis des sidechains

  • Les sidechains ont des mécanismes de consensus indépendants, qui peuvent ne pas être aussi sécurisés que le mainchain BTC. Si le mécanisme de consensus d'une sidechain est faible ou présente des vulnérabilités, cela pourrait entraîner une attaque de 51% ou d'autres formes d'attaques, mettant en péril la sécurité des actifs des utilisateurs. La sécurité du mainchain BTC repose sur sa puissance de hachage massive et sa distribution nodale étendue, qu'une sidechain pourrait ne pas être en mesure d'égaler.
  • La mise en œuvre du mécanisme d'ancrage bidirectionnel nécessite des algorithmes cryptographiques et des protocoles complexes. S'il existe des vulnérabilités au sein de ce mécanisme, cela pourrait entraîner des problèmes de transfert d'actifs entre la chaîne principale et la chaîne latérale, potentiellement entraînant une perte ou un vol d'actifs.
  • Pour équilibrer la vitesse et la sécurité, la plupart des sidechains sont plus centralisées que la chaîne principale.

La couche 2 est un système blockchain complet, donc les éléments d'audit généraux des blockchains publiques s'appliquent également aux sidechains. Pour plus de détails, veuillez vous référer à l'annexe à la fin de cet article.

De plus, en raison de ses caractéristiques uniques, les sidechains nécessitent des vérifications supplémentaires :

  • Sécurité du protocole de consensus:
    Vérifiez si le protocole de consensus du sidechain (par exemple, PoW, PoS, DPoS) a été soigneusement validé et testé pour d'éventuelles vulnérabilités ou vecteurs d'attaque, tels que les attaques à 51% ou les attaques à longue portée.
  • Sécurité du nœud de consensus:
    Évaluer la sécurité des nœuds de consensus, y compris la gestion des clés, la protection des nœuds et les sauvegardes redondantes, pour empêcher que les nœuds ne soient compromis ou abusés.
  • Verrouillage et libération d'actifs :
    Examiner le mécanisme d'ancrage bidirectionnel entre la sidechain et la mainchain pour garantir que les contrats intelligents responsables du verrouillage et du déverrouillage des actifs sont sécurisés et fiables, empêchant le double-dépense, la perte d'actifs ou les échecs de verrouillage.
  • Vérification inter-chaînes :
    Vérifiez l'exactitude et la sécurité de la vérification inter-chaînes pour garantir que le processus est décentralisé et inviolable, prévenant les échecs de vérification ou les vérifications malveillantes.
  • Audit du code de contrat intelligent:
    Effectuer un audit approfondi de tous les contrats intelligents fonctionnant sur la chaîne latérale, détectant toute vulnérabilité potentielle ou porte d'entrée dérobée, en particulier dans la logique des contrats traitant des opérations inter-chaînes.
  • Mécanisme de mise à niveau :
    Vérifiez la sécurité du mécanisme de mise à niveau du contrat intelligent, en veillant à ce qu'il y ait des processus d'audit et de consensus communautaire appropriés en place pour prévenir les mises à niveau malveillantes ou les manipulations de contrat.
  • Communication entre nœuds :
    Inspecter la sécurité du protocole de communication entre les noeuds de la chaîne latérale, en veillant à l'utilisation de canaux chiffrés pour prévenir les attaques de l'homme du milieu ou les violations de données.
  • Communication inter-chaînes :
    Évaluer les canaux de communication entre la sidechain et la mainchain pour garantir l'intégrité et l'authenticité des données, empêchant ainsi toute interception ou altération de la communication.
  • Horodatage et temps de bloc :
    Vérifiez le mécanisme de synchronisation temporelle de la chaîne latérale pour garantir la cohérence et la précision du temps de génération de bloc, empêchant les attaques ou les retours en arrière de blocs causés par des divergences temporelles.
  • Sécurité de la gouvernance on-chain:
    Examinez le mécanisme de gouvernance du sidechain pour garantir la transparence et la sécurité dans les processus de vote, de proposition et de prise de décision, afin de prévenir tout contrôle ou attaque malveillante.
  • Audit de l'économie des jetons :
    Examiner la tokenomie du sidechain, y compris la distribution des jetons, les mécanismes d'incitation et les modèles d'inflation, en veillant à ce que les incitations économiques ne conduisent pas à des comportements malveillants ou à l'instabilité du système.
  • Mécanisme de frais :
    Examiner le mécanisme des frais de transaction de la sidechain pour s'assurer qu'il corresponde aux besoins des utilisateurs de la mainchain et de la sidechain, afin de prévenir toute manipulation des frais ou congestion du réseau.
  • Sécurité des actifs :
    Auditez le mécanisme de gestion des actifs sur chaîne pour garantir que les processus de stockage, de transfert et de destruction des actifs sont sécurisés et fiables, sans risque d'accès non autorisé ou de vol.
  • Gestion des clés :
    Inspecter la stratégie de gestion des clés de la sidechain pour garantir la sécurité des clés privées et le contrôle d'accès, empêchant toute fuite ou utilisation abusive des clés.

Rollup

Rollup est une solution de mise à l'échelle de la couche 2 conçue pour améliorer le débit et l'efficacité des transactions blockchain. En agrégeant un grand nombre de transactions ("Rolling up") et en les traitant hors chaîne, il réduit la charge sur la chaîne principale, ne soumettant que les résultats finaux à celle-ci.

Rollup se décline en deux principaux types : zk-Rollup et op-Rollup. Cependant, contrairement à Ethereum, le manque de complétude de Turing de Bitcoin empêche l'utilisation de contrats intelligents pour la vérification des preuves de connaissance nulle (ZKP) directement sur son réseau. Cela signifie que les solutions zk-Rollup traditionnelles ne peuvent pas être mises en œuvre sur Bitcoin. Alors, comment zk-Rollup peut-il être utilisé pour réaliser la mise à l'échelle de la couche 2 de Bitcoin ? Explorons le projet B² Network comme exemple :

Pour effectuer la vérification ZKP sur Bitcoin, B² Network a développé un script Taproot qui intègre la vérification de preuve de connaissance zéro de zk-Rollup avec le mécanisme de défi incitatif d'op-Rollup. Voici comment cela fonctionne:

  1. Le réseau B² agrège d'abord toutes les transactions des utilisateurs dans un Rollup.
  2. Un séquenceur ordonne ensuite ces transactions Rollup, les stocke dans un stockage décentralisé et les traite à travers un zkEVM.
  3. Après la synchronisation de l'état de la chaîne Bitcoin, le zkEVM traite les exécutions de contrats et autres transactions, consolide les résultats et les envoie à l'agrégateur.
  4. Le prouveur génère une preuve de connaissance nulle et l'envoie à l'agrégateur, qui combine les transactions et la preuve et les transmet aux nœuds B².
  5. Les nœuds B² vérifient la preuve de connaissance nulle et créent un script Taproot basé sur les données Rollup stockées dans un stockage décentralisé.
  6. Le Taproot, qui est un UTXO d'une valeur de 1 satoshi, contient l'inscription B² dans sa structure de données, stockant toutes les données Rollup, tandis que le Tapleaf stocke les données de vérification de toutes les preuves. Après avoir passé le mécanisme de défi d'incitation, il est soumis à Bitcoin sous forme d'un engagement basé sur zk-proof.

Avantages de Rollup:

  • Rollup hérite des caractéristiques de sécurité et de décentralisation de la chaîne principale. En soumettant régulièrement des données de transaction et d'état à la chaîne principale, il garantit l'intégrité et la transparence des données.
  • Le Rollup peut être intégré de manière transparente dans les réseaux blockchain existants, tels qu'Ethereum, permettant aux développeurs de tirer facilement parti de ses avantages sans modifications significatives des contrats intelligents et des applications existants.
  • Rollup augmente considérablement le débit des transactions en traitant un grand nombre de transactions hors chaîne et en les soumettant par lots à la chaîne principale, ce qui entraîne une augmentation notable du nombre de transactions par seconde (TPS).
  • Puisque les transactions Rollup sont traitées hors chaîne, cela réduit drastiquement les ressources computationnelles et l'espace de stockage nécessaires pour les transactions sur chaîne, ce qui permet de réduire considérablement les frais de transaction pour les utilisateurs.

Défis du Rollup :

  • Si les données hors chaîne deviennent indisponibles, les utilisateurs peuvent être incapables de vérifier les transactions et de récupérer leur état.
  • Les transactions Rollup doivent être traitées par lots et finalement soumises à la chaîne principale, ce qui peut entraîner des délais de règlement plus longs. Cela est particulièrement vrai dans le cas de l'op-Rollup, où il y a une période de litige, obligeant les utilisateurs à attendre plus longtemps la confirmation finale de la transaction.
  • Alors que ZK Rollup offre une sécurité accrue et une confirmation instantanée, il nécessite des ressources informatiques substantielles pour générer des preuves de connaissance nulle.

Étant donné que Rollup est utilisé, ses principaux éléments d'audit de sécurité sont conformes à ceux de la couche 2 d'Ethereum.

Autres (Babylon)

En plus des solutions traditionnelles de couche 2 BTC, de nouveaux protocoles tiers liés à l'écosystème BTC ont émergé, tels que Babylon:

Babylon vise à transformer 21 millions de BTC en actifs de jalonnement décentralisés. Contrairement à d'autres solutions de couche 2 BTC, Babylon ne se concentre pas sur la mise à l'échelle du réseau BTC. Au lieu de cela, il s'agit d'une blockchain unique avec un protocole de jalonnement BTC spécialisé conçu principalement pour interagir avec les chaînes de Preuve d'Enjeu (PoS). L'objectif est de miser des BTC pour renforcer la sécurité des chaînes PoS, en abordant des problèmes tels que les attaques à long terme et les risques de centralisation.

L'architecture est divisée en trois couches:

  • Couche Bitcoin:C'est la base solide de Babylon, exploitant la sécurité renommée de Bitcoin pour garantir que toutes les transactions sont ultra-sécurisées, tout comme sur le réseau Bitcoin.
  • Couche de Babylone: Au cœur de Babylon, cette blockchain personnalisée connecte Bitcoin à diverses chaînes PoS. Il gère les transactions, exécute les contrats intelligents et assure un fonctionnement fluide dans l’ensemble de l’écosystème.
  • Couche de chaîne PoS :La couche supérieure se compose de plusieurs chaînes PoS, chacune sélectionnée pour ses avantages uniques. Cette structure confère à BabylonChain une scalabilité et une flexibilité remarquables, permettant aux utilisateurs de bénéficier des meilleures fonctionnalités des différentes blockchains PoS.

Babylon opère en signant les blocs finaux sur la chaîne BTC pour sécuriser les chaînes PoS. Cela étend essentiellement le protocole de base avec un tour supplémentaire de signatures. Ces signatures dans le tour final +1 ont une caractéristique unique : ce sont des signatures à usage unique extractibles (EOTS). L'objectif est d'intégrer des points de contrôle PoS sur la chaîne BTC, en abordant les problèmes des longues périodes de déliaison et des attaques à longue portée dans les systèmes PoS.

Avantages de Babylon:

  • Babylon accélère le processus de désenchaînement du jalonnement PoS.
  • En misant du BTC, Babylon aide à atténuer les pressions inflationnistes sur le réseau PoS correspondant.
  • Babylon ouvre de nouvelles perspectives aux détenteurs de BTC pour obtenir des rendements.

Défis de Babylone:

  • Les taux de récompense du jalonnement et d'autres facteurs économiques ont un impact significatif sur l'incitation au jalonnement de BTC.
  • Il n'y a pas d'uniformité dans les mécanismes de récompense à travers différentes chaînes PoS.

La sécurité varie en fonction de la mise en œuvre spécifique des protocoles tiers. Pour Babylon, certains points clés de l'audit de sécurité incluent :

1. Sécurité des contrats intelligents : les contrats de mise en jeu sur BTC sont mis en œuvre à travers des scripts UTXO, qui nécessitent une attention particulière à leur sécurité.2. Sécurité de l'algorithme de signature : la sécurité de l'algorithme de signature utilisé pour gérer la mise en jeu dans le contrat est cruciale, car elle affecte la génération et la vérification des signatures.3. Conception du modèle économique : le modèle économique du protocole, en particulier en termes de récompenses et de pénalités, doit être examiné pour s'assurer qu'il ne conduit pas à la perte des actifs des utilisateurs.

Annexe :

Éléments d'audit généraux pour les chaînes publiques & couche 2

  • Débordement d'entier : Vérifiez qu’il n’y a pas de dépassement et de sous-débordement d’entiers.
  • Boucle infinie :Vérifiez si les conditions de boucle dans le programme sont raisonnables.
  • Récurssion Infinie :Assurez-vous que les conditions de sortie pour les appels récursifs sont correctement définies.
  • Course conditionnelle :Examiner les opérations d'accès sur les ressources partagées dans des conditions concurrentes.
  • Exceptions non gérées :Identifier le code qui lance des exceptions provoquant la sortie inattendue du programme.
  • Division par zéro :Vérifiez les cas où une division par zéro peut se produire.
  • Conversion de type:Assurez-vous que les conversions de type sont précises et qu'aucune information critique n'est perdue dans le processus.
  • Dépassement de tableau : Assurez-vous que les éléments du tableau sont accessibles dans des limites valides.
  • Vulnérabilités de désérialisation :Vérifiez les problèmes lors du processus de désérialisation.
  • Mise en œuvre de la fonctionnalité Sécurité :Vérifiez si la mise en œuvre des interfaces RPC est sécurisée et cohérente avec leur conception fonctionnelle.
  • Paramètres sensibles de permission d'interface RPC :Assurez-vous que les autorisations d'accès aux interfaces RPC sensibles sont configurées de manière appropriée.
  • Mécanisme de transmission chiffrée :Vérifiez l'utilisation de protocoles de transmission chiffrée, tels que TLS.
  • Analyse du format d'analyse des données de la demande :Vérifiez le processus de parsage des formats de données de demande.
  • Attaque de déverrouillage de portefeuille :Assurez-vous que les fonds ne sont pas volés via des demandes RPC lorsque un nœud déverrouille son portefeuille.
  • Sécurité Web traditionnelle :Vérifiez les vulnérabilités suivantes : Cross-Site Scripting (XSS), Injection de modèle, Vulnérabilités des composants tiers, Pollution des paramètres HTTP, Injection SQL, Injection XXE, Vulnérabilités de désérialisation, Vulnérabilités SSRF, Injection de code, Inclusion de fichier local, Inclusion de fichier distant, Injection de commande, etc.
  • Mécanisme d'authentification et d'identification des nœuds du réseau :Assurez-vous qu'il y a un mécanisme de reconnaissance d'identité du nœud et qu'il ne peut pas être contourné.
  • Empoisonnement de la table de routage:Vérifiez si la table de routage peut être manipulée ou écrasée arbitrairement.
  • Algorithme de découverte de nœuds :Assurez-vous que l'algorithme de découverte des nœuds est équilibré et imprévisible, en abordant des problèmes tels que les déséquilibres dans les algorithmes de distance.
  • Audit d'occupation de la connexion :Assurez-vous que la limite et la gestion des nœuds connectés dans le réseau p2p sont raisonnables.
  • Attaque de l'éclipse :Évaluer le coût et l'impact des attaques d'éclipse, en fournissant une analyse quantitative si nécessaire.
  • Attaque de Sybil :Évaluer le mécanisme de consensus de vote et analyser les stratégies pour vérifier l'éligibilité au vote.
  • Attaque d'écoute clandestine:Vérifiez que le protocole de communication ne divulgue pas d'informations privées.
  • Attaque extraterrestre :Évaluer si les nœuds peuvent reconnaître les autres nœuds du même réseau blockchain.
  • Détournement de temps:Vérifiez le mécanisme de calcul du temps réseau sur les nœuds.
  • Attaque par épuisement de la mémoire :Vérifiez les zones de forte consommation de mémoire.
  • Attaque par épuisement du disque :Vérifiez les domaines impliquant le stockage de gros fichiers.
  • Attaque de stress sur socket :Vérifiez les stratégies limitant le nombre de connexions.
  • Attaque d'épuisement de la poignée du noyau :Assurez-vous que les limites de création de poignées de noyau, telles que les poignées de fichiers, sont raisonnables.
  • Fuites de mémoire persistantes :Identifier les zones sujettes aux fuites de mémoire.
  • Sécurité de l'algorithme de hachage :Assurez-vous que l'algorithme de hachage est résistant aux collisions.
  • Sécurité de l'algorithme de signature numérique :Vérifiez la sécurité de l'algorithme de signature et de sa mise en œuvre.
  • Sécurité de l'algorithme de chiffrement: Assurez-vous que l’algorithme de chiffrement et sa mise en œuvre sont sécurisés.
  • Sécurité du générateur de nombres aléatoires:Vérifiez que les algorithmes de génération de nombres aléatoires critiques sont raisonnables.
  • Sécurité de l'implémentation BFT:Évaluez la sécurité de la mise en œuvre de l'algorithme de tolérance aux fautes byzantines (BFT).
  • Règle de choix de fork :Vérifiez la règle de choix de fork pour garantir la sécurité.
  • Détection de la centralisation :Identifier toute centralisation excessive dans la conception du système.
  • Audit du mécanisme d'incitation :Évaluer l'impact du mécanisme d'incitation sur la sécurité.
  • Attaque de double dépense :Vérifiez si le consensus peut se défendre contre les attaques de double-dépense.
  • Audit d’attaque MEV :Évaluez l'impact de la Valeur Maximale Extractible (MEV) sur l'équité de la chaîne lors de l'emballage des blocs.
  • Audit du processus de synchronisation des blocs :Vérifiez les problèmes de sécurité lors du processus de synchronisation.
  • Audit de l'analyse de format de bloc :Évaluer les préoccupations de sécurité lors de l'analyse du format de bloc, telles que les erreurs d'analyse entraînant des plantages.
  • Audit du processus de génération de blocs :Examiner la sécurité du processus de génération de blocs, y compris la construction de la racine de l'arbre de Merkle.
  • Vérification du processus de blocage :Vérifiez les éléments de contenu des signatures de blocs et si la logique de vérification est adéquate.
  • Audit de la logique de confirmation des blocs :Évaluer si l'algorithme de confirmation de bloc et sa mise en œuvre sont raisonnables.
  • Collision de hachage de bloc :Vérifiez comment les collisions de hachage de bloc sont construites et si la gestion de telles collisions est appropriée.
  • Limites de ressources de traitement de blocs :Vérifiez si les limites de ressources pour le pool de blocs orphelins, le calcul de vérification et l'adressage du disque sont raisonnables.
  • Audit du processus de synchronisation des transactions :Revoir les problèmes de sécurité lors du processus de synchronisation des transactions.
  • Collision de hachage de transaction :Vérifiez comment les collisions de hachage de transaction sont construites et gérées.
  • Analyse du format de transaction :Évaluer les préoccupations en matière de sécurité lors de l'analyse du format de transaction, telles que les erreurs d'analyse entraînant des plantages.
  • Vérification de la légitimité de la transaction :Vérifiez les éléments de contenu des différentes signatures de transaction et si la logique de vérification est suffisante.
  • Limites des ressources de traitement des transactions :Vérifiez si les limites de ressources pour le pool de transactions, le calcul de vérification et l'adressage du disque sont raisonnables.
  • Attaque de la malléabilité des transactions :Évaluer si les transactions peuvent modifier les champs internes (par exemple, ScriptSig) pour changer le hachage de la transaction sans affecter sa validité.
  • Audit de l’attaque par rejeu de transaction :Vérifiez la détection par le système des attaques de rejeu de transactions.
  • Vérification du bytecode du contrat intelligent :Examiner la sécurité du processus de vérification des contrats de la machine virtuelle, tels que la vérification des dépassements d'entiers et des boucles infinies.
  • Exécution du bytecode du contrat intelligent :Évaluer les préoccupations de sécurité lors de l'exécution du bytecode par la machine virtuelle, telles que les dépassements d'entiers et les boucles infinies.
  • Modèle de gaz :Veillez à ce que les frais de traitement des transactions / d'exécution des contrats pour chaque opération atomique soient proportionnels à la consommation de ressources.
  • Intégrité du journal :Assurez-vous que les informations critiques sont enregistrées dans les journaux.
  • Sécurité de journal :Vérifiez si le traitement des journaux introduit des problèmes de sécurité, tels que les débordements d'entiers.
  • Journaux contenant des informations sensibles :Veillez à ce que les journaux ne contiennent pas de clés ou d'autres informations privées.
  • Stockage des journaux :Vérifiez si la journalisation excessive conduit à une consommation de ressources sur les nœuds.
  • Sécurité de la chaîne d'approvisionnement en code de nœud:Examiner les problèmes connus avec toutes les bibliothèques tierces, les composants et les versions de cadres de chaîne publique.

En tant que l'une des premières entreprises mondiales de sécurité blockchain spécialisées dans la vérification formelle, Beosin se concentre sur un écosystème complet de "sécurité + conformité". La société a établi des filiales dans plus de 10 pays et régions à travers le monde. Ses services englobent des produits de conformité blockchain tout-en-un et des services de sécurité, y compris des audits de sécurité du code avant le lancement des projets, une surveillance en temps réel des risques de sécurité et une interception pendant le fonctionnement du projet, la récupération d'actifs volés, la lutte contre le blanchiment d'argent (LBA) pour les actifs virtuels, et des évaluations de conformité répondant aux exigences réglementaires locales. Nous invitons les projets ayant des besoins d'audit à contacter l'équipe de sécurité de Beosin.

Avertissement:

  1. Cet article est repris de [ Beosin], Tous les droits d'auteur appartiennent à l'auteur original [Beosin]. Si vous avez des objections à cette réimpression, veuillez contacter le Porte Apprendreéquipe, et ils s'en occuperont rapidement.
  2. Clause de non-responsabilité: Les points de vue et opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent aucun conseil en investissement.
  3. Les traductions de l'article dans d'autres langues sont réalisées par l'équipe Gate Learn. Sauf mention contraire, la copie, la distribution ou le plagiat des articles traduits est interdit.

Surmonter les limites de Bitcoin: Un guide complet pour auditer la mise à l'échelle de la couche 2 du BTC

Intermédiaire8/27/2024, 9:33:27 AM
Cet article explore les solutions de mise à l'échelle de la couche 2 de BTC, y compris le Lightning Network, les Sidechains et les technologies Rollup, qui facilitent des transactions rapides et peu coûteuses tout en maintenant la décentralisation et la sécurité du réseau BTC. Le Lightning Network améliore la vitesse et la confidentialité des transactions grâce aux canaux de paiement et aux transactions hors chaîne, tandis que les Sidechains comme CKB et Stacks offrent des fonctionnalités indépendantes et innovantes grâce à l'ancrage à double sens. La technologie Rollup augmente le débit en traitant de gros volumes de transactions hors chaîne, malgré les défis liés au temps d'établissement et aux ressources de calcul.

Depuis sa création en 2009, Bitcoin (BTC), en tant que première cryptomonnaie au monde, est progressivement devenu le pilier des actifs numériques et de la finance décentralisée. Cependant, à mesure que le nombre d'utilisateurs et de volumes de transactions augmente, plusieurs problèmes liés au réseau BTC deviennent de plus en plus apparents :

  • Frais de transaction élevés : Lorsque le réseau Bitcoin est congestionné, les utilisateurs doivent payer des frais plus élevés pour s'assurer que leurs transactions sont confirmées rapidement.
  • Temps de confirmation de la transaction: La blockchain Bitcoin génère un nouveau bloc environ toutes les 10 minutes, ce qui signifie que les transactions sur chaîne nécessitent généralement plusieurs confirmations de bloc avant d'être considérées comme définitives.
  • Limitations des contrats intelligents : le langage de script de Bitcoin est limité en fonctionnalités, ce qui rend difficile la mise en œuvre de contrats intelligents complexes.

Dans cet article, nous faisons référence à des technologies telles que leRéseau Lightning, Sidechains et Rollup collectivement en tant que solutions d'évolutivité de la couche 2 de BTC. Ces technologies permettent des transactions rapides et peu coûteuses tout en maintenant la décentralisation et la sécurité du réseau BTC. L'introduction des technologies de la couche 2 peut améliorer la vitesse des transactions, réduire les coûts de transaction, optimiser l'expérience utilisateur et étendre la capacité du réseau, fournissant un support technique crucial et une innovation pour le développement futur de BTC.

Actuellement, Beosin est devenu le partenaire officiel en matière de sécurité pour plusieurs projets BTC Layer2 comme Merlin Chain et a audité plusieurs protocoles de l'écosystème BTC, notamment Bitmap.Games, Surf Protocol, Savmswap et Mineral. Lors d'audits précédents, de nombreuses chaînes publiques bien connues, telles que Ronin Network, Clover, Self Chain et Crust Network, ont passé avec succès les audits de sécurité de la chaîne publique de Beosin. Beosin propose désormais une solution d'audit complète pour BTC Layer2, offrant des services d'audit de sécurité fiables et approfondis pour l'ensemble de l'écosystème BTC.

Le réseau Lightning

Le concept initial derrière le Lightning Network était connu sous le nom de "canal de paiement". La philosophie de conception était de mettre à jour en continu l'état des transactions non confirmées par le biais du remplacement de transaction jusqu'à ce qu'elles soient finalement diffusées sur le réseau Bitcoin. Lorsque Satoshi Nakamoto a créé Bitcoin en 2009, il avait déjà proposé l'idée de canaux de paiement, incluant même un code de projet pour les canaux de paiement dans Bitcoin 1.0. Ce projet permettait aux utilisateurs de mettre à jour l'état de la transaction avant qu'elle ne soit confirmée par le réseau. Cependant, ce n'est que lors de la publication du livre blanc intitulé Le réseau Lightning Bitcoin : paiement instantané hors chaîne et scalableque le Lightning Network est réellement apparu et a attiré l'attention du public.

Aujourd'hui, la mise en œuvre des canaux de paiement et du réseau Lightning est devenue assez mature. À l'heure actuelle, le réseau Lightning se compose de 13 325 nœuds et 49 417 canaux, avec un total de 4 975 BTC en jeu.

https://1ml.com/

Dans le Lightning Network, il est crucial de garantir la sécurité des actifs des utilisateurs lors des transferts. Ci-dessous, nous expliquerons le fonctionnement du Lightning Network et comment il protège la sécurité des actifs des utilisateurs, en fonction de l'échelle des nœuds du réseau.

Les deux parties impliquées soumettent deux transactions au réseau principal de Bitcoin : une pour ouvrir le canal et une autre pour le fermer. Le processus implique généralement trois étapes :

1. Ouverture de canal :

Tout d'abord, les deux utilisateurs misent du Bitcoin dans un portefeuille multi-signatures sur le réseau BTC via le Lightning Network. Une fois que le Bitcoin est misé avec succès et verrouillé, le canal de paiement est ouvert, permettant aux deux parties d'effectuer des transactions hors chaîne dans ce canal.

2. Transactions hors chaîne :

Une fois que le canal est ouvert, toutes les transactions de transfert entre les utilisateurs sont traitées au sein du Lightning Network, et il n'y a pas de limite au nombre de ces transactions hors chaîne. Ces transactions n'ont pas besoin d'être soumises immédiatement au Bitcoin mainnet, mais sont plutôt instantanément achevées grâce au mécanisme hors chaîne du Lightning Network.

Cette méthode de traitement hors chaîne augmente considérablement la vitesse et l'efficacité des transactions, évitant ainsi la congestion sur le réseau principal Bitcoin et les frais de transaction élevés.

3.Fermeture de canal et règlement du grand livre :

Lorsque l'un des utilisateurs décide de quitter le canal, un règlement final du grand livre a lieu. Ce processus garantit que tous les fonds du canal sont distribués selon l'état le plus récent. Les deux utilisateurs retirent ensuite leurs soldes respectifs réglés du portefeuille multi-signatures, reflétant la distribution réelle des fonds au moment de la fermeture du canal. Enfin, la transaction représentant l'état final du grand livre est soumise au réseau principal Bitcoin.

Les avantages du réseau Lightning incluent:

  • Vitesse de transaction accrue :
    Le réseau Lightning permet aux utilisateurs d'effectuer des transactions hors chaîne, ce qui signifie que les transactions peuvent être effectuées presque instantanément sans attendre les temps de confirmation des blocs. Cela permet d'atteindre des vitesses de transaction de deuxième niveau, améliorant considérablement l'expérience utilisateur.
  • Confidentialité renforcée :
    Les transactions hors chaîne sur le réseau Lightning n'ont pas besoin d'être enregistrées publiquement sur la chaîne principale de Bitcoin, améliorant ainsi la confidentialité des transactions. Seules l'ouverture et la fermeture des canaux doivent être enregistrées sur la chaîne principale, de sorte que les activités de transaction des utilisateurs ne sont pas entièrement divulguées.
  • Prise en charge des micro-paiements :
    Le Lightning Network est particulièrement adapté pour gérer les micro-paiements, tels que les paiements de contenu et les paiements entre les appareils IoT. Les transactions Bitcoin traditionnelles, en raison des frais élevés, ne sont pas idéales pour des micro-paiements fréquents, mais le Lightning Network résout ce problème.

Les défis auxquels est confronté le Lightning Network comprennent :

  • Liquidité du réseau:
    Le réseau Lightning repose sur le fait que le Bitcoin soit pré-verrouillé dans le canal. Cela signifie que les utilisateurs doivent déposer suffisamment de Bitcoin dans leurs canaux de paiement à l'avance pour faciliter les transactions. Une liquidité insuffisante peut entraîner des échecs de paiement, en particulier pour les paiements importants.
  • Routage :
    Trouver un itinéraire efficace de l'expéditeur au destinataire peut être un problème complexe, surtout lorsque le réseau prend de l'ampleur. À mesure que le nombre de nœuds et de canaux du réseau augmente, garantir la réussite du paiement devient de plus en plus difficile.
  • Fiducie de garde : Les nœuds peuvent être vulnérables aux attaques malveillantes, et les utilisateurs doivent faire confiance aux nœuds auxquels ils sont connectés pour ne pas essayer de voler des fonds. Il y a aussi la question de savoir si les nœuds peuvent empêcher les fuites de clés privées.
  • Normes techniques et interopérabilité : Des normes et protocoles techniques cohérents sont nécessaires pour garantir l'interopérabilité entre différentes implémentations du réseau Lightning. Actuellement, plusieurs équipes de développement travaillent sur diverses implémentations du réseau Lightning, ce qui pourrait entraîner des problèmes de compatibilité.
  • Problèmes de confidentialité : Bien que le Lightning Network améliore la confidentialité des transactions Bitcoin, les informations de transaction pourraient encore être suivies ou analysées. De plus, les opérateurs de nœuds du réseau peuvent voir les transactions passant par leurs nœuds, compromettant potentiellement certaines données privées.

La sécurité du Lightning Network a un impact direct sur la scalabilité hors chaîne du Bitcoin et la sécurité des fonds des utilisateurs. Par conséquent, en plus des éléments d'audit courants pour les chaînes publiques (détaillés dans l'annexe à la fin de ce document), le Lightning Network doit également traiter les risques de sécurité clés suivants :

  • Congestion du canal:
    Évaluez l'exhaustivité de la conception du système Lightning Network pour vous assurer qu'il n'est pas susceptible aux attaques par déni de service qui pourraient entraîner une congestion des canaux.
  • Interférence de canal:
    Évaluer la sécurité de la structure des canaux du réseau Lightning pour s'assurer qu'elle n'est pas vulnérable aux attaques de blocage de canal.
  • Verrouillage et déverrouillage des actifs de canal :
    Examinez les processus de verrouillage et de déverrouillage des actifs dans le Lightning Network pour garantir que les transferts de fonds entre on-chain et off-chain sont sécurisés et fiables lors de l'ouverture ou de la fermeture des canaux de paiement.
  • Mises à jour de l'état et fermeture du canal :
    Évaluez les processus de mise à jour de l'état des canaux et le mécanisme de fermeture forcée pour garantir que, en cas de situation anormale, le dernier état puisse être reconnu et exécuté avec précision.
  • Verrous temporels et contrats verrouillés par hachage temporel (HTLC) :
    Évaluer la mise en œuvre des HTLC pour s'assurer que les conditions de verrouillage temporel et de hachage sont correctement appliquées, empêchant toute perte éventuelle de fonds due à des problèmes de fenêtre temporelle.
  • Dépendance aux horodatages de la blockchain:
    Évaluez la dépendance du Lightning Network vis-à-vis des horodatages de la blockchain Bitcoin pour assurer une synchronisation correcte des temps on-chain et off-chain, empêchant les attaques basées sur le temps.
  • Sécurité de l'algorithme de routage: Examiner l'efficacité et la sécurité des algorithmes de routage pour prévenir les risques d'exposition de la vie privée et de manipulation malveillante du routage.
  • Stockage de canal et récupération de données :
    Vérifiez le mécanisme de stockage du canal et la stratégie de récupération des données pour vous assurer que les états du canal peuvent être restaurés en cas de défaillance des nœuds ou de déconnexions inattendues, empêchant la perte de fonds.

Sidechains

Contrairement au Lightning Network, une sidechain est une blockchain indépendante qui fonctionne en parallèle de la chaîne principale (comme la blockchain BTC) et interagit avec elle grâce à un mécanisme appelé un peg bidirectionnel (2WP). Le but des sidechains est de permettre des fonctionnalités et une évolutivité supplémentaires sans modifier le protocole de la chaîne principale.

Un sidechain, en tant que blockchain indépendante, possède son propre mécanisme de consensus, ses propres nœuds et ses propres règles de traitement des transactions. Il peut adopter différentes technologies et protocoles en fonction des besoins de scénarios d'application spécifiques. Grâce au mécanisme d'ancrage bidirectionnel, le sidechain communique avec la mainchain, garantissant que les actifs peuvent être transférés librement et en toute sécurité entre eux. Le fonctionnement du mécanisme d'ancrage bidirectionnel implique généralement les étapes suivantes:

  1. L'utilisateur verrouille BTC sur la chaîne principale. Une entité de confiance obtient ensuite et utilise la Vérification de Paiement Simplifiée (SPV) pour confirmer si la transaction de verrouillage de l'utilisateur a été confirmée.

  2. L'entité de confiance émet une quantité équivalente de jetons à l'utilisateur sur la chaîne latérale.

  3. Après avoir terminé leurs transactions, l'utilisateur verrouille les jetons restants sur la sidechain.

  4. Après avoir vérifié la légitimité des transactions, l'entité de confiance déverrouille et libère la valeur correspondante de BTC à l'utilisateur sur la chaîne principale.

Note 1: Les entités de confiance jouent un rôle crucial dans le mécanisme d'ancrage bidirectionnel, gérant le verrouillage et le déverrouillage des actifs. Ces entités doivent posséder un niveau élevé de fiabilité et de capacité technique pour garantir la sécurité des actifs des utilisateurs.

Note 2: La vérification SPV permet à un nœud de vérifier la validité d'une transaction spécifique sans télécharger l'intégralité de la chaîne de blocs. Les nœuds SPV n'ont besoin de télécharger que les en-têtes de bloc et d'utiliser l'arbre de Merkle pour vérifier si la transaction est incluse dans le bloc.

Projets de Sidechain Représentatifs

CKB (Réseau Nervos) \
Nervos Network est un écosystème de blockchain public open-source conçu pour tirer parti des avantages de sécurité et de décentralisation du mécanisme de consensus Proof of Work (PoW) de Bitcoin tout en introduisant un modèle UTXO plus scalable et flexible pour gérer les transactions. À son cœur se trouve la Base de Connaissances Commune (CKB), une blockchain de couche 1 construite sur RISC-V et utilisant PoW comme mécanisme de consensus. Il étend le modèle UTXO en modèle Cell, lui permettant de stocker n'importe quelle donnée et de prendre en charge des scripts écrits dans n'importe quel langage pour s'exécuter en tant que contrats intelligents on-chain.

Stacks

Stacks connecte chaque bloc Stacks à un bloc Bitcoin grâce à son mécanisme de Preuve de Transfert (PoX). Pour faciliter le développement de contrats intelligents, Stacks a conçu le langage de programmation Clarity. En Clarity, le obtenir des informations sur le bloc de combustion?fonction permet d'entrer une hauteur de bloc Bitcoin pour récupérer le hachage de l'en-tête du bloc, tandis que le burn-block-heightLe mot-clé récupère la hauteur de bloc actuelle de la chaîne Bitcoin. Ces fonctions permettent aux contrats intelligents Clarity de lire l'état de la chaîne de base Bitcoin, permettant aux transactions Bitcoin de déclencher des contrats. En exécutant automatiquement ces contrats intelligents, Stacks étend la fonctionnalité de Bitcoin. Pour une analyse détaillée de Stacks, vous pouvez vous référer à l'article de recherche précédent de Beosin :Qu'est-ce que Stacks? Quels défis pourraient rencontrer les réseaux de niveau 2 BTC Stacks?

Avantages des sidechains

  • Les sidechains peuvent adopter différentes technologies et protocoles, permettant diverses expérimentations et innovations sans affecter la stabilité et la sécurité de la chaîne principale.
  • Les sidechains peuvent introduire des fonctionnalités non présentes sur la chaîne principale, telles que les contrats intelligents, la protection de la vie privée et l'émission de jetons, enrichissant les scénarios d'application de l'écosystème blockchain.

Défis des sidechains

  • Les sidechains ont des mécanismes de consensus indépendants, qui peuvent ne pas être aussi sécurisés que le mainchain BTC. Si le mécanisme de consensus d'une sidechain est faible ou présente des vulnérabilités, cela pourrait entraîner une attaque de 51% ou d'autres formes d'attaques, mettant en péril la sécurité des actifs des utilisateurs. La sécurité du mainchain BTC repose sur sa puissance de hachage massive et sa distribution nodale étendue, qu'une sidechain pourrait ne pas être en mesure d'égaler.
  • La mise en œuvre du mécanisme d'ancrage bidirectionnel nécessite des algorithmes cryptographiques et des protocoles complexes. S'il existe des vulnérabilités au sein de ce mécanisme, cela pourrait entraîner des problèmes de transfert d'actifs entre la chaîne principale et la chaîne latérale, potentiellement entraînant une perte ou un vol d'actifs.
  • Pour équilibrer la vitesse et la sécurité, la plupart des sidechains sont plus centralisées que la chaîne principale.

La couche 2 est un système blockchain complet, donc les éléments d'audit généraux des blockchains publiques s'appliquent également aux sidechains. Pour plus de détails, veuillez vous référer à l'annexe à la fin de cet article.

De plus, en raison de ses caractéristiques uniques, les sidechains nécessitent des vérifications supplémentaires :

  • Sécurité du protocole de consensus:
    Vérifiez si le protocole de consensus du sidechain (par exemple, PoW, PoS, DPoS) a été soigneusement validé et testé pour d'éventuelles vulnérabilités ou vecteurs d'attaque, tels que les attaques à 51% ou les attaques à longue portée.
  • Sécurité du nœud de consensus:
    Évaluer la sécurité des nœuds de consensus, y compris la gestion des clés, la protection des nœuds et les sauvegardes redondantes, pour empêcher que les nœuds ne soient compromis ou abusés.
  • Verrouillage et libération d'actifs :
    Examiner le mécanisme d'ancrage bidirectionnel entre la sidechain et la mainchain pour garantir que les contrats intelligents responsables du verrouillage et du déverrouillage des actifs sont sécurisés et fiables, empêchant le double-dépense, la perte d'actifs ou les échecs de verrouillage.
  • Vérification inter-chaînes :
    Vérifiez l'exactitude et la sécurité de la vérification inter-chaînes pour garantir que le processus est décentralisé et inviolable, prévenant les échecs de vérification ou les vérifications malveillantes.
  • Audit du code de contrat intelligent:
    Effectuer un audit approfondi de tous les contrats intelligents fonctionnant sur la chaîne latérale, détectant toute vulnérabilité potentielle ou porte d'entrée dérobée, en particulier dans la logique des contrats traitant des opérations inter-chaînes.
  • Mécanisme de mise à niveau :
    Vérifiez la sécurité du mécanisme de mise à niveau du contrat intelligent, en veillant à ce qu'il y ait des processus d'audit et de consensus communautaire appropriés en place pour prévenir les mises à niveau malveillantes ou les manipulations de contrat.
  • Communication entre nœuds :
    Inspecter la sécurité du protocole de communication entre les noeuds de la chaîne latérale, en veillant à l'utilisation de canaux chiffrés pour prévenir les attaques de l'homme du milieu ou les violations de données.
  • Communication inter-chaînes :
    Évaluer les canaux de communication entre la sidechain et la mainchain pour garantir l'intégrité et l'authenticité des données, empêchant ainsi toute interception ou altération de la communication.
  • Horodatage et temps de bloc :
    Vérifiez le mécanisme de synchronisation temporelle de la chaîne latérale pour garantir la cohérence et la précision du temps de génération de bloc, empêchant les attaques ou les retours en arrière de blocs causés par des divergences temporelles.
  • Sécurité de la gouvernance on-chain:
    Examinez le mécanisme de gouvernance du sidechain pour garantir la transparence et la sécurité dans les processus de vote, de proposition et de prise de décision, afin de prévenir tout contrôle ou attaque malveillante.
  • Audit de l'économie des jetons :
    Examiner la tokenomie du sidechain, y compris la distribution des jetons, les mécanismes d'incitation et les modèles d'inflation, en veillant à ce que les incitations économiques ne conduisent pas à des comportements malveillants ou à l'instabilité du système.
  • Mécanisme de frais :
    Examiner le mécanisme des frais de transaction de la sidechain pour s'assurer qu'il corresponde aux besoins des utilisateurs de la mainchain et de la sidechain, afin de prévenir toute manipulation des frais ou congestion du réseau.
  • Sécurité des actifs :
    Auditez le mécanisme de gestion des actifs sur chaîne pour garantir que les processus de stockage, de transfert et de destruction des actifs sont sécurisés et fiables, sans risque d'accès non autorisé ou de vol.
  • Gestion des clés :
    Inspecter la stratégie de gestion des clés de la sidechain pour garantir la sécurité des clés privées et le contrôle d'accès, empêchant toute fuite ou utilisation abusive des clés.

Rollup

Rollup est une solution de mise à l'échelle de la couche 2 conçue pour améliorer le débit et l'efficacité des transactions blockchain. En agrégeant un grand nombre de transactions ("Rolling up") et en les traitant hors chaîne, il réduit la charge sur la chaîne principale, ne soumettant que les résultats finaux à celle-ci.

Rollup se décline en deux principaux types : zk-Rollup et op-Rollup. Cependant, contrairement à Ethereum, le manque de complétude de Turing de Bitcoin empêche l'utilisation de contrats intelligents pour la vérification des preuves de connaissance nulle (ZKP) directement sur son réseau. Cela signifie que les solutions zk-Rollup traditionnelles ne peuvent pas être mises en œuvre sur Bitcoin. Alors, comment zk-Rollup peut-il être utilisé pour réaliser la mise à l'échelle de la couche 2 de Bitcoin ? Explorons le projet B² Network comme exemple :

Pour effectuer la vérification ZKP sur Bitcoin, B² Network a développé un script Taproot qui intègre la vérification de preuve de connaissance zéro de zk-Rollup avec le mécanisme de défi incitatif d'op-Rollup. Voici comment cela fonctionne:

  1. Le réseau B² agrège d'abord toutes les transactions des utilisateurs dans un Rollup.
  2. Un séquenceur ordonne ensuite ces transactions Rollup, les stocke dans un stockage décentralisé et les traite à travers un zkEVM.
  3. Après la synchronisation de l'état de la chaîne Bitcoin, le zkEVM traite les exécutions de contrats et autres transactions, consolide les résultats et les envoie à l'agrégateur.
  4. Le prouveur génère une preuve de connaissance nulle et l'envoie à l'agrégateur, qui combine les transactions et la preuve et les transmet aux nœuds B².
  5. Les nœuds B² vérifient la preuve de connaissance nulle et créent un script Taproot basé sur les données Rollup stockées dans un stockage décentralisé.
  6. Le Taproot, qui est un UTXO d'une valeur de 1 satoshi, contient l'inscription B² dans sa structure de données, stockant toutes les données Rollup, tandis que le Tapleaf stocke les données de vérification de toutes les preuves. Après avoir passé le mécanisme de défi d'incitation, il est soumis à Bitcoin sous forme d'un engagement basé sur zk-proof.

Avantages de Rollup:

  • Rollup hérite des caractéristiques de sécurité et de décentralisation de la chaîne principale. En soumettant régulièrement des données de transaction et d'état à la chaîne principale, il garantit l'intégrité et la transparence des données.
  • Le Rollup peut être intégré de manière transparente dans les réseaux blockchain existants, tels qu'Ethereum, permettant aux développeurs de tirer facilement parti de ses avantages sans modifications significatives des contrats intelligents et des applications existants.
  • Rollup augmente considérablement le débit des transactions en traitant un grand nombre de transactions hors chaîne et en les soumettant par lots à la chaîne principale, ce qui entraîne une augmentation notable du nombre de transactions par seconde (TPS).
  • Puisque les transactions Rollup sont traitées hors chaîne, cela réduit drastiquement les ressources computationnelles et l'espace de stockage nécessaires pour les transactions sur chaîne, ce qui permet de réduire considérablement les frais de transaction pour les utilisateurs.

Défis du Rollup :

  • Si les données hors chaîne deviennent indisponibles, les utilisateurs peuvent être incapables de vérifier les transactions et de récupérer leur état.
  • Les transactions Rollup doivent être traitées par lots et finalement soumises à la chaîne principale, ce qui peut entraîner des délais de règlement plus longs. Cela est particulièrement vrai dans le cas de l'op-Rollup, où il y a une période de litige, obligeant les utilisateurs à attendre plus longtemps la confirmation finale de la transaction.
  • Alors que ZK Rollup offre une sécurité accrue et une confirmation instantanée, il nécessite des ressources informatiques substantielles pour générer des preuves de connaissance nulle.

Étant donné que Rollup est utilisé, ses principaux éléments d'audit de sécurité sont conformes à ceux de la couche 2 d'Ethereum.

Autres (Babylon)

En plus des solutions traditionnelles de couche 2 BTC, de nouveaux protocoles tiers liés à l'écosystème BTC ont émergé, tels que Babylon:

Babylon vise à transformer 21 millions de BTC en actifs de jalonnement décentralisés. Contrairement à d'autres solutions de couche 2 BTC, Babylon ne se concentre pas sur la mise à l'échelle du réseau BTC. Au lieu de cela, il s'agit d'une blockchain unique avec un protocole de jalonnement BTC spécialisé conçu principalement pour interagir avec les chaînes de Preuve d'Enjeu (PoS). L'objectif est de miser des BTC pour renforcer la sécurité des chaînes PoS, en abordant des problèmes tels que les attaques à long terme et les risques de centralisation.

L'architecture est divisée en trois couches:

  • Couche Bitcoin:C'est la base solide de Babylon, exploitant la sécurité renommée de Bitcoin pour garantir que toutes les transactions sont ultra-sécurisées, tout comme sur le réseau Bitcoin.
  • Couche de Babylone: Au cœur de Babylon, cette blockchain personnalisée connecte Bitcoin à diverses chaînes PoS. Il gère les transactions, exécute les contrats intelligents et assure un fonctionnement fluide dans l’ensemble de l’écosystème.
  • Couche de chaîne PoS :La couche supérieure se compose de plusieurs chaînes PoS, chacune sélectionnée pour ses avantages uniques. Cette structure confère à BabylonChain une scalabilité et une flexibilité remarquables, permettant aux utilisateurs de bénéficier des meilleures fonctionnalités des différentes blockchains PoS.

Babylon opère en signant les blocs finaux sur la chaîne BTC pour sécuriser les chaînes PoS. Cela étend essentiellement le protocole de base avec un tour supplémentaire de signatures. Ces signatures dans le tour final +1 ont une caractéristique unique : ce sont des signatures à usage unique extractibles (EOTS). L'objectif est d'intégrer des points de contrôle PoS sur la chaîne BTC, en abordant les problèmes des longues périodes de déliaison et des attaques à longue portée dans les systèmes PoS.

Avantages de Babylon:

  • Babylon accélère le processus de désenchaînement du jalonnement PoS.
  • En misant du BTC, Babylon aide à atténuer les pressions inflationnistes sur le réseau PoS correspondant.
  • Babylon ouvre de nouvelles perspectives aux détenteurs de BTC pour obtenir des rendements.

Défis de Babylone:

  • Les taux de récompense du jalonnement et d'autres facteurs économiques ont un impact significatif sur l'incitation au jalonnement de BTC.
  • Il n'y a pas d'uniformité dans les mécanismes de récompense à travers différentes chaînes PoS.

La sécurité varie en fonction de la mise en œuvre spécifique des protocoles tiers. Pour Babylon, certains points clés de l'audit de sécurité incluent :

1. Sécurité des contrats intelligents : les contrats de mise en jeu sur BTC sont mis en œuvre à travers des scripts UTXO, qui nécessitent une attention particulière à leur sécurité.2. Sécurité de l'algorithme de signature : la sécurité de l'algorithme de signature utilisé pour gérer la mise en jeu dans le contrat est cruciale, car elle affecte la génération et la vérification des signatures.3. Conception du modèle économique : le modèle économique du protocole, en particulier en termes de récompenses et de pénalités, doit être examiné pour s'assurer qu'il ne conduit pas à la perte des actifs des utilisateurs.

Annexe :

Éléments d'audit généraux pour les chaînes publiques & couche 2

  • Débordement d'entier : Vérifiez qu’il n’y a pas de dépassement et de sous-débordement d’entiers.
  • Boucle infinie :Vérifiez si les conditions de boucle dans le programme sont raisonnables.
  • Récurssion Infinie :Assurez-vous que les conditions de sortie pour les appels récursifs sont correctement définies.
  • Course conditionnelle :Examiner les opérations d'accès sur les ressources partagées dans des conditions concurrentes.
  • Exceptions non gérées :Identifier le code qui lance des exceptions provoquant la sortie inattendue du programme.
  • Division par zéro :Vérifiez les cas où une division par zéro peut se produire.
  • Conversion de type:Assurez-vous que les conversions de type sont précises et qu'aucune information critique n'est perdue dans le processus.
  • Dépassement de tableau : Assurez-vous que les éléments du tableau sont accessibles dans des limites valides.
  • Vulnérabilités de désérialisation :Vérifiez les problèmes lors du processus de désérialisation.
  • Mise en œuvre de la fonctionnalité Sécurité :Vérifiez si la mise en œuvre des interfaces RPC est sécurisée et cohérente avec leur conception fonctionnelle.
  • Paramètres sensibles de permission d'interface RPC :Assurez-vous que les autorisations d'accès aux interfaces RPC sensibles sont configurées de manière appropriée.
  • Mécanisme de transmission chiffrée :Vérifiez l'utilisation de protocoles de transmission chiffrée, tels que TLS.
  • Analyse du format d'analyse des données de la demande :Vérifiez le processus de parsage des formats de données de demande.
  • Attaque de déverrouillage de portefeuille :Assurez-vous que les fonds ne sont pas volés via des demandes RPC lorsque un nœud déverrouille son portefeuille.
  • Sécurité Web traditionnelle :Vérifiez les vulnérabilités suivantes : Cross-Site Scripting (XSS), Injection de modèle, Vulnérabilités des composants tiers, Pollution des paramètres HTTP, Injection SQL, Injection XXE, Vulnérabilités de désérialisation, Vulnérabilités SSRF, Injection de code, Inclusion de fichier local, Inclusion de fichier distant, Injection de commande, etc.
  • Mécanisme d'authentification et d'identification des nœuds du réseau :Assurez-vous qu'il y a un mécanisme de reconnaissance d'identité du nœud et qu'il ne peut pas être contourné.
  • Empoisonnement de la table de routage:Vérifiez si la table de routage peut être manipulée ou écrasée arbitrairement.
  • Algorithme de découverte de nœuds :Assurez-vous que l'algorithme de découverte des nœuds est équilibré et imprévisible, en abordant des problèmes tels que les déséquilibres dans les algorithmes de distance.
  • Audit d'occupation de la connexion :Assurez-vous que la limite et la gestion des nœuds connectés dans le réseau p2p sont raisonnables.
  • Attaque de l'éclipse :Évaluer le coût et l'impact des attaques d'éclipse, en fournissant une analyse quantitative si nécessaire.
  • Attaque de Sybil :Évaluer le mécanisme de consensus de vote et analyser les stratégies pour vérifier l'éligibilité au vote.
  • Attaque d'écoute clandestine:Vérifiez que le protocole de communication ne divulgue pas d'informations privées.
  • Attaque extraterrestre :Évaluer si les nœuds peuvent reconnaître les autres nœuds du même réseau blockchain.
  • Détournement de temps:Vérifiez le mécanisme de calcul du temps réseau sur les nœuds.
  • Attaque par épuisement de la mémoire :Vérifiez les zones de forte consommation de mémoire.
  • Attaque par épuisement du disque :Vérifiez les domaines impliquant le stockage de gros fichiers.
  • Attaque de stress sur socket :Vérifiez les stratégies limitant le nombre de connexions.
  • Attaque d'épuisement de la poignée du noyau :Assurez-vous que les limites de création de poignées de noyau, telles que les poignées de fichiers, sont raisonnables.
  • Fuites de mémoire persistantes :Identifier les zones sujettes aux fuites de mémoire.
  • Sécurité de l'algorithme de hachage :Assurez-vous que l'algorithme de hachage est résistant aux collisions.
  • Sécurité de l'algorithme de signature numérique :Vérifiez la sécurité de l'algorithme de signature et de sa mise en œuvre.
  • Sécurité de l'algorithme de chiffrement: Assurez-vous que l’algorithme de chiffrement et sa mise en œuvre sont sécurisés.
  • Sécurité du générateur de nombres aléatoires:Vérifiez que les algorithmes de génération de nombres aléatoires critiques sont raisonnables.
  • Sécurité de l'implémentation BFT:Évaluez la sécurité de la mise en œuvre de l'algorithme de tolérance aux fautes byzantines (BFT).
  • Règle de choix de fork :Vérifiez la règle de choix de fork pour garantir la sécurité.
  • Détection de la centralisation :Identifier toute centralisation excessive dans la conception du système.
  • Audit du mécanisme d'incitation :Évaluer l'impact du mécanisme d'incitation sur la sécurité.
  • Attaque de double dépense :Vérifiez si le consensus peut se défendre contre les attaques de double-dépense.
  • Audit d’attaque MEV :Évaluez l'impact de la Valeur Maximale Extractible (MEV) sur l'équité de la chaîne lors de l'emballage des blocs.
  • Audit du processus de synchronisation des blocs :Vérifiez les problèmes de sécurité lors du processus de synchronisation.
  • Audit de l'analyse de format de bloc :Évaluer les préoccupations de sécurité lors de l'analyse du format de bloc, telles que les erreurs d'analyse entraînant des plantages.
  • Audit du processus de génération de blocs :Examiner la sécurité du processus de génération de blocs, y compris la construction de la racine de l'arbre de Merkle.
  • Vérification du processus de blocage :Vérifiez les éléments de contenu des signatures de blocs et si la logique de vérification est adéquate.
  • Audit de la logique de confirmation des blocs :Évaluer si l'algorithme de confirmation de bloc et sa mise en œuvre sont raisonnables.
  • Collision de hachage de bloc :Vérifiez comment les collisions de hachage de bloc sont construites et si la gestion de telles collisions est appropriée.
  • Limites de ressources de traitement de blocs :Vérifiez si les limites de ressources pour le pool de blocs orphelins, le calcul de vérification et l'adressage du disque sont raisonnables.
  • Audit du processus de synchronisation des transactions :Revoir les problèmes de sécurité lors du processus de synchronisation des transactions.
  • Collision de hachage de transaction :Vérifiez comment les collisions de hachage de transaction sont construites et gérées.
  • Analyse du format de transaction :Évaluer les préoccupations en matière de sécurité lors de l'analyse du format de transaction, telles que les erreurs d'analyse entraînant des plantages.
  • Vérification de la légitimité de la transaction :Vérifiez les éléments de contenu des différentes signatures de transaction et si la logique de vérification est suffisante.
  • Limites des ressources de traitement des transactions :Vérifiez si les limites de ressources pour le pool de transactions, le calcul de vérification et l'adressage du disque sont raisonnables.
  • Attaque de la malléabilité des transactions :Évaluer si les transactions peuvent modifier les champs internes (par exemple, ScriptSig) pour changer le hachage de la transaction sans affecter sa validité.
  • Audit de l’attaque par rejeu de transaction :Vérifiez la détection par le système des attaques de rejeu de transactions.
  • Vérification du bytecode du contrat intelligent :Examiner la sécurité du processus de vérification des contrats de la machine virtuelle, tels que la vérification des dépassements d'entiers et des boucles infinies.
  • Exécution du bytecode du contrat intelligent :Évaluer les préoccupations de sécurité lors de l'exécution du bytecode par la machine virtuelle, telles que les dépassements d'entiers et les boucles infinies.
  • Modèle de gaz :Veillez à ce que les frais de traitement des transactions / d'exécution des contrats pour chaque opération atomique soient proportionnels à la consommation de ressources.
  • Intégrité du journal :Assurez-vous que les informations critiques sont enregistrées dans les journaux.
  • Sécurité de journal :Vérifiez si le traitement des journaux introduit des problèmes de sécurité, tels que les débordements d'entiers.
  • Journaux contenant des informations sensibles :Veillez à ce que les journaux ne contiennent pas de clés ou d'autres informations privées.
  • Stockage des journaux :Vérifiez si la journalisation excessive conduit à une consommation de ressources sur les nœuds.
  • Sécurité de la chaîne d'approvisionnement en code de nœud:Examiner les problèmes connus avec toutes les bibliothèques tierces, les composants et les versions de cadres de chaîne publique.

En tant que l'une des premières entreprises mondiales de sécurité blockchain spécialisées dans la vérification formelle, Beosin se concentre sur un écosystème complet de "sécurité + conformité". La société a établi des filiales dans plus de 10 pays et régions à travers le monde. Ses services englobent des produits de conformité blockchain tout-en-un et des services de sécurité, y compris des audits de sécurité du code avant le lancement des projets, une surveillance en temps réel des risques de sécurité et une interception pendant le fonctionnement du projet, la récupération d'actifs volés, la lutte contre le blanchiment d'argent (LBA) pour les actifs virtuels, et des évaluations de conformité répondant aux exigences réglementaires locales. Nous invitons les projets ayant des besoins d'audit à contacter l'équipe de sécurité de Beosin.

Avertissement:

  1. Cet article est repris de [ Beosin], Tous les droits d'auteur appartiennent à l'auteur original [Beosin]. Si vous avez des objections à cette réimpression, veuillez contacter le Porte Apprendreéquipe, et ils s'en occuperont rapidement.
  2. Clause de non-responsabilité: Les points de vue et opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent aucun conseil en investissement.
  3. Les traductions de l'article dans d'autres langues sont réalisées par l'équipe Gate Learn. Sauf mention contraire, la copie, la distribution ou le plagiat des articles traduits est interdit.
Start Now
Sign up and get a
$100
Voucher!