Merge branch 'compteRendu_28_02' into 'develop'

Compte rendu 28 02

See merge request v18003685/pfe-blockchain!9
This commit is contained in:
TESTUD Romain
2023-03-02 09:15:20 +00:00
4 changed files with 190 additions and 5 deletions

View File

@ -32,4 +32,30 @@ On cherche à formaliser les attaques
- Où ? Quelle blockchain ? Quel code ? - Où ? Quelle blockchain ? Quel code ?
Le but est d'avoir une expliquation des algorithmes centralisés plusqu'une liste de failles. Le but est d'avoir une expliquation des algorithmes centralisés plusqu'une liste de failles.
Définir swap cross-chain/cross-blockchain. Définir swap cross-chain/cross-blockchain.
## 28 fevrier 2022
### Présents
- [x] Amaury
- [ ] Dorian
- [x] Romain
- [x] Eloise
- [x] Louis
### Décentralisé
DeFi: experientation du swap cross chain.
Tentative de compréhension du fonctionnement des differents smart-contrats utilisable.
Piste de recherche pour l'approche par pool de liquidité prometteuse.
Recherche en paralèle sur le Lightning Network de Bitcoin. Avec possibilité de faire des echanges cross blockchain ?
### Centralisé
Difficultés a trouver de la documentations sur les protocoles centralisé.
Revoir l'approche pour essayer de retro-ingénieuré a travers les failles.
Documentation intéressante trouvé pour le projet Solana.
Comprendre avant d'etre exhaustif.

View File

