Giter Site home page Giter Site logo

crypto51's Introduction

This project gathers data from a few different apis to calculate the estimated cost of completing a theoretical 51% attack on a cryptocurrency network. It is a python app that renders this data in jinja templated html files for hosting on a static hosting service like Google Cloud Buckets, or AWS S3.

Environment Setup / Running

Run the following to generate updated html files in the dist/ directory:

pipenv --python 3.6 shell
pipenv install
python app.py
python render.py

Alternatively you can run the following to generate updated html files + copy them to Google Cloud

pipenv --python 3.6 shell
pipenv install
./update.sh

Dependencies

  • pipenv
  • python 3.6

crypto51's People

Contributors

bitspill avatar bushstar avatar c44c avatar catchingknives avatar cryptapus avatar dependabot[bot] avatar itsmeriley avatar jackalyst avatar jyap808 avatar lukechilds avatar mrenigmatic avatar rowanrk6 avatar samadsajanlal avatar szmarczak avatar tdickman avatar walkjivefly avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

crypto51's Issues

Not all top coins are listed

Hi, very useful project!

However I've found not all tokens are listed, for example KMD is not there, probably due to dPOW usage.

I believe it's perfect to display all top coins from CMC with a proper info rather then hide some information. Reason - your site viewers will see that you did not skip any and analysed all interesting tokens. Informative reason.

As I understand currently some projects may be "hidden" due to marking as "not relevant" while applying additional 51% protection layers. But this way some information is hidden to site user. User does not know why the information is missing, either relevant, site owner forgot to analyse it or was lazy or paid by some conspiracies to avoid some :)

What I mean - hiding information is not useful and counter productive, even if the information shows the item is not exactly relevant in the list, it's better to put it there and explain why not exactly relevant, or that currently it's not possible to estimate it precisely.

So what I propose? - List all analysed coins that can be attacked with proper info. Proper info I mean - even if it is not possible to exactly estimate the number - it can be for sure estimated other ways, or at least marked as not estimated yet or "not apply" in terms of POS coins ?

Taking example of dPOW protected coins it could be simplified to have > BTC 1h attack cost. IF you also consider 1 minute cost - it could be different, as first 10 minute cost is only cost of attacking the orig token chain, and > 10 minutes it will be + BTC attack. But keeping the original site notation (considering 1h attack) simply putting "> BTC" cost would be fair estimation to me. In general it seems the important knowledge is not the exact cost but the "level of cost" - is it level of 1 000 000 $ or 1 000 $ or 10 $. So just rough estimation gives user good enough information if the chain is basically safe to use.

Another possibility is just putting "?" with a * where * (or number) in the bottom of the page could explain the details.

Hope these ideas will help.

Adding Decred to the list

Hello,

Wondering if I can help put Decred on the list. The cost to attack Decred may be trivial to add, you would need an additional variable which is "TICKET POOL VALUE". Once the ticket pool value is available, the cost to attack can be calculated from the sources the code is using.

To calculate the cost of an attack on decred an attacker would need 50% of the tickets in the ticket pool. so cost to acquire >50% of hashpower + cost of 50% stake (can use the closing price from CMC)

There is additional information on regarding the requirements for a majority attack on decred here:
https://medium.com/decred/decreds-hybrid-protocol-a-superior-deterrent-to-majority-attacks-9421bf486292

The decred block explorer has an API where the site can pull latest ticket pool value:
https://explorer.dcrdata.org/api/block/best

Let me know if you would agree with something like this.

Hush

Hush has implemented dPoW protection by Komodo, it can't be 51% attacked

Bitcoin is missing

Just pulled this up recently and noticed that BTC is gone. I saw that #39 noted this in the past, but it looks like it's happening again.

Einsteinium

Einsteinium has implemented dPoW protection by Komodo, it can't be 51% attacked

feature: graph of data over time

Thanks for creating this wonderful site. I've been watching it for a while now. I'd love to request a feature for showing a graph of each of these columns Hash Rate | 1h Attack Cost | NiceHash-able vs. calendar date. Can probably just be daily granularity.

Add Emercoin

Hello,
Can you add Emercoin into your list? Current the Emercoin's POW-difficulty ~2x more, than the Bitcoin's one, and I think, this is very suitable put Emercoin in the your list.

I would be happy to assist you with this, if need.

Kadena , work the 51% attack ?

Hi, can Kadena represent in crypto51 stats? The risk is like the other pow chains ? Or is it something different due to its intertwined chains

Feature: sort by any column

I'd like to sort by 1h attack cost. The table seems to have a fixed sorting by CoinMarketCap's market cap measure.

BitTubeCash is not nicehashable

BitTubeCash uses a custom PoW which is not nicehash-able and renting prices for this algo at miningrigrentals are MUCH higher and only 20% of nethash is available for rent.

Add coins with dPOW with attack cost >= BTC

I think it is good to promote awareness and new technology (which successfully works for 3 years)

dPOW = delayed POW - it works for KMD, VRSC and forks like ARRR.
They are notarized to BTC every 10 minutes on average, so I believe they should have like: 1h attack cost >=BTC *

    • <10 min attack cost is much cheaper (before notarization). But in reality we talk about 1h attack cost, and also average, and for big amounts you should wait until minimum 1 notarization.

Grin is c29z + c32 (and 80% c32 --> 100% c32 by Jan 2021)

