carbs logo

carbs

Quantum-safe, delegable signing for the XRP Ledger: ledger-enforced signing sessions (a rippled amendment), an ML-DSA-44 root key on a Ledger Stax, and a quantum exposure check.

Demo Video

Project Information

At a Glance

Quantum-safe, delegable signing for the XRP Ledger: ledger-enforced signing sessions (a rippled amendment), an ML-DSA-44 root key on a Ledger Stax, and a quantum exposure check.

Description

The problem. On the XRP Ledger a key has all the authority of an account or none, and a public key that has signed once stays visible on the ledger forever: a forgery target for a future quantum computer.

carbs puts three pieces together:

  1. Signing sessions enforced by the ledger. A rippled amendment, SigningSessions, lets an account open a short-lived key (at most 10 minutes) that signs without prompting, bounded by the ledger itself. Mode A: every delegable transaction type except an exclusion list. Mode P: a list of XLS-75 permissions. Mode C: direct XRP payments under a total cap, fees included. A session key can never change who controls the account. A session is opened with one ordinary signature, from a Ledger device that shows the rules on its screen, or from a passkey.
  2. A post-quantum root on a Ledger Stax. An ML-DSA-44 key held by the device clear-signs XRPL transactions, so an account can move its regular key to it and disable its classical master key.
  3. A quantum exposure check and a guided migration for any XRPL account: is its public key already on the ledger, which other authorities expose keys, and what the move to a post-quantum key looks like.

Status of this first submission. The specification, the architecture and the decision records are written. The two upstream bases (XRPLF/rippled alphanet and LedgerHQ/app-xrp) are imported unmodified in their own commits. Every protocol code of the amendment is verified free on the imported tree and on the public AlphaNet. The test baselines of the imported tree are recorded. Clear signing of the session transactions and the ML-DSA root key are in progress on the device side. Next: the amendment itself, test first, following rippled's conventions.

Technical Details

Protocol: a C++ amendment in rippled (XRPLF alphanet, 3.4.1). New ledger entry SigningSession, transactions SigningSessionSet / SigningSessionDelete (130 / 131), three tef result codes. A session-signed predicate replaces checkSign in preclaim; mode C is accounted in Transactor::operator(); an invariant guards every rule; a jtx test plan of 24 cases. Ledger app (app-xrp): clear signing of the two types on the Stax, and ML-DSA-44 signing of XRPL transactions. Client: TypeScript, non-extractible WebCrypto P-256 session keys (low-S, strict DER), passkeys (WebAuthn), the Ledger Device Management Kit; protocol codes are read from server_definitions, never copied.

Team

2
FU

fianso User

AS

Armand Séchon

Hackathon

AI & Fintech XRP Ledger Hackathon

Duration

Oct 24, 8:30 AM - Oct 25, 8:00 PM EDT

View Hackathon Details

Prizes Won

1

Prizes Won

1 prize awarded

Ledger Protocol Innovation

Sponsored by Ledger
$4,000
USD
Total Prize Money
$4,000