From Local AI to Ethereum: Building a Verifiable Knowledge Proof with MyZubster
Описание и применение
Автор создал цепочку от локальных AI‑экспериментов до публичного доказательства на Ethereum Sepolia, используя хеширование JSON‑payload и смарт‑контракт для проверки целостности.
Задача
Can the things I learn and build become verifiable evidence instead of just claims on a profile?
Результат
The author successfully linked local AI experiments to a verifiable on‑chain proof, demonstrating that a canonical payload can be hashed, stored, and verified on Ethereum Sepolia without private keys.
Рабочий процесс
- Set up Docker, Ollama, Qdrant, Open WebUI, and Python/Flask APIs for local RAG ingestion.
- Create a MyZubster Knowledge Card linking to GitHub evidence and local test descriptions.
- Generate a stable JSON representation of the Knowledge Card and compute its SHA‑256 digest.
- Deploy a Solidity contract on Ethereum Sepolia storing the digest as bytes32.
- Implement a Knowledge Proof Verifier that reads the payload, recomputes the hash, reads the on‑chain hash, and reports MATCH/NO_MATCH/ERROR.
- Iterate to Proof v3 with updated payload and redeploy contract.
- Integrate the Knowledge Card into the MyZubster Knowledge Graph and observe synchronization gaps.
- Analyze what a MATCH proves and plan next steps for graph sync and UX improvement.
Доказательства
I built and tested a proof‑of‑concept that connects local software experiments, GitHub evidence, a Knowledge Card, cryptographic hashing and Ethereum Sepolia.
The first Ethereum experiment was intentionally simple. I calculated a SHA‑256 digest from the Knowledge Card URL and stored it in a small Solidity contract on Ethereum Sepolia.
For Proof v2, I created a stable JSON representation of the Knowledge Card. Instead of hashing the URL, the system hashes the exact payload bytes. The SHA‑256 was: 6097e05866bafceec24663d2638cb1dae5742ac78284abbfd45cc9c3b0bfb845
The verifier was merged through PR #16: https://github.com/nicolaususnicola-lgtm/myzubster-mvp/pull/16
The result was: { "status": "MATCH", ... } That was the key milestone.
- Дата записи: 2026-10-01T21:56:04.204Z