Skip to content

Instantly share code, notes, and snippets.

View chfast's full-sized avatar

Paweł Bylica chfast

View GitHub Profile
@chfast
chfast / chunked_bytecodes_analysis.txt
Last active May 7, 2024 08:30
Chunking analysis of the top 1000 bytecodes
/home/chfast/Projects/ethereum/eof/venv/bin/python /home/chfast/Projects/ethereum/eof/analysis/malicious_bytes_analysis.py
1000
0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2, 3124, 98:
37, 4, []
49, 12, []
50, 14, []
87, 13, []
0x00001bea43608c5ee487f82b773af8bd7cb20a6f, 11293, 353:
302, 0, []
303, 30, []
@chfast
chfast / JUMPDEST_n0.bin-runtime
Created February 10, 2022 17:27
PUSH0 synthetic benchmarks
7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b
@chfast
chfast / ethereum_priv2address_openssl.cpp
Created January 26, 2022 20:38
How to compute Ethereum address from EC private key using OpenSSL
#include <ethash/keccak.hpp>
#include <evmc/hex.hpp>
#include <openssl/ec.h>
#include <openssl/evp.h>
#include <iostream>
#include <dlfcn.h>
int main(int argc, const char* argv[])
@chfast
chfast / Keccak-simple.c
Created December 10, 2020 09:55
Keccak "simple" C implementation
/*
The Keccak sponge function, designed by Guido Bertoni, Joan Daemen,
Michaël Peeters and Gilles Van Assche. For more information, feedback or
questions, please refer to our website: http://keccak.noekeon.org/
Implementation by Ronny Van Keer,
hereby denoted as "the implementer".
To the extent possible under law, the implementer has waived all copyright
and related or neighboring rights to the source code in this file.
@chfast
chfast / evm384_synthetic_benchmark_bytecodes.md
Created December 4, 2020 10:44
EVM384 synthetic benchmarks bytecodes
PUSH16/min_stack:
60ff5b6f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f0000000000000000000000
@chfast
chfast / EIP2537_benchmark_results.txt
Last active November 24, 2020 18:11
EVM384v7 benchmark results
> ./run_benchmark.sh
Finished bench [optimized] target(s) in 0.04s
Running target/release/deps/eth_pairings-69a4e69246dcf782
running 9 tests
test bench::eip_2537::bench_eip_2537_g1_add ... bench: 5,702 ns/iter (+/- 180)
test bench::eip_2537::bench_eip_2537_g1_double ... bench: 5,815 ns/iter (+/- 398)
test bench::eip_2537::bench_eip_2537_g1_mul_worst_case_double_and_add ... bench: 266,373 ns/iter (+/- 2,488)
test bench::eip_2537::bench_eip_2537_g2_add ... bench: 9,356 ns/iter (+/- 1,776)
@chfast
chfast / fizzy_05_performance_comparison.md
Last active September 29, 2020 09:55
Compare performance of Fizzy 0.5, WABT 1.0.12, WABT 1.0.19, wasm3 0.4.7

Instantiation

                         fizzy 0.5.0  fizzy 0.4.0   wabt 1.0.19  wasm3 0.4.7
                 abs. [µs]  rel. [%]     rel. [%]      rel. [%]     rel. [%]
geometric mean                   100          101           279           27
blake2b                 28       100           99           306           38
ecpairing             1399       100          101           305            3
keccak256               47       100          103           289           18
memset                  10       100          100           285           79
@chfast
chfast / results.md
Created September 15, 2020 20:30
Fizzy vs WABT and wasm3
[wasm3 vs. fizzy]/execute/blake2b/512_bytes_rounds_1_mean                     +3.0371         +3.0371            21            86            21            86
[wasm3 vs. fizzy]/execute/blake2b/512_bytes_rounds_16_mean                    +2.9860         +2.9860           328          1309           328          1309
[wasm3 vs. fizzy]/execute/ecpairing/onepoint_mean                             +1.7467         +1.7466        161430        443391        161431        443395
[wasm3 vs. fizzy]/execute/keccak256/512_bytes_rounds_1_mean                   +4.9237         +4.9237            18           105            18           105
[wasm3 vs. fizzy]/execute/keccak256/512_bytes_rounds_16_mean                  +4.9273         +4.9273           261          1549           261          1549
[wasm3 vs. fizzy]/execute/memset/256_bytes_mean                               +2.9192         +2.9192             2             7             2             7
[wasm3 vs. fizzy]/execute/memset/60000_bytes_mean                       
@chfast
chfast / fizzy_0.1_to_0.2.txt
Created July 7, 2020 18:17
Comparing performance of Fizzy 0.1 to 0.2
Comparing Fizzy 0.1 to 0.2
Benchmark CPU Time [µs] Old New
----------------------------------------------------------------------------
fizzy/parse/blake2b +0.1637 12 14
fizzy/instantiate/blake2b +0.1793 16 19
fizzy/parse/ecpairing +0.1551 681 786
fizzy/instantiate/ecpairing +0.1352 730 828
fizzy/parse/keccak256 +0.2674 20 26
fizzy/instantiate/keccak256 +0.2974 24 31
@chfast
chfast / benchmark_results.txt
Created June 23, 2020 08:14
Quick check of evmone performance 0.1.1 vs 0.4.1 and GCC-7 vs GCC-10
Comparing v0.1.1/gcc-7 to v0.1.1/gcc-10
Benchmark Time CPU Time Old Time New CPU Old CPU New
------------------------------------------------------------------------------------------------------------------------------
blake2b_huff/8415nulls_mean -0.0278 -0.0278 1502 1460 1502 1460
blake2b_shifts/8415nulls_mean -0.0415 -0.0415 23791 22804 23790 22803
Comparing v0.1.1/gcc-10 to v0.4.1/gcc-10
Benchmark Time CPU Time Old Time New CPU Old CPU New
------------------------------------------------------------------------------------------------------------------------------