open-standards/smart-byte
Repository files (latest commit first)
Filename Latest commit message Latest commit date
David Charlot 84fc32449a
All checks were successful
jouleclaw public surface must stay documented / Public-surface audit (jouleclaw-rs) (push) Successful in 57s
chore(deps): update dependencies for Rust 1.98, pinning the crypto generations
Finishes the workspace-wide dependency refresh on stable 1.98.0. Most crates
took the newest release cleanly; the ones below could not, and the reason is
worth recording because "latest" is the wrong answer for several of them.

rand is pinned to 0.8, not 0.10. rand 0.10 dropped `rand::RngCore` and
`rand::rngs::OsRng`, but the real blocker is that it ships rand_core 0.10
while every signature crate here (ed25519-dalek 2.x, bls12_381, k256/p256)
is built on rand_core 0.6 -- so a 0.10 RNG is not even the right *type* to
hand to `SigningKey::generate`. rand 0.8 re-exports rand_core 0.6, which is
exactly what those crates want. rand_chacha follows it to 0.3 for the same
reason. The RNG generation is pinned by the crypto ecosystem, not by recency.

aes is pinned to 0.8 (cipher 0.4) in smart-byte-nostr and op-mobile-wallets:
aes 0.9 moved to cipher 0.5, which removed `BlockEncryptMut`,
`encrypt_padded_vec_mut` and `StreamCipherCoreWrapper::new` that this code
uses, and aes-gcm 0.10 pulls cipher 0.4 anyway -- so 0.9 also put two aes and
two cipher versions in the graph. op-3ds2 declared aes/cbc for an encrypted
deviceInfo block it never implemented; dropping those unused deps removes the
last cipher 0.5 edge, leaving a single aes and a single cipher.

reqwest 0.13 moved `RequestBuilder::query` and `::form` behind new features,
which `default-features = false` was silently excluding. Enabled per crate.

Source changes are the matching API drift:
  - hmac's `new_from_slice` lives on `KeyInit`, not `Mac`
  - secp256k1 0.31 takes the array by value in `from_byte_array`, and its own
    re-exported `rand` is used for keygen so the two can never drift again
  - smart-byte-mdl reads OS entropy from getrandom directly. It was reaching
    for a rand RNG only to get 32 bytes, and going to the primitive genuinely
    removes the CryptoRng skew with p256 0.14-rc that the comment there
    described dodging -- and drops rand from that crate entirely.

Verified: all 20 workspaces in the monorepo compile with
`cargo check --workspace --all-targets` on 1.98.0, zero errors.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-08-26 12:19:50 -04:00
..
conformance Parallel ingest: 9 issues' worth of work across openpay / smart-byte / eoc 2026-05-23 13:24:05 -04:00
smart-byte-rs chore(deps): update dependencies for Rust 1.98, pinning the crypto generations 2026-08-26 12:19:50 -04:00
spec Parallel ingest: 9 issues' worth of work across openpay / smart-byte / eoc 2026-05-23 13:24:05 -04:00
vocab vocab v1 SHACL shapes across sister standards (wave-23 #4/#5) 2026-06-02 18:55:56 -04:00
LICENSE Initial import — three open standards under one shelf 2026-05-23 07:58:09 -04:00
README.md Initial import — three open standards under one shelf 2026-05-23 07:58:09 -04:00
SECURITY.md Initial import — three open standards under one shelf 2026-05-23 07:58:09 -04:00
THREE_FACES.md Initial import — three open standards under one shelf 2026-05-23 07:58:09 -04:00

Smart Byte

A carrier for value. Settlement-agnostic, energy-attributed, no off switch.

The smart byte is not money — it is a vesicle (the cellular-biology sense): a content-addressed, signed envelope carrying exactly five things — identity (the blake3 hash of its origin attestation), provenance (the issuer's signed birth certificate), an ownership chain (signature-bound transitions), cargo (whatever value it represents — USD, joules, compute-hours, votes, attestations, claims; the substrate is agnostic), and a two-part joule cost (measured + estimated, cumulative over its life). Consensus is lockstep deterministic simulation with BFT supermajority commit; the substrate scales by federating many bounded clusters, not by growing one. It is TCP/IP for value: an open, application-agnostic carrier that any matching, clearing, or trust-signaling layer can build on.

The substrate is intentionally ownerless: no protocol-level token, permissive licensing on the spec text and reference code, conformance test vectors so any implementer can verify canonicity without a trust relationship with the authors. The protocol's identity lives in its conformance vectors and content-addressing, not in any brand. Transaction Science is one steward — it publishes the spec, ships a reference implementation, and operates commercial services around the substrate — not its proprietor.

Contents

  • spec/treatise_v1_parts_I_II_III_combined.md — Smart Byte Substrate: A Treatise (Parts I–III: the foundation, the substrate architecture, the security engineering; Parts IV–VII previewed)
  • strategic_context.docx — The Strategic Context: Why the Substrate Makes Sense in 2026
  • SECURITY.md — the working security-engineering summary: it's a digital system on the internet, secured the way digital systems on the internet are secured (conservative cryptography, encrypted transports, reproducible multiply-reviewed builds, standard layer-2 key custody, standard availability engineering, textbook BFT consensus) plus a handful of new compositions of those proven parts. Plus the vulnerability-reporting process.

Status

Treatise v1.0 (May 2026). The conformance specification (byte-level wire formats) and the reference implementation referenced in the treatise as "v0.3" are to be brought into this repository.

  • EOC (../eoc/) — the energy-optimized AI compute substrate; the smart byte's energy attribution depends on an honest joules-per-task substrate.
  • Settlement (settlement.science) — the flagship regulated financial institution running on the substrate as an issuer and consumer of smart bytes.