Auteur : 0xKooKoo, Consultant Technique pour Geek Web3 & Moledao, ancien Technical Lead chez Bybit
**Merci à 0xmiddle pour leur aide dans la rédaction de cet article. **
Introduction****
Depuis la création de l’industrie de la blockchain, d’innombrables L1/L2 ont émergé, et presque toutes les chaînes publiques ont développé leur propre écosystème DeFi. Certaines personnes n’interagissent que sur des chaînes publiques spécifiques, tandis que d’autres personnes souhaitent trouver des opportunités de revenus telles que le trading et l’exploitation minière sur différentes chaînes. Parmi eux, le transfert de fonds cross-chain est devenu un besoin rigide indispensable.
En plus des utilisateurs ordinaires, de nombreuses parties au projet ont également besoin de transférer des fonds entre différentes chaînes, de guider la liquidité sur différentes chaînes et d’obtenir « une monnaie pour plusieurs objectifs ».
Mais les différentes blockchains sont des systèmes de consensus isolés, et il n’y a aucun moyen pour les fonds de passer directement d’une chaîne à l’autre. L’essence des fonds inter-chaînes est que le pont inter-chaînes agit comme une contrepartie publique pour recevoir les fonds des utilisateurs sur la chaîne source et envoyer de l’argent aux utilisateurs sur la chaîne de destination (émission d’actifs mappés ou libération de fonds pour les utilisateurs à partir du pool de liquidité de la chaîne cible).
Au début, les gens faisaient encore confiance aux échanges centralisés, et il y avait un dicton selon lequel « les échanges centralisés sont les meilleurs ponts inter-chaînes ». Cependant, l’opération de « chargement-échange-retrait » est très lourde, et les gens espèrent qu’il y aura une méthode purement on-chain pour compléter plus directement la chaîne croisée des fonds.
De plus, par rapport aux échanges centralisés, les ponts inter-chaînes peuvent compléter des messages inter-chaînes plus généraux, qui ne se limitent pas seulement au transfert de fonds. Par exemple, si vous utilisez une dApp de prêt inter-chaînes qui fournit des garanties à partir de la chaîne A et prête des actifs sur la chaîne B, vous devrez utiliser la messagerie inter-chaînes.
Si nous examinons les origines historiques du cross-chain, nous pouvons le retracer jusqu’aux premiers stades du développement de la technologie blockchain. À cette époque, l’émergence de différentes chaînes publiques a fait prendre conscience qu’il fallait résoudre le problème d’interopérabilité entre les chaînes, sinon il y aurait beaucoup de silos information/capital. Au fil du temps, différents types d’approches inter-chaînes ont été proposés, formant progressivement le modèle universel cross-chain d’aujourd’hui.
Jetons un coup d’œil à certains des développements de la technologie cross-chain.
Méthodologie****
1. Trouvez votre propre contrepartie
Réfléchissons-y, quelle est la façon la plus intuitive de cross-chain ? Supposons que vous ayez 100 USDT sur la chaîne A et que vous souhaitiez les transférer sur la chaîne B. Il se trouve qu’il y a une personne qui a 100 USDT dans la chaîne B et qui souhaite transférer des USDT vers la chaîne A. Vous avez tous les deux vu que ce n’était pas juste, alors ils se sont bien entendus.
Mais lorsque vous transférez des USDT à l’adresse de l’autre partie sur la chaîne A, elle se repent et ne transfère pas ses USDT à votre adresse sur la chaîne B.
Par conséquent, ce modèle de transaction P2P n’est pas très fiable, d’une part, l’autre partie peut rompre le contrat, de sorte que vous subissez des pertes, sans aucune protection, et d’autre part, cette contrepartie n’est pas facile à trouver, vous devrez peut-être attendre longtemps pour rencontrer un utilisateur qui correspond juste au montant que vous souhaitez sortir, mais la direction cross-chain est opposée, et peut même ne pas attendre longtemps pour attendre une telle contrepartie.
2. Régimes notariaux
2.1 Témoin notaire unique
Nous avons donc pensé, puisque l’autre partie peut faire défaut, puis-je trouver un tiers de confiance pour échanger ?**Je lui donne d’abord l’argent sur la chaîne source, puis il promet de me transférer l’argent sur la chaîne cible. Par exemple, cette personne a des actifs à la fois sur la chaîne A et sur la chaîne B, puis elle garantit que tant qu’elle reçoit mes 100 USDT sur la chaîne A, elle transférera certainement 100 USDT de la chaîne B.
C’est beaucoup mieux que le premier type d’échange d’actifs inter-chaînes P2P, car il existe une contrepartie publique de confiance qui a entre ses mains une chose magique appelée « liquidité » avec laquelle vous pouvez trader à tout moment.
En d’autres termes, votre transaction avec lui devient une transaction « peer-to-pool », plutôt qu’une transaction « peer-to-peer ». Mais vous n’êtes toujours pas sûr, si vous échangez 100 USDT avec lui, c’est bien, et si vous voulez échanger 1 million USDT avec lui ?
En fin de compte, ce notaire a en fait introduit une sorte de centralisation, ce qui n’est toujours pas la méthode cross-chain sans confiance que nous voulons.
2.2 Notons multiples (MultiSig)
Que se passe-t-il si le notaire n’est pas une seule personne, mais un groupe de personnes ? Nous pouvons mettre en place un compte de copropriété, où plusieurs signataires gèrent conjointement le compte, et ils doivent signer un message, et le nombre de signatures atteint un seuil (généralement 2/3) avant que les fonds ne soient transférés.
Dans ce cas, si quelques-uns d’entre eux (pas plus d’un tiers) ont l’esprit tordu et veulent collecter mon argent sur la chaîne source, mais qu’ils ne veulent pas m’envoyer de l’argent sur la chaîne cible, ou s’ils se déconnectent, cela n’a pas d’importance, d’autres notaires honnêtes signeront et transféreront toujours l’argent qui devrait m’être donné.
**Ce système est plus fiable, affaiblit le risque de centralisation et est plus sûr. Par exemple, il y a un total de 20 notaires réputés, et la probabilité qu’ils aient l’esprit tordu en même temps est encore très faible. (Cela n’inclut pas les 20 nœuds de Multichain réellement gérés par une seule personne, ni les pirates informatiques qui volent les 2/3 des clés de signature du notaire comme le pont Axie.) )
2.3 Notaire multiple (MPC)
Cependant, il existe également de nombreux inconvénients dans la méthode de gestion de compte multi-signature.
Multisig facilite l’exposition des règles de signature. **S’il s’agit d’un schéma de signature 5/7, le code de contrat intelligent du portefeuille multisig exposera le nombre de signataires, et les pirates peuvent trouver ces signataires de manière ciblée et attendre l’occasion de voler la clé privée.
**Multisig doit être adapté aux différentes chaînes publiques. Par exemple, certaines chaînes publiques ne prennent pas en charge les contrats intelligents, vous devez utiliser les primitives cryptographiques spéciales de la chaîne pour implémenter des comptes multisig, si cela n’est pas pris en charge, votre portefeuille multisig ne pourra pas le faire.
La multi-signature ne peut pas être modifiée si le signataire est défini. Par exemple, si vous souhaitez passer à un schéma de signature 6/8, ou si vous souhaitez changer de signataire, vous devez redéployer le contrat multi-signatures, et vous devez également transférer les fonds vers le nouveau contrat multi-signatures.
Le schéma cross-chain du premier dérivé du BTC tBTC utilise une méthode multi-signature, qui a été éliminée car elle est très boiteuse et difficile à utiliser. **La plupart des ponts inter-chaînes actuels adoptent une approche MPC plus avancée. **
MPC est l’abréviation de Multi-Party-Computation, qui est une technologie de partitionnement de clé privée. Le compte multi-signature est un compte géré par plusieurs clés privées, tandis que le compte MPC est géré par une clé privée pour gérer un compte, la clé privée est divisée en plusieurs fragments, et plusieurs signataires détiennent chacun un fragment de clé privée, et une signature complète peut être synthétisée lorsque le nombre de signataires atteint le seuil, et la clé privée complète ne sera pas exposée pendant le processus de signature.
Le compte MPC présente les avantages suivants :**
**Plus de confidentialité que les portefeuilles multisig ordinaires. **Lorsqu’une signature est requise, par exemple, 5/7 fragments de clé privée sont utilisés pour se signer mutuellement, et plusieurs sous-signatures sont fusionnées en une seule pièce pour former une signature légale finale. De cette façon, ce que vous voyez sur la chaîne est une signature unique et ordinaire, et vous ne pouvez pas dire si elle provient d’un compte MPC, et encore moins qui est le signataire derrière, et vous ne pouvez pas connaître le nombre de fragments de clé privée et de règles de signature spécifiques.
**Il peut être mieux adapté à la plupart des chaînes publiques que les portefeuilles multisig. MPC est une technologie signature et est indépendante de la chaîne. Un compte MPC est en fait un compte ordinaire, qu’une chaîne publique prenne en charge les contrats intelligents ou non, vous pouvez créer un compte de copropriété grâce à la technologie MPC.
**MPC est plus flexible dans la modification des signatures. **Il peut prendre en charge un ajustement plus flexible des règles de signature, par exemple en modifiant le nombre de fragments de clé privée et le seuil de signature à tout moment, et en changeant le signataire à tout moment, il suffit de partager à nouveau la clé privée.
3. Autres mesures de sécurité
3.1 Séparation à chaud et à froid
**Après que le compte séquestre du notaire ait reçu mes 100 USDT sur la chaîne A, il a transféré 100 USDT à mon adresse sur la chaîne B, comment déclencher ce comportement ?
Supposons que chaque notaire dispose d’une machine à l’écoute des transactions sur la chaîne A, et lorsqu’ils découvrent que j’ai transféré 100 USDT sur un compte séquestre cross-chain, et que la transaction indique que je veux recevoir ces USDT à une adresse nommée user2 sur la chaîne B.
À ce moment-là, les notaires ont collectivement cosigné et transféré 100 USDT du compte relais inter-chaînes sur la chaîne B à l’utilisateur2. Ce processus doit être écrit en code et automatisé, sinon le notaire devra être en ligne en temps réel, et la demande devra être opérée immédiatement, ce qui est trop irréaliste.
Il y aura plusieurs parties dans ce programme automatisé
Auditeur : Responsable de la surveillance des transactions sur la chaîne source, afin de filtrer les transactions non pertinentes ou les transactions non valides, cette étape peut effectuer une vérification de format de base ;
Procédure de vérification : Cela inclura le client de nœud léger (ou nœud complet) de la blockchain prise en charge, qui est chargé de vérifier qu’une transaction sur la chaîne source qui a une relation interactive avec le contrat de pont inter-chaînes a bien été emballée dans un bloc et placée sur la chaîne ;
Programme de signature : Responsable de la signature et de l’initiation de la transaction de transfert à l’utilisateur sur la chaîne cible.
Mais l’automatisation pose également le problème que ce programme automatisé peut être piraté et manipulé. Par conséquent, afin de contrôler le risque, le pont inter-chaînes prendra des mesures pour séparer le chaud et le froid. **Le programme automatisé contrôle la clé de raccourci, le montant du transfert est limité, et dans le cas d’un transfert important, le notaire doit signer manuellement avec la clé froide. Les règles de séparation du chaud et du froid peuvent être mises en œuvre dans le compte MPC.
3.2 Isolement des risques
Par conséquent, il est nécessaire de faire un bon travail d’isolement du pool de capital et d’utiliser plusieurs comptes de dépôt pour gérer les fonds de liquidité, tels que l’isolement en fonction de différentes chaînes publiques, telles que A et B, B et C, C et D sont tous des pools de capitaux indépendants.
3.3 TEE
**Les procédures automatisées d’écoute et de signature exécutées par le notaire peuvent être exécutées dans le dispositif TEE, ce qui peut augmenter considérablement la difficulté des attaques de piratage. **TEE est l’abréviation de Trusted Execution Environment, qui est un environnement informatique exécuté sur un appareil donné qui est isolé du système d’exploitation principal, comme une enclave.
Cette isolation est appliquée par le matériel avec une sécurité extrêmement élevée, de sorte que les TEE peuvent exécuter des applications avec des exigences de sécurité élevées, telles que la gestion des clés cryptographiques, l’authentification biométrique, le traitement sécurisé des paiements, etc.
3.4 PoA à gauche, PoS à droite
Afin de rendre les ponts inter-chaînes plus sûrs, il y a deux directions dans la sélection des notaires :
**L’une d’entre elles consiste à choisir autant que possible une grande entreprise ou une institution bien connue et jouissant d’une bonne réputation. Pour ces organisations, le coût de faire le mal est extrêmement élevé, et cela peut coûter des années de bonne volonté. De plus, essayez de les rendre suffisamment diversifiés géographiquement (évitez d’être concentrés dans la même juridiction).
Par exemple, le projet de pont inter-chaînes Wormhole a choisi un tel modèle, et ses 19 nœuds sont tous des institutions bien connues avec un grand volume et des fonds solides, ce qui est la voie de PoA.
L’autre façon est que les notaires sans permission admettent, mais ils sont tenus de faire un gage, et s’ils se comportent mal, leurs fonds promis seront réduits. C’est ainsi que fonctionne le PoS. C’est ce qu’est ZetaChain.
Il n’est pas bon de tirer des conclusions directes et arbitraires sur qui est supérieur et qui est inférieur dans les deux sens. Cela dépend de la façon dont les parties du projet de pont inter-chaînes se débrouillent dans leurs directions respectives.
Qu’il s’agisse d’un PoA ou d’un PoS, vous pouvez créer un pont inter-chaînes directement dans une chaîne publique, où chaque nœud exécute le même programme, et toutes les requêtes et processus de traitement inter-chaînes seront enregistrés sur cette chaîne. La chaîne elle-même peut également héberger des applications, devenant ainsi un hub écologique.
3.5 Observateur
Une autre façon d’améliorer la sécurité est de mettre en place un rôle d’observateur. Ce rôle est responsable de la surveillance du comportement inter-chaînes et peut signaler et abandonner des transactions sur la chaîne si des problèmes sont détectés. Étant donné que l’observateur a besoin d’une fenêtre pour réagir, l’heure d’arrivée du transfert inter-chaînes peut être retardée, de sorte que l’observateur n’interviendra que si l’utilisateur accepte le retard dans le transfert pour une transaction importante ou une opération inter-chaînes sensible.
Autres solutions cross-chain****
Verrouillage de hachage
Revenons à la première méthode mentionnée dans cet article : le P2P pour trouver une contrepartie pour les swaps d’actifs cross-chain. Si nous craignons que l’autre partie ne rembourse pas la dette, nous pouvons mettre en place un mécanisme, une fois que quelqu’un se repent, l’autre partie peut récupérer l’argent et le rendre à Zhao.
Il s’agit d’un verrouillage de hachage, qui utilise intelligemment des verrous de hachage et des verrous temporels pour forcer le destinataire des fonds à déterminer le reçu avant la date limite et à générer un certificat de réception sur la chaîne source, et le payeur doit obtenir les actifs équivalents du destinataire sur la chaîne cible avec cette preuve de réception, sinon les fonds des deux parties seront retournés à la manière d’origine.
Cependant, cette méthode ne peut qu’échanger des fonds et ne peut pas effectuer le transfert général d’informations inter-chaînes. Et même du point de vue du transfert de fonds inter-chaînes, l’expérience utilisateur du timelock de hachage est très mauvaise :
Si la fluctuation du prix de la devise est défavorable à la contrepartie (fournisseur de liquidités), celle-ci peut rationnellement choisir de ne pas exécuter ;
Afin d’effectuer un échange inter-chaînes, l’utilisateur et la contrepartie doivent effectuer deux signatures.
En conséquence, les timelocks de hachage, en tant que solution inter-chaînes, ont été en grande partie supprimés. **Les premiers ponts inter-chaînes qui utilisaient cette solution (par exemple, cBridge, Connext) ont tous changé de cap.
Client léger sur chaîne
Cette méthode consiste à déployer le contrat client léger de la chaîne source directement sur la chaîne cible. Si vous déployez un contrat sur une chaîne, tous les nœuds de cette chaîne exécuteront le code de contrat que vous avez déployé. Par conséquent, la solution de client léger on-chain consiste en fait à laisser la chaîne cible vérifier directement la transaction à partir de la chaîne source.
Cette méthode est extrêmement sûre, mais c’est aussi la plus coûteuse. Coûteux de la manière suivante :**
Le contrat client léger de la chaîne cible doit recevoir et vérifier le nouvel en-tête de bloc de la chaîne source en temps réel, ce processus est très gourmand en gaz, même si ZK est utilisé pour obtenir des preuves concises, la consommation de gaz de la vérification d’une preuve ZK ne sera pas inférieure à 400 000 Gaz (EVM par exemple), et dans le schéma MPC, la chaîne n’a besoin que de vérifier une signature, et la consommation de Gaz n’est que supérieure à 20 000, ce qui est 20 fois pire !Un pont plus sûr, mais 20 fois plus cher, l’utiliserez-vous ?
La quantité de travail impliquée dans le développement de contrats de clients légers est énorme, et pour que les ponts inter-chaînes soient compatibles avec des chaînes plus hétérogènes, vous devez mettre en œuvre des contrats de clients légers pour chaque chaîne dans des environnements de développement complètement différents sur différentes chaînes, ce qui est un défi infernal pour les développeurs. Cela conduit à une plus grande probabilité de bugs dans la rédaction des contrats, c’est-à-dire que la sécurité du pont client léger n’est qu’au niveau théorique, et qu’elle est très dangereuse en termes de pratique d’ingénierie. **
Afin de réduire la quantité de travail de développement, une solution réalisable est d’introduire une chaîne de relais, de sorte que toutes les chaînes et cette chaîne de relais puissent établir des contrats de clients légers entre elles, ce qui peut en effet réduire la charge de travail de C(n,2) à n, mais ce n’est pas encore trop petit. Ce qui était à l’origine un transfert inter-chaînes direct de la chaîne source à la chaîne de destination est également devenu une transmission de second ordre entre la chaîne source → la chaîne de relais → la chaîne de destination, ce qui générera une consommation de gaz et une consommation de temps supplémentaires.
Par conséquent, les solutions techniques des clients légers, à l’heure actuelle, ne peuvent pas être utilisées pour construire des ponts inter-chaînes plus universels.
Fin de partie****
Tout d’abord, les différentes chaînes publiques ont des pratiques différentes, et il y a des ressources différentes derrière elles, tant qu’elles ne s’avouent pas vaincues, l’écologie existera certainement, même si le développement n’est pas très bon à court terme, peut-être qu’un jour elles reviendront à la vie après avoir fait une mise à niveau. Ce genre d’infrastructure sous-jacente permet de voir qui dure longtemps et qui s’adapte rapidement au marché. **
Bitcoin et Ethereum ne peuvent pas résoudre tous les scénarios d’application, ou dans une certaine subdivision, il y a toujours des gens qui n’aiment pas le premier lieu, alors ils créent une nouvelle roue, donc l’avenir sera certainement multi-chaîne. Ou à l’avenir, la couche inférieure ne sera pas une chaîne, alors l’avenir doit être multi-écologique, comment transmettre des fonds et des informations entre plusieurs écosystèmes, il doit y avoir une technologie inter-chaîne/inter-écologique !
À quoi les utilisateurs prêtent-ils le plus d’attention en matière de cross-chain ?
Vitesse : le temps nécessaire à la réalisation d’une opération inter-chaînes
Frais : combien dois-je payer pour une opération cross-chain ?
Sécurité : si le pont inter-chaînes est sécurisé et si les fonds ne seront pas perdus
Liquidité : Y a-t-il suffisamment de liquidités pour soutenir mes transactions et un impact acceptable sur les prix ?
Plage de connexion : combien de chaînes prenez-vous en charge et si vous prenez en charge les chaînes dont j’ai besoin pour mon opération cross-chain
Expérience : si l’opération inter-chaînes est pratique, par exemple si elle prend en charge le paiement du gaz, si l’estimation des coûts est exacte, si elle prend en charge la requête de progression et l’affichage du navigateur, si les défaillances se produisent fréquemment, comment gérer les défaillances, etc.
**Donnons d’abord un aperçu des caractéristiques de certains projets sous trois angles clairs : la sécurité, le coût et la plage de connexion. **
Cliquez sur le lien pour voir le tableau clair (le tableau est constamment mis à jour) :
Afin d’expliquer pleinement le pont inter-chaînes, il y a en fait de nombreuses dimensions qui doivent être discutées, telles que toutes les dimensions et l’analyse des données dans le tableau ci-dessus. Alors, quels sont les éléments qui vous intéressent lors du cross-chaining ?Quels sont les ponts cross-chain que vous utilisez souvent ?Sur quoi pensez-vous que les bridges cross-chain devraient se concentrer ?Si vous avez vos idées, n’hésitez pas à communiquer avec les auteurs.