← Back
Home › Systems › Blockchain and web3

smart-contract-vm

smart contract VM

EVM

SystemTechniques · 17Primitives · 40 smart-contract-vm JIT compilationcompilers · medium: Run cold code in a cheap tier, count executions, and compile only what gets hot, trading warm-up time and memory for peak speed.›Merkle patricia triedata-structures · medium: Hex-ary Patricia trie with hashed nodes giving state roots and inclusion proofsModel checking and formal proofembedded · medium: Exhaustively explore a model's reachable states (or prove its invariants with a solver or proof assistant) to find rule violations with a shortest counterexample trace.›Pairing based cryptographysecurity · medium: Bilinear pairings on BN254/BLS12-381 curves: Miller loop and final exponentiationLSM-treestorage · medium: Buffer writes in memory, flush them as immutable sorted files and merge in the background; turns random writes into sequential I/O.›Deoptimizationcompilers · medium: Speculate with guards, and on failure rebuild the slow-tier frames from compile-time metadata and resume there, so optimized code may assume the common case.›Inline cachescompilers · medium: Per-call-site cache of "this object shape, that slot or target", turning dynamic property and method lookup into a compare and a load.›Bytecode interpretercompilers · low: Register/stack VM dispatch loop for executing compiled plans or rules (SQLite VDBE, nftables)Deterministic serializationfinance · low: Canonical byte encodings (RLP, SSZ, canonical CBOR) so every node hashes identical bytesKeccak sha3security · low: Keccak sponge (SHA-3, Keccak-256) permutation, padding and absorb/squeezeBig integer arithmeticnumerics · low: Multi-limb integer arithmetic (256-bit and up): carries, Karatsuba, Montgomery and Barrett reductionElliptic curve arithmeticsecurity · low: Point addition, doubling and constant-time scalar multiplication in projective coordinatesArena allocatorsystems · low: Allocate by bumping a pointer through big chunks and free everything at once: a few instructions per allocation for objects sharing a lifetime.›Instruction meteringcompilers · low: Charge a fuel budget per instruction or per basic block and trap at zero, so untrusted code is bounded by work done, deterministically.›ECDSA signaturessecurity · low: The elliptic-curve signature standardised in FIPS 186-5 (P-256) and used by secp256k1 ledgers; 64-byte signatures, but a repeated or biased nonce leaks the private key.›Journaled state revertstorage · low: Undo journal of state writes enabling nested checkpoints and cheap revertLRU and CLOCKsystems · low: LRU evicts the least recently used entry via hash map plus linked list; CLOCK approximates it with a reference bit, so hits take no lock.›Executable memory under W^Xcompilers · low: How JITs and code generators emit machine code under W^X: RW to RX flips, dual mappings, per-thread write toggles, and the instruction-cache flush.›Machine code emissioncompilers · low: Encode instructions to bytes for x86-64 and AArch64, branch relaxation, constant poolsSSA formcompilers · low: Give every variable exactly one definition, merging at joins with phi functions; def-use becomes explicit and optimizations turn sparse and cheap.›Merkle treedata-structures · low: Hash tree for verifying and diffing large datasets with logarithmic proofsRadix triedata-structures · low: Compressed prefix tree for path routing, domain matching and prefix lookupsSwiss tabledata-structures · low: Open-addressing hash table that filters 8-16 slots at once with 1-byte hash tags and SIMD, giving fast lookups at 87.5 % load.›+ 10 more techniques+ 24 more primitives

Similar systems

Share the most building blocks with this one.