Specificatio Protocolli qub

qub est protocollum obligationum temporalium cryptographicarum: systema verba ad diem futuram signandi et, cum dies advenerit, exacte probandi quid dictum sit et quando.

Tria primordia hoc opus efficiunt. drand est signum fortuiti decentralizatum — dies revelationis physica vi exigitur, non ulla partis benignitate. Memoria perpetua publica est tabula publica infalsificabilis — nemo qub semel signatum vel emendare vel delere potest. ML-DSA-65 est subscriptio digitalis post-quantum — quodque qub paribus clavium adligatur quarum arcanum numquam ex auctoris machina exit.

Haec primordia coniuncta sententiam efficiunt temporalibus claustris obligatam, manifestam si violetur, et auctori attribuibilem — apocha cuius valor crescit dum mundi facultas praeterita fingendi melior fit.

Reliqua huius documenti est specificatio normativa quae implementationibus inter se cohaerentibus requiritur.


Specificatio Protocolli qub

Campus Valor
Versio 1.0 (versio protocolli 0x01, versio involucri externi 0x01)
Dies 2026-05-01
Status Schedula
Recognitum usque ad 2026-05-01

Hoc documentum est specificatio normativa protocolli pro systemate obligationum temporalium qub. Definit structuras datorum, regulas seriationis, formulas derivationis, et procedurae verificationis quae implementationibus inter se cohaerentibus requiruntur.

Ambitus: stratum protocolli consulto neutrum est quoad linguam — corpus qub est opacus textus simplex / markdown / octeta pacti, et redditio locali apta est munus spectatoris (applicatio web qub.social, involucrum <qub-embed>, clientes MCP, et cetera).


1. Notatio et Conventiones

