Au cours des derniers mois, des efforts importants ont été consacrés au développement de Sui Bridge, un pont natif de l'écosystème Sui. Cette initiative améliore l'accessibilité de Sui pour la communauté au sens large et améliore l'interopérabilité avec d'autres blockchains. 

Sui Bridge, un composant essentiel de l'écosystème Sui, facilite le transfert sécurisé et efficace d'actifs et de données entre Sui et d'autres réseaux blockchain. Cette capacité élargit non seulement la portée des applications construites sur Sui, mais offre également une possibilité de s'intégrer plus profondément dans le paysage plus large de la blockchain. L'interopérabilité augmente la croissance et l'adoption de Sui, permettant aux actifs sur d'autres réseaux, tels qu'Ethereum, de migrer facilement et en toute sécurité vers Sui.

Fond du pont Sui

Dans le contexte de l'écosystème blockchain, un pont est un protocole qui permet l'interaction et la communication entre des réseaux blockchain indépendants. Les ponts facilitent le transfert de données au-delà des frontières, permettant aux utilisateurs de déplacer leurs actifs d'une chaîne à une autre et même d'effectuer des opérations plus complexes telles que la transmission de messages entre chaînes. 

Parmi la poignée de choix de conception de pont, Sui Bridge utilise un mécanisme de serrure et de menthe, l'une des solutions les plus largement utilisées. En tant que conception de verrouillage et de menthe, Sui Bridge détient des actifs natifs d'Ethereum dans les contrats intelligents Ethereum, tandis qu'il crée ou brûle les actifs Sui en fonction de la direction de l'interaction du pont. 

En tant que pont natif de Sui, Sui Bridge ne nécessite aucune confiance supplémentaire. Les entités qui sécurisent le Sui sont les mêmes qui sécurisent le Sui Bridge et le code du Sui Bridge est intégré au framework Sui.

Dans son état actuel, Sui Bridge est disponible sur Testnet et prend en charge le pontage de jetons tels que ETH, WETH, WBTC et USDT entre Ethereum Sepolia et Sui Testnet. Après la sortie de Sui Bridge sur Mainnet, la prise en charge d'un plus grand nombre d'actifs sera prioritaire. Les versions ultérieures de Sui Bridge ajouteront de nouvelles fonctionnalités telles que la messagerie inter-chaînes personnalisée et l'intégration avec d'autres blockchains.

Architecture de haut niveau

Sui Bridge comprend quatre composants clés : le comité ou réseau de nœuds Sui Bridge, les contrats intelligents Sui Bridge, les nœuds complets fonctionnant sur Ethereum et Sui et le client pont. 

Le client est l'interface entre l'utilisateur et l'infrastructure Sui Bridge. Il coordonne les actions de pontage des utilisateurs en soumettant des transactions correctement formatées et en collectant les signatures des nœuds Sui Bridge selon les besoins. Le client utilise des nœuds complets pour soumettre des transactions des deux côtés du pont. Les nœuds Sui Bridge exécutent également des nœuds complets Ethereum et Sui pour écouter les actions de pontage et y répondre via la transaction suivante. Bien que le client pont soit sans autorisation et puisse être exécuté par n'importe qui, de nombreux nœuds de pont basculeront sur les clients pont pour assurer la vivacité du réseau.

Sui Bridge utilise une infrastructure fonctionnant à la fois sur Ethereum et Sui ainsi que sur le réseau de nœuds Sui Bridge.

Lors du pontage des actifs d'Ethereum vers Sui, l'utilisateur dépose des actifs sur le contrat intelligent Sui Bridge sur Ethereum. Le client observe ensuite cette transaction et coordonne le processus de transition. Le comité Sui Bridge exploite des nœuds complets Ethereum qui écoutent également de telles actions de pontage pour vérifier que ce que le client demande est légitime. 

Après vérification, l'action de pontage est complétée par la création d'actifs pontés pour l'utilisateur via le package Sui Bridge sur Sui. Avec des coûts de transition aussi faibles, Sui Validators subventionne actuellement les frais de gaz associés aux transactions de transition sur Sui et permet au client d'exécuter les transactions automatiquement, créant ainsi une expérience de transition transparente sur Sui. 