@ -42,4 +42,36 @@
Exemple: EtherDelta Exemple: EtherDelta
Source: https://www.ccn.com/cryptocurrency-exchange-etherdelta-hacked-in-dns-hijacking-scheme/ Source: https://www.ccn.com/cryptocurrency-exchange-etherdelta-hacked-in-dns-hijacking-scheme/
Source vulnérabilités : https://resources.infosecinstitute.com/topic/security-vulnerabilities-of-cryptocurrency-exchanges/ Source vulnérabilités : https://resources.infosecinstitute.com/topic/security-vulnerabilities-of-cryptocurrency-exchanges/
=============================================================================================
https://learn.bybit.com/glossary/definition-centralized-exchange-cex/
Méthode utilisée pour les échanges : Order Book Method
"Order book records the entire open orders to enable buying and selling of assets to traders. If a person wants to buy a particular asset, he must disclose the assets estimated price to the middle man involved in the exchange process.
Once that middleman finds someone whose request matches the buyer, it swaps the assets and completes the exchange between them. Order books have disadvantages, such as long waiting time for the exchange to be done and traders inability to cross-verify the transaction."
Procédure échange centralisé
- Enregistrement des info avec KYC (know your customer)
- L'utilisateur A dépose la somme qu'il veut échanger dans un portemonnaie
- Un nombre équivalent de IOU est créé
(IOU remplace les smart contracts ici)
- Le CEX échange les IOU contre la monnaie souhaitée lors d'un retrait ou un échange
https://freewallet.org/blog/what-is-an-iou/
Qu'est-ce qu'un IOU ?
IOU = I own you
Ce sont des toxens, qui permettent de quantifier la dette de l'utilisateur envers le CEX (genre de contrat non légal) donc même si la monnaie crypto prend de la valeur, la montant en monnaie fiduciaire ne change pas .
Points négatifs:
- Le CEX peut geler ou bloquer les fonds/porte-monnaies à tout instant
- Cible d'attaques car les CEX gèrent/conservent l'argent
- Pas assez transparents sur le fonctionnement interne, possibilités d'arranger les prix des monnaies ou de manipuler le marché
- Frais de transaction
https://www.leewayhertz.com/exchange-vs-dex-vs-swap
![](https://codimd.romaintestud.fr/uploads/upload_d4a2d97d6d840791336f826336f575ad.png)
10 modèles simplifiés des échanges centralisés:
https://medium.com/intotheblock/10-patterns-of-centralized-crypto-exchanges-explained-using-machine-learning-and-data-b386d913832

View File

@ -65,6 +65,78 @@ Wormhole, le bridge de Solana, a été manipulé pour créditer 120k ETH comme a
3) En utilisant un compte créé quelques heures plus tôt avec une seule instruction sérialisée correspondant au contrat Sep256k1, l'attaquant a pu falsifier le "SignatureSet", appeler "complete\_wrapped" et frapper frauduleusement 120k ETH sur Solana en utilisant la vérification VAA qui avait été créée dans une transaction précédente. 3) En utilisant un compte créé quelques heures plus tôt avec une seule instruction sérialisée correspondant au contrat Sep256k1, l'attaquant a pu falsifier le "SignatureSet", appeler "complete\_wrapped" et frapper frauduleusement 120k ETH sur Solana en utilisant la vérification VAA qui avait été créée dans une transaction précédente.
## Wormhole
Token bridge entre Ethereum et Solana. (initialement)
```
struct WormholeMsg {
uint8 version;
uint32 timestamp;
uint32 nonce;
uint16 emitterChainId;
bytes32 emitterAddress;
uint64 sequence;
uint8 consistencyLevel;
bytes payload;
uint32 guardianSetIndex;
Signature[] signatures;
bytes32 hash;
}
```
5 payloads :
* Transfer (déclenche la libération de jetons verrouillés)
* TransferWithPayload (pareil que ci-dessus avec un payload supplémentaire spécifique au domaine)
* AssetMeta (requis avant le premier transfert, atteste les metadatas de l'actif)
* RegisterChain (enregistre le contrat bridge for une chaîne étrangère)
* UpgradeContract
```
PayloadID uint8 = 1
// Amount being transferred (big-endian uint256)
Amount uint256
// Address of the token. Left-zero-padded if shorter than 32 bytes
TokenAddress bytes32
// Chain ID of the token
TokenChain uint16
// Address of the recipient. Left-zero-padded if shorter than 32 bytes
To bytes32
// Chain ID of the recipient
ToChain uint16
// Amount of tokens (big-endian uint256) that the user is willing to pay as relayer fee. Must be <= Amount.
Fee uint256
```
## ERC 5164
Exécution cross-chain (14/06/2022)
Création d'une interface d'éxécution crosschain pour les blockchain basées sur EVM.
Permet à un contrat hébergé sur une chaîne 1 d'appeler des contrats sur une chaîne 2 en envoyant un message cross-chain.
2 composants :
* Message Dispatcher : chaîne d'origine / diffuse message via une couche de transport à un ou plusieurs contrats de type "MessageExecutor"
* Message Executor : chaîne de destination / exécute les messages "dispatchés"
```
struct Message {
address to;
bytes data;
}
interface MessageDispatcher {
event MessageBatchDispatched(
bytes32 indexed messageId,
address indexed from,
uint256 indexed toChainId,
Message[] messages
);
}
```
Sources : Sources :
* [Article 4 PFE](https://medium.com/coinmonks/cross-chain-bridge-vulnerability-summary-f16b7747f364) * [Article 4 PFE](https://medium.com/coinmonks/cross-chain-bridge-vulnerability-summary-f16b7747f364)
* [DeFi Hacks Analysis - Root Cause](https://web3sec.notion.site/web3sec/ba459372dc434341b99ec92a932f98dc?v=7fceca7b3da74aa8a99b49c44a2a3916) * [DeFi Hacks Analysis - Root Cause](https://web3sec.notion.site/web3sec/ba459372dc434341b99ec92a932f98dc?v=7fceca7b3da74aa8a99b49c44a2a3916)
@ -72,13 +144,14 @@ Sources :
* [Coinbase - Nomad bridge incident analysis](https://www.coinbase.com/blog/nomad-bridge-incident-analysis) * [Coinbase - Nomad bridge incident analysis](https://www.coinbase.com/blog/nomad-bridge-incident-analysis)
* [Rekt - Le layer 2](https://rekt.news/fr/the-second-layer/) * [Rekt - Le layer 2](https://rekt.news/fr/the-second-layer/)
* [Rekt - Wormhole](https://rekt.news/fr/wormhole-rekt/) * [Rekt - Wormhole](https://rekt.news/fr/wormhole-rekt/)
* [Wormhole whitepaper](https://github.com/wormhole-foundation/wormhole/blob/main/whitepapers/0003_token_bridge.md)
* [ERC 5164, 6170](https://eips.ethereum.org/erc)
* [ERC 5164 Thread](https://ethereum-magicians.org/t/eip-5164-cross-chain-execution/9658/13)
* [ERC 5164 Implementation](https://github.com/pooltogether/ERC5164)
A fouiller : A fouiller :
* [Ethereum - Bridges](https://ethereum.org/fr/developers/docs/bridges/) * [Ethereum - Bridges](https://ethereum.org/fr/developers/docs/bridges/)
* [Github - Blockchain bridge simplified](https://github.com/chainstack/blockchain-bridge-simplified) * [Github - Blockchain bridge simplified](https://github.com/chainstack/blockchain-bridge-simplified)
* [Github - EVM Bridge](https://github.com/mineables/EVMBridge) * [Github - EVM Bridge](https://github.com/mineables/EVMBridge)
* [Ethereum - ERC 20, 5164 & 6170 cross-chain](https://eips.ethereum.org/erc)
* [Chain Agnostic Improvement Proposals](https://chainagnostic.org/CAIPs/caip-1)
* [Github - Chain Agnostic Improvement Proposals](https://github.com/ChainAgnostic/CAIPs)

View File

@ -40,3 +40,57 @@ https://github.com/SunWeb3Sec/DeFiHackLabs
### DeFiVulnLabs ### DeFiVulnLabs
https://github.com/SunWeb3Sec/DeFiVulnLabs https://github.com/SunWeb3Sec/DeFiVulnLabs
Apprentissage des vulnarabilités communes des smartcontracts Apprentissage des vulnarabilités communes des smartcontracts
==========================================================================================
### https://aucoindubloc.com/qu-est-ce-qu-un-bridge-pont-crypto-et-comment-ca-fonctionne/
Bridge -> echange entre blockchains
centralisé car on doit faire confiance au bridge
étapes :
- envoi des cryptos dans un smartcontract
- le smart contract verouille les crypto dans la blockchain source (pour ne pas les utiliser sur les 2 blockchain)
- copie du smartcontract sur la blockchain destination (oracle blockchain = verification)
frais sur les transferts
/!\ a la fiabilité du bridge
Oracle en crypto : "pont entre la blockchain et le monde réel"
Protocole qui transmet des informations fiables et vérifiées par le biais d'interaciton avec les smart contracts
Execution en fonction des condifitons fixés
### https://ethereum.org/en/bridges/
catégories de bridges : trusted et trustless
Trusted bridges :
- dépend d'une entité centrale / d'un système dédié aux opérations
- soit disant sur, on se base sur l'opérateur réputation/fiabilité
- les utilisateurs donnent le controle de leurs cryptos
Trustless bridges :
- utilise des Smartcontracts et des algorithmes
- trustless : la sécu = sécu de la blockchain rattachée (https://blog.connext.network/the-interoperability-trilemma-657c2cf69f17 check ça)
- grace aux smart contracts les utilisateurs gardent le controle de leur cryptos
Risques :
- Smart contracts : erreurs d'implementations, etc
- risques technologiques : bugs, crash, attaques etc
Pour les trusted bridges :
- censure : l'autorité peut empecher les users de transferer des cryptos
- vol d'argent
Top des attaques sur des bridges :
https://rekt.news/leaderboard/
Stratégies de secu cross-chain :
https://debridge.finance/blog/10-strategies-for-cross-chain-security/
### https://arxiv.org/pdf/2204.08664.pdf
Papier sur l'utilisation de CEX vs DEX conclusion :
- CEX meilleure ergonomie (pensé grand public plus commercial etc)
- CEX frais d'utilisation plus bas que DEX ----> Faux ???
- CEX controlés par les gouvs, moins de confidentialité que DEX
- Dans l'exemples, ce sont chercheurs chinois qui acceptent que leur onfidentalité soit compromise par les CEX