Solution: LP-0016 — Anonymous Forum with Threshold Moderation and Membership Revocation#53
Solution: LP-0016 — Anonymous Forum with Threshold Moderation and Membership Revocation#53syafiqeil wants to merge 14 commits into
Conversation
Updated video demonstration links and added a note about upcoming content.
|
|
|
||
| A privacy-preserving forum protocol built on the Logos Execution Zone (LEZ) where members post anonymously via ZK proofs, moderators issue strikes through N-of-M threshold consensus, and K accumulated strikes cryptographically reconstruct the offender's secret key — enabling on-chain slashing and retroactive deanonymization. The deliverable includes a forum-agnostic moderation library (standalone SDK) and a working Logos Basecamp app demonstrating the full lifecycle. | ||
|
|
||
| ## Repository |
There was a problem hiding this comment.
Implementation PR: logos-blockchain/logos-execution-zone#465
This PR adds to the LEZ repo. Lamda prize submissions are expected to use the LEZ, not necessarily modify it.
There was a problem hiding this comment.
Thanks for the feedback @jzaki! You're right. The initial submission incorrectly added code directly to the LEZ repo. I initially structured it within the LEZ workspace assuming that was the expected approach for SPEL-base programs.
I've since decoupled the project into a standalone repository (logos-anonymous-forum: https://github.com/syafiqeil/logos-anonymous-forum), which references LEZ as a git dependency rather than modifying it. The ## Repository section has been updated accordingly.
The standalone repo contains:
- On-chain program (programs/membership_registry/) — SPEL framework guest program
- Off-chain SDK (logos_moderation_sdk/) — forum-agnostic moderation library with FFI
- ZK circuit (program_methods/guest/) — membership proof
- demo.sh, membership_registry.idl.json, and CI workflow
The original LEZ PR (#465) is kept for reference but is no longer the primary implementation link.
There was a problem hiding this comment.
Can you explain if this is/isn't a logos module? How can a user use this within Logos Basecamp, and via what qt ui plugin/module?
There was a problem hiding this comment.
Yes, this is a Logos module, split into two Basecamp modules following the core/UI architecture:
- Core module (anonymous_forum_core (https://github.com/syafiqeil/anonymous_forum_core)): A C++ Qt plugin built with logos-module-builder. It wraps the Rust SDK (liblogos_moderation_sdk.so) via C-ABI FFI and exposes 12 Q_INVOKABLE methods (member, moderator, and aggregator operations) over Logos IPC (Qt RemoteObjects).
- UI module (anonymous_forum_ui (https://github.com/syafiqeil/anonymous_forum_ui)): A QML interface built with mkLogosQmlModule providing three views: Register, Post, and Moderate.
To run within Basecamp:
cd anonymous_forum_ui
nix run --impureThis launches a standalone Basecamp app with both modules loaded, demonstrating the full moderation lifecycle.
Video demo of the Basecamp integration: https://youtu.be/_9RvF-oS7jM
There was a problem hiding this comment.
The metadata.json module configs are in their respective repos:
- anonymous_forum_core/metadata.json (https://github.com/syafiqeil/anonymous_forum_core/blob/main/metadata.json) (type: core)
- anonymous_forum_ui/metadata.json (https://github.com/syafiqeil/anonymous_forum_ui/blob/main/metadata.json) (type: ui_qml).
Submission: LP-0016 — Anonymous Forum with Threshold Moderation and Membership Revocation
Submitted by: Syafiq (Evice Labs)
Main Implementation (On-Chain + SDK): https://github.com/syafiqeil/logos-anonymous-forum
Implementation PR: logos-blockchain/logos-execution-zone#465
Basecamp Core Module: https://github.com/syafiqeil/anonymous_forum_core
Basecamp UI Module: https://github.com/syafiqeil/anonymous_forum_ui
Video Demo (SDK + On-Chain): https://youtu.be/Bj0GwITfYwM
Video Demo (Basecamp Integration): https://youtu.be/_9RvF-oS7jM
Summary
A complete implementation of the LP-0016 protocol built on the Logos Execution Zone (LEZ).
Members post anonymously via ZK proofs, moderators issue strikes through N-of-M threshold
consensus, and K accumulated strikes cryptographically reconstruct the member's Nullifier
Secret Key — enabling on-chain slashing and retroactive deanonymization of all prior posts.
The system spans three repositories: on-chain programs + Rust SDK
(logos-anonymous-forum),
a native Logos Basecamp core module (C++ Qt plugin via FFI), and a QML UI module — all
integrated end-to-end through Logos IPC.
Deliverables
membership_registryvia SPEL framework with per-instanceforum_idPDA, supporting multiple independent forum instances from a single deployment
forum_membership_proofproving inclusion, non-revocation, and tracingtag integrity without revealing the poster's identity
logos_moderation_sdk: forum-agnostic, operates on abstractbyte identifiers, compiled as both WASM (browser) and C-ABI shared library (Basecamp native)
liblogos_moderation_sdk.so+cbindgen-generated C header enablingcross-language interop from Rust to C++
anonymous_forum_core: C++ Qt plugin built withlogos-module-builder, wraps Rust FFI asQ_INVOKABLEmethods published via Logos IPCanonymous_forum_ui: QML 3-view interface (Register, Post,Moderate) built with
mkLogosQmlModule, communicates with core vialogos.callModule()docs/protocol.md: formal unlinkability proofs, retroactivedeanonymization analysis, N-of-M trust model, Basecamp integration architecture, and threat model
Build & Run