Notatio Significatio
u8, u64, i64 Integri sine signo / cum signo latitudinis bitorum specificatae
[u8; N] Series octetorum longitudinis fixae N octetorum
Vec<u8> Series octetorum longitudinis variabilis
Option<T> Valor typi T, vel absens
String Textus UTF-8, normalizatus NFC
`
SHA3-256(x) Spargmen NIST SHA3-256 seriei octetorum x (FIPS 202)
ceil(x) Functio caeli: minimus integer ≥ x
CBOR Concise Binary Object Representation (RFC 8949)
big-endian Octetus maximi momenti primus

Omnes integri in constructionibus praeimaginis ut series octetorum big-endian latitudinis fixae codificantur (i64 → 8 octeta, u8 → 1 octetum) nisi aliter specificatum est.

Omnia tempora sunt secunda Unix in UTC.


2. Structurae Datorum

2.1 ComposeQub (Status In-Memoria Creatoris)

Non seriatur in CBOR. Non in memoria perpetua conditur. Localis applicationi creatoris.

ComposeQub {
    draft_id:       [u8; 16],        // Random, generated locally
    created_at:     i64,             // Unix seconds UTC
    unlock_at:      Option<i64>,     // Unix seconds UTC; None while composing
    visibility:     u8,              // 0x01 = public (only value in MVP)
    content_type:   u8,              // 0x01 = text (only value in MVP)
    plaintext:      Vec<u8>,         // UTF-8 qub body
    sender_label:   Option<String>,  // Decorative display name; not authenticated
    status:         DraftStatus,     // Composing | Sealed | Uploaded | Failed
}

2.2 QubEnvelope (Onus Decifratum)

Seriatum CBOR canonico (§3). Cifratum intra SealedQub. Haec structura integritatem contenti post decifrationem probat.

QubEnvelope {
    version:             u8,              // Protocol major version (0x01 for v1)
    qub_id:              [u8; 32],        // Derived (see §4.1)
    content_type:        u8,              // Content type registry (see §6)
    created_at:          i64,             // Unix seconds UTC
    unlock_at:           i64,             // Unix seconds UTC
    outcome_at:          Option<i64>,     // V1.1 — when reality renders judgment (verdict-uplift-plan §3.1)
    sender_label:        Option<String>,  // Decorative; not authenticated in MVP
    reply_to:            Option<[u8; 32]>,// Parent qub_id for reply chains; not in qub_id preimage; not signed (see §9.3)
    body:                Vec<u8>,         // Content payload (UTF-8 for text, CBOR for pact)
    body_hash:           [u8; 32],        // SHA3-256(body) (see §4.2)
    sig_alg:             u8,              // Signature algorithm (see §9.2)
    author_signature:    Option<Vec<u8>>, // Set when sig_alg != 0x00
    author_pubkey:       Option<Vec<u8>>, // Set when sig_alg != 0x00
    cosigner_pubkey:     Option<Vec<u8>>, // Set for cosigned pact bilateral agreements
    cosigner_signature:  Option<Vec<u8>>, // Set for cosigned pact bilateral agreements
}

Linea basilica (qub textuale non subscriptum): version = 0x01, content_type = 0x01, sig_alg = 0x00, omnes campi Option absentes.

Aliae configurationes v1: content_type = 0x03 (corpus pacti, vide §6.1); sig_alg = 0x01 (ML-DSA-65) cum author_signature et author_pubkey praesentibus (vide §9.3); cosigner_pubkey et cosigner_signature simul praesentes pro pactis consubscriptis (vide §9.7); reply_to ad qub_id qub parentis positum pro qub catenae responsorum (vide §9.3 pro implicationibus ambitus subscriptionis).

2.3 SealedQub (Forma Canonica Filiformis)

Seriatum CBOR canonico (§3). In memoria perpetua imponitur. Hoc est artefactum in catena.

SealedQub {
    version:           u8,              // Protocol major version (0x01 for v1)
    qub_id:            [u8; 32],        // Same as QubEnvelope.qub_id
    visibility:        u8,              // 0x01 = public; v1 viewers reject other values
    unlock_at:         i64,             // Unix seconds UTC
    outcome_at:        Option<i64>,     // V1.1 — surfaced on the verdict-watch CTA
                                        //   before reveal; mirrors QubEnvelope.outcome_at;
                                        //   bound to qub_id via the §4.1 preimage.
    drand_chain_id:    String,          // drand chain hash (hex string)
    drand_round:       u64,             // Target drand round number
    tlock_ciphertext:  Vec<u8>,         // tlock-encrypted QubEnvelope CBOR bytes
    recipient_pubkey:  Option<[u8; 32]>,// Reserved field; accepted by canonical CBOR
                                        //   but not interpreted by the v1 reference viewer
    title:             Option<String>,  // Plaintext title surfaced on the viewer
                                        //   countdown before reveal. Bound to qub_id
                                        //   via title_hash (§4.1). 1..=100 NFC code
                                        //   points, no control characters.
}

2.4 RevealedQub (Status Applicationis Spectatoris)

Non seriatur in CBOR. Localis applicationi spectatoris. Construitur post decifrationem et verificationem prosperam.

RevealedQub {
    qub_id:              [u8; 32],
    arweave_tx_id:       String,
    visibility:          u8,
    content_type:        u8,
    created_at:          i64,
    unlock_at:           i64,
    outcome_at:          Option<i64>,       // V1.1 — ex QubEnvelope.outcome_at / SealedQub.outcome_at translatum; impellit cellam sententiae-exspectandae paginae revelationis (verdict-uplift-plan §5.1)
    drand_chain_id:      String,
    drand_round:         u64,
    sender_label:        Option<String>,
    title:               Option<String>,    // Carried forward from SealedQub.title
    reply_to:            Option<[u8; 32]>,
    body:                Vec<u8>,
    body_hash:           [u8; 32],
    body_hash_verified:  bool,
    author_signature:    Option<Vec<u8>>,
    author_pubkey:       Option<Vec<u8>>,
    signature_verified:  Option<bool>,
    cosigner_pubkey:     Option<Vec<u8>>,
    cosigner_signature:  Option<Vec<u8>>,
    cosigner_verified:   Option<bool>,
}

3. Profilum CBOR Canonicum

Omnis seriatio SealedQub et QubEnvelope huic profilo DEBET conformare. Duae implementationes data eadem structura logica octeta identica DEBENT producere.

3.1 Regulae Codificationis

Regula Specificatio
Norma RFC 8949 §4.2.1 (Core Deterministic Encoding Requirements)
Ordo clavium mappae Primum secundum longitudinem octetorum codificatorum ordinatae (breviores ante longiores), deinde lexicographice (octetum per octetum pro codificationibus eiusdem longitudinis)
Codificatio integrorum Forma brevissima: 0–23 in octeto initiali; 24–255 in 2 octetis; 256–65535 in 3 octetis; et cetera.
Codificatio longitudinis Longitudines definitae solae. Nullae series, mappae, octetorum seriei, vel textuum seriei longitudinis indefinitae (informatio addita = 31 vetatur).
Etiquetae Nullae etiquetae CBOR (typus maior 6 vetatur).
Punctum fluitans Nulla puncta fluitantia (typi maiores 7 valores 0xF9–0xFB vetantur).
Series textuum UTF-8 codificati, normalizati NFC (Unicode Normalization Form C).
Series octetorum Octeta cruda. Nulla codificatio base64 in strato CBOR.
Claves duplicatae Reiciantur cum errore. Lectores duplicatas claves mappae tacite accipere NON DEBENT.
Claves ignotae Reiciantur cum errore. Lectores claves mappae extra ordinem clavium canonicum typi tolerare NON DEBENT — duae series octetorum canonicae distinctae numquam ad eundem valorem decodificari debent (encode(decode(x)) == x), et in oneribus subscriptis clavis addita contentum absconditum esset quod ambae subscriptiones obligent. Evolutio schematis per version procedit, numquam per claves additas.
Valores simplices Soli true (0xF5), false (0xF4), et null (0xF6) permittuntur.
Campi optionales Campi optionales absentes ex mappa CBOR omnino omittuntur (non codificantur ut null). Campi optionales praesentes in ordine clavium ordinato includuntur.

3.2 Ordines Clavium Canonici Verificati

Hi ordines clavium normativi sunt. Implementationes DEBENT claves exacte hoc ordine emittere. Assertiones diagnosticae ordinem in compilationibus non-emissionis verificare OPORTET.

QubEnvelope (versio 0x01, non subscripta, omnes campi optionales absentes):

"body"                (5 encoded bytes)
"qub_id"              (7 encoded bytes)
"sig_alg"             (8 encoded bytes)
"version"             (8 encoded bytes)
"reply_to"            (9 encoded bytes)   ← only if present (reply chains)
"body_hash"           (10 encoded bytes)
"unlock_at"           (10 encoded bytes)
"created_at"          (11 encoded bytes)
"outcome_at"          (11 encoded bytes) ← only if present (V1.1 verdict mechanic)
"content_type"        (13 encoded bytes)
"sender_label"        (13 encoded bytes)  ← only if present
"author_pubkey"       (14 encoded bytes)  ← only if present
"cosigner_pubkey"     (16 encoded bytes)  ← only if present (pact cosign)
"author_signature"    (17 encoded bytes)  ← only if present
"cosigner_signature"  (19 encoded bytes)  ← only if present (pact cosign)

Derivatio ordinis clavium QubEnvelope: quaeque clavis est series textus CBOR. Longitudo codificata = 1 octetum capitis + longitudo seriei (pro seriebus sub 24 octetis). Primum secundum longitudinem codificatam totalem ordina, deinde lexicographice pro clavibus eiusdem longitudinis.

SealedQub (versio 0x01, publica, sine recipiente):

"title"             (6 encoded bytes)   ← only if present
"qub_id"            (7 encoded bytes)
"version"           (8 encoded bytes)
"unlock_at"         (10 encoded bytes)
"outcome_at"        (11 encoded bytes) ← only if present (V1.1 verdict mechanic)
"visibility"        (11 encoded bytes)
"drand_round"       (12 encoded bytes)
"drand_chain_id"    (15 encoded bytes)
"recipient_pubkey"  (17 encoded bytes)  ← only if present
"tlock_ciphertext"  (17 encoded bytes)

PactTerms (corpus pacti, content_type 0x03):

"notes"         (6 encoded bytes)  ← only if present
"terms"         (6 encoded bytes)
"title"         (6 encoded bytes)
"party_a"       (8 encoded bytes)
"party_b"       (8 encoded bytes)
"pact_version"  (13 encoded bytes)

PactTerm (linea seriei terms):

"key"    (4 encoded bytes)
"value"  (6 encoded bytes)

PartyIdentifier (mappa party_a / party_b):

"label"    (6 encoded bytes)
"contact"  (8 encoded bytes)  ← only if present

3.3 Tabula Codificationis Octetorum

Typus Codificatio CBOR Exemplum
Spargmen SHA3-256 (32 octeta) 0x58 0x20 + 32 octeta body_hash, qub_id
Tempora (i64) Typus maior 0 (positivus) vel 1 (negativus), codificatio brevissima secunda Unix
Versio (u8, valor 1) 0x01 (octetum singulum)
Typus contenti (u8, valor 1) 0x01 (octetum singulum)
sig_alg (u8, valor 0) 0x00 (octetum singulum)
Subscriptio ML-DSA-65 (3,309 octeta) 0x59 0x0C 0xED + 3,309 octeta author_signature, cosigner_signature
Clavis publica ML-DSA-65 (1,952 octeta) 0x59 0x07 0xA0 + 1,952 octeta author_pubkey, cosigner_pubkey

4. Derivationes Normativae

4.1 qub_id

qub_id qub unice identificat et QubEnvelope ad SealedQub alligat. Deterministice ex contento involucri derivatur.

qub_id = SHA3-256(
    "QUB_ID_V2"    ||    // domain separator: ASCII bytes [0x51 0x55 0x42 0x5F 0x49 0x44 0x5F 0x56 0x32] (9 bytes) + 0x00 padding (1 byte) = 10 bytes
    version        ||    // u8 (1 byte)
    content_type   ||    // u8 (1 byte)
    created_at     ||    // i64 big-endian (8 bytes)
    unlock_at      ||    // i64 big-endian (8 bytes)
    outcome_at_or_zero || // i64 big-endian (8 bytes; 0 when outcome_at is absent)
    drand_round    ||    // u64 big-endian (8 bytes)
    body_hash      ||    // [u8; 32] (32 bytes)
    title_hash           // [u8; 32] (32 bytes; absent-sentinel = [0u8; 32])
)
// Total preimage: 108 bytes → 32-byte output

Codificatio separatoris dominii: Series "QUB_ID_V2" est 9 octeta ASCII. Singulum octetum farciminis 0x00 adicitur ut 10 octeta ob alignmentum attingantur. Implementationes haec 10 octeta exacta DEBENT adhibere: [0x51, 0x55, 0x42, 0x5F, 0x49, 0x44, 0x5F, 0x56, 0x32, 0x00].

Codificatio outcome_at: V1.1 praeimaginem ex 92 ad 100 octeta extendit ut campum optionalem outcome_at in adligationem complicaret. outcome_at absens ut 8 octeta nulla codificatur; validatores protocolli outcome_at <= 0 ubique reiciunt, ita ut haec sentinella cum valore legitimo collidi non possit. Vide §3.2 (forma filiformis) et tasks/verdict-uplift-plan.md intra arborem pro mechanica sententiae quae hunc campum movet.

Codificatio drand_round: V1.2 praeimaginem ex 100 ad 108 octeta extendit ut drand_round (cyclum drand destinatum, §4.3) in adligationem complicaret, et separatorem dominii ad QUB_ID_V2 auxit. Hoc cyclum clausurae temporalis in identitatem qub adligat: porta textum cifratum ad cyclum diversum (e.g. iam praeteritum) quam unlock_at ostensum implicat readligare non potest. Procedura reserationis (§8) insuper verificat cyclum in stanza textus cifrati tlock impressum cum unlock_round(unlock_at) congruere, ita ut tempus reserationis ostensum probabiliter sit cyclus qui decifrationem regit.

Proprietates:

4.2 body_hash

body_hash = SHA3-256(body)

Ubi body est Vec<u8> crudum onus contenti. Pro qub textualibus, hoc est corpus qub UTF-8 codificatum.

4.2.1 title_hash

title_hash = SHA3-256(NFC(title).utf8_bytes)   if title is present
title_hash = [0u8; 32]                         if title is absent

Ubi title est optionalis titulus textus simplicis in chronometro spectatoris ante revelationem ostensus (vide §3.2). Normalizatio NFC tempore spargmenti executatur ita ut digestum stabile sit per sequentias punctorum codicis visualiter aequivalentes. Sentinella omnium nullorum casui absenti reservatur; series vacua in confinio CBOR canonico ut codificatio non-canonica "absentis" reicitur (codificatio canonica campum omnino omittit).

4.3 Mappa Cycli-Reserationis

drand_round = ceil((unlock_at - chain_genesis_time) / chain_period_seconds)
Parameter Fons Exemplum
unlock_at Secunda Unix UTC ab usuario electa 1735689600 (2025-01-01 00:00:00 UTC)
chain_genesis_time informatio catenae drand (genesis_time) 1595431050
chain_period_seconds informatio catenae drand (period) 30

Operatio ceil() primum cyclum drand cuius tempus revelationis est ≥ unlock_at seligit. Hoc cavet ne qub decifrabile fiat ante tempus reserationis electum.

Casus marginalis: si (unlock_at - chain_genesis_time) exacte per chain_period_seconds dividitur, exitus est ille exactus cyclus — qub praecise tempore revelationis illius cycli reseratur.

Validatio: unlock_at in futuro tempore signandi esse DEBET. unlock_at plus quam 10 annos a created_at distare NON DEBET (ut periculum dependentiae longi-horizontis a drand limitetur; interfacies pro diebus reserationis ultra 2 annos monere OPORTET).


5. Newtypi Formae Filiformis

Newtypi formae filiformis securitatem compilationis temporis contra octeta CBOR cum JSON, textu simplici crudo, vel aliis codificationibus octetorum confundenda praebent.

Typus Continet Productus a Consumptus a
SealedQubCbor CBOR canonicum SealedQub serialize_sealed_qub() Onerationem memoriae perpetuae, conquisitionem spectatoris
QubEnvelopeCbor CBOR canonicum QubEnvelope serialize_qub_envelope() Ingressum cifrationis tlock, exitum decifrationis tlock

5.1 Regulae Constructionis

// Production code — only through CBOR serialisers:
let sealed = SealedQubCbor::from_encoded(cbor_bytes);

// There is deliberately NO From<Vec<u8>> implementation.
// You cannot accidentally wrap arbitrary bytes in a wire format type.

// Accessing raw bytes:
let bytes: &[u8] = sealed.as_bytes();
let bytes: Vec<u8> = sealed.into_bytes();

5.2 Validatio in Constructione

from_encoded() OPORTET validare ingressum cum capite mappae CBOR valido incipere. Validatio structuralis plena tempore lectionis fit, non tempore constructionis, ut duplex lectio vitetur.


6. Tabula Typorum Contenti

Valor Typus Magnitudo Maxima Corporis Notae
0x00 Reservatum (invalidum) NON adhibendum est
0x01 Textus simplex (UTF-8, Markdown restrictum) 50 KB pretiosum / 10 KB gratuitum Vide §10 pro regulis redditionis. Divisio gratuiti / pretiosi a servitio onerationis exigitur; limen durum strati protocolli est 50 KB.
0x02 Reservatum (futurum) Pro typo contenti futuro allocatum; in v1 non validum. Spectatores secundum regulam infra reicere DEBENT.
0x03 Pactum (pactum bilaterale, corpus CBOR) 100 KB Corpus est PactTerms CBOR canonicum (§6.1). Consubscriptio per §9.7.
0x04 Sententia (creatoris se ipsum aestimantis, corpus CBOR) 8 KB Corpus est VerdictBody CBOR canonicum (§6.2). Solum a verdict intento systemati emittitur. Nexus parentalis in indice Arweave Parent-Tx-Id est, non in corpore. Vide verdict-uplift-plan §3.4.

Spectatores typos contenti ignotos cum errore claro usuario visibili reicere DEBENT. Spectatores typos ignotos ut textum reddere conari NON DEBENT.

6.1 Corpus Pacti (content_type = 0x03)

Corpus pacti est codificatio CBOR canonica valoris PactTerms:

PactTerms {
    pact_version:  u8,                    // 0x01 for structured/v1
    title:         String,                // ≤ 200 bytes, NFC
    terms:         Vec<PactTerm>,         // ≤ 20 rows
    party_a:       PartyIdentifier,       // initiator
    party_b:       PartyIdentifier,       // counter-signer
    notes:         Option<String>,        // ≤ 5,000 bytes, NFC; absent key if none
}

PactTerm       { key: String (≤ 100), value: String (≤ 2,000) }   // NFC on both sides
PartyIdentifier{ label: String (≤ 100), contact: Option<String (≤ 320)> }

Ordines clavium CBOR canonici pro omnibus tribus mappis in §3.2 dantur. CBOR pacti seriatum totale 100 KB non excedere DEBET (concordat cum §6).

Discriminator schematis. Prima linea in terms pro pacto structured/v1 esse DEBET { key: "pact_schema", value: "structured/v1" }. Lineae sine hoc indice sunt pacta "consuetudinaria" et nullam validationem structuratam vel redditionem schematis consciam recipiunt.

Receptacula agnitionis fixa. Pacta structured/v1 exacte quattuor lineas agnitionis sub his clavibus ferunt:

"initiator_standard_terms"
"initiator_capacity_terms"
"counterparty_standard_terms"
"counterparty_capacity_terms"

value cuiusque est una ex octo seriebus Anglicis fixis per par (role, kind) electis, ubi role ∈ { seller, buyer, provider, client } et kind ∈ { standard, capacity }. Series ipsae sunt data protocolli normativa — utriusque partis subscriptiones ML-DSA-65 ad exacta octeta per body_hash se obligant. NON localizantur; corpus subscriptum linguae neutrum est. Quaevis mutatio verborum versionem schematis novam exigit (structured/v2).

Octo series, earum quaesitio (acknowledgement_for(role, kind)), et ratio cuiusque ab implementatione referente affixae sunt. Implementationes conformes valores agnitionis octetis identicos DEBENT emittere; probationes spargminis-corporis SHA3-256 cum fixurae auratis omnes quattuor combinationes ruolorum tegentes ullam deviationem capiunt.

Ordo ostensionis spectatoris. Series agnitionis phrases continent ut "supra descriptum", quae praesumunt lineas descriptionis / ambitus ante agnitiones reddi. Spectatores seriem terms in ordine CBOR reddere DEBENT; reordinatio semanticam prosae rumpit.

Contactus contrapartis. Cum contact Partis B est inscriptio electronica valida, servitium onerationis qub epistulam invitationis recognitionis / consubscriptionis tempore stationis automatice mittit et consubscriptionem eventualem ad verificationem eiusdem inscriptionis adligat (§9.7). Pacta quorum contactus Partis B abest adhuc consubscribi possunt, sed solum per canalem extra-bandam — servitium petitiones consubscriptionis recusat quae notam verificationis electronicae 15 minutorum congruentem producere non possunt.

6.2 Corpus Sententiae (content_type = 0x04)

Corpus sententiae est codificatio CBOR canonica valoris VerdictBody:

VerdictBody {
    verdict_version: u8,                  // 0x01 for structured/v1
    outcome:         u8,                  // 1=Right · 2=Partial · 3=Wrong · 4=Unfalsifiable
    reflection:      Option<String>,      // ≤ 2,000 bytes NFC; "what changed, what did you learn"
    evidence_url:    Option<String>,      // ≤ 2,048 bytes; HTTPS only; absent key when omitted
}

Ordo clavium CBOR canonicus:

"outcome"          (8 encoded bytes)
"reflection"       (11 encoded bytes)  ← only if present
"evidence_url"     (13 encoded bytes)  ← only if present
"verdict_version"  (16 encoded bytes)

CBOR sententiae seriatum totale 8 KB non excedere DEBET (concordat cum linea tabulae supra).

Enumeratio exitus. Octetum filiforme intentui neutrum est; quattuor receptacula Right / Partial / Wrong / Unfalsifiable omne spatium exitus cuiusque intenti sententiam ferentis tegunt. Notae per intentum (e.g. "Praedixi recte" / "Servavi illud" / "Edidi" / "Confirmata" pro Right) sunt res redditionis a parte spectatoris, contra intentum qub parentis resolutae — forma filiformis lingua- et intentu-neutralis manet. Valores extra 1..=4 ad decodificationem reici DEBENT.

Nexus parentalis. qub sententiae referentiam parentalem in corpore suo NON fert. Identitas transactionis Arweave qub parentis ut index Parent-Tx-Id repositionis tempore onerationis emittitur (§7 stratum indicum repositionis). Hoc corpus servat ut declarationem subscriptam autoaestimationis sui contentam; catena auditionis ("recte de quo?") per inquisitionem indicis Arweave constituitur.

Securitas nexus argumenti (normativa). Cum evidence_url adest, validatores (parte compositionis, parte filiformi, margine Operarii) hoc imponere DEBENT:

  1. Solum HTTPS. Filum cum sequentia octetorum https:// incipere DEBET. Quaevis alia schema — http, ftp, javascript, data, file, etc. — reicitur.
  2. Limen longitudinis. ≤ 2,048 octeta (limen practicum URL navigatoris).
  3. NFC + inspectio codepoint hostilium. Eadem regula ac title et reflection — codepoint bidi-override / latitudinis nullae / indicis tag / BOM / C0 / C1 reiciuntur. Definitio congruit cum Rust crate::handle::contains_hostile_text_codepoint et TS workers/api/src/utils/unicode.ts::isHostileCodepoint (in eodem gradu serventur).
  4. Nullum spatium, nulli moderatores ASCII. Spatium / DEL / octeta infra-0x20 ubicumque in URL reiciuntur — viam iniectionis \n/\t claudit quam regula bidi non tegit.
  5. Segmentum hospitis non vacuum. Omnia inter https:// et primum /, ?, vel # non vacua esse DEBENT.

Nulla petitio a parte servitoris. Operarius URL procurare, petere, vel praevidere NON DEBET. Protocollum filum servat; redditio a parte spectatoris fit cum rel="nofollow noopener noreferrer" target="_blank" et hospite visibili iuxta textum nexus ostento.

Consideratio. Textus considerationis a creatore scriptae optionalis ("quid mutatum est, quid didicisti"). Eadem validatio NFC + codepoint hostilium ac title. Introitus vacuus / solum spatium tempore constructionis ad absentem decidit.

Versio schematis. v1 solum verdict_version = 0x01 sustinet. Revisiones schematis futurae hoc octetum augent et iuxta novam versionem protocolli per §12 perveniunt.


7. Protocollum Signandi

Sequentia signandi completa. Quisque gradus normativus est.

 1. User composes plaintext and metadata in ComposeQub.
 2. Validate:
    a. body is non-empty.
    b. body size ≤ max for content_type and user tier (see §6).
    c. unlock_at is in the future.
    d. unlock_at ≤ created_at + 10 years.
    e. content_type is a known, supported value.
 3. Compute body_hash = SHA3-256(body).
 4. Set created_at = current Unix seconds UTC.
 5. Select drand chain. Load chain_genesis_time and chain_period_seconds, and
    compute drand_round = ceil((unlock_at - chain_genesis_time) / chain_period_seconds).
    (Computed here, before qub_id, because drand_round is bound into the qub_id
    preimage — §4.1, V1.2.)
 6. Compute qub_id (see §4.1), folding in drand_round from step 5.
 7. Construct QubEnvelope with all fields.
 8. Serialise QubEnvelope using canonical CBOR → bytes B.
    Assert: serialised output matches canonical profile (§3).
 9. Compute C = tlock_encrypt(B, drand_round, drand_chain_public_key).
10. Construct SealedQub with tlock_ciphertext = C, and matching qub_id, version,
    unlock_at, drand_chain_id, drand_round.
12. Serialise SealedQub using canonical CBOR → SealedQubCbor.
12a. Generate K = 32 random bytes (CSPRNG) and N = 12 random bytes (CSPRNG).
     Compute W = wrap_sealed_qub(SealedQubCbor, qub_id=qub_id, key=K, nonce=N)
     per §13. The bytes uploaded to permanent storage are the OuterWrapper CBOR W,
     never the bare SealedQubCbor. K leaves the device only as the URL
     fragment in step 16.
13. Display seal-time disclosure. User confirms.
14. Validate upload eligibility via the qub upload service (bot-detection, entitlement, rate limits).
15. Submit W (the OuterWrapper bytes) to the qub upload service; the service
    signs and uploads to permanent storage. The service is byte-blind to the inner
    SealedQubCbor and never receives K.
16. Receive arweave_tx_id from the service. Construct delivery URL as
    `<origin>/c/<arweave_tx_id>#<base64url(K)>` (or `<origin>/s/<short_code>#<base64url(K)>`
    when a short code is allocated). Browsers do not transmit URL fragments
    to servers, so K is never observed by qub.social or any storage gateway.

