Skip to content

feat: Register WritersLogic CPOP ZWC text watermark (ID 29)#45

Merged
jcollomosse merged 1 commit intoc2pa-org:mainfrom
dcondrey:add-writerslogic-zwc-watermark
Apr 15, 2026
Merged

feat: Register WritersLogic CPOP ZWC text watermark (ID 29)#45
jcollomosse merged 1 commit intoc2pa-org:mainfrom
dcondrey:add-writerslogic-zwc-watermark

Conversation

@dcondrey
Copy link
Copy Markdown
Member

@dcondrey dcondrey commented Mar 18, 2026

Summary

Registering a zero-width character (ZWC) watermark algorithm for text content on behalf of WritersLogic.

  • Algorithm: com.writerslogic.zwc-watermark.1
  • Type: watermark
  • Media types: text/plain, text/markdown, text/html
  • Identifier: 29

Algorithm Description

Embeds a truncated HMAC-SHA256 tag as invisible zero-width Unicode characters (U+200B, U+200C, U+200D, U+FEFF) at deterministic word-boundary positions selected via HMAC-seeded Fisher-Yates shuffle. Each ZWC encodes 2 bits; 32 ZWCs produce a 64-bit tag that binds the document content hash and Merkle Mountain Range root to the authorship evidence chain.

The watermark enables blind extraction (no original required), survives copy-paste and re-encoding, and is intentionally invalidated by content modification — content changes require re-attestation under the CPOE proof-of-process protocol.

This is the first text-only soft binding algorithm in the registry, complementing the existing image/audio/video watermarks.

Context

Part of the CPOE (Cryptographic Proof-of-Effort) protocol implementing draft-condrey-cpop-protocol. The algorithm is open-source under AGPL-3.0 at writerslogic/cpoe.

Checklist

  • Entry follows schema (softbinding-algorithm-list.schema.json)
  • alg uses entity-specific namespace (com.writerslogic.*)
  • identifier is next sequential (29)
  • contact email provided
  • informationalUrl provided
  • JSON is valid

@dcondrey dcondrey force-pushed the add-writerslogic-zwc-watermark branch from 3b521a4 to 3aae5e4 Compare March 18, 2026 23:54
Add zero-width character (ZWC) watermark algorithm for text content
(text/plain, text/markdown, text/html). Embeds HMAC-SHA256 tags as
invisible Unicode characters at deterministic word-boundary positions,
binding document content to CPOP proof-of-process authorship evidence.

Part of the CPOP protocol (draft-condrey-cpop-protocol).
@dcondrey dcondrey force-pushed the add-writerslogic-zwc-watermark branch from 3aae5e4 to f68662e Compare March 19, 2026 00:42
@dcondrey dcondrey self-assigned this Mar 19, 2026
@dcondrey
Copy link
Copy Markdown
Member Author

dcondrey commented Mar 19, 2026

The ZWC watermark registration in PR #45 is the content binding layer for CPOE — it complements the process evidence work in #2009. Now that crJSON is merged, the soft binding results from this watermark have a standardized JSON representation too.

Copy link
Copy Markdown
Member

@jcollomosse jcollomosse left a comment

Choose a reason for hiding this comment

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

Will be discussed for potential merge at 4/15 WM TF

@jcollomosse jcollomosse merged commit 38210a5 into c2pa-org:main Apr 15, 2026
1 check passed
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.

3 participants