{"assessments":[],"deployments":[],"fuzz":[],"identity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"interpretation":"Records acceptance and evidence. Neither completion nor an AI assessment establishes correctness, safety, or independent review.","jobId":"f6c0de54-0dab-4c48-bcae-c689bb740fb4","kind":"skill:research-report","nodes":[{"acceptedSubmissionHash":"8f1c38a139e028961643a34a4ca8563de9e1fb36677ae2d71c892efcda53edff","dependsOn":[],"execution":{"network":true,"profile":"none","requires":["network"],"skillHash":"3ddca93330036359dd721585e58e67820336a0398b7927b3c89369d6134f30f6","skillId":"research-report","tools":[]},"key":"research_report","kind":"code","role":"implement","skillHash":"3ddca93330036359dd721585e58e67820336a0398b7927b3c89369d6134f30f6","skillId":"research-report","state":"accepted"}],"objective":"Repository: https://github.com/Bradymck/imd-beacon (read docs/PLAN.md on the main branch first; it is the project brief).\n\nWrite the specification for imd-beacon: a decentralized, unbiasable, publicly verifiable randomness beacon whose signers are IMD seats (identity.md NFT holders running IMD workers, registered as ERC-8004 agents). Read docs/PLAN.md in the repository first; it is the brief. The output replaces its \"Draft design\" section and becomes the contract every later build job is checked against.\n\nDeliver one Markdown document with these sections:\n\n1. Requirements. Unpredictability, unbiasability, public verifiability, liveness, open membership gated by IMD seats, EVM verifiability on Ethereum, Base and Robinhood Chain (chain id 4663). State each as a testable property.\n\n2. Prior art, with citations. Compare drand / League of Entropy (chained vs unchained, quicknet, evmnet), Pyth Entropy, Chainlink VRF, RANDAO and prevrandao bias, Supra dVRF, and any other threshold-BLS beacon you find. For each: trust model, failure modes, what imd-beacon should copy and what it must avoid. Prefer primary sources: papers, specs, audited repositories.\n\n3. Threat model. Adversaries: colluding seat holders, one operator holding many seats, offline members, malicious relayers, consumers trying to grind outcomes, chain reorgs, key compromise, seat NFT transfers mid-epoch. For each, state the protocol behaviour.\n\n4. Cryptographic design. Choose the curve and signature scheme: BN254 (precompiles on every EVM chain, drand evmnet) versus BLS12-381 (EIP-2537). Verify precompile availability per target chain with sources, and give gas estimates for one round verification. Specify hash-to-curve, message format (round number, domain separation), unchained rounds, and how randomness is derived from the group signature.\n\n5. Committee and threshold. Committee size N and threshold t with math: probability that an adversary controlling a given share of seats reaches t, or blocks liveness, when committees are sampled at random, for adversary shares of 10%, 20%, 33% and 40%. Recommend N and t. Specify committee sampling from the previous beacon output, the bootstrap for the first epoch, and epoch length.\n\n6. Key setup and handover. Choose the DKG (Pedersen / joint-Feldman with complaints, or a cited alternative) and the resharing protocol that keeps the group public key across epochs. Specify the phases, timeouts, the complaint and disqualification rules, and what happens when a DKG fails.\n\n7. Membership registry. On-chain registration of beacon keys with proof of possession, binding to the seat (NFT owner and ERC-8004 agent id), handling of transfers, and deregistration.\n\n8. Rounds and relaying. Round period, partial signature gossip (libp2p or a cited alternative), aggregation, permissionless relaying to chain, relayer fee, and the consumer pattern: commit to a future round, then read the verified value.\n\n9. Incentives. Rewards for signers whose partials are used, relayer fees, paid in IMD; whether a bond is needed and why. Keep this minimal and justify every mechanism against the threat model.\n\n10. Implementation plan. Language and libraries for the node (Go or Rust; consider drand/kyber, blst, gnark-crypto), with licences and audit status. Repository layout. Then the build pieces in order: verifier contract, committee registry, DKG, rounds and relay, resharing and sampling, incentives, audit, testnet with a demo raffle or dice consumer. For each piece, write acceptance criteria concrete enough for a verifier to check: files, test names, properties, gas limits.\n\n11. Open questions, each with a recommended default.\n\nRules: cite every external claim. Do not invent cryptography. Where sources disagree, say so. Mark anything unverified as unverified. Keep it implementable by agents working one piece at a time.","parentJobId":null,"planHash":"47e958dd29f503ed55810b6f82c14b7b58a2b4f0af27d8dd1c46baa6d6c74e5c","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"f6c0de54-0dab-4c48-bcae-c689bb740fb4","publication":{"commit":null,"deliveredAt":null,"repoUrl":null},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"51103","feedbackHash":"23d536cbe7e603d81e359f3c225f74e60afadb3e331bf9a443a22c4adeaae6fc","nodeKey":"research_report","submissionHash":"8f1c38a139e028961643a34a4ca8563de9e1fb36677ae2d71c892efcda53edff","tag1":"verification:structural","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"7b17773fff1f8aaee60b51c137bd3f83bf702708a30df5111e537dc8a26d18ba","state":"completed","submissions":[{"artifacts":[{"bytes":96103,"hash":"be606585ecb765a77c8fce25680f58aa5a18180c00f811183f77181249f38dac","mediaType":"text/markdown","name":"report","path":"artifacts/report.md"}],"attempt":1,"bundleHash":"b2531d8cfc19f88aa8ebc974fa4425a0e51ebb556fac7be6683e819ac59a8ea1","device":"1166e337c95d6cb8","findings":[],"hash":"8f1c38a139e028961643a34a4ca8563de9e1fb36677ae2d71c892efcda53edff","nodeId":"5cb3d557-6878-4821-9409-caa58706b02b","outcome":"completed","summary":"Completed [the specification report](artifacts/report.md) and replaced PLAN’s draft with the canonical specification link.\n\nChecks passed for all eleven sections, report/spec byte identity, local links, committee-risk calculations, and 36 saved RPC observations. Audit status, deployment assumptions, and unmeasured gas estimates are explicitly qualified.","treeHash":"f64c0aed0455cf415ab2898b5fed10be7f7ee3ad","usage":{"cachedInputTokens":3718784,"inputTokens":201858,"model":null,"outputTokens":48461,"runtime":"codex","turns":8,"wallClockMs":1168612}}],"verification":[{"checks":[],"detail":"paths and tree verified; no suite was run for this kind of work","evaluation":"structural","profile":"none","status":"accepted","submissionHash":"8f1c38a139e028961643a34a4ca8563de9e1fb36677ae2d71c892efcda53edff","verifiedTreeHash":"f64c0aed0455cf415ab2898b5fed10be7f7ee3ad","verifierVersion":"0.1.0+f3653923"}]}