Currently, you are only pulling c29z for grin algo. It is currently 80% c32 though, so the cost to attack is misleading. Grin also uses a dynamic weighting algo that ensures 20% of the blocks are c29z and 80% are c32, so attacking is slightly more complicated than picking one algo. By ~15 January 2021, about 4 months away, the PoW will be 100% c32, so if you just switched to the c32 data you would be sufficiently accurate and soon to be completely accurate.

Bata - Not Scrypt

This website is not accurate with the data it displays for Bata (BTA)

SIX (6) Independent Chain algorithms (multi-algo)
Masternodes
Deadlock Protection
Instamine Protection
Dynamic blocks & Rewards
Spork control over block processing.

Low diff = Low reward

access to historical data?

Hello, is it possible to acquire historical data on the cost of a 51% attack for Bitcoin? I would like to use it for academic purposes.

Monero removed

Hello,
I was just wondering if there was a reason why Monero isn't listed anymore? It looks like it is still supported on nicehash and whattomine.

BSV missing

BSV isn't visible on crypto51.app. A few days ago it was 51% NiceHash-able.

Bulwark(BWK) is POS not POW, so not mineable...

The list includes Bulwark but this is a POS coin as of the last 6 months and not POW, so is no longer at risk of a 51% attack. Maybe you need to check your list as if this one is off, how many others are as well?

Ethereum Calculations Broken

Someone just reported this issue on howmanyconfs.com: lukechilds/howmanyconfs.com#20 (comment)

I just checked and it's affecting crypto51.app too.

Unfortunately I'm unable to look into this right now due to high priority work on another project but just letting you know.

If you have time to look into the issue please let me know!

And if anyone submits a PR with the fix to howmanyconfs.com there's a $50 bounty waiting for you.

Add CORS header to coins.json

The coins.json endpoint can't be accessed from a browser because it doesn't have a CORS header. Add a Access-Control-Allow-Origin: * header will resolve the issue and allow the data to be consumed by browsers.

How to consider ERC-20 mineables like 0xBitcoin?

0xBitcoin was the first ERC-20 proof-of-work mineable, and it inspired the EIP-918 Mineable Token Standard. Now there are 4 or 5 0xBitcoin-style mineables which are more or less clones of 0xBitcoin but with additional features. The idea behind the Mineable Token Standard is that in the future, crypto projects might choose to forego the ICO route and instead "raise funds" via EIP-918 mining in an initial mining offering or IMO.

It's not certain that EIP-918 will take off as a standard, but if it does, how should these mineables be considered by crypto51? EIP-918 tokens are mined just like the other PoW mineables in crypto51's list, and they store value just like the other mineables, but what's different about them is that they only utilize PoW as a distribution method / value-establishing method. They don't secure their own transactions with their own PoW function and instead outsource that job to Ethereum, which means they can only be double-spent by doing a 51% attack on Ethereum.

For a practical example with numbers, 0xBitcoin's total network hashrate is about 10-12 TH/s. (For background, the work function is Keccak-256 and most miners these days are using FPGA hardware with the rest using GPUs.) The clones together manage about another 10 GH/s total. All of these tokens seem, therefore, like they would be easy targets for a 51% attack; however, that is not the case. In fact, to double-spend any of them, someone would have to perform a 51% attack against Ethereum, which currently has a hashrate of 172 TH/s (Ethash work function). Therefore if they were listed on crypto51, their hashrates would look quite meager but the cost of a 51% attack would be the same as Ethereum's.

I am curious to know if crypto51 has heard of these 0xBitcoin-style mineables yet and if you are interested in listing any on your site. I think it would be useful to at least list 0xBitcoin just to demonstrate the unique security upside of EIP-918-style tokens. What do you think of that?

(Full disclosure: I am a community developer for 0xBitcoin. I have mined 0xBitcoin off an on with GPUs. I do not get paid by 0xBitcoin [it is a completely decentralized effort and their are no central funds anyway]. I have made a few useful tools such as the block explorer at https://0xbtc.info/ and am just a big fan of the project.)

Remove DASH

DASH had a network upgrade which is focused to deal with 51% attack. From now on in order to perform a 51% attack you not only need to have 51% POW hashing power, but also to stake at least ~7200000 DASH within ~60% (7200) active masternodes. This is now impossible, because free 7200000 DASH don't exist yet. Thus, the cost of 51% attack cannot be calculated.

Are your 1hr attack costs correct?

I'm confused about how you're reaching the numbers you claim, specifically for the 1hr attack cost.

First, you take the algorithm's p value from the stats. I'm presuming that p means price, but it's very ill-documented on Nicehash's api doc, and you seem confused about it too.

Then you divide this value by 108. It seems like you're doing this to normalize from 100 GH to 1 H... But I'm not sure why you're sure that the p value from Nicehash is always denominated in GH since Nicehash uses TH, PH, GH, etc. as well. Either way, this value is in BTC/xH/Day (where x is one of TH, PH, or whatever).

Lastly, you multiply this value by the network hashpower. But, nethash is denominated in H/sec and you're multiplying by BTC/H/Day. Don't you first have to convert the pricing to per-second? (Or nethash to H/Day)

Chapter missing information

"Can we reduce the risk?"

The best option by far to lower the risk is to use dPOW, which is not on the list.

BTW

All dPOW enabled coins should be above BTC as they need more hash power then BTC to be effectively attacked.

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.