Smart contract security auditing
Smart contract auditing may be provided by: receiving a request to audit a prospective smart contract; executing a smart contracts auditing model; extracting raw data from at least one blockchain using the smart contracts auditing model; analyzing the raw data using at least two security analyzers; aggregating the output of the at least two security analyzers according to an aggregator; and generating a smart contracts security report from the aggregated output for the prospective smart contract, which includes a smart contracts security score.
1 . A smart contracts auditing system, comprising:
a processor, and
a memory storing instructions, that when executed by the processor, perform operations, including:
receiving a request to audit a prospective smart contract;
executing a smart contracts auditing model;
extracting raw data from at least one blockchain using the smart contracts auditing model;
analyzing the raw data using at least two security analyzers;
aggregating outputs from the at least two security analyzers according to an aggregator; and
generating a smart contracts security report from the outputs as aggregated for the prospective smart contract, which includes a smart contracts security score,
wherein the at least two security analyzers analyze the raw data by parsing and classifying the raw data into one or more vulnerability categories,
wherein the smart contracts security report includes a visual breakdown of vulnerabilities from the prospective smart contract identified according to the one or more vulnerability categories,
wherein the smart contracts auditing model includes an applications module, and wherein the applications module is configured to communicate with at least one other module of the smart contracts auditing model using a workflow pipeline and a message broker,
wherein the smart contracts auditing model includes a data management module, wherein the data management module includes a relational database and a graph database, and wherein the data management module is configured to allow a user to query different smart contracts for analysis, and
wherein the smart contracts auditing model includes a data extraction module, wherein the data extraction module includes a metadata extractor, a disassembler, and a decompiler, wherein bytecode of metadata of extracted smart contracts is dissembled by the disassembler and decompiled by the decompiler resulting in an intermediary representation that is human-readable.
2 . The system of claim 1 , wherein the raw data extracted from the at least one blockchain include code and state data for at least one other smart contract stored in the at least one blockchain.
3 . The system of claim 1 , wherein the one or more vulnerability categories include:
reentrancy;
timestamp dependencies;
integer overflow;
integer underflow;
uncheck call return values;
arithmetic issues; and
inclusion of parity wallets.
4 . The system of claim 1 , wherein each identified vulnerability is weighted according to a severity for an associated vulnerability category to generate the smart contracts security score.
5 . The system of claim 1 , wherein the prospective smart contract is not yet deployed in the at least one blockchain.
6 . A method, comprising:
receiving a request to audit a prospective smart contract;
executing a smart contracts auditing model;
extracting raw data from at least one blockchain using the smart contracts auditing model;
analyzing the raw data using at least two security analyzers;
aggregating outputs from the at least two security analyzers according to an aggregator; and
generating a smart contracts security report from the outputs as aggregated for the prospective smart contract, which includes a smart contracts security score,
wherein the at least two security analyzers analyze the raw data by parsing and classifying the raw data into one or more vulnerability categories,
wherein the smart contracts security report includes a visual breakdown of vulnerabilities in the prospective smart contract identified according to the one or more vulnerability categories,
wherein the smart contracts auditing model includes an applications module, and wherein the applications module is configured to communicate with at least one other module of the smart contracts auditing model using a workflow pipeline and a message broker,
wherein the smart contracts auditing model includes a data management module, wherein the data management module includes a relational database and a graph database, and wherein the data management module is configured to allow a user to query different smart contracts for analysis, and
wherein the smart contracts auditing model includes a data extraction module, wherein the data extraction module includes a metadata extractor, a disassembler, and a decompiler, wherein bytecode of metadata of extracted smart contracts is dissembled by the disassembler and decompiled by the decompiler resulting in an intermediary representation that is human-readable.
7 . The method of claim 6 , wherein the raw data extracted from the at least one blockchain include code and state data for at least one other smart contract stored in the at least one blockchain.
8 . The method of claim 6 , wherein the one or more vulnerability categories include:
reentrancy;
timestamp dependencies;
integer overflow;
integer underflow;
uncheck call return values;
arithmetic issues; and
inclusion of parity wallets.
9 . The method of claim 6 , wherein each identified vulnerability is weighted according to a severity for an associated vulnerability category to generate the smart contracts security score.
10 . The method of claim 6 , wherein the prospective smart contract is not yet deployed in the at least one blockchain.
11 . A non-transitory computer readable storage device including instructions that, when executed by a processor, perform operations including:
receiving a request to audit a prospective smart contract;
executing a smart contracts auditing model;
extracting raw data from at least one blockchain using the smart contracts auditing model;
analyzing the raw data using at least two security analyzers;
aggregating outputs from the at least two security analyzers according to an aggregator; and
generating a smart contracts security report from the outputs as aggregated for the prospective smart contract, which includes a smart contracts security score,
wherein the at least two security analyzers analyze the raw data by parsing and classifying the raw data into one or more vulnerability categories,
wherein the smart contracts security report includes a visual breakdown of vulnerabilities identified from the prospective smart contract according to the one or more vulnerability categories,
wherein the smart contracts auditing model includes an applications module, and wherein the applications module is configured to communicate with at least one other module of the smart contracts auditing model using a workflow pipeline and a message broker,
wherein the smart contracts auditing model includes a data management module, wherein the data management module includes a relational database and a graph database, and wherein the data management module is configured to allow a user to query different smart contracts for analysis, and
wherein the smart contracts auditing model includes a data extraction module, wherein the data extraction module includes a metadata extractor, a disassembler, and a decompiler, wherein bytecode of metadata of extracted smart contracts is dissembled by the disassembler and decompiled by the decompiler resulting in an intermediary representation that is human-readable.
12 . The device of claim 11 , wherein the raw data extracted from the at least one blockchain include code and state data for at least one other smart contract stored in the at least one blockchain.
13 . The device of claim 11 , wherein the one or more vulnerability categories include:
reentrancy;
timestamp dependencies;
integer overflow;
integer underflow;
uncheck call return values;
arithmetic issues; and
inclusion of parity wallets.
14 . The device of claim 11 , wherein each identified vulnerability is weighted according to a severity for an associated vulnerability category to generate the smart contracts security score.