Stratum etiquettarum memoriae (extra-bandam). Servitium onerationis qub modicum consulto numerum etiquettarum transactionum memoriae apud onus involutum apponit. Content-Type=application/octet-stream normative requiritur. Servitium referens insuper tres etiquettas optionales apponit cum creator eas ostentare eligit: Intent (intentio compositionis allowlist-validata — e.g., quote, reply, commitment), Author (digitus pubkey §9.3 creatoris ut 64-character hex minusculus), et Parent-Tx-Id (ID transactionis memoriae qub parentis pro catenis responsorum, 43-character base64url).

Etiquetta Author est electio per qub: applicatio creatoris referens eam apponit solum cum usuarius explicite attributionem publicam tempore signandi habilitat. Cum repagulum off est — quod est defalcum — nulla etiquetta Author scribitur et qub in catena sine attributione est: nihil in memoria perpetua onerationem ad creatoris manibrium, inscriptionem electronicam, vel alia qub adligat. Cum repagulum on est, digitus Author ad @manibrium ab creatore electum per catenam attestationis §9.5 resolvitur. Relationes catenae responsorum et Intent non-identificantes sunt. Involucrum externum (§13) corpus internum a correlatione textus cifrati tuetur — impediens ne metalator onerationes qub-formatas agnoscat et postquam cyclus drand emittitur in bulkis decifret.

Servitium referens consulto NON apponit etiquettas App-Name, App-Version, vel Type: quivis talis filtrum unius valoris totum corpus qub ad interrogationem GraphQL redderet, quod inconsistens est cum ambitu confidentialitatis corporis-soli involucri.

Verificator conformis NON DEBET ab ulla etiquetta memoriae dependere pro verificatione tertiae partis §11; spargmen corporis / qub_id / subscriptio se ad CBOR internum solum obligant, numquam ad complexum etiquettarum.


8. Protocollum Reserationis

Sequentia reserationis completa. Quisque gradus normativus est.

 1. Viewer opens delivery URL. Extract arweave_tx_id from path AND
    K = base64url_decode(fragment) from the URL fragment. If the fragment
    is absent or malformed → display "this URL is missing its decryption
    key" and stop; the viewer MUST NOT contact the storage gateway
    without K, since fetching wrapped bytes the viewer cannot decrypt
    serves no purpose and only leaks the access attempt.
 2. Check denylist. If tx_id is denylisted → display block message. Stop.
 3. Fetch OuterWrapper bytes from permanent storage (with multi-gateway fallback).
 3a. Unwrap: parse the bytes as OuterWrapper (§13), verify the wrapper
    `version` byte is `0x01`, and compute SealedQubCbor =
    unwrap_sealed_qub(OuterWrapper, key=K). Any AEAD authentication
    failure (wrong K, tampered ciphertext, swapped qub_id-as-AAD,
    swapped nonce) → display "this URL's decryption key does not match
    the stored qub" and stop. Authentication failures are
    indistinguishable to the viewer per §13.5.
 4. Parse SealedQubCbor → SealedQub.
 5. Validate: SealedQub.version is known (0x01). Reject unknown versions.
 6. If current time < SealedQub.unlock_at → display countdown. Poll or wait.
 6a. Round-binding check (V1.2). Recompute expected_round =
    ceil((SealedQub.unlock_at - chain_genesis_time) / chain_period_seconds).
    Reject unless SealedQub.drand_round == expected_round AND the round baked
    into the tlock ciphertext stanza (read via the age/tlock header, no signature
    required) == expected_round. The stanza round is the one that actually gates
    decryption; without this check a malicious creator could bind the ciphertext
    to an already-past round while displaying a future countdown, so anyone
    reading the stored bytes could decrypt before unlock_at. Implementations with
    no chain identity (test mocks) skip this check.
 7. Once current time ≥ SealedQub.unlock_at:
    a. Fetch drand round signature for SealedQub.drand_round from drand network.
    b. Compute B = tlock_decrypt(SealedQub.tlock_ciphertext, round_signature).
 8. Parse B → QubEnvelope.
 9. Validate QubEnvelope.version is known.
10. Verify: SHA3-256(QubEnvelope.body) == QubEnvelope.body_hash.
    Fail → integrity error.
11. Verify: QubEnvelope.qub_id == SealedQub.qub_id.
    Fail → integrity error.
12. Verify: QubEnvelope.unlock_at == SealedQub.unlock_at.
    Fail → integrity error.
13. Verify: QubEnvelope.content_type is known and renderable.
    Known values: 0x01 (text), 0x03 (pact). Unknown → display error.
14. If QubEnvelope.sig_alg != 0x00 → verify author signature (see §9.4).
15. If cosigner_pubkey or cosigner_signature present → verify cosigner (see §9.7).
16. Render content using appropriate renderer (see §10 for text, §6 for pact).
17. Construct RevealedQub for display.

9. Subscriptio Auctoritatis

9.1 Ratio

Perpetue in memoria perpetua qub conduntur. Subscriptiones auctoritatis indefinite infalsificabiles manere debent, quare v1.0 schema post-quantum ML-DSA-65 (FIPS 204) potius adhibet quam schema classicum cuius securitas intra vitam perpetuam qub degradari possit.

9.2 Tabula Algorithmorum

sig_alg Schema Magnitudo Clavis Magnitudo Subscriptionis
0x00 Sine subscriptione (non subscriptum)
0x01 ML-DSA-65 (FIPS 204) 1,952 octeta 3,309 octeta

Spectatores valores sig_alg ignotos reicere DEBENT.

9.3 Constructio Praeimaginis Subscriptae

Duae versiones praeimaginis exstiterunt. Omnes subscriptiones V2 adhibere DEBENT, et verificatores V2 solam accipere DEBENT. Praeimago V1 legata (infra ad memoriam historicam documentata) ut auxilium solum-verificationis per migrationem ad V2 accepta est; illud auxilium abrogatum est, et subscriptio solum-V1 nunc reicitur.

V2 (currens — ab omni nova subscriptione auctoris producta, atque ab utraque subscriptione fluxus stationis / consubscriptionis pacti):

sig_input = SHA3-256(
    "QUB_AUTHOR_SIG_V2"  ||    // domain separator (17 bytes)
    version              ||    // u8 (1 byte)
    qub_id               ||    // [u8; 32] (32 bytes)
    body_hash            ||    // [u8; 32] (32 bytes)
    unlock_at            ||    // i64 big-endian (8 bytes)
    0x00                 ||    // u8 (1 byte): MUST be 0x00 in v1.x
    sender_label_hash    ||    // [u8; 32]: SHA3-256(NFC(sender_label)),
                               //   or 32 zero bytes when absent
    reply_to_or_zero           // [u8; 32]: parent qub_id, or 32 zero
                               //   bytes when absent
)

// Total preimage: 155 bytes → 32-byte hash

signature = Sign(author_secret_key, sig_input)

sender_label_hash eandem conventionem sentinellae-absentiae ac title_hash (§4.2.1) sequitur: 32 octeta nulla non sunt digestum SHA3-256 validum, ita ut "absens" numquam cum capsa praesenti collidere possit. Omnes campi latitudinis fixae sunt, ita ut praeimago sine praefixis longitudinis non ambigua sit.

V1 (legata — ABROGATA; non iam producta neque iam ad verificationem accepta):

sig_input = SHA3-256(
    "QUB_AUTHOR_SIG_V1"  ||    // domain separator (17 bytes)
    version              ||    // u8 (1 byte)
    qub_id               ||    // [u8; 32] (32 bytes)
    body_hash            ||    // [u8; 32] (32 bytes)
    unlock_at            ||    // i64 big-endian (8 bytes)
    0x00                       // u8 (1 byte): MUST be 0x00 in v1.0
)

// Total preimage: 91 bytes → 32-byte hash

Praeimago V1 sender_label et reply_to omittebat. Ut auxilium solum-verificationis per migrationem ad V2 accepta est; illud auxilium interim abrogatum est — verificatores praeimaginem V2 solam accipere DEBENT. Definitio hic ad memoriam historicam et ad separatorem dominii infra explicandum retinetur. Subscriptio quae solum contra V1 verificatur ut defectus verificationis tractari DEBET.

Separatores dominii: "QUB_AUTHOR_SIG_V1" / "QUB_AUTHOR_SIG_V2" sunt 17 octeta ASCII singuli ([0x51, 0x55, 0x42, 0x5F, 0x41, 0x55, 0x54, 0x48, 0x4F, 0x52, 0x5F, 0x53, 0x49, 0x47, 0x5F, 0x56, 0x31/0x32]). Nullum farciminis. Separator differens duas constructiones dominio disiungit, ita ut subscriptio super unam praeimaginem numquam ut altera verificari possit.

Octetum org_id_present: octetum post unlock_at sequens esse DEBET 0x00. Implementatio referens hoc ut constantem ORG_ID_PRESENT_INDIVIDUAL = 0x00 in crates/qub-core/src/signing.rs exponit; spectatores sig_input pro verificatione reconstruentes idem octetum emittere DEBENT.

