Comment ça marche? Est-ce décentralisé? Y a t-il des limitations? Regardons ça
Plan du thread :
- Un bridge, kesako?
- Caractéristiques d'Ad Astra
- Parcours d'un token sur Ad Astra
- Décentralisation du bridge Ad Astra
- Adresses des contrats
- Conclusion
1) Un bridge, kesako?
Revenons aux bases, les blockchains sont des écosystèmes fermés qui ne communiquent pas avec l'extérieur. En effet, rien est prévu pour communiquer avec des serveurs externes ou même d'autres blockchains, pourquoi?
Supposons que ça soit possible et imaginons que je puisse depuis un smart contract récupérer mon fil d'actu Twitter et faire une action en fonction de ça (un giveaway décentralisé). Une blockchain étant un registre infalsifiable, il faut qu'une transaction soit vérifiable de tous les validateurs, donc reproductible, avec un tel giveaway décentralisé rien ne m'assurerait que d'ici 3 heures, 3 minutes ou même 3 secondes l'information soit toujours vérifiable.
Ainsi pour garantir un registre infalsifiable, une blockchain doit se couper du monde externe, mais en se faisant on se coupe des autres blockchains. Sauf qu'en tant qu'utilisateur du monde réel nous avons besoin d'interagir avec de multiples blockchains et donc de potentiellement déplacer nos fonds.
Une première solution est de passer par un exchange centralisé qui possède des fonds sur toutes les blockchains et qui va nous permettre de faire nos déplacement. L'autre solution, qui est celle qui nous intéresse, est de passer par un bridge décentralisé qui a pour unique rôle de transférer des fonds d'une blockchain à une autre. Ca tombe bien car hier soir, et après des mois de travail, Elrond a déployé son bridge Ad Astra pour déplacer ses tokens entre Ethereum et Elrond (les deux sens marchent).
2) Caractéristiques d'Ad Astra
Ad Astra est un bridge permettant de transférer des assets entre Ethereum et Elrond, seuls les tokens fongibles sont supportés, on oublie donc les NFT.
Des frais sont appliqués par le bridge : 0 USDC pour un transfert ETH -> Elrond, 50 USDC pour un transfert Elrond -> ETH.
Pour le moment seulement l'USDC peut être bridgé, ce n'est pas figé, le bridge contient une whitelist des tokens qui peuvent être utilisés.
Il existe un montant maximum de tokens qui peuvent être bridgés en une seule transaction, ce montant n'est pas fixe et est différent pour chaque token whitelist.
Il y a un montant minimal défini par token whitelist, actuellement 2500 pour l'USDC, qui d'après le code sert à couvrir les potentiels frais (je sais qu'ETH c'est cher mais 2500$ ??????) (Update: Le montant minimal a changé)
3) Parcours d'un token sur Ad Astra
Nous avons notre USDC sur Ethereum et nous l'envoyons (et le bloquons) dans le contrat côté ETH du bridge, à la réception du paiement le contrat côté ETH va stocker les informations du transfert à faire. Toutes les X minutes, le bridge, qui est une entité off-chain, va lire dans le contrat côté ETH les transferts en attente et toutes les exécuter et ça se passe en deux actions :
- On marque côté ETH le transfert comme réalisé
- On mint côté Elrond le token et on l'envoie au wallet
Pour un transfert Elrond -> Eth c'est le même processus dans l'autre sens.
Petite subtilité : on transfert des jetons ERC20 et ESDT, on exclut donc les jetons natifs ETH et EGLD du transfert, pour réaliser un tel transfert (si un jour ils whitelist tout ça) on va utiliser une version tokenisée (= wrapped) de ces jetons natifs. Pour résumer : On bloque nos tokens dans un smart contract d'un côté et il ressort de l'autre et c'est une entité off-chain qui se charge de faire tout ça, une entité off-chain? C'est le sujet de la partie suivante.
4) Décentralisation du bridge Ad Astra
On va parler de ce qui rend ce bridge intéressant car on va voir en quoi il est décentralisé (avec quelques limites qu'on verra plus tard)
Je vous ai dit qu'une entité off-chain se charge de gérer les smart contract pour effectuer les transferts des tokens déposés dans les smart contract d'un côté à l'autre.·Cette entité est un réseau décentralisés de relayeurs qui fonctionne par un consensus de proof of stake, ça vous rappelle quelque chose? Et oui, en d'autres termes l'entité qui gère les transferts a presque tout d'une blockchain!
Pour simplifier, ce réseau de relayeurs va exercer son pouvoir à travers un multisig de chaque côté, multisig qui est l'admin des contrats du bridge et comme c'est du proof of stake chaque relayeur va mettre en gage des EGLD pour pouvoir valider les transferts, un relayeurs malveillant perdra une partie de ses EGLD mis en gage.
On a donc tout d'une blockchain parallèle, sauf qu'au lieu de valider des blocks on valide des transferts sur le bridge. Il y a cependant une limitation majeure il n'y a actuellement que 10 validateurs dont 5 sont de la team Elrond et il faut 7 validations sur les 10 pour qu'un transfert se fasse.
C'est une limitation car Elrond n'a que besoin de l'accord de 2 autres validateurs pour faire passer un transfert mais a aussi un droit de véto sur tous les transferts, en utilisant ses 5 votes pour dire "non". Reste que ce nombre n'est pas figé donc à voir dans le temps, on a donc tout de même sur un bridge fonctionnel qui est au moins dans la technique décentralisé.
5) Adresses des contrats
Côté Ethereum nous avons 2 contrats :
1er contrat:
Ce contrat sert à transférer des tokens en provenance d'Elrond à un wallet Eth, c'est ce contrat qui va gérer la partie "multisig" côté Eth
Adresse: 0x1Ff78EB04d44a803E73c44FEf8790c5cAbD14596
2ème contract:
Ce contrat permettra aux utilisateurs eth de déposer des assets afin d'initier un transfert vers Elrond
Adresse: 0x92A26975433A61CF1134802586aa669bAB8B69f3
Côté Elrond nous avons + de contrats et je vais lister les 5 principaux :
Comme ERC20Safe, ce contrat permet aux utilisateurs Elrond de déposer des assets afin d'initier un transfert vers Eth
Adresse: erd1qqqqqqqqqqqqqpgqhxkc48lt5uv2hejj4wtjqvugfm4wgv6gyfkqw0uuxl
Quand des assets arrivent sur Elrond il faut les mint, or il n'est pas possible de mint n'importe quel token, il en faut les droits (la team Elrond ne peut pas mint des USDC par exemple), à l'inverse on va burn lorsque les tokens quittent Elrond. Ce contrat va donc créer une version wrapped du esdt qui pourra être mint & burn.
Adresse: erd1qqqqqqqqqqqqqpgq305jfaqrdxpzjgf9y5gvzh60mergh866yfkqzqjv2h
Ce contrat permet de wrap l'EGLD natif afin d'avoir une version esdt de celui ci
Adresse: (pas trouvé mais peut-être pas déployé vu qu'il y a que USDC pour le moment)
L'équivalent Elrond de Bridge.sol, permet d'envoyer les assets en provenance d'Eth vers le wallet Elrond désigné
Adresse: (peu importante car appelle BridgedTokensWrapped)
Gère le multisig côté Elrond mais aussi les actions liées au proof of stake (staking & slashing)
Adresse: erd1qqqqqqqqqqqqqpgqxexs26vrvhwh2m4he62d6y3jzmv3qkujyfkq8yh4z2
6) Conclusion
Voilà pour ce thread sur le bridge qui a le potentiel d'être un énorme banger pour l'écosystème Elrond.
Ecrit par Fusee
Tweet Partager
Publié le 15/08/2023
Vous pouvez vérifier si vous n'avez pas à faire à un scam
Vérifier maintenant