From 2dc75cd2047b908a2e576c57d384ee5b66e62612 Mon Sep 17 00:00:00 2001 From: JOLY Amaury Date: Sun, 2 Apr 2023 17:09:24 +0000 Subject: [PATCH] =?UTF-8?q?Ajout=20biblio=20pools=20liquidt=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/rapportFinal/decentralisation/pools.tex | 41 ++++++- docs/rapportFinal/decentralisation/relay.tex | 25 +++-- .../decentralisation/reserve_liquidite.png | Bin 0 -> 96829 bytes .../decentralisation/sidechain.tex | 24 +++- .../rapportFinal/decentralisation/sources.bib | 106 ++++++++++++++++++ docs/rapportFinal/main.tex | 2 +- 6 files changed, 176 insertions(+), 22 deletions(-) create mode 100644 docs/rapportFinal/decentralisation/reserve_liquidite.png diff --git a/docs/rapportFinal/decentralisation/pools.tex b/docs/rapportFinal/decentralisation/pools.tex index c60f257..22091ed 100644 --- a/docs/rapportFinal/decentralisation/pools.tex +++ b/docs/rapportFinal/decentralisation/pools.tex @@ -1,11 +1,42 @@ +% Autheur: Amaury JOlY + \subsubsection{Definition} -Les réserves de liquidité sont des marchés automatisés qui permettent aux utilisateurs de fournir des liquidités pour les échangeurs décentralisés (DEX) et de gagner des frais de transaction en retour. Les fournisseurs de liquidités déposent des fonds dans une résreve de liquidité et reçoivent des jetons LP\footnote{Liquidity Provider Token} en retour. Les jetons LP représentent une part de propriété dans la réserve de liquidité et peuvent être utilisés pour retirer des fonds de la réserve. Les réserves de liquidité sont un concept clé de l’écosystème DeFi. Il permettent la mise en place d'échangeurs décentralisés qui donne la possibilité aux utilisateurs d’échanger des actifs sans avoir besoin d’un intermédiaire centralisé. \\ -A chaque échange réalisé via la réserve, les possesseurs de liquidités recoivents des récompenses qui sont les frais d'échanges des utilisateurs. Les récompenses sont généralement des jetons de gouvernance ou des jetons de protocole. Les réserves de liquidité se régulent ainsi en ajustant les frais de transaction en fonction de l’offre et de la demande. Si la demande pour une réserve de liquidité particulier est élevée, les frais de transaction augmentent pour encourager les fournisseurs de liquidités à déposer plus de fonds dans la réserve. Si la demande est faible, les frais de transaction diminuent pour encourager les utilisateurs à échanger des actifs sur la réserve de liquidité. \\ +Les réserves de liquidité sont des marchés automatisés qui permettent aux utilisateurs de fournir des liquidités pour les échangeurs décentralisés (DEX) et de +remporter une comission à chaque transaction \cite{jensen2021introduction, belchior2022survey, augustin2022yield}. +Les fournisseurs de liquidités déposent des fonds dans une résreve de liquidité et reçoivent des jetons +LP\footnote{Liquidity Provider Token} en retour. Les jetons LP représentent une part de propriété dans la réserve de liquidité et peuvent être utilisés pour +retirer des fonds de la réserve. Les réserves de liquidité sont un concept clé de l’écosystème DeFi. Il permettent la mise en place d'échangeurs décentralisés +qui donne la possibilité aux utilisateurs d’échanger des actifs sans avoir besoin d’un intermédiaire centralisé. \\ +A chaque échange réalisé via la réserve, les possesseurs de liquidités recoivents des récompenses qui sont les frais d'échanges des utilisateurs. Les récompenses +sont généralement des jetons de gouvernance ou des jetons de protocole. Les réserves de liquidité se régulent ainsi en ajustant les frais de transaction +en fonction de l’offre et de la demande. Si la demande pour une réserve de liquidité particulier est élevée, les frais de transaction augmentent pour encourager +les fournisseurs de liquidités à déposer plus de fonds dans la réserve. Si la demande est faible, les frais de transaction diminuent pour encourager les +utilisateurs à échanger des actifs sur la réserve de liquidité. \\ Une réserve de liquidité repose sur un smart contract et bénéficie ainsi de la décentralisation et de la sécurité de la blockchain sur laquelle il repose. +\begin{figure}[h!] + \centering + \stackunder{\includegraphics[scale=0.3]{decentralisation/reserve_liquidite.png}} + {\scriptsize Source: An introduction to decentralized finance (defi) \cite{jensen2021introduction} } + \caption{Marché de la reserve de liquidité} + \label{fig:liquidite} +\end{figure} \subsubsection{Exemple: PancakeSwap} -PancakeSwap est une plateforme d’échange décentralisée (DEX) qui repose sur la blockchain Binance Smart Chain. Elle permet aux utilisateurs d’échanger des cryptomonnaies de manière décentralisée, sans avoir besoin d’un intermédiaire centralisé. Le jeton natif de la plateforme PancakeSwap, le CAKE, est utilisé pour la gouvernance du protocole. Ainsi, grâce à lui, vous pouvez voter pour des propositions soumises par la communauté. La sécurité de PancakeSwap est assurée par un système de smart contracts qui permettent de sécuriser les transactions et les échanges de manière décentralisée. Les réserves de liquidités sont un élément clé de PancakeSwap. Ils permettent aux utilisateurs de fournir des liquidités à la plateforme et de recevoir des récompenses en échange. Les réserves de liquidités sont également utilisés pour déterminer le prix des actifs sur la plateforme. +PancakeSwap est une plateforme d’échange décentralisée (DEX) qui repose sur la blockchain Binance Smart Chain. \cite{augustin2022yield} Elle permet aux utilisateurs d’échanger des +cryptomonnaies de manière décentralisée. Le jeton natif de la plateforme PancakeSwap, le CAKE, est utilisé +pour la gouvernance du protocole. Ainsi, grâce à lui, vous pouvez voter pour des propositions soumises par la communauté. La sécurité de PancakeSwap est assurée +par un ensemble de smart contracts permettant de sécuriser les transactions et les échanges de manière décentralisée. Les réserves de liquidités sont un +élément clé de PancakeSwap. Ils permettent aux utilisateurs de fournir des liquidités à la plateforme et de recevoir des récompenses en échange. Les réserves +de liquidités sont également utilisés pour déterminer le prix des actifs sur la plateforme. \subsubsection{Limitations} -Les réserves de liquidités présentent certaines limites. Tout d’abord, les réserves de liquidités sont vulnérables aux attaques de liquidités. Les attaques de liquidités sont des attaques dans lesquelles un utilisateur manipule le prix d’un actif en ajoutant ou en retirant une grande quantité de liquidités d’une réserve. Cela peut entraîner une baisse significative du prix de l’actif et des pertes pour les fournisseurs de liquidités. De plus, les réserves de liquidités peuvent être affectés par des problèmes de liquidité. Si une réserve de liquidités n’a pas suffisamment de liquidités, il peut être difficile pour les utilisateurs d’acheter ou de vendre des actifs sur la plateforme. Enfin, les réserves de liquidités peuvent être affectés par des problèmes de sécurité. Si une réserve de liquidités est compromis, les utilisateurs peuvent perdre leurs fonds. \\ -Un exemple d'attaque sur une réserve de liquidité est la CVE-2021-3006. La CVE-2021-3006 est une vulnérabilité de sécurité qui a été exploitée en décembre 2020 et janvier 2021. Elle concerne un manquement de controle d'accès dans l’implémentation du contrat intelligent pour une réserve de liquidité en lien avec Seal Finance (Seal), un jeton Ethereum. Cette vulnérabilité permet une manipulation des prix ayant permis à l'attaquant de réaliser une plus-value artificiel sur ses jetons. +Les réserves de liquidités présentent certaines limites \cite{caldarelli2021blockchain}. Tout d’abord, les réserves de liquidités sont vulnérables aux attaques de liquidités. Les attaques +de liquidités sont des attaques dans lesquelles un utilisateur manipule le prix d’un actif en ajoutant ou en retirant une grande quantité de liquidités d’une +réserve. Cela peut entraîner une baisse significative du prix de l’actif et des pertes pour les fournisseurs de liquidités. De plus, les réserves de liquidités +peuvent être affectés par des problèmes de liquidité. Si une réserve de liquidités n’a pas suffisamment de liquidités, il peut être difficile pour les +utilisateurs d’acheter ou de vendre des actifs sur la plateforme. Enfin, les réserves de liquidités peuvent être affectés par des problèmes de sécurité. Si +une réserve de liquidités est compromis, les utilisateurs peuvent perdre leurs fonds. \\ +Un exemple d'attaque sur une réserve de liquidité est la CVE-2021-3006 \cite{nvd2021-3006,blocksec2021Seal}. La CVE-2021-3006 est une vulnérabilité de sécurité qui a été exploitée en décembre +2020 et janvier 2021. Elle concerne un manquement de controle d'accès dans l’implémentation du contrat intelligent pour une réserve de liquidité en lien avec +Seal Finance (Seal), un jeton Ethereum. Cette vulnérabilité permet une manipulation des prix ayant permis à l'attaquant de réaliser une plus-value artificiel +sur ses jetons. diff --git a/docs/rapportFinal/decentralisation/relay.tex b/docs/rapportFinal/decentralisation/relay.tex index c11af85..5800410 100644 --- a/docs/rapportFinal/decentralisation/relay.tex +++ b/docs/rapportFinal/decentralisation/relay.tex @@ -1,17 +1,18 @@ %auteur: Amaury JOLY \subsubsection{Définition} - -Les relays sont des contrats intelligents qui existent sur la \textit{blockchain} Ethereum. +Les relays décentralisés sont des applications décentralisés permettant une intéropérabilités entre les \textit{blockchains} \cite{qin2018overview, westerkamp2022verilay,belchior2022survey}. Leur but est de transmettre des informations entre des \textit{blockchains} distinctes (par exemple, Bitcoin et Ethereum). Les relays suivent une partie de l’état de leurs chaînes connectées afin de prouver l’existence de transactions d’une chaîne à l’autre. \subsubsection{BTCRelay} - -BTCRelay est un contrat intelligent qui stocke les en-têtes de blocs Bitcoin sur la \textit{blockchain} Ethereum. -BTCRelay utilise ces en-têtes de blocs pour construire une mini-version de la \textit{blockchain} Bitcoin: une méthode utilisée par les portefeuilles légers Bitcoin SPV. -\footnote{Bitcoin SPV signifie Simplified Payment Verification et c’est un moyen pour Bitcoin de se développer et de se propager en fonctionnant sur des petits appareils, comme les téléphones portables et les ordinateurs portables.} -BTCRelay est open source, sans confiance et décentralisé. Il permet aux contrats Ethereum de vérifier les transactions Bitcoin sans aucun intermédiaire: en d’autres termes, -les utilisateurs peuvent payer avec Bitcoin pour utiliser les DAPPs Ethereum. Il offre également la possibilité de relayer la transaction Bitcoin à n’importe quel contrat Ethereum et d’inspecter le dernier en-tête de bloc Bitcoin stocké dans le contrat. Ce qui offre une possibilité d'opérabilité unidirectionnelle de Bitcoin vers Ethereum.\\ +BTCRelay est un \textit{smart contract} qui stocke les en-têtes de blocs Bitcoin sur la \textit{blockchain} Ethereum. \cite{qin2018overview,belchior2022survey,btcrelay2022web,btcrelay2022git} +BTCRelay utilise ces en-têtes de blocs pour construire une mini-version de la \textit{blockchain} Bitcoin: une méthode utilisée par les +portefeuilles légers Bitcoin SPV. \footnote{Bitcoin SPV signifie Simplified Payment Verification et c’est un moyen pour Bitcoin de se +développer et de se propager en fonctionnant sur des petits appareils, comme les téléphones portables et les ordinateurs portables.} +BTCRelay est open source, sans confiance et décentralisé. Il permet aux contrats Ethereum de vérifier les transactions Bitcoin sans aucun +intermédiaire: en d’autres termes, les utilisateurs peuvent payer avec Bitcoin pour utiliser les DAPPs Ethereum. Il offre également la +possibilité de relayer la transaction Bitcoin à n’importe quel contrat Ethereum et d’inspecter le dernier en-tête de bloc Bitcoin stocké +dans le contrat. Ce qui offre une possibilité d'opérabilité unidirectionnelle de Bitcoin vers Ethereum.\\ \begin{figure}[h!] \centering @@ -21,9 +22,9 @@ les utilisateurs peuvent payer avec Bitcoin pour utiliser les DAPPs Ethereum. Il \end{figure} \subsubsection{tBTC} - -Un exemple de relay est le projet tBTC, qui permet aux utilisateurs d’échanger des bitcoins contre des -tokens ERC-20 représentant des bitcoins sur la \textit{blockchain} Ethereum. tBTC utilise un contrat intelligent +Un exemple d'application de ce relay pour de l'échange \textit{cross-blockchain} est le projet tBTC, +qui permet aux utilisateurs d’échanger des bitcoins contre des +tokens ERC-20 représentant des bitcoins sur la \textit{blockchain} Ethereum. \cite{hildebrandt2020tokenization,lan2021horizon} tBTC utilise un contrat intelligent appelé Deposit qui interagit avec un ensemble de signataires qui détiennent les bitcoins en garantie. Le contrat Deposit utilise BTCRelay pour vérifier les preuves SPV des transactions Bitcoin et émettre ou brûler des tokens tBTC en conséquence. Ainsi, les utilisateurs peuvent profiter des avantages de la liquidité @@ -35,7 +36,7 @@ verrouillés dans le contrat Deposit. Ceci expose les signataires à un risque f De plus, tBTC nécessite que les signataires soient en ligne et disponibles pour répondre aux demandes de rachat des utilisateurs dans un délai donné. Si les signataires sont hors ligne ou malhonnêtes, les utilisateurs peuvent perdre l’accès à leurs bitcoins ou être obligés d’attendre une longue période avant de pouvoir les récupérer. -Les signataires sont choisis aléatoirement par un mécanisme appelé random beacon, qui pondère la sélection en +Les signataires sont choisis aléatoirement par un mécanisme appelé \textit{random beacon}, qui pondère la sélection en fonction du montant misé par les signataires potentiels. Cela vise à éviter la collusion ou la censure entre les signataires, mais cela n’exclut pas complètement la possibilité d’attaques sybil \footnote{Une attaque sybil est un type d’attaque sur un réseau pair à pair dans laquelle un attaquant crée un grand nombre d’identités fausses diff --git a/docs/rapportFinal/decentralisation/reserve_liquidite.png b/docs/rapportFinal/decentralisation/reserve_liquidite.png new file mode 100644 index 0000000000000000000000000000000000000000..740e8527348272586605cb5770018832100516e1 GIT binary patch literal 96829 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.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 z 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 E0oGoK#{d8T literal 0 HcmV?d00001 diff --git a/docs/rapportFinal/decentralisation/sidechain.tex b/docs/rapportFinal/decentralisation/sidechain.tex index c23543c..014c067 100644 --- a/docs/rapportFinal/decentralisation/sidechain.tex +++ b/docs/rapportFinal/decentralisation/sidechain.tex @@ -1,10 +1,26 @@ %auteur: Amaury JOLY \subsubsection{Définition} -Les sidechains sont des \textit{blockchain}s secondaires qui fonctionnent en parallèle d'une \textit{blockchain} principale. Elles possèdent leurs propres caractéristiques, mais bénéficient de la communauté et de la sécurité inhérente au réseau principal pour les transactions finales qui seront inscrites sur la \textit{blockchain} principale. Les sidechains permettent de réaliser des opérations en marge de la chaîne principale, apportant ainsi plus de scalabilité et de fonctionnalités. Par exemple, certaines sidechains sont compatibles avec l'Ethereum Virtual Machine (EVM) et peuvent donc porter des applications Ethereum. +Les sidechains sont des \textit{blockchains} secondaires qui fonctionnent en parallèle d'une \textit{blockchain} principale \cite{jensen2021introduction,qin2018overview,belchior2022survey}. Elles possèdent leurs propres +caractéristiques, mais bénéficient de la communauté et de la sécurité inhérente au réseau principal pour les transactions finales qui seront inscrites sur +la \textit{blockchain} principale. Les sidechains permettent de réaliser des opérations en marge de la chaîne principale, apportant ainsi plus de scalabilité +et de fonctionnalités. Par exemple, certaines sidechains sont compatibles avec l'Ethereum Virtual Machine (EVM) et peuvent donc porter des applications Ethereum. \subsubsection{Zendoo} -Zendoo est une plateforme de création de sidechains interopérables avec la \textit{blockchain} Horizen \cite{garoffolo2020zendoo}. Elle utilise un protocole de transfert cross-chain vérifiable par zk-SNARK \footnote{zk-SNARK est un acronyme qui signifie « Zero-Knowledge Succinct Non-Interactive Argument of Knowledge ». Il s'agit d'une preuve cryptographique qui permet à une partie, le prouveur, de prouver à une autre partie, le vérificateur, qu'une affirmation sur des informations détenues secrètement est vraie sans révéler les informations elles-mêmes.}, qui permet de garantir la sécurité et la décentralisation des communications entre la chaîne principale et les sidechains. Les sidechains Zendoo peuvent avoir des caractéristiques différentes de la chaîne principale, comme le mécanisme de consensus, le modèle comptable ou la structure des données. Elles peuvent même ne pas être des \textit{blockchains} du tout, tant qu'elles respectent le protocole de transfert cross-chain. Zendoo offre ainsi une grande liberté aux développeurs pour créer des applications sur mesure sans compromettre la scalabilité ou la sécurité du réseau Horizen.\\ -De ce fait, Zendoo facilite l'échange de jetons entre différentes chaînes de blocs, sans passer par des intermédiaires centralisés qui perçoivent des commissions. Les utilisateurs peuvent ainsi bénéficier d'une plus grande liquidité et d'une meilleure efficacité dans leurs transactions cross-chain. +Zendoo est une plateforme de création de sidechains interopérables avec la \textit{blockchain} Horizen \cite{garoffolo2020zendoo,belchior2022survey}. Elle utilise un protocole +de transfert cross-chain vérifiable par zk-SNARK \footnote{zk-SNARK est un acronyme qui signifie « Zero-Knowledge Succinct Non-Interactive Argument of Knowledge ». +Il s'agit d'une preuve cryptographique qui permet à une partie, le prouveur, de prouver à une autre partie, le vérificateur, qu'une affirmation sur des informations +détenues secrètement est vraie sans révéler les informations elles-mêmes.}, qui permet de garantir la sécurité et la décentralisation des communications entre +la chaîne principale et les sidechains. Les sidechains Zendoo peuvent avoir des caractéristiques différentes de la chaîne principale, comme le mécanisme de +consensus, le modèle comptable ou la structure des données. Elles peuvent même ne pas être des \textit{blockchains} du tout, tant qu'elles respectent le protocole +de transfert cross-chain. Zendoo offre ainsi une grande liberté aux développeurs pour créer des applications sur mesure sans compromettre la scalabilité ou la +sécurité du réseau Horizen.\\ +De ce fait, Zendoo facilite l'échange de jetons entre différentes chaînes de blocs, sans passer par des intermédiaires centralisés qui perçoivent des commissions. +Les utilisateurs peuvent ainsi bénéficier d'une plus grande liquidité et d'une meilleure efficacité dans leurs transactions cross-chain. \subsubsection{Contrainte technique des sidechains} -La mise en place de sidechains implique une contrainte technique majeure : la création d'un pont bidirectionnel (\textit{two-way bridge}) entre la chaîne principale et la sidechain. Ce pont permet de transférer des actifs entre les deux chaînes, en respectant un taux de change prédéfini et en garantissant la conservation du nombre total d'actifs. Cependant, ce pont nécessite une coordination entre les deux chaînes, ce qui peut poser des problèmes de sécurité, de performance ou de compatibilité. Par exemple, il est difficile d'utiliser des sidechains avec des \textit{blockchains} comme Ethereum ou Bitcoin, car elles n'ont pas le même algorithme de consensus, le même modèle comptable ou la même structure de données que les sidechains. Il faudrait donc adapter ces \textit{blockchains} pour qu'elles puissent communiquer avec les sidechains, ce qui impliquerait des modifications importantes dans leur protocole. +La mise en place de sidechains implique une contrainte technique majeure : la création d'un pont bidirectionnel (\textit{two-way bridge}) entre la chaîne +principale et la sidechain. Ce pont permet de transférer des actifs entre les deux chaînes, en respectant un taux de change prédéfini et en garantissant la +conservation du nombre total d'actifs. Cependant, ce pont nécessite une coordination entre les deux chaînes, ce qui peut poser des problèmes de sécurité, de +performance ou de compatibilité. Par exemple, il est difficile d'utiliser des sidechains avec des \textit{blockchains} comme Ethereum ou Bitcoin, car elles n'ont +pas le même algorithme de consensus, le même modèle comptable ou la même structure de données que les sidechains. Il faudrait donc adapter ces \textit{blockchains} +pour qu'elles puissent communiquer avec les sidechains, ce qui impliquerait des modifications importantes dans leur protocole. diff --git a/docs/rapportFinal/decentralisation/sources.bib b/docs/rapportFinal/decentralisation/sources.bib index 20c58ef..23dbf1a 100644 --- a/docs/rapportFinal/decentralisation/sources.bib +++ b/docs/rapportFinal/decentralisation/sources.bib @@ -1,3 +1,109 @@ +%Relay Décentralisés +@inproceedings{westerkamp2022verilay, + title={Verilay: A verifiable proof of stake chain relay}, + author={Westerkamp, Martin and Diez, Maximilian}, + booktitle={2022 IEEE International Conference on Blockchain and Cryptocurrency (ICBC)}, + pages={1--9}, + year={2022}, + organization={IEEE} +} + +@article{qin2018overview, + title={An overview of blockchain scalability, interoperability and sustainability}, + author={Qin, Kaihua and Gervais, Arthur}, + journal={Hochschule Luzern Imperial College London Liquidity Network}, + year={2018} +} + +@misc{btcrelay2022web, + author = {BTCRelay}, + howpublished = {\url{http://btcrelay.org/}}, + title = {BTCRelay}, + year = {2022}, +} + +@misc{btcrelay2022git, + author = {ethereum}, + howpublished = {\url{https://github.com/ethereum/btcrelay}}, + title = {btcrelay}, + year = {2022} +} + +@inproceedings{hildebrandt2020tokenization, + title={Tokenization and the Symbiosis between Blockchains}, + author={Hildebrandt, Felix}, + booktitle={Konferenzband zum Scientific Track der Blockchain Autumn School 2020}, + pages={14--20}, + year={2020}, + organization={Hochschule Mittweida} +} + +@article{lan2021horizon, + title={Horizon: A gas-efficient, trustless bridge for cross-chain transactions}, + author={Lan, Rongjian and Upadhyaya, Ganesha and Tse, Stephen and Zamani, Mahdi}, + journal={arXiv preprint arXiv:2101.06000}, + year={2021} +} + +%Pools de liquidité +@article{jensen2021introduction, + title={An introduction to decentralized finance (defi)}, + author={Jensen, Johannes Rude and von Wachter, Victor and Ross, Omri}, + journal={Complex Systems Informatics and Modeling Quarterly}, + number={26}, + pages={46--54}, + year={2021} +} + +@article{ belchior2022survey, + author={Belchior,Rafael and Vasconcelos,André and Guerreiro,Sérgio and Correia,Miguel}, + year={2022}, + title={A Survey on Blockchain Interoperability: Past, Present, and Future Trends}, + journal={ACM computing surveys}, + volume={54}, + number={8}, + pages={1-41}, + abstract={Blockchain interoperability is emerging as one of the crucial features of blockchain technology, but the knowledge necessary for achieving it is fragmented. This fact makes it challenging for academics and the industry to achieve interoperability among blockchains seamlessly. Given this new domain’s novelty and potential, we conduct a literature review on blockchain interoperability by collecting 284 papers and 120 grey literature documents, constituting a corpus of 404 documents. From those 404 documents, we systematically analyzed and discussed 102 documents, including peer-reviewed papers and grey literature. Our review classifies studies in three categories: Public Connectors, Blockchain of Blockchains, and Hybrid Connectors. Each category is further divided into sub-categories based on defined criteria. We classify 67 existing solutions in one sub-category using the Blockchain Interoperability Framework, providing a holistic overview of blockchain interoperability. Our findings show that blockchain interoperability has a much broader spectrum than cryptocurrencies and cross-chain asset transfers. Finally, this article discusses supporting technologies, standards, use cases, open challenges, and future research directions, paving the way for research in the area.}, + keywords={Blockchain; Connectors; Cryptography; Digital currencies; Documents; Grey literature; Interoperability; Literature reviews}, + isbn={0360-0300}, + language={English}, +} + +@article{augustin2022yield, + title={Yield Farming}, + author={Augustin, Patrick and Chen-Zhang, Roy and Shin, Donghwa}, + journal={Available at SSRN 4063228}, + year={2022} +} + +@misc{nvd2021-3006, + title={CVE-2021-3006}, + howpublished={\url{https://nvd.nist.gov/vuln/detail/CVE-2021-3006}}, + journal={National Vulnerability Database}, + author={National Institute of Standards and Technology}, + year={2021}, + month={03} +} + +@misc{blocksec2021Seal, + author = {Block Sec}, + howpublished = {\url{https://blocksecteam.medium.com/security-incident-on-seal-finance-fa79c27a1c3b}}, + title = {Security Incident on Seal Finance}, + year = {2021}, + month = {01}, +} + +@article{caldarelli2021blockchain, + title={The blockchain oracle problem in decentralized finance—a multivocal approach}, + author={Caldarelli, Giulio and Ellul, Joshua}, + journal={Applied Sciences}, + volume={11}, + number={16}, + pages={7572}, + year={2021}, + publisher={MDPI} +} + @inproceedings{herlihy2018atomic, title={Atomic cross-chain swaps}, author={Herlihy, Maurice}, diff --git a/docs/rapportFinal/main.tex b/docs/rapportFinal/main.tex index d1f7927..c7e53c6 100644 --- a/docs/rapportFinal/main.tex +++ b/docs/rapportFinal/main.tex @@ -60,4 +60,4 @@ \newpage \printbibliography -\end{document} \ No newline at end of file +\end{document}