Lors du passage de Sui à Ethereum, le processus est similaire, sauf que les utilisateurs doivent soumettre la transaction de réclamation manuellement sur Ethereum. Cette transaction inclut les données de signature des nœuds Sui Bridge dans les données d'appel de transaction qui permettent au compte Ethereum de racheter les actifs spécifiés bloqués dans le contrat de pont.

De plus, tous les enregistrements et approbations de pontage sont stockés dans l'objet pont en chaîne. Cela est réalisable à Sui car les coûts de stockage et de gaz sont abordables. Le contrat Sui Bridge gère également les actions de gouvernance, qui sont contrôlées par le comité Sui Bridge.

Messages de pont

Pour garantir de faibles coûts de gaz, Sui Bridge construit les messages de manière légère et facile à décoder par la chaîne de réception. Un format de messagerie commun est utilisé pour garantir que chaque chaîne peut décoder et vérifier efficacement les messages et les signatures.

Exemple de code de déplacement :

public struct BridgeMessage a copier, déposer, stocker { message_type : u8, message_version : u8, seq_num : u64, source_chain : u8, payload : vector<u8> }

Exemple de code de solidité :

struct Message { uint8 messageType ; version uint8 ; uint64 occasionnellement ; ID de chaîne uint8 ; charge utile en octets ; }

Ces messages de pont sont conçus dans un souci de simplicité et d’efficacité. La structure est minimaliste et ne contient que des champs essentiels tels que le type de message, la version, le numéro de séquence, l'identifiant de la chaîne source et la charge utile. Cette conception simplifiée réduit la complexité et les frais de calcul, garantissant de faibles coûts de gaz tout en facilitant une communication inter-chaînes rapide et fiable.

Sécurité du pont

La détermination du modèle de confiance d’un pont est l’une des décisions de conception les plus importantes lors du développement d’un pont destiné à soutenir un écosystème animé et des flux importants. Un pont doit être à la fois sécurisé et décentralisé. Bien que dans certaines conceptions de ponts, ces attributs puissent être en contradiction les uns avec les autres, le développement d'un pont natif offre la possibilité de tirer parti de la sécurité de Sui pour sécuriser Sui Bridge.

Les mêmes opérateurs de nœuds qui sécurisent Sui en exécutant des nœuds de validation gèrent et maintiennent l'infrastructure sur laquelle fonctionne le pont Sui. Sui Bridge hérite d'un réseau décentralisé d'opérateurs de nœuds hautement capables d'exécuter et de sécuriser l'infrastructure Sui. 

Comme mentionné ci-dessus, la plupart des opérations du pont Sui ont lieu sur Sui et traitent Sui comme un panneau de contrôle pour le pont. Celui-ci bénéficie de la sécurité dont hérite le logiciel développé dans Move.

Comité du pont

Sui Bridge est protégé par le même ensemble de validations qui sécurise Sui. Pendant la phase Testnet, le comité se compose d'un sous-ensemble de validateurs Testnet. Lorsqu'ils sont sur le réseau principal, la majorité, sinon la totalité, des validateurs Sui actifs feront partie du comité de pont. Une gestion dynamique du comité sera mise en œuvre après Mainnet pour permettre l'adhésion de nouveaux validateurs. Autoriser uniquement les validateurs Sui à faire partie du Comité Sui Bridge garantit que les hypothèses de sécurité, les propriétés et le consensus social sont hérités.

Pour maintenir une sécurité élevée et une compatibilité avec d'autres réseaux blockchain, le Sui Bridge utilise l'algorithme de signature numérique à courbe elliptique (ECDSA) pour les signatures du Bridge Committee. En tirant parti de l'ECDSA, Sui Bridge garantit une interopérabilité transparente et une vérification sécurisée des transactions, renforçant ainsi l'intégrité et la fiabilité du système.

Vérification de la signature

