Inspiration Graph
2. Inspiration Graph: Technical Data Model
2.1 Graph Representation
The Inspiration Graph is formalized as a Directed Acyclic Graph (DAG):
π (Nodes) β Canonical, unique representations of minted creative works.
Canonicalization β Performed via Keccak-256 hashing of normalized metadata.
Identity =
id = Keccak256(IPFS_CID || creatorAddress || timestamp)
π (Edges) β Directed inspiration links:
Each edge must be cryptographically provable via commitment to an onchain zk-SNARK proof.
Acyclic Constraint β Cycles invalid β enforced at verification level to prevent infinite recursive payouts.
2.2 Node Metadata Schema (EVM-Indexed)
Solidity-Friendly Metadata Schema (Struct):
struct InspirationNode {
bytes32 id; // keccak256(IPFS || creator || timestamp)
address creator; // EOA or contract
bytes32 parent; // Parent node hash (0x0 for originals)
uint8 depth; // Depth in DAG
bytes32 proofHash; // Commitment to zkProof onchain/offchain
bool declaredInspiration; // Explicit declaration
uint16 royaltyShareBP; // Basis points (e.g., 500 = 5%)
uint256 timestamp; // Unix epoch
}
Gas Optimizations:
uint8
,uint16
, and packing for efficient storage.Canonicalization Contract β Optional pre-deployment content integrity check.
2.3 Proof Integrity and Verification System
a) zkProof System Design
proofHash
β SHA256 commitment of zkSNARK output.zk Circuit β Takes as inputs:
β Computes a proof of derivation where:
parent_hash
β Keccak256 of parent contentchild_CID
β IPFS CID (content address)salt
β Random nonce for uniqueness in commitments
Zero-Knowledge Privacy β The content of derivation is hidden; only the proof verifies cryptographically that derivation took place from parent to child.
b) Advanced zkML Proofs (Future Planned)
zkML Integration (WIP) β Use zkSNARKs to encode style similarity or content feature extraction.
Example circuits β ResNet embeddings, audio fingerprints, or text semantic embeddings.
Prove βinspiration proximityβ in latent feature spaces without revealing actual embeddings.
Input β Embedding(child) - Embedding(parent) β zk circuit β β€ threshold β Proof
c) Onchain Verification Pipeline:
1. submitProof(bytes calldata proof, bytes32 parent, bytes32 child)
2. zkVerifier.verify(proof, parent, child) β returns (bool)
3. emit InspirationProven(child, parent, msg.sender)
Verifier Contract β Modular, supports circuit upgrades.
Proof Hash Storage β Immutable commitment β protects against forgery or post-hoc manipulation.
Last updated