Skip to main content

Namen

EntropyOracle periodično zapisuje naključnost, pridobljeno iz PulseChain validatorjev prek block.prevrandao. Vsak zapis je shranjen z entropyHash, iz katerega se izračuna nonce, uporabljen pri gradnji commitmenta za mint.

Kako deluje

  • Oracle servis (Node.js, ethers v6) teče 24/7 na Railwayju.
  • Mainnet: commit približno vsakih ~2500 blokov.
  • Testnet: commit približno vsakih ~50 blokov.
  • GitHub → Railway samodejni redeploy ob push na main.

Izračun nonce

// r_field = BN254 scalar field
const r_field = 21888242871839275222246405745257275088548364400416034343698204186575808495617n;
const nonce = BigInt(rec.entropyHash) % r_field;

Commitment

Commitment, ki ga registrira UORS in ga stranka dokaže z ZK, je:
commitment = Poseidon2([pk, nonce])
kjer je pk zasebni ključ, izpeljan iz 6 besed (wordsToPrivateKey), nonce pa izhaja iz zadnjega oracle zapisa.
Če RPC vrne null za blok (Cannot read properties of null (reading 'prevRandao')), oracle samodejno nadaljuje — to ni kritično.