{"id":14958574,"url":"https://github.com/vprlab/blockscope","last_synced_at":"2025-10-24T14:32:15.820Z","repository":{"id":255294675,"uuid":"846542338","full_name":"VPRLab/BlockScope","owner":"VPRLab","description":"A search-based patch vs. code similarity analysis tool for discovering 100+ vulnerabilities in top blockchains","archived":false,"fork":false,"pushed_at":"2024-08-30T17:38:41.000Z","size":34,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-31T02:23:22.600Z","etag":null,"topics":["bitcoin","blockchain","ethereum","vulnerability"],"latest_commit_sha":null,"homepage":"https://www.ndss-symposium.org/ndss-paper/blockscope","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VPRLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-23T12:36:41.000Z","updated_at":"2024-11-13T11:28:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"98862003-c01a-4f6c-8a4c-37ebbd35256c","html_url":"https://github.com/VPRLab/BlockScope","commit_stats":{"total_commits":5,"total_committers":2,"mean_commits":2.5,"dds":"0.19999999999999996","last_synced_commit":"2bfbc6e0f60bc24e773ab81864ef5f31eec71d74"},"previous_names":["vprlab/blockscope"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VPRLab%2FBlockScope","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VPRLab%2FBlockScope/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VPRLab%2FBlockScope/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VPRLab%2FBlockScope/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VPRLab","download_url":"https://codeload.github.com/VPRLab/BlockScope/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237990608,"owners_count":19398460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitcoin","blockchain","ethereum","vulnerability"],"created_at":"2024-09-24T13:17:26.157Z","updated_at":"2025-10-24T14:32:05.804Z","avatar_url":"https://github.com/VPRLab.png","language":"Python","readme":"# BlockScope: Detecting and Investigating Propagated Vulnerabilities in Forked Blockchain Projects\n\nThe vulnerability reports are available at https://github.com/VPRLab/BlkVulnReport.\n\n## Overview\n\n`BlockScope` is the implementation of the paper titled *\"BlockScope: Detecting and Investigating Propagated Vulnerabilities in Forked Blockchain Projects\"* published in NDSS'23. `BlockScope` is a novel tool designed to automatically detect vulnerable code clones and pinpoint the cases already fixed and their patching process information.\n\n## Usage\n\nYou can find the NDSS paper via this [link](https://daoyuan14.github.io/papers/NDSS23_BlockScope.pdf), and please consider citing our paper if it's helpful to you.\n\n```latex\n@INPROCEEDINGS{BLKSCP23,\n AUTHOR = {Xiao Yi and Yuzhou Fang and Daoyuan Wu and Lingxiao Jiang},\n TITLE = {{BlockScope}: Detecting and Investigating Propagated Vulnerabilities in Forked Blockchain Projects},\n BOOKTITLE = {Proc. ISOC NDSS},\n YEAR = {2023},\n}\n```\n\n## Get Started\n\n### Prerequisites\n\n- We ran our experiments on Ubuntu 18.04.\n- We used Python 3.10 to develop `BlockScope`.\n- `BlockScope` relies on `requests`, `GitPython`, `PyGithub`, `nltk`, `strsimpy`, `selenium` and `PyDriller`. All the essential packages are listed in `requirements.txt`. \n\nThere are steps to locally build `BlockScope`.\n\n```shell\ngit clone git@github.com:VPRLab/BlockScope.git \u0026\u0026 cd BlockScope/src\npip install -r requirements.txt\n```\n\n###  Quick Start\n\nThere are two files for specifying the inputs for investigating Bitcoin and Ethereum forked projects, i.e., `inputs_bitcoin.py` and `inputs_ethereum.py`, respectively.\n\nYou need to first config the directory's path that stores these code repositories, e.g., for `inputs_bitcoin.py`:\n\n```python\nbitcoin_repo_dir = '/Users/xiao/PyCharmProjects/BlockScopeCodebase/BitcoinForks'\n```\n\nThen, you need to set the `IS_BITCOIN` value in the `configs.py` to `True` if you want to investigate Bitcoin's forked projects:\n\n```python\nIS_BITCOIN = True # False for investigating Ethereum's forked projects\n```\n\nMoreover, if you also want to investigate the delay in fixing a clone vulnerability in the forked projects, you can specify these values in the `configs.py`:\n\n```python\nDRIVER_PATH = '' # The path for selenium web driver\nGITHUB_TOKEN = '' # Token for accessing GitHub\nCALC_DELAY = True\n```\n\nFinally, you can run `block_scope.py` by executing the following command:\n\n```shell\npython ./block_scope.py\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvprlab%2Fblockscope","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvprlab%2Fblockscope","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvprlab%2Fblockscope/lists"}