Skip to content

Solution: LP-0016 — Anonymous Forum with Threshold Moderation and Membership Revocation#53

Open
syafiqeil wants to merge 14 commits into
logos-co:masterfrom
syafiqeil:master
Open

Solution: LP-0016 — Anonymous Forum with Threshold Moderation and Membership Revocation#53
syafiqeil wants to merge 14 commits into
logos-co:masterfrom
syafiqeil:master

Conversation

@syafiqeil
Copy link
Copy Markdown

@syafiqeil syafiqeil commented May 15, 2026

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

  • 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)
  • FFI Layerliblogos_moderation_sdk.so + cbindgen-generated C header enabling
    cross-language interop from Rust to C++
  • 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()
  • Two Forum Instances — K=2/N=2-of-3 and K=3/N=3-of-5, independently parameterised
  • Protocol Specdocs/protocol.md: formal unlinkability proofs, retroactive
    deanonymization analysis, N-of-M trust model, Basecamp integration architecture, and threat model
  • 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 standalone app (clone both module repos side-by-side)
cd anonymous_forum_ui
nix run --impure

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 15, 2026

⚠️ 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.

Comment thread solutions/LP-0016.md

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
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Author

@syafiqeil syafiqeil May 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

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