Technical Whitepaper v2.1 β€” Mainnet
PoLM β€” Proof of Legacy Memory
polm.com.br Β· @polmram Β· @aluisiofer
"Mine with any RAM. Latency is truth."

PoLM (Proof of Legacy Memory) is a Proof-of-Work consensus algorithm where the primary bottleneck is real DRAM access latency β€” a physical property that cannot be miniaturized, parallelized, or replicated in ASIC silicon.

Unlike SHA-256 (compute-bound) or Ethash (VRAM bandwidth-bound), PoLM is latency-bound: the time to complete one unit of work is dominated by how long it takes to read random bytes from RAM.

score = 1.0 (fixed β€” telemetry only)
No boost multiplier. No penalty. No artificial favoritism by RAM type.

Every generation β€” DDR2, DDR3, DDR4, DDR5 β€” mines honestly based on its physical latency characteristics. Slower RAM scores higher per nonce; faster RAM compensates with higher nonce throughput. The network needs both.

Mining rewards are bridged to Polygon as an ERC-20 token (0x79175931C54c9765E5846229a0eB118ef24fdE55), claimable at polm.com.br/claim.

Version 2.1
Network Mainnet Live
License MIT
Chain ID 137 (Polygon)
Β§ 01

Project Information

FieldValue
Project namePoLM β€” Proof of Legacy Memory
SymbolPOLM
Version2.0.0
Websitepolm.com.br
Explorerpolm.com.br/explorer.html
Claim rewardspolm.com.br/claim
Twitter@polmram
FounderAluΓ­sio Fernandes β€” @aluisiofer
RepositoryGitHub β†—
LicenseMIT
Statusβœ“ Mainnet Live
ERC-20 Contract0x79175931C54c9765E5846229a0eB118ef24fdE55
Oracle wallet0xcD128d1112Bbb44D61f0557a375E512f14856c93
Β§ 02

Objectives

  • β†’ Support any RAM generation β€” DDR2 through DDR5 and beyond
  • β†’ Be fully decentralized β€” no central authority, no pool required
  • β†’ Resist ASICs naturally via DRAM physics
  • β†’ Drive a new hardware upgrade cycle through epoch-based DAG growth
  • β†’ Maintain honest competition across all RAM generations
  • β†’ Create a new hardware market by Epoch 7 (1 TB RAM arrays)
Β§ 03

Protocol Parameters

Block Time120 seconds
Difficulty Window144 blocks
Difficulty ClampΒ±25% per window
Epoch Length100,000 blocks
Initial Reward50.0 POLM
Max Supply210,000,000
Hash AlgorithmSHA3-256
Score Formula1 / latency_ns
DAG (Epoch 0)256 MB
DAG Growthdoubles / epoch
Walk Steps100,000 / nonce
Max Threads4 / miner
Β§ 04

Network Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           Full Nodes (Consensus)             β”‚
β”‚  Validate blocks Β· Store chain Β· REST API    β”‚
β”‚  polm.com.br/api/                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
        β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β–Ό                     β–Ό
  Mining Clients         Polygon Oracle
  (CLI / GUI)            (ECDSA bridge)
        β”‚                     β”‚
DDR2Β·DDR3Β·DDR4Β·DDR5     ERC-20 POLM token
   Any RAM mines         polm.com.br/claim
Β§ 05

PoLM Algorithm

Flow

1. Generate Memory DAG (256 MB in Epoch 0, seeded from epoch + prev_hash)
2. Initialize hash from: prev_hash + miner_address + nonce
3. Execute random memory walk (1,000 steps)
4. Measure average access latency (ns)
5. Compute score = 1.0 (fixed β€” telemetry only)
6. Validate: block_hash must start with "0" Γ— difficulty

Memory Walk

h   = sha3_256(f"{prev_hash}:{address}:{nonce}".encode())
pos = int.from_bytes(h[:8], 'little') % dag_size

for step in range(100_000):
    mem = DAG[pos : pos+32]           # random DRAM read
    h   = sha3_256(h + mem)           # hash chain
    pos = int.from_bytes(h[:8], 'little') % dag_size

avg_latency = total_ns / 100_000
score       = 1.0 / avg_latency
final_hash  = h

Properties: Unpredictable access pattern (CPU prefetch cannot help) Β· Sequential dependency (cannot parallelize steps) Β· Cache-defeating (256 MB DAG > all L1/L2/L3) Β· Tamper-proof (latency embedded in block header)

Β§ 06

Score Formula

score = 1.0 (fixed β€” telemetry only)
This is the complete formula. No multipliers. No lookup tables. No penalties.

Why this is fair

RAMAvg LatencyScore/nonceNonces/secResult
DDR2~3800 nsHighLowHigh score per nonce
DDR3~2000 nsMediumMediumBalanced
DDR4~1200 nsLowerHigherMore nonces
DDR5~600 nsLowestHighestMaximum throughput
Β§ 07

