Skip to main content

Benchmarks

Current performance measurements for Root14 on Stellar Testnet.

Circuit Metrics​

MetricValue
Transfer circuit constraints7,638 R1CS
Public inputs4
Proof size384 bytes
VK IC length5 (1 constant + 4 public inputs)

Contract Sizes​

ContractWASM Size
r14-core7,157 bytes
r14-transfer4,746 bytes
Combined on-chain~12 KB

Transaction Costs​

OperationCost
Deposit fee42K stroops ($0.004)

Tree Parameters​

ParameterValue
Merkle depth20 (supports 1,048,576 leaves)
Poseidon rate2
Poseidon full rounds8
Poseidon partial rounds31
Poseidon alpha17
Root history buffer100 entries
Storage TTL535,680 ledgers (~30 days)

Serialization Sizes​

ElementBytesHex Characters
G1 point (uncompressed)96192
G2 point (uncompressed)192384
Fr scalar (field element)3264

Proof Serialization Breakdown​

ComponentFormatHex Length
proof.aG1192 chars
proof.bG2384 chars
proof.cG1192 chars
Each public inputFr64 chars
VK alpha_g1G1192 chars
VK beta_g2G2384 chars
VK gamma_g2G2384 chars
VK delta_g2G2384 chars
Each VK ic entryG1192 chars

Circuit Library Metrics​

CircuitConstraintsPublic Inputs
Transfer7,6384 (root, nullifier, 2 commitments)
Range~5003 (min, max, commitment)
Membership~5,0002 (root, commitment)
Ownership~2371 (owner_hash)
Preimage~2371 (hash)
zkTLS (range)~5003 (min, max, commitment)

Test Coverage​

MetricValue
Total tests100+
Crates10

Tests span all crates: r14 types, r14 poseidon, r14 circuit, r14 circuits, r14 SDK, r14 core, r14 transfer, r14 zktls, and r14 indexer.

Notes​

  • Proof generation time depends on hardware. On a modern laptop, expect 1-5 seconds for the transfer circuit.
  • The 7,638 constraint count is well within Groth16's practical limits. Verification on-chain is constant-time regardless of constraint count.
  • The 384-byte proof size is a fixed property of Groth16 over BLS12-381: two G1 points (96 bytes each) + one G2 point (192 bytes).