Sui Bridge utilise des signatures ECDSA récupérables, qui permettent la récupération de clé publique directement à partir de la signature elle-même. Cette fonctionnalité rationalise le processus de vérification en nous permettant de récupérer la clé publique et de confirmer l'authenticité et l'intégrité de la signature sans nécessiter une connaissance préalable de la clé publique.

Un message n'est considéré comme valide que lorsque le poids combiné des signatures atteint ou dépasse un seuil prédéfini. Ce mécanisme de seuil garantit qu'un nombre suffisant de signatures authentifiées est requis pour valider un message, améliorant ainsi la sécurité et la fiabilité du système. En mettant en œuvre cette approche, nous nous protégeons contre les activités frauduleuses et garantissons que seules les transactions légitimes sont traitées.

Exemple de code dans Move :

... soit mut message_bytes = SUI_MESSAGE_PREFIX; message_bytes.append(message.serialize_message()); soit le seuil de mut = 0 ; while (i < signature_counts) { let pubkey = ecdsa_k1::secp256k1_ecrecover(&signatures[i], &message_bytes, 0); // vérifie la copie // et assure-toi que la clé de pub fait partie du comité assert!(!seen_pub_key.contains(&pubkey), EDuplicatedSignature); assert!(self.members.contains(&pubkey), EInvalidSignature); // obtient le poids de la signature du comité et vérifie que la clé publique fait partie du comité let member = &self.members[&pubkey]; if (!member.blocklisted) { seuil = seuil + member.voting_power ; } ; vu_pub_key.insert(pubkey); je = je + 1 ; } ; ...

Exemple de code dans Solidity :

function verifySignatures (octets [] signatures mémoire, message mémoire BridgeUtils.Message) remplacement de la vue externe { uint32 requireStake = BridgeUtils.requiredStake (message); uint16 approbationStake ; signataire de l'adresse ; Bitmap uint256 ; // Vérifiez la validité de chaque signature et agrégez l'enjeu d'approbation pour (uint16 i; i < signatures.length; i++) { bytes memory signature = signatures[i]; // récupère le signataire à partir de la signature (bytes32 r, bytes32 s, uint8 v) = splitSignature(signature); (signataire,,) = ECDSA.tryRecover(BridgeUtils.computeHash(message), v, r, s); require(!blocklist[signer], "BridgeCommittee : le signataire est sur la liste noire"); require(committeeStake[signer] > 0, "BridgeCommittee : Le signataire n'a aucun enjeu"); uint8 index = comitéIndex[signataire]; masque uint256 = 1 << index ; require(bitmap & mask == 0, "BridgeCommittee : signature en double fournie"); bitmap |= masque ; approbationStake += comitéStake[signer]; } require(approvalStake >= requisStake, "BridgeCommittee : Montant de mise insuffisant"); }

Interopérabilité des bâtiments

Le pont natif Sui fournit non seulement un moyen sûr et efficace de transférer des actifs entre les réseaux blockchain, mais jette également les bases d'interactions inter-chaînes plus avancées. En tirant parti de son modèle de confiance robuste, en intégrant ECDSA pour des transactions sécurisées et vérifiables et en employant un processus de vérification de signature basé sur un comité, Sui Bridge garantit une sécurité et une fiabilité élevées tout en restant flexible.

L'évolutivité et la flexibilité de l'architecture du pont Sui permettent de futures extensions et intégrations avec d'autres réseaux blockchain. À mesure que l'écosystème se développe, le pont prendra en charge un plus large éventail d'actifs et de capacités, tels que la messagerie inter-chaînes personnalisée permettant des interactions inter-chaînes uniques.

Sui Bridge représente une avancée significative dans le paysage de l'interopérabilité Sui, offrant une solution transparente et hautement sécurisée pour les transferts d'actifs entre chaînes. Avec le lancement de Sui Bridge sur Mainnet, les utilisateurs peuvent s'attendre à un pont de plus en plus robuste et polyvalent qui répond aux demandes actuelles tout en anticipant les besoins futurs.