Skip to content

Solution: LP-0016 — Anonymous Forum with Threshold Moderation#76

Open
syafiqeil wants to merge 1 commit into
logos-co:masterfrom
syafiqeil:lp-0016-resubmit
Open

Solution: LP-0016 — Anonymous Forum with Threshold Moderation#76
syafiqeil wants to merge 1 commit into
logos-co:masterfrom
syafiqeil:lp-0016-resubmit

Conversation

@syafiqeil

Copy link
Copy Markdown

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
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

  • LEZ Programmembership_registry via SPEL framework with per-instance forum_id
    PDA, supporting multiple independent forum instances from a single deployment
  • ZK Circuitforum_membership_proof proving inclusion, non-revocation, and tracing
    tag integrity without revealing the poster's identity
  • Moderation Librarylogos_moderation_sdk: forum-agnostic, operates on abstract
    byte identifiers, compiled as both WASM (browser) and C-ABI shared library (Basecamp native)
  • Basecamp Core Moduleanonymous_forum_core: C++ Qt plugin built with
    logos-module-builder, wraps Rust FFI as Q_INVOKABLE methods published via Logos IPC
  • Basecamp UI Moduleanonymous_forum_ui: QML 3-view interface (Register, Post,
    Moderate) built with mkLogosQmlModule, communicates with core via logos.callModule()
  • Protocol Specdocs/protocol.md: formal unlinkability proofs, retroactive
    deanonymization analysis, N-of-M trust model, and Basecamp integration architecture
  • IDL — Generated via SPEL CLI, machine-readable interface for all 4 instructions

Build & Run

# Standalone (logos-anonymous-forum repo)
git clone https://github.com/syafiqeil/logos-anonymous-forum
cd logos-anonymous-forum
./demo.sh                    # Build + SDK tests + program verification

# Full E2E test (requires LEZ workspace)
# See README.md for instructions on running within the LEZ environment

Basecamp Module Installation

# Build .lgx packages
nix build github:syafiqeil/anonymous_forum_core#lgx \
  --no-write-lock-file -o result-core-lgx

nix build github:syafiqeil/anonymous_forum_ui#lgx \
  --no-write-lock-file -o result-ui-lgx

# Build and launch Basecamp
cd logos-basecamp
nix build '.#app'
./result/bin/LogosBasecamp

# In the Basecamp UI:
# 1. Go to Modules (gear icon in sidebar)
# 2. Click "Install LGX Package"
# 3. Install core first: result-core-lgx/logos-anonymous_forum_core-module-lib.lgx
# 4. Then install UI: result-ui-lgx/logos-anonymous_forum_ui-module.lgx
# 5. Module appears in the sidebar

@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown

⚠️ Warnings

Warnings (non-blocking):

  • ⚠️ Prize references a Logos mini-app; no module.json found.

ℹ️ Solution submission for LP-0016.
ℹ️ Checking repo: https://github.com/syafiqeil/logos-anonymous-forum


Automated check. See solution template and TERMS.

@jzaki

jzaki commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

@syafiqeil , to progress this re-submission, please reach out on discord to confirm some design and implementation details. Since the videos are still from the original submission (the first one showing the web app), it would be great to clarify via msgs/call.
Thanks for understanding.

@syafiqeil

Copy link
Copy Markdown
Author

Hi @jzaki, I've reached out on Discord. Happy to clarify any details there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants