From dce081a6d4bfda8b063bf20e7ac3e483d7af6527 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Sat, 3 Oct 2026 16:21:33 +0000 Subject: [PATCH] Brand: icon and wordmark PNG set for email and profiles Co-Authored-By: Claude Fable 5.1 --- .gitignore | 1 + brand/igneum-icon-1024.png | Bin 0 -> 9400 bytes brand/igneum-icon-512.png | Bin 0 -> 11228 bytes brand/igneum-mark-transparent-1024.png | Bin 0 -> 10197 bytes brand/igneum-wordmark-dark-1600x500.png | Bin 0 -> 19093 bytes brand/igneum-wordmark-light-1600x500.png | Bin 0 -> 19097 bytes .../igneum-wordmark-transparent-1600x500.png | Bin 0 -> 14649 bytes brand/igneum-workspace-header-320x132.png | Bin 0 -> 4211 bytes proto-vdf/src/main.rs | 10 +++++-- proto-vdf/src/rsa.rs | 2 +- proto-vdf/src/seed.rs | 27 ++++++++---------- 11 files changed, 21 insertions(+), 19 deletions(-) create mode 100644 brand/igneum-icon-1024.png create mode 100644 brand/igneum-icon-512.png create mode 100644 brand/igneum-mark-transparent-1024.png create mode 100644 brand/igneum-wordmark-dark-1600x500.png create mode 100644 brand/igneum-wordmark-light-1600x500.png create mode 100644 brand/igneum-wordmark-transparent-1600x500.png create mode 100644 brand/igneum-workspace-header-320x132.png diff --git a/.gitignore b/.gitignore index 86499d41f..4ebfbaa62 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ vendor/ .env* sim/__pycache__/ *.pyc +brand/Unbounded.ttf diff --git a/brand/igneum-icon-1024.png b/brand/igneum-icon-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..6ab4be74f2b9cca24502810f2294526572785783 GIT binary patch literal 9400 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 Fe*<+8ISc>* literal 0 HcmV?d00001 diff --git a/brand/igneum-icon-512.png b/brand/igneum-icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..4b0ca17cae865893c22d60a0e1bcf307d7d1bb9a GIT binary patch literal 11228 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 H5$*mzZy?Y^ literal 0 HcmV?d00001 diff --git a/brand/igneum-wordmark-dark-1600x500.png b/brand/igneum-wordmark-dark-1600x500.png new file mode 100644 index 0000000000000000000000000000000000000000..39df978e4e9de920dbbd3ca8bac6d5fbff7db55e GIT binary patch literal 19093 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 TW9iQ{y6RPVmCKoOx1atmB)@fQ literal 0 HcmV?d00001 diff --git a/brand/igneum-wordmark-transparent-1600x500.png b/brand/igneum-wordmark-transparent-1600x500.png new file mode 100644 index 0000000000000000000000000000000000000000..ef93f70f1f43746ace234fb72c22efd226d5d699 GIT binary patch literal 14649 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 YY&+=d*{A)5jowQs7$t)sqlAf; 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: &G, x: &G::Elem, t: u64, threads: usize, kappa_opt: Option) -> ProofTiming { - let spacing0 = wesolowski::choose_spacing(t, 1 << 16); - let kappa = kappa_opt.unwrap_or_else(|| seed::pick_kappa(spacing0)); - let spacing = (spacing0 - spacing0 % kappa as u64).max(kappa as u64); + let (spacing, kappa) = match kappa_opt { + None => seed::plan(t), + Some(k) => { + let gamma = ((t + (k as u64) * seed::MAX_CHECKPOINTS - 1) / ((k as u64) * seed::MAX_CHECKPOINTS)).max(1); + (k as u64 * gamma, k) + } + }; let ev = wesolowski::eval(g, x, t, spacing); let s = Instant::now(); let pf1 = wesolowski::prove(g, x, &ev, kappa, 1); diff --git a/proto-vdf/src/rsa.rs b/proto-vdf/src/rsa.rs index 4ab9e9556..fd41ebb30 100644 --- a/proto-vdf/src/rsa.rs +++ b/proto-vdf/src/rsa.rs @@ -30,7 +30,7 @@ impl RsaGroup { let s = sha256(&[b"igneum-vdf-rsa-standin", seed.as_bytes()]); rs.seed(&Integer::from_digits(&s, Order::MsfBe)); let half = MODULUS_BITS / 2; - let mut gen_prime = |rs: &mut RandState| -> Integer { + let gen_prime = |rs: &mut RandState| -> Integer { let mut p = Integer::from(Integer::random_bits(half, rs)); p.set_bit(half - 1, true); p.set_bit(half - 2, true); diff --git a/proto-vdf/src/seed.rs b/proto-vdf/src/seed.rs index c5d6f96a9..fd7328203 100644 --- a/proto-vdf/src/seed.rs +++ b/proto-vdf/src/seed.rs @@ -44,10 +44,7 @@ fn derive_seed(checkpoint_hash: &[u8; 32], t: u64, y_bytes: &[u8]) -> [u8; 32] { pub fn epoch_seed(checkpoint_hash: &[u8; 32], t: u64, threads: usize) -> ([u8; 32], EpochProof) { let g = class_group_for(checkpoint_hash); let x: Form = g.generator(); - let spacing = wesolowski::choose_spacing(t, 1 << 16); - let kappa = pick_kappa(spacing); - let spacing = spacing - spacing % kappa as u64; - let spacing = spacing.max(kappa as u64); + let (spacing, kappa) = plan(t); let ev = wesolowski::eval(&g, &x, t, spacing); let proof = wesolowski::prove(&g, &x, &ev, kappa, threads); let y_bytes = g.serialize(&proof.y); @@ -76,9 +73,7 @@ pub fn verify_epoch_seed(checkpoint_hash: &[u8; 32], program_seed: &[u8; 32], pr /// Same pipeline over the RSA stand-in, for timing comparison only. pub fn epoch_seed_rsa(g: &RsaGroup, checkpoint_hash: &[u8; 32], t: u64, threads: usize) -> ([u8; 32], EpochProof) { let x = g.hash_to_elem(checkpoint_hash); - let spacing = wesolowski::choose_spacing(t, 1 << 16); - let kappa = pick_kappa(spacing); - let spacing = (spacing - spacing % kappa as u64).max(kappa as u64); + let (spacing, kappa) = plan(t); let ev = wesolowski::eval(g, &x, t, spacing); let proof = wesolowski::prove(g, &x, &ev, kappa, threads); let y_bytes = g.serialize(&proof.y); @@ -102,12 +97,14 @@ pub fn verify_epoch_seed_rsa(g: &RsaGroup, checkpoint_hash: &[u8; 32], program_s derive_seed(checkpoint_hash, proof.t, &proof.y) == *program_seed } -/// Digit width: 12 bits when the spacing allows it, smaller for tiny T. -pub fn pick_kappa(spacing: u64) -> u32 { - for k in [12u32, 10, 8, 6, 4, 2, 1] { - if spacing >= (k as u64) * 4 || k == 1 { - return k; - } - } - 1 +/// Proof plan: digit width kappa and checkpoint spacing kappa * gamma. +/// Cost of the proof is about T/kappa + gamma 2^(kappa+1) group multiplications, memory is +/// T/spacing checkpoints. We cap checkpoints near 2^16 (17 MB for 1024-bit forms) and use +/// 12-bit digits once T is large enough for the bucket combine to be negligible. +pub fn plan(t: u64) -> (u64, u32) { + let kappa: u32 = if t >= 1 << 16 { 12 } else if t >= 1 << 10 { 8 } else { 4 }; + let gamma = ((t + (kappa as u64) * MAX_CHECKPOINTS - 1) / ((kappa as u64) * MAX_CHECKPOINTS)).max(1); + (kappa as u64 * gamma, kappa) } + +pub const MAX_CHECKPOINTS: u64 = 1 << 16;