Ambitus subscriptionis — quod tegitur et quod non. sig_input V2 se directe obligat ad version, qub_id, body_hash, unlock_at, sender_label, et reply_to (plus separator dominii fixus et octetum org_id_present). qub_id ipse derivatur ex version, content_type, created_at, unlock_at, outcome_at, drand_round, et body_hash per praeimaginem §4.1, ita ut quaevis mutatio in illis campis qub_id diversum producat et subscriptionem transitive invalidet. Superficies authenticata itaque est:

Campus Authenticatus per subscriptionem Quomodo
version Ingressus directus in sig_input
qub_id Ingressus directus
body_hash Ingressus directus
unlock_at Ingressus directus
sender_label Ingressus directus per sender_label_hash (praeimago V2 — sola forma accepta)
reply_to Ingressus directus per reply_to_or_zero (praeimago V2 — sola forma accepta)
content_type Transitive, per praeimaginem qub_id
created_at Transitive, per praeimaginem qub_id
outcome_at Transitive, per praeimaginem qub_id
drand_round Transitive, per praeimaginem qub_id (V1.2)
body Transitive, per body_hash = SHA3-256(body)
author_pubkey — (implicitus) Clavis quae subscriptionem verificavit auctor est, per definitionem
cosigner_pubkey / cosigner_signature Independenter subscriptum super eundem sig_input (vide §9.7)
drand_chain_id, tlock_ciphertext, visibility Campi SealedQub externi, non intra involucrum — per invariantes structurales suos teguntur (consistentia cycli / catenae) sed non per subscriptionem auctoris. (drand_round nunc transitive per praeimaginem qub_id adligatur — vide supra.)

Cur V2 sola praeimago accepta est.

Implementationes quae sender_label aut reply_to usuariis finalibus ostentant identitatem authenticatam (digitum pubkey, attestationem) ut signum identitatis primarium ostendere DEBENT, non capsam.

9.4 Procedura Verificationis

1. Read sig_alg from QubEnvelope.
2. If sig_alg == 0x00 → unsigned. No verification. Display "unsigned qub."
3. If sig_alg is unknown → reject. Display "unrecognised signature scheme."
4. Extract author_signature and author_pubkey. If either is absent → integrity error.
5. Reconstruct sig_input using fields from QubEnvelope (V2 formula, §9.3).
6. Verify(author_pubkey, sig_input, author_signature). The V2 preimage is the
   only accepted form — the legacy V1 fallback is retired (§9.3), so a
   signature that does not verify against V2 fails, full stop.
7. If verification succeeds → display "signed by [key fingerprint]."
8. If verification fails → display "signature verification failed."

Verificatio subscriptionis est operatio sumptuosissima (praesertim ML-DSA-65). Post omnes verificationes minoris pretii (spargmen, qub_id, unlock_at) peractas fieri OPORTET.

9.5 Attestationes Identitatis

Attestationes identitatis — mappa author_pubkey ad postulationes identitatis hominibus agnoscibiles ut manibrium qub, inscriptionem electronicam, manibrium sociale, vel litteras passkey — sunt augmentum progressivum a parte spectatoris et non requiruntur pro verificatione subscriptionis. Spectatores qui attestationes ad identitatem ostentatam resolvunt praecedentiam DEBENT applicare:

handle > email > social > fingerprint

Defalcum digiti est hex minusculus SHA3-256(author_pubkey); semper disponibile est pro quovis qub subscripto. Spectatores id pro exhibitione abbreviare POSSUNT — spectator referens qub: sequente primis et ultimis quattuor octetis reddit (qub:<8 hex>…<8 hex>).

Verificator conformis quamque verificationem in §9.4 perficere potest sine API qub contingendo, sine ulla rete praeter memoriam perpetuam et drand, et sine ulla quaesitione a parte servitoris. Resolutio attestationis est gradus separatus optimi conatus solum post verificationem subscriptionis prosperam peractus.

9.6 Impactus Magnitudinis

Ed25519 ML-DSA-65
Subscriptio 64 octeta 3,309 octeta
Clavis publica 32 octeta 1,952 octeta
Totale per qub 96 octeta 5,261 octeta
Differentia sumptus conservationis (apud ~$5/MB) ~$0.0005 ~$0.026

Pro qub textuali 500–2,000 octetorum, ML-DSA-65 fere triplicat magnitudinem conditam. Sumptus absolutus negligibilis est.

9.7 Verificatio Consubscriptoris (Pacta Bilateralia)

Pro pactis bilateralibus (content_type = 0x03), secundum stratum subscriptionis probat utramque partem in eosdem terminos consensisse.

Campi involucri:

Utrique campi simul praesentes esse aut utrique absentes DEBENT. Si exacte unus praesens est, spectatores errorem integritatis nuntiare DEBENT.

Procedura verificationis:

1. If cosigner_pubkey absent and cosigner_signature absent → no cosigner. Done.
2. If exactly one is present → integrity error.
3. Verify cosigner_pubkey != author_pubkey (prevent self-cosigning).
   Fail → display "cosigner pubkey must differ from author."
4. Reconstruct sig_input using the same formula as §9.3 (V2 only — the
   legacy V1 fallback is retired; all pact clients produce V2 signatures).
5. Verify(cosigner_pubkey, sig_input, cosigner_signature).
6. Success → display "co-signed by [cosigner fingerprint]."
7. Failure → display "co-signature verification failed."

Proprietates:

Cancellum-electronicae-adligationis (operationale). Cum pactum stationatum contactum electronicum Partis B fert (§6.1), servitium onerationis qub petitionem consubscriptionis recusare DEBET nisi nota verificationis electronicae brevis durationis exsistit utrique id stationis et spargmini-electronicae-normalizatae illius contactus congruens. Nota a /api/v1/auth/verify scribitur cum signum magici nexus staging_id fert et inscriptio verificata SHA-256(normalise_email(party_b.contact)) congruit — ubi normalise_email(addr) casum partis-localis servat et solum partem dominii minuscularizat (per RFC 5321 §2.3.11), et SHA-256 hic est spargmen NIST FIPS 180-4 (distinctum a SHA3-256 in derivationibus §4 adhibito) — et 900 secundis (15 minutis) post emissionem exspirat. Hoc est cancellum operationale anti-impersonationis, NON pars probae qub in catena — verificator tertiae partis §11 retegens solum memoriam perpetuam et drand opus habet, sine ulla quaesitione a parte servitoris. Nota a parte servitoris solum existit et numquam pars corporis subscripti est.

Impactus magnitudinis (ML-DSA-65 auctor + consubscriptor):

Componens Magnitudo
Subscriptio auctoris 3,309 octeta
Clavis publica auctoris 1,952 octeta
Subscriptio consubscriptoris 3,309 octeta
Clavis publica consubscriptoris 1,952 octeta
Onus cryptographicum totale 10,522 octeta
Differentia sumptus conservationis ~$0.05

10. Redditio et Mundatio Markdown

Haec sectio securitate critica est. Spectator qub textualia (content_type = 0x01) per Markdown subset restrictum reddit.

10.1 Elementa Permissa

10.2 Elementa Vetita

Elementum Tractatio
HTML crudum (<div>, <script>, etc.) Omnino exsectum. Nihil HTML transit.
Imagines (![alt](url)) Exsectae. Syntaxis imaginis ex exitu removetur.
Nexus ([text](url)) URL ut textus simplex visibilis redditur. Non auto-nexa. Non clickabilis sine actione usuarii explicita.
Schemata URL periculosa javascript:, data:, vbscript:, file: — exsecta.
Iframes, embeds, obiecta Exsecta.
Entitates HTML Solum decodificantur in characteres ostensionis si tutae sunt.

10.3 Implementatio

Implementationes lectorem stricti allowlist adhibere DEBENT, non blocklist. Approchatio commendata:

  1. Markdown per pulldown-cmark (vel aequivalentem) legere.
  2. AST ambulare et quemvis nodum non in allowlist (§10.1) demittere.
  3. Pro nodis nexuum: URL ut textum visibilem emittere, non ut elementum <a> clickabile.
  4. AST filtratum in repraesentationem intermediam typizatam convertere (e.g., enumeratio MarkdownNode cum solis variantibus tutis). HTML crudum in hac IR structuraliter inrepresentabile est.
  5. Ex IR typizata ad stratum visus targetis reddere (e.g., componentia visus reactiva, nodos DOM). Nulla concatenatio textus HTML aut innerHTML ullo loco.

Approchationes blocklist fragiles sunt quia novae extensiones Markdown aut quirka lectoris elementa infiltrata invehere possunt. Approchatio AST-typizata XSS structuraliter impossibilem efficit — nulla variants existit quae HTML arbitrarium ferre possit.

10.4 Limites Magnitudinis et Structurae


11. Verificatio Tertiae Partis

Quaevis tertia pars qub publicum verificare potest sine cooperatione qub. Procedura verificationis:

1. Obtain arweave_tx_id (from delivery URL or direct knowledge).
2. Fetch SealedQubCbor from any storage gateway.
3. Confirm storage block inclusion (block height, block timestamp).
4. Parse SealedQubCbor → SealedQub.
5. Fetch drand round signature for SealedQub.drand_round.
6. tlock_decrypt(tlock_ciphertext, round_signature) → QubEnvelope CBOR bytes.
7. Parse → QubEnvelope.
8. Verify SHA3-256(body) == body_hash.
9. Verify QubEnvelope.qub_id == SealedQub.qub_id.
10. Verify QubEnvelope.unlock_at == SealedQub.unlock_at.
11. If sig_alg != 0x00: verify author_signature (see §9.4).
12. All checks pass → qub is verified.

Quid verificatio probat:

Proba Quid stabilit
Obligatio Textus cifratus existebat ante tempus blochi memoriae perpetuae.
Integritas Corpus textus simplicis spargmini obligato congruit et non mutatum est.
Tempus Contentum illegibile erat usque ad cyclum drand, qui tempori reserationis electo correspondet (subiectum praesumptionibus securitatis tlock et drand).

Quid verificatio NON probat:

Non-proba Cur
Auctoritas sender_label ad ornamentum est. Sine sig_alg0x01, quisvis potuit hoc contentum signasse.
Intentio qub contentum et tempus probat, non quid creator subiective intendebat.
Tempus prae-eventus Inclusio blochi memoriae perpetuae actualem onerationem minutis tardare potest. Tempus obligationis est tempus blochi, non momentum quo usuarius "signa" pressit.

12. Versionatio

12.1 Versio Protocolli

Campus version (u8) in utroque SealedQub et QubEnvelope versionem maiorem protocolli identificat.

12.2 Historia Versionum

Versio Valor Descriptio
v1 0x01 qub publica textualia (content_type 0x01), pacta bilateralia (0x03, schema structured/v1, auctor ML-DSA-65 + consubscriptor), tlock, SHA3-256

12.3 Compatibilitas Prospiciens

Spectator v1 occurrens QubEnvelope cum clavibus mappae CBOR ignotis (claves non in ordine canonico §3.2) id cum errore decodificationis reicere DEBET (§3.1). Compatibilitas prospiciens campo version vehitur, non tolerantia clavium: additiones futurae — etiam metadata minora — sub novo valore version invehuntur, quem spectator v1 cum errore claro "protocollum recentius" reicit potius quam contentum quod subscriptiones obligant tacite abiciendo.

Spectator v1 occurrens sig_alg = 0x01 (ML-DSA-65) sed cum supporto verificationis ML-DSA-65 carens contentum qub cum notitia "subscriptio praesens sed non verificabilis" ostentare OPORTET, non qub omnino reicere. Implementatio referens hodie omnem valorem sig_alg praeter 0x00 et 0x01 reicit quia tabula v1 nullum alium algorithmum validum continet — reiectio stricta et soft-fail observationaliter identicae sunt usque ad tertium algorithmum registratum. Comportamentum soft-fail supra onus-portans fit cum §9.2 novum ingressum admittit, et spectator referens eo puncto ad soft-fail renovabitur.

12.4 Versio Involucri Externi

OuterWrapper in §13 descriptum suum octetum version fert, independens ab SealedQub.version et QubEnvelope.version. Spatia versionum duo separatim evolvuntur: substitutio symmetrica post-quantum-tuta futura octetum involucri inscandit sine versione protocolli interni tangenda, et additio strati-protocolli futura (e.g., novus campus involucri) versionem internam inscandit sine octeto involucri tangendo.

OUTER_WRAPPER_VERSION_* Valor Algorithmus Status
OUTER_WRAPPER_VERSION_1 0x01 AES-256-GCM cum nonce 12-octetorum, etiquetta authenticationis 16-octetorum, AAD ad qub_id adligata defalcum v1
0x020xFF Reservatum Futurum

Spectatores versiones involucri ignotas cum errore claro reicere DEBENT. Protocollum consulto spatium versionum involucri angustum servat usque ad agentem migrationis concretum apparentem (e.g., normam NIST aliud AEAD favens); receptaculum 0x02 in eadem revisione qua algorithmus invehetur allocabitur.


13. Involucrum Cifrationis Externum

13.1 Ratio

Strata protocolli (QubEnvelope → tlock → SealedQub) qub signatum temporalibus claustris obligatum efficiunt: corpus illegibile est usque ad unlock_at et subscriptio cycli drand publicata est. Post reserationem tamen, subscriptio cycli publica est et figura CBOR canonica SealedQub agnoscibilis est, ita ut metalator qui transactiones memoriae perpetuae indexavit totum corpus qub in bulkis decifrare possit.

Involucrum cifrationis externum hoc canale claudit interponendo additionale stratum symmetricum AEAD inter SealedQubCbor canonicum et octeta in memoria perpetua imposita. Clavis 256-bitorum K solum in URL fragmento URL traditionis et in machinis usuariorum vivit; navigatores fragmenta URL ad servitores non transmittunt, ita ut qub.social, omnis porta memoriae perpetuae, et omnis CDN ante alterutram observationaliter ad K caecae sint. Omne qub in memoria perpetua itaque est textus cifratus opacus cuius textus simplex sine URL quem creator communicare elegit irrecuperabilis est.

Effectus retis:

13.2 Stratificatio

plaintext body                       ← QubEnvelope.body (§2.2)
  ↓ canonical CBOR (§3)
envelope CBOR
  ↓ tlock encrypt to drand round (§7 step 10)
tlock_ciphertext (inside SealedQub) (§2.3)
  ↓ canonical CBOR (§3)
SealedQubCbor bytes                  ← inner wire artifact
  ↓ AES-256-GCM(K, nonce, AAD=qub_id) (§7 step 12a, this section)
OuterWrapper CBOR bytes              ← uploaded to permanent storage (§7 step 15)

Signare et reserare in strato protocolli (§7, §8) immutata sunt infra confinium involucri; involucrum se ad locum vocationis seal() attingit et se ad locum vocationis unlock() separat.

13.3 Structura Datorum OuterWrapper

struct OuterWrapper {
    version:    u8,           // 0x01, see §12.4
    qub_id:     [u8; 32],     // copied from inner SealedQub; AEAD AAD
    nonce:      [u8; 12],     // 96-bit AEAD nonce
    ciphertext: Vec<u8>,      // AES-256-GCM(K, nonce, SealedQubCbor, AAD=qub_id) || 16-byte tag
}

Invariantes camporum.

Codificatio CBOR. CBOR canonicum per §3, cum eadem regula ordinis clavium (per longitudinem octetorum codificatorum ascendentem, deinde lexicographice). Quattuor claves sunt:

Clavis Octeta codificata Ordo
nonce 6 1
qub_id 7 2
version 8 3
ciphertext 11 4

Primum octetum OuterWrapper CBOR itaque est caput mappae longitudinis definitae pro mappa 4-ingressuum (0xA4).

13.4 Adligatio AAD ad qub_id

Involucrum qub_id ut AEAD additional authenticated data adligat. Hoc est defensio structuralis onus-portans contra tres classes oppugnationis:

Oppugnatio Defensio
Textum cifratum sub diverso campo qub_id in involucro movere Discordantia AAD → authenticatio AEAD fallit
Misceri fragmentum URL qub A cum octetis memoriae perpetuae qub B Discordantia AAD → authenticatio AEAD fallit
Violare campum qub_id involucri post onerationem Discordantia AAD → authenticatio AEAD fallit

Ferre qub_id in textu simplici involucri immunitatem enumerationis significanter non infirmat — qub_id ipse est spargmen SHA3-256 praeimaginis §4.1 sine praeimagine recuperabili ex digesto, et enumerator qui iam octeta involucri metavit nihil discit ex qub_id visibili quod ex existentia onerationis ipsius inferre non potuisset.

13.5 Algorithmi Involucrandi et Disinvolucrandi

wrap_sealed_qub(SealedQubCbor S, qub_id Q, key K, nonce N):
    require K.len() == 32 and N.len() == 12 and Q.len() == 32
    C := AES_256_GCM_encrypt(key=K, nonce=N, msg=S, aad=Q)
    // C includes the 16-byte authentication tag at the end
    return canonical_cbor_encode(OuterWrapper{
        version:    0x01,
        qub_id:     Q,
        nonce:      N,
        ciphertext: C,
    })

unwrap_sealed_qub(OuterWrapper bytes W, key K):
    require K.len() == 32
    O := canonical_cbor_decode(W) as OuterWrapper
    require O.version == 0x01           // §12.4
    P := AES_256_GCM_decrypt(
            key=K, nonce=O.nonce, ciphertext=O.ciphertext, aad=O.qub_id
         )
    // any AEAD failure → DECRYPT_FAILED, indistinguishable to caller
    return P                            // P is the inner SealedQubCbor

Collapsus modi-fallendi. K falsum, nonce falsum, discordantia AAD, et textus cifratus violatus omnia eundem errorem DECRYPT_FAILED producunt. Hoc est proprietas AEAD consulta: distinguere modum fallendi canalem lateralem crearet quem oppugnator remotus probare posset mittendo involucra malformata et tempus responsi metiendo. Implementationes referentes omnes failurae AEAD ad unam errorem formam collapsare DEBENT.

13.6 Materia Clavis et Distributio

Clavis involucrandi K est valor random uniformis 256-bitorum per qub a CSPRNG generatus. Implementationes referentes eum ex his fontibus haurient:

Distributio: K ut base64 URL-tuta codificari DEBET (RFC 4648 §5, sine farcimine) et ad URL traditionis ut componens fragmenti adici:

delivery_url = <origin>/c/<arweave_tx_id>#<base64url(K)>

Fragmentum a navigatore conformi ad nullum servitorem umquam transmittitur. Canales recuperationis (index historiae a parte servitoris, auto-missio per inscriptionem electronicam optionalis) qui plenum URL traditionis — fragmentum inclusum — ultra machinam usuarii persistunt sunt commercium explicitum contra habitum defalci cripto-tritae et a consensu usuarii explicito pendere DEBENT.

Amissio fragmenti. Si usuarius fragmentum URL amittit et nullum canalem recuperationis habet, qub illegibile est. Hoc est commercium onus-portans designi et usuario tempore signandi divulgari DEBET. MVP divulgationem tempore signandi cum copia "serva hoc URL" explicita et canale recuperationis inscriptionis-electronicae-verificatae pro usuariis qui optant fortificat.

13.7 Extra Ambitum Huius Sectionis

13.8 qub publica (omissio involucri)

Involucrum externum optionale in strato traditionis est. Creator qub ut publicum signare potest, quo casu SealedQubCbor canonicum directe in memoriam perpetuam scribitur, sine ullo strato OuterWrapper et sine clave K:

SealedQubCbor bytes  ──(public)──▶  uploaded to permanent storage as-is
SealedQubCbor bytes  ──(private)─▶  AES-256-GCM(K, …) ▶ OuterWrapper ▶ uploaded

qub publicum temporalibus claustris obligatum est sed nexu non controllatum: illegibile manet usque ad cyclum drand suum publicatum (stratum tlock immutatum est), sed post reserationem quivis qui arweave_tx_id habet illud decifrare potest — nullum fragmentum URL requiritur, quia nulla K est. Hoc est commercium consultum pro superficiebus quas servitor agere DEBET: epistulae nuntiationis tempore revelationis, involucra tertiae partis, et SEO ditior post revelationem omnia nexum requirunt qui sine arcano quod servitor numquam tenet operatur (§13.6).

Effectus quos productor in computum ducere DEBET:

Privatum (involutum) defalcum manet; publicum est electio creatoris explicita per qub.


14. Vectores Probationis

14.1 Derivatio qub_id

Input:
  version      = 0x01
  content_type = 0x01
  created_at   = 1735689600 (2025-01-01 00:00:00 UTC)
  unlock_at    = 1736294400 (2025-01-08 00:00:00 UTC)
  outcome_at   = absent
  drand_round  = 4695445  (= (1736294400 - 1595431050) / 30, drand mainnet params §14.2)
  body         = "Hello, future."  (UTF-8, 14 bytes)
  title        = absent

Intermediate:
  body_hash  = SHA3-256("Hello, future.")
             = 76ab8b3f843c6ed4f2d0fd75b9f457b4
               ad49dd4450f9c22723ae430e3af3211d
  title_hash = [0u8; 32]   (title absent — §4.2.1 sentinel)

Domain separator (10 bytes):
  [0x51, 0x55, 0x42, 0x5F, 0x49, 0x44, 0x5F, 0x56, 0x32, 0x00]

Preimage (108 bytes — V1.2):
  domain_separator   ||  // 10 bytes
  0x01               ||  // version
  0x01               ||  // content_type
  0x0000000067748580 ||  // created_at as i64 big-endian (1735689600)
  0x00000000677DC000 ||  // unlock_at as i64 big-endian (1736294400)
  0x0000000000000000 ||  // outcome_at_or_zero (outcome_at absent)
  0x000000000047A595 ||  // drand_round as u64 big-endian (4695445)
  body_hash          ||  // 32 bytes
  title_hash             // 32 bytes (all-zeros sentinel; title absent)

Expected output:
  qub_id = SHA3-256(preimage)
         = 3a9fcb31b750d985c262fada6d4f777f
           d6a28be831d941d85c131f5a4bbaf8a4

Implementationes valores body_hash et qub_id identicos pro hoc ingressu producere DEBENT. Hic vector probationis primus unitatis probationis scriptus esse OPORTET. Valores canonici supra ab implementatione referente computati sunt et bit-per-bit congruere DEBENT. Dispositiones praeimaginis historicae (ante immissionem — nulla qub viva ex his pendebant): qub_id V1.0 92-octetorum erat 3d9fc2390eab043d38a1669ed3b71be76f9eefe872b9569ab1aaa027b88392b0; qub_id V1.1 100-octetorum (post outcome_at_or_zero complicatum) erat b0d032898ad629795150fdcb3f84e518f59ed05b7a2a82bc24ebdb87f52144ed. V1.2 drand_round complicat et separatorem dominii ad QUB_ID_V2 auget.

14.2 Mappa Cycli-Reserationis

Input:
  unlock_at           = 1735689600
  chain_genesis_time  = 1595431050
  chain_period_seconds = 30

Calculation:
  (1735689600 - 1595431050) / 30 = 4675285.0
  ceil(4675285.0) = 4675285

drand_round = 4675285

14.3 Iter Vicissim CBOR Canonicum

Implementationes verificare DEBENT serialize(parse(serialize(qub))) == serialize(qub) pro omnibus ingressibus validis. Haec est probatio proprietatum, non vector singulus.

14.4 PactTerms CBOR (content_type 0x03)

Input:
  pact_version = 1
  title        = "Scooter deposit"
  terms        = [
    { key: "Item",    value: "Honda Metropolitan scooter" },
    { key: "Price",   value: "$100" },
    { key: "Deposit", value: "$10" }
  ]
  party_a      = { label: "Alice" }
  party_b      = { label: "Bob", contact: "bob@example.com" }
  notes        = absent

Canonical CBOR key order (PactTerms):
  "notes"(6) < "terms"(6) < "title"(6) < "party_a"(8) < "party_b"(8) < "pact_version"(13)

Canonical CBOR key order (PactTerm):
  "key"(4) < "value"(6)

Canonical CBOR key order (PartyIdentifier):
  "label"(6) < "contact"(8)

Octeta CBOR canonica et body_hash SHA3-256 ab implementatione referente computantur. Implementationes CBOR octetum-identicum pro hoc ingressu producere DEBENT.

Implementationes etiam verificare DEBENT serialize(parse(serialize(pact))) == serialize(pact) pro omnibus ingressibus PactTerms validis (probatio proprietatum).

14.5 Vectores Cross-Linguistici Involucri Externi

Involucrum externum (§13) habet fixuram canonicam separatam apud crates/qub-core/tests/vectors/wrapper_v1.json. Quisque casus fixit tuplum (key, nonce, qub_id, sealed_cbor) ut ingressus hex opacos et exitum specificum expected_wrapper_hex asserit. Utraeque implementationes referentes idem ipsum file JSON consumunt:

Fixura currenter tres casus affigit:

