Skip to content

Security Properties

This document describes the formal security properties provided by SIP Protocol’s cryptographic primitives.

Definition: A commitment scheme is perfectly hiding if, for any commitment C, no computationally unbounded adversary can determine the committed value.

SIP Guarantee: Pedersen commitments are perfectly hiding.

Proof Sketch: For any commitment C = v·G + r·H and any target value v’, there exists r’ = r + (v - v’)·log_G(H) such that C = v’·G + r’·H. Since log_G(H) is unknown (NUMS construction), this r’ cannot be computed, but its existence guarantees information-theoretic hiding.

Definition: A commitment scheme is computationally binding if no PPT adversary can find two valid openings for the same commitment.

SIP Guarantee: Pedersen commitments are computationally binding under ECDLP.

Proof Sketch: Finding (v₁, r₁) ≠ (v₂, r₂) such that v₁·G + r₁·H = v₂·G + r₂·H implies (v₁ - v₂)·G = (r₂ - r₁)·H, yielding log_G(H) = (v₁ - v₂)/(r₂ - r₁), contradicting ECDLP hardness.

Property: C(v₁) + C(v₂) = C(v₁ + v₂)

Proof: (v₁·G + r₁·H) + (v₂·G + r₂·H) = (v₁+v₂)·G + (r₁+r₂)·H

Application: Verify sum of inputs equals sum of outputs without revealing values.

Definition: Stealth addresses derived from the same meta-address are unlinkable to observers without the viewing key.

Proof Sketch: Each stealth address A = Q + H(r·P)·G uses fresh ephemeral key r. The shared secret r·P is ECDH output, computationally indistinguishable from random without knowing r or p. Thus A appears as a random curve point.

Definition: Given a stealth address A and meta-address (P, Q), no PPT adversary can determine if A was derived from (P, Q) without the viewing key.

Guarantee: Follows from DDH assumption on secp256k1.

Property: Compromise of viewing key doesn’t reveal past transactions’ spending keys.

Mechanism: Spending key (p) is separate from viewing key (q). Viewing key allows scanning but not spending.

Property: The 8-bit view tag reveals at most 8 bits of shared secret information.

Analysis: View tag is first byte of SHA256(S). Given SHA256’s preimage resistance, this reveals no structural information about S beyond reducing search space by 256x.

Tradeoff: 8 bits of leakage is acceptable for 256x scanning speedup.

Properties:

  • IND-CPA: Ciphertexts indistinguishable from random
  • INT-CTXT: Authentication prevents tampering
  • Nonce-misuse resistance: 24-byte random nonces

Security: HKDF is proven secure as a randomness extractor when:

  • IKM has sufficient min-entropy
  • Salt is random or unique
  • Info provides domain separation

Definition: A proof system is zero-knowledge if the verifier learns nothing beyond the statement’s validity.

SIP Guarantee: ZK proofs (Noir circuits) satisfy computational zero-knowledge.

Definition: No PPT adversary can create a valid proof for a false statement.

SIP Guarantee: Proofs are sound under the underlying proving system’s assumptions.

Property: Proofs cannot be modified to prove different statements.

Mechanism: Proofs are bound to specific public inputs via hash commitments.

Goal: Transaction amounts remain hidden from public observers.

DataProtectionSecurity Level
Input amountPedersen commitmentInformation-theoretic hiding
Output amountPedersen commitmentInformation-theoretic hiding
SenderStealth addressComputational (DDH)
RecipientStealth addressComputational (DDH)

Goal: Transactions cannot be linked to specific users.

PropertyMechanismAssumption
Address unlinkabilityFresh stealth per txDDH
Amount unlinkabilityRandom blindingECDLP
Cross-tx unlinkabilityNo shared randomnessImplementation

Goal: Committed amounts cannot be altered; proofs cannot be forged.

PropertyMechanismAssumption
Commitment bindingPedersen schemeECDLP
Proof soundnessZK proof systemKnowledge assumption
Non-replayNullifier setHash collision resistance

Goal: Authorized parties can verify transactions using viewing keys.

PropertyMechanismGuarantee
Selective disclosureViewing keysKey holder only
AuthenticityViewingProofCryptographic proof
Scope limitationTVK per transactionMinimal exposure

Assumption: Given G and P = x·G, finding x is computationally infeasible.

Strength: 128-bit security level

Usage: Commitment binding, key security

Assumption: Distinguishing (G, aG, bG, abG) from (G, aG, bG, cG) is infeasible.

Usage: ECDH key agreement, stealth address unlinkability

Assumptions:

  • Preimage resistance
  • Second preimage resistance
  • Collision resistance

Usage: Shared secret hashing, commitment hashing

Issue: Transactions submitted close together may be linkable by timing.

Mitigation: Delayed submission, batching, mixing services.

Issue: If output amount is public, input can sometimes be inferred.

Mitigation: Commitment to output ranges, decoy outputs.

Issue: JavaScript cannot guarantee secure memory clearing.

Mitigation: Minimize key lifetime, rely on OS protections.

Issue: secp256k1 ECDLP is vulnerable to Shor’s algorithm.

Mitigation: Future post-quantum migration path.

ParameterValueSecurity Level
Curvesecp256k1128-bit
HashSHA-256128-bit collision
AEADXChaCha20-Poly1305256-bit
Key size256 bits128-bit equivalent
Nonce size192 bitsCollision-resistant