Difficulty Adjustment

expected_time = 144 Γ— 120 = 17,280 seconds
actual_time   = Ξ”t of last 144 blocks

ratio = clamp(0.75, 1.25, expected_time / actual_time)
D_new = D_old Γ— ratio

Adjusts every 144 blocks. Maximum Β±25% change per window prevents oscillation. Target: one block every 2 minutes.

Β§ 08

Memory DAG

dag_seed = sha3_256("polm:" + str(epoch) + ":" + prev_hash[:32])
dag_size = 256 * (2 ** epoch)  # MB β€” doubles each epoch

The DAG doubles each epoch. This prevents caching across epochs and increases RAM requirements over time β€” the core mechanism driving hardware evolution.

Β§ 09

Epoch Schedule

epoch  = height // 100_000
reward = 50.0 / (2 ** epoch)
EpochBlocks~DaysDAGMin RAMRewardWho mines?
NOW 0 0–100k~138d256 MB4 GB 50 POLMAny PC with 4 GB+ RAM
1100k–200k~138d512 MB8 GB25 POLMMost modern PCs
2200k–300k~138d1 GB16 GB12.5 POLMGaming PCs
3300k–400k~138d2 GB32 GB6.25 POLMWorkstations
4400k–500k~138d4 GB64 GB3.125 POLMHigh-end PCs
5500k–600k~138d8 GB128 GB1.5625 POLMServers
6600k–700k~138d16 GB256 GB0.781 POLMDedicated RAM rigs
7 ⚑700k–800k~138d32 GB512 GB0.390 POLMRAM mining boards
8+ 🏭800k+β€”64 GB+2 TB+0.195 POLMNew hardware industry

⚑ Epoch 0 is the most accessible window. Any machine with 4 GB+ RAM β€” DDR2 to DDR5 β€” can mine today.

Β§ 10

Block Validation Rules

A block is valid if ALL of the following hold:

1. block_hash starts with "0" Γ— difficulty
2. block_hash == sha3_256(all_header_fields)
3. height == chain.tip.height + 1
4. prev_hash == chain.tip.block_hash
5. latency_ns >= 5  (anti-cache-exploit)
6. reward == 50.0 / (2 ** epoch)  (epoch halving enforced)
7. timestamp <= now + 120  (Β±2 min tolerance)
8. ram_size_mb >= MIN_RAM_MB[epoch]
Β§ 11

Transactions

Transaction format

tx_id     = sha3_256(signing_bytes + signature)
signing   = "sender:receiver:amount:fee:timestamp:memo"
signature = ECDSA secp256k1

Transaction validation

1. amount > 0
2. fee >= 0.0001 POLM
3. sender.balance >= amount + fee
4. signature valid (ECDSA secp256k1)
5. not already confirmed
6. addresses start with "POLM"
Β§ 12

Wallet Standard

ParameterValue
HD walletBIP-39 / BIP-44
Mnemonic12 words
Derivation pathm/44'/7070'/account'/0/index
Address prefixPOLM
SignatureECDSA secp256k1
Coin typeSLIP-44 #7070
Β§ 13

Polygon Bridge & Oracle

1. Miner submits block β†’ PoLM node validates
2. Oracle signs block data with ECDSA secp256k1
3. Oracle submits signed batch to Polygon smart contract
4. Miner claims ERC-20 POLM at polm.com.br/claim (fee: 0.5 MATIC)
ParameterValue
NetworkPolygon PoS (Chain ID 137)
Contract0x79175931C54c9765E5846229a0eB118ef24fdE55
Oracle0xcD128d1112Bbb44D61f0557a375E512f14856c93
Claim fee0.5 MATIC
VerificationSourcify βœ… Blockscout βœ…
Β§ 14

Security Model

βš™ ASIC Attack
256 MB+ DAG with latency-hard sequential walk. DRAM physics cannot be miniaturized in silicon.
βœ“ PHYSICS-ENFORCED
πŸ–₯ GPU Mining
GDDR latency β‰₯ DDR latency. 1K-step dependency chain prevents parallelism.
βœ“ NO ADVANTAGE
⚑ Cache Exploit
L3 Eviction forces real DRAM access auto-rejected. 256 MB DAG exceeds L3 on all consumer CPUs.
βœ“ AUTO-REJECTED
πŸ” Fake RAM Type
Score measures real latency. Hardware auto-detected from OS. Network validates plausibility.
βœ“ INDEPENDENTLY VALIDATED
πŸ” Oracle Fraud
ECDSA signature required on every block. No valid signature = no POLM minted on Polygon.
βœ“ ECDSA SIGNED
πŸ”’ Founder Rug Pull
10,500,000 POLM (5%) locked 5,256,000 blocks (~5 years) in immutable Polygon contract.
βœ“ ON-CHAIN LOCKED

ASIC gap: DDR2 (~3800ns) vs DDR5 (~600ns) = ~6Γ—. SHA-256 ASICs are 100,000Γ— faster than CPUs. PoLM's physical constraint means custom silicon has no useful advantage.

Β§ 15

Economics

SymbolPOLM
Max supply210,000,000
Block reward (Epoch 0)50 POLM
Block time2 minutes
Halvingevery 100k blocks
Pre-mine / ICONone

Emission Schedule

EpochReward~POLM minted
NOW 050 POLM5,000,000
125 POLM2,500,000
212.5 POLM1,250,000
36.25 POLM625,000
43.125 POLM312,500
…halvingβ†’ 210M total

Full supply takes 30+ years to mine completely. Emission is predictable and manipulation-resistant.

95% community mining Β· 5% founder (locked 5yr) Β· No pre-mine Β· No ICO Β· No VCs

Β§ 16

Founder Allocation

ParameterValue
FounderAluΓ­sio Fernandes (@aluisiofer)
Allocation10,500,000 POLM (5% of max supply)
Lock period5,256,000 blocks (~5 years)
AddressPOLMD872771E5F0017C5B5C08D353B5E7B4B

Enforced at consensus level β€” no transaction from the founder address is valid before the lock expires:

if tx.sender == FOUNDER_ADDRESS:
    assert current_height >= GENESIS_HEIGHT + 5_256_000
Β§ 17

REST API

EndpointMethodDescription
/api/GETNode status + chain summary
/api/getworkGETMining job
/api/submitPOSTSubmit mined block
/api/tx/sendPOSTBroadcast transaction
/api/chainGETBlock list (?limit=N&offset=N)
/api/block/<h>GETBlock + transactions
/api/balance/<addr>GETAddress balance
/api/minersGETMining leaderboard
/api/register_evmPOSTRegister Polygon wallet
/api/peersGETConnected peers
Β§ 18

Technology Stack

ComponentTechnology
Full NodePython + Flask
CLI MinerPython (no dependencies) Β· auto-update
GUI MinerPython + Tkinter
ExplorerPython + Flask (v3.0.0)
WalletPython + HTML/JS (BIP-39/BIP-44)
OraclePython + web3.py (ECDSA bridge)
Smart ContractSolidity (Polygon PoS)
DatabaseJSON (chain) + SQLite (oracle state)
APIREST / JSON
Β§ 19

Miner Quick Start

πŸͺŸ Windows (PowerShell)

# Install Python 3.11
winget install Python.Python.3.11

# Download miner
mkdir $env:USERPROFILE\polm
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/proof-of-legacy/Proof-of-Legacy-Memory/main/polm_miner_cli.py" -OutFile "$env:USERPROFILE\polm\miner.py"

# Run
python $env:USERPROFILE\polm\miner.py

🐧 Linux / macOS

curl -O https://raw.githubusercontent.com/proof-of-legacy/Proof-of-Legacy-Memory/main/polm_miner_cli.py
python3 polm_miner_cli.py

The miner auto-updates on every run. On first run: generates 12-word BIP-39 wallet, registers Polygon address, starts mining immediately.

Β§ 20

Roadmap

  • βœ“v1.0 β€” PoLM algorithm designed and tested
  • βœ“v1.2 β€” Mainnet infrastructure Β· polm.com.br
  • βœ“v2.0 β€” Pure latency consensus Β· any RAM mines Β· epoch halving
  • βœ“CLI miner β€” no dependencies Β· Windows & Linux Β· auto-update (v1.5.4)
  • βœ“GUI miner β€” Windows / Linux / macOS
  • βœ“Oracle ECDSA β€” auto-sustaining Polygon bridge
  • βœ“Claim page β€” polm.com.br/claim
  • βœ“CPU / OS detection in explorer leaderboard
  • β—‹Mining pool β€” for slow computers
  • β—‹QuickSwap DEX listing (Polygon)
  • β—‹CoinGecko / CoinMarketCap listing
  • β—‹CEX listing
  • β—‹Epoch 7 β€” 1 TB RAM mining arrays (new hardware market)
Β§ 21

Conclusion

PoLM introduces a fundamentally new class of Proof-of-Work grounded in DRAM physics. By making latency β€” not compute power β€” the bottleneck:

  • 01Any RAM mines β€” DDR2 through DDR5, all generations participate honestly
  • 02No artificial rules β€” DAA LWMA Β· score = 1.0 fixed, nothing else
  • 03ASIC-resistant by physics β€” DRAM latency cannot be engineered away
  • 04Hardware evolution built-in β€” epochs force RAM upgrade cycles, creating a new industry by Epoch 7
  • 05Truly decentralized β€” any PC with 4 GB+ RAM mines in Epoch 0
  • 06Polygon bridge live β€” mine natively, claim ERC-20 POLM on Polygon

PoLM is experimental software. Not financial advice.