Skip to content

Repository files navigation

Entropy Analysis of Smart Contracts EVM opcodes

entropy.pycalculates number of occurrences of each mnemonic in the contracts from the contracts/ folder. There are 50 contracts taken from etherescan.io. Before running the script make sure you installed the EVM disassembler, you can do that using pip install pyevmasm. At operations that have a dynamic gas cost (a formula calculating it) their minimum was taken. opcode-gas-costs.csv was taken from https://github.com/djrtwo/evm-opcode-gas-costs/blob/master/opcode-gas-costs_EIP-150_revision-1e18248_2017-04-12.csv and modified according to the needs.

#Results:

MnemonicsOccurencesGas CostGas SpentOcc. per Contract
PUSH111846433553922369.28
PUSH2489633146889979.26
SWAP1481653144495963.3
DUP1475233142569950.46
POP44334288668886.68
DUP2400023120006800.04
ADD383733115119767.46
JUMPDEST33591133591671.82
MSTORE29046387138580.92
AND21474364422429.48
MLOAD20520361560410.4
ISZERO20154360462403.08
JUMPI2004910200490400.98
SWAP219059357177381.18
DUP318066354198361.32
JUMP160898128712321.78
SUB12885338655257.7
SLOAD116762002335200233.52
REVERT1100100220.02
DUP410815332445216.3
PUSH2010080330240201.6
STOP839400167.88
PUSH48229324687164.58
SWAP37530322590150.6
SHA3608730182610121.74
EQ5373316119107.46
MUL5067525335101.34
SHL5010315030100.2
SSTORE488450002442000097.68
LT460231380692.04
DUP5442831328488.56
DIV398151990579.62
PUSH3389731169177.94
CALLDATALOAD367231101673.44
EXP3633103633072.66
INVALID33510067.02
RETURNDATASIZE31022620462.04
PUSH3228053841556.1
DUP627933837955.86
GT27273818154.54
CALLVALUE26462529252.92
CALLER24782495649.56
NOT24063721848.12
SWAP421483644442.96
OR20643619241.28
DUP720013600340.02
RETURN18570037.14
DUP817583527435.16
CALLDATASIZE15482309630.96
EXTCODESIZE117070081900023.4
CODECOPY11672233423.34
GAS11672233423.34
RETURNDATACOPY11493344722.98
DUP910203306020.4
CALL909ComplexN\A18.18
SWAP59033270918.06
DUP107833234915.66
ADDRESS6512130213.02
SWAP65673170111.34
LOG3525150078750010.5
PUSH5447313418.94
DUP11435313058.7
TIMESTAMP41128228.22
STATICCALL39040156007.8
SHR32739816.54
PUSH830339096.06
PUSH2930039006.0
DUP1228538555.7
CALLDATACOPY28525705.7
LOG12767502070005.52
LOG226711253003755.34
PUSH1625237565.04
PUSH621036304.2
SLT19235763.84
SWAP718635583.72
SWAP817435223.48
XOR16534953.3
PUSH716234863.24
PUSH2114434322.88
MOD14457202.88
NUMBER14122822.82
PUSH1913834142.76
PUSH1513834142.76
ORIGIN13522702.7
DUP1313534052.7
GASPRICE12922582.58
DUP1412633782.52
GASLIMIT9621921.92
CODESIZE9621921.92
PUSH227832341.56
PUSH287832341.56
DUP157832341.56
SWAP97532251.5
BALANCE75400300001.5
SWAP137232161.44
SDIV6653301.32
PUSH276331891.26
MSTORE86331891.26
SWAP116331891.26
SWAP106331891.26
PUSH126031801.2
GETPC6021201.2
PUSH106031801.2
PUSH95131531.02
DELEGATECALL51ComplexN\A1.02
PUSH134831440.96
PUSH174831440.96
PUSH244831440.96
BLOCKHASH42208400.84
DUP164231260.84
LOG4421875787500.84
PUSH254231260.84
DIFFICULTY392780.78
PUSH183631080.72
CREATE2363200011520000.72
CREATE333200010560000.66
SAR333990.66
SWAP12333990.66
SWAP14303900.6
PUSH14303900.6
MSIZE272540.54
PUSH11273810.54
PUSH26213630.42
SIGNEXTEND2151050.42
SGT213630.42
PUSH31213630.42
ADDMOD1881440.36
BYTE183540.36
LOG01837567500.36
SMOD185900.36
SELFDESTRUCT18250004500000.36
COINBASE182360.36
PUSH23183540.36
MULMOD1581200.3
EXTCODEHASH15700105000.3
SWAP16153450.3
PUSH30123360.24
EXTCODECOPY970063000.18
CALLCODE9ComplexN\A0.18
SWAP153390.06

About

Entropy Analysis of Smart Contracts EVM opcodes

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages