blobrand.

entropy from desktop chaos
scientists dream of potentialities.
engineers prototype final solutions.
artists hold both at once.

protocol

wire format: 8 bytes. big-endian uint64. UDP port 37373. that is the entire spec.

every second, the capacitor mixes all contributions with /dev/urandom into a SHA-256 chain. each epoch produces a new hash of everything before it. your contribution changes what everyone else derives next — and what this page suggests next.

self-referential entropy

the commands below derive from three independent sources mixed at the moment of each epoch:

  1. chain state — the cumulative SHA-256 of every value ever mixed, updated each second
  2. session secret — 32 bytes from crypto.getRandomValues, unique to this browser tab, never transmitted
  3. timestamp — millisecond-precision wall clock at derivation time

SHA-256(chain + session + time + counter) produces each value. when you contribute one, it mixes into the next epoch, which changes the chain, which changes what this page derives, which if contributed again creates a cascade. the old values cease to exist. the rate limiter (3/sec) prevents flooding — you contribute, you watch, you contribute again with fresh data.

this proves the chain accepts self-referential input safely. derived values carry entropy from all three sources. even two browsers viewing the same page derive completely different values. the chain cannot degenerate because /dev/urandom mixes into every epoch regardless.

contribute

copy a command, paste into a terminal. watch the chain advance. your old command vanishes, replaced by one derived from the new chain state + your session + the current time.


    

    

    

consume

stream entropy via server-sent events:

curl -N https://blobrand.com/entropy/stream

poll the current chain state:

curl https://blobrand.com/entropy/chain

check pool health:

curl https://blobrand.com/entropy/status | python3 -m json.tool

automate

run deskblob to harvest entropy from desktop chaos continuously:

cd ~/git/deskblob && make run-capacitor

or feed /dev/urandom into the pool (single socket, one contributor ID):

python3 -uc "import socket,time,os,sys;s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM);n=0
while True:b=os.urandom(8);s.sendto(b,('blobrand.com',37373));n+=1;sys.stdout.write('\r#'+str(n)+' '+b.hex());sys.stdout.flush();time.sleep(1)"
live entropy stream
copied to clipboard