Casus Coverentia
basic-text-public Minima figura SealedQub realistica; nulli campi optionales. Figuram involucri canonicam pro qub typico v1.0 stabilit.
with-recipient-pubkey SealedQub cum recipient_pubkey posito (semita Phasis 2). Diversum complexum clavium internarum CBOR, diversum qub_id.
longer-body Corpus ~4 KiB — multi-octeta praefixa longitudinis CBOR intra utrumque involucrum internum et textum cifratum externum exercet.

Implementationes expected_wrapper_hex octetum-identicum pro ingressibus recordatis producere DEBENT. Regenerare fixuram requirit QUB_REGEN_VECTORS=1 cargo test -p qub-core --test wrapper_vectors et mutationibus formae consultis reservatur.


15. Gubernatio Profili Cryptographici (Futurum)

Haec sectio informativa est pro v1 et normativa fit prima vice qua secundus algorithmus in ullum primordium cryptographicum qub ingreditur.

15.1 Habitus Currens

Protocollum v1 exacte unum algorithmum per primordium adligat:

Verificatores currenter longitudines clavium et subscriptionum per primordium duro-codificant. Nulla superficies agilitatis a forma filiformi exponitur.

15.2 Figura Intenta

Cum secundus algorithmus protocollum ingreditur, verificator pro CryptoProfile nominato configurabitur (e.g., ExqubV1) complexum exactum valorum permissorum per primordium enumerans — sig_alg, catenae drand, versiones involucri, typi contenti. Profilum tempore verificationis fixum est, numquam intra-bandam negotiatum. Quivis valor extra profilum activum reicitur.

Hoc cavet ne addere ML-DSA-87 aut activare Ed25519 retroactive configurationes verificatorum existentes infirmare possit: verificator v1 verificator v1 manet etiam postquam profilum v2 publicatum est.

15.3 Condiciones Pellentes

Promove §15 ad statum normativum cum quidvis horum proponitur:

Usque tunc §15 est receptaculum quod figuram migrationis affixit ita ut PR futurae contra target notum cadunt potius quam superficiem negotiationis ex integro re-litigando.


16. Tabularium Perspicuum et Gradus Durabilitatis (Designum — recensio completa)

Status. Haec sectio est specificatio designi. Formae filiformis, spargminatio, et exemplar fiduciae infra normativa sunt pro implementatione, sed nullum codex tabularii perspicui adhuc emissum est. Recensio externa W5 completa est: §16.15 decisiones resolutas et condiciones lanceandi adligantes ex ea ortas recordat. Implementatio sub illis condicionibus procedere potest. §16 manet prospiciens eodem sensu quo §15 — target figit ita ut implementatio contra designum sedatum cadat potius quam exemplar fiduciae in recensione codicis re-derivando. Stricte additivum est — omne qub existens suam transactionem Arweave individualem retinet et nulla mutatio formae filiformis SealedQub / QubEnvelope est.

16.1 Ratio et Gradus Durabilitatis

Hodie durabilitas qub eiusque obligatio temporalis ambae in unica transactione Arweave per-qub (§11) nituntur. Hoc latentiam signandi ad finalitatem Arweave coniungit, onerationem per-qub limen pretii producti efficit (ARWEAVE_DAILY_CEILING), et nullam ordinationem manifestae-violationis trans qub praebet. Tabularium perspicuum duo strata infra et circa illum unicum gradum addit:

Gradus Nomen Garantia Quando
T1 Confirmatio synchrona R2-prima Solum durabilitatis — octeta signata in repositorium durabile scribuntur antequam signatio redit (< 300 ms p95). Omne qub, synchrone (§16.10).
T2 Inclusio tabularii perspicui fasciculata Obligatio universalis solum-additiva, manifestae-violationis + ordinatio totalis, ad Arweave ancorata. Omne qub, dilata + fasciculata (§16.5–16.7).
T3 Perpetuitas Arweave per-qub Transactio Arweave individualis pro qub. Auctio soluta, et fallback Arweave-indisponibilitatis (§16.8).

T2 Arweave per-qub electionem (T3) potius quam unicam viam durabilitatis efficit. ARWEAVE_DAILY_CEILING ut limen pretii producti retiratur et ad interruptorem circuitus in dedicata crumena ancorae solum demovetur (§16.7); signationes usuarii numquam ob eum excessum reiciuntur.

Honestas durabilitatis (resoluta — §16.15 Q6). Durabilitas non regreditur: scriptio T1 R2 synchrona et semel-scripta est, ita ut qub gradus-gratuiti quod T3 non emit plene durabile sit eo instanti quo signatio redit. Quod incrassatur est tempus obligationis superioris-limitis probabile: pro qub gratuito fit tempus blochi ancorae potius quam tempus blochi transactionis per-qub. Ad volumen humile — habitus realisticus primi-lanceandi et extra-fastigii — plena cadentia diurna est solum typicum, non casus rarus marginis. Inquadratura producti igitur est limes superior cum nulla latentia numerica adligata — "signatum et durabile nunc; tempus publicum independens ad proximam ancoram tabularii additur (typice diurnum)" — et proba obligationis horae-exactae est proprietas T3 soluta, divulgata ad superficiem comparationis-graduum et in condicionibus (§16.11, §16.15 Q6). Quivis limes temporis est SLO internus solum, numquam SLA promotum.

16.2 Structura LogLeaf (duae figurae adligatae)

Ingressus tabularii est LogLeaf, ut CBOR canonicum manu-scriptum sub profilo §3.1 codificatus (longitudinis-definitae, sine etiquettis, sine flotantibus, integri formae-brevissimae, textus NFC, campi optionales omissi cum absentes, claves per longitudinem octetorum codificatorum ascendentem deinde octetum-per-octetum ordinatae). Custodia canonica §3.1 parse → re-codifica → compara in itinere codificandi ante spargminationem applicatur (non solum in decodificatione), ita ut duae implementationes de octetis folii per discordantiam latitudinis-integri aut ordinis-clavium dissentire non possint. Omnes integri sunt u8 / u64 / i64; omnia spargmina sunt textus octetorum 32-octetorum (bstr[32]). Identificator transactionis Arweave repositus est spargmen SHA-256 32-octetorum nudum ut bstr[32] latum, numquam textus base64url (congruit §3.3).

Folium habet duas figuras per octetum kind selectas, quia in itinere onerationis defalci Worker octetum-caecum est: POST /api/v1/upload solum qub_id et unlock_at ut assertiones clientis infidas recipit — body_hash, drand_round, created_at, et drand_chain_version omnia intra involucrum externum §13 obsignata sunt, cuius clavem Worker numquam tenet. Solum iter servitoris-signandi (POST /api/v1/seal) body_hash / drand_round ex textu simplici derivat. Unica figura folii ferens body_hash + drand_round igitur valores obligaret quos operator pro maiore parte qub realium numquam verificavit. Scissio omnem valorem obligatum honestum servat:

Clavis Long. cod. Typus Praesentia Significatio
seq 4 u64 requisita Index folii globalis 0-basatus; positio ad quam proba inclusionis obligatur.
kind 5 u8 requisita 0x01 attestatum (servitor-signat) aut 0x02 assertum (cliens-signat / oneratio octetum-caeca).
ref 4 bstr[32] requisita Identificator referentiae folii. Attestatum → qub_id nudum. Assertum → identificator excaecatus SHA3-256(qub_id ‖ log_blind_secret) (§16.2.1).
chash 6 bstr[32] requisita Inscriptio contenti SHA3-256(stored_bytes) — unicus nexus contenti quem Worker semper honeste computare potest, in utroque itinere.
unlock_at 10 i64 requisita Copiatum (attestatum) aut assertum (assertum); validatum > 0 antequam folium intrat.
received_at 12 i64 requisita Horologium-muri Worker ad confirmationem R2. Non-probatorium (operator-assertum; §16.6). Praesens pro autodescriptione, numquam proba. Validatum > 0.
body_hash 10 bstr[32] kind=0x01 solum Omissum in 0x02 — Worker eo sub §13 caret.
drand_round 12 u64 kind=0x01 solum Omissum in 0x02.

Folium kind=0x02 consulto neque body_hash neque drand_round obligat: obligationem et ordinationem textus cifrati opaci ad inscriptionem contenti chash attestat, qub_id et unlock_at vindicans — non textum simplicem aut cyclum suum. Crura textus-simplicis/cycli pro qub asserto ex verificatione fasciculi .qub §11 existente, non ex tabulario, veniunt (§16.11). drand_chain_version non est in folio (intra involucrum est in itinere defalci); granularitas catenae in ancora vivit (§16.7). Disciplina codificatoris: reice ref aut chash omni-zero, et reice unlock_at / received_at non-positivum, custodiam sentinellae outcome_at > 0 in cbor.rs reflectens.

16.2.1 Excaecatio qub privati

Tabularium non fieri debet oraculum enumerationis quod involucrum externum §13 prohibere existit (§13.1). Pro qub privato (involuto) folium asserted identificatorem excaecatum SHA3-256(qub_id ‖ log_blind_secret) obligat, ubi log_blind_secret est arcanum a servitore tentum, et body_hash omittit. Tertia pars tale folium ad specificum qub_id ligare non potest; tentor qub, qui URL traditionis et igitur qub_id habet, excaecationem recomputare potest ut suam ipsius inclusionem confirmet. qub publicum (iam enumerabile, iam etiquettam Arweave Visibility: public per §13.8 ferens) qub_id nudum obligat. Hoc est unicus locus ubi verificabilitas solitaria consulto invarianti privatatis onus-portanti cedit; nexus solitarius pro qub privatis est chash (§16.9).

Custodia log_blind_secret (resoluta — §16.15 Q4). Excaecatio inligabilitatem folii, non confidentialitatem textus simplicis (involucrum §13 illam independenter tenet), protegit. In compromisso log_blind_secret, pro quovis qub_id quod adversarius iam tenet aut reconstruere potest (omne qub cuius fasciculum/URL habet, plus quivis qub_id humilis-entropiae aut publicus) ref folii in uno spargmine recomputat et illud ligat — hoc est ligatio directa populationis notae, non vis-brutalis trans spatium ignotum. Classifica log_blind_secret ut arcanum gradus-correlationis/Sybil in eodem gradu custodiae quo alia arcana servitoris, et rota solum-prorsum (rotatio futura folia re-excaecat; iam-ancorata retroactive inligare non potest).

16.3 Spargminatio Folii et Nodi

Spargminatio domino-separata RFC 6962 §2.1 cum SHA-256 a SHA3-256 substituto:

leaf_hash      = SHA3-256(0x00 || canonical_cbor(LogLeaf))
node_hash(l,r) = SHA3-256(0x01 || l || r)
empty tree     = SHA3-256("")          // defined but never anchored

Octeta praefixi dominii 0x02 (catena ingressuum, §16.4) et 0x03 (spargmen STH, §16.6) reservata et ab his disiuncta sunt. Octeta singularia sunt et igitur cum separatoribus dominii ASCII 10-octetorum existentibus (QUB_ID_V2, etc.) collidere non possunt. Arbor est arbor RFC 6962 sinistro-plena impar (quaeque scissio interior ad maximam potestatem duarum stricte minorem quam numerus foliorum subarboris), quod probis inclusionis et congruentiae unum algorithmum itineris-auditus communicare permittit. Specificatio referens pseudocodicem derivationis sinistrae/dextrae explicitum fert et vectorem probationis non-potestatis-duarum (5-foliorum) affigit ita ut casus promotionis marginis-dextri — quem vector 4-foliorum celat — exerceatur.

16.4 Catenatio Spargminis (interna)

LogDO catenam ingressuum internam pro consistentia-collapsus solum servat. Numquam publicatur et numquam verificatori-aspectans est:

entry_chain[seq] = SHA3-256(0x02 || entry_chain[seq-1] || leaf_hash[seq])
entry_chain[-1]  = SHA3-256("QUB_TLOG_GENESIS_V1")

Auctoritas solum-additiva publicata est radix Merkle cumulativa + sua ancora (§16.5–16.6), numquam ordo nudus quo operator forte folia servit: catena pro quovis ordine servato recomputat, ita ut sola radix ancorata positionem canonicam figat.

16.5 Arbor Merkle Cumulativa et Fasciculatio

Est una arbor RFC 6962 semper-crescens super omnia folia in ordine seq — non arbores per-fasciculum isolatae. (Constructio catena-folii-portati per-fasciculum reiecta est: non est vera relatio praefixi, ita ut suae "probae congruentiae" insanae sint.) Arbor cumulativa probas congruentiae RFC 9162 genuinas dat et unicae ancorae recenti inclusionem pro quovis qub vetustiore probare permittit.

Obiectum Durabile LogDO est unicus scriptor (blockConcurrencyWhile, QuotaDO / EntitlementDO reflectens) — adicere ad tabularium commune est lege-modifica-scribe in statu communi et igitur per DO ire DEBET, numquam per KV. Frontem dexteram arboris (O(log n) spargmina) cellat ita ut fasciculum claudere sit O(batch). Fasciculus est complexus foliorum simul ancoratorum; eius pellentes configurabiles sunt, non protocollo-congelati: progressio tree_size ad minimum LOG_BATCH_MAX_LEAVES (defalcum 4096), aut aetas cadentiam ancorae attingens, aut purgatio coacta cum signatio T3 soluta cadit. root_i est Spargmen Arboris Merkle cumulativum super folia 0 .. tree_size_i.

16.6 Caput Arboris Subscriptum per Ancoram Arweave

Transactio ancorae Arweave est Caput Arboris Subscriptum et subscriptionem operatoris substituit pro ipso capite arboris: ancora diurna nulla clave qub eget quia owner transactionis Arweave est subscriptio. Thesis moatis tenet — substratum immutabile, non arcanum a qub tentum, onus-portans est pro radice ancorata.

Est exacte una clavis signandi qub calida in designo, et affixa est: clavis apochae per-signationem (§16.10). Eius clavis publica in LogProfile obligatur (cum verificatore distributa) et ab anchor_owner cross-subscripta, ita ut verificator apocham contra eandem radicem affixam ac ancoram validet. Hoc est resolutio §16.15 Q2 — clavis apochae non-affixa, operatore-rotabilis, repudiabilis esset (operator clavem suam esse negare posset), quod valorem responsabilitatis apochae contra adversarium gradus-operatoris quem apocha deterrere existit vacaret. Igitur: qub nullam clavem tabularii-signandi non-affixam tenet; clavis apochae affixa et anchor_owner-cross-subscripta est.

SignedTreeHead est CBOR canonicum (claves per longitudinem codificatam): size:u64, root:bstr[32], batch:u64, prev:bstr[32] (prior sth_hash; genesis = 32 octeta zero), log_id:bstr[32], first_seq:u64, anchored_at:i64. Eius spargmen est sth_hash = SHA3-256(0x03 || canonical_cbor(SignedTreeHead)).

Radix fiduciae affixa. log_id = SHA3-256("QUB_TLOG_V1" || anchor_owner_address). Verificator conformis anchor_tx.owner == LogProfile.anchor_owner exigere DEBET, ubi anchor_owner (et clavis publica clavis-apochae) in qub_core ut LogProfile coctus est — iuxta constantes quicknet iam in DrandTimelockProvider::quicknet() — et cum binario verificatoris distributus. Verificator etiam adligationem datorum → tx_id transactionis Arweave localiter verificare DEBET potius quam responso portae /raw/ fidere. Hoc foramen aequivocationis crumenae-malefidae claudit: "ad Arweave ancoratum" insignificans est usque ad verificatorem quam crumenam affigat.

Rotatio est gubernationis §15 extensio, non reusus (resoluta — §16.15 Q3). Superficies profili §15.2 currenter solum sig_algos / catenas drand / versiones involucri / typos contenti enumerat, et pellentes §15.3 nullum horum recensent — LogProfile / anchor_owner nondum in superficie §15 est. Gubernatio rotationis igitur aedificanda est: §15.3 extenditur (infra) ut pellens LogProfile addatur, et rotatio est bumpium LogProfile subscriptum in renovatione verificatoris emissum. Rotatio provisa cross-subscriptionem exiens → ingrediens fert; rotatio compromisso-pulsa non potest (clavis exiens infida/indisponibilis est tunc praecise) et ad bumpium §15-gubernatum recidit, cum reprehensione furcae-anchorae-prioris (infra) damnum interim limitante.

Fenestra aequivocationis (parametrum fiduciae primae-classis). Folium aequivocationi-resistens est solum cum sua ancora tegens Arweave-confirmata est. Fenestra est received_at → confirmatio ancorae (≤ cadentia + finalitas Arweave). Intra eam solae garantiae sunt apocha signationis affixa (§16.10) et integritas operationalis qub. Tres artefactus responsabilitatis hoc honestum potius quam manu-iactatum efficiunt (exemplar testis est resolutio §16.15 Q2):

  1. Apocha signationis subscripta affixa — analogon SCT in responso onerationis redditum (§16.10), a clave apochae affixa, anchor_owner-cross-subscripta subscriptum. Folium ante suam ancoram lapsum victimae apocham non-repudiabilem ad publicandum relinquit, foramen tacitae-omissionis claudens.
  2. Methodologia monitoris publicata + ambulatio prae-catenae — catena prev ancorae caput→genesis ambulatur; furca (duae ancorae ad unam size cum diversa root, aut prev fracta) est proba publicabilis malefacti. Detectio aequivocationis est obligatio operationalis declarata, non praesumptio tacita.
  3. Capita dupla auto-publicata — quodque novum caput {sth_hash, tree_size} ad dedicatum repositorium GitHub publicum, solum-additivum a qub possessum affigitur (crus auto-publicationis manifestae-violationis onus-portans), cum poste sociali ut corroboratione optima-conatus solum. Affixio fallens paginare DEBET (non tacite fallere).

Limes honestatis (condicio adligans). Quia qub utramque superficiem affigendi controllat, hoc est auto-publicatum, non independenter testatum. Nulla superficies producti, promotionis, aut legalis vindicare potest tabularium "independenter testatum" esse; vindicatio permissa est aequivocationem detectabilem esse et apocham non-repudiabilem relinquere. Testis tertiae-partis verus independens ad bumpium gubernationis §15 futurum dilatus est.

received_at operatore-assertum est et nulla vindicatio in eo niti potest — numquam ut proba aut ut corroboratio disputationis in ulla superficie producti / legali / API / probae-reddendae exhibetur. Tempus blochi ancorae Arweave T est unicum tempus infidum (limes superior "registratum per"). Quaevis reprehensio sanitatis monitoris in received_at contra T, non contra campum STH anchored_at operatore-controllatum, comparare DEBET; talis reprehensio est custodia contra mendum horologii operatoris honesti solum, non controllum responsabilitatis contra operatorem malefidum (§16.15 Q5).

16.7 Forma et Cadentia Transactionis Ancorae

AnchorBundle est corpus transactionis Arweave CBOR-canonicum, per bundler §16.8 scriptum: ver:u8, sth:bstr (octeta SignedTreeHead canonica), prev_anchor:bstr (id transactionis ancorae prioris octeta nuda; ad genesim omissum), chain_hash:tstr (catena drand in vigore — quicknet), et fluxus folii-CBOR fasciculi in ordine seq ita ut ancora se-contenta sit: monitor root ex corpore cum nulla qub dependentia re-derivat. (Si fluxus folii ad volumen altum magnus fit, revisio futura solum gamam foliorum per referentiam obligare potest; notatum, non in v1 adoptatum.)

Etiquettae Arweave consulto enumerabiles sunt — tabularium destinatum est ut reperiatur, dissimile qub privatis: App-Name: qub-tlog, Anchor-Format: 1, Log-Id: <hex>, Batch: <n>, Tree-Size: <n>, Root: <hex>, Prev-Anchor: <tx>, Content-Type: application/cbor. Etiquettae sunt monita infida; corpus CBOR sola auctoritas est.

Cadentia: diurna per defalcum, cum volumine revisita (pellens magnitudinis cadentiam effectivam sub onere auto-breviat); signatio T3 soluta ancoram cogit ita ut clientes solventes numquam diem expectent. Crumena ancorae dedicata et humilis-velocitatis est, separata a crumena onerationis — suum proprium JWK esse DEBET (clavis distincta, non rolus logicus in crumena onerationis) ita ut compromissum crumenae-onerationis ancoras fingere non possit — cum durum budgetum per-diem transactionum-ancorae (ARWEAVE_DAILY_CEILING demotum). Habitus custodiae plane declaratur: clavis calida angusti-ambitus cum stricto interruptore circuitus et humili statera, non "frigida" — crumena quae diurne auto-subscribit frigida esse non potest, et specificatio non simulat.

16.8 Bundler ANS-104

Codificator DataItem ANS-104 domesticus et signator deep-hash, roughe 300 lineae, Web Crypto solum, nullae dependentiae npm (utrumque SDK Turbo custodiam supply-chain npm ci --ignore-scripts fallit). Dispositio octetorum DataItem:

signatureType (2, LE) || raw_signature || owner || target(flag+0|32) || anchor(flag+0|32) || num_tags(8, LE) || tags_len(8, LE) || avro_tags || data

Signatio est deepHash Arweave — spargmen SHA-384 recursivum (requisitum filiforme Arweave, crypto.subtle.digest("SHA-384")) super ["dataitem", "1", sig_type, owner, target, anchor, encoded_tags, data] — deinde RSA-PSS super deep hash cum crumenae JWK per crypto.subtle; id = base64url(SHA-256(signature)). SHA-384 hic quarantinatum est ut primordium Arweave-filiforme-solum, numquam primordium fiduciae qub (§15 saeptum recordat; spargminatio fiduciae qub est SHA3-256 ubique).

Unum iter codicis tres consumptores servit: perpetuitatem per-qub T3 solutam, fallback Arweave-indisponibilitatis (incoda DataItem, redde confirmationem R2-primam utcumque — hoc finem-mortuum ARWEAVE_UNAVAILABLE 503 currentem claudit), et AnchorBundle scribere. Schema subscriptionis (resoluta — §16.15 Q8): v1 cum RSA-PSS (typus subscriptionis 1) subscribit mechanismum crumenae Arweave JWK existentem reusans (nulla nova custodia clavis longaevae, thesi "uno arcano pauciore" serviens); Ed25519 ad iter migrationis-PQ §15 dilatum est.

Deep hash manu-volutus est codex altissimi-periculi, humillimae-naturalis-coverentiae in W5, ita ut sua portatio non-negotiabilis sit (§16.15 Q8):

  1. Fixura cross-linguistica tlog_v1.json (Rust + TS, exemplar wrapper_v1.json §14.5) deep-hash, octeta DataItem + id, spargmina foliorum, radicem 5-foliorum + iter auditus, spargmen STH, probam inclusionis, et probam congruentiae tegit — in utraque directione signandi et verificandi (directio verificandi momentum habet quia reprehensio localis tx → tx_id §16.6 deep hash in omnem verificatorem solitarium, non solum scriptorem, trahit).
  2. Iter-vicissim interoperationis unicum per bundler ANS-104 referentem, ut data probationis statica solum — numquam dependentia runtime npm consumptum (habitus Web-Crypto-solum / nulla-install-scripta stat).
  3. Iter deep-hash + RSA-PSS per eadem primordia crypto.subtle quibus productio utitur iter-vicissim ire DEBET, ita ut codificator domesticus octetum-compatibilis sit.
  4. Monitor acceptationis post-fasciculum continuus confirmat quamque ancoram / fallback DataItem revera acceptationem Arweave attingere, cum alarmo + interruptore circuitus — quia deep hash etiam coda fallback Arweave-indisponibilitatis servit, ita ut regressio tacita illam codam itemis rete-reiectis durante exacta interruptione quam tegere existit impleret.

16.9 Probae Inclusionis et Congruentiae

Ambae sunt RFC 9162, SHA3-256, ut CBOR canonicum servitae.

InclusionProofGET /api/v1/qub/:tx_id/proof: ver:u8, leaf:bstr (exactum folium CBOR — verificator leaf_hash ipse recomputat et numquam spargmini praebito fidit), index:u64, size:u64, audit:[bstr[32]], root:bstr[32], anchor:{ txid:bstr[32], batch:u64, sth:bstr[32], log_id:bstr[32], block_height?:u64, anchored_at?:i64 }.

ConsistencyProofGET /api/v1/log/consistency?first=<size_a>&second=<size_b>: ver:u8, first_size:u64, second_size:u64, first_root:bstr[32], second_root:bstr[32], nodes:[bstr[32]], first_anchor, second_anchor. Unicus index clavium non-ambiguus, per vectorem probationis affixus.

Verificatio solitaria (nullus servitor qub, §11 extendit):

1.  Parse .qub bundle → SealedQub; recompute qub_id (§4.1).
2.  Read leaf.kind.
3a. kind=0x01 (attested):
      assert leaf.ref == qub_id
      assert leaf.body_hash   == SHA3-256(body)
      assert leaf.drand_round == unlock_round(unlock_at)
3b. kind=0x02 (asserted):
      assert leaf.ref == SHA3-256(qub_id || blind)   // holder supplies blind
      OR treat ref as opaque and bind via leaf.chash == SHA3-256(stored_bytes)
