Git Product home page Git Product logo

cryptofinance_a5's Introduction

Cryptofinance_A5

Etude de différents type d'attaque sur Bitcoin

OneTwoAttack

Attaque simple fonctionnant par cycle de 3 blocks au termes desquels l'attaquant est gagnant si il possède plus de block que la blockchain officielle

La fonction permettant de simuler l'attaque prend en paramètre deux attributs qui sont n, le nombre de cycle et q le hashrate de l'attaquant. En prenant n = 10000 et q variant de 0 à 0.5 par intervalle de 0.005 nous arrivons à ce resultat:

image

Ici nous trouvons que l'attaque est rentable à partir de 0.405 de hashrate

DoubleDepense

Attaque consistant à faire accepter une transaction faite par le seuil de z block de confirmation pour ensuite remplacer ces blocks

La fonction permettant de simuler l'attaque à le double dépense prend en paramètre: n le nombre d'attaque q le hashrate de l'attaquant z le nombre de blocks de confirmation nécessaire pour que le paiement soit accepté a le seuil à partir duquel l'attaquant stop de peur de se faire rattraper par la blockchain officielle premined le nombre de block d'avance qu'a l'attaquant au début de l'attack

Avec n = 10000, a = 3 , premined 1 et q variant de 0 à 0.5 par intervalle de 0.005 nous arrivons à ces resultats en fonction de z:

image

MinageOptimal

Attaque cherchant à maximiser le gain de l'attaquant au cours d'un cycle d'attaque dépendant de différents attributs

Ici nous utilisons un fonction récursive prenant comme paramètre: q = hashrate de l'attaquant n = nombre de block lors d'une attaque c = cout a = nb de blocks de l'attaquant h = nb de blocks de la blockchain officielle Avec q variant de 0 à 0.5 par intervalle de 0.005 nous arrivons à ces resultats en fonction de n: ( Ici nous considérons que le cout est équivalent au hashrate) image

SelfishMining

Répétition de la stratégie de minage égoiste en fonction de différents attributs

La fonction permettant de simuler le slefish mining prend comme paramètre q = hashrate de l'attaquant gamma = connectivité de l'attaquant, cela correspond, lorsque que l'attaquant perd son avance sur la blockchain officielle et qu'il publie tout de même ses blocks, à la chance que le prochain block miné par quelqu'un le soit sur le block de l'attaquant n = nombre de simulations

En prenant n = 10000 et q variant de 0 à 0.5 par intervalle de 0.005 nous arrivons à ces resultats en fonction de gamma: image

cryptofinance_a5's People

Contributors

tanguylaucournet avatar

Watchers

 avatar

cryptofinance_a5's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.