4.  Recompute leaf_hash = SHA3-256(0x00 || leaf); fold `audit` per RFC 6962
    using index/size; require derived root == proof.root.
5.  Fetch anchor.txid from any gateway; verify the tx data → tx_id binding
    (do not trust a gateway /raw/ response); REQUIRE anchor_tx.owner ==
    LogProfile.anchor_owner.
6.  Parse AnchorBundle; require committed root == proof.root and size ==
    proof.size; read the Arweave block time T.
7.  Emit the claim scoped by leaf.kind (§16.11).

Repositorium probas-serviens coordinata-clavatum esse DEBET (resoluta — §16.15 Q7, condicio prae-requisita pellens). Generatio probae folii-frigidi correctione-neutra est solum si materia auditus R2 est repositorium nodorum-Merkle persistens per coordinatam arboris absolutam (level, index) clavatum — non deltae nodorum per-batch. Cum repositorio coordinata-clavato, quodvis iter auditus (leaf i, size N) est complexus O(log N) GET R2 directorum cum nulla recomputatione trans confinia fasciculorum; cum repositorio batch-clavato non est, quod est lacuna dispositionis-repositorii quam haec resolutio claudit. Corpora foliorum similiter contenti-inscriptibilia per seq sunt. Vector probationis W5 folium frigidum aetatis-genesis contra radicem multo-posteriorem utens solum R2 + Arweave cum repositorio LogDO purgato probare DEBET, ita ut vindicatio reclamationis-securitatis in §16.13 fulta potius quam asserta sit. O(log N) GET R2 sequentiales solum in terminationem probae asynchronam pertinent — numquam in iter signandi calidum (§16.10) aut cronem per-tic.

16.10 Ordinatio Confirmationis R2-Primae

Sequentia POST /api/v1/upload fit:

  1. Portae frontis-prioris (auth, validatio, clavis-fragmenti idempotentiae) — immutatae.
  2. Synchrone await QUB_CACHE.put(qub-cache/<tx_id>, wrappedBytes) — solum durabilitatis; etiam cursum praecellae W1 claudit (olim ctx.waitUntil post submissionem Arweave).
  3. Synchrone await LogDO.append(leaf) — una RPC DO in-colo; unicus scriptor seq assignat, catenam ingressuum extendit, et frontem renovat. (RMW in statu communi → DO, numquam KV.) RPC append solum illud facit — opus fasciculi-clausurae Merkle O(batch) extra hanc RPC in alarmo LogDO currit, aut p95 appensionis omni LOG_BATCH_MAX_LEAVES-ma signatione spicat.
  4. Redde confirmationem nunc — cum apocha signationis (a clave apochae affixa subscripta, §16.6) et { tx_id, log_seq, anchor_status: "pending" }. Fan-out Arweave multi-secundus ex itinere critico amotum est.
  5. Una ctx.waitUntil opus dilatum incodat: submissionem Arweave per-qub (nunc optima-conatus / soluta; in fallente ad codam fallback bundler routat potius quam usuarium 503-ans) plus scriptiones provisorias-metae existentes. Fasciculi clausura et ancoratio independenter ex alarmo LogDO et crone ancorae diurno currunt. Nulla ctx.waitUntil intra loop; clavis fragmenti idempotentiae existens servatur.

Budgetum latentiae (resolutum — §16.15 Q7). Target < 300 ms p95 est porta lanceandi mensurata, non praesumptio. Iter criticum honestum est lectiones KV frontis-prioris + unum PUT R2 + duo Obiecta Durabilia serializata — debitum signationis-quotae QuotaDO existens et appensio LogDO nova — ita ut budgetum duo itinera-vicissim DO in-colo, non unum, in computum ducere DEBEAT. Affige alarmum latentiae LogDO QuotaDO reflectens et tracta regressionem p95 ut impedimentum emissionis.

16.11 Exemplar Fiduciae — vindicatio praecisa, per genus folii ambita

Pro kind=0x01 (attestato): "Hoc contentum — corpus body_hash congruens, per qub_id identificatum — ad tabularium solum-additivum qub in positione seq obligatum est et non posterius quam tempore blochi Arweave T existebat; cryptographice illegibile erat usque ad cyclum drand R = unlock_round(unlock_at)." Hoc est plenum triplum {adligatio cycli tlock + inclusio Merkle + radix ancorata}.

Pro kind=0x02 (asserto, defalco): "Textus cifratus opacus cum inscriptione-contenti chash, qub_id et unlock_at vindicans, ad tabularium solum-additivum in positione seq obligatus est et non posterius quam tempore blochi Arweave T existebat." Crura cycli et corporis ex verificatione fasciculi .qub §11 existente (qub_core::unlock), non ex tabulario, praebentur; quod tabularium super nudam transactionem per-qub addit est ordinatio manifestae-violationis, tempus obligationis superioris-limitis infidum, et resistentia aequivocationis.

Ambae vindicationes excludunt, per §11: auctoritatem sine sig_alg ≥ 0x01, intentionem, et tempus sub-ancorae-granularitatis. Neutra ulli vindicationi in received_at niti permittit.

Fastigium vindicationis (condicio lanceandi adligans — resoluta §16.15 Q1). Pro qub gratuitis / defalcis (kind=0x02), vindicatio kind=0x02 ambita supra est fastigium eius quod ulla superficies producti, promotionis, condicionum, aut probae-reddendae asserere potest. Nulla superficies declarare aut implicare potest tabularium contentum aut cyclum reserationis qub defalci probare — tabularium ordinationem + tempus obligationis superioris-limitis infidum textus cifrati opaci probat. Proba contenti et cycli exclusive ex verificatione fasciculi .qub §11 existente, quae tabulario-independens est, venit. Hoc est durum impedimentum lanceandi in copia, non praeferentia stilistica; est resolutio quae iter defalci octetum-caecum honestum servat.

16.12 Versionatio et Coordinatio W3

Nullum bumpium filiforme SealedQub et igitur nullum bumpium versionis-protocolli (§12.1) est: tabularium est sidecar quod ad campos et octeta existentia obligat, ita ut historiam versionis-protocolli §12.2 non intret. drand_chain_version optionale W3 intactum est et solus campus SealedQub optionalis manet. Tabularium pro se sua spatia versionum independentia introducit — LOG_VERSION_1, ANCHOR_FORMAT_1, InclusionProof.ver — independentiam versionis-involucri §12.4 reflectens (involucrum octetum versionis independens a versione protocolli fert, et versiones tabularii eandem separationem sequuntur).

Traditio probae per defalcum hauritur, cum cavalcatione optionali. Proba tempore signandi existere non potest (ancora nondum scripta est), ita ut fasciculus .qub tempore-signandi proba-liber manet. Verificator W7 GET …/proof semel haurit, aut in modo plene-offline probam ex AnchorBundle publico per interrogationem Arweave in Log-Id reconstruit. Fasciculus .qub (W7) membrum inclusion_proof optionale reservat — ad signationem absens, per re-exportationem post-ancoram pro archivatione frigida impletum — idem exemplar "optionale, per defalcum omissum, additivum" ac drand_chain_version W3 sequens.

16.13 Retentio

Fenestrae retentionis pro cauda aperta LogDO, substrato R2 probas-serviente, contatoribus interruptoris-circuitus ancorae, et coda fallback bundler in docs/DATA-RETENTION.md specificantur. Principium: repositorium per-ingressum calidum tabularii (LogDO) post-ancoram reclamabile est; eius materia auditus — repositorium nodorum-Merkle coordinata-clavatum (level, index) + corpora foliorum seq-inscripta (§16.9) + ancorae Arweave — perpetuum est. Reclamare folium frigidum ex DO numquam probam emissam invalidat, quia proba contra illud repositorium nodorum R2 perpetuum et ancoram Arweave, non DO, resolvit (et vector probationis DO-purgati §16.9 illud probat).

16.14 Vectores Probationis

W5 fixuram cross-linguisticam tlog_v1.json (§16.8) plus vectores elaboratos navat: folium kind=0x01 et kind=0x02leaf_hash; radicem cumulativam 5-foliorum; unam probam inclusionis; unam probam congruentiae; unum AnchorBundle; et unum id DataItem. Hi iuxta vectores involucri-externi §14.5 vivunt et ab utraque implementatione Rust (qub-core) et TypeScript (Worker) exercentur.

16.15 Decisiones Recensionis (W5 — resolutae)

Recensio externa W5 (iter designi adversarium + subscriptio possessoris) completa est. Quaeque decisio infra sedata est et in textu §16 supra reflexa; condiciones lanceandi adligantes in fine restatutae sunt. Implementatio sub illis procedere potest.

  1. Honestas folii itineris-defalci (kind=0x02) — RESOLUTA. Nava scissionem duarum-generum-folii ut specificatum: kind=0x02 neque body_hash neque drand_round obligat. Nullus campus *_body_hash in itinere octetum-caeco (signum falsum "verificatum" maxime legibile pro integratoribus esset et commodum quod §11 iam ex fasciculo praebet). Servitorem-signare pro qub tabulario-attestatis non exige (id textum simplicem per Worker cogeret et moatem cripto-tritae destrueret). Quivis autodescriptivus brevi-circuitus in fasciculo .qub / involucro probae ut campus verificatore-recomputatus pertinet, numquam ut campus folii. Fastigium vindicationis possessore-confirmatum: §16.11.
  2. Responsabilitas aequivocationis / omissionis — RESOLUTA. Clavis apochae-signationis in LogProfile affixa + anchor_owner-cross-subscripta est (contradictionem priorem "nullae clavis signandi" claudens; §16.6). Exemplar testis lanceandi: apocha affixa + methodologia monitoris + ambulatio prae-catenae + capita dupla auto-publicata (repositorium GitHub publicum a qub possessum, sociale optima-conatus), ut detectabile + apochatum promotum, numquam independenter testatum. Testis tertiae-partis verus ad bumpium gubernationis §15 dilatus est.
  3. Radix fiduciae anchor-owner affixa + rotatio — RESOLUTA. Adopta affixionem LogProfile (§16.6); verificator anchor_tx.owner == anchor_owner reprehendit et adligationem datorum → tx_id transactionis localiter verificat. Gubernatio rotationis est §15 extensio aedificanda (pellens §15.3 addita), non reusus; rotationes provisae cross-subscribunt, rotationes compromisso-pulsae ad bumpium §15 cum reprehensione furcae damnum limitante recidunt.
  4. Excaecatio folii qub-privati — RESOLUTA. Serva excaecationem pro qub privatis (ref = SHA3-256(qub_id ‖ log_blind_secret)), qub_id nudum pro qub publicis (iam §16.2.1), chash ut nexum solitarium. log_blind_secret est arcanum gradus-correlationis/Sybil, solum-prorsum rota (§16.2.1).
  5. received_at — RESOLUTA. Serva eum in folio, obligatum sed explicite non-probatorium; numquam ut proba aut corroboratio disputationis in ulla superficie exhibitum. Quaevis reprehensio sanitatis monitoris contra tempus blochi Arweave T, non contra anchored_at operatore-controllatum, comparat (§16.6).
  6. Tempus-probabile gradus-gratuiti — RESOLUTA (subscriptio possessoris). Durabilitas non regreditur; solum tempus obligationis superioris-limitis probabile ad tempus blochi ancorae incrassatur. Copia gradus-gratuiti nullo SLA numerico utitur ("…ad proximam ancoram tabularii additum, typice diurnum"); proba horae-exactae est proprietas T3 soluta, ad superficiem comparationis-graduum + in condicionibus divulgata (§16.1).
  7. Arbor cumulativa in Workers — RESOLUTA. Unica arbor RFC 9162 cumulativa + LogDO unici-scriptoris fronte-cellata (spatium commodum vs fastigium ~1k scriptionum/sec DO; differ sharding-Merkle-de-radicibus-shardium usque prope eum). Condicio prae-requisita pellens: repositorium nodorum R2 coordinata-clavatum (level, index) + vector probationis folii-frigidi DO-purgati (§16.9); < 300 ms est porta lanceandi mensurata super duo DO serializata (§16.10).
  8. Schema subscriptionis ANS-104 + deep-hash — RESOLUTA. RSA-PSS (typus sig 1, crumenae-ancorae JWK dedicatam reusans); Ed25519 ad iter PQ §15 dilatum. Deep hash SHA-384 manu-volutus portatus est in fixuram cross-impl utriusque-directionis, reprehensionem interoperationis bundler-referentis statica-solum, iter-vicissim crypto.subtle-communicatum, et monitorem acceptationis-Arweave post-fasciculum (§16.8).

Condiciones lanceandi adligantes (in implementationem + recensionem producti/legalem porta):