diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 23781ef..c18f23c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -104,9 +104,11 @@ jobs: - name: The checks must pass against freshly generated vectors run: cargo run -p kt-interop --bin kt-interop-report -- --vectors interop/vectors --out "$RUNNER_TEMP/fresh" - # search.json, monitor.json and update.json are excluded because they cannot be - # reproducible: all three come from a live log that stamps wall-clock times and draws random - # commitment openings. See interop/README.md. Every other file must regenerate to the same bytes, + # Four files are excluded because they cannot be reproducible. search.json, monitor.json + # and update.json come from a live log that stamps wall-clock times and draws random + # commitment openings; tree-head-p256.json carries ECDSA signatures, and Go's crypto/ecdsa + # draws a nonce per signature. See interop/README.md. Every other file must regenerate to + # the same bytes, # so an upstream bump that changes behaviour shows up as a diff rather than a silent # pass — and the two exceptions are covered by the fresh-generation run above, which # is a stronger check for them than a diff would be. @@ -115,4 +117,5 @@ jobs: git diff --exit-code -- interop/vectors \ ':(exclude)interop/vectors/search.json' \ ':(exclude)interop/vectors/monitor.json' \ - ':(exclude)interop/vectors/update.json' + ':(exclude)interop/vectors/update.json' \ + ':(exclude)interop/vectors/tree-head-p256.json' diff --git a/Cargo.lock b/Cargo.lock index b69bd46..95e72c8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,18 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base16ct" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd307490d624467aa6f74b0eabb77633d1f758a7b25f12bceb0b22e08d9726f6" + [[package]] name = "base64ct" version = "1.8.3" @@ -35,6 +47,12 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" +[[package]] +name = "cpubits" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15b85f9c39137c3a891689859392b1bd49812121d0d61c9caf00d46ed5ce06ae" + [[package]] name = "cpufeatures" version = "0.3.0" @@ -44,6 +62,21 @@ dependencies = [ "libc", ] +[[package]] +name = "crypto-bigint" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a52aa3fcda4e6302a9f48734f234d35d4721b96f8fe07d073f07ce9df4f0271" +dependencies = [ + "cpubits", + "ctutils", + "hybrid-array", + "num-traits", + "rand_core", + "subtle", + "zeroize", +] + [[package]] name = "crypto-common" version = "0.2.2" @@ -51,6 +84,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" dependencies = [ "hybrid-array", + "rand_core", ] [[package]] @@ -60,6 +94,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" dependencies = [ "cmov", + "subtle", ] [[package]] @@ -106,10 +141,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" dependencies = [ "block-buffer", + "const-oid", "crypto-common", "ctutils", ] +[[package]] +name = "ecdsa" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0681a4fc24c767085329728d8dfba959af91228aa4610cca4f8ce317ba46ae0" +dependencies = [ + "der", + "digest", + "elliptic-curve", + "rfc6979", + "signature", + "spki", + "zeroize", +] + [[package]] name = "ed25519" version = "3.0.0" @@ -135,12 +186,53 @@ dependencies = [ "zeroize", ] +[[package]] +name = "elliptic-curve" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d65aa39b3a5c1c9c1b745c9a019234bb7a21b77abcb4f4d266d706e2d577d65" +dependencies = [ + "base16ct", + "crypto-bigint", + "crypto-common", + "digest", + "ff", + "group", + "hybrid-array", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "ff" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f686ab92a9fb0eaf188f6c6c87b89490baa6fdb0db4544ba4dc47f7942489f" +dependencies = [ + "rand_core", + "subtle", +] + [[package]] name = "fiat-crypto" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64cd1e32ddd350061ae6edb1b082d7c54915b5c672c389143b9a63403a109f24" +[[package]] +name = "group" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fd1a1c7a5206c5b7a3f5a0d7ccd3ff85d0c8f5133d62a02680255b0004af5f4" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + [[package]] name = "hex" version = "0.4.3" @@ -162,7 +254,9 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "818356c5132c1fede50f837ca96afbe78ff42413047f4abb886217845e1b6c8c" dependencies = [ + "subtle", "typenum", + "zeroize", ] [[package]] @@ -188,6 +282,7 @@ dependencies = [ "ed25519-dalek", "hmac", "kt-wire", + "p256", "sha2", ] @@ -227,6 +322,28 @@ version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "p256" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2c9239b2dbc807adbbe147e8cf72ea7450c3a0aabe62cb8e75ff4ec22e1f72a" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primefield", + "primeorder", + "sha2", +] + [[package]] name = "pkcs8" version = "0.11.0" @@ -237,6 +354,32 @@ dependencies = [ "spki", ] +[[package]] +name = "primefield" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c555a6e4eb7d4e158fcb028c835c3b8642206ddc279b5c6b202ef9a8bdb592f4" +dependencies = [ + "crypto-bigint", + "crypto-common", + "ff", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "primeorder" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c9f42978c78a00e3d68f69fc03e57a234debae69da4020a4fb588fcdcd07b06" +dependencies = [ + "elliptic-curve", + "primefield", + "serdect", + "wnaf", +] + [[package]] name = "proc-macro2" version = "1.0.107" @@ -255,6 +398,22 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + +[[package]] +name = "rfc6979" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a459cddafb3fe76b31fd8f1108007566c40301feb64dc7b54656eb7388172b" +dependencies = [ + "crypto-bigint", + "hmac", +] + [[package]] name = "rustc_version" version = "0.4.1" @@ -264,6 +423,20 @@ dependencies = [ "semver", ] +[[package]] +name = "sec1" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d56d437c2f19203ce5f7122e507831de96f3d2d4d3be5af44a0b0a09d8a80e4d" +dependencies = [ + "base16ct", + "ctutils", + "der", + "hybrid-array", + "subtle", + "zeroize", +] + [[package]] name = "semver" version = "1.0.28" @@ -313,6 +486,16 @@ dependencies = [ "zmij", ] +[[package]] +name = "serdect" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66cf8fedced2fcf12406bcb34223dffb92eaf34908ede12fed414c82b7f00b3e" +dependencies = [ + "base16ct", + "serde", +] + [[package]] name = "sha2" version = "0.11.0" @@ -329,6 +512,10 @@ name = "signature" version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d567dcbaf0049cb8ac2608a76cd95ff9e4412e1899d389ee400918ca7537f5" +dependencies = [ + "digest", + "rand_core", +] [[package]] name = "spki" @@ -380,6 +567,17 @@ version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" +[[package]] +name = "wnaf" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab12e7090f27e2ffd9322651492942d50c2926094af30601e1964337db39daf1" +dependencies = [ + "ff", + "group", + "hybrid-array", +] + [[package]] name = "zeroize" version = "1.9.0" diff --git a/crates/kt-crypto/Cargo.toml b/crates/kt-crypto/Cargo.toml index 736609c..6d74da5 100644 --- a/crates/kt-crypto/Cargo.toml +++ b/crates/kt-crypto/Cargo.toml @@ -13,6 +13,7 @@ curve25519-dalek = { version = "5.0.0", default-features = false, features = ["a ed25519-dalek = { version = "3.0.0", default-features = false, features = ["alloc"] } hmac = { version = "0.13.0", default-features = false } kt-wire.workspace = true +p256 = { version = "0.14.0", default-features = false, features = ["arithmetic", "alloc", "ecdsa"] } sha2 = { version = "0.11.0", default-features = false } [lints] diff --git a/crates/kt-crypto/src/signature.rs b/crates/kt-crypto/src/signature.rs index 81c3e93..ad40a1b 100644 --- a/crates/kt-crypto/src/signature.rs +++ b/crates/kt-crypto/src/signature.rs @@ -16,11 +16,18 @@ //! disagreement about how a `Configuration` encodes breaks every signature; see //! [`kt_wire::heads`] for one such disagreement between the two Go peers. //! -//! # Scope +//! # Both registered suites //! -//! Ed25519 (RFC 8032) for `KT_128_SHA256_Ed25519`, which is the suite this -//! workspace targets. ECDSA/P-256 for the other registered suite is out of scope -//! and returns [`Error::UnsupportedSuite`] rather than guessing. +//! Ed25519 (RFC 8032) for `KT_128_SHA256_Ed25519`, and ECDSA/P-256 over SHA-256 for +//! `KT_128_SHA256_P256`. §17.1 fixes the latter's encoding as "the concatenation of +//! two 256-bit big endian integers r and s", so 64 fixed-width bytes rather than the +//! ASN.1 sequence ECDSA usually travels in. +//! +//! The two suites also differ in how the *key* is encoded, which §11.2 does not say: +//! the peer emits an Ed25519 key as its 32 raw bytes and a P-256 signature key +//! uncompressed (65 bytes, SEC1 tag `0x04`), while the same `Configuration` carries a +//! P-256 *VRF* key compressed (33 bytes). Rather than fix a length, the P-256 path +//! accepts whatever SEC1 admits; `tree-head.json` pins what the peer sends. use alloc::vec::Vec; @@ -135,9 +142,30 @@ pub fn verify_raw( signature: &[u8], ) -> Result<()> { match suite { - // ECDSA/P-256, whose signatures are "the concatenation of two 256-bit big - // endian integers r and s" (§17.1). Out of scope for this workspace. - CipherSuite::Kt128Sha256P256 => Err(Error::UnsupportedSuite { suite }), + // ECDSA/P-256 over SHA-256, whose signatures are "the concatenation of two + // 256-bit big endian integers r and s" (§17.1) — so 64 fixed-width bytes, + // not the ASN.1 sequence ECDSA is usually seen in. + // + // Note the two key encodings this suite uses. The *signature* key arrives + // uncompressed (65 bytes, SEC1 tag 0x04), because that is what the peer's + // `ParseSigningPublicKey` accepts and what its `Bytes()` emits; the *VRF* + // key arrives compressed (33 bytes). Both live in the same `Configuration`, + // as `opaque signature_public_key<0..2^16-1>` and + // `opaque vrf_public_key<0..2^16-1>`, and §11.2 says nothing about either + // encoding — so this accepts whatever SEC1 admits rather than fixing a + // length, and `tree-head.json` pins what the peer actually sends. + CipherSuite::Kt128Sha256P256 => { + use p256::ecdsa::signature::Verifier as _; + + let key = p256::ecdsa::VerifyingKey::from_sec1_bytes(public_key) + .map_err(|_| Error::MalformedPublicKey)?; + let signature = p256::ecdsa::Signature::from_slice(signature) + .map_err(|_| Error::MalformedSignature)?; + // `Verifier` hashes with the curve's associated digest, SHA-256, which is + // also the suite's hash — unlike the VRF, where the two differ. + key.verify(message, &signature) + .map_err(|_| Error::BadSignature) + } CipherSuite::Kt128Sha256Ed25519 => { let key_bytes = <[u8; PUBLIC_KEY_SIZE]>::try_from(public_key) .map_err(|_| Error::MalformedPublicKey)?; @@ -491,12 +519,11 @@ mod tests { Err(Error::UnknownCipherSuite { value: 0xf00d }) ); - // P-256 is out of scope and says so rather than trying Ed25519 on it. + // An Ed25519 key and signature offered to the P-256 path: 32 bytes is not a SEC1 + // point, so it stops at the key rather than being fed to the wrong curve. assert_eq!( verify_raw(CipherSuite::Kt128Sha256P256, &public, b"m", &head.signature), - Err(Error::UnsupportedSuite { - suite: CipherSuite::Kt128Sha256P256 - }) + Err(Error::MalformedPublicKey) ); } diff --git a/crates/kt-crypto/src/vrf.rs b/crates/kt-crypto/src/vrf/edwards25519.rs similarity index 85% rename from crates/kt-crypto/src/vrf.rs rename to crates/kt-crypto/src/vrf/edwards25519.rs index da4a4a8..8a5714c 100644 --- a/crates/kt-crypto/src/vrf.rs +++ b/crates/kt-crypto/src/vrf/edwards25519.rs @@ -1,41 +1,26 @@ -//! Verifiable Random Function (`draft-ietf-keytrans-protocol-05` §11.7). -//! -//! Each label-version pair's search key in the prefix tree is the VRF output over -//! a [`VrfInput`] (§11.7). That is what keeps labels private: the tree is indexed -//! by a value only the log can compute, so a user who is handed a search key -//! learns nothing about the label behind it, and — because the VRF is *verifiable* -//! — the log cannot use a different key for the same label than the one it -//! proves. -//! -//! # What this implements -//! -//! `ECVRF-EDWARDS25519-SHA512-TAI` from [RFC 9381], which §17.1 selects for +//! `ECVRF-EDWARDS25519-SHA512-TAI` (RFC 9381 §5.5), which §17.1 selects for //! `KT_128_SHA256_Ed25519`, **with the output truncated to 32 bytes** as §17.1 -//! requires. The `KT_128_SHA256_P256` suite's `ECVRF-P256-SHA256-TAI` is not -//! implemented yet; [`Error::UnsupportedSuite`] says so rather than quietly using -//! the wrong curve. +//! requires. //! //! Note the two hash functions in play. The cipher suite's hash is SHA-256 and is -//! what [`crate::hash`] provides; the VRF's hash is **SHA-512**, fixed by the -//! ECVRF ciphersuite, and is used only inside this module. They are not the same -//! parameter and conflating them produces a VRF that verifies against itself and -//! nothing else. +//! what [`crate::hash`] provides; this VRF's hash is **SHA-512**, fixed by the +//! ECVRF ciphersuite, and is used only here. They are not the same parameter, and +//! conflating them produces a VRF that verifies against itself and nothing else. //! //! # Byte-order trap //! //! For the edwards25519 ciphersuites, RFC 9381's `int_to_string` and //! `string_to_int` are **little-endian**, following RFC 8032 — unlike the -//! big-endian integers everywhere else in the KT wire format. `c` and `s` in a -//! proof are little-endian, and so is the challenge read out of a hash. The RFC's -//! own test vectors are what adjudicate this, and they are in the tests below. +//! big-endian integers everywhere else in the KT wire format, and unlike +//! [`super::p256`], where they are big-endian. `c` and `s` in a proof are +//! little-endian, and so is the challenge read out of a hash. The RFC's own test +//! vectors are what adjudicate this, and they are in the tests below. //! //! # Oracles //! //! Three, in increasing distance from this code: RFC 9381's Appendix B vectors //! (implementation-independent, and the ones that matter most), the peer's //! `crypto/vrf/edwards25519`, and `interop/vectors/vrf.json`. -//! -//! [RFC 9381]: https://www.rfc-editor.org/rfc/rfc9381.html use alloc::vec::Vec; use core::fmt; @@ -50,6 +35,8 @@ use kt_wire::structs::{HashValue, VrfInput}; use crate::suite::CipherSuite; +use super::{Error, OUTPUT_SIZE, Output, Result}; + /// `suite_string` for `ECVRF-EDWARDS25519-SHA512-TAI` (RFC 9381 §5.5). const SUITE_STRING: u8 = 0x03; @@ -69,118 +56,12 @@ const PT_LEN: usize = 32; /// `VRF.Np` for `KT_128_SHA256_Ed25519`: the proof size in bytes (§17.1). pub const PROOF_SIZE: usize = PT_LEN + C_LEN + Q_LEN; -/// `VRF.Nh` for both registered suites: the output length in bytes (§17.1). -/// -/// RFC 9381's `beta_string` for this ciphersuite is 64 bytes; §17.1 specifies -/// "with the output truncated to 32 bytes", so that is what a search key is. -pub const OUTPUT_SIZE: usize = 32; - /// A secret key's length in bytes (RFC 8032 §5.1.5). pub const SECRET_KEY_SIZE: usize = 32; /// A public key's length in bytes. pub const PUBLIC_KEY_SIZE: usize = 32; -/// Something wrong with a VRF key, proof, or the suite asked for. -#[derive(Clone, Debug, PartialEq, Eq)] -#[non_exhaustive] -pub enum Error { - /// The cipher suite's VRF is not implemented here. - UnsupportedSuite { - /// The suite that was asked for. - suite: CipherSuite, - }, - /// A public key was not a valid compressed Edwards point. - MalformedPublicKey, - /// A public key was of small order, so it commits to nothing. - /// - /// RFC 9381 §5.4.5 `ECVRF_validate_key`. Checked here because in this protocol - /// the VRF public key arrives in a `Configuration` from the log, and a - /// small-order key would let it produce the same output for every label. - SmallOrderPublicKey, - /// A proof was not `VRF.Np` bytes. - ProofLength { - /// `VRF.Np`. - expected: usize, - /// What was supplied. - actual: usize, - }, - /// A proof's `Gamma` was not a valid compressed Edwards point. - MalformedGamma, - /// A proof's `s` was not a canonical scalar, i.e. `s >= q`. - /// - /// RFC 9381 §5.4.4 step 7 requires rejecting these. Accepting them would make - /// proofs malleable: several byte strings would verify for one signature. - NonCanonicalScalar, - /// The proof did not verify: the recomputed challenge differed. - BadProof, - /// A `VrfInput` could not be encoded, e.g. a label above the `2^8-1` ceiling. - Wire(codec::Error), -} - -impl fmt::Display for Error { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - match self { - Self::UnsupportedSuite { suite } => { - write!(f, "the VRF for {suite} is not implemented") - } - Self::MalformedPublicKey => f.write_str("VRF public key is not a valid point"), - Self::SmallOrderPublicKey => f.write_str("VRF public key is of small order"), - Self::ProofLength { expected, actual } => { - write!(f, "VRF proof must be {expected} bytes, got {actual}") - } - Self::MalformedGamma => f.write_str("VRF proof's Gamma is not a valid point"), - Self::NonCanonicalScalar => f.write_str("VRF proof's s is not a canonical scalar"), - Self::BadProof => f.write_str("VRF proof does not verify"), - Self::Wire(err) => write!(f, "encoding the VRF input: {err}"), - } - } -} - -impl core::error::Error for Error { - fn source(&self) -> Option<&(dyn core::error::Error + 'static)> { - match self { - // The wrapping variant has to be walkable, like the one in - // `crate::Error` and `kt_tree::log::Error`: a caller that wants to know - // *which* field of a VrfInput was too long should not have to parse the - // rendered message to find out. - Self::Wire(err) => Some(err), - _ => None, - } - } -} - -impl From for Error { - fn from(err: codec::Error) -> Self { - Self::Wire(err) - } -} - -/// A specialized [`Result`] for VRF operations. -pub type Result = core::result::Result; - -/// A VRF output: the search key for a label-version pair (§11.7). -/// -/// 32 bytes, which is `VRF.Nh` — the truncation §17.1 applies to ECVRF's 64-byte -/// `beta_string`. Only [`PublicKey::verify`] and [`SecretKey::evaluate`] produce -/// one, so an output can only exist alongside a proof that justifies it. -#[derive(Copy, Clone, Debug, PartialEq, Eq)] -pub struct Output(HashValue); - -impl Output { - /// The output as a prefix-tree search key. - #[must_use] - pub const fn search_key(&self) -> HashValue { - self.0 - } - - /// The output bytes. - #[must_use] - pub const fn as_bytes(&self) -> &[u8; OUTPUT_SIZE] { - self.0.as_bytes() - } -} - /// A VRF proof: `VRF.Np` bytes of `Gamma || c || s` (RFC 9381 §5.4.4). #[derive(Copy, Clone, Debug, PartialEq, Eq)] pub struct Proof([u8; PROOF_SIZE]); @@ -869,8 +750,11 @@ mod tests { ); } - /// The P-256 suite is not implemented, and asking for it says so instead of - /// evaluating the wrong curve. + /// Asking this module for the P-256 suite says so instead of evaluating the wrong + /// curve. The suite argument is not redundant: both suites are implemented, in + /// separate modules with separate key and proof types, and this is what stops an + /// edwards25519 key from being used under a `Configuration` that names P-256. + /// [`super::p256`] is the module that answers for that suite. #[test] fn p256_suite_is_refused() { let secret = SecretKey::from_seed([9; 32]); diff --git a/crates/kt-crypto/src/vrf/mod.rs b/crates/kt-crypto/src/vrf/mod.rs new file mode 100644 index 0000000..1b0a136 --- /dev/null +++ b/crates/kt-crypto/src/vrf/mod.rs @@ -0,0 +1,159 @@ +//! Verifiable Random Function (`draft-ietf-keytrans-protocol-05` §11.7). +//! +//! Each label-version pair's search key in the prefix tree is the VRF output over +//! a [`VrfInput`](kt_wire::structs::VrfInput) (§11.7). That is what keeps labels +//! private: the tree is indexed by a value only the log can compute, so a user who +//! is handed a search key learns nothing about the label behind it, and — because +//! the VRF is *verifiable* — the log cannot use a different key for the same label +//! than the one it proves. +//! +//! One submodule per registered ciphersuite, mirroring both RFC 9381's structure +//! and the peer's `crypto/vrf/{edwards25519,p256}`: +//! +//! | Suite (§17.1) | Module | ECVRF ciphersuite | `VRF.Np` | +//! |---|---|---|---| +//! | `KT_128_SHA256_Ed25519` (`0x0002`) | [`edwards25519`] | `ECVRF-EDWARDS25519-SHA512-TAI` | 80 | +//! | `KT_128_SHA256_P256` (`0x0001`) | [`p256`] | `ECVRF-P256-SHA256-TAI` | 81 | +//! +//! [`Error`] and [`Output`] are shared, because a search key is 32 bytes in both +//! suites — §17.1 truncates edwards25519's 64-byte `beta_string` and takes P-256's +//! whole 32 — and because a caller that cannot parse a proof wants the same error +//! either way. Everything else differs: the curve, the hash, the integer byte +//! order, the encoded sizes. +//! +//! The keys and proofs are deliberately *not* unified behind one enum. A +//! `Configuration` fixes the suite for the whole log, so a caller knows which it +//! holds; a sum type would only move that knowledge to run time and invite reading +//! an 81-byte proof as an 80-byte one. + +pub mod edwards25519; +pub mod p256; + +use core::fmt; + +use kt_wire::codec; +use kt_wire::structs::HashValue; + +use crate::suite::CipherSuite; + +/// Something wrong with a VRF key, proof, or the suite asked for. +#[derive(Clone, Debug, PartialEq, Eq)] +#[non_exhaustive] +pub enum Error { + /// The cipher suite's VRF is not implemented here. + /// + /// Both registered suites are implemented, so this is only reachable if the + /// registry gains a third. + UnsupportedSuite { + /// The suite that was asked for. + suite: CipherSuite, + }, + /// A public key was not a valid point on the suite's curve. + MalformedPublicKey, + /// A public key was of small order, so it commits to nothing. + /// + /// RFC 9381 §5.4.5 `ECVRF_validate_key`. Checked here because in this protocol + /// the VRF public key arrives in a `Configuration` from the log, and a + /// small-order key would let it produce the same output for every label. Only + /// reachable for edwards25519: P-256 has prime order, so its only small-order + /// element is the identity, which a valid SEC1 encoding cannot express. + SmallOrderPublicKey, + /// A proof was not `VRF.Np` bytes. + ProofLength { + /// `VRF.Np`. + expected: usize, + /// What was supplied. + actual: usize, + }, + /// A proof's `Gamma` was not a valid point on the suite's curve. + MalformedGamma, + /// A proof's `s` was not a canonical scalar, i.e. `s >= q`. + /// + /// RFC 9381 §5.4.4 step 7 requires rejecting these. Accepting them would make + /// proofs malleable: several byte strings would verify for one signature. The + /// peer's P-256 implementation additionally rejects `s == 0`; this does not, + /// because zero is a canonical scalar and RFC 9381 asks only about `s >= q`. + /// No honest prover emits it, so the difference is unreachable in practice. + NonCanonicalScalar, + /// The proof did not verify: the recomputed challenge differed. + BadProof, + /// A `VrfInput` could not be encoded, e.g. a label above the `2^8-1` ceiling. + Wire(codec::Error), +} + +impl fmt::Display for Error { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::UnsupportedSuite { suite } => { + write!(f, "the VRF for {suite} is not implemented") + } + Self::MalformedPublicKey => f.write_str("VRF public key is not a valid point"), + Self::SmallOrderPublicKey => f.write_str("VRF public key is of small order"), + Self::ProofLength { expected, actual } => { + write!(f, "VRF proof must be {expected} bytes, got {actual}") + } + Self::MalformedGamma => f.write_str("VRF proof's Gamma is not a valid point"), + Self::NonCanonicalScalar => f.write_str("VRF proof's s is not a canonical scalar"), + Self::BadProof => f.write_str("VRF proof does not verify"), + Self::Wire(err) => write!(f, "encoding the VRF input: {err}"), + } + } +} + +impl core::error::Error for Error { + fn source(&self) -> Option<&(dyn core::error::Error + 'static)> { + match self { + // The wrapping variant has to be walkable, like the one in + // `crate::Error` and `kt_tree::log::Error`: a caller that wants to know + // *which* field of a VrfInput was too long should not have to parse the + // rendered message to find out. + Self::Wire(err) => Some(err), + _ => None, + } + } +} + +impl From for Error { + fn from(err: codec::Error) -> Self { + Self::Wire(err) + } +} + +/// A specialized [`Result`] for VRF operations. +pub type Result = core::result::Result; + +/// A VRF output: the search key for a label-version pair (§11.7). +/// +/// 32 bytes, which is `VRF.Nh` — the truncation §17.1 applies to ECVRF's 64-byte +/// `beta_string`. Only [`PublicKey::verify`] and [`SecretKey::evaluate`] produce +/// one, so an output can only exist alongside a proof that justifies it. +#[derive(Copy, Clone, Debug, PartialEq, Eq)] +pub struct Output(HashValue); + +impl Output { + /// Wraps a computed `beta_string`. + /// + /// Crate-internal on purpose: an `Output` should only ever come from a + /// verification or an evaluation, so that holding one is evidence a proof + /// justified it. + pub(crate) const fn from_hash(hash: HashValue) -> Self { + Self(hash) + } + /// The output as a prefix-tree search key. + #[must_use] + pub const fn search_key(&self) -> HashValue { + self.0 + } + + /// The output bytes. + #[must_use] + pub const fn as_bytes(&self) -> &[u8; OUTPUT_SIZE] { + self.0.as_bytes() + } +} + +/// `VRF.Nh` for both registered suites: the output length in bytes (§17.1). +/// +/// RFC 9381's `beta_string` for this ciphersuite is 64 bytes; §17.1 specifies +/// "with the output truncated to 32 bytes", so that is what a search key is. +pub const OUTPUT_SIZE: usize = 32; diff --git a/crates/kt-crypto/src/vrf/p256.rs b/crates/kt-crypto/src/vrf/p256.rs new file mode 100644 index 0000000..d4c4d30 --- /dev/null +++ b/crates/kt-crypto/src/vrf/p256.rs @@ -0,0 +1,519 @@ +//! `ECVRF-P256-SHA256-TAI` (RFC 9381 §5.5), which §17.1 selects for +//! `KT_128_SHA256_P256`. +//! +//! Verification only. A VRF proof is produced by the log and consumed by everyone +//! else, so proving is a log's operation; [`super::edwards25519`] implements it +//! because its test vectors are round-trippable against RFC 9381 without a nonce +//! generator, and P-256's are not — RFC 9381 §5.4.2.1 derives the nonce with +//! RFC 6979, which is a signing concern this implementation has no use for. What a +//! client has to be able to do — take an 81-byte proof from a `BinaryLadderStep` +//! and recover the search key it commits to — is here in full. +//! +//! # Differences from edwards25519, all of them load-bearing +//! +//! | | edwards25519 | P-256 | +//! |---|---|---| +//! | hash | SHA-512 | SHA-256 | +//! | `suite_string` | `0x03` | `0x01` | +//! | integers | little-endian | **big-endian** | +//! | encoded point | 32 bytes | 33 bytes, SEC1 compressed | +//! | `VRF.Np` | 80 | **81** | +//! | `beta_string` | 64 bytes, truncated to 32 | 32 bytes, used whole | +//! | cofactor | 8, cleared explicitly | 1, nothing to clear | +//! +//! The byte order is the one to watch. RFC 9381's `string_to_int` follows the +//! curve's own convention, which for the NIST curves is big-endian — the opposite +//! of the edwards25519 ciphersuites. A `c` or `s` read the other way round produces +//! a verifier that agrees with nothing. +//! +//! # Oracles +//! +//! Two, and they are independent of each other: RFC 9381's Appendix B.1 test +//! vectors for `ECVRF-P256-SHA256-TAI`, which are in the tests below and settle the +//! byte order and every domain separator, and the peer's `crypto/vrf/p256` by way +//! of `interop/vectors/vrf.json`. + +use p256::elliptic_curve::PrimeField as _; +use p256::elliptic_curve::sec1::{FromSec1Point as _, Sec1Point, ToSec1Point as _}; +use p256::elliptic_curve::subtle::ConstantTimeEq as _; +use p256::{AffinePoint, ProjectivePoint, Scalar}; +use sha2::{Digest as _, Sha256}; + +use kt_wire::codec::Encode as _; +use kt_wire::structs::{HashValue, VrfInput}; + +use super::{Error, Output, Result}; + +/// `suite_string` for `ECVRF-P256-SHA256-TAI` (RFC 9381 §5.5). +const SUITE_STRING: u8 = 0x01; + +/// Domain separators (RFC 9381 §5.4.1.1, §5.4.3, §5.4.4). +const ENCODE_TO_CURVE_FRONT: u8 = 0x01; +const CHALLENGE_FRONT: u8 = 0x02; +const PROOF_TO_HASH_FRONT: u8 = 0x03; +const SEPARATOR_BACK: u8 = 0x00; + +/// `cLen`: the challenge's length in bytes (RFC 9381 §5.5). +const C_LEN: usize = 16; +/// `qLen`: the scalar `s`'s length in bytes. +const Q_LEN: usize = 32; +/// `ptLen`: a SEC1 compressed point's length in bytes. +const PT_LEN: usize = 33; + +/// `VRF.Np` for `KT_128_SHA256_P256`: the proof size in bytes (§17.1). +pub const PROOF_SIZE: usize = PT_LEN + C_LEN + Q_LEN; + +/// A public key's length in bytes: SEC1 compressed. +pub const PUBLIC_KEY_SIZE: usize = PT_LEN; + +/// A VRF proof: `VRF.Np` bytes of `Gamma || c || s` (RFC 9381 §5.4.4). +#[derive(Copy, Clone, Debug, PartialEq, Eq)] +pub struct Proof([u8; PROOF_SIZE]); + +impl Proof { + /// Wraps `VRF.Np` bytes from the wire. + #[must_use] + pub const fn from_bytes(bytes: [u8; PROOF_SIZE]) -> Self { + Self(bytes) + } + + /// Wraps a slice that must be exactly `VRF.Np` bytes. + /// + /// # Errors + /// + /// [`Error::ProofLength`] if it is not. + pub fn from_slice(bytes: &[u8]) -> Result { + let array = <[u8; PROOF_SIZE]>::try_from(bytes).map_err(|_| Error::ProofLength { + expected: PROOF_SIZE, + actual: bytes.len(), + })?; + Ok(Self(array)) + } + + /// The proof bytes. + #[must_use] + pub const fn as_bytes(&self) -> &[u8; PROOF_SIZE] { + &self.0 + } + + /// Splits the proof into `(Gamma, c, s)` (RFC 9381 §5.4.4 `ECVRF_decode_proof`). + /// + /// `c` is `cLen` bytes and `s` is `qLen`, both big-endian, and both are widened + /// to a full scalar here. Step 7 requires rejecting `s >= q`, which + /// [`Scalar::from_repr`] does by construction. + fn decode(&self) -> Result<(ProjectivePoint, Scalar, Scalar)> { + let gamma_bytes = self.0.get(..PT_LEN).ok_or(Error::MalformedGamma)?; + let gamma = decode_point(gamma_bytes).ok_or(Error::MalformedGamma)?; + + // `c` occupies the *low* `cLen` bytes of a big-endian scalar, so it is + // left-padded rather than right-padded. Getting this backwards multiplies by + // 2^128 times the intended value. + let mut c_wide = [0_u8; Q_LEN]; + let c_slice = self + .0 + .get(PT_LEN..PT_LEN.saturating_add(C_LEN)) + .ok_or(Error::BadProof)?; + c_wide + .get_mut(Q_LEN.saturating_sub(C_LEN)..) + .ok_or(Error::BadProof)? + .copy_from_slice(c_slice); + // A `cLen`-byte value is far below the group order, so this cannot fail. + let c = Option::::from(Scalar::from_repr(c_wide.into())).ok_or(Error::BadProof)?; + + let s_slice = self + .0 + .get(PT_LEN.saturating_add(C_LEN)..) + .ok_or(Error::BadProof)?; + let s_bytes = <[u8; Q_LEN]>::try_from(s_slice).map_err(|_| Error::BadProof)?; + let s = Option::::from(Scalar::from_repr(s_bytes.into())) + .ok_or(Error::NonCanonicalScalar)?; + + Ok((gamma, c, s)) + } + + /// `Gamma`'s SEC1 compressed encoding, which is what `proof_to_hash` hashes. + fn gamma_bytes(&self) -> Result<&[u8]> { + self.0.get(..PT_LEN).ok_or(Error::MalformedGamma) + } +} + +/// A VRF public key: a SEC1 compressed P-256 point. +#[derive(Copy, Clone, Debug, PartialEq, Eq)] +pub struct PublicKey { + point: ProjectivePoint, + /// The compressed encoding, kept because `encode_to_curve`'s salt is exactly + /// these bytes and recomputing it per counter attempt would be wasteful. + encoded: [u8; PUBLIC_KEY_SIZE], +} + +impl PublicKey { + /// Parses a SEC1 point. + /// + /// Both the compressed (33-byte) and uncompressed (65-byte) encodings are + /// accepted, because §11.2 carries the key as `opaque vrf_public_key<0..2^16-1>` + /// and says nothing about which. The peer emits compressed and accepts either. + /// + /// # Errors + /// + /// [`Error::MalformedPublicKey`] if the bytes are not a point on the curve, or + /// are the point at infinity — which RFC 9381 §5.4.5 requires rejecting, and + /// which for a prime-order curve is the only key that commits to nothing. + pub fn from_slice(bytes: &[u8]) -> Result { + let point = decode_point(bytes).ok_or(Error::MalformedPublicKey)?; + if bool::from(point.to_affine().is_identity()) { + return Err(Error::SmallOrderPublicKey); + } + let encoded = compress(&point); + Ok(Self { point, encoded }) + } + + /// The key's SEC1 compressed encoding. + #[must_use] + pub const fn as_bytes(&self) -> &[u8; PUBLIC_KEY_SIZE] { + &self.encoded + } + + /// Verifies a proof over an arbitrary `alpha` and returns the output (RFC 9381 + /// §5.3 `ECVRF_verify`, §5.2 `ECVRF_proof_to_hash`). + /// + /// # Errors + /// + /// [`Error::MalformedGamma`] or [`Error::NonCanonicalScalar`] if the proof does + /// not decode, and [`Error::BadProof`] if the recomputed challenge differs. + pub fn verify_raw(&self, alpha: &[u8], proof: &Proof) -> Result { + verify_steps(self, alpha, proof) + } + + /// Verifies a proof over a `VrfInput` and returns the search key (§11.7). + /// + /// # Errors + /// + /// [`Error::Wire`] if the input cannot be encoded, plus anything + /// [`PublicKey::verify_raw`] reports. + pub fn verify(&self, input: &VrfInput, proof: &Proof) -> Result { + let mut encoder = kt_wire::codec::Encoder::new(); + input.encode(&mut encoder)?; + self.verify_raw(encoder.as_bytes(), proof) + } +} + +/// RFC 9381 §5.4.1.1 `ECVRF_encode_to_curve_try_and_increment`. +/// +/// Hashes `salt || alpha || ctr` and reads the digest as the *x* coordinate of a +/// compressed point with an even *y*, incrementing `ctr` until one lands on the +/// curve. Two attempts in three succeed, so the loop is short; it is bounded at 256 +/// by the counter being a single byte, and returning [`None`] there rather than +/// panicking is the difference between a malformed input and a crash. +fn encode_to_curve(salt: &[u8; PUBLIC_KEY_SIZE], alpha: &[u8]) -> Option { + for ctr in 0..=u8::MAX { + let mut hasher = Sha256::new(); + hasher.update([SUITE_STRING, ENCODE_TO_CURVE_FRONT]); + hasher.update(salt); + hasher.update(alpha); + hasher.update([ctr, SEPARATOR_BACK]); + let hashed = hasher.finalize(); + + let mut candidate = [0_u8; PT_LEN]; + // SEC1 tag 0x02: compressed, even y. RFC 9381 §5.5 fixes it for this suite, + // so a digest that is a valid x coordinate yields exactly one point. + *candidate.first_mut()? = 0x02; + candidate.get_mut(1..)?.copy_from_slice(&hashed); + + if let Some(point) = decode_point(&candidate) { + // P-256 has cofactor 1, so there is no small-order component to clear — + // the step edwards25519 needs `mul_by_cofactor` for. The identity cannot + // arise here either: a compressed encoding with a tag byte always names + // an affine point. + return Some(point); + } + } + None +} + +/// RFC 9381 §5.4.3 `ECVRF_challenge_generation`, truncated to `cLen` bytes. +fn challenge(points: [&ProjectivePoint; 5]) -> [u8; C_LEN] { + let mut hasher = Sha256::new(); + hasher.update([SUITE_STRING, CHALLENGE_FRONT]); + for point in points { + hasher.update(compress(point)); + } + hasher.update([SEPARATOR_BACK]); + let hashed = hasher.finalize(); + + let mut out = [0_u8; C_LEN]; + // The digest is 32 bytes and `C_LEN` is 16, so the slice always exists. + if let Some(front) = hashed.get(..C_LEN) { + out.copy_from_slice(front); + } + out +} + +/// RFC 9381 §5.2 `ECVRF_proof_to_hash`. +/// +/// No truncation and no cofactor multiplication: `beta_string` is already 32 bytes, +/// which is `VRF.Nh`, and P-256's cofactor is 1. +fn proof_to_hash(gamma_bytes: &[u8]) -> Output { + let mut hasher = Sha256::new(); + hasher.update([SUITE_STRING, PROOF_TO_HASH_FRONT]); + hasher.update(gamma_bytes); + hasher.update([SEPARATOR_BACK]); + let hashed = hasher.finalize(); + + let mut out = [0_u8; 32]; + out.copy_from_slice(&hashed); + Output::from_hash(HashValue::from_bytes(out)) +} + +/// Decodes a SEC1 point, rejecting anything not on the curve. +fn decode_point(bytes: &[u8]) -> Option { + let encoded = Sec1Point::::from_bytes(bytes).ok()?; + let affine = Option::::from(AffinePoint::from_sec1_point(&encoded))?; + Some(ProjectivePoint::from(affine)) +} + +/// A point's SEC1 compressed encoding. +fn compress(point: &ProjectivePoint) -> [u8; PT_LEN] { + let mut out = [0_u8; PT_LEN]; + let bytes = point.to_affine().to_sec1_point(true); + if let Some(slot) = out.get_mut(..bytes.as_bytes().len()) { + slot.copy_from_slice(bytes.as_bytes()); + } + out +} + +/// Everything a verifier needs from a decoded proof, in one place so that +/// [`PublicKey::verify_raw`] reads like RFC 9381 §5.3's numbered steps. +#[allow( + clippy::arithmetic_side_effects, + reason = "these are elliptic-curve group operations on p256 types, not machine integers: scalar multiplication and point addition are total on the group and cannot overflow or panic. The lint reads the operator overloads as arithmetic it should be guarding." +)] +fn verify_steps(key: &PublicKey, alpha: &[u8], proof: &Proof) -> Result { + // Steps 1-3: decode the proof. `c` comes back as a scalar for the arithmetic and + // is compared in its wire form below, because RFC 9381 step 8 compares the + // *strings*, and a scalar comparison would accept a `c` that is congruent but + // differently encoded. + let (gamma, c, s) = proof.decode()?; + + // Step 4: H = encode_to_curve(PK, alpha). + let h = encode_to_curve(key.as_bytes(), alpha).ok_or(Error::BadProof)?; + + // Step 5: U = s*B - c*Y. + let u = (ProjectivePoint::GENERATOR * s) - (key.point * c); + // Step 6: V = s*H - c*Gamma. + let v = (h * s) - (gamma * c); + + // Steps 7-8: c' = challenge(Y, H, Gamma, U, V), and c' must equal c. + let recomputed = challenge([&key.point, &h, &gamma, &u, &v]); + let mut supplied = [0_u8; C_LEN]; + supplied.copy_from_slice( + proof + .0 + .get(PT_LEN..PT_LEN.saturating_add(C_LEN)) + .ok_or(Error::BadProof)?, + ); + // Constant-time, matching the edwards25519 path: a challenge comparison that + // leaks where two proofs first differ is a timing oracle on the log's key. + if !bool::from(recomputed.ct_eq(&supplied)) { + return Err(Error::BadProof); + } + + Ok(proof_to_hash(proof.gamma_bytes()?)) +} + +#[cfg(test)] +#[allow( + clippy::arithmetic_side_effects, + clippy::indexing_slicing, + clippy::panic, + clippy::unwrap_used, + reason = "tests fail loudly by panicking; the lints protect the verification paths" +)] +mod tests { + use super::*; + use alloc::vec::Vec; + + /// RFC 9381 Appendix B.1's `ECVRF-P256-SHA256-TAI` examples, as `(public key, alpha, + /// beta, pi)`. These are the oracle that matters: they are independent of both this + /// implementation and the peer, and they settle every choice this module makes — the + /// suite string, the three domain separators, the big-endian integers, the SEC1 `0x02` + /// tag in `encode_to_curve`, and the absence of truncation in `proof_to_hash`. Getting + /// any one of them wrong fails all three. + const VECTORS: [(&str, &str, &str, &str); 3] = [ + ( + "0360fed4ba255a9d31c961eb74c6356d68c049b8923b61fa6ce669622e60f29fb6", + "73616d706c65", + "a3ad7b0ef73d8fc6655053ea22f9bede8c743f08bbed3d38821f0e16474b505e", + "035b5c726e8c0e2c488a107c600578ee75cb702343c153cb1eb8dec77f4b5071b4a53f0a46f018bc2c\ + 56e58d383f2305e0975972c26feea0eb122fe7893c15af376b33edf7de17c6ea056d4d82de6bc02f", + ), + ( + "0360fed4ba255a9d31c961eb74c6356d68c049b8923b61fa6ce669622e60f29fb6", + "74657374", + "a284f94ceec2ff4b3794629da7cbafa49121972671b466cab4ce170aa365f26d", + "034dac60aba508ba0c01aa9be80377ebd7562c4a52d74722e0abae7dc3080ddb56c19e067b15a8a817\ + 4905b13617804534214f935b94c2287f797e393eb0816969d864f37625b443f30f1a5a33f2b3c854", + ), + ( + "03596375e6ce57e0f20294fc46bdfcfd19a39f8161b58695b3ec5b3d16427c274d", + "4578616d706c65207573696e67204543445341206b65792066726f6d20417070656e646978204c2e34\ + 2e32206f6620414e53492e58392d36322d32303035", + "90871e06da5caa39a3c61578ebb844de8635e27ac0b13e829997d0d95dd98c19", + "03d03398bf53aa23831d7d1b2937e005fb0062cbefa06796579f2a1fc7e7b8c667d091c00b0f5c3619\ + d10ecea44363b5a599cadc5b2957e223fec62e81f7b4825fc799a771a3d7334b9186bdbee87316b1", + ), + ]; + + fn unhex(text: &str) -> Vec { + let cleaned: Vec = text.bytes().filter(|b| !b.is_ascii_whitespace()).collect(); + cleaned + .chunks(2) + .map(|pair| { + let digit = |b: u8| match b { + b'0'..=b'9' => b - b'0', + b'a'..=b'f' => b - b'a' + 10, + _ => panic!("not hex: {b}"), + }; + digit(pair[0]) * 16 + digit(pair[1]) + }) + .collect() + } + + #[test] + fn rfc_9381_vectors_verify() { + for (index, (public, alpha, beta, pi)) in VECTORS.iter().enumerate() { + let key = PublicKey::from_slice(&unhex(public)).unwrap(); + let proof = Proof::from_slice(&unhex(pi)).unwrap(); + let output = key.verify_raw(&unhex(alpha), &proof).unwrap(); + assert_eq!( + output.as_bytes().as_slice(), + unhex(beta).as_slice(), + "vector {index}" + ); + // A compressed key round-trips to the bytes it came from. + assert_eq!(key.as_bytes().as_slice(), unhex(public).as_slice()); + } + } + + /// The proof is bound to the message. RFC 9381's own vectors share a key across two + /// different `alpha`s, so each one's proof must fail against the other's message — + /// which is a sharper check than a random tamper, because both proofs are individually + /// valid. + #[test] + fn a_proof_does_not_verify_for_another_message() { + let key = PublicKey::from_slice(&unhex(VECTORS[0].0)).unwrap(); + let first = Proof::from_slice(&unhex(VECTORS[0].3)).unwrap(); + let second = Proof::from_slice(&unhex(VECTORS[1].3)).unwrap(); + assert_eq!( + key.verify_raw(&unhex(VECTORS[1].1), &first), + Err(Error::BadProof) + ); + assert_eq!( + key.verify_raw(&unhex(VECTORS[0].1), &second), + Err(Error::BadProof) + ); + } + + /// And to the key. Vector 2 uses a different key from vectors 0 and 1, so crossing them + /// must fail — the check that `encode_to_curve`'s salt really is the public key. + #[test] + fn a_proof_does_not_verify_under_another_key() { + let other = PublicKey::from_slice(&unhex(VECTORS[2].0)).unwrap(); + let proof = Proof::from_slice(&unhex(VECTORS[0].3)).unwrap(); + assert_eq!( + other.verify_raw(&unhex(VECTORS[0].1), &proof), + Err(Error::BadProof) + ); + } + + /// Every single-byte mutation of a valid proof must be rejected. This is where the + /// `Gamma`/`c`/`s` boundaries get checked without having to reason about them: a flipped + /// bit in `Gamma` usually leaves the curve, one in `c` or `s` changes the arithmetic, and + /// all three must come back as an error rather than a different output. + #[test] + fn every_single_byte_mutation_is_rejected() { + let key = PublicKey::from_slice(&unhex(VECTORS[0].0)).unwrap(); + let bytes = unhex(VECTORS[0].3); + let alpha = unhex(VECTORS[0].1); + for position in 0..bytes.len() { + let mut mutated = bytes.clone(); + mutated[position] ^= 0x01; + let proof = Proof::from_slice(&mutated).unwrap(); + assert!( + key.verify_raw(&alpha, &proof).is_err(), + "byte {position} flipped and the proof still verified" + ); + } + } + + /// The length is `VRF.Np`, and nothing else. §13.1's `BinaryLadderStep` reads a proof as + /// a fixed-size field, so a length mismatch means the response was decoded under the + /// wrong cipher suite — 80 bytes is an edwards25519 proof. + #[test] + fn the_proof_length_is_np() { + assert_eq!(PROOF_SIZE, 81); + let short = unhex(VECTORS[0].3)[..80].to_vec(); + assert_eq!( + Proof::from_slice(&short), + Err(Error::ProofLength { + expected: 81, + actual: 80 + }) + ); + } + + /// A public key must be a point on the curve, and must not be the identity. On a + /// prime-order curve the identity is the only element that commits to nothing, and SEC1 + /// spells it as a single zero byte. + #[test] + fn malformed_public_keys_are_refused() { + // Right length and tag, wrong x coordinate: not on the curve. + let mut bogus = unhex(VECTORS[0].0); + bogus[1] ^= 0xff; + assert_eq!( + PublicKey::from_slice(&bogus), + Err(Error::MalformedPublicKey) + ); + // SEC1's identity encoding is a single zero byte, and it *parses* — so it is caught + // by the explicit RFC 9381 §5.4.5 check rather than by point decoding, and reports + // the more specific error. + assert_eq!( + PublicKey::from_slice(&[0x00]), + Err(Error::SmallOrderPublicKey) + ); + assert_eq!(PublicKey::from_slice(&[]), Err(Error::MalformedPublicKey)); + // An edwards25519 key is 32 bytes, which is not a SEC1 encoding at all. + assert_eq!( + PublicKey::from_slice(&[0x11; 32]), + Err(Error::MalformedPublicKey) + ); + } + + /// `s >= q` is rejected outright (RFC 9381 §5.4.4 step 7), rather than reduced. Accepting + /// it would make proofs malleable: `s` and `s + q` would both verify. + #[test] + fn a_non_canonical_s_is_refused() { + let mut bytes = unhex(VECTORS[0].3); + // The group order itself, which is the smallest non-canonical value. + let order = unhex("ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"); + bytes[49..].copy_from_slice(&order); + let proof = Proof::from_slice(&bytes).unwrap(); + let key = PublicKey::from_slice(&unhex(VECTORS[0].0)).unwrap(); + assert_eq!( + key.verify_raw(&unhex(VECTORS[0].1), &proof), + Err(Error::NonCanonicalScalar) + ); + } + + /// The §11.7 entry point: a `VrfInput` rather than raw bytes. The search key is the + /// output, so this is the shape a prefix tree lookup actually uses. + #[test] + fn a_vrf_input_produces_a_search_key() { + let key = PublicKey::from_slice(&unhex(VECTORS[0].0)).unwrap(); + let proof = Proof::from_slice(&unhex(VECTORS[0].3)).unwrap(); + let input = VrfInput::new(b"alice@example.com".to_vec(), 3); + // The vectors' alpha is not a VrfInput encoding, so this must fail rather than + // silently accept — the point is that `verify` encodes the input rather than + // taking bytes. + assert_eq!(key.verify(&input, &proof), Err(Error::BadProof)); + } +} diff --git a/docs/interop.md b/docs/interop.md index 4fbddc3..1b78e47 100644 --- a/docs/interop.md +++ b/docs/interop.md @@ -30,7 +30,7 @@ well, because a `CombinedTreeProof`'s elements are ordered by the algorithm that |---|---|---| | `crypto/suites` | `kt-crypto::suite` | §11.1, §17.1 | | `crypto/commitments` | `kt-crypto::commitment` | §11.6 | -| `crypto/vrf/{edwards25519,p256}` | `kt-crypto::vrf` | §11.7 | +| `crypto/vrf/{edwards25519,p256}` | `kt-crypto::vrf::{edwards25519,p256}` | §11.7 | | `tree/log`, `tree/log/math` | `kt-tree::log` | §3.2, §11.8, §12.1 | | `tree/prefix` | `kt-tree::prefix` | §3.3, §11.9, §12.2 | | `tree/transparency/math` (ladders, tracker) | `kt-tree::ladder`, `kt-tree::ibst` | §4.1, §5, App. A/B | diff --git a/interop/README.md b/interop/README.md index 3e84ceb..cc2d9fd 100644 --- a/interop/README.md +++ b/interop/README.md @@ -150,7 +150,8 @@ dropped. `binary-ladder.json` stops at version `2^31-2` for exactly that reason. | `commitment.json` | commitment | §11.6 | 6 positive, 1 negative | | `ibst.json` | implicit binary search tree | §4.1, Appendix A | 38 log sizes | | `binary-ladder.json` | binary ladder | §5, Appendix B | 76 across base, search, monitoring | -| `vrf.json` | VRF | §11.7 | 10 positive, 1 negative | +| `vrf.json` | VRF, Ed25519 suite | §11.7 | 10 positive, 1 negative | +| `vrf-p256.json` | VRF, P-256 suite | §11.7, §17.1 | 10 positive, 1 negative | | `log-math.json` | log tree structure, in node indices | §3.2, §4.2, §12.1 | 1679 decompositions | | `log-tree.json` | log tree | §3.2, §11.8, §12.1 | 19 sizes, 297 batch proofs | | `prefix-tree.json` | prefix tree | §3.3, §11.9, §12.2 | 11 trees | @@ -164,6 +165,7 @@ dropped. `binary-ladder.json` stops at version `2^31-2` for exactly that reason. | `update-view.json` | updating a view | §4.2 | 190 size/advertised pairs | | `distinguished.json` | distinguished log entries | §6.1 | 42 size/window/timestamp shapes | | `tree-head.json` | configuration, signatures, and `FullTreeHead` bytes | §11.2–§11.4 | 9, all three modes | +| `tree-head-p256.json` | the same under ECDSA/P-256 | §11.2–§11.4, §17.1 | 9, all three modes | | `requests.json` | §13 requests and building blocks | §11.5, §13.1–§13.5 | 22 structures | | `tampered.json` | **must reject** | §11.2, §11.6, §11.7, §12.1, §12.2 | 22, all negative | | `from-kt.json` | must accept / must reject, in reverse | as above | 225, roughly half negative | @@ -190,12 +192,18 @@ subtree over `[start, start+len)` is node `2*start + len - 1`, and because a §1 only ever carries balanced subtree heads, that translation is total on exactly the values that matter. A range that failed to map would itself be the bug. -## The three files that cannot be reproducible +## The four files that cannot be reproducible Every vector file here regenerates to the same bytes, and CI diffs them so that an upstream -bump changing behaviour fails loudly instead of passing quietly. `search.json`, -`monitor.json` and `update.json` are the exceptions, and it is not fixable: all three come -from a live log, and +bump changing behaviour fails loudly instead of passing quietly. Four are exceptions. + +`tree-head-p256.json` is the simple case: it carries ECDSA signatures, and Go's `crypto/ecdsa` +draws a nonce per signature. §17.1 fixes how `r` and `s` are encoded, not how they are produced. +Here the non-reproducibility is a feature — CI regenerates and re-checks, so every run verifies +signatures nobody has seen, and a verifier that happened to work for one nonce would fail. + +`search.json`, `monitor.json` and `update.json` are the harder case, and it is not fixable: all +three come from a live log, and katie stamps each entry with `time.Now()` and generates a fresh random opening for every commitment, with no injection point for either. Every commitment, prefix root, log root and signature in a response therefore differs run to run. @@ -210,7 +218,7 @@ where everything or nothing expired would pass while testing nothing. The alternative to giving up the property was to weaken it — compare the regenerated file structurally, ignoring the values that move. That would have checked less than what is done instead: CI regenerates the vectors and runs **the whole Rust check suite against the -regenerated tree**, so all three files' checks execute against bytes nobody has ever seen. A change +regenerated tree**, so all four files' checks execute against bytes nobody has ever seen. A change in how the peer shapes a response fails there. The committed files remain as pinned artifacts for `cargo test` and for the page, and are excluded from the reproducibility diff. @@ -224,7 +232,7 @@ and record what it produces. What is measured is §9.1's element ordering, which hand-built example can pin. The `UpdateResponse` around it was never measured and is not claimed; its members are pinned by `tree-head.json` and `requests.json` instead. -Net effect: the deterministic files are pinned *and* reproducible; the three nondeterministic ones +Net effect: the deterministic files are pinned *and* reproducible; the four nondeterministic ones are pinned and re-derived. Nothing is checked only against itself, which is the property that actually matters. diff --git a/interop/go/cmd/gen/heads.go b/interop/go/cmd/gen/heads.go index d64e8f1..2ae3ed6 100644 --- a/interop/go/cmd/gen/heads.go +++ b/interop/go/cmd/gen/heads.go @@ -37,19 +37,33 @@ import ( "fmt" "github.com/Bren2010/katie/crypto/suites" - "github.com/Bren2010/katie/crypto/vrf/edwards25519" "github.com/Bren2010/katie/tree/transparency/structs" ) // headVectors covers draft §11.2, §11.3, and §11.4. func headVectors(sha string) (*File, error) { - cs := suites.KTSha256Ed25519{} + return headVectorsFor(sha, suites.KTSha256Ed25519{}) +} + +// headVectorsP256 is the same set under KT_128_SHA256_P256, where the signature is +// ECDSA over SHA-256 rather than Ed25519 and the suite code in every Configuration is +// 0x0001. Unlike its Ed25519 counterpart this file is *not* reproducible: Go's +// crypto/ecdsa draws a fresh nonce per signature, and §17.1 fixes the encoding of r +// and s but not how they are produced. +// +// That is a feature here rather than a nuisance. CI regenerates the vectors and runs +// the Rust checks against them, so every run verifies signatures nobody has seen — a +// verifier that happened to work for one nonce would fail. +func headVectorsP256(sha string) (*File, error) { + return headVectorsFor(sha, suites.KTSha256P256{}) +} +func headVectorsFor(sha string, cs suites.CipherSuite) (*File, error) { f := &File{ Primitive: "tree-head", Draft: draftRev + " §11.2, §11.3, §11.4", Generator: Generator{Impl: "katie", SHA: sha}, - CipherSuite: 0x0002, // KT_128_SHA256_Ed25519 + CipherSuite: cs.Id(), Notes: "Signed tree heads and the configuration every signature covers. " + "`configuration` is the encoded Configuration, `tree_head_tbs` is what the " + "signature is computed over, and `tree_head` is the wire TreeHead. Note the " + @@ -74,7 +88,7 @@ func headVectors(sha string) (*File, error) { if err != nil { return nil, fmt.Errorf("parsing the leaf signing key: %w", err) } - vrfKey, err := edwards25519.NewPrivateKey(repeat(0x74, 32)) + vrfKey, err := cs.ParseVRFPrivateKey(repeat(0x74, 32)) if err != nil { return nil, fmt.Errorf("parsing the VRF key: %w", err) } diff --git a/interop/go/cmd/gen/main.go b/interop/go/cmd/gen/main.go index a42accb..b7b68f3 100644 --- a/interop/go/cmd/gen/main.go +++ b/interop/go/cmd/gen/main.go @@ -78,6 +78,7 @@ func main() { {"ibst.json", ibstVectors}, {"binary-ladder.json", ladderVectors}, {"vrf.json", vrfVectors}, + {"vrf-p256.json", vrfVectorsP256}, {"update-view.json", updateViewVectors}, {"log-math.json", logMathVectors}, {"log-tree.json", logTreeVectors}, @@ -89,6 +90,7 @@ func main() { {"monitor.json", monitorVectors}, {"update.json", updateVectors}, {"tree-head.json", headVectors}, + {"tree-head-p256.json", headVectorsP256}, {"requests.json", requestVectors}, {"ladder-interpretation.json", ladderInterpretationVectors}, {"distinguished.json", distinguishedVectors}, diff --git a/interop/go/cmd/gen/vrf.go b/interop/go/cmd/gen/vrf.go index f5c2904..43c5d24 100644 --- a/interop/go/cmd/gen/vrf.go +++ b/interop/go/cmd/gen/vrf.go @@ -21,7 +21,25 @@ import ( // vrfVectors covers draft §11.7 for KT_128_SHA256_Ed25519. func vrfVectors(sha string) (*File, error) { - cs := suites.KTSha256Ed25519{} + return vrfVectorsFor(sha, suites.KTSha256Ed25519{}, + "ECVRF-EDWARDS25519-SHA512-TAI (RFC 9381) over the presentation-language "+ + "encoding of a VrfInput, with the output truncated to VRF.Nh = 32 bytes per "+ + "§17.1. ") +} + +// vrfVectorsP256 covers the same section for KT_128_SHA256_P256, where the ECVRF +// ciphersuite, the hash, the integer byte order and every encoded length differ. The +// cases are the same inputs, so a diff between the two files is entirely attributable +// to the suite. +func vrfVectorsP256(sha string) (*File, error) { + return vrfVectorsFor(sha, suites.KTSha256P256{}, + "ECVRF-P256-SHA256-TAI (RFC 9381) over the presentation-language encoding of a "+ + "VrfInput. Unlike the Ed25519 suite there is no truncation — beta_string is "+ + "already VRF.Nh = 32 bytes — the integers are big-endian, an encoded point is "+ + "33 bytes SEC1 compressed, and VRF.Np is 81. ") +} + +func vrfVectorsFor(sha string, cs suites.CipherSuite, notes string) (*File, error) { // A fixed key, so regeneration is a no-op diff. Deliberately not the RFC 9381 // key: those vectors are already run directly, and reusing one here would @@ -57,12 +75,11 @@ func vrfVectors(sha string) (*File, error) { Primitive: "vrf", Draft: draftRev + " §11.7", Generator: Generator{Impl: "katie", SHA: sha}, - CipherSuite: 0x0002, // KT_128_SHA256_Ed25519 - Notes: "ECVRF-EDWARDS25519-SHA512-TAI (RFC 9381) over the presentation-language " + - "encoding of a VrfInput, with the output truncated to VRF.Nh = 32 bytes per " + - "§17.1. `vrf_input` is that encoding, which is what alpha_string must be; " + + CipherSuite: cs.Id(), + Notes: notes + + "`vrf_input` is that encoding, which is what alpha_string must be; " + "`output` is the prefix tree search key for the label-version pair; `proof` is " + - "VRF.Np = 80 bytes. The RFC's own Appendix B vectors pin the ECVRF core and are " + + "VRF.Np bytes. The RFC's own Appendix B vectors pin the ECVRF core and are " + "run directly by the Rust side; these pin the KT wrapping around it. The " + "negative case is a proof for one label-version pair checked against another, " + "which must not verify.", diff --git a/interop/report/src/check.rs b/interop/report/src/check.rs index 6bf9e73..40b54bb 100644 --- a/interop/report/src/check.rs +++ b/interop/report/src/check.rs @@ -44,7 +44,7 @@ use crate::vectors::{ }; /// The vector files this crate knows how to check, in dependency order. -pub const FILES: [&str; 19] = [ +pub const FILES: [&str; 21] = [ "commitment.json", "ibst.json", "binary-ladder.json", @@ -52,6 +52,7 @@ pub const FILES: [&str; 19] = [ "update-view.json", "distinguished.json", "vrf.json", + "vrf-p256.json", "log-math.json", "log-tree.json", "log-append.json", @@ -62,6 +63,7 @@ pub const FILES: [&str; 19] = [ "monitor.json", "update.json", "tree-head.json", + "tree-head-p256.json", "requests.json", "tampered.json", ]; @@ -177,6 +179,7 @@ pub fn run(dir: &Path) -> Result, Error> { update_view_suite(dir)?, distinguished_suite(dir)?, vrf_suite(dir)?, + vrf_p256_suite(dir)?, log_math_suite(dir)?, log_tree_suite(dir)?, append_suite(dir)?, @@ -187,6 +190,7 @@ pub fn run(dir: &Path) -> Result, Error> { monitor_suite(dir)?, owner_update_suite(dir)?, head_suite(dir)?, + head_p256_suite(dir)?, request_suite(dir)?, tampered_suite(dir)?, ]) @@ -1150,7 +1154,9 @@ fn ladder_keys( let label = hex::decode(&case.input.label).map_err(|err| format!("label: {err}"))?; let vrf_key = <[u8; 32]>::try_from(vrf_key.as_slice()) .map_err(|_| "the VRF public key is not 32 bytes".to_owned()) - .and_then(|bytes| vrf::PublicKey::from_bytes(bytes).map_err(|err| err.to_string()))?; + .and_then(|bytes| { + vrf::edwards25519::PublicKey::from_bytes(bytes).map_err(|err| err.to_string()) + })?; // The response's ladder can be shorter than §5's full sequence, for the same reason a // per-entry ladder can: the sequence stops once it has placed the greatest version. So the @@ -1185,7 +1191,7 @@ fn ladder_keys( label: label.clone(), version: *version, }; - let proof = vrf::Proof::from_slice(&step.proof) + let proof = vrf::edwards25519::Proof::from_slice(&step.proof) .map_err(|err| format!("version {version}: {err}"))?; let output = vrf_key .verify(suite, &input, &proof) @@ -1541,7 +1547,9 @@ fn replay_contact_monitor( hex::decode(&case.input.vrf_public_key).map_err(|err| format!("vrf key: {err}"))?; let vrf_key = <[u8; 32]>::try_from(vrf_key.as_slice()) .map_err(|_| "the VRF public key is not 32 bytes".to_owned()) - .and_then(|value| vrf::PublicKey::from_bytes(value).map_err(|err| err.to_string()))?; + .and_then(|value| { + vrf::edwards25519::PublicKey::from_bytes(value).map_err(|err| err.to_string()) + })?; // What the client already holds. A monitoring response carries no ladder and no // commitments, so these come from the user's own state — recorded by the generator as a @@ -1657,7 +1665,9 @@ fn replay_owner_init( hex::decode(&case.input.vrf_public_key).map_err(|err| format!("vrf key: {err}"))?; let vrf_key = <[u8; 32]>::try_from(vrf_key.as_slice()) .map_err(|_| "the VRF public key is not 32 bytes".to_owned()) - .and_then(|value| vrf::PublicKey::from_bytes(value).map_err(|err| err.to_string()))?; + .and_then(|value| { + vrf::edwards25519::PublicKey::from_bytes(value).map_err(|err| err.to_string()) + })?; // §8.3 step 3: the ladder covers version zero and every version a search ladder for any of // the greatest versions would look up. Recovering which version each step is for means @@ -1687,7 +1697,7 @@ fn replay_owner_init( label: label.clone(), version: *version, }; - let proof = vrf::Proof::from_slice(&step.proof) + let proof = vrf::edwards25519::Proof::from_slice(&step.proof) .map_err(|err| format!("version {version}: {err}"))?; let output = vrf_key .verify(suite, &input, &proof) @@ -2405,7 +2415,7 @@ fn vrf_suite(dir: &Path) -> Result { let mut cases = Vec::new(); for case in &file.cases { let name = case.name.as_str(); - let seed: [u8; vrf::SECRET_KEY_SIZE] = + let seed: [u8; vrf::edwards25519::SECRET_KEY_SIZE] = unhex(FILE, name, "private_key", &case.input.private_key)? .try_into() .map_err(|_| Error::Hex { @@ -2413,7 +2423,7 @@ fn vrf_suite(dir: &Path) -> Result { case: name.to_owned(), field: "private_key".to_owned(), })?; - let secret = vrf::SecretKey::from_seed(seed); + let secret = vrf::edwards25519::SecretKey::from_seed(seed); let label = unhex(FILE, name, "label", &case.input.label)?; let input = VrfInput::new(label, case.input.version); @@ -2436,7 +2446,7 @@ fn vrf_suite(dir: &Path) -> Result { field: "input.proof".to_owned(), })?; let bytes = unhex(FILE, name, "input.proof", raw)?; - let got = match vrf::Proof::from_slice(&bytes) { + let got = match vrf::edwards25519::Proof::from_slice(&bytes) { Err(err) => format!("unusable proof: {err}"), Ok(proof) => match secret.public_key().verify(suite, &input, &proof) { Err(_) => "rejected".to_owned(), @@ -2507,13 +2517,13 @@ fn vrf_suite(dir: &Path) -> Result { // And the peer's own proof must verify and yield the peer's output — // the direction a client actually runs. let bytes = unhex(FILE, name, "expect.proof", expected_proof)?; - let public = vrf::PublicKey::from_slice(&unhex( + let public = vrf::edwards25519::PublicKey::from_slice(&unhex( FILE, name, "public_key", &case.input.public_key, )?); - let verified = match (public, vrf::Proof::from_slice(&bytes)) { + let verified = match (public, vrf::edwards25519::Proof::from_slice(&bytes)) { (Err(err), _) => format!("unusable public key: {err}"), (_, Err(err)) => format!("unusable proof: {err}"), (Ok(public), Ok(proof)) => { @@ -2667,8 +2677,8 @@ fn tampered_suite(dir: &Path) -> Result { let bytes = unhex(FILE, name, "proof", proof)?; let input = VrfInput::new(unhex(FILE, name, "label", label)?, *version); let got = match ( - vrf::PublicKey::from_slice(&key), - vrf::Proof::from_slice(&bytes), + vrf::edwards25519::PublicKey::from_slice(&key), + vrf::edwards25519::Proof::from_slice(&bytes), ) { (Err(err), _) => format!("rejected with the key: {err}"), (_, Err(err)) => format!("rejected with the proof: {err}"), @@ -2781,12 +2791,24 @@ fn tampered_suite(dir: &Path) -> Result { /// §11.2, §11.3, §11.4: the configuration and the signatures over it. fn head_suite(dir: &Path) -> Result { - const FILE: &str = "tree-head.json"; - let file: VectorFile = load(dir, FILE)?; + head_suite_file(dir, "tree-head.json", "Signed tree heads") +} + +/// The same set under `KT_128_SHA256_P256`: ECDSA over SHA-256, and `0x0001` in every +/// `Configuration`. Not reproducible, because ECDSA signing draws a nonce — which makes CI's +/// regeneration run the stronger check, since each one verifies signatures nobody has seen. +fn head_p256_suite(dir: &Path) -> Result { + head_suite_file(dir, "tree-head-p256.json", "Signed tree heads, ECDSA/P-256") +} + +fn head_suite_file(dir: &Path, name: &str, title: &str) -> Result { + // The two suites' files are the same shape, so only the name and the title differ. + let file_name = name.to_owned(); + let file: VectorFile = load(dir, name)?; let code = file.cipher_suite.unwrap_or_default(); let suite = CipherSuite::from_code(code).map_err(|_| Error::CipherSuite { - file: FILE.to_owned(), + file: file_name.clone(), value: code, })?; @@ -2794,7 +2816,7 @@ fn head_suite(dir: &Path) -> Result { for case in &file.cases { let name = case.name.as_str(); let mode = DeploymentMode::from_u8(case.input.mode).map_err(|_| Error::Computation { - file: FILE.to_owned(), + file: file_name.clone(), case: name.to_owned(), detail: format!("unknown deployment mode {}", case.input.mode), })?; @@ -2803,22 +2825,22 @@ fn head_suite(dir: &Path) -> Result { cipher_suite: code, mode, signature_public_key: unhex( - FILE, + name, name, "signature_public_key", &case.input.signature_public_key, )?, - vrf_public_key: unhex(FILE, name, "vrf_public_key", &case.input.vrf_public_key)?, + vrf_public_key: unhex(name, name, "vrf_public_key", &case.input.vrf_public_key)?, leaf_public_key: match &case.input.leaf_public_key { None => None, - Some(key) => Some(unhex(FILE, name, "leaf_public_key", key)?), + Some(key) => Some(unhex(name, name, "leaf_public_key", key)?), }, auditor: match &case.input.auditor_public_key { None => None, Some(key) => Some(AuditorConfig { max_auditor_lag: case.input.max_auditor_lag.unwrap_or_default(), auditor_start_pos: case.input.auditor_start_pos.unwrap_or_default(), - auditor_public_key: unhex(FILE, name, "auditor_public_key", key)?, + auditor_public_key: unhex(name, name, "auditor_public_key", key)?, }), }, max_ahead: case.input.max_ahead, @@ -2826,7 +2848,7 @@ fn head_suite(dir: &Path) -> Result { reasonable_monitoring_window: case.input.reasonable_monitoring_window, maximum_lifetime: None, }; - let root = hash_field(FILE, name, "root", &case.input.root)?; + let root = hash_field(name, name, "root", &case.input.root)?; // The configuration's encoding, which every signature depends on. This is // the check that pins §11.2's grouped-case ambiguity: under contact @@ -2840,7 +2862,7 @@ fn head_suite(dir: &Path) -> Result { // And the peer's own bytes must decode back to the same configuration. let peer_config = unhex( - FILE, + name, name, "expect.configuration", &case.expect.configuration, @@ -2868,7 +2890,7 @@ fn head_suite(dir: &Path) -> Result { let head = TreeHead { tree_size: case.input.tree_size, - signature: unhex(FILE, name, "expect.signature", &case.expect.signature)?, + signature: unhex(name, name, "expect.signature", &case.expect.signature)?, }; checks.push(Check::new( "TreeHead encoding (§11.2)", @@ -2896,7 +2918,7 @@ fn head_suite(dir: &Path) -> Result { ("same", &case.expect.full_tree_head_same), ("updated", &case.expect.full_tree_head_updated), ] { - let bytes = unhex(FILE, name, "expect.full_tree_head", expected)?; + let bytes = unhex(name, name, "expect.full_tree_head", expected)?; let mut dec = Decoder::new(&bytes); let parsed = FullTreeHead::decode_with_mode(&mut dec, mode); checks.push(Check::new( @@ -2945,7 +2967,7 @@ fn head_suite(dir: &Path) -> Result { render_result(kt_wire::codec::encode(&auditor_tbs), hex::encode), )); - let bytes = unhex(FILE, name, "expect.auditor_tree_head", expected_head)?; + let bytes = unhex(name, name, "expect.auditor_tree_head", expected_head)?; let parsed = kt_wire::codec::decode::(&bytes); checks.push(Check::new( "the auditor's signature verifies (§11.3)", @@ -3019,9 +3041,9 @@ fn head_suite(dir: &Path) -> Result { Ok(Suite { primitive: file.primitive, - title: "Tree head signatures".to_owned(), + title: title.to_owned(), draft_section: section_of(&file.draft), - file: FILE.to_owned(), + file: file_name.clone(), generator: Generator { implementation: file.generator.implementation, sha: file.generator.sha, @@ -3830,3 +3852,139 @@ fn replay_owner_update( ), )) } + +/// §11.7 for `KT_128_SHA256_P256`, where the peer proves and this side verifies. +/// +/// The Ed25519 suite's checks include reproducing the peer's proof byte for byte, because that +/// module implements proving. This one cannot: RFC 9381 §5.4.2.1 derives P-256's nonce with +/// RFC 6979, which is a signing concern a verifier has no use for. So what is checked here is +/// what a client actually does — take the peer's 81-byte proof and recover the search key it +/// commits to — plus the two things RFC 9381 leaves to §11.7: that `alpha_string` is the encoded +/// `VrfInput`, and that a proof for one label-version pair does not verify for another. +/// +/// RFC 9381's own Appendix B.1 vectors are run in `kt-crypto`'s unit tests, and they are the +/// oracle for the ECVRF core; these pin the KT wrapping around it. +fn vrf_p256_suite(dir: &Path) -> Result { + const FILE: &str = "vrf-p256.json"; + let file: VectorFile = load(dir, FILE)?; + + let code = file.cipher_suite.unwrap_or_default(); + let suite = CipherSuite::from_code(code).map_err(|_| Error::CipherSuite { + file: FILE.to_owned(), + value: code, + })?; + + let mut cases = Vec::new(); + for case in &file.cases { + let name = case.name.as_str(); + let label = unhex(FILE, name, "label", &case.input.label)?; + let input = VrfInput::new(label, case.input.version); + let key_bytes = unhex(FILE, name, "public_key", &case.input.public_key)?; + let key = vrf::p256::PublicKey::from_slice(&key_bytes); + + let mut checks = Vec::new(); + if case.expect.error { + let raw = case + .input + .proof + .as_deref() + .ok_or_else(|| Error::MissingField { + file: FILE.to_owned(), + case: name.to_owned(), + field: "input.proof".to_owned(), + })?; + let bytes = unhex(FILE, name, "input.proof", raw)?; + let got = match (key, vrf::p256::Proof::from_slice(&bytes)) { + (Err(err), _) => format!("unusable public key: {err}"), + (_, Err(err)) => format!("unusable proof: {err}"), + (Ok(key), Ok(proof)) => match key.verify(&input, &proof) { + Err(_) => "rejected".to_owned(), + Ok(_) => "accepted".to_owned(), + }, + }; + checks.push(Check::new( + "verify() rejects a proof for another label-version pair (§11.7)", + "rejected", + got, + )); + } else { + let expected_input = + case.expect + .vrf_input + .as_deref() + .ok_or_else(|| Error::MissingField { + file: FILE.to_owned(), + case: name.to_owned(), + field: "expect.vrf_input".to_owned(), + })?; + let expected_output = + case.expect + .output + .as_deref() + .ok_or_else(|| Error::MissingField { + file: FILE.to_owned(), + case: name.to_owned(), + field: "expect.output".to_owned(), + })?; + let expected_proof = + case.expect + .proof + .as_deref() + .ok_or_else(|| Error::MissingField { + file: FILE.to_owned(), + case: name.to_owned(), + field: "expect.proof".to_owned(), + })?; + + checks.push(Check::new( + "VrfInput encoding is alpha_string (§2.1, §11.7)", + expected_input, + render_result(kt_wire::codec::encode(&input), hex::encode), + )); + // The length is a claim in its own right: an 81-byte proof read as 80 shifts every + // field of every `BinaryLadderStep` after it. + checks.push(Check::new( + "VRF.Np = 81 bytes (§17.1)", + (expected_proof.len() / 2).to_string(), + vrf::p256::PROOF_SIZE.to_string(), + )); + let bytes = unhex(FILE, name, "expect.proof", expected_proof)?; + let verified = match (key, vrf::p256::Proof::from_slice(&bytes)) { + (Err(err), _) => format!("unusable public key: {err}"), + (_, Err(err)) => format!("unusable proof: {err}"), + (Ok(key), Ok(proof)) => render_result(key.verify(&input, &proof), |output| { + hex::encode(output.as_bytes()) + }), + }; + checks.push(Check::new( + "verifying the peer's proof yields the peer's search key (§11.7)", + expected_output, + verified, + )); + } + + cases.push(Case { + name: name.to_owned(), + negative: case.expect.error, + input: format!( + "label {} bytes, version {}", + case.input.label.len() / 2, + case.input.version + ), + checks, + }); + } + + Ok(Suite { + primitive: file.primitive, + title: "VRF: ECVRF-P256-SHA256-TAI, verified against the peer".to_owned(), + draft_section: section_of(&file.draft), + file: FILE.to_owned(), + generator: Generator { + implementation: file.generator.implementation, + sha: file.generator.sha, + }, + cipher_suite: Some(format!("0x{:04x} {}", suite.code(), suite.name())), + cases, + }) +} diff --git a/interop/report/src/report.rs b/interop/report/src/report.rs index 33d49a6..0f20df8 100644 --- a/interop/report/src/report.rs +++ b/interop/report/src/report.rs @@ -462,14 +462,18 @@ pub fn coverage_table() -> Vec { // right after the suite code, and what follows it differs per mode. &["tree-head.json"], ), - // Not a gap: the Ed25519 suite is the target, and both Go peers support it. - Area { - section: "§11.7, §17.1".to_owned(), - name: "VRF: ECVRF-P256-SHA256-TAI (KT_128_SHA256_P256)".to_owned(), - module: None, - coverage: Coverage::OutOfScope, - evidence: Vec::new(), - }, + verified( + "§11.7, §17.1", + "VRF: ECVRF-P256-SHA256-TAI, verified — proving is a log's operation and is not", + "kt-crypto::vrf::p256", + &["vrf-p256.json"], + ), + verified( + "§11.3, §11.4, §17.1", + "Signatures: ECDSA/P-256 over SHA-256, r||s as 64 fixed-width bytes", + "kt-crypto::signature", + &["tree-head-p256.json"], + ), verified( "§3.4", "Combined tree: log entries committing to prefix tree roots", diff --git a/interop/vectors/monitor.json b/interop/vectors/monitor.json index 3bcdf5b..ecd1a43 100644 --- a/interop/vectors/monitor.json +++ b/interop/vectors/monitor.json @@ -18,42 +18,42 @@ } ], "entry_timestamps": [ - 1785418675544, - 1785418675545, - 1785418675545, - 1785418675545, - 1785418675545, - 1785418675546, - 1785418675546 + 1785421501777, + 1785421501777, + 1785421501778, + 1785421501778, + 1785421501778, + 1785421501779, + 1785421501779 ], "known_versions": [ { - "commitment": "48e708d8788223f196b4c494f9021e0e72222a8e0c5248c362ae68d6462f2070", + "commitment": "a7d8b3121a61bcbeefe50c5a596b37acf36d9723fba58ae04018336f3de84ad3", "version": 0, "vrf_output": "fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3" }, { - "commitment": "d7c23a77aa0dbd45d162c2b0e1e338a82e6a8de9cff5bbd0014f7a8bb53f0c00", + "commitment": "300b1095b6a7bb9b5827371043f679c5bb6fd5e5f28b322a5ea294c59dbdb1f3", "version": 1, "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, { - "commitment": "1084cf7cd4fc90cddc3457595814e26696134ba675152c30b147e32e89c99528", + "commitment": "8d1bfd6bda81f46c5a9606e1202a0668f1669f15042c00fbf04d52f650fbd6c6", "version": 2, "vrf_output": "49ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45" }, { - "commitment": "cf37cf19e59b07e89361ac7e07c22a14ca7093f268fe756403dec6b0f412a313", + "commitment": "7ced5a20473f84c859c5eb9e21cd04f87d694d4dd1e8ad93c84f5725d61d0197", "version": 3, "vrf_output": "ef0582ede742f1d47079dad60b655a3e4bab73d2bf1da0b3d6db7a833f132fee" }, { - "commitment": "47f9ca70d1167ee7564a36da997284a6ac111b78a4e5787f3311ab9590e4a0f4", + "commitment": "99fdb6803c6f39cbf6d90a1290a87e68843f8666531d4c97a1faee9225bcaa68", "version": 4, "vrf_output": "f9177f084968b05e8b34978d8f50108baad4083600b51f944dc54460e0d850ae" }, { - "commitment": "5bd1f62b069b57092d997b37211ca46c1e691b1d39ae0768d048c2345986f93a", + "commitment": "fb8162bd0359aa21cae9635f4d8db9fc4e1a551af92b1bd431fe77b3e1d8920f", "version": 5, "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, @@ -134,23 +134,23 @@ "vrf_public_key": "555f469c22188e90015bdd85b889678d459f86bdf8f7bd34971b10b9b3858609" }, "expect": { - "full_tree_head": "02000000000000000700407bb1c57e175ecd2bca230757ca7e17274da6e441f5915969d0696573c41d2e520dc0ae2d27233fa73a6c4a80a122895dd045be9e875ed068dbcac0f384bf7209", + "full_tree_head": "02000000000000000700408ba59d3414e4861921ab74ef384b10cc5a2ad31fc8f6310b8f153b44fd7c0e8eb4def22c52ce1b5a028101d6dd8b4e03aa25bbd57950962b800a7e2621ce680a", "inclusion": [ - "c2a4646c05040d28ce75d3357f0a01fe28031b890a6a596e981dc1daf784c48a", - "e35f8e75a5c5b0bbaf031fe30c4e96a7afd4eb9baf54fa7be8d24977778287b2", - "1107a716be3b0567c0d8694a824e2a835e47e546b142dd8705ecba7651574ce2" + "673e7ad229d6640995fb366cd2949d08840f7e54fc0a4e49745c13070de45d14", + "f6aaf2030b85c499bf633b7ebd50d691285666155eefab6520ce5e3c5715b637", + "be09b1a39ce289bf57f10397a3123d68ee10533becb7cc21929d2c5918106e4b" ], "prefix_proofs": [], "prefix_roots": [ - "7cc1f12a1e7192bb1616d4328189a406d284f98695873fee10e106ffc62df136", - "b2ab1ca2e66e30c5bd7b363acef3edb6a63902de1fa36f0aaacb0bc9cf38457c", - "00b1a42c18a64ccef6b50239237c5cf8726fccf1798db2952299217f31c8cb56" + "0d8b0d4dd023a9bd9eb387dd874bb35c5fae3ec6972eaf64ea2098b3d0c3667c", + "e18f0e6e660752bd375336536906b37bd9a3b53fb96d7644da24dc4841236a31", + "10487a3d72f58a409ee4093ccca920991a69b222b1a09e77498dc92a996ef89e" ], - "response": "02000000000000000700407bb1c57e175ecd2bca230757ca7e17274da6e441f5915969d0696573c41d2e520dc0ae2d27233fa73a6c4a80a122895dd045be9e875ed068dbcac0f384bf7209030000019fb33ef5590000019fb33ef55a0000019fb33ef55a00037cc1f12a1e7192bb1616d4328189a406d284f98695873fee10e106ffc62df136b2ab1ca2e66e30c5bd7b363acef3edb6a63902de1fa36f0aaacb0bc9cf38457c00b1a42c18a64ccef6b50239237c5cf8726fccf1798db2952299217f31c8cb560003c2a4646c05040d28ce75d3357f0a01fe28031b890a6a596e981dc1daf784c48ae35f8e75a5c5b0bbaf031fe30c4e96a7afd4eb9baf54fa7be8d24977778287b21107a716be3b0567c0d8694a824e2a835e47e546b142dd8705ecba7651574ce2", + "response": "02000000000000000700408ba59d3414e4861921ab74ef384b10cc5a2ad31fc8f6310b8f153b44fd7c0e8eb4def22c52ce1b5a028101d6dd8b4e03aa25bbd57950962b800a7e2621ce680a030000019fb36a15520000019fb36a15530000019fb36a155300030d8b0d4dd023a9bd9eb387dd874bb35c5fae3ec6972eaf64ea2098b3d0c3667ce18f0e6e660752bd375336536906b37bd9a3b53fb96d7644da24dc4841236a3110487a3d72f58a409ee4093ccca920991a69b222b1a09e77498dc92a996ef89e0003673e7ad229d6640995fb366cd2949d08840f7e54fc0a4e49745c13070de45d14f6aaf2030b85c499bf633b7ebd50d691285666155eefab6520ce5e3c5715b637be09b1a39ce289bf57f10397a3123d68ee10533becb7cc21929d2c5918106e4b", "timestamps": [ - 1785418675545, - 1785418675546, - 1785418675546 + 1785421501778, + 1785421501779, + 1785421501779 ], "tree_size": 7 } @@ -165,27 +165,27 @@ } ], "entry_timestamps": [ - 1785418675554, - 1785418675554, - 1785418675554, - 1785418675555, - 1785418675555, - 1785418675555, - 1785418675555 + 1785421501792, + 1785421501792, + 1785421501792, + 1785421501793, + 1785421501793, + 1785421501793, + 1785421501794 ], "known_versions": [ { - "commitment": "6cafc267701410306b8e2ec6a10d630d975abf2f98e315cc8eec4cac0b354b35", + "commitment": "1522a8277f9fd59d7555fc183cae8a85d8d44310447a68cbbb620a660d959b10", "version": 0, "vrf_output": "fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3" }, { - "commitment": "0a12dcac24f58bb032cd4657e722ec354c6315b8c0c98262a92674472be75ed4", + "commitment": "a1b95e7b8eaba58c48acbd3964845602495b3517df748fa8656777fabf423eff", "version": 1, "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, { - "commitment": "c46a045de1c08b6b9434f79c6c25fe2b7490b68402fa967a42c2b670c1fa744e", + "commitment": "c4388c6173340837b3a2358a18160655a26c0bd853db6e3bcb152e4a19c20dc0", "version": 2, "vrf_output": "49ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45" }, @@ -262,19 +262,19 @@ "vrf_public_key": "555f469c22188e90015bdd85b889678d459f86bdf8f7bd34971b10b9b3858609" }, "expect": { - "full_tree_head": "02000000000000000700409aecda2980d70088bca8de8abac7229cca37345d0c9528258695a7ce2074924a1851e3783f045eeacc48e3911ed73425f0847cf89cc06644b99047f299bbc205", + "full_tree_head": "0200000000000000070040f474c0d7439e81692050c58092429b5ee6dc776ee56d6349922d3bd2194b12be32b3447f1372e24a508370af04a6a8588151eea9934e73da3d118fd33b73f50d", "inclusion": [ - "73efd7d184165e694a727addb20016042f4cc5cef616548e949b22e336b8f986", - "6a8f2492837e65405e334be114a3d3c344aab0b0e3e6062656655e96c5cba862", - "1336a75c918f9dae35c13f06d45370eb8f46c762a8571bac8d16964578831510" + "31b1bf72b2ec2198beffd3cbf8f35f973c9e4fee08c58419fbae7c54435ed781", + "5d4eda491c05a26d8ed0470b58082e29500473a5d24bc128e7132ab42b6b868c", + "d6594cda1a28a0e04274360ba86c32edf82647fa9ccd158c49b4cb76fd2748f7" ], "prefix_proofs": [ { "elements": [ "0000000000000000000000000000000000000000000000000000000000000000", - "b2bdfd55d9033f9c482a31716900d2631d6c7363a46e792c1ea1100045a36e5b" + "8f14dbfbccf875f6f9455f771a05b0b8ac2d743bd249074055a985a217888952" ], - "encoding": "0301040102010100020000000000000000000000000000000000000000000000000000000000000000b2bdfd55d9033f9c482a31716900d2631d6c7363a46e792c1ea1100045a36e5b", + "encoding": "03010401020101000200000000000000000000000000000000000000000000000000000000000000008f14dbfbccf875f6f9455f771a05b0b8ac2d743bd249074055a985a217888952", "results": [ { "depth": 4, @@ -292,16 +292,16 @@ } ], "prefix_roots": [ - "e8b6b3ff0f6c7e84e61f23e7a779e0345b46597bc0508e908760d04ae8b70ba3", - "063b9b91d4a8da2f1aad8a936c337652e7ad6dd95548bd88c785d859a98c08cf", - "43e3c358c41a68404a2af8ef22bf779835090154a895b62c2dd64c1c76f2cd5a" + "8729aed5d0fd575532d30dcbf37920f9002e26f50a599a7d96dfa65406f87580", + "e773dbbc07cd73cc21acdb14b99181e36d0754514726bcf4e14f0a8876a55e48", + "70b1b00822efb92b0536e2adb2d8e2652b09d29ef43cb5cd649ee3869562da0d" ], - "response": "02000000000000000700409aecda2980d70088bca8de8abac7229cca37345d0c9528258695a7ce2074924a1851e3783f045eeacc48e3911ed73425f0847cf89cc06644b99047f299bbc205040000019fb33ef5630000019fb33ef5630000019fb33ef5630000019fb33ef562010301040102010100020000000000000000000000000000000000000000000000000000000000000000b2bdfd55d9033f9c482a31716900d2631d6c7363a46e792c1ea1100045a36e5b03e8b6b3ff0f6c7e84e61f23e7a779e0345b46597bc0508e908760d04ae8b70ba3063b9b91d4a8da2f1aad8a936c337652e7ad6dd95548bd88c785d859a98c08cf43e3c358c41a68404a2af8ef22bf779835090154a895b62c2dd64c1c76f2cd5a000373efd7d184165e694a727addb20016042f4cc5cef616548e949b22e336b8f9866a8f2492837e65405e334be114a3d3c344aab0b0e3e6062656655e96c5cba8621336a75c918f9dae35c13f06d45370eb8f46c762a8571bac8d16964578831510", + "response": "0200000000000000070040f474c0d7439e81692050c58092429b5ee6dc776ee56d6349922d3bd2194b12be32b3447f1372e24a508370af04a6a8588151eea9934e73da3d118fd33b73f50d040000019fb36a15610000019fb36a15610000019fb36a15620000019fb36a15600103010401020101000200000000000000000000000000000000000000000000000000000000000000008f14dbfbccf875f6f9455f771a05b0b8ac2d743bd249074055a985a217888952038729aed5d0fd575532d30dcbf37920f9002e26f50a599a7d96dfa65406f87580e773dbbc07cd73cc21acdb14b99181e36d0754514726bcf4e14f0a8876a55e4870b1b00822efb92b0536e2adb2d8e2652b09d29ef43cb5cd649ee3869562da0d000331b1bf72b2ec2198beffd3cbf8f35f973c9e4fee08c58419fbae7c54435ed7815d4eda491c05a26d8ed0470b58082e29500473a5d24bc128e7132ab42b6b868cd6594cda1a28a0e04274360ba86c32edf82647fa9ccd158c49b4cb76fd2748f7", "timestamps": [ - 1785418675555, - 1785418675555, - 1785418675555, - 1785418675554 + 1785421501793, + 1785421501793, + 1785421501794, + 1785421501792 ], "tree_size": 7 } @@ -316,42 +316,42 @@ } ], "entry_timestamps": [ - 1785418675561, - 1785418675662, - 1785418675765, - 1785418675867, - 1785418675970, - 1785418676071, - 1785418676173 + 1785421501799, + 1785421501900, + 1785421502001, + 1785421502103, + 1785421502205, + 1785421502306, + 1785421502407 ], "known_versions": [ { - "commitment": "fe9e7639b3aad8ae6cc97b340ac08358da6f952ec3b48212ce7551e289cf1208", + "commitment": "809f8870e3000e8cc2ae9d3656c78ab1563b327eb561f3101fdb3aab73999529", "version": 0, "vrf_output": "fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3" }, { - "commitment": "d79acfd2c1c2e5f8a2b7c385547365c262273ed31d6768efc054349626fdb771", + "commitment": "cf3f298c50dbecca1c1e70300be019e35703028b771e56a873955e1597ae05a3", "version": 1, "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, { - "commitment": "c409225c76cc40ef9b10b84d075b42f4834896344e2009286fc133284242d2e5", + "commitment": "23b08c8f6cc3b0a39ec664a54f342590c40114916cddbb62d1a6c5f6e26a4250", "version": 2, "vrf_output": "49ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45" }, { - "commitment": "f94bdc382afb8a107551de19f6ed805df02f5c9176a013f61f7d46b65916c92d", + "commitment": "e39fd83b7c55d1b5dc31a005dabdc6072ab1fbd7d9f13fd1a2fea06f8141ce2f", "version": 3, "vrf_output": "ef0582ede742f1d47079dad60b655a3e4bab73d2bf1da0b3d6db7a833f132fee" }, { - "commitment": "9cf5b9660a8196c505b0b34023addc7431e9f8bef26521e1a6ac916b9a3afd34", + "commitment": "6fe141e89b0655db6031303309d68c4cefc83ef1edf3241022523bb7afbe887a", "version": 4, "vrf_output": "f9177f084968b05e8b34978d8f50108baad4083600b51f944dc54460e0d850ae" }, { - "commitment": "f1e746bbf8e195af9d1318c7c0d656353f65559c6aab109d96d682447843d040", + "commitment": "5cd9f9aae59b7aa85476be6debb42348d4046d2f69f226a5e7df7b8400aec3e6", "version": 5, "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, @@ -432,23 +432,23 @@ "vrf_public_key": "555f469c22188e90015bdd85b889678d459f86bdf8f7bd34971b10b9b3858609" }, "expect": { - "full_tree_head": "020000000000000007004040a3957a92756a1c17a418adb14a822cb7661ec10f5d2130274f75f6dc9af45a04915d97c0eca60d0d1bfe3c4fe137d936fdc72d6bc728c492c14c3edeea5509", + "full_tree_head": "020000000000000007004082bf545cbe276ca9f6a7f8e66bea09df9715f99df569f26e6ebfe3b15f33401547bea85e113d38a428a7a7c544d120fb4508d0e6450202a313d5194452567504", "inclusion": [ - "b529ffd23135c7f6954ee986463f229c32b92e0918b897de737b08efdd4c577b", - "d6721f6526c9fde4eeba86cb81687e74e5a458f29d19305a407223110af5c00f", - "1a28ad1e4cc649a7dde2c3c397a41eb88414a4a8786840d2638a14e63d179e42" + "cd6260ae103a075310569f79e48f31e2d9de01befb88d3ed823037b97fc4bce7", + "ca44040c9e54207c54cb6a08338777d27b4769977d0d9b955b6d8914865779a2", + "daddfc645ad37de87121cf480f2b5dc8fcccbf270d36e29868d3d1b44cf0e544" ], "prefix_proofs": [], "prefix_roots": [ - "1422d9b3aaf9b2ce4de5ca77d47cafe38ffcae9c7573d9307242536a0a5d10b2", - "e31325cb57cc13e83cb51b8d22d6d514ff826072b4fbaf6210dd331992ef534e", - "9b225950ce92f3d3fd496f9f88451c64189af293fd944d0fce10f08ea62ef4c6" + "6fde627c31d8f7fafc86143f1327c36fbdeacbac64d1e7016a44f03674587fae", + "3fca4af571855dd0a51f47b8f7138b47a3d36c0fadfdb7aa773cfeffd6d66786", + "b85c25a3ea395ce828b271ed7a533208aa43407a2c695d56ae0921999e57e673" ], - "response": "020000000000000007004040a3957a92756a1c17a418adb14a822cb7661ec10f5d2130274f75f6dc9af45a04915d97c0eca60d0d1bfe3c4fe137d936fdc72d6bc728c492c14c3edeea5509030000019fb33ef69b0000019fb33ef7670000019fb33ef7cd00031422d9b3aaf9b2ce4de5ca77d47cafe38ffcae9c7573d9307242536a0a5d10b2e31325cb57cc13e83cb51b8d22d6d514ff826072b4fbaf6210dd331992ef534e9b225950ce92f3d3fd496f9f88451c64189af293fd944d0fce10f08ea62ef4c60003b529ffd23135c7f6954ee986463f229c32b92e0918b897de737b08efdd4c577bd6721f6526c9fde4eeba86cb81687e74e5a458f29d19305a407223110af5c00f1a28ad1e4cc649a7dde2c3c397a41eb88414a4a8786840d2638a14e63d179e42", + "response": "020000000000000007004082bf545cbe276ca9f6a7f8e66bea09df9715f99df569f26e6ebfe3b15f33401547bea85e113d38a428a7a7c544d120fb4508d0e6450202a313d5194452567504030000019fb36a16970000019fb36a17620000019fb36a17c700036fde627c31d8f7fafc86143f1327c36fbdeacbac64d1e7016a44f03674587fae3fca4af571855dd0a51f47b8f7138b47a3d36c0fadfdb7aa773cfeffd6d66786b85c25a3ea395ce828b271ed7a533208aa43407a2c695d56ae0921999e57e6730003cd6260ae103a075310569f79e48f31e2d9de01befb88d3ed823037b97fc4bce7ca44040c9e54207c54cb6a08338777d27b4769977d0d9b955b6d8914865779a2daddfc645ad37de87121cf480f2b5dc8fcccbf270d36e29868d3d1b44cf0e544", "timestamps": [ - 1785418675867, - 1785418676071, - 1785418676173 + 1785421502103, + 1785421502306, + 1785421502407 ], "tree_size": 7 } @@ -467,47 +467,47 @@ } ], "entry_timestamps": [ - 1785418676179, - 1785418676179, - 1785418676179, - 1785418676180, - 1785418676180, - 1785418676180, - 1785418676180 + 1785421502418, + 1785421502418, + 1785421502418, + 1785421502419, + 1785421502419, + 1785421502419, + 1785421502420 ], "known_versions": [ { - "commitment": "88988576e2af6c8fec279c668baa161cd996a9d82aa9565635d40a8e387634f6", + "commitment": "9c07ec67c610086cd81b233a810305fffc5f02e0d1aea91197073eab1563d808", "version": 0, "vrf_output": "fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3" }, { - "commitment": "b23a1e2a4f2b9df7e58a677ee2551f2d886d95eed0643bf2dad9447612866f07", + "commitment": "793d38ee727d008f67a517564164f386827d52a7ac713398fcb184e20ddd8247", "version": 1, "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, { - "commitment": "314138042e32e9a06a683ac37b38913c1fce9804d224d63586867ea8436aa56b", + "commitment": "f342b90ca2d878bd97d1cfcf8d55245de06c4efc24a6a385db8f0e273e1ece46", "version": 2, "vrf_output": "49ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45" }, { - "commitment": "802f0eaaf6a2dd030ff63b0be9baefa88a0c26f33fbd775d20d3de1772f331b6", + "commitment": "870d155e560f00074013eab20cb8ed73fac81a822e8ec7fc8f109bdeebdc8460", "version": 3, "vrf_output": "ef0582ede742f1d47079dad60b655a3e4bab73d2bf1da0b3d6db7a833f132fee" }, { - "commitment": "18ff5e5df1dce43a6223c0ffcb9573d176547dbc9776cef1de31d1bed40a723b", + "commitment": "d18458e4ae3112e5206923db0ecfe39d6b9bcdd7b888121838d3d0cf20a64bce", "version": 4, "vrf_output": "f9177f084968b05e8b34978d8f50108baad4083600b51f944dc54460e0d850ae" }, { - "commitment": "b3d38e8f2734bcd5be0ec5d363ca33c5b0678f106724e059ced93c60ab6f8040", + "commitment": "79de4b0dc8b97d52cf6e7847ef095658827365ab10c2eef931477679d97a515c", "version": 5, "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, { - "commitment": "a26bc79774f3c2eec8fdc7d98a26d6a3bcc126b291e9ad14218c7dae7de8f1b0", + "commitment": "13c8f23dcf8153af216e23f2a8cb72568519172590ebbc84b552d1ec2c15de24", "version": 6, "vrf_output": "599424025a070d0e48913585265a30210ffe3416005c77c2354094f14c6358a1" }, @@ -584,21 +584,21 @@ "vrf_public_key": "555f469c22188e90015bdd85b889678d459f86bdf8f7bd34971b10b9b3858609" }, "expect": { - "full_tree_head": "0200000000000000070040d3a2ad07ef621dffdf81c73d237ba9c203823dfcb0182f1a0599125bd7ca4a06e3b59228f888d36996d7f49c8fbc05c152847efe0579f28252c9147b3906ec06", + "full_tree_head": "0200000000000000070040d3dfaabc32196e0e31638ce181c16711ff340a8cfc5fb565fe12736a1a81816b73d947b827bae9da0b94897de82e26a8903420a5ec8a0c65c67c490a1669b001", "inclusion": [ - "44812ccbfc4787aad6c2911cd5cf1361eece72860dd28b20dd6b0e510fbe24f9", - "b9465ccb7aff9c629116131d8e0a56342740fd7161f52678b2a493d6cb2b5a9a", - "ea91f0dc0afe2b374a8aa1e7813f4deece03c4a434cf6828d94f06227530daf0" + "e4c267b6afa0b4c6ae2324ce6d81ec2ce9875ed57a1b6b66e0375f319ac46420", + "893ac7f808d47a8e70386ce2d4f57601e29532ceb02ece352e334be3eeb47c81", + "d9f2ae172367420c95db9e2ad2b38025c1bf07ace4569b37096ef4578cd82b16" ], "prefix_proofs": [ { "elements": [ - "c3b942b73dec01d0064fecc2b0b47e95d66ff4f2ecb23281c53930a1a0823c97", - "a153a3122dd076f302c1e55137fbb77f2221b9a45ea781954ee040735c434a98", + "b57e36c4a3a1cfc7637dcde5080e3ebc650f2508bd2f185a73a8b553a183a10c", + "87f4099fbe78ed6bc518bbe0df53abf8ada8fc0b3f6aee7bf2829bf573c4e062", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000" ], - "encoding": "0401060103010401060004c3b942b73dec01d0064fecc2b0b47e95d66ff4f2ecb23281c53930a1a0823c97a153a3122dd076f302c1e55137fbb77f2221b9a45ea781954ee040735c434a9800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "encoding": "0401060103010401060004b57e36c4a3a1cfc7637dcde5080e3ebc650f2508bd2f185a73a8b553a183a10c87f4099fbe78ed6bc518bbe0df53abf8ada8fc0b3f6aee7bf2829bf573c4e06200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "results": [ { "depth": 6, @@ -620,14 +620,14 @@ } ], "prefix_roots": [ - "836ce0baf96109f3e865746e48e35c15dde6413853fff401c78d39d7baa84285", - "51bbf358f1e72da598bd748495aa99c57092b0d99d5bc9d4d5e4a81152d638e5" + "976f96bbbbb01a2d0496e42ef2ff21432f3f5264e9cc47efee03d5b67a40df73", + "2eb9644a7b168ec761d420d77f2802983a5bbb3a54298c3cf54c887085f649fb" ], - "response": "0200000000000000070040d3a2ad07ef621dffdf81c73d237ba9c203823dfcb0182f1a0599125bd7ca4a06e3b59228f888d36996d7f49c8fbc05c152847efe0579f28252c9147b3906ec06030000019fb33ef7d40000019fb33ef7d40000019fb33ef7d4010401060103010401060004c3b942b73dec01d0064fecc2b0b47e95d66ff4f2ecb23281c53930a1a0823c97a153a3122dd076f302c1e55137fbb77f2221b9a45ea781954ee040735c434a980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002836ce0baf96109f3e865746e48e35c15dde6413853fff401c78d39d7baa8428551bbf358f1e72da598bd748495aa99c57092b0d99d5bc9d4d5e4a81152d638e5000344812ccbfc4787aad6c2911cd5cf1361eece72860dd28b20dd6b0e510fbe24f9b9465ccb7aff9c629116131d8e0a56342740fd7161f52678b2a493d6cb2b5a9aea91f0dc0afe2b374a8aa1e7813f4deece03c4a434cf6828d94f06227530daf0", + "response": "0200000000000000070040d3dfaabc32196e0e31638ce181c16711ff340a8cfc5fb565fe12736a1a81816b73d947b827bae9da0b94897de82e26a8903420a5ec8a0c65c67c490a1669b001030000019fb36a17d30000019fb36a17d30000019fb36a17d4010401060103010401060004b57e36c4a3a1cfc7637dcde5080e3ebc650f2508bd2f185a73a8b553a183a10c87f4099fbe78ed6bc518bbe0df53abf8ada8fc0b3f6aee7bf2829bf573c4e0620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002976f96bbbbb01a2d0496e42ef2ff21432f3f5264e9cc47efee03d5b67a40df732eb9644a7b168ec761d420d77f2802983a5bbb3a54298c3cf54c887085f649fb0003e4c267b6afa0b4c6ae2324ce6d81ec2ce9875ed57a1b6b66e0375f319ac46420893ac7f808d47a8e70386ce2d4f57601e29532ceb02ece352e334be3eeb47c81d9f2ae172367420c95db9e2ad2b38025c1bf07ace4569b37096ef4578cd82b16", "timestamps": [ - 1785418676180, - 1785418676180, - 1785418676180 + 1785421502419, + 1785421502419, + 1785421502420 ], "tree_size": 7 } @@ -642,42 +642,42 @@ } ], "entry_timestamps": [ - 1785418676187, - 1785418676188, - 1785418676188, - 1785418676188, - 1785418676188, - 1785418676188, - 1785418676189 + 1785421502430, + 1785421502431, + 1785421502431, + 1785421502431, + 1785421502431, + 1785421502432, + 1785421502432 ], "known_versions": [ { - "commitment": "0a28e56ba44f4e21d16292503a152458dfb814304d7ccdcfeb11e96845b04f5e", + "commitment": "6d538e9700b5a6ff82361916d063e85fe640da568deae5b7aabb25f509ead715", "version": 0, "vrf_output": "fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3" }, { - "commitment": "9c322b4443f2fdaf722e51f308063dc444fb9a7203ce56842bf0e2655501dc68", + "commitment": "94a33f4a65c1e8506b50f89d889b0a6420554c9cc8e14a743a4e278990c8ba58", "version": 1, "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, { - "commitment": "babe129280aca1625d666ee75845d274e1712ce59adc4321b9d216cee8a6fd05", + "commitment": "0946ce3a09850d91f80806ac833e7f2aa80267f9ead9448635d9d14c15331ff5", "version": 2, "vrf_output": "49ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45" }, { - "commitment": "570d949d915ddce85ed65f5313250dd2c323c2085c954c0b69eda7e5b242bdde", + "commitment": "57d2395681e3b087e524e4def6796fdbb39adb07a0ddc77e9ff45bbeeb5935da", "version": 3, "vrf_output": "ef0582ede742f1d47079dad60b655a3e4bab73d2bf1da0b3d6db7a833f132fee" }, { - "commitment": "05da2ac41544c2f6407d4289f92f148a5b6ab56b8a34db6a5aae8c0103dcdd18", + "commitment": "f3b0d00520d36d8fddb4332eff90cc988e0208291af1e368dbb5cc39865f4766", "version": 4, "vrf_output": "f9177f084968b05e8b34978d8f50108baad4083600b51f944dc54460e0d850ae" }, { - "commitment": "bb85a4893e208a2203e6362b993451893ae0468eb2b41577f17207a7d19b8f49", + "commitment": "05a8112d0c1afc1f9ec499a931104672d4b821c8d86c8bad274794685b3709f6", "version": 5, "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, @@ -759,15 +759,15 @@ "vrf_public_key": "555f469c22188e90015bdd85b889678d459f86bdf8f7bd34971b10b9b3858609" }, "expect": { - "full_tree_head": "0200000000000000070040fbb9ec83e4d50d8ff7641a7b800df8212ca284e03f428777ddcafa5ba54b5aea02d6270ec95dbe62f2d35fff964229c7779dc9d588f4c240b2d3217216518a06", + "full_tree_head": "02000000000000000700405ed23a0be437fae73a90b958a2775e4b3b8afb5482d97ae032ba58a0128cdeeda09285cade9d674365d9bf72ac3a58a7d2411b588e2b487556dba47be14dd70b", "inclusion": [], "prefix_proofs": [], "prefix_roots": [ - "19c473d97ef441ecf0ec7873afa010bd6f696e6950c3ae783ad59887aa9f2f53" + "547ca7b15ded62e283e365b0da0d82e0b119b0986b85fb43419bd465cb7904dd" ], - "response": "0200000000000000070040fbb9ec83e4d50d8ff7641a7b800df8212ca284e03f428777ddcafa5ba54b5aea02d6270ec95dbe62f2d35fff964229c7779dc9d588f4c240b2d3217216518a06010000019fb33ef7dd000119c473d97ef441ecf0ec7873afa010bd6f696e6950c3ae783ad59887aa9f2f530000", + "response": "02000000000000000700405ed23a0be437fae73a90b958a2775e4b3b8afb5482d97ae032ba58a0128cdeeda09285cade9d674365d9bf72ac3a58a7d2411b588e2b487556dba47be14dd70b010000019fb36a17e00001547ca7b15ded62e283e365b0da0d82e0b119b0986b85fb43419bd465cb7904dd0000", "timestamps": [ - 1785418676189 + 1785421502432 ], "tree_size": 7 } @@ -777,17 +777,17 @@ "input": { "entries": [], "entry_timestamps": [ - 1785418676194, - 1785418676194, - 1785418676195, - 1785418676195, - 1785418676195, - 1785418676195, - 1785418676195 + 1785421502439, + 1785421502440, + 1785421502440, + 1785421502440, + 1785421502440, + 1785421502441, + 1785421502441 ], "known_versions": [ { - "commitment": "2fde83ac461149a96736e14c21d35f8acd0f6009f6168c89c1d07dcfdae79811", + "commitment": "e7d65557ba97248d159059003c1f3ab66800a91f35611c35eaefc9f5b0d75b08", "version": 0, "vrf_output": "fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3" }, @@ -866,15 +866,15 @@ "expect": { "binary_ladder": [ { - "commitment": "2fde83ac461149a96736e14c21d35f8acd0f6009f6168c89c1d07dcfdae79811", + "commitment": "e7d65557ba97248d159059003c1f3ab66800a91f35611c35eaefc9f5b0d75b08", "proof": "f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f00" }, { - "commitment": "4c3fbbf868f1c4dd81bf882610cf092271716901a299d62ab255feaf60abf50b", + "commitment": "29a3b18a98a961f5e2fc37e245886b0a06799d4cf29d7f1d325240fed8afb696", "proof": "414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02" }, { - "commitment": "ca8b4a932ce91ba3c741b9d1118a45cbf2aa746fe215ed836ef4e8f4ac309d98", + "commitment": "4147f08fda5c9f995445827dbabc8f5088b696ecb014d4803b5041a41e0eaa26", "proof": "783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c" }, { @@ -887,22 +887,22 @@ "proof": "26fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e123409" } ], - "full_tree_head": "0200000000000000070040d4d27d6350202185f681f79b5462642daa17068d5dadbb84c56cfc1b8932614e2d574fb01eb847e8c412a48f551535e9505698802123589f2a78caf1ec9c7609", + "full_tree_head": "020000000000000007004084fea47906011f0adb48330f9e17e6d15c9d01e2330089d9587b7305f189d24ef0b87526090b92070de402de9ba2e429b86a1a71dea97ace420910cbd7637903", "greatest_versions": [ 3 ], "inclusion": [ - "51d2ea93bd9586a53a6e62a75c8d69a8fd1c84cb19d58194f83f8f3ca7833ed8", - "e0076227e481dafda679a9f72fbe058f1d87bcf121cbf487cf7ddb59c34337b9", - "b763c47ede01ab01dcac666751fea472f66ae52413a3effb6e97ed494cb8b592" + "afd78d69533cb680e74e9648078a43e8b4e464a8e4d1ac48ddc3fd27acbb9d3e", + "45e7de60d89944dbd5536a0ced005c83692d067be6b75b3c7b607e403432716b", + "7837b47eba924a5c6b25fabd9c6da6d5ea4d59e03df800a1b4250474e986e5cf" ], "prefix_proofs": [ { "elements": [ - "a04f3a5f4f94ab0560e48bd944376e39cf625deee372933a8928100b70983ca7", + "6c154bab24f868da78d02f9feaacc03420eb2388f48dd711e69d252d3edd1a48", "0000000000000000000000000000000000000000000000000000000000000000" ], - "encoding": "0601040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f4c3fbbf868f1c4dd81bf882610cf092271716901a299d62ab255feaf60abf50b0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f4c3fbbf868f1c4dd81bf882610cf092271716901a299d62ab255feaf60abf50b0202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e32fde83ac461149a96736e14c21d35f8acd0f6009f6168c89c1d07dcfdae79811040002a04f3a5f4f94ab0560e48bd944376e39cf625deee372933a8928100b70983ca70000000000000000000000000000000000000000000000000000000000000000", + "encoding": "0601040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f29a3b18a98a961f5e2fc37e245886b0a06799d4cf29d7f1d325240fed8afb6960202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f29a3b18a98a961f5e2fc37e245886b0a06799d4cf29d7f1d325240fed8afb6960202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3e7d65557ba97248d159059003c1f3ab66800a91f35611c35eaefc9f5b0d75b080400026c154bab24f868da78d02f9feaacc03420eb2388f48dd711e69d252d3edd1a480000000000000000000000000000000000000000000000000000000000000000", "results": [ { "depth": 4, @@ -919,7 +919,7 @@ { "depth": 2, "leaf": { - "commitment": "4c3fbbf868f1c4dd81bf882610cf092271716901a299d62ab255feaf60abf50b", + "commitment": "29a3b18a98a961f5e2fc37e245886b0a06799d4cf29d7f1d325240fed8afb696", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -927,7 +927,7 @@ { "depth": 2, "leaf": { - "commitment": "4c3fbbf868f1c4dd81bf882610cf092271716901a299d62ab255feaf60abf50b", + "commitment": "29a3b18a98a961f5e2fc37e245886b0a06799d4cf29d7f1d325240fed8afb696", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -935,7 +935,7 @@ { "depth": 4, "leaf": { - "commitment": "2fde83ac461149a96736e14c21d35f8acd0f6009f6168c89c1d07dcfdae79811", + "commitment": "e7d65557ba97248d159059003c1f3ab66800a91f35611c35eaefc9f5b0d75b08", "vrf_output": "fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3" }, "result_type": 2 @@ -944,14 +944,14 @@ } ], "prefix_roots": [ - "2aa1e72a23f48559c1207f095b93781be06c01bd263b1812c88e2ab831a1c416", - "76c9a24b1105f33dd655269ef856239f778575da9f27b76b168336be27c55fb9" + "dbc2bf7a4c251171f94bfa58830db818c474d94d18d7e0c284b487879df02af1", + "ebaad6cd4f3572174521323f17897c624fca4836c2172c2a8bbd5b50ed0e0aa2" ], - "response": "0200000000000000070040d4d27d6350202185f681f79b5462642daa17068d5dadbb84c56cfc1b8932614e2d574fb01eb847e8c412a48f551535e9505698802123589f2a78caf1ec9c760901000000030006f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f00012fde83ac461149a96736e14c21d35f8acd0f6009f6168c89c1d07dcfdae79811414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02014c3fbbf868f1c4dd81bf882610cf092271716901a299d62ab255feaf60abf50b783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c01ca8b4a932ce91ba3c741b9d1118a45cbf2aa746fe215ed836ef4e8f4ac309d98901738f65e8b0d720acdb242304a8725f8ca1acbb009fbd89c72016887f57fd6d75db48330615e002cec7257a9620a57bd2679cafe860c43c92d86e7751ff5fa38ff87f334f665233fb88fe5d60f240e00e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f6030026fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e12340900030000019fb33ef7e30000019fb33ef7e30000019fb33ef7e3010601040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f4c3fbbf868f1c4dd81bf882610cf092271716901a299d62ab255feaf60abf50b0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f4c3fbbf868f1c4dd81bf882610cf092271716901a299d62ab255feaf60abf50b0202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e32fde83ac461149a96736e14c21d35f8acd0f6009f6168c89c1d07dcfdae79811040002a04f3a5f4f94ab0560e48bd944376e39cf625deee372933a8928100b70983ca70000000000000000000000000000000000000000000000000000000000000000022aa1e72a23f48559c1207f095b93781be06c01bd263b1812c88e2ab831a1c41676c9a24b1105f33dd655269ef856239f778575da9f27b76b168336be27c55fb9000351d2ea93bd9586a53a6e62a75c8d69a8fd1c84cb19d58194f83f8f3ca7833ed8e0076227e481dafda679a9f72fbe058f1d87bcf121cbf487cf7ddb59c34337b9b763c47ede01ab01dcac666751fea472f66ae52413a3effb6e97ed494cb8b592", + "response": "020000000000000007004084fea47906011f0adb48330f9e17e6d15c9d01e2330089d9587b7305f189d24ef0b87526090b92070de402de9ba2e429b86a1a71dea97ace420910cbd763790301000000030006f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f0001e7d65557ba97248d159059003c1f3ab66800a91f35611c35eaefc9f5b0d75b08414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf020129a3b18a98a961f5e2fc37e245886b0a06799d4cf29d7f1d325240fed8afb696783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c014147f08fda5c9f995445827dbabc8f5088b696ecb014d4803b5041a41e0eaa26901738f65e8b0d720acdb242304a8725f8ca1acbb009fbd89c72016887f57fd6d75db48330615e002cec7257a9620a57bd2679cafe860c43c92d86e7751ff5fa38ff87f334f665233fb88fe5d60f240e00e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f6030026fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e12340900030000019fb36a17e80000019fb36a17e90000019fb36a17e9010601040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f29a3b18a98a961f5e2fc37e245886b0a06799d4cf29d7f1d325240fed8afb6960202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f29a3b18a98a961f5e2fc37e245886b0a06799d4cf29d7f1d325240fed8afb6960202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3e7d65557ba97248d159059003c1f3ab66800a91f35611c35eaefc9f5b0d75b080400026c154bab24f868da78d02f9feaacc03420eb2388f48dd711e69d252d3edd1a48000000000000000000000000000000000000000000000000000000000000000002dbc2bf7a4c251171f94bfa58830db818c474d94d18d7e0c284b487879df02af1ebaad6cd4f3572174521323f17897c624fca4836c2172c2a8bbd5b50ed0e0aa20003afd78d69533cb680e74e9648078a43e8b4e464a8e4d1ac48ddc3fd27acbb9d3e45e7de60d89944dbd5536a0ced005c83692d067be6b75b3c7b607e403432716b7837b47eba924a5c6b25fabd9c6da6d5ea4d59e03df800a1b4250474e986e5cf", "timestamps": [ - 1785418676195, - 1785418676195, - 1785418676195 + 1785421502440, + 1785421502441, + 1785421502441 ], "tree_size": 7 } @@ -966,48 +966,48 @@ } ], "entry_timestamps": [ - 1785418676198, - 1785418676198, - 1785418676198, - 1785418676199, - 1785418676199, - 1785418676199, - 1785418676199 + 1785421502444, + 1785421502444, + 1785421502445, + 1785421502445, + 1785421502445, + 1785421502445, + 1785421502446 ], "greatest_version": 6, "known_versions": [ { - "commitment": "ffdd8f70cede91159f786e043f544767058076b9479a2d30299d1c8ce3352bd3", + "commitment": "4062ff1a0340594b340243ef543a5e0c021ff90738789de9e61d16c30cfa7922", "version": 0, "vrf_output": "fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3" }, { - "commitment": "489dd86404a0bbfa1132515bdab64751f9ebc76146b545b6b38098fe071a96ff", + "commitment": "b56ac86acbad96bde6df1138579ff594892d9c81015391f3a0be81070f758cfd", "version": 1, "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, { - "commitment": "cddd8a36eba6d97e5745ff515b15cc3aa8227fdd7fcb0976c69c23b53659fc55", + "commitment": "54ff665589bf78482cd0bb204ff6b1c5296bf0089cb48089a48573b82f3af873", "version": 2, "vrf_output": "49ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45" }, { - "commitment": "feb02f08f8c106b22de951b1f69076aa4842a1f3acf135fde8e2fe4116f04815", + "commitment": "04c52f929e9f0dc559671ab833ad0703819593e5bc0284a563c65218a63bcd56", "version": 3, "vrf_output": "ef0582ede742f1d47079dad60b655a3e4bab73d2bf1da0b3d6db7a833f132fee" }, { - "commitment": "5e26a205096d77bc56287b2afed365f4cbf30ba8e4bfdfcc2d79c8b2a5be714b", + "commitment": "04703e63ddbeee4e74d0656b4210f460b3907e2dd80ee1f1a573d510b4c32e51", "version": 4, "vrf_output": "f9177f084968b05e8b34978d8f50108baad4083600b51f944dc54460e0d850ae" }, { - "commitment": "5faa3f45a957b3968019e6e1d767fd8cb67742bb30cc3858f17fb9cc69066152", + "commitment": "6eaa49973206f3dfe3c45655df4051748bbb42d590147b1890c602edb3dd689a", "version": 5, "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, { - "commitment": "ee6db31c0eda89832dbbdd38c80cde98864bb3955671cb6ceb760fabdbea8ee7", + "commitment": "4f91ea965b050bc1c91350854a8706402076c46aa459eeefd7a640f48dfee870", "version": 6, "vrf_output": "599424025a070d0e48913585265a30210ffe3416005c77c2354094f14c6358a1" }, @@ -1084,23 +1084,23 @@ "vrf_public_key": "555f469c22188e90015bdd85b889678d459f86bdf8f7bd34971b10b9b3858609" }, "expect": { - "full_tree_head": "02000000000000000700400fa522b0d527740c299fd3a0d528a36c0dab5ceb37744f65d6864f4df265a8d97c1d99c249cadb541bf592d177f16f6850839c4ae7b17dcab1fa73f0d5b06208", + "full_tree_head": "0200000000000000070040021e01844a70c81affffedf47e9b2fdac67bb6f149c754b7401e0fb5a7eadb363509635a78a7d0bf5e9526154f72e16fa1d56766e3e6b3c3fc6fc7b7e5d9b90f", "inclusion": [ - "171b70a52aa37b548bfd8cea8e8a8170bb96c38b24db9811504ef2fb29e89d8a", - "f5ee4cfcd0c58fefd1801c9a5beb796234a50312a3f60e318e48f41379571af1", - "37b59a4a80dc98d7ae30aa3de2f79498711133de4706eac1326d02b8a179a825" + "0ca232dc0e3e7415e5a6bd25e6c2822b8281a4122a38c0956568e01438ae4c0f", + "3a1e55fc0d8794348d1ed94b88680c36f94b17f9049ab11510b0916a8bd58188", + "743229894757a673568d7e1bc85a2072ffb1686b18b4ea61b0099d0eb31605d1" ], "prefix_proofs": [], "prefix_roots": [ - "0acb098f606347a9cc8433b58271340e7342b7c4b7df06d674423b81ad8050fe", - "c08542bfc0cd34757e229a9fac4ac6daf6dd911bca637b2e01c38f0755908d1d", - "b6598bd42177c63e8fadc5a7887bd670a1503469294fa302aa1209297c4ec97e" + "e61f4bcfb5753119028bfd4bc4d0ce384f80282436e102343f859723fdc4f8c5", + "76143c8ce0bc1016e32bc19f892f8c46a0d9b2299f550ab45176cb93635046c7", + "0696753cf49f1e278649f655c56262b8515df47cfecbbab69aeefd423049bd42" ], - "response": "02000000000000000700400fa522b0d527740c299fd3a0d528a36c0dab5ceb37744f65d6864f4df265a8d97c1d99c249cadb541bf592d177f16f6850839c4ae7b17dcab1fa73f0d5b06208030000019fb33ef7e70000019fb33ef7e70000019fb33ef7e700030acb098f606347a9cc8433b58271340e7342b7c4b7df06d674423b81ad8050fec08542bfc0cd34757e229a9fac4ac6daf6dd911bca637b2e01c38f0755908d1db6598bd42177c63e8fadc5a7887bd670a1503469294fa302aa1209297c4ec97e0003171b70a52aa37b548bfd8cea8e8a8170bb96c38b24db9811504ef2fb29e89d8af5ee4cfcd0c58fefd1801c9a5beb796234a50312a3f60e318e48f41379571af137b59a4a80dc98d7ae30aa3de2f79498711133de4706eac1326d02b8a179a825", + "response": "0200000000000000070040021e01844a70c81affffedf47e9b2fdac67bb6f149c754b7401e0fb5a7eadb363509635a78a7d0bf5e9526154f72e16fa1d56766e3e6b3c3fc6fc7b7e5d9b90f030000019fb36a17ed0000019fb36a17ed0000019fb36a17ee0003e61f4bcfb5753119028bfd4bc4d0ce384f80282436e102343f859723fdc4f8c576143c8ce0bc1016e32bc19f892f8c46a0d9b2299f550ab45176cb93635046c70696753cf49f1e278649f655c56262b8515df47cfecbbab69aeefd423049bd4200030ca232dc0e3e7415e5a6bd25e6c2822b8281a4122a38c0956568e01438ae4c0f3a1e55fc0d8794348d1ed94b88680c36f94b17f9049ab11510b0916a8bd58188743229894757a673568d7e1bc85a2072ffb1686b18b4ea61b0099d0eb31605d1", "timestamps": [ - 1785418676199, - 1785418676199, - 1785418676199 + 1785421502445, + 1785421502445, + 1785421502446 ], "tree_size": 7 } @@ -1115,48 +1115,48 @@ } ], "entry_timestamps": [ - 1785418676206, - 1785418676307, - 1785418676409, - 1785418676510, - 1785418676612, - 1785418676713, - 1785418676815 + 1785421502453, + 1785421502555, + 1785421502656, + 1785421502757, + 1785421502859, + 1785421502960, + 1785421503061 ], "greatest_version": 6, "known_versions": [ { - "commitment": "8631bb1cb375d26171bfe755e97829e98b392e2bd3f907f187d86fa1de235a46", + "commitment": "fdffdd3f251f370e52e8eec29eff46bf39a3f0259f8d7e739aadf8a784aee4f4", "version": 0, "vrf_output": "fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3" }, { - "commitment": "3e003a4eb7f2fd1fcbb42f624a666cd99f589843adf0f2f4ca1cd98e005253ed", + "commitment": "b9c8b261cf6cc63b2d16069ef7636803a2f0209cabcc17b977dfee36d4707dad", "version": 1, "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, { - "commitment": "6d6aea5261608cbadd214ed347b3bc9633da95ed4a5d6bb3afc03de724a902c6", + "commitment": "671f2652baad13e26fddfbfda27d30d44c0cdb53e534fed6aa0fd677006bda3f", "version": 2, "vrf_output": "49ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45" }, { - "commitment": "1586ad7a214b18896568d23e0b95c251e18f80dd96138514823e6eec00dbf46e", + "commitment": "d6e27d89ec5f301427bc7a64ef55aeee35ab16607046f376939eaa3a9b63bc25", "version": 3, "vrf_output": "ef0582ede742f1d47079dad60b655a3e4bab73d2bf1da0b3d6db7a833f132fee" }, { - "commitment": "b472e0884b3e6bf9cb59fc50d3a3a111827ea7e5cb32a3154dadb6e3dd6dbe52", + "commitment": "c59b964bde518e97f43cedd8f522c277f92e99fe1c27e36d77a2068d7f2f345c", "version": 4, "vrf_output": "f9177f084968b05e8b34978d8f50108baad4083600b51f944dc54460e0d850ae" }, { - "commitment": "73a81f714fce25a24a07aef78a932901a3db7a9f6ea251b562f99e5991e20ca1", + "commitment": "f1e44b991c661cbf52c645d129ebb185f4b9af6d6819999079f3b75d828f0b75", "version": 5, "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, { - "commitment": "d2dcb580811b777178976c5ffc6f7a64324c0d3fe21ca1bb0ecf0592f5701278", + "commitment": "7fd3cc4acafdbd62fbe277db45d7ae8d8ff45380959b0b2a2f0f69c5ab541e5c", "version": 6, "vrf_output": "599424025a070d0e48913585265a30210ffe3416005c77c2354094f14c6358a1" }, @@ -1233,14 +1233,14 @@ "vrf_public_key": "555f469c22188e90015bdd85b889678d459f86bdf8f7bd34971b10b9b3858609" }, "expect": { - "full_tree_head": "0200000000000000070040f7efbfd896d2bbbbe21bcdf89a2ef1e2dd756b1bcc291cffe7a63de130d6e48b90848a755e4b08e76b883eb10552e25d129c64bb439ecf199a3e6189e19d0e0c", + "full_tree_head": "02000000000000000700405cd6beefe7235a5d813551fc0df543a4747e5b41f45f971557039aa6e6a2ed29eb76c2d2e4f4a4dddb1c9e5b09b3c5552ba9a0a0d26ffeb626be31965185740e", "inclusion": [ - "7a79f839e30839865692b03fbeeaf28c32167f587267d13347b3f3d9647f3b03" + "4677bcc8145bd7b21ee92e5dd8dd0b8be5bfc34314eca256462415eeb1efeb3f" ], "prefix_proofs": [ { "elements": [], - "encoding": "040102010202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e38631bb1cb375d26171bfe755e97829e98b392e2bd3f907f187d86fa1de235a460201010000", + "encoding": "040102010202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3fdffdd3f251f370e52e8eec29eff46bf39a3f0259f8d7e739aadf8a784aee4f40201010000", "results": [ { "depth": 2, @@ -1253,7 +1253,7 @@ { "depth": 2, "leaf": { - "commitment": "8631bb1cb375d26171bfe755e97829e98b392e2bd3f907f187d86fa1de235a46", + "commitment": "fdffdd3f251f370e52e8eec29eff46bf39a3f0259f8d7e739aadf8a784aee4f4", "vrf_output": "fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3" }, "result_type": 2 @@ -1266,10 +1266,10 @@ }, { "elements": [ - "42e6f08e6c736c7f9fad4bd3c3a389999eef51894a9886ad35691a8b0af2cc81", + "e5d7fb97ded57f04c96d1b2b79aaa8959a9b7ec8960a28de9e9c53d1d9f1e868", "0000000000000000000000000000000000000000000000000000000000000000" ], - "encoding": "0601040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f3e003a4eb7f2fd1fcbb42f624a666cd99f589843adf0f2f4ca1cd98e005253ed0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f3e003a4eb7f2fd1fcbb42f624a666cd99f589843adf0f2f4ca1cd98e005253ed0202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e38631bb1cb375d26171bfe755e97829e98b392e2bd3f907f187d86fa1de235a4604000242e6f08e6c736c7f9fad4bd3c3a389999eef51894a9886ad35691a8b0af2cc810000000000000000000000000000000000000000000000000000000000000000", + "encoding": "0601040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7fb9c8b261cf6cc63b2d16069ef7636803a2f0209cabcc17b977dfee36d4707dad0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7fb9c8b261cf6cc63b2d16069ef7636803a2f0209cabcc17b977dfee36d4707dad0202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3fdffdd3f251f370e52e8eec29eff46bf39a3f0259f8d7e739aadf8a784aee4f4040002e5d7fb97ded57f04c96d1b2b79aaa8959a9b7ec8960a28de9e9c53d1d9f1e8680000000000000000000000000000000000000000000000000000000000000000", "results": [ { "depth": 4, @@ -1286,7 +1286,7 @@ { "depth": 2, "leaf": { - "commitment": "3e003a4eb7f2fd1fcbb42f624a666cd99f589843adf0f2f4ca1cd98e005253ed", + "commitment": "b9c8b261cf6cc63b2d16069ef7636803a2f0209cabcc17b977dfee36d4707dad", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -1294,7 +1294,7 @@ { "depth": 2, "leaf": { - "commitment": "3e003a4eb7f2fd1fcbb42f624a666cd99f589843adf0f2f4ca1cd98e005253ed", + "commitment": "b9c8b261cf6cc63b2d16069ef7636803a2f0209cabcc17b977dfee36d4707dad", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -1302,7 +1302,7 @@ { "depth": 4, "leaf": { - "commitment": "8631bb1cb375d26171bfe755e97829e98b392e2bd3f907f187d86fa1de235a46", + "commitment": "fdffdd3f251f370e52e8eec29eff46bf39a3f0259f8d7e739aadf8a784aee4f4", "vrf_output": "fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3" }, "result_type": 2 @@ -1311,11 +1311,11 @@ }, { "elements": [ - "42e6f08e6c736c7f9fad4bd3c3a389999eef51894a9886ad35691a8b0af2cc81", + "e5d7fb97ded57f04c96d1b2b79aaa8959a9b7ec8960a28de9e9c53d1d9f1e868", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000" ], - "encoding": "0601060102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f3e003a4eb7f2fd1fcbb42f624a666cd99f589843adf0f2f4ca1cd98e005253ed0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f3e003a4eb7f2fd1fcbb42f624a666cd99f589843adf0f2f4ca1cd98e005253ed020106000342e6f08e6c736c7f9fad4bd3c3a389999eef51894a9886ad35691a8b0af2cc8100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "encoding": "0601060102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7fb9c8b261cf6cc63b2d16069ef7636803a2f0209cabcc17b977dfee36d4707dad0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7fb9c8b261cf6cc63b2d16069ef7636803a2f0209cabcc17b977dfee36d4707dad0201060003e5d7fb97ded57f04c96d1b2b79aaa8959a9b7ec8960a28de9e9c53d1d9f1e86800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "results": [ { "depth": 6, @@ -1332,7 +1332,7 @@ { "depth": 2, "leaf": { - "commitment": "3e003a4eb7f2fd1fcbb42f624a666cd99f589843adf0f2f4ca1cd98e005253ed", + "commitment": "b9c8b261cf6cc63b2d16069ef7636803a2f0209cabcc17b977dfee36d4707dad", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -1340,7 +1340,7 @@ { "depth": 2, "leaf": { - "commitment": "3e003a4eb7f2fd1fcbb42f624a666cd99f589843adf0f2f4ca1cd98e005253ed", + "commitment": "b9c8b261cf6cc63b2d16069ef7636803a2f0209cabcc17b977dfee36d4707dad", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -1355,9 +1355,9 @@ "elements": [ "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", - "cf367444967a4ac35b2fe277bffc238d8fb068d5d94fb1843b0fb4f98304dc3c" + "d6d9eb4adca2ab1520141eb70d3126d24632a781fae47ca3cc969414708a5b13" ], - "encoding": "06010601030104028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba873a81f714fce25a24a07aef78a932901a3db7a9f6ea251b562f99e5991e20ca10301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e456d6aea5261608cbadd214ed347b3bc9633da95ed4a5d6bb3afc03de724a902c601000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf367444967a4ac35b2fe277bffc238d8fb068d5d94fb1843b0fb4f98304dc3c", + "encoding": "06010601030104028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8f1e44b991c661cbf52c645d129ebb185f4b9af6d6819999079f3b75d828f0b750301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45671f2652baad13e26fddfbfda27d30d44c0cdb53e534fed6aa0fd677006bda3f01000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d6d9eb4adca2ab1520141eb70d3126d24632a781fae47ca3cc969414708a5b13", "results": [ { "depth": 6, @@ -1374,7 +1374,7 @@ { "depth": 3, "leaf": { - "commitment": "73a81f714fce25a24a07aef78a932901a3db7a9f6ea251b562f99e5991e20ca1", + "commitment": "f1e44b991c661cbf52c645d129ebb185f4b9af6d6819999079f3b75d828f0b75", "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, "result_type": 2 @@ -1386,7 +1386,7 @@ { "depth": 1, "leaf": { - "commitment": "6d6aea5261608cbadd214ed347b3bc9633da95ed4a5d6bb3afc03de724a902c6", + "commitment": "671f2652baad13e26fddfbfda27d30d44c0cdb53e534fed6aa0fd677006bda3f", "vrf_output": "49ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45" }, "result_type": 2 @@ -1396,13 +1396,13 @@ { "elements": [ "0000000000000000000000000000000000000000000000000000000000000000", - "42e6f08e6c736c7f9fad4bd3c3a389999eef51894a9886ad35691a8b0af2cc81", + "e5d7fb97ded57f04c96d1b2b79aaa8959a9b7ec8960a28de9e9c53d1d9f1e868", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", - "cf367444967a4ac35b2fe277bffc238d8fb068d5d94fb1843b0fb4f98304dc3c" + "d6d9eb4adca2ab1520141eb70d3126d24632a781fae47ca3cc969414708a5b13" ], - "encoding": "06010601030104028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba873a81f714fce25a24a07aef78a932901a3db7a9f6ea251b562f99e5991e20ca103010301040006000000000000000000000000000000000000000000000000000000000000000042e6f08e6c736c7f9fad4bd3c3a389999eef51894a9886ad35691a8b0af2cc81000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf367444967a4ac35b2fe277bffc238d8fb068d5d94fb1843b0fb4f98304dc3c", + "encoding": "06010601030104028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8f1e44b991c661cbf52c645d129ebb185f4b9af6d6819999079f3b75d828f0b75030103010400060000000000000000000000000000000000000000000000000000000000000000e5d7fb97ded57f04c96d1b2b79aaa8959a9b7ec8960a28de9e9c53d1d9f1e868000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d6d9eb4adca2ab1520141eb70d3126d24632a781fae47ca3cc969414708a5b13", "results": [ { "depth": 6, @@ -1419,7 +1419,7 @@ { "depth": 3, "leaf": { - "commitment": "73a81f714fce25a24a07aef78a932901a3db7a9f6ea251b562f99e5991e20ca1", + "commitment": "f1e44b991c661cbf52c645d129ebb185f4b9af6d6819999079f3b75d828f0b75", "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, "result_type": 2 @@ -1436,16 +1436,16 @@ } ], "prefix_roots": [ - "6bf52db3b27e524a309f66446dabcfd499f57469ab513fd0866b37048470396a" + "3a40998755bd658960244d0d42c0863d1e303a03b12612ed22f5f43f36b1b448" ], - "response": "0200000000000000070040f7efbfd896d2bbbbe21bcdf89a2ef1e2dd756b1bcc291cffe7a63de130d6e48b90848a755e4b08e76b883eb10552e25d129c64bb439ecf199a3e6189e19d0e0c060000019fb33ef91e0000019fb33ef9e90000019fb33efa4f0000019fb33ef8530000019fb33ef8b90000019fb33ef98405040102010202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e38631bb1cb375d26171bfe755e97829e98b392e2bd3f907f187d86fa1de235a4602010100000601040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f3e003a4eb7f2fd1fcbb42f624a666cd99f589843adf0f2f4ca1cd98e005253ed0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f3e003a4eb7f2fd1fcbb42f624a666cd99f589843adf0f2f4ca1cd98e005253ed0202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e38631bb1cb375d26171bfe755e97829e98b392e2bd3f907f187d86fa1de235a4604000242e6f08e6c736c7f9fad4bd3c3a389999eef51894a9886ad35691a8b0af2cc8100000000000000000000000000000000000000000000000000000000000000000601060102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f3e003a4eb7f2fd1fcbb42f624a666cd99f589843adf0f2f4ca1cd98e005253ed0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f3e003a4eb7f2fd1fcbb42f624a666cd99f589843adf0f2f4ca1cd98e005253ed020106000342e6f08e6c736c7f9fad4bd3c3a389999eef51894a9886ad35691a8b0af2cc810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006010601030104028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba873a81f714fce25a24a07aef78a932901a3db7a9f6ea251b562f99e5991e20ca10301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e456d6aea5261608cbadd214ed347b3bc9633da95ed4a5d6bb3afc03de724a902c601000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf367444967a4ac35b2fe277bffc238d8fb068d5d94fb1843b0fb4f98304dc3c06010601030104028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba873a81f714fce25a24a07aef78a932901a3db7a9f6ea251b562f99e5991e20ca103010301040006000000000000000000000000000000000000000000000000000000000000000042e6f08e6c736c7f9fad4bd3c3a389999eef51894a9886ad35691a8b0af2cc81000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf367444967a4ac35b2fe277bffc238d8fb068d5d94fb1843b0fb4f98304dc3c016bf52db3b27e524a309f66446dabcfd499f57469ab513fd0866b37048470396a00017a79f839e30839865692b03fbeeaf28c32167f587267d13347b3f3d9647f3b03", + "response": "02000000000000000700405cd6beefe7235a5d813551fc0df543a4747e5b41f45f971557039aa6e6a2ed29eb76c2d2e4f4a4dddb1c9e5b09b3c5552ba9a0a0d26ffeb626be31965185740e060000019fb36a19250000019fb36a19f00000019fb36a1a550000019fb36a185b0000019fb36a18c00000019fb36a198b05040102010202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3fdffdd3f251f370e52e8eec29eff46bf39a3f0259f8d7e739aadf8a784aee4f402010100000601040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7fb9c8b261cf6cc63b2d16069ef7636803a2f0209cabcc17b977dfee36d4707dad0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7fb9c8b261cf6cc63b2d16069ef7636803a2f0209cabcc17b977dfee36d4707dad0202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3fdffdd3f251f370e52e8eec29eff46bf39a3f0259f8d7e739aadf8a784aee4f4040002e5d7fb97ded57f04c96d1b2b79aaa8959a9b7ec8960a28de9e9c53d1d9f1e86800000000000000000000000000000000000000000000000000000000000000000601060102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7fb9c8b261cf6cc63b2d16069ef7636803a2f0209cabcc17b977dfee36d4707dad0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7fb9c8b261cf6cc63b2d16069ef7636803a2f0209cabcc17b977dfee36d4707dad0201060003e5d7fb97ded57f04c96d1b2b79aaa8959a9b7ec8960a28de9e9c53d1d9f1e8680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006010601030104028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8f1e44b991c661cbf52c645d129ebb185f4b9af6d6819999079f3b75d828f0b750301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45671f2652baad13e26fddfbfda27d30d44c0cdb53e534fed6aa0fd677006bda3f01000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d6d9eb4adca2ab1520141eb70d3126d24632a781fae47ca3cc969414708a5b1306010601030104028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8f1e44b991c661cbf52c645d129ebb185f4b9af6d6819999079f3b75d828f0b75030103010400060000000000000000000000000000000000000000000000000000000000000000e5d7fb97ded57f04c96d1b2b79aaa8959a9b7ec8960a28de9e9c53d1d9f1e868000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d6d9eb4adca2ab1520141eb70d3126d24632a781fae47ca3cc969414708a5b13013a40998755bd658960244d0d42c0863d1e303a03b12612ed22f5f43f36b1b44800014677bcc8145bd7b21ee92e5dd8dd0b8be5bfc34314eca256462415eeb1efeb3f", "timestamps": [ - 1785418676510, - 1785418676713, - 1785418676815, - 1785418676307, - 1785418676409, - 1785418676612 + 1785421502757, + 1785421502960, + 1785421503061, + 1785421502555, + 1785421502656, + 1785421502859 ], "tree_size": 7 } diff --git a/interop/vectors/search.json b/interop/vectors/search.json index 703bf9f..3b932fb 100644 --- a/interop/vectors/search.json +++ b/interop/vectors/search.json @@ -12,13 +12,13 @@ "name": "greatest-version-first-search", "input": { "entry_timestamps": [ - 1785418673669, - 1785418673670, - 1785418673670, - 1785418673670, - 1785418673670, - 1785418673671, - 1785418673671 + 1785421499917, + 1785421499917, + 1785421499917, + 1785421499917, + 1785421499918, + 1785421499918, + 1785421499918 ], "label": "616c696365406578616d706c652e636f6d", "max_ahead": 10000, @@ -94,42 +94,42 @@ "expect": { "binary_ladder": [ { - "commitment": "baa09fae599e7529b404e394e1cb5b071179b4366f2e9eb05ac71b4b16dfe2b8", + "commitment": "ccc8aa9cf612e92467163ca7e98163df04cf028503de1d8e96d30b495c03a837", "proof": "f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f00" }, { - "commitment": "34c42da89b51b6f42f632ddf1c36d92ff64cbeccc1a4258391483091d4102cde", + "commitment": "67cdce42dd5916777296f60cb7d733249244cedec6d70d15505e782027362a39", "proof": "414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02" }, { - "commitment": "6606a47c34bcb8dc11a8d0a6ec339251720486691e732f7e49799fbc396d720a", + "commitment": "4e296d2ebea44d686271c18b10539d793d1535833364568f6dbec62e75ade096", "proof": "783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c" }, { "proof": "26fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e123409" }, { - "commitment": "47dc6a190867ea7bda904023045d0de302daccf3e793cec3df1ddad6793d1407", + "commitment": "906fb123fae09b3cea173811b7598866ef0902aced3d11507300a2e3425c6088", "proof": "e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f603" }, { "proof": "79f3efd60d574baf99ba8351653f86889db173fc5321dbf9738f1fbb84e5fd442f8b21447179087c71097be04beecb9954b83f1c2e3e7346743de7e75ee452a0f1295f7844782688166c0e4c3ea7330a" } ], - "full_tree_head": "0200000000000000070040d844e7bcd826951dab6262cbd4ad4f2a0eee1b394da152663bf17c109024740707865fcb993f192ecf4b551ad7f6389de54687bffc83679e74554692c9cfec0c", + "full_tree_head": "020000000000000007004012557040894c647c2d681bb53795c06fd809f71b7b609bb34d13fe0ff1cd8f253bbbaf70c555983df06c5160e0a89e6470e16d1796e643ef2771278496943303", "inclusion": [ - "d98eb2e438c059dbb2ae90827ceafa3eced8bd7ee494cc516aa498621f7f6522", - "cac85587009b067201914a08b145ee990862a35fcfda3fa21b5fb1ec675799b2", - "9a6cd21b6165426321256f29e119dba2052f6499c130177dacc37f8e7dec0107" + "ca2293a2b70c3619dd78770057685c6efb1e94d65f20ced112d4ca5e6e040dc8", + "266bbbed13171a443b31b72ba378cfed04c3fe9355ec558b6d22d29a29f275b8", + "ad2fafa40cd5b68e50b57a0256a3f13e75932b60dc03a8efc68361e35a96409c" ], - "opening": "fae33d56bcfd4cdab8501f5799e6bf34", + "opening": "c6178742ce6ca5a16703900f8efeb55a", "prefix_proofs": [ { "elements": [ - "a9cd9dfa7f3ac20a3efa356eea3e1100ac6cc1a3694b02073316faf35a0389f0", + "d5e7edfb0f546ee49cf22cda4f6d586c14e141f056ea2e4b85a67c940581590e", "0000000000000000000000000000000000000000000000000000000000000000" ], - "encoding": "0501040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f34c42da89b51b6f42f632ddf1c36d92ff64cbeccc1a4258391483091d4102cde0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f34c42da89b51b6f42f632ddf1c36d92ff64cbeccc1a4258391483091d4102cde020002a9cd9dfa7f3ac20a3efa356eea3e1100ac6cc1a3694b02073316faf35a0389f00000000000000000000000000000000000000000000000000000000000000000", + "encoding": "0501040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f67cdce42dd5916777296f60cb7d733249244cedec6d70d15505e782027362a390202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f67cdce42dd5916777296f60cb7d733249244cedec6d70d15505e782027362a39020002d5e7edfb0f546ee49cf22cda4f6d586c14e141f056ea2e4b85a67c940581590e0000000000000000000000000000000000000000000000000000000000000000", "results": [ { "depth": 4, @@ -146,7 +146,7 @@ { "depth": 2, "leaf": { - "commitment": "34c42da89b51b6f42f632ddf1c36d92ff64cbeccc1a4258391483091d4102cde", + "commitment": "67cdce42dd5916777296f60cb7d733249244cedec6d70d15505e782027362a39", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -154,7 +154,7 @@ { "depth": 2, "leaf": { - "commitment": "34c42da89b51b6f42f632ddf1c36d92ff64cbeccc1a4258391483091d4102cde", + "commitment": "67cdce42dd5916777296f60cb7d733249244cedec6d70d15505e782027362a39", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -163,16 +163,16 @@ }, { "elements": [ - "4cce627239065373864b9d0b87da6c876e559c53d6bd569445faea574de198f9", - "d12005c1ffa7f605a5db86db6a2b995c1fca21070fbb305e4e35beceb161e5cb", - "5c54ca5531ab2ce2c5ffa73f5feed76c9c3cd15fbf7624d5fdef8cf1befc89ff" + "a9c29696ddaf62ab64e00bd667cc1ffee0a1b4f467c706a27344583f4059eb17", + "74a8445f9d8c43c2366434fc9639964a856b3e63616e34d770dd9613078e331f", + "5482ba6bbd6cf464986784aae48eeee0c5fd9349681b4f9dfe4bee359934c909" ], - "encoding": "03028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba847dc6a190867ea7bda904023045d0de302daccf3e793cec3df1ddad6793d14070301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e4515e5cca76cb720ab944c92b30dd74cc424d0f8efa24a1a8268b6ed60408ce7f80200034cce627239065373864b9d0b87da6c876e559c53d6bd569445faea574de198f9d12005c1ffa7f605a5db86db6a2b995c1fca21070fbb305e4e35beceb161e5cb5c54ca5531ab2ce2c5ffa73f5feed76c9c3cd15fbf7624d5fdef8cf1befc89ff", + "encoding": "03028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8906fb123fae09b3cea173811b7598866ef0902aced3d11507300a2e3425c60880301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45307e0ea426878887b06451682ac0c065b892b232342505aaab4dfab85609f01a020003a9c29696ddaf62ab64e00bd667cc1ffee0a1b4f467c706a27344583f4059eb1774a8445f9d8c43c2366434fc9639964a856b3e63616e34d770dd9613078e331f5482ba6bbd6cf464986784aae48eeee0c5fd9349681b4f9dfe4bee359934c909", "results": [ { "depth": 3, "leaf": { - "commitment": "47dc6a190867ea7bda904023045d0de302daccf3e793cec3df1ddad6793d1407", + "commitment": "906fb123fae09b3cea173811b7598866ef0902aced3d11507300a2e3425c6088", "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, "result_type": 2 @@ -184,7 +184,7 @@ { "depth": 2, "leaf": { - "commitment": "15e5cca76cb720ab944c92b30dd74cc424d0f8efa24a1a8268b6ed60408ce7f8", + "commitment": "307e0ea426878887b06451682ac0c065b892b232342505aaab4dfab85609f01a", "vrf_output": "49ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45" }, "result_type": 2 @@ -193,18 +193,18 @@ }, { "elements": [ - "4cce627239065373864b9d0b87da6c876e559c53d6bd569445faea574de198f9", - "409da5a92288b1445ee9d4d642fad885ca2bf7fd05fe55be82bb7d1c27196472", + "a9c29696ddaf62ab64e00bd667cc1ffee0a1b4f467c706a27344583f4059eb17", + "10e8f78586c67c96ad7651e7b3bef7c2029703b108660e23cead91d65743041e", "0000000000000000000000000000000000000000000000000000000000000000", - "d12005c1ffa7f605a5db86db6a2b995c1fca21070fbb305e4e35beceb161e5cb", - "5c54ca5531ab2ce2c5ffa73f5feed76c9c3cd15fbf7624d5fdef8cf1befc89ff" + "74a8445f9d8c43c2366434fc9639964a856b3e63616e34d770dd9613078e331f", + "5482ba6bbd6cf464986784aae48eeee0c5fd9349681b4f9dfe4bee359934c909" ], - "encoding": "02028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba847dc6a190867ea7bda904023045d0de302daccf3e793cec3df1ddad6793d140703010400054cce627239065373864b9d0b87da6c876e559c53d6bd569445faea574de198f9409da5a92288b1445ee9d4d642fad885ca2bf7fd05fe55be82bb7d1c271964720000000000000000000000000000000000000000000000000000000000000000d12005c1ffa7f605a5db86db6a2b995c1fca21070fbb305e4e35beceb161e5cb5c54ca5531ab2ce2c5ffa73f5feed76c9c3cd15fbf7624d5fdef8cf1befc89ff", + "encoding": "02028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8906fb123fae09b3cea173811b7598866ef0902aced3d11507300a2e3425c60880301040005a9c29696ddaf62ab64e00bd667cc1ffee0a1b4f467c706a27344583f4059eb1710e8f78586c67c96ad7651e7b3bef7c2029703b108660e23cead91d65743041e000000000000000000000000000000000000000000000000000000000000000074a8445f9d8c43c2366434fc9639964a856b3e63616e34d770dd9613078e331f5482ba6bbd6cf464986784aae48eeee0c5fd9349681b4f9dfe4bee359934c909", "results": [ { "depth": 3, "leaf": { - "commitment": "47dc6a190867ea7bda904023045d0de302daccf3e793cec3df1ddad6793d1407", + "commitment": "906fb123fae09b3cea173811b7598866ef0902aced3d11507300a2e3425c6088", "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, "result_type": 2 @@ -217,11 +217,11 @@ } ], "prefix_roots": [], - "response": "0200000000000000070040d844e7bcd826951dab6262cbd4ad4f2a0eee1b394da152663bf17c109024740707865fcb993f192ecf4b551ad7f6389de54687bffc83679e74554692c9cfec0c00000006fae33d56bcfd4cdab8501f5799e6bf3400000007616c6963652d3706f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f0001baa09fae599e7529b404e394e1cb5b071179b4366f2e9eb05ac71b4b16dfe2b8414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf020134c42da89b51b6f42f632ddf1c36d92ff64cbeccc1a4258391483091d4102cde783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c016606a47c34bcb8dc11a8d0a6ec339251720486691e732f7e49799fbc396d720a26fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e12340900e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f6030147dc6a190867ea7bda904023045d0de302daccf3e793cec3df1ddad6793d140779f3efd60d574baf99ba8351653f86889db173fc5321dbf9738f1fbb84e5fd442f8b21447179087c71097be04beecb9954b83f1c2e3e7346743de7e75ee452a0f1295f7844782688166c0e4c3ea7330a00030000019fb33eee060000019fb33eee070000019fb33eee07030501040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f34c42da89b51b6f42f632ddf1c36d92ff64cbeccc1a4258391483091d4102cde0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f34c42da89b51b6f42f632ddf1c36d92ff64cbeccc1a4258391483091d4102cde020002a9cd9dfa7f3ac20a3efa356eea3e1100ac6cc1a3694b02073316faf35a0389f0000000000000000000000000000000000000000000000000000000000000000003028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba847dc6a190867ea7bda904023045d0de302daccf3e793cec3df1ddad6793d14070301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e4515e5cca76cb720ab944c92b30dd74cc424d0f8efa24a1a8268b6ed60408ce7f80200034cce627239065373864b9d0b87da6c876e559c53d6bd569445faea574de198f9d12005c1ffa7f605a5db86db6a2b995c1fca21070fbb305e4e35beceb161e5cb5c54ca5531ab2ce2c5ffa73f5feed76c9c3cd15fbf7624d5fdef8cf1befc89ff02028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba847dc6a190867ea7bda904023045d0de302daccf3e793cec3df1ddad6793d140703010400054cce627239065373864b9d0b87da6c876e559c53d6bd569445faea574de198f9409da5a92288b1445ee9d4d642fad885ca2bf7fd05fe55be82bb7d1c271964720000000000000000000000000000000000000000000000000000000000000000d12005c1ffa7f605a5db86db6a2b995c1fca21070fbb305e4e35beceb161e5cb5c54ca5531ab2ce2c5ffa73f5feed76c9c3cd15fbf7624d5fdef8cf1befc89ff000003d98eb2e438c059dbb2ae90827ceafa3eced8bd7ee494cc516aa498621f7f6522cac85587009b067201914a08b145ee990862a35fcfda3fa21b5fb1ec675799b29a6cd21b6165426321256f29e119dba2052f6499c130177dacc37f8e7dec0107", + "response": "020000000000000007004012557040894c647c2d681bb53795c06fd809f71b7b609bb34d13fe0ff1cd8f253bbbaf70c555983df06c5160e0a89e6470e16d1796e643ef277127849694330300000006c6178742ce6ca5a16703900f8efeb55a00000007616c6963652d3706f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f0001ccc8aa9cf612e92467163ca7e98163df04cf028503de1d8e96d30b495c03a837414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf020167cdce42dd5916777296f60cb7d733249244cedec6d70d15505e782027362a39783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c014e296d2ebea44d686271c18b10539d793d1535833364568f6dbec62e75ade09626fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e12340900e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f60301906fb123fae09b3cea173811b7598866ef0902aced3d11507300a2e3425c608879f3efd60d574baf99ba8351653f86889db173fc5321dbf9738f1fbb84e5fd442f8b21447179087c71097be04beecb9954b83f1c2e3e7346743de7e75ee452a0f1295f7844782688166c0e4c3ea7330a00030000019fb36a0e0d0000019fb36a0e0e0000019fb36a0e0e030501040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f67cdce42dd5916777296f60cb7d733249244cedec6d70d15505e782027362a390202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f67cdce42dd5916777296f60cb7d733249244cedec6d70d15505e782027362a39020002d5e7edfb0f546ee49cf22cda4f6d586c14e141f056ea2e4b85a67c940581590e000000000000000000000000000000000000000000000000000000000000000003028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8906fb123fae09b3cea173811b7598866ef0902aced3d11507300a2e3425c60880301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45307e0ea426878887b06451682ac0c065b892b232342505aaab4dfab85609f01a020003a9c29696ddaf62ab64e00bd667cc1ffee0a1b4f467c706a27344583f4059eb1774a8445f9d8c43c2366434fc9639964a856b3e63616e34d770dd9613078e331f5482ba6bbd6cf464986784aae48eeee0c5fd9349681b4f9dfe4bee359934c90902028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8906fb123fae09b3cea173811b7598866ef0902aced3d11507300a2e3425c60880301040005a9c29696ddaf62ab64e00bd667cc1ffee0a1b4f467c706a27344583f4059eb1710e8f78586c67c96ad7651e7b3bef7c2029703b108660e23cead91d65743041e000000000000000000000000000000000000000000000000000000000000000074a8445f9d8c43c2366434fc9639964a856b3e63616e34d770dd9613078e331f5482ba6bbd6cf464986784aae48eeee0c5fd9349681b4f9dfe4bee359934c909000003ca2293a2b70c3619dd78770057685c6efb1e94d65f20ced112d4ca5e6e040dc8266bbbed13171a443b31b72ba378cfed04c3fe9355ec558b6d22d29a29f275b8ad2fafa40cd5b68e50b57a0256a3f13e75932b60dc03a8efc68361e35a96409c", "timestamps": [ - 1785418673670, - 1785418673671, - 1785418673671 + 1785421499917, + 1785421499918, + 1785421499918 ], "tree_size": 7, "version": 6 @@ -231,13 +231,13 @@ "name": "greatest-version-with-advertised-size", "input": { "entry_timestamps": [ - 1785418673672, - 1785418673673, - 1785418673673, - 1785418673673, - 1785418673673, - 1785418673674, - 1785418673674 + 1785421499919, + 1785421499920, + 1785421499920, + 1785421499920, + 1785421499920, + 1785421499920, + 1785421499921 ], "label": "616c696365406578616d706c652e636f6d", "last": 4, @@ -314,40 +314,40 @@ "expect": { "binary_ladder": [ { - "commitment": "1024ceefa16581fd4c6b17cc956d758593fd88d12924e068818e3a3a9bfc541d", + "commitment": "633f09d01acb11ed1c701d983cdbb6e174a9d6b9bc4df51c869ea7809c8d44d1", "proof": "f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f00" }, { - "commitment": "33a4a8822b7054f7b88b1932bcc94f775f77bb29d9fb8f89e268d91d6d6b8c45", + "commitment": "5c11c10b31a4ddb706e0596c8032dbe5db70a47844850678e6879a8416bdcbb9", "proof": "414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02" }, { - "commitment": "a7e9ca8cc7f68bf2aedaf2e3a8231541c5483d0404b2c7ffb4193a763fc318b1", + "commitment": "2d96e1b42e9687bcdfac66bd4edf9b72c1018b9837b6b309ecbbada8737cc853", "proof": "783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c" }, { "proof": "26fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e123409" }, { - "commitment": "202603e1694068aa2c84bc724cd113b92c1d927b3018e232975553de1efa3c27", + "commitment": "c6c871614ea59b89caca8ab0ab92f8dfbc5ba704c4e7fa135de8652d0a17c997", "proof": "e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f603" }, { "proof": "79f3efd60d574baf99ba8351653f86889db173fc5321dbf9738f1fbb84e5fd442f8b21447179087c71097be04beecb9954b83f1c2e3e7346743de7e75ee452a0f1295f7844782688166c0e4c3ea7330a" } ], - "full_tree_head": "020000000000000007004009c6a89ae34b21853cb7286dbbcefca4cf106057fb1b22726881276ddb171a844164941f124990f28d14336076f066421cc503ab1150826bcb622627a35cbc05", + "full_tree_head": "020000000000000007004085dffe878359ebfce6c2095d7caa40bcae8cd49d86bd305b33fee27a4a8f31beaac255558c3c120f73c825bc67711bbc1c0b7bf4295f9535fadbd958e0ca6f0f", "inclusion": [ - "146481d3106e8087e74b6b711a4cde1e730826e7394a591808b254cb221fb1a3" + "39de8f5247ab26a3a03a0f82e5886621f716e617eaaaea990375ba9213d74ca5" ], - "opening": "d50c34467ff94cc1d4cdf6a8225d534d", + "opening": "a112d9c2c89f19251862a5f84451fb0e", "prefix_proofs": [ { "elements": [ - "3d34fc3d9df99a4415b5ac4717c8b33020072c364e6d202bb6cd32b9dab3011e", + "bbff561fd67894598b9e33cfac4a74450cf31471f50d415a59154d48b1b50ba6", "0000000000000000000000000000000000000000000000000000000000000000" ], - "encoding": "0501040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f33a4a8822b7054f7b88b1932bcc94f775f77bb29d9fb8f89e268d91d6d6b8c450202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f33a4a8822b7054f7b88b1932bcc94f775f77bb29d9fb8f89e268d91d6d6b8c450200023d34fc3d9df99a4415b5ac4717c8b33020072c364e6d202bb6cd32b9dab3011e0000000000000000000000000000000000000000000000000000000000000000", + "encoding": "0501040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f5c11c10b31a4ddb706e0596c8032dbe5db70a47844850678e6879a8416bdcbb90202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f5c11c10b31a4ddb706e0596c8032dbe5db70a47844850678e6879a8416bdcbb9020002bbff561fd67894598b9e33cfac4a74450cf31471f50d415a59154d48b1b50ba60000000000000000000000000000000000000000000000000000000000000000", "results": [ { "depth": 4, @@ -364,7 +364,7 @@ { "depth": 2, "leaf": { - "commitment": "33a4a8822b7054f7b88b1932bcc94f775f77bb29d9fb8f89e268d91d6d6b8c45", + "commitment": "5c11c10b31a4ddb706e0596c8032dbe5db70a47844850678e6879a8416bdcbb9", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -372,7 +372,7 @@ { "depth": 2, "leaf": { - "commitment": "33a4a8822b7054f7b88b1932bcc94f775f77bb29d9fb8f89e268d91d6d6b8c45", + "commitment": "5c11c10b31a4ddb706e0596c8032dbe5db70a47844850678e6879a8416bdcbb9", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -381,16 +381,16 @@ }, { "elements": [ - "f112e907827f552893c1341617f973c0f03c6461449c757fb69e38ec3b387037", - "7ac57b42dc7b8eea999ed6696b5a5f23857804084bb16ebba8af5fbff72f8921", - "128e899bd1182569f6574eecad1b3c7ad4a337618aec9634b6d49ea93f9ce28d" + "b97d25dec88d36b394d6b4cccbe57003c40c9a917c9233c889c378e9ce85c2af", + "59348b87da8c37a78d1508350c3b9af1caae907376403d60320225be6e480174", + "3c3dbba103cfabe640831de5011bf6981b4b558c99615ed51f6d0ee98be15071" ], - "encoding": "03028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8202603e1694068aa2c84bc724cd113b92c1d927b3018e232975553de1efa3c270301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e4500e2538ee03501baa07ec963891f665ee178e82b54d2b102cd6dd6a0442b4d1c020003f112e907827f552893c1341617f973c0f03c6461449c757fb69e38ec3b3870377ac57b42dc7b8eea999ed6696b5a5f23857804084bb16ebba8af5fbff72f8921128e899bd1182569f6574eecad1b3c7ad4a337618aec9634b6d49ea93f9ce28d", + "encoding": "03028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8c6c871614ea59b89caca8ab0ab92f8dfbc5ba704c4e7fa135de8652d0a17c9970301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45b193cd1501231b783dca3053cb842200e3869d6ad8ac77f6500bd6d5fd06dcdf020003b97d25dec88d36b394d6b4cccbe57003c40c9a917c9233c889c378e9ce85c2af59348b87da8c37a78d1508350c3b9af1caae907376403d60320225be6e4801743c3dbba103cfabe640831de5011bf6981b4b558c99615ed51f6d0ee98be15071", "results": [ { "depth": 3, "leaf": { - "commitment": "202603e1694068aa2c84bc724cd113b92c1d927b3018e232975553de1efa3c27", + "commitment": "c6c871614ea59b89caca8ab0ab92f8dfbc5ba704c4e7fa135de8652d0a17c997", "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, "result_type": 2 @@ -402,7 +402,7 @@ { "depth": 2, "leaf": { - "commitment": "00e2538ee03501baa07ec963891f665ee178e82b54d2b102cd6dd6a0442b4d1c", + "commitment": "b193cd1501231b783dca3053cb842200e3869d6ad8ac77f6500bd6d5fd06dcdf", "vrf_output": "49ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45" }, "result_type": 2 @@ -411,18 +411,18 @@ }, { "elements": [ - "f112e907827f552893c1341617f973c0f03c6461449c757fb69e38ec3b387037", - "04b8ba978425553a5b2d19f97b9a423bbdd1111bb0163e4ab893b45c5a1cd517", + "b97d25dec88d36b394d6b4cccbe57003c40c9a917c9233c889c378e9ce85c2af", + "0f648799d42867669ac4f20753a64a0dd69b8eaf76d4eec939e9ee14c26cb0f0", "0000000000000000000000000000000000000000000000000000000000000000", - "7ac57b42dc7b8eea999ed6696b5a5f23857804084bb16ebba8af5fbff72f8921", - "128e899bd1182569f6574eecad1b3c7ad4a337618aec9634b6d49ea93f9ce28d" + "59348b87da8c37a78d1508350c3b9af1caae907376403d60320225be6e480174", + "3c3dbba103cfabe640831de5011bf6981b4b558c99615ed51f6d0ee98be15071" ], - "encoding": "02028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8202603e1694068aa2c84bc724cd113b92c1d927b3018e232975553de1efa3c270301040005f112e907827f552893c1341617f973c0f03c6461449c757fb69e38ec3b38703704b8ba978425553a5b2d19f97b9a423bbdd1111bb0163e4ab893b45c5a1cd51700000000000000000000000000000000000000000000000000000000000000007ac57b42dc7b8eea999ed6696b5a5f23857804084bb16ebba8af5fbff72f8921128e899bd1182569f6574eecad1b3c7ad4a337618aec9634b6d49ea93f9ce28d", + "encoding": "02028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8c6c871614ea59b89caca8ab0ab92f8dfbc5ba704c4e7fa135de8652d0a17c9970301040005b97d25dec88d36b394d6b4cccbe57003c40c9a917c9233c889c378e9ce85c2af0f648799d42867669ac4f20753a64a0dd69b8eaf76d4eec939e9ee14c26cb0f0000000000000000000000000000000000000000000000000000000000000000059348b87da8c37a78d1508350c3b9af1caae907376403d60320225be6e4801743c3dbba103cfabe640831de5011bf6981b4b558c99615ed51f6d0ee98be15071", "results": [ { "depth": 3, "leaf": { - "commitment": "202603e1694068aa2c84bc724cd113b92c1d927b3018e232975553de1efa3c27", + "commitment": "c6c871614ea59b89caca8ab0ab92f8dfbc5ba704c4e7fa135de8652d0a17c997", "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, "result_type": 2 @@ -435,10 +435,10 @@ } ], "prefix_roots": [], - "response": "020000000000000007004009c6a89ae34b21853cb7286dbbcefca4cf106057fb1b22726881276ddb171a844164941f124990f28d14336076f066421cc503ab1150826bcb622627a35cbc0500000006d50c34467ff94cc1d4cdf6a8225d534d00000007616c6963652d3706f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f00011024ceefa16581fd4c6b17cc956d758593fd88d12924e068818e3a3a9bfc541d414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf020133a4a8822b7054f7b88b1932bcc94f775f77bb29d9fb8f89e268d91d6d6b8c45783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c01a7e9ca8cc7f68bf2aedaf2e3a8231541c5483d0404b2c7ffb4193a763fc318b126fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e12340900e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f60301202603e1694068aa2c84bc724cd113b92c1d927b3018e232975553de1efa3c2779f3efd60d574baf99ba8351653f86889db173fc5321dbf9738f1fbb84e5fd442f8b21447179087c71097be04beecb9954b83f1c2e3e7346743de7e75ee452a0f1295f7844782688166c0e4c3ea7330a00020000019fb33eee0a0000019fb33eee0a030501040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f33a4a8822b7054f7b88b1932bcc94f775f77bb29d9fb8f89e268d91d6d6b8c450202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f33a4a8822b7054f7b88b1932bcc94f775f77bb29d9fb8f89e268d91d6d6b8c450200023d34fc3d9df99a4415b5ac4717c8b33020072c364e6d202bb6cd32b9dab3011e000000000000000000000000000000000000000000000000000000000000000003028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8202603e1694068aa2c84bc724cd113b92c1d927b3018e232975553de1efa3c270301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e4500e2538ee03501baa07ec963891f665ee178e82b54d2b102cd6dd6a0442b4d1c020003f112e907827f552893c1341617f973c0f03c6461449c757fb69e38ec3b3870377ac57b42dc7b8eea999ed6696b5a5f23857804084bb16ebba8af5fbff72f8921128e899bd1182569f6574eecad1b3c7ad4a337618aec9634b6d49ea93f9ce28d02028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8202603e1694068aa2c84bc724cd113b92c1d927b3018e232975553de1efa3c270301040005f112e907827f552893c1341617f973c0f03c6461449c757fb69e38ec3b38703704b8ba978425553a5b2d19f97b9a423bbdd1111bb0163e4ab893b45c5a1cd51700000000000000000000000000000000000000000000000000000000000000007ac57b42dc7b8eea999ed6696b5a5f23857804084bb16ebba8af5fbff72f8921128e899bd1182569f6574eecad1b3c7ad4a337618aec9634b6d49ea93f9ce28d000001146481d3106e8087e74b6b711a4cde1e730826e7394a591808b254cb221fb1a3", + "response": "020000000000000007004085dffe878359ebfce6c2095d7caa40bcae8cd49d86bd305b33fee27a4a8f31beaac255558c3c120f73c825bc67711bbc1c0b7bf4295f9535fadbd958e0ca6f0f00000006a112d9c2c89f19251862a5f84451fb0e00000007616c6963652d3706f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f0001633f09d01acb11ed1c701d983cdbb6e174a9d6b9bc4df51c869ea7809c8d44d1414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02015c11c10b31a4ddb706e0596c8032dbe5db70a47844850678e6879a8416bdcbb9783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c012d96e1b42e9687bcdfac66bd4edf9b72c1018b9837b6b309ecbbada8737cc85326fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e12340900e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f60301c6c871614ea59b89caca8ab0ab92f8dfbc5ba704c4e7fa135de8652d0a17c99779f3efd60d574baf99ba8351653f86889db173fc5321dbf9738f1fbb84e5fd442f8b21447179087c71097be04beecb9954b83f1c2e3e7346743de7e75ee452a0f1295f7844782688166c0e4c3ea7330a00020000019fb36a0e110000019fb36a0e10030501040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f5c11c10b31a4ddb706e0596c8032dbe5db70a47844850678e6879a8416bdcbb90202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f5c11c10b31a4ddb706e0596c8032dbe5db70a47844850678e6879a8416bdcbb9020002bbff561fd67894598b9e33cfac4a74450cf31471f50d415a59154d48b1b50ba6000000000000000000000000000000000000000000000000000000000000000003028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8c6c871614ea59b89caca8ab0ab92f8dfbc5ba704c4e7fa135de8652d0a17c9970301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45b193cd1501231b783dca3053cb842200e3869d6ad8ac77f6500bd6d5fd06dcdf020003b97d25dec88d36b394d6b4cccbe57003c40c9a917c9233c889c378e9ce85c2af59348b87da8c37a78d1508350c3b9af1caae907376403d60320225be6e4801743c3dbba103cfabe640831de5011bf6981b4b558c99615ed51f6d0ee98be1507102028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8c6c871614ea59b89caca8ab0ab92f8dfbc5ba704c4e7fa135de8652d0a17c9970301040005b97d25dec88d36b394d6b4cccbe57003c40c9a917c9233c889c378e9ce85c2af0f648799d42867669ac4f20753a64a0dd69b8eaf76d4eec939e9ee14c26cb0f0000000000000000000000000000000000000000000000000000000000000000059348b87da8c37a78d1508350c3b9af1caae907376403d60320225be6e4801743c3dbba103cfabe640831de5011bf6981b4b558c99615ed51f6d0ee98be1507100000139de8f5247ab26a3a03a0f82e5886621f716e617eaaaea990375ba9213d74ca5", "timestamps": [ - 1785418673674, - 1785418673674 + 1785421499921, + 1785421499920 ], "tree_size": 7, "version": 6 @@ -448,13 +448,13 @@ "name": "greatest-version-single-version-label", "input": { "entry_timestamps": [ - 1785418673675, - 1785418673676, - 1785418673676, - 1785418673676, - 1785418673676, - 1785418673676, - 1785418673677 + 1785421499922, + 1785421499922, + 1785421499922, + 1785421499923, + 1785421499923, + 1785421499923, + 1785421499923 ], "label": "626f62406578616d706c652e636f6d", "max_ahead": 10000, @@ -536,20 +536,20 @@ "proof": "f4f1731a9622a7d2e073010a0f633b7a7480ed6ec7d1b7b139f070ded0837c6d37ad8fe5463defe0cf800861a66f5ac1d413a5bcfd5e1de2f3c5234a90a68e35f6ee818bd00ddeb7307b3a1718f5e003" } ], - "full_tree_head": "0200000000000000070040cc23ae219877b9b388a6ebdd982d379b8bf5e33ac7f110452ebc91285f1bc463589827e49e14506b5dbd6eea02235f2cb10ae3df87d2bc51fa6322ef6899dc09", + "full_tree_head": "02000000000000000700408dcb91f242a0052477e5733626a8de07d1481912f12a2625e1a1a0b19170f1cae2ddd4dd98a41715458927dfa25da5ddb1c0f4ce4f4be16f450fc06d391c2d0a", "inclusion": [ - "58c49dfda13fadadc999b9f527e3dfca3b05457f810e399117e833d3fa99fa38", - "b6d375602f3516a65a3ccabf92b52b2d8931dba6bd1e115e881df26cf86588b2", - "a22723aee9719ab7b73e1ba558d8bb5194a22ca31b02f3eb8db26a75ce19506c" + "7124d9c08136196c87e10bef688e57cac3ee16aeee339bc8afd7dfe19b071665", + "0c520d8efe571b4f4a606ef06e6fb0e3fdf5034ada7c6306515dd13867163260", + "4554a802828fef4e1acf863320c7c245e498b09abfbc77573977169524f138ff" ], - "opening": "36a5b76466c1ef4fb3f4b0537448793f", + "opening": "4d4e49e33f5e1f6c024f457eb0a10517", "prefix_proofs": [ { "elements": [ - "e0f0934621ea15fe27f2961e3132755b03656aa3a7b24ca294728e463342915d", - "5fe71191924ae4227bc5dcc559d9fe0a34796533cd2a183c4761aabe13b40f87" + "b9837eb3daad78ac21fe0efc2f250c776701833053372cf63040a71ba38b31f5", + "ce52f2fc73352702cb468590f857a43ab8ed70b4e830b507fbb2c13c4a80048d" ], - "encoding": "02010202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f97c61e6254031513e66d173f4cd7bdbe5cb7790df60b7496d93f3326ebda7067020002e0f0934621ea15fe27f2961e3132755b03656aa3a7b24ca294728e463342915d5fe71191924ae4227bc5dcc559d9fe0a34796533cd2a183c4761aabe13b40f87", + "encoding": "02010202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f2d52863c0d2fef772e2dd2db975fa00986047865cef82f5ced76c907ef2edb8d020002b9837eb3daad78ac21fe0efc2f250c776701833053372cf63040a71ba38b31f5ce52f2fc73352702cb468590f857a43ab8ed70b4e830b507fbb2c13c4a80048d", "results": [ { "depth": 2, @@ -558,7 +558,7 @@ { "depth": 2, "leaf": { - "commitment": "97c61e6254031513e66d173f4cd7bdbe5cb7790df60b7496d93f3326ebda7067", + "commitment": "2d52863c0d2fef772e2dd2db975fa00986047865cef82f5ced76c907ef2edb8d", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -567,16 +567,16 @@ }, { "elements": [ - "804f938c0ec934e9d3a51a50de4abc0c3a60787cdf62194aadcd40f5156c24e3", - "a804e442e6a0cad19594b7f0e74c0ffc8f254bb303fbb7de3b52551468fdb21e", - "38922267a10ebd006d6682a6e373fc6d99888d2c1b167366dd89587d9a0ae85f" + "b704e1ea9fc60a232e074795114047c1dddcc1e42bca8c8e61461e8b3614d0bf", + "47533b91470b6d0b2b3ffeda08f4498aee53b62fe204364bd25f40da6b0755dc", + "d1b5e17110cbd21d84a0a21d5439af2ce3a1456edc6d1be2cb67d2c385f53a9f" ], - "encoding": "0102a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f97c61e6254031513e66d173f4cd7bdbe5cb7790df60b7496d93f3326ebda7067030003804f938c0ec934e9d3a51a50de4abc0c3a60787cdf62194aadcd40f5156c24e3a804e442e6a0cad19594b7f0e74c0ffc8f254bb303fbb7de3b52551468fdb21e38922267a10ebd006d6682a6e373fc6d99888d2c1b167366dd89587d9a0ae85f", + "encoding": "0102a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f2d52863c0d2fef772e2dd2db975fa00986047865cef82f5ced76c907ef2edb8d030003b704e1ea9fc60a232e074795114047c1dddcc1e42bca8c8e61461e8b3614d0bf47533b91470b6d0b2b3ffeda08f4498aee53b62fe204364bd25f40da6b0755dcd1b5e17110cbd21d84a0a21d5439af2ce3a1456edc6d1be2cb67d2c385f53a9f", "results": [ { "depth": 3, "leaf": { - "commitment": "97c61e6254031513e66d173f4cd7bdbe5cb7790df60b7496d93f3326ebda7067", + "commitment": "2d52863c0d2fef772e2dd2db975fa00986047865cef82f5ced76c907ef2edb8d", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -585,16 +585,16 @@ }, { "elements": [ - "400ef605edf5401124e44eb5ca3ff020154ff2aea3a12ed5192cb03bd0e409d4", - "a804e442e6a0cad19594b7f0e74c0ffc8f254bb303fbb7de3b52551468fdb21e", - "38922267a10ebd006d6682a6e373fc6d99888d2c1b167366dd89587d9a0ae85f" + "a0535beef1cc2473acd7ef41c29b03c3dead7169b471ee90c9f62c6c999b5f73", + "47533b91470b6d0b2b3ffeda08f4498aee53b62fe204364bd25f40da6b0755dc", + "d1b5e17110cbd21d84a0a21d5439af2ce3a1456edc6d1be2cb67d2c385f53a9f" ], - "encoding": "0102a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f97c61e6254031513e66d173f4cd7bdbe5cb7790df60b7496d93f3326ebda7067030003400ef605edf5401124e44eb5ca3ff020154ff2aea3a12ed5192cb03bd0e409d4a804e442e6a0cad19594b7f0e74c0ffc8f254bb303fbb7de3b52551468fdb21e38922267a10ebd006d6682a6e373fc6d99888d2c1b167366dd89587d9a0ae85f", + "encoding": "0102a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f2d52863c0d2fef772e2dd2db975fa00986047865cef82f5ced76c907ef2edb8d030003a0535beef1cc2473acd7ef41c29b03c3dead7169b471ee90c9f62c6c999b5f7347533b91470b6d0b2b3ffeda08f4498aee53b62fe204364bd25f40da6b0755dcd1b5e17110cbd21d84a0a21d5439af2ce3a1456edc6d1be2cb67d2c385f53a9f", "results": [ { "depth": 3, "leaf": { - "commitment": "97c61e6254031513e66d173f4cd7bdbe5cb7790df60b7496d93f3326ebda7067", + "commitment": "2d52863c0d2fef772e2dd2db975fa00986047865cef82f5ced76c907ef2edb8d", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -603,11 +603,11 @@ } ], "prefix_roots": [], - "response": "0200000000000000070040cc23ae219877b9b388a6ebdd982d379b8bf5e33ac7f110452ebc91285f1bc463589827e49e14506b5dbd6eea02235f2cb10ae3df87d2bc51fa6322ef6899dc090000000036a5b76466c1ef4fb3f4b0537448793f00000005626f622d31021cfe4094661cd115c04be0c885e8f5d1a223195bd4eb8c012cebdfb8d039c825470e056ca834618373a9c92c2a716e75eee517652f2d0580dd44750bb47ecb8c1e906187bdb596c146d4d7abed149a0a00f4f1731a9622a7d2e073010a0f633b7a7480ed6ec7d1b7b139f070ded0837c6d37ad8fe5463defe0cf800861a66f5ac1d413a5bcfd5e1de2f3c5234a90a68e35f6ee818bd00ddeb7307b3a1718f5e00300030000019fb33eee0c0000019fb33eee0c0000019fb33eee0d0302010202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f97c61e6254031513e66d173f4cd7bdbe5cb7790df60b7496d93f3326ebda7067020002e0f0934621ea15fe27f2961e3132755b03656aa3a7b24ca294728e463342915d5fe71191924ae4227bc5dcc559d9fe0a34796533cd2a183c4761aabe13b40f870102a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f97c61e6254031513e66d173f4cd7bdbe5cb7790df60b7496d93f3326ebda7067030003804f938c0ec934e9d3a51a50de4abc0c3a60787cdf62194aadcd40f5156c24e3a804e442e6a0cad19594b7f0e74c0ffc8f254bb303fbb7de3b52551468fdb21e38922267a10ebd006d6682a6e373fc6d99888d2c1b167366dd89587d9a0ae85f0102a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f97c61e6254031513e66d173f4cd7bdbe5cb7790df60b7496d93f3326ebda7067030003400ef605edf5401124e44eb5ca3ff020154ff2aea3a12ed5192cb03bd0e409d4a804e442e6a0cad19594b7f0e74c0ffc8f254bb303fbb7de3b52551468fdb21e38922267a10ebd006d6682a6e373fc6d99888d2c1b167366dd89587d9a0ae85f00000358c49dfda13fadadc999b9f527e3dfca3b05457f810e399117e833d3fa99fa38b6d375602f3516a65a3ccabf92b52b2d8931dba6bd1e115e881df26cf86588b2a22723aee9719ab7b73e1ba558d8bb5194a22ca31b02f3eb8db26a75ce19506c", + "response": "02000000000000000700408dcb91f242a0052477e5733626a8de07d1481912f12a2625e1a1a0b19170f1cae2ddd4dd98a41715458927dfa25da5ddb1c0f4ce4f4be16f450fc06d391c2d0a000000004d4e49e33f5e1f6c024f457eb0a1051700000005626f622d31021cfe4094661cd115c04be0c885e8f5d1a223195bd4eb8c012cebdfb8d039c825470e056ca834618373a9c92c2a716e75eee517652f2d0580dd44750bb47ecb8c1e906187bdb596c146d4d7abed149a0a00f4f1731a9622a7d2e073010a0f633b7a7480ed6ec7d1b7b139f070ded0837c6d37ad8fe5463defe0cf800861a66f5ac1d413a5bcfd5e1de2f3c5234a90a68e35f6ee818bd00ddeb7307b3a1718f5e00300030000019fb36a0e130000019fb36a0e130000019fb36a0e130302010202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f2d52863c0d2fef772e2dd2db975fa00986047865cef82f5ced76c907ef2edb8d020002b9837eb3daad78ac21fe0efc2f250c776701833053372cf63040a71ba38b31f5ce52f2fc73352702cb468590f857a43ab8ed70b4e830b507fbb2c13c4a80048d0102a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f2d52863c0d2fef772e2dd2db975fa00986047865cef82f5ced76c907ef2edb8d030003b704e1ea9fc60a232e074795114047c1dddcc1e42bca8c8e61461e8b3614d0bf47533b91470b6d0b2b3ffeda08f4498aee53b62fe204364bd25f40da6b0755dcd1b5e17110cbd21d84a0a21d5439af2ce3a1456edc6d1be2cb67d2c385f53a9f0102a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f2d52863c0d2fef772e2dd2db975fa00986047865cef82f5ced76c907ef2edb8d030003a0535beef1cc2473acd7ef41c29b03c3dead7169b471ee90c9f62c6c999b5f7347533b91470b6d0b2b3ffeda08f4498aee53b62fe204364bd25f40da6b0755dcd1b5e17110cbd21d84a0a21d5439af2ce3a1456edc6d1be2cb67d2c385f53a9f0000037124d9c08136196c87e10bef688e57cac3ee16aeee339bc8afd7dfe19b0716650c520d8efe571b4f4a606ef06e6fb0e3fdf5034ada7c6306515dd138671632604554a802828fef4e1acf863320c7c245e498b09abfbc77573977169524f138ff", "timestamps": [ - 1785418673676, - 1785418673676, - 1785418673677 + 1785421499923, + 1785421499923, + 1785421499923 ], "tree_size": 7, "version": 0 @@ -617,13 +617,13 @@ "name": "fixed-version-first", "input": { "entry_timestamps": [ - 1785418673677, - 1785418673678, - 1785418673678, - 1785418673678, - 1785418673678, - 1785418673678, - 1785418673679 + 1785421499924, + 1785421499924, + 1785421499924, + 1785421499925, + 1785421499925, + 1785421499925, + 1785421499925 ], "label": "616c696365406578616d706c652e636f6d", "max_ahead": 10000, @@ -703,24 +703,24 @@ "proof": "f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f00" }, { - "commitment": "c2999b07a9adba84c7f8433fe379c4522401c457a9d17fb0cf84a052b75192ed", + "commitment": "6bbb48d38185afac5091f9562388bac093721769b07525e92914d89e0b78ed1b", "proof": "414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02" } ], - "full_tree_head": "02000000000000000700403ea32f469d10611e0e1febfbacbfd792897e0b132711f8a7790f4aecbe53c8834915b7cb5dd31748fdb0c0db71e1d8a770337ac041a96678af85eec02e1eff0b", + "full_tree_head": "0200000000000000070040650555bcf8111fa6bac1d3c9e957b49b647dc8602ca4a8e05e4c331025360edc64e4c697cc2a6eba4ba947db445f4973104d9e2f65eeb11a18d5e8332a091b03", "inclusion": [ - "2edd918e72a5b482a1d7923379b1930c4ce353ac8301742419fbb17c0be85bd6", - "ea4a764a3d762b7a465af183a0de913757761af379903aa28cde25f4c2ca8884" + "1ebab30028815e4388d7fe34cd818b02e2643ba82cf3976488e02f195b8198ad", + "3dbb6e1e9b0a4b040da8394adc3d9c972b9da88a9bde3ee06d815c43a3af99cb" ], - "opening": "4391968a0885ef3d1b0edbe79b663280", + "opening": "a827b5c97e86401b3ae59396153293a6", "prefix_proofs": [ { "elements": [ - "c00fb4f50aecb127eb6e9fe2b92358ea4235df1ae876710cd46dbfb6043fd5bb", + "3fad405e53a4c0b7f8463f0c9f3f72ba28b626ddf20b74580557f998e64bab78", "0000000000000000000000000000000000000000000000000000000000000000", - "7b59edc02e294b80c0dfbb03f78c6c9387fbff7e6e7b81c73e4b12f2d67727ff" + "511d05bffe0a163cb74657a63048b58520b9788440edf76e1404a2d426c0ff6b" ], - "encoding": "02010401020003c00fb4f50aecb127eb6e9fe2b92358ea4235df1ae876710cd46dbfb6043fd5bb00000000000000000000000000000000000000000000000000000000000000007b59edc02e294b80c0dfbb03f78c6c9387fbff7e6e7b81c73e4b12f2d67727ff", + "encoding": "020104010200033fad405e53a4c0b7f8463f0c9f3f72ba28b626ddf20b74580557f998e64bab780000000000000000000000000000000000000000000000000000000000000000511d05bffe0a163cb74657a63048b58520b9788440edf76e1404a2d426c0ff6b", "results": [ { "depth": 4, @@ -734,9 +734,9 @@ }, { "elements": [ - "d99696d4f58c17fabcee9c153d9a79a64fb8e363eebaef7310acc4286e47d72d" + "c2feca69ef3c9073f85dbc2e4aebe177cd8398aa990c3eac9742519f7b170130" ], - "encoding": "02010201020001d99696d4f58c17fabcee9c153d9a79a64fb8e363eebaef7310acc4286e47d72d", + "encoding": "02010201020001c2feca69ef3c9073f85dbc2e4aebe177cd8398aa990c3eac9742519f7b170130", "results": [ { "depth": 2, @@ -750,9 +750,9 @@ }, { "elements": [ - "d99696d4f58c17fabcee9c153d9a79a64fb8e363eebaef7310acc4286e47d72d" + "c2feca69ef3c9073f85dbc2e4aebe177cd8398aa990c3eac9742519f7b170130" ], - "encoding": "02010102fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3de861cc46a725772b9766a8f3db151e889e86f20be5782c7808567fc24920894010001d99696d4f58c17fabcee9c153d9a79a64fb8e363eebaef7310acc4286e47d72d", + "encoding": "02010102fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e307d7b9836c7a28578fa550006092318f0d5191528ea128a3ab352c28265507c0010001c2feca69ef3c9073f85dbc2e4aebe177cd8398aa990c3eac9742519f7b170130", "results": [ { "depth": 1, @@ -761,7 +761,7 @@ { "depth": 1, "leaf": { - "commitment": "de861cc46a725772b9766a8f3db151e889e86f20be5782c7808567fc24920894", + "commitment": "07d7b9836c7a28578fa550006092318f0d5191528ea128a3ab352c28265507c0", "vrf_output": "fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3" }, "result_type": 2 @@ -770,16 +770,16 @@ } ], "prefix_roots": [ - "5d0ece15627f0a83cc19f0f5bf39053b20dddb6e0d5ddcff449feea7fbfa0471", - "8257a8659b20e9be3c2c439da49fffef5b5f08d1475b94db6685010efdb4d45c" + "c864f7e748306e1deb40dd989e30eee91c3425e0c7c28c9e7ef8968c71c582ad", + "bed707cbe11319c68752c2a497de9442dd6c858cf54ead6681f382bbf7c14884" ], - "response": "02000000000000000700403ea32f469d10611e0e1febfbacbfd792897e0b132711f8a7790f4aecbe53c8834915b7cb5dd31748fdb0c0db71e1d8a770337ac041a96678af85eec02e1eff0b4391968a0885ef3d1b0edbe79b66328000000007616c6963652d3102f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f0000414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf0201c2999b07a9adba84c7f8433fe379c4522401c457a9d17fb0cf84a052b75192ed050000019fb33eee0e0000019fb33eee0e0000019fb33eee0f0000019fb33eee0e0000019fb33eee0d0302010401020003c00fb4f50aecb127eb6e9fe2b92358ea4235df1ae876710cd46dbfb6043fd5bb00000000000000000000000000000000000000000000000000000000000000007b59edc02e294b80c0dfbb03f78c6c9387fbff7e6e7b81c73e4b12f2d67727ff02010201020001d99696d4f58c17fabcee9c153d9a79a64fb8e363eebaef7310acc4286e47d72d02010102fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3de861cc46a725772b9766a8f3db151e889e86f20be5782c7808567fc24920894010001d99696d4f58c17fabcee9c153d9a79a64fb8e363eebaef7310acc4286e47d72d025d0ece15627f0a83cc19f0f5bf39053b20dddb6e0d5ddcff449feea7fbfa04718257a8659b20e9be3c2c439da49fffef5b5f08d1475b94db6685010efdb4d45c00022edd918e72a5b482a1d7923379b1930c4ce353ac8301742419fbb17c0be85bd6ea4a764a3d762b7a465af183a0de913757761af379903aa28cde25f4c2ca8884", + "response": "0200000000000000070040650555bcf8111fa6bac1d3c9e957b49b647dc8602ca4a8e05e4c331025360edc64e4c697cc2a6eba4ba947db445f4973104d9e2f65eeb11a18d5e8332a091b03a827b5c97e86401b3ae59396153293a600000007616c6963652d3102f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f0000414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02016bbb48d38185afac5091f9562388bac093721769b07525e92914d89e0b78ed1b050000019fb36a0e150000019fb36a0e150000019fb36a0e150000019fb36a0e140000019fb36a0e1403020104010200033fad405e53a4c0b7f8463f0c9f3f72ba28b626ddf20b74580557f998e64bab780000000000000000000000000000000000000000000000000000000000000000511d05bffe0a163cb74657a63048b58520b9788440edf76e1404a2d426c0ff6b02010201020001c2feca69ef3c9073f85dbc2e4aebe177cd8398aa990c3eac9742519f7b17013002010102fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e307d7b9836c7a28578fa550006092318f0d5191528ea128a3ab352c28265507c0010001c2feca69ef3c9073f85dbc2e4aebe177cd8398aa990c3eac9742519f7b17013002c864f7e748306e1deb40dd989e30eee91c3425e0c7c28c9e7ef8968c71c582adbed707cbe11319c68752c2a497de9442dd6c858cf54ead6681f382bbf7c1488400021ebab30028815e4388d7fe34cd818b02e2643ba82cf3976488e02f195b8198ad3dbb6e1e9b0a4b040da8394adc3d9c972b9da88a9bde3ee06d815c43a3af99cb", "timestamps": [ - 1785418673678, - 1785418673678, - 1785418673679, - 1785418673678, - 1785418673677 + 1785421499925, + 1785421499925, + 1785421499925, + 1785421499924, + 1785421499924 ], "tree_size": 7 } @@ -788,13 +788,13 @@ "name": "fixed-version-middle", "input": { "entry_timestamps": [ - 1785418673679, - 1785418673679, - 1785418673680, - 1785418673680, - 1785418673680, - 1785418673680, - 1785418673680 + 1785421499926, + 1785421499926, + 1785421499926, + 1785421499927, + 1785421499927, + 1785421499927, + 1785421499927 ], "label": "616c696365406578616d706c652e636f6d", "max_ahead": 10000, @@ -871,11 +871,11 @@ "expect": { "binary_ladder": [ { - "commitment": "8f77059e3374f5a607309eaf778f4809e820f702ad598bbbd3c97e24971b867d", + "commitment": "053ce18fccf2c11327b32204d66cb2718a0de2ccfa3d587467eb0e22ac9d80bc", "proof": "f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f00" }, { - "commitment": "6d742341275d963d5169fc82dcfd79af8b529792d1f7f97f74e1b86ae9d8a26e", + "commitment": "3b5a72253ffc766aee8ff9577cc2c6732a5f2c799cc130c9da77fa02e31c07ed", "proof": "414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02" }, { @@ -891,20 +891,20 @@ "proof": "901738f65e8b0d720acdb242304a8725f8ca1acbb009fbd89c72016887f57fd6d75db48330615e002cec7257a9620a57bd2679cafe860c43c92d86e7751ff5fa38ff87f334f665233fb88fe5d60f240e" } ], - "full_tree_head": "0200000000000000070040c11d4efcc0ad9be8857aacad1e742b95e7dec837247df31c16150041b3300edf966edbfcc1f29dea1f673ce59ee93f049c3cb7d0a2f58b4cc713082240108708", + "full_tree_head": "020000000000000007004054129b05764ee102805db61a29187a3186adb9b5f9a8183e9d8e6d219e372cb124a930971582ead4e30ed099d4892ccc2b8923237f8a561f9cce558ad0026403", "inclusion": [ - "c95580092544a982a42f3f2cca7b3bb4cb9385e92d7f1202e130cad291b722a0", - "3ad8005c60d120bb915402d9533e4cea01cf0ae7df6a0ddbc933d87e618d365b", - "3256218d9c434dca40ebdd22978e1057c017bffbe1937a48d58da3da6a6f3f2a" + "8fcc70a9695a264fb9f17888972cbb26b35a68adb9c0450324cf8e0e7fc83d0d", + "0c24c147923bb5f1d5a972ebc5191540fc949f71821f5dec7b029383fb1c9ad3", + "89f8a702672738e2be1e9187472a9ff2a444f61c08eae7bf2ef59f93af1065b2" ], - "opening": "0e3148d2d78d844754b651cf7c1050cc", + "opening": "2db4c56f96de2d61a1a23e79be7abe22", "prefix_proofs": [ { "elements": [ - "d96c3826927c36ce6ff0a64057dc3e32b57c7c4798b92da6c27ec6d1b26ae592", + "3727d2dedad8917b951d55370932fad4e4b41e4807be8ce1be073b3b9813352f", "0000000000000000000000000000000000000000000000000000000000000000" ], - "encoding": "0601040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f6d742341275d963d5169fc82dcfd79af8b529792d1f7f97f74e1b86ae9d8a26e0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f6d742341275d963d5169fc82dcfd79af8b529792d1f7f97f74e1b86ae9d8a26e0202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e38f77059e3374f5a607309eaf778f4809e820f702ad598bbbd3c97e24971b867d040002d96c3826927c36ce6ff0a64057dc3e32b57c7c4798b92da6c27ec6d1b26ae5920000000000000000000000000000000000000000000000000000000000000000", + "encoding": "0601040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f3b5a72253ffc766aee8ff9577cc2c6732a5f2c799cc130c9da77fa02e31c07ed0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f3b5a72253ffc766aee8ff9577cc2c6732a5f2c799cc130c9da77fa02e31c07ed0202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3053ce18fccf2c11327b32204d66cb2718a0de2ccfa3d587467eb0e22ac9d80bc0400023727d2dedad8917b951d55370932fad4e4b41e4807be8ce1be073b3b9813352f0000000000000000000000000000000000000000000000000000000000000000", "results": [ { "depth": 4, @@ -921,7 +921,7 @@ { "depth": 2, "leaf": { - "commitment": "6d742341275d963d5169fc82dcfd79af8b529792d1f7f97f74e1b86ae9d8a26e", + "commitment": "3b5a72253ffc766aee8ff9577cc2c6732a5f2c799cc130c9da77fa02e31c07ed", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -929,7 +929,7 @@ { "depth": 2, "leaf": { - "commitment": "6d742341275d963d5169fc82dcfd79af8b529792d1f7f97f74e1b86ae9d8a26e", + "commitment": "3b5a72253ffc766aee8ff9577cc2c6732a5f2c799cc130c9da77fa02e31c07ed", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -937,7 +937,7 @@ { "depth": 4, "leaf": { - "commitment": "8f77059e3374f5a607309eaf778f4809e820f702ad598bbbd3c97e24971b867d", + "commitment": "053ce18fccf2c11327b32204d66cb2718a0de2ccfa3d587467eb0e22ac9d80bc", "vrf_output": "fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3" }, "result_type": 2 @@ -946,14 +946,14 @@ } ], "prefix_roots": [ - "b6fb91808954875b6f8b1cd33a3a57780b54a53953f4b236618d1f02cf6201b3", - "4254a5a500b0b94785d927de8e6e02cad8ebdcb09e40d8221495b6d06c05467d" + "515f3256845ba955d7077927a27fe3c712244c39d9836006b250395eed134474", + "a5208d9874a208683f792562eef7c079b345b716bc38c9232cf2044aede96a8f" ], - "response": "0200000000000000070040c11d4efcc0ad9be8857aacad1e742b95e7dec837247df31c16150041b3300edf966edbfcc1f29dea1f673ce59ee93f049c3cb7d0a2f58b4cc7130822401087080e3148d2d78d844754b651cf7c1050cc00000007616c6963652d3406f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f00018f77059e3374f5a607309eaf778f4809e820f702ad598bbbd3c97e24971b867d414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02016d742341275d963d5169fc82dcfd79af8b529792d1f7f97f74e1b86ae9d8a26e783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c0026fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e12340900e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f60300901738f65e8b0d720acdb242304a8725f8ca1acbb009fbd89c72016887f57fd6d75db48330615e002cec7257a9620a57bd2679cafe860c43c92d86e7751ff5fa38ff87f334f665233fb88fe5d60f240e00030000019fb33eee100000019fb33eee100000019fb33eee10010601040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f6d742341275d963d5169fc82dcfd79af8b529792d1f7f97f74e1b86ae9d8a26e0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f6d742341275d963d5169fc82dcfd79af8b529792d1f7f97f74e1b86ae9d8a26e0202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e38f77059e3374f5a607309eaf778f4809e820f702ad598bbbd3c97e24971b867d040002d96c3826927c36ce6ff0a64057dc3e32b57c7c4798b92da6c27ec6d1b26ae592000000000000000000000000000000000000000000000000000000000000000002b6fb91808954875b6f8b1cd33a3a57780b54a53953f4b236618d1f02cf6201b34254a5a500b0b94785d927de8e6e02cad8ebdcb09e40d8221495b6d06c05467d0003c95580092544a982a42f3f2cca7b3bb4cb9385e92d7f1202e130cad291b722a03ad8005c60d120bb915402d9533e4cea01cf0ae7df6a0ddbc933d87e618d365b3256218d9c434dca40ebdd22978e1057c017bffbe1937a48d58da3da6a6f3f2a", + "response": "020000000000000007004054129b05764ee102805db61a29187a3186adb9b5f9a8183e9d8e6d219e372cb124a930971582ead4e30ed099d4892ccc2b8923237f8a561f9cce558ad00264032db4c56f96de2d61a1a23e79be7abe2200000007616c6963652d3406f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f0001053ce18fccf2c11327b32204d66cb2718a0de2ccfa3d587467eb0e22ac9d80bc414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02013b5a72253ffc766aee8ff9577cc2c6732a5f2c799cc130c9da77fa02e31c07ed783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c0026fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e12340900e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f60300901738f65e8b0d720acdb242304a8725f8ca1acbb009fbd89c72016887f57fd6d75db48330615e002cec7257a9620a57bd2679cafe860c43c92d86e7751ff5fa38ff87f334f665233fb88fe5d60f240e00030000019fb36a0e170000019fb36a0e170000019fb36a0e17010601040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f3b5a72253ffc766aee8ff9577cc2c6732a5f2c799cc130c9da77fa02e31c07ed0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f3b5a72253ffc766aee8ff9577cc2c6732a5f2c799cc130c9da77fa02e31c07ed0202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3053ce18fccf2c11327b32204d66cb2718a0de2ccfa3d587467eb0e22ac9d80bc0400023727d2dedad8917b951d55370932fad4e4b41e4807be8ce1be073b3b9813352f000000000000000000000000000000000000000000000000000000000000000002515f3256845ba955d7077927a27fe3c712244c39d9836006b250395eed134474a5208d9874a208683f792562eef7c079b345b716bc38c9232cf2044aede96a8f00038fcc70a9695a264fb9f17888972cbb26b35a68adb9c0450324cf8e0e7fc83d0d0c24c147923bb5f1d5a972ebc5191540fc949f71821f5dec7b029383fb1c9ad389f8a702672738e2be1e9187472a9ff2a444f61c08eae7bf2ef59f93af1065b2", "timestamps": [ - 1785418673680, - 1785418673680, - 1785418673680 + 1785421499927, + 1785421499927, + 1785421499927 ], "tree_size": 7 } @@ -962,13 +962,13 @@ "name": "fixed-version-greatest", "input": { "entry_timestamps": [ - 1785418673682, - 1785418673682, - 1785418673682, - 1785418673683, - 1785418673683, - 1785418673683, - 1785418673683 + 1785421499928, + 1785421499929, + 1785421499929, + 1785421499929, + 1785421499929, + 1785421499929, + 1785421499930 ], "label": "616c696365406578616d706c652e636f6d", "max_ahead": 10000, @@ -1045,42 +1045,42 @@ "expect": { "binary_ladder": [ { - "commitment": "86a14d018ba1dc4e97ac7179fd4dce44b5cce47d49f66b908568aa0b03c4219b", + "commitment": "a29d706b706dad45a313eb96595ac142b54d699b6dd5fbe413a9aaa28ff78a8e", "proof": "f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f00" }, { - "commitment": "6f4b25961be538f106282ce4d87463c4062f5454aa2ffe9efe9cd1acd4a7ba68", + "commitment": "a4bad8c406888a1429bdb0d3d340272feefbcc3fd668cf7fb1fa2430538a5aed", "proof": "414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02" }, { - "commitment": "70a2b7445759cbad1a11eebc357e8f41cd4d050440b99be3da5e2e375381f453", + "commitment": "1fb779a6760b66a708f5ef9498ab9ead9b2bbbae821cc204b471d9f5646779e5", "proof": "783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c" }, { "proof": "26fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e123409" }, { - "commitment": "37eb9b50d219ae1404360aa3ed52f6b29aee4a2b5ec24979187f469e834743e2", + "commitment": "5fe39fc845622f8d64433655b4a3625f287d74bb43f04a4558e37a16c15dfced", "proof": "e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f603" }, { "proof": "79f3efd60d574baf99ba8351653f86889db173fc5321dbf9738f1fbb84e5fd442f8b21447179087c71097be04beecb9954b83f1c2e3e7346743de7e75ee452a0f1295f7844782688166c0e4c3ea7330a" } ], - "full_tree_head": "020000000000000007004035983f42c18ad82483f66bf2825abc8038d94e7cfa564c33774e3a37ff6b3034c9d8acc71b355abf18ee72803fa2279b91f63c232940c9acd636d642440c310e", + "full_tree_head": "020000000000000007004076401f2d9f0201beb3acea208f98c2e4b2516b242d35020731cfd70e7f14a7a54f1527bc74d000bd1102bb80e9391697cecd17148f9992ba071bfb5ed857aa03", "inclusion": [ - "1114ce0264d179bbad9cbd2aae780def5b7c3b7cb466682abbe37601809e8dbd", - "9b78523f72d80ea760cff416ca28d9c3e9ff2d778bcbc9035fc3290fcb7079d7", - "a7e2e1934e73bc867dccd16b7c49ec72c75ab70f536e2fc0cc7ea40b2d497486" + "1e4f4e3d36305e88622656d01abeafdad106718e6a0d3dca598b820a9a015b73", + "0d42e105a840a5b666accd691fbf3cba60b0c46d609aa5c60f92a6a071a91bfa", + "3012b5ea4a192ba39034cca7579cbb0fe3bf3982808f155a5d9dadf9e623c050" ], - "opening": "ef364e51e58e85f2e7cebe61f9d5f06c", + "opening": "4f0ffcb9a4db09438938a27ff14bb732", "prefix_proofs": [ { "elements": [ - "6d7e77d385c90ea85fc24a9e5babe89906379272ea37818bb7e2f58db90ffce4", + "3410ad26bc024e22bc77ee9a698609a7bc5d73535642f3e47bd68293d4b8a518", "0000000000000000000000000000000000000000000000000000000000000000" ], - "encoding": "0501040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f6f4b25961be538f106282ce4d87463c4062f5454aa2ffe9efe9cd1acd4a7ba680202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f6f4b25961be538f106282ce4d87463c4062f5454aa2ffe9efe9cd1acd4a7ba680200026d7e77d385c90ea85fc24a9e5babe89906379272ea37818bb7e2f58db90ffce40000000000000000000000000000000000000000000000000000000000000000", + "encoding": "0501040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7fa4bad8c406888a1429bdb0d3d340272feefbcc3fd668cf7fb1fa2430538a5aed0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7fa4bad8c406888a1429bdb0d3d340272feefbcc3fd668cf7fb1fa2430538a5aed0200023410ad26bc024e22bc77ee9a698609a7bc5d73535642f3e47bd68293d4b8a5180000000000000000000000000000000000000000000000000000000000000000", "results": [ { "depth": 4, @@ -1097,7 +1097,7 @@ { "depth": 2, "leaf": { - "commitment": "6f4b25961be538f106282ce4d87463c4062f5454aa2ffe9efe9cd1acd4a7ba68", + "commitment": "a4bad8c406888a1429bdb0d3d340272feefbcc3fd668cf7fb1fa2430538a5aed", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -1105,7 +1105,7 @@ { "depth": 2, "leaf": { - "commitment": "6f4b25961be538f106282ce4d87463c4062f5454aa2ffe9efe9cd1acd4a7ba68", + "commitment": "a4bad8c406888a1429bdb0d3d340272feefbcc3fd668cf7fb1fa2430538a5aed", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -1114,16 +1114,16 @@ }, { "elements": [ - "38b986d81d9d4be365e316004fa8fc4e52a1f3d7328fa59cb62d1172fa52fbe2", - "7e6b29ba24cc114967eab965faf88e5e8f9450811ecb8f4749b2f82a55563998", - "1864354af923189a876db05cd8616c28002e313e3ed5019b0e697ec984863683" + "6e868114870764bb6c29c59135c23481096cb92990d3983e992c4481000327e3", + "4f1a76f8d6598fb551b6bd93a7338ab1f7b86c158030069a12b4db3441a930ba", + "057537a7619155220133342bbae5ae03cbf4ce97aa78b0e9cc18844e6a4c19aa" ], - "encoding": "03028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba837eb9b50d219ae1404360aa3ed52f6b29aee4a2b5ec24979187f469e834743e20301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e4518df7caf439230ab732cbb842fc57ced3b7ec9a82cd1f6e670e53124f5b2b97d02000338b986d81d9d4be365e316004fa8fc4e52a1f3d7328fa59cb62d1172fa52fbe27e6b29ba24cc114967eab965faf88e5e8f9450811ecb8f4749b2f82a555639981864354af923189a876db05cd8616c28002e313e3ed5019b0e697ec984863683", + "encoding": "03028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba85fe39fc845622f8d64433655b4a3625f287d74bb43f04a4558e37a16c15dfced0301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e458f61b81a38902502da625270ee8647d8094fad18e5671cc012c0fbc6b2213d780200036e868114870764bb6c29c59135c23481096cb92990d3983e992c4481000327e34f1a76f8d6598fb551b6bd93a7338ab1f7b86c158030069a12b4db3441a930ba057537a7619155220133342bbae5ae03cbf4ce97aa78b0e9cc18844e6a4c19aa", "results": [ { "depth": 3, "leaf": { - "commitment": "37eb9b50d219ae1404360aa3ed52f6b29aee4a2b5ec24979187f469e834743e2", + "commitment": "5fe39fc845622f8d64433655b4a3625f287d74bb43f04a4558e37a16c15dfced", "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, "result_type": 2 @@ -1135,7 +1135,7 @@ { "depth": 2, "leaf": { - "commitment": "18df7caf439230ab732cbb842fc57ced3b7ec9a82cd1f6e670e53124f5b2b97d", + "commitment": "8f61b81a38902502da625270ee8647d8094fad18e5671cc012c0fbc6b2213d78", "vrf_output": "49ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45" }, "result_type": 2 @@ -1144,18 +1144,18 @@ }, { "elements": [ - "38b986d81d9d4be365e316004fa8fc4e52a1f3d7328fa59cb62d1172fa52fbe2", - "1f6179df49d87f4521af314f0c89456994e7d4fae1d45a60addec722ad79ae26", + "6e868114870764bb6c29c59135c23481096cb92990d3983e992c4481000327e3", + "984d286b530f1ff36e8636b43a85f879178b325394432f00ee871fed5f7bbeb1", "0000000000000000000000000000000000000000000000000000000000000000", - "7e6b29ba24cc114967eab965faf88e5e8f9450811ecb8f4749b2f82a55563998", - "1864354af923189a876db05cd8616c28002e313e3ed5019b0e697ec984863683" + "4f1a76f8d6598fb551b6bd93a7338ab1f7b86c158030069a12b4db3441a930ba", + "057537a7619155220133342bbae5ae03cbf4ce97aa78b0e9cc18844e6a4c19aa" ], - "encoding": "02028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba837eb9b50d219ae1404360aa3ed52f6b29aee4a2b5ec24979187f469e834743e2030104000538b986d81d9d4be365e316004fa8fc4e52a1f3d7328fa59cb62d1172fa52fbe21f6179df49d87f4521af314f0c89456994e7d4fae1d45a60addec722ad79ae2600000000000000000000000000000000000000000000000000000000000000007e6b29ba24cc114967eab965faf88e5e8f9450811ecb8f4749b2f82a555639981864354af923189a876db05cd8616c28002e313e3ed5019b0e697ec984863683", + "encoding": "02028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba85fe39fc845622f8d64433655b4a3625f287d74bb43f04a4558e37a16c15dfced03010400056e868114870764bb6c29c59135c23481096cb92990d3983e992c4481000327e3984d286b530f1ff36e8636b43a85f879178b325394432f00ee871fed5f7bbeb100000000000000000000000000000000000000000000000000000000000000004f1a76f8d6598fb551b6bd93a7338ab1f7b86c158030069a12b4db3441a930ba057537a7619155220133342bbae5ae03cbf4ce97aa78b0e9cc18844e6a4c19aa", "results": [ { "depth": 3, "leaf": { - "commitment": "37eb9b50d219ae1404360aa3ed52f6b29aee4a2b5ec24979187f469e834743e2", + "commitment": "5fe39fc845622f8d64433655b4a3625f287d74bb43f04a4558e37a16c15dfced", "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, "result_type": 2 @@ -1168,11 +1168,11 @@ } ], "prefix_roots": [], - "response": "020000000000000007004035983f42c18ad82483f66bf2825abc8038d94e7cfa564c33774e3a37ff6b3034c9d8acc71b355abf18ee72803fa2279b91f63c232940c9acd636d642440c310eef364e51e58e85f2e7cebe61f9d5f06c00000007616c6963652d3706f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f000186a14d018ba1dc4e97ac7179fd4dce44b5cce47d49f66b908568aa0b03c4219b414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02016f4b25961be538f106282ce4d87463c4062f5454aa2ffe9efe9cd1acd4a7ba68783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c0170a2b7445759cbad1a11eebc357e8f41cd4d050440b99be3da5e2e375381f45326fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e12340900e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f6030137eb9b50d219ae1404360aa3ed52f6b29aee4a2b5ec24979187f469e834743e279f3efd60d574baf99ba8351653f86889db173fc5321dbf9738f1fbb84e5fd442f8b21447179087c71097be04beecb9954b83f1c2e3e7346743de7e75ee452a0f1295f7844782688166c0e4c3ea7330a00030000019fb33eee130000019fb33eee130000019fb33eee13030501040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f6f4b25961be538f106282ce4d87463c4062f5454aa2ffe9efe9cd1acd4a7ba680202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f6f4b25961be538f106282ce4d87463c4062f5454aa2ffe9efe9cd1acd4a7ba680200026d7e77d385c90ea85fc24a9e5babe89906379272ea37818bb7e2f58db90ffce4000000000000000000000000000000000000000000000000000000000000000003028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba837eb9b50d219ae1404360aa3ed52f6b29aee4a2b5ec24979187f469e834743e20301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e4518df7caf439230ab732cbb842fc57ced3b7ec9a82cd1f6e670e53124f5b2b97d02000338b986d81d9d4be365e316004fa8fc4e52a1f3d7328fa59cb62d1172fa52fbe27e6b29ba24cc114967eab965faf88e5e8f9450811ecb8f4749b2f82a555639981864354af923189a876db05cd8616c28002e313e3ed5019b0e697ec98486368302028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba837eb9b50d219ae1404360aa3ed52f6b29aee4a2b5ec24979187f469e834743e2030104000538b986d81d9d4be365e316004fa8fc4e52a1f3d7328fa59cb62d1172fa52fbe21f6179df49d87f4521af314f0c89456994e7d4fae1d45a60addec722ad79ae2600000000000000000000000000000000000000000000000000000000000000007e6b29ba24cc114967eab965faf88e5e8f9450811ecb8f4749b2f82a555639981864354af923189a876db05cd8616c28002e313e3ed5019b0e697ec9848636830000031114ce0264d179bbad9cbd2aae780def5b7c3b7cb466682abbe37601809e8dbd9b78523f72d80ea760cff416ca28d9c3e9ff2d778bcbc9035fc3290fcb7079d7a7e2e1934e73bc867dccd16b7c49ec72c75ab70f536e2fc0cc7ea40b2d497486", + "response": "020000000000000007004076401f2d9f0201beb3acea208f98c2e4b2516b242d35020731cfd70e7f14a7a54f1527bc74d000bd1102bb80e9391697cecd17148f9992ba071bfb5ed857aa034f0ffcb9a4db09438938a27ff14bb73200000007616c6963652d3706f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f0001a29d706b706dad45a313eb96595ac142b54d699b6dd5fbe413a9aaa28ff78a8e414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf0201a4bad8c406888a1429bdb0d3d340272feefbcc3fd668cf7fb1fa2430538a5aed783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c011fb779a6760b66a708f5ef9498ab9ead9b2bbbae821cc204b471d9f5646779e526fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e12340900e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f603015fe39fc845622f8d64433655b4a3625f287d74bb43f04a4558e37a16c15dfced79f3efd60d574baf99ba8351653f86889db173fc5321dbf9738f1fbb84e5fd442f8b21447179087c71097be04beecb9954b83f1c2e3e7346743de7e75ee452a0f1295f7844782688166c0e4c3ea7330a00030000019fb36a0e190000019fb36a0e190000019fb36a0e1a030501040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7fa4bad8c406888a1429bdb0d3d340272feefbcc3fd668cf7fb1fa2430538a5aed0202a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7fa4bad8c406888a1429bdb0d3d340272feefbcc3fd668cf7fb1fa2430538a5aed0200023410ad26bc024e22bc77ee9a698609a7bc5d73535642f3e47bd68293d4b8a518000000000000000000000000000000000000000000000000000000000000000003028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba85fe39fc845622f8d64433655b4a3625f287d74bb43f04a4558e37a16c15dfced0301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e458f61b81a38902502da625270ee8647d8094fad18e5671cc012c0fbc6b2213d780200036e868114870764bb6c29c59135c23481096cb92990d3983e992c4481000327e34f1a76f8d6598fb551b6bd93a7338ab1f7b86c158030069a12b4db3441a930ba057537a7619155220133342bbae5ae03cbf4ce97aa78b0e9cc18844e6a4c19aa02028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba85fe39fc845622f8d64433655b4a3625f287d74bb43f04a4558e37a16c15dfced03010400056e868114870764bb6c29c59135c23481096cb92990d3983e992c4481000327e3984d286b530f1ff36e8636b43a85f879178b325394432f00ee871fed5f7bbeb100000000000000000000000000000000000000000000000000000000000000004f1a76f8d6598fb551b6bd93a7338ab1f7b86c158030069a12b4db3441a930ba057537a7619155220133342bbae5ae03cbf4ce97aa78b0e9cc18844e6a4c19aa0000031e4f4e3d36305e88622656d01abeafdad106718e6a0d3dca598b820a9a015b730d42e105a840a5b666accd691fbf3cba60b0c46d609aa5c60f92a6a071a91bfa3012b5ea4a192ba39034cca7579cbb0fe3bf3982808f155a5d9dadf9e623c050", "timestamps": [ - 1785418673683, - 1785418673683, - 1785418673683 + 1785421499929, + 1785421499929, + 1785421499930 ], "tree_size": 7 } @@ -1181,13 +1181,13 @@ "name": "fixed-version-with-advertised-size", "input": { "entry_timestamps": [ - 1785418673685, - 1785418673685, - 1785418673685, - 1785418673685, - 1785418673686, - 1785418673686, - 1785418673686 + 1785421499931, + 1785421499931, + 1785421499931, + 1785421499931, + 1785421499932, + 1785421499932, + 1785421499932 ], "label": "616c696365406578616d706c652e636f6d", "last": 4, @@ -1265,35 +1265,35 @@ "expect": { "binary_ladder": [ { - "commitment": "62c23a0c6765b537159108985571da58d0b3e5694eefeda702bc5d23bbc4d0db", + "commitment": "6c3a9c22c89f9ec4c90ad2d2dc951ab28c4c5637837474259e13a1d878cbc08b", "proof": "f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f00" }, { - "commitment": "79ee0f72126edbaee63e0df266c3ba263290ea2621f7f750a9f27965999f976d", + "commitment": "01e297962de748a983308da6210945135f4e7b88bb152a2f9c92a960156fee0d", "proof": "414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02" }, { - "commitment": "88d53c4da54c4097487293b1ebd03389cd31185337e636262071ab60dadc2b0a", + "commitment": "8726eab01c4683e4fcd1d22154536de2b9afc63896195ce735d6032558872719", "proof": "783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c" }, { "proof": "4d493fd0ff6a928c26e821165294b8375d30556957c68899f5d44d8358cde8ffc491c2208f6d9e8dbcdf2b4005c8e7ff457d570474684ff317b6789806504feb346ad1667cac398558db901c11a15a00" } ], - "full_tree_head": "02000000000000000700403c94e794df323db056c6a6a913ebafd12af1f7a9d60ccaa034f1420cadd0cc7a86d2bb06a9ae6c18d4b706ffcb634751121287e8f7b426983e98dabe761b880a", + "full_tree_head": "0200000000000000070040e71121613b001b06d5068873385c29c9712249389f9c3cd943ff6e1234870f16e4ea4aedecd3bc2f541dbd79900ba5daf4a97a056fe2650d397f7d179cebf107", "inclusion": [ - "eff0c94cb5a4beb81b112dbf8ebb68ba412d342d3e0ea98fd25608e3072f22f6", - "77fc4f7b6521667141ac82d4b16e7d4404edfbce9c67fb02d3461e14eacf2b87", - "b59cd2c212056346e7e15f866a0b388134b7245202ab1a58a24af1d5b8e2011b" + "0b641a1e230e4b7463b9a03942eb8690a7cdc63dd1ad658d80a0c3ea0e830eba", + "c454526c310cb4d9037c04491410494e01faefb733cf9604463309d0803b16aa", + "15dfda29d9abbacfa25de9582126266dd622f7b7f32b2da94fc663eac3fb27a8" ], - "opening": "a932753dae9d59d42b8794565aa2820f", + "opening": "66b51ee44d11015c3295a8a120d958d5", "prefix_proofs": [ { "elements": [ - "f93027b612b36ad22dcf2ed69dce4baa614396ee0efd44f767d9cd86ad218697", + "e23b6af3908713c44a6afe76927fe93760660bf1e1356a6f8ee258bcaca6bbb2", "0000000000000000000000000000000000000000000000000000000000000000" ], - "encoding": "030104010201040002f93027b612b36ad22dcf2ed69dce4baa614396ee0efd44f767d9cd86ad2186970000000000000000000000000000000000000000000000000000000000000000", + "encoding": "030104010201040002e23b6af3908713c44a6afe76927fe93760660bf1e1356a6f8ee258bcaca6bbb20000000000000000000000000000000000000000000000000000000000000000", "results": [ { "depth": 4, @@ -1311,7 +1311,7 @@ }, { "elements": [], - "encoding": "040102010202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e362c23a0c6765b537159108985571da58d0b3e5694eefeda702bc5d23bbc4d0db02023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee2e68ff906d9d4e0fb48c88d250684c912ca229ce69a3f205ceb8fbb5210537305010000", + "encoding": "040102010202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e36c3a9c22c89f9ec4c90ad2d2dc951ab28c4c5637837474259e13a1d878cbc08b02023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee21867e91540cc3fe48030d888c812495ae3d9cba2e8ef806dddf0294595a863d6010000", "results": [ { "depth": 2, @@ -1324,7 +1324,7 @@ { "depth": 2, "leaf": { - "commitment": "62c23a0c6765b537159108985571da58d0b3e5694eefeda702bc5d23bbc4d0db", + "commitment": "6c3a9c22c89f9ec4c90ad2d2dc951ab28c4c5637837474259e13a1d878cbc08b", "vrf_output": "fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3" }, "result_type": 2 @@ -1332,7 +1332,7 @@ { "depth": 1, "leaf": { - "commitment": "e68ff906d9d4e0fb48c88d250684c912ca229ce69a3f205ceb8fbb5210537305", + "commitment": "1867e91540cc3fe48030d888c812495ae3d9cba2e8ef806dddf0294595a863d6", "vrf_output": "3ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee2" }, "result_type": 2 @@ -1341,15 +1341,15 @@ }, { "elements": [ - "ac7c1d55c8165900a0aa11f6bdb0ae2a0d7669ca49f4e3b090d685dbf1de66cd", - "9b98f6e99425cf91b79f4b947e7328f7983818f530733e12cbf8873345248604" + "eb37ff2e008778d1b53b1fce1d13473c56293bb90756219e0dd4d795e042f5d6", + "c7fa0cdaea567d1afa8c7fdb30c192cc6f2224176fed643fb06329417cc1f637" ], - "encoding": "0202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e362c23a0c6765b537159108985571da58d0b3e5694eefeda702bc5d23bbc4d0db0201020002ac7c1d55c8165900a0aa11f6bdb0ae2a0d7669ca49f4e3b090d685dbf1de66cd9b98f6e99425cf91b79f4b947e7328f7983818f530733e12cbf8873345248604", + "encoding": "0202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e36c3a9c22c89f9ec4c90ad2d2dc951ab28c4c5637837474259e13a1d878cbc08b0201020002eb37ff2e008778d1b53b1fce1d13473c56293bb90756219e0dd4d795e042f5d6c7fa0cdaea567d1afa8c7fdb30c192cc6f2224176fed643fb06329417cc1f637", "results": [ { "depth": 2, "leaf": { - "commitment": "62c23a0c6765b537159108985571da58d0b3e5694eefeda702bc5d23bbc4d0db", + "commitment": "6c3a9c22c89f9ec4c90ad2d2dc951ab28c4c5637837474259e13a1d878cbc08b", "vrf_output": "fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3" }, "result_type": 2 @@ -1362,13 +1362,13 @@ } ], "prefix_roots": [ - "9bd7fe89249a4dc5d071e10edf3fd65d077d0c911b9ac569a1c31e5b01ab871e" + "45f07e0e01f4926c1245b983014c3653209a6dc421b98d9836f0845eed1c5d97" ], - "response": "02000000000000000700403c94e794df323db056c6a6a913ebafd12af1f7a9d60ccaa034f1420cadd0cc7a86d2bb06a9ae6c18d4b706ffcb634751121287e8f7b426983e98dabe761b880aa932753dae9d59d42b8794565aa2820f00000007616c6963652d3304f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f000162c23a0c6765b537159108985571da58d0b3e5694eefeda702bc5d23bbc4d0db414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf020179ee0f72126edbaee63e0df266c3ba263290ea2621f7f750a9f27965999f976d783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c0188d53c4da54c4097487293b1ebd03389cd31185337e636262071ab60dadc2b0a4d493fd0ff6a928c26e821165294b8375d30556957c68899f5d44d8358cde8ffc491c2208f6d9e8dbcdf2b4005c8e7ff457d570474684ff317b6789806504feb346ad1667cac398558db901c11a15a0000030000019fb33eee160000019fb33eee150000019fb33eee1503030104010201040002f93027b612b36ad22dcf2ed69dce4baa614396ee0efd44f767d9cd86ad2186970000000000000000000000000000000000000000000000000000000000000000040102010202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e362c23a0c6765b537159108985571da58d0b3e5694eefeda702bc5d23bbc4d0db02023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee2e68ff906d9d4e0fb48c88d250684c912ca229ce69a3f205ceb8fbb52105373050100000202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e362c23a0c6765b537159108985571da58d0b3e5694eefeda702bc5d23bbc4d0db0201020002ac7c1d55c8165900a0aa11f6bdb0ae2a0d7669ca49f4e3b090d685dbf1de66cd9b98f6e99425cf91b79f4b947e7328f7983818f530733e12cbf8873345248604019bd7fe89249a4dc5d071e10edf3fd65d077d0c911b9ac569a1c31e5b01ab871e0003eff0c94cb5a4beb81b112dbf8ebb68ba412d342d3e0ea98fd25608e3072f22f677fc4f7b6521667141ac82d4b16e7d4404edfbce9c67fb02d3461e14eacf2b87b59cd2c212056346e7e15f866a0b388134b7245202ab1a58a24af1d5b8e2011b", + "response": "0200000000000000070040e71121613b001b06d5068873385c29c9712249389f9c3cd943ff6e1234870f16e4ea4aedecd3bc2f541dbd79900ba5daf4a97a056fe2650d397f7d179cebf10766b51ee44d11015c3295a8a120d958d500000007616c6963652d3304f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f00016c3a9c22c89f9ec4c90ad2d2dc951ab28c4c5637837474259e13a1d878cbc08b414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf020101e297962de748a983308da6210945135f4e7b88bb152a2f9c92a960156fee0d783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c018726eab01c4683e4fcd1d22154536de2b9afc63896195ce735d60325588727194d493fd0ff6a928c26e821165294b8375d30556957c68899f5d44d8358cde8ffc491c2208f6d9e8dbcdf2b4005c8e7ff457d570474684ff317b6789806504feb346ad1667cac398558db901c11a15a0000030000019fb36a0e1c0000019fb36a0e1b0000019fb36a0e1b03030104010201040002e23b6af3908713c44a6afe76927fe93760660bf1e1356a6f8ee258bcaca6bbb20000000000000000000000000000000000000000000000000000000000000000040102010202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e36c3a9c22c89f9ec4c90ad2d2dc951ab28c4c5637837474259e13a1d878cbc08b02023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee21867e91540cc3fe48030d888c812495ae3d9cba2e8ef806dddf0294595a863d60100000202fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e36c3a9c22c89f9ec4c90ad2d2dc951ab28c4c5637837474259e13a1d878cbc08b0201020002eb37ff2e008778d1b53b1fce1d13473c56293bb90756219e0dd4d795e042f5d6c7fa0cdaea567d1afa8c7fdb30c192cc6f2224176fed643fb06329417cc1f6370145f07e0e01f4926c1245b983014c3653209a6dc421b98d9836f0845eed1c5d9700030b641a1e230e4b7463b9a03942eb8690a7cdc63dd1ad658d80a0c3ea0e830ebac454526c310cb4d9037c04491410494e01faefb733cf9604463309d0803b16aa15dfda29d9abbacfa25de9582126266dd622f7b7f32b2da94fc663eac3fb27a8", "timestamps": [ - 1785418673686, - 1785418673685, - 1785418673685 + 1785421499932, + 1785421499931, + 1785421499931 ], "tree_size": 7 } @@ -1377,7 +1377,7 @@ "name": "single-entry-log", "input": { "entry_timestamps": [ - 1785418673687 + 1785421499933 ], "label": "616c696365406578616d706c652e636f6d", "max_ahead": 10000, @@ -1407,13 +1407,13 @@ "proof": "414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02" } ], - "full_tree_head": "0200000000000000010040a81647cfcbd3d03a141d9dcb0e9209a1d7b191395ebf0d116e4f7d4e0ffd574b8d350529fd7d431496ad0ebb7ff7d50a848dcc59c2b82f8fe2307b953bde0508", + "full_tree_head": "02000000000000000100401b781c7e3b6776861219166a777e219942770d5a102bcd5f945bf30a66807feb76fb2fe12b77b506d6abe9f3db9ede5a0e3934a0470d86d26c27776f751c5204", "inclusion": [], - "opening": "4b3b5cd04b3bb0aa2b78eeef0787a437", + "opening": "ba3eb6e858c888d9e3f0d8ff22f07de4", "prefix_proofs": [ { "elements": [], - "encoding": "02010002fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e37fde8aa2d462e40a35a1cc64dd2b290f993ba4f391fe511bd959d116ecdd9998000000", + "encoding": "02010002fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e35b636dcf80c60093d1bf69850e2dafa615a01da55bb11d594820afe013a54291000000", "results": [ { "depth": 0, @@ -1422,7 +1422,7 @@ { "depth": 0, "leaf": { - "commitment": "7fde8aa2d462e40a35a1cc64dd2b290f993ba4f391fe511bd959d116ecdd9998", + "commitment": "5b636dcf80c60093d1bf69850e2dafa615a01da55bb11d594820afe013a54291", "vrf_output": "fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e3" }, "result_type": 2 @@ -1431,9 +1431,9 @@ } ], "prefix_roots": [], - "response": "0200000000000000010040a81647cfcbd3d03a141d9dcb0e9209a1d7b191395ebf0d116e4f7d4e0ffd574b8d350529fd7d431496ad0ebb7ff7d50a848dcc59c2b82f8fe2307b953bde0508000000004b3b5cd04b3bb0aa2b78eeef0787a43700000007616c6963652d3102f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f0000414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf0200010000019fb33eee170102010002fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e37fde8aa2d462e40a35a1cc64dd2b290f993ba4f391fe511bd959d116ecdd9998000000000000", + "response": "02000000000000000100401b781c7e3b6776861219166a777e219942770d5a102bcd5f945bf30a66807feb76fb2fe12b77b506d6abe9f3db9ede5a0e3934a0470d86d26c27776f751c520400000000ba3eb6e858c888d9e3f0d8ff22f07de400000007616c6963652d3102f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f0000414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf0200010000019fb36a0e1d0102010002fd9ecf918e3b2a80ad06e2474e7a43de9578e3a10e0e4211d7c907e27179a1e35b636dcf80c60093d1bf69850e2dafa615a01da55bb11d594820afe013a54291000000000000", "timestamps": [ - 1785418673687 + 1785421499933 ], "tree_size": 1, "version": 0 @@ -1443,13 +1443,13 @@ "name": "label-does-not-exist", "input": { "entry_timestamps": [ - 1785418673687, - 1785418673688, - 1785418673688, - 1785418673688, - 1785418673688, - 1785418673688, - 1785418673689 + 1785421499933, + 1785421499934, + 1785421499934, + 1785421499934, + 1785421499934, + 1785421499934, + 1785421499935 ], "label": "6e6f626f6479406578616d706c652e636f6d", "max_ahead": 10000, @@ -1528,25 +1528,25 @@ "proof": "4b04fea1cc97b5612a9cf074b619ab597e884754382b924f15782338f5758f3ced2ac7fcc0b4bd528d2101f7046d3fadb9735b459544ac75f8bc1bca20b4ae2f7ddeef21639ba2ea2b195d2a3879ae0f" } ], - "full_tree_head": "0200000000000000070040fcc65ee84abfc95b7a22b60e52901b36564c15c8eeacf3209f84f52e1ec906c3d581117eb508646069dd6c7856b757f62b5e0dac7ea380a5bd397a962ae11c0d", + "full_tree_head": "0200000000000000070040f59e6bf1097aca680fa058734ea73d485c7f6736479734a8da0394dd1548ddde997389bb6b5a0104a54ee5a32a214bd906c3b0e65a898ed1a60c45f06e690e00", "inclusion": [ - "cf725b6dc8700c22020cc803ab73804450ef35fff86cc291c833c0b60c64be85", - "b8550bffd118a9f0ccc0a9cfb3ba15c173ca95a355f00f1639a58579c8471b38", - "fa223df6756d29841d2229a47b48d8bc6371cf9a0ddb632ed38a4096b8bd9a0c" + "29c134db2a33008bf89b67615fcf83440dceaa06e939accb4e0f6112320e0149", + "9348f5a49e259cdf682126071a03a079bf8de825f4448d6fa49f25cf67e6b108", + "81f3cd345125b1d5a10073ce7135878645a6f189ecb84e767c3639ae15094d20" ], "opening": "00000000000000000000000000000000", "prefix_proofs": [ { "elements": [ - "ca78a47f4f21d3a3844f5f22ab4009b93266c509352f292e5810fd7aaf496e8f", - "d4b25f87d2f8b2da45507e3e67cbcc077a1e943360b3672381b561af7220b605" + "5ff0503db7918aaba3bf77df71fda1fd6c7ae5f4e399adf3ef28b7454d3a5573", + "412147cbe85150828a6f85dec172d270a00adb414db77a75707edada6e94deaa" ], - "encoding": "01023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee2d653e8455702ff9c50aa1b4a85682304abb565e7c4bab27e66ba505da7863c39020002ca78a47f4f21d3a3844f5f22ab4009b93266c509352f292e5810fd7aaf496e8fd4b25f87d2f8b2da45507e3e67cbcc077a1e943360b3672381b561af7220b605", + "encoding": "01023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee237aacefbfd5fd67e764051f960a670564bb90bf27abc5986fb1be9a65f9fee530200025ff0503db7918aaba3bf77df71fda1fd6c7ae5f4e399adf3ef28b7454d3a5573412147cbe85150828a6f85dec172d270a00adb414db77a75707edada6e94deaa", "results": [ { "depth": 2, "leaf": { - "commitment": "d653e8455702ff9c50aa1b4a85682304abb565e7c4bab27e66ba505da7863c39", + "commitment": "37aacefbfd5fd67e764051f960a670564bb90bf27abc5986fb1be9a65f9fee53", "vrf_output": "3ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee2" }, "result_type": 2 @@ -1555,15 +1555,15 @@ }, { "elements": [ - "ca78a47f4f21d3a3844f5f22ab4009b93266c509352f292e5810fd7aaf496e8f", - "384c0df02b4ec29aa0ffcff597ccee304dd5c5712a8bb67c0816ae7b360c44de" + "5ff0503db7918aaba3bf77df71fda1fd6c7ae5f4e399adf3ef28b7454d3a5573", + "4e5b466713d5ad51789ba2ca0652737073279410684eb8b4131b4d352159f29e" ], - "encoding": "01023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee2d653e8455702ff9c50aa1b4a85682304abb565e7c4bab27e66ba505da7863c39020002ca78a47f4f21d3a3844f5f22ab4009b93266c509352f292e5810fd7aaf496e8f384c0df02b4ec29aa0ffcff597ccee304dd5c5712a8bb67c0816ae7b360c44de", + "encoding": "01023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee237aacefbfd5fd67e764051f960a670564bb90bf27abc5986fb1be9a65f9fee530200025ff0503db7918aaba3bf77df71fda1fd6c7ae5f4e399adf3ef28b7454d3a55734e5b466713d5ad51789ba2ca0652737073279410684eb8b4131b4d352159f29e", "results": [ { "depth": 2, "leaf": { - "commitment": "d653e8455702ff9c50aa1b4a85682304abb565e7c4bab27e66ba505da7863c39", + "commitment": "37aacefbfd5fd67e764051f960a670564bb90bf27abc5986fb1be9a65f9fee53", "vrf_output": "3ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee2" }, "result_type": 2 @@ -1572,15 +1572,15 @@ }, { "elements": [ - "6619da7a135a572e42a91ea8ecceecdda3170991bca86c00b68bd79d6cead471", - "384c0df02b4ec29aa0ffcff597ccee304dd5c5712a8bb67c0816ae7b360c44de" + "d664416d1270e45bc1b82a7ee626c70212d8174881f6dde994fa0367b45b2068", + "4e5b466713d5ad51789ba2ca0652737073279410684eb8b4131b4d352159f29e" ], - "encoding": "01023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee2d653e8455702ff9c50aa1b4a85682304abb565e7c4bab27e66ba505da7863c390200026619da7a135a572e42a91ea8ecceecdda3170991bca86c00b68bd79d6cead471384c0df02b4ec29aa0ffcff597ccee304dd5c5712a8bb67c0816ae7b360c44de", + "encoding": "01023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee237aacefbfd5fd67e764051f960a670564bb90bf27abc5986fb1be9a65f9fee53020002d664416d1270e45bc1b82a7ee626c70212d8174881f6dde994fa0367b45b20684e5b466713d5ad51789ba2ca0652737073279410684eb8b4131b4d352159f29e", "results": [ { "depth": 2, "leaf": { - "commitment": "d653e8455702ff9c50aa1b4a85682304abb565e7c4bab27e66ba505da7863c39", + "commitment": "37aacefbfd5fd67e764051f960a670564bb90bf27abc5986fb1be9a65f9fee53", "vrf_output": "3ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee2" }, "result_type": 2 @@ -1589,11 +1589,11 @@ } ], "prefix_roots": [], - "response": "0200000000000000070040fcc65ee84abfc95b7a22b60e52901b36564c15c8eeacf3209f84f52e1ec906c3d581117eb508646069dd6c7856b757f62b5e0dac7ea380a5bd397a962ae11c0d000000000000000000000000000000000000000000000000014b04fea1cc97b5612a9cf074b619ab597e884754382b924f15782338f5758f3ced2ac7fcc0b4bd528d2101f7046d3fadb9735b459544ac75f8bc1bca20b4ae2f7ddeef21639ba2ea2b195d2a3879ae0f00030000019fb33eee180000019fb33eee180000019fb33eee190301023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee2d653e8455702ff9c50aa1b4a85682304abb565e7c4bab27e66ba505da7863c39020002ca78a47f4f21d3a3844f5f22ab4009b93266c509352f292e5810fd7aaf496e8fd4b25f87d2f8b2da45507e3e67cbcc077a1e943360b3672381b561af7220b60501023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee2d653e8455702ff9c50aa1b4a85682304abb565e7c4bab27e66ba505da7863c39020002ca78a47f4f21d3a3844f5f22ab4009b93266c509352f292e5810fd7aaf496e8f384c0df02b4ec29aa0ffcff597ccee304dd5c5712a8bb67c0816ae7b360c44de01023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee2d653e8455702ff9c50aa1b4a85682304abb565e7c4bab27e66ba505da7863c390200026619da7a135a572e42a91ea8ecceecdda3170991bca86c00b68bd79d6cead471384c0df02b4ec29aa0ffcff597ccee304dd5c5712a8bb67c0816ae7b360c44de000003cf725b6dc8700c22020cc803ab73804450ef35fff86cc291c833c0b60c64be85b8550bffd118a9f0ccc0a9cfb3ba15c173ca95a355f00f1639a58579c8471b38fa223df6756d29841d2229a47b48d8bc6371cf9a0ddb632ed38a4096b8bd9a0c", + "response": "0200000000000000070040f59e6bf1097aca680fa058734ea73d485c7f6736479734a8da0394dd1548ddde997389bb6b5a0104a54ee5a32a214bd906c3b0e65a898ed1a60c45f06e690e00000000000000000000000000000000000000000000000000014b04fea1cc97b5612a9cf074b619ab597e884754382b924f15782338f5758f3ced2ac7fcc0b4bd528d2101f7046d3fadb9735b459544ac75f8bc1bca20b4ae2f7ddeef21639ba2ea2b195d2a3879ae0f00030000019fb36a0e1e0000019fb36a0e1e0000019fb36a0e1f0301023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee237aacefbfd5fd67e764051f960a670564bb90bf27abc5986fb1be9a65f9fee530200025ff0503db7918aaba3bf77df71fda1fd6c7ae5f4e399adf3ef28b7454d3a5573412147cbe85150828a6f85dec172d270a00adb414db77a75707edada6e94deaa01023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee237aacefbfd5fd67e764051f960a670564bb90bf27abc5986fb1be9a65f9fee530200025ff0503db7918aaba3bf77df71fda1fd6c7ae5f4e399adf3ef28b7454d3a55734e5b466713d5ad51789ba2ca0652737073279410684eb8b4131b4d352159f29e01023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee237aacefbfd5fd67e764051f960a670564bb90bf27abc5986fb1be9a65f9fee53020002d664416d1270e45bc1b82a7ee626c70212d8174881f6dde994fa0367b45b20684e5b466713d5ad51789ba2ca0652737073279410684eb8b4131b4d352159f29e00000329c134db2a33008bf89b67615fcf83440dceaa06e939accb4e0f6112320e01499348f5a49e259cdf682126071a03a079bf8de825f4448d6fa49f25cf67e6b10881f3cd345125b1d5a10073ce7135878645a6f189ecb84e767c3639ae15094d20", "timestamps": [ - 1785418673688, - 1785418673688, - 1785418673689 + 1785421499934, + 1785421499934, + 1785421499935 ], "tree_size": 7, "version": 0 @@ -1603,13 +1603,13 @@ "name": "fixed-version-above-the-greatest", "input": { "entry_timestamps": [ - 1785418673689, - 1785418673689, - 1785418673690, - 1785418673690, - 1785418673690, - 1785418673690, - 1785418673690 + 1785421499935, + 1785421499935, + 1785421499936, + 1785421499936, + 1785421499936, + 1785421499936, + 1785421499936 ], "label": "616c696365406578616d706c652e636f6d", "max_ahead": 10000, @@ -1686,15 +1686,15 @@ "expect": { "binary_ladder": [ { - "commitment": "2ff9c55e5dadd1324bd01d0e79a5ec98e764449b6cb1e92123ff3c14cfd07ce6", + "commitment": "57d7459bf8b02fb74c0fdc279efb9cff96b36ae282f35987e7a1b1c823fbf106", "proof": "f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f00" }, { - "commitment": "7c602fe1bf456a6882a45809919f531581e8e62e29fae92272e53f6907c18f91", + "commitment": "b36f7273808a84494fa91217674bcb36ad7b9eae136e6c90d1ac57a3c8fadd8e", "proof": "414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02" }, { - "commitment": "3791f33127ec2c2b5762450a25a43b690e90c23449011da3f393ccb36dcf1bb6", + "commitment": "76d4477caaac295e33267365b6653e4aa57827d615110d875e523696285c81af", "proof": "783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c" }, { @@ -1731,20 +1731,20 @@ "proof": "88d1e8277e88abf08a92eda5845d19af3f41bf8af907dfa823e26f5e1b2a5abf254e197a5f52cbaa4c183fbdbef46551aed90df5c61b7e17a31afef8fc2b84c876c0e5b49f07a87ff054a51854229e0b" } ], - "full_tree_head": "02000000000000000700406b47121762115fa6c5689c2f7501642cbba9fc46104cb08c8792c173ec47f9d3b41e3273972b0ae74da9752c7be3b1e4efe72df9a4d3b994a2d91322fbfdf002", + "full_tree_head": "02000000000000000700404fe3bcb2779d8db300dd3af43c6988aa6aefa5e309db79bcad5ff3828c6b138d46095d8ad55ff591d553d8d6e51bfe59478ec930f7b4c72bcf2b53db1b19c900", "inclusion": [ - "fa607ef2305c393b6c97263a07bb4fcf4278b90edf32780e198e6b04ce0ce90b", - "5e599667a87d052ebb668e18f38958f8fcbeb7a4f701178439c4575820110926", - "4d6764d792741cc3839a89780d69a00b7d7bcd8977953aa191363fdcb4b27985" + "fb9648f2a5f018bef3493eb8cf987fc7d4410c7c08b5c55baccca160f49cfbbc", + "b7dfa3c62beb9dc3438552d4ef522cd231147e8690e6c427efdd82157c5382d8", + "7d025fc063764f4d45f7104b6c6985f9a83dc6b51c703db120590b72743f2173" ], "opening": "00000000000000000000000000000000", "prefix_proofs": [ { "elements": [ - "f4bc4f0153ee7ee5a95c44f6a219cdc3f4f48ff5943af58058ed2c44cba66371", + "12c6a658da8b54e25bcef8d7039c50b93f67840cf951250153506af0eb839ca1", "0000000000000000000000000000000000000000000000000000000000000000" ], - "encoding": "0401040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f7c602fe1bf456a6882a45809919f531581e8e62e29fae92272e53f6907c18f91020002f4bc4f0153ee7ee5a95c44f6a219cdc3f4f48ff5943af58058ed2c44cba663710000000000000000000000000000000000000000000000000000000000000000", + "encoding": "0401040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7fb36f7273808a84494fa91217674bcb36ad7b9eae136e6c90d1ac57a3c8fadd8e02000212c6a658da8b54e25bcef8d7039c50b93f67840cf951250153506af0eb839ca10000000000000000000000000000000000000000000000000000000000000000", "results": [ { "depth": 4, @@ -1761,7 +1761,7 @@ { "depth": 2, "leaf": { - "commitment": "7c602fe1bf456a6882a45809919f531581e8e62e29fae92272e53f6907c18f91", + "commitment": "b36f7273808a84494fa91217674bcb36ad7b9eae136e6c90d1ac57a3c8fadd8e", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -1770,16 +1770,16 @@ }, { "elements": [ - "f4bc4f0153ee7ee5a95c44f6a219cdc3f4f48ff5943af58058ed2c44cba66371", - "a91d52d10a1063d833141cf23afcc675e978d867fddc642d4a075a203688e8b0", - "6099760a79f3fc178445591784feb5fab958bba08721131ec1bd92d1b68da08c" + "12c6a658da8b54e25bcef8d7039c50b93f67840cf951250153506af0eb839ca1", + "482c93c26a12d9f1b3752f66434846fbcdc4929acfe68e8f19c91418d5e00f43", + "5c75cad38a5d55da0fa46abeb8ae37a4bc9a2325a8765f3a77ff1585af148c45" ], - "encoding": "01028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8a937554698bfa4c0c31a4f474bbbd64479b52388fd8b23f8925bf5f307584b1f030003f4bc4f0153ee7ee5a95c44f6a219cdc3f4f48ff5943af58058ed2c44cba66371a91d52d10a1063d833141cf23afcc675e978d867fddc642d4a075a203688e8b06099760a79f3fc178445591784feb5fab958bba08721131ec1bd92d1b68da08c", + "encoding": "01028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba82afc2cc68ea4cad0cf5774f1f14e19edccda09e511aa9f932f7c5034462fbb7d03000312c6a658da8b54e25bcef8d7039c50b93f67840cf951250153506af0eb839ca1482c93c26a12d9f1b3752f66434846fbcdc4929acfe68e8f19c91418d5e00f435c75cad38a5d55da0fa46abeb8ae37a4bc9a2325a8765f3a77ff1585af148c45", "results": [ { "depth": 3, "leaf": { - "commitment": "a937554698bfa4c0c31a4f474bbbd64479b52388fd8b23f8925bf5f307584b1f", + "commitment": "2afc2cc68ea4cad0cf5774f1f14e19edccda09e511aa9f932f7c5034462fbb7d", "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, "result_type": 2 @@ -1788,16 +1788,16 @@ }, { "elements": [ - "e828bdc459cb4341c6579ba6da29cd1be9c317b084aeff9655f3ab2bddf0fabd", - "a91d52d10a1063d833141cf23afcc675e978d867fddc642d4a075a203688e8b0", - "6099760a79f3fc178445591784feb5fab958bba08721131ec1bd92d1b68da08c" + "e7e6934aef1e2db4b7323c7a52d0e9c9f05e86405274bcc75f8d3815b4612f23", + "482c93c26a12d9f1b3752f66434846fbcdc4929acfe68e8f19c91418d5e00f43", + "5c75cad38a5d55da0fa46abeb8ae37a4bc9a2325a8765f3a77ff1585af148c45" ], - "encoding": "01028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8a937554698bfa4c0c31a4f474bbbd64479b52388fd8b23f8925bf5f307584b1f030003e828bdc459cb4341c6579ba6da29cd1be9c317b084aeff9655f3ab2bddf0fabda91d52d10a1063d833141cf23afcc675e978d867fddc642d4a075a203688e8b06099760a79f3fc178445591784feb5fab958bba08721131ec1bd92d1b68da08c", + "encoding": "01028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba82afc2cc68ea4cad0cf5774f1f14e19edccda09e511aa9f932f7c5034462fbb7d030003e7e6934aef1e2db4b7323c7a52d0e9c9f05e86405274bcc75f8d3815b4612f23482c93c26a12d9f1b3752f66434846fbcdc4929acfe68e8f19c91418d5e00f435c75cad38a5d55da0fa46abeb8ae37a4bc9a2325a8765f3a77ff1585af148c45", "results": [ { "depth": 3, "leaf": { - "commitment": "a937554698bfa4c0c31a4f474bbbd64479b52388fd8b23f8925bf5f307584b1f", + "commitment": "2afc2cc68ea4cad0cf5774f1f14e19edccda09e511aa9f932f7c5034462fbb7d", "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, "result_type": 2 @@ -1806,11 +1806,11 @@ } ], "prefix_roots": [], - "response": "02000000000000000700406b47121762115fa6c5689c2f7501642cbba9fc46104cb08c8792c173ec47f9d3b41e3273972b0ae74da9752c7be3b1e4efe72df9a4d3b994a2d91322fbfdf00200000000000000000000000000000000000000000ef73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f00012ff9c55e5dadd1324bd01d0e79a5ec98e764449b6cb1e92123ff3c14cfd07ce6414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02017c602fe1bf456a6882a45809919f531581e8e62e29fae92272e53f6907c18f91783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c013791f33127ec2c2b5762450a25a43b690e90c23449011da3f393ccb36dcf1bb626fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e12340900cf636870256740d131679b75ea70fa702484e540aa0726388bb4230375e42257677d0ff5e3cf23b89a5d5586c9a94f5a76e0db1ddd7a0367eff6becff84e76eb5fe9a93ab52ab62f87ac9656045d6d0800117b66dd3181cf66d4befac10367af86f0aa7ab8871e4cf30b7d4fb668de0d37b9616e24cfd59c2c65545cbbd5443f979cab3be8cad670e7d447167c3d89b90cd083619aa8622495e051d303edb0530800f54a973311b6389a28d86c4c87b203878d2338a7f675393cfa34d618e5cc1a732c10fe6ef0f9729b4c70fc76ab7c1b88829c3e7b1ee5694deef66f5f3a8b5c7fefa7020fc2f24dd3c15b316481a1810a00abf32099de0caf8c5668ed21a3142cce52c18f3e0bb08bcdd29caaee99724b684a9f22c2eb1d96642b58ce4779e1ae0e0f79cc40ac238f7dfbf03e3237b7fd0b34cc646c00af357602492d3296159a0f0064c8e70f0274648ca71b1cb8f3c8ecd2b6ab069d88cc1f2e27e1091f3f44ac0c4ab15c83291054b13718c67ce8334c1141cda608de400e38fa83cb1cad519660d1fa658459baf1bc53c09d212f039f0100f3aff4b58e665ae2e852d5eff30b229f03f313215b252840241a29528db5ae16ed46cc997c4d6bb1d4f862603dfa5497a779b00177680b65e9e3e75a6f39dab809ec338a1e937972e333130daee8330000f639adb88a3956e7a2da5a8b3138822d2984d6fae67eb9f9739f985cd21f374436bb1026287a3fa88b240ab2114d68c37cc44e613b6e6dce4d611f054fac57704f34fdc7d859367c576d0b645edaee0700ea6abd52971f74dee0f79161f834db0f52ef756677f4e11693d5fe62c336ea88f6b0152a24ae6c185663dedad018c59b7260227fbc527878d4138ba0820b2e289bcc999b23b465610434118c76a0c00300666320da4627b99540fc48cb74a739121f3ec99a8d2a92db9ed4fd1c898a2a185dc3aad160be2c5eb836120f56d94f5153a80b5f46d428750cab730a0329ffd115daf0ff31c18fb551db05fe96064a070088d1e8277e88abf08a92eda5845d19af3f41bf8af907dfa823e26f5e1b2a5abf254e197a5f52cbaa4c183fbdbef46551aed90df5c61b7e17a31afef8fc2b84c876c0e5b49f07a87ff054a51854229e0b00030000019fb33eee1a0000019fb33eee1a0000019fb33eee1a030401040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f7c602fe1bf456a6882a45809919f531581e8e62e29fae92272e53f6907c18f91020002f4bc4f0153ee7ee5a95c44f6a219cdc3f4f48ff5943af58058ed2c44cba66371000000000000000000000000000000000000000000000000000000000000000001028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8a937554698bfa4c0c31a4f474bbbd64479b52388fd8b23f8925bf5f307584b1f030003f4bc4f0153ee7ee5a95c44f6a219cdc3f4f48ff5943af58058ed2c44cba66371a91d52d10a1063d833141cf23afcc675e978d867fddc642d4a075a203688e8b06099760a79f3fc178445591784feb5fab958bba08721131ec1bd92d1b68da08c01028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8a937554698bfa4c0c31a4f474bbbd64479b52388fd8b23f8925bf5f307584b1f030003e828bdc459cb4341c6579ba6da29cd1be9c317b084aeff9655f3ab2bddf0fabda91d52d10a1063d833141cf23afcc675e978d867fddc642d4a075a203688e8b06099760a79f3fc178445591784feb5fab958bba08721131ec1bd92d1b68da08c000003fa607ef2305c393b6c97263a07bb4fcf4278b90edf32780e198e6b04ce0ce90b5e599667a87d052ebb668e18f38958f8fcbeb7a4f701178439c45758201109264d6764d792741cc3839a89780d69a00b7d7bcd8977953aa191363fdcb4b27985", + "response": "02000000000000000700404fe3bcb2779d8db300dd3af43c6988aa6aefa5e309db79bcad5ff3828c6b138d46095d8ad55ff591d553d8d6e51bfe59478ec930f7b4c72bcf2b53db1b19c90000000000000000000000000000000000000000000ef73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f000157d7459bf8b02fb74c0fdc279efb9cff96b36ae282f35987e7a1b1c823fbf106414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf0201b36f7273808a84494fa91217674bcb36ad7b9eae136e6c90d1ac57a3c8fadd8e783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c0176d4477caaac295e33267365b6653e4aa57827d615110d875e523696285c81af26fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e12340900cf636870256740d131679b75ea70fa702484e540aa0726388bb4230375e42257677d0ff5e3cf23b89a5d5586c9a94f5a76e0db1ddd7a0367eff6becff84e76eb5fe9a93ab52ab62f87ac9656045d6d0800117b66dd3181cf66d4befac10367af86f0aa7ab8871e4cf30b7d4fb668de0d37b9616e24cfd59c2c65545cbbd5443f979cab3be8cad670e7d447167c3d89b90cd083619aa8622495e051d303edb0530800f54a973311b6389a28d86c4c87b203878d2338a7f675393cfa34d618e5cc1a732c10fe6ef0f9729b4c70fc76ab7c1b88829c3e7b1ee5694deef66f5f3a8b5c7fefa7020fc2f24dd3c15b316481a1810a00abf32099de0caf8c5668ed21a3142cce52c18f3e0bb08bcdd29caaee99724b684a9f22c2eb1d96642b58ce4779e1ae0e0f79cc40ac238f7dfbf03e3237b7fd0b34cc646c00af357602492d3296159a0f0064c8e70f0274648ca71b1cb8f3c8ecd2b6ab069d88cc1f2e27e1091f3f44ac0c4ab15c83291054b13718c67ce8334c1141cda608de400e38fa83cb1cad519660d1fa658459baf1bc53c09d212f039f0100f3aff4b58e665ae2e852d5eff30b229f03f313215b252840241a29528db5ae16ed46cc997c4d6bb1d4f862603dfa5497a779b00177680b65e9e3e75a6f39dab809ec338a1e937972e333130daee8330000f639adb88a3956e7a2da5a8b3138822d2984d6fae67eb9f9739f985cd21f374436bb1026287a3fa88b240ab2114d68c37cc44e613b6e6dce4d611f054fac57704f34fdc7d859367c576d0b645edaee0700ea6abd52971f74dee0f79161f834db0f52ef756677f4e11693d5fe62c336ea88f6b0152a24ae6c185663dedad018c59b7260227fbc527878d4138ba0820b2e289bcc999b23b465610434118c76a0c00300666320da4627b99540fc48cb74a739121f3ec99a8d2a92db9ed4fd1c898a2a185dc3aad160be2c5eb836120f56d94f5153a80b5f46d428750cab730a0329ffd115daf0ff31c18fb551db05fe96064a070088d1e8277e88abf08a92eda5845d19af3f41bf8af907dfa823e26f5e1b2a5abf254e197a5f52cbaa4c183fbdbef46551aed90df5c61b7e17a31afef8fc2b84c876c0e5b49f07a87ff054a51854229e0b00030000019fb36a0e200000019fb36a0e200000019fb36a0e20030401040102010402a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7fb36f7273808a84494fa91217674bcb36ad7b9eae136e6c90d1ac57a3c8fadd8e02000212c6a658da8b54e25bcef8d7039c50b93f67840cf951250153506af0eb839ca1000000000000000000000000000000000000000000000000000000000000000001028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba82afc2cc68ea4cad0cf5774f1f14e19edccda09e511aa9f932f7c5034462fbb7d03000312c6a658da8b54e25bcef8d7039c50b93f67840cf951250153506af0eb839ca1482c93c26a12d9f1b3752f66434846fbcdc4929acfe68e8f19c91418d5e00f435c75cad38a5d55da0fa46abeb8ae37a4bc9a2325a8765f3a77ff1585af148c4501028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba82afc2cc68ea4cad0cf5774f1f14e19edccda09e511aa9f932f7c5034462fbb7d030003e7e6934aef1e2db4b7323c7a52d0e9c9f05e86405274bcc75f8d3815b4612f23482c93c26a12d9f1b3752f66434846fbcdc4929acfe68e8f19c91418d5e00f435c75cad38a5d55da0fa46abeb8ae37a4bc9a2325a8765f3a77ff1585af148c45000003fb9648f2a5f018bef3493eb8cf987fc7d4410c7c08b5c55baccca160f49cfbbcb7dfa3c62beb9dc3438552d4ef522cd231147e8690e6c427efdd82157c5382d87d025fc063764f4d45f7104b6c6985f9a83dc6b51c703db120590b72743f2173", "timestamps": [ - 1785418673690, - 1785418673690, - 1785418673690 + 1785421499936, + 1785421499936, + 1785421499936 ], "tree_size": 7 } @@ -1819,13 +1819,13 @@ "name": "fixed-version-with-expired-entries", "input": { "entry_timestamps": [ - 1785418673693, - 1785418673794, - 1785418673895, - 1785418673997, - 1785418674098, - 1785418674200, - 1785418674302 + 1785421499939, + 1785421500040, + 1785421500140, + 1785421500242, + 1785421500343, + 1785421500444, + 1785421500546 ], "label": "616c696365406578616d706c652e636f6d", "max_ahead": 10000, @@ -1902,15 +1902,15 @@ "expect": { "binary_ladder": [ { - "commitment": "4379c4bcfa42de1445791f7b7f4b3a4f7bd9f1826af656e6e23dacb28d01b1fe", + "commitment": "b3333f78d504cf686b3524f63872e928390b278bbfc37052ef6c16fc806bbfa4", "proof": "f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f00" }, { - "commitment": "caeba53ff3e1aafe988644a911624171d2140cae8719fde18c92280810773d56", + "commitment": "35b620cd962f149ccbf545e4ef40bdf1a448c5252a63e803b8c5b43f3d0c383d", "proof": "414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02" }, { - "commitment": "865175f21dbfc6a31962e0b3cfd4d021bb56b0ec406dd5704592aff27fd9de4d", + "commitment": "625d9fcbc4e2a68c0b0ec6d4a5ff88975ca50cfc949511ad0491b62799fc15cc", "proof": "783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c" }, { @@ -1923,22 +1923,22 @@ "proof": "79f3efd60d574baf99ba8351653f86889db173fc5321dbf9738f1fbb84e5fd442f8b21447179087c71097be04beecb9954b83f1c2e3e7346743de7e75ee452a0f1295f7844782688166c0e4c3ea7330a" } ], - "full_tree_head": "02000000000000000700400d73b0a68a0b618e537250f33aa33aa723e9102ff4c615480ac9b1449e4f1feb4bfe31aab1227ab9fc026e342c544a2fa52a1f049d128fab366621bedafcca0d", + "full_tree_head": "0200000000000000070040003a8a8778f8af030d6654d6ea403f3f49a4f5b3bb76ef5837ed18efb1ccd8acf4f189e690574c09c5b7eb0e3b5ffacfe0131be3ad2a335eb7cdef6d9574900e", "inclusion": [ - "2bc60f1c5b2f22e4d6348f3bbbef916d188a6fbf2a5052da869f27dc168510ef", - "7d08cc11b2a065cd92d250da161538b707b6fc1840c26cca4bdc7e364a0a0be0", - "23858d1b898bb6d1eea6b34e7a7c71f13f3ca888585ead8647607316a2b0fef4" + "22c79611e933f85de71463b03332f4f74c894d4be8c3bff2c21c84017f5fdd71", + "7dce264d90b5d054945173227ed938b7266c02cd6005392be1457b134d8667df", + "ea384ba6cdbed264d30d64f2673a7237243454bdc0adaa81f5abf71d1ec8c3e4" ], - "opening": "835275a9f077864e5108b58f349c1ac5", + "opening": "b44c01518e2bfc3ac2b5cbaf82f8aaf0", "prefix_proofs": [ { "elements": [ - "4f24446795d661815cc72b9fb6ef8d0a5bb98a72a45ec017c8687170a549dc95", + "c9ecb283547022d8820d8263d8215d4cf1423b1c4b0b09ee4a90af6017dd07f3", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", - "f4b175e9b3af54ac64edbcb21fbb254eb531ee148d90b9de21504c5cc6965de5" + "dddc1150628b70157a8f76dbe7e302e672a7939e34422dfc7c8381b6d90b1e14" ], - "encoding": "06010601030104028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba87f0c5387a7b8a689d55c2d1f5f4e81abe72e66934ac8bae3f18e7deb4da43b5f0301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e458ea5ee1fc41802dd2efcbf172b6a99f5e51162e64a6b0bb8959c5e051c10ac060200044f24446795d661815cc72b9fb6ef8d0a5bb98a72a45ec017c8687170a549dc9500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4b175e9b3af54ac64edbcb21fbb254eb531ee148d90b9de21504c5cc6965de5", + "encoding": "06010601030104028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8e7579a88e28b0b67da3ec8cfa69b09a7ee74d856731c46a26587c62f1b2cdcec0301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e4539ad0753c18737d9153f1f2a899dd83227c5f6f872b8366a001bd792f1518461020004c9ecb283547022d8820d8263d8215d4cf1423b1c4b0b09ee4a90af6017dd07f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dddc1150628b70157a8f76dbe7e302e672a7939e34422dfc7c8381b6d90b1e14", "results": [ { "depth": 6, @@ -1955,7 +1955,7 @@ { "depth": 3, "leaf": { - "commitment": "7f0c5387a7b8a689d55c2d1f5f4e81abe72e66934ac8bae3f18e7deb4da43b5f", + "commitment": "e7579a88e28b0b67da3ec8cfa69b09a7ee74d856731c46a26587c62f1b2cdcec", "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, "result_type": 2 @@ -1967,7 +1967,7 @@ { "depth": 2, "leaf": { - "commitment": "8ea5ee1fc41802dd2efcbf172b6a99f5e51162e64a6b0bb8959c5e051c10ac06", + "commitment": "39ad0753c18737d9153f1f2a899dd83227c5f6f872b8366a001bd792f1518461", "vrf_output": "49ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45" }, "result_type": 2 @@ -1976,14 +1976,14 @@ } ], "prefix_roots": [ - "adfb031425bbeebb838db1d5170f9c7bcad826d2364d5a4ba6fd8ab0698dd99c", - "c52d0743c95edaea555e3363f1c1f647257c3b7bd68ad476c2a98938213ddb5e" + "7b51e9df30dd6c4e5d6dfdfbb85c76201d2346ba2640e61af5fceba7f212aa8a", + "88dd1d6dc550e18abc80ba593faece12b42850171b61f851e922514b2848efe5" ], - "response": "02000000000000000700400d73b0a68a0b618e537250f33aa33aa723e9102ff4c615480ac9b1449e4f1feb4bfe31aab1227ab9fc026e342c544a2fa52a1f049d128fab366621bedafcca0d835275a9f077864e5108b58f349c1ac500000007616c6963652d3606f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f00014379c4bcfa42de1445791f7b7f4b3a4f7bd9f1826af656e6e23dacb28d01b1fe414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf0201caeba53ff3e1aafe988644a911624171d2140cae8719fde18c92280810773d56783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c01865175f21dbfc6a31962e0b3cfd4d021bb56b0ec406dd5704592aff27fd9de4d26fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e12340900e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f6030079f3efd60d574baf99ba8351653f86889db173fc5321dbf9738f1fbb84e5fd442f8b21447179087c71097be04beecb9954b83f1c2e3e7346743de7e75ee452a0f1295f7844782688166c0e4c3ea7330a00030000019fb33eef4d0000019fb33ef0180000019fb33ef07e0106010601030104028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba87f0c5387a7b8a689d55c2d1f5f4e81abe72e66934ac8bae3f18e7deb4da43b5f0301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e458ea5ee1fc41802dd2efcbf172b6a99f5e51162e64a6b0bb8959c5e051c10ac060200044f24446795d661815cc72b9fb6ef8d0a5bb98a72a45ec017c8687170a549dc9500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4b175e9b3af54ac64edbcb21fbb254eb531ee148d90b9de21504c5cc6965de502adfb031425bbeebb838db1d5170f9c7bcad826d2364d5a4ba6fd8ab0698dd99cc52d0743c95edaea555e3363f1c1f647257c3b7bd68ad476c2a98938213ddb5e00032bc60f1c5b2f22e4d6348f3bbbef916d188a6fbf2a5052da869f27dc168510ef7d08cc11b2a065cd92d250da161538b707b6fc1840c26cca4bdc7e364a0a0be023858d1b898bb6d1eea6b34e7a7c71f13f3ca888585ead8647607316a2b0fef4", + "response": "0200000000000000070040003a8a8778f8af030d6654d6ea403f3f49a4f5b3bb76ef5837ed18efb1ccd8acf4f189e690574c09c5b7eb0e3b5ffacfe0131be3ad2a335eb7cdef6d9574900eb44c01518e2bfc3ac2b5cbaf82f8aaf000000007616c6963652d3606f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f0001b3333f78d504cf686b3524f63872e928390b278bbfc37052ef6c16fc806bbfa4414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf020135b620cd962f149ccbf545e4ef40bdf1a448c5252a63e803b8c5b43f3d0c383d783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c01625d9fcbc4e2a68c0b0ec6d4a5ff88975ca50cfc949511ad0491b62799fc15cc26fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e12340900e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f6030079f3efd60d574baf99ba8351653f86889db173fc5321dbf9738f1fbb84e5fd442f8b21447179087c71097be04beecb9954b83f1c2e3e7346743de7e75ee452a0f1295f7844782688166c0e4c3ea7330a00030000019fb36a0f520000019fb36a101c0000019fb36a10820106010601030104028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8e7579a88e28b0b67da3ec8cfa69b09a7ee74d856731c46a26587c62f1b2cdcec0301030249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e4539ad0753c18737d9153f1f2a899dd83227c5f6f872b8366a001bd792f1518461020004c9ecb283547022d8820d8263d8215d4cf1423b1c4b0b09ee4a90af6017dd07f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dddc1150628b70157a8f76dbe7e302e672a7939e34422dfc7c8381b6d90b1e14027b51e9df30dd6c4e5d6dfdfbb85c76201d2346ba2640e61af5fceba7f212aa8a88dd1d6dc550e18abc80ba593faece12b42850171b61f851e922514b2848efe5000322c79611e933f85de71463b03332f4f74c894d4be8c3bff2c21c84017f5fdd717dce264d90b5d054945173227ed938b7266c02cd6005392be1457b134d8667dfea384ba6cdbed264d30d64f2673a7237243454bdc0adaa81f5abf71d1ec8c3e4", "timestamps": [ - 1785418673997, - 1785418674200, - 1785418674302 + 1785421500242, + 1785421500444, + 1785421500546 ], "tree_size": 7 } @@ -1992,13 +1992,13 @@ "name": "fixed-version-expired-target", "input": { "entry_timestamps": [ - 1785418674311, - 1785418674412, - 1785418674514, - 1785418674616, - 1785418674717, - 1785418674819, - 1785418674921 + 1785421500548, + 1785421500649, + 1785421500751, + 1785421500852, + 1785421500954, + 1785421501055, + 1785421501157 ], "label": "616c696365406578616d706c652e636f6d", "max_ahead": 10000, @@ -2080,13 +2080,13 @@ "name": "greatest-version-with-expired-entries", "input": { "entry_timestamps": [ - 1785418674927, - 1785418675028, - 1785418675131, - 1785418675233, - 1785418675334, - 1785418675436, - 1785418675539 + 1785421501158, + 1785421501260, + 1785421501361, + 1785421501462, + 1785421501564, + 1785421501665, + 1785421501767 ], "label": "616c696365406578616d706c652e636f6d", "max_ahead": 10000, @@ -2162,46 +2162,46 @@ "expect": { "binary_ladder": [ { - "commitment": "e00aea4b37b2f88815254fba513d021150bbc19ff6bf0745a4ffeba998cf15f6", + "commitment": "ac3dc794d894a2af5b4022741c034ecbc9d30345af44d4b81b393ae5b4fc5347", "proof": "f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f00" }, { - "commitment": "ffc7333842a16a415f80fcb840d96202e50909d8f02850979a72df1da6c41a81", + "commitment": "9a70f05f6c110d87718749d218abe61d741609bd442bea1d32cad08ec7786785", "proof": "414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02" }, { - "commitment": "89c06d236a2bdfabd412ae2cb9a998697f0b33f95b73f0e38a8f69046d7b3feb", + "commitment": "9091c1499bd91845ffc2cf460f6129111f41ae66b96fdc08cd5fcacae8a9d63c", "proof": "783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c" }, { "proof": "26fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e123409" }, { - "commitment": "5ae3c5fbb101a599424fd26f641dd8902eda46960bbb4655844f0b5eddf9cbc9", + "commitment": "a10b9e3431d41736b97329aecb79fbd1dfc8274f51feb0e191c77541bdaca5a2", "proof": "e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f603" }, { "proof": "79f3efd60d574baf99ba8351653f86889db173fc5321dbf9738f1fbb84e5fd442f8b21447179087c71097be04beecb9954b83f1c2e3e7346743de7e75ee452a0f1295f7844782688166c0e4c3ea7330a" } ], - "full_tree_head": "020000000000000007004096f2c9988d3a13b8acaa75b8ecd4318bcfe334a67a248f299add4c3cc203540cd5a027bd4829d5ee2a0707f02e2d5a1639703267266409b36931acc8f5233707", + "full_tree_head": "020000000000000007004092066fdb660a01dfa8161063c7db13b52a68d388f3c1cfbf18a33e4eac81466aecf23a9f7ba2d0107210aafc786e5495d384cdab2eef78f3f57f1838cd55b808", "inclusion": [ - "83e662793ec63edfaf9fc45871dfd8cbb260f3aa2b295a686d29d7e81bdb8210", - "48c62cd7bb443a8e6b67ad1f53e0b0ee1842f23ed0f18a8952abefbc7b76a078", - "127fc7003437ebc284512e61b21d0a5d8ca4f419760229a378bcbee39b862b83" + "640bb8ffee74cdc03cf7a8dc56eb952a3143b2cd97f6f4bb374097b42c2fb5e7", + "c0ca7d871a7590e4ea6a9478a8cd665a77ec9b309a6c1ee774be218968f9e74c", + "47f05071522b1f5d558ffba5628654f65c5fe2dca4893d40090d4ad41e6ba7f1" ], - "opening": "0e4dcd0ec7fbcc71f3c19c9f305fabaf", + "opening": "a9e579f92e4cf27efa8676bf21f9bf62", "prefix_proofs": [ { "elements": [ - "977954b1c276f40924d2435fc97fcce6a9c59614e10f6baca043f337cf6278eb", - "b94067ecf75c517fa696ec1f0909b5e5a25ba87a8a5a0f2d5dd80d86b331098f", + "b7d14d0e61b4a6a2e9f2b87cc12934a43eb0414a802f633cc9c9ac1aea2642bd", + "e9552236b6837be95ee871867bd92ccf4adf17307293f2d5b150503846b1feca", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", - "2a0b22b29bc55774b3923a99ab463906493f5f6489b21010a899f67e5c3a1691" + "17880251da9e5393dc126d60e334a24fbb66470b65c67ba8dbf62ac32e4f2e3a" ], - "encoding": "06010601030104028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba85ae3c5fbb101a599424fd26f641dd8902eda46960bbb4655844f0b5eddf9cbc903010301040006977954b1c276f40924d2435fc97fcce6a9c59614e10f6baca043f337cf6278ebb94067ecf75c517fa696ec1f0909b5e5a25ba87a8a5a0f2d5dd80d86b331098f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a0b22b29bc55774b3923a99ab463906493f5f6489b21010a899f67e5c3a1691", + "encoding": "06010601030104028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8a10b9e3431d41736b97329aecb79fbd1dfc8274f51feb0e191c77541bdaca5a203010301040006b7d14d0e61b4a6a2e9f2b87cc12934a43eb0414a802f633cc9c9ac1aea2642bde9552236b6837be95ee871867bd92ccf4adf17307293f2d5b150503846b1feca00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017880251da9e5393dc126d60e334a24fbb66470b65c67ba8dbf62ac32e4f2e3a", "results": [ { "depth": 6, @@ -2218,7 +2218,7 @@ { "depth": 3, "leaf": { - "commitment": "5ae3c5fbb101a599424fd26f641dd8902eda46960bbb4655844f0b5eddf9cbc9", + "commitment": "a10b9e3431d41736b97329aecb79fbd1dfc8274f51feb0e191c77541bdaca5a2", "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, "result_type": 2 @@ -2235,14 +2235,14 @@ } ], "prefix_roots": [ - "0eb43f4e5042d81b083fcf5d51a32c0eb8731de54444821f3d71174170e5256d", - "aab82880169fb23b11059f7b173636f568ad8d9b3eb27c7a68f41e1bc162dd92" + "5742d4e8a54686a65ec49661b769d311705edf230564fa5d2039c993961d83ad", + "c8626a80f920a5717461488bdc2ff96de261f8b066c4fd50280743ac0ca1b9dc" ], - "response": "020000000000000007004096f2c9988d3a13b8acaa75b8ecd4318bcfe334a67a248f299add4c3cc203540cd5a027bd4829d5ee2a0707f02e2d5a1639703267266409b36931acc8f5233707000000060e4dcd0ec7fbcc71f3c19c9f305fabaf00000007616c6963652d3706f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f0001e00aea4b37b2f88815254fba513d021150bbc19ff6bf0745a4ffeba998cf15f6414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf0201ffc7333842a16a415f80fcb840d96202e50909d8f02850979a72df1da6c41a81783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c0189c06d236a2bdfabd412ae2cb9a998697f0b33f95b73f0e38a8f69046d7b3feb26fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e12340900e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f603015ae3c5fbb101a599424fd26f641dd8902eda46960bbb4655844f0b5eddf9cbc979f3efd60d574baf99ba8351653f86889db173fc5321dbf9738f1fbb84e5fd442f8b21447179087c71097be04beecb9954b83f1c2e3e7346743de7e75ee452a0f1295f7844782688166c0e4c3ea7330a00030000019fb33ef4210000019fb33ef4ec0000019fb33ef5530106010601030104028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba85ae3c5fbb101a599424fd26f641dd8902eda46960bbb4655844f0b5eddf9cbc903010301040006977954b1c276f40924d2435fc97fcce6a9c59614e10f6baca043f337cf6278ebb94067ecf75c517fa696ec1f0909b5e5a25ba87a8a5a0f2d5dd80d86b331098f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a0b22b29bc55774b3923a99ab463906493f5f6489b21010a899f67e5c3a1691020eb43f4e5042d81b083fcf5d51a32c0eb8731de54444821f3d71174170e5256daab82880169fb23b11059f7b173636f568ad8d9b3eb27c7a68f41e1bc162dd92000383e662793ec63edfaf9fc45871dfd8cbb260f3aa2b295a686d29d7e81bdb821048c62cd7bb443a8e6b67ad1f53e0b0ee1842f23ed0f18a8952abefbc7b76a078127fc7003437ebc284512e61b21d0a5d8ca4f419760229a378bcbee39b862b83", + "response": "020000000000000007004092066fdb660a01dfa8161063c7db13b52a68d388f3c1cfbf18a33e4eac81466aecf23a9f7ba2d0107210aafc786e5495d384cdab2eef78f3f57f1838cd55b80800000006a9e579f92e4cf27efa8676bf21f9bf6200000007616c6963652d3706f73cf4600d657de46b1c253865fb864c21c61d2f953e0de8783551a320a6ead8db24ada8c88dc61ef91918546bfbcf7a368978fa3fd0be323df12dd9e33158b6030f85a1626f67b9ce76824925638f0001ac3dc794d894a2af5b4022741c034ecbc9d30345af44d4b81b393ae5b4fc5347414bf5100e0e7375962137f3033ad5f665473dc0ef92ae6ee72bc707a4823f18b1ada9796df18a84c12362f3b0c62d3de28c2225f21bcad3800f653155c2b53c174111c6b7b441301e95ad238c2edf02019a70f05f6c110d87718749d218abe61d741609bd442bea1d32cad08ec7786785783c97f3a538e3b5efd329babbfd1b04779837fe3bc02ef1853f1a5c230c9fba2ff677633ff6a6fec42460a0544fa203fd64e801091419ada272aabff336e6be2b78ca81ad48ba56b279a340ace4f90c019091c1499bd91845ffc2cf460f6129111f41ae66b96fdc08cd5fcacae8a9d63c26fa91c612726fab2892d9d4bd0f73d52f623d1e536dd405e66fb3fb6c5cb157ac15cffa6eb16f43f72685f8f9b641d097435b4df6f5e3173987f2cec4d7c7506d20083e4c1037957595afa23e12340900e8064efcdf44e6573edc6fdfb948d4d36439d9e825e1e2d4b8b6ceddb5780bf5cb1207e328983ca5b32ff580ad6a1c96b080d6ee0290932ddb84ff37db88380cd470f7dddbf4e7dda6cc76c74592f60301a10b9e3431d41736b97329aecb79fbd1dfc8274f51feb0e191c77541bdaca5a279f3efd60d574baf99ba8351653f86889db173fc5321dbf9738f1fbb84e5fd442f8b21447179087c71097be04beecb9954b83f1c2e3e7346743de7e75ee452a0f1295f7844782688166c0e4c3ea7330a00030000019fb36a14160000019fb36a14e10000019fb36a15470106010601030104028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8a10b9e3431d41736b97329aecb79fbd1dfc8274f51feb0e191c77541bdaca5a203010301040006b7d14d0e61b4a6a2e9f2b87cc12934a43eb0414a802f633cc9c9ac1aea2642bde9552236b6837be95ee871867bd92ccf4adf17307293f2d5b150503846b1feca00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017880251da9e5393dc126d60e334a24fbb66470b65c67ba8dbf62ac32e4f2e3a025742d4e8a54686a65ec49661b769d311705edf230564fa5d2039c993961d83adc8626a80f920a5717461488bdc2ff96de261f8b066c4fd50280743ac0ca1b9dc0003640bb8ffee74cdc03cf7a8dc56eb952a3143b2cd97f6f4bb374097b42c2fb5e7c0ca7d871a7590e4ea6a9478a8cd665a77ec9b309a6c1ee774be218968f9e74c47f05071522b1f5d558ffba5628654f65c5fe2dca4893d40090d4ad41e6ba7f1", "timestamps": [ - 1785418675233, - 1785418675436, - 1785418675539 + 1785421501462, + 1785421501665, + 1785421501767 ], "tree_size": 7, "version": 6 diff --git a/interop/vectors/tree-head-p256.json b/interop/vectors/tree-head-p256.json new file mode 100644 index 0000000..a1e01f3 --- /dev/null +++ b/interop/vectors/tree-head-p256.json @@ -0,0 +1,222 @@ +{ + "primitive": "tree-head", + "draft": "draft-ietf-keytrans-protocol-05 §11.2, §11.3, §11.4", + "generator": { + "impl": "katie", + "sha": "00da52541f6ae6a7f3905181e2ba9de8ec0d6cdc" + }, + "cipher_suite": 1, + "notes": "Signed tree heads and the configuration every signature covers. `configuration` is the encoded Configuration, `tree_head_tbs` is what the signature is computed over, and `tree_head` is the wire TreeHead. Note the §11.2 reading recorded here: leaf_public_key is emitted only under thirdPartyManagement, which is what katie does and what the draft's prose supports, while the grouped-case reading of the struct would also put it in contactMonitoring -- and keytrans-verification's own notes take that second reading. The two differ by 34 bytes in the Configuration and therefore in every TreeHeadTBS. The negative cases are signatures that must not verify.", + "cases": [ + { + "name": "contact-monitoring-size-1", + "input": { + "max_ahead": 10000, + "max_behind": 10000, + "mode": 1, + "reasonable_monitoring_window": 604800000, + "root": "0101010101010101010101010101010101010101010101010101010101010101", + "signature_public_key": "0424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54", + "tree_size": 1, + "vrf_public_key": "02d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84" + }, + "expect": { + "configuration": "00010100410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d840000000000002710000000000000271000000000240c840000", + "full_tree_head_same": "01", + "full_tree_head_updated": "02000000000000000100406daa2527593c97c96ec1ee2a82ad5f715bf8b39cbfd6407a227b767fad18b409468022840ebb30246d94eb55c3048a8e6161ec831f5fe409ef35c233514670e8", + "signature": "6daa2527593c97c96ec1ee2a82ad5f715bf8b39cbfd6407a227b767fad18b409468022840ebb30246d94eb55c3048a8e6161ec831f5fe409ef35c233514670e8", + "tree_head": "000000000000000100406daa2527593c97c96ec1ee2a82ad5f715bf8b39cbfd6407a227b767fad18b409468022840ebb30246d94eb55c3048a8e6161ec831f5fe409ef35c233514670e8", + "tree_head_tbs": "00010100410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d840000000000002710000000000000271000000000240c84000000000000000000010101010101010101010101010101010101010101010101010101010101010101" + } + }, + { + "name": "contact-monitoring-size-8", + "input": { + "max_ahead": 10000, + "max_behind": 10000, + "mode": 1, + "reasonable_monitoring_window": 604800000, + "root": "0808080808080808080808080808080808080808080808080808080808080808", + "signature_public_key": "0424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54", + "tree_size": 8, + "vrf_public_key": "02d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84" + }, + "expect": { + "configuration": "00010100410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d840000000000002710000000000000271000000000240c840000", + "full_tree_head_same": "01", + "full_tree_head_updated": "0200000000000000080040a656a9ae2ab6f26e5c4b742c9e150c1ea3f32ae1ebf9a130f37c0bc8b38e2c7dcf57bcaf951c13366ffda20b008e7731b349a264c16d398506b66e89ba34b7f8", + "signature": "a656a9ae2ab6f26e5c4b742c9e150c1ea3f32ae1ebf9a130f37c0bc8b38e2c7dcf57bcaf951c13366ffda20b008e7731b349a264c16d398506b66e89ba34b7f8", + "tree_head": "00000000000000080040a656a9ae2ab6f26e5c4b742c9e150c1ea3f32ae1ebf9a130f37c0bc8b38e2c7dcf57bcaf951c13366ffda20b008e7731b349a264c16d398506b66e89ba34b7f8", + "tree_head_tbs": "00010100410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d840000000000002710000000000000271000000000240c84000000000000000000080808080808080808080808080808080808080808080808080808080808080808" + } + }, + { + "name": "contact-monitoring-size-50", + "input": { + "max_ahead": 10000, + "max_behind": 10000, + "mode": 1, + "reasonable_monitoring_window": 604800000, + "root": "3232323232323232323232323232323232323232323232323232323232323232", + "signature_public_key": "0424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54", + "tree_size": 50, + "vrf_public_key": "02d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84" + }, + "expect": { + "configuration": "00010100410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d840000000000002710000000000000271000000000240c840000", + "full_tree_head_same": "01", + "full_tree_head_updated": "0200000000000000320040def539e44ad54749da8f65dd84fe0799343e2eeb58dd9d92cd188b9467b6f37eed164dbf043d853a2014fc7bdebbf4174beb9254023d27a5434bc623bd41f7cd", + "signature": "def539e44ad54749da8f65dd84fe0799343e2eeb58dd9d92cd188b9467b6f37eed164dbf043d853a2014fc7bdebbf4174beb9254023d27a5434bc623bd41f7cd", + "tree_head": "00000000000000320040def539e44ad54749da8f65dd84fe0799343e2eeb58dd9d92cd188b9467b6f37eed164dbf043d853a2014fc7bdebbf4174beb9254023d27a5434bc623bd41f7cd", + "tree_head_tbs": "00010100410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d840000000000002710000000000000271000000000240c84000000000000000000323232323232323232323232323232323232323232323232323232323232323232" + } + }, + { + "name": "third-party-management-size-1", + "input": { + "leaf_public_key": "04158c6e85cd19a08adb04bef18dc4ad91da596fb285329ea6ca02a8ea62c452dd2f137ca6832837812f87a235c18775218e448f244c5ba63c45270a23dfb7b6b9", + "max_ahead": 10000, + "max_behind": 10000, + "mode": 2, + "reasonable_monitoring_window": 604800000, + "root": "0101010101010101010101010101010101010101010101010101010101010101", + "signature_public_key": "0424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54", + "tree_size": 1, + "vrf_public_key": "02d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84" + }, + "expect": { + "configuration": "00010200410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84004104158c6e85cd19a08adb04bef18dc4ad91da596fb285329ea6ca02a8ea62c452dd2f137ca6832837812f87a235c18775218e448f244c5ba63c45270a23dfb7b6b90000000000002710000000000000271000000000240c840000", + "full_tree_head_same": "01", + "full_tree_head_updated": "02000000000000000100403efff5eb85418413fa698c28fecc2e40fe812d1493d7f728885ca87b9d09ead2a376a9a66d4fca5f98a448df60f4d35668036027496d9efcee5f1c0ca69b566a", + "signature": "3efff5eb85418413fa698c28fecc2e40fe812d1493d7f728885ca87b9d09ead2a376a9a66d4fca5f98a448df60f4d35668036027496d9efcee5f1c0ca69b566a", + "tree_head": "000000000000000100403efff5eb85418413fa698c28fecc2e40fe812d1493d7f728885ca87b9d09ead2a376a9a66d4fca5f98a448df60f4d35668036027496d9efcee5f1c0ca69b566a", + "tree_head_tbs": "00010200410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84004104158c6e85cd19a08adb04bef18dc4ad91da596fb285329ea6ca02a8ea62c452dd2f137ca6832837812f87a235c18775218e448f244c5ba63c45270a23dfb7b6b90000000000002710000000000000271000000000240c84000000000000000000010101010101010101010101010101010101010101010101010101010101010101" + } + }, + { + "name": "third-party-management-size-8", + "input": { + "leaf_public_key": "04158c6e85cd19a08adb04bef18dc4ad91da596fb285329ea6ca02a8ea62c452dd2f137ca6832837812f87a235c18775218e448f244c5ba63c45270a23dfb7b6b9", + "max_ahead": 10000, + "max_behind": 10000, + "mode": 2, + "reasonable_monitoring_window": 604800000, + "root": "0808080808080808080808080808080808080808080808080808080808080808", + "signature_public_key": "0424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54", + "tree_size": 8, + "vrf_public_key": "02d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84" + }, + "expect": { + "configuration": "00010200410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84004104158c6e85cd19a08adb04bef18dc4ad91da596fb285329ea6ca02a8ea62c452dd2f137ca6832837812f87a235c18775218e448f244c5ba63c45270a23dfb7b6b90000000000002710000000000000271000000000240c840000", + "full_tree_head_same": "01", + "full_tree_head_updated": "020000000000000008004079cdba2825acd68d4eec4557fded5bcc0cfc1bf1ccc1811f4d4c2d3bc357074fa9ec69bb75105ecceff0c7c76bf117dcbc0e202cf448144c5c050dc24e80f0b3", + "signature": "79cdba2825acd68d4eec4557fded5bcc0cfc1bf1ccc1811f4d4c2d3bc357074fa9ec69bb75105ecceff0c7c76bf117dcbc0e202cf448144c5c050dc24e80f0b3", + "tree_head": "0000000000000008004079cdba2825acd68d4eec4557fded5bcc0cfc1bf1ccc1811f4d4c2d3bc357074fa9ec69bb75105ecceff0c7c76bf117dcbc0e202cf448144c5c050dc24e80f0b3", + "tree_head_tbs": "00010200410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84004104158c6e85cd19a08adb04bef18dc4ad91da596fb285329ea6ca02a8ea62c452dd2f137ca6832837812f87a235c18775218e448f244c5ba63c45270a23dfb7b6b90000000000002710000000000000271000000000240c84000000000000000000080808080808080808080808080808080808080808080808080808080808080808" + } + }, + { + "name": "third-party-management-size-50", + "input": { + "leaf_public_key": "04158c6e85cd19a08adb04bef18dc4ad91da596fb285329ea6ca02a8ea62c452dd2f137ca6832837812f87a235c18775218e448f244c5ba63c45270a23dfb7b6b9", + "max_ahead": 10000, + "max_behind": 10000, + "mode": 2, + "reasonable_monitoring_window": 604800000, + "root": "3232323232323232323232323232323232323232323232323232323232323232", + "signature_public_key": "0424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54", + "tree_size": 50, + "vrf_public_key": "02d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84" + }, + "expect": { + "configuration": "00010200410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84004104158c6e85cd19a08adb04bef18dc4ad91da596fb285329ea6ca02a8ea62c452dd2f137ca6832837812f87a235c18775218e448f244c5ba63c45270a23dfb7b6b90000000000002710000000000000271000000000240c840000", + "full_tree_head_same": "01", + "full_tree_head_updated": "02000000000000003200407b038badf7096bf6f5801c53d037dcc919772b1c9c00ef3d4f751f09d96c3483524c90f19a27aab28a712826756bceaf951ed99c9b6c8e68db18cb6d4006cd03", + "signature": "7b038badf7096bf6f5801c53d037dcc919772b1c9c00ef3d4f751f09d96c3483524c90f19a27aab28a712826756bceaf951ed99c9b6c8e68db18cb6d4006cd03", + "tree_head": "000000000000003200407b038badf7096bf6f5801c53d037dcc919772b1c9c00ef3d4f751f09d96c3483524c90f19a27aab28a712826756bceaf951ed99c9b6c8e68db18cb6d4006cd03", + "tree_head_tbs": "00010200410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84004104158c6e85cd19a08adb04bef18dc4ad91da596fb285329ea6ca02a8ea62c452dd2f137ca6832837812f87a235c18775218e448f244c5ba63c45270a23dfb7b6b90000000000002710000000000000271000000000240c84000000000000000000323232323232323232323232323232323232323232323232323232323232323232" + } + }, + { + "name": "third-party-auditing-size-1", + "input": { + "auditor_public_key": "04515a01505234a85ea5f577a55ec3ef380f1c1ff6831a5f9b2865a29d41029dcef9005ff9cda331eec4d4a141dc5b7be7216980269c57b9ed83cfca1718fe2203", + "auditor_start_pos": 0, + "auditor_timestamp": 1700000000000, + "max_ahead": 10000, + "max_auditor_lag": 60000, + "max_behind": 10000, + "mode": 3, + "reasonable_monitoring_window": 604800000, + "root": "0101010101010101010101010101010101010101010101010101010101010101", + "signature_public_key": "0424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54", + "tree_size": 1, + "vrf_public_key": "02d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84" + }, + "expect": { + "auditor_tree_head": "0000018bcfe56800000000000000000100408e81167b22294d32448ebf820d52927e6a56fbec30433c2553dd8e8365bd081f3398d174404f72484fdf8b5df1ce6b524d6a3ddb9f55a7614f9cd53c8d3197ed", + "auditor_tree_head_tbs": "00010300410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84000000000000ea600000000000000000004104515a01505234a85ea5f577a55ec3ef380f1c1ff6831a5f9b2865a29d41029dcef9005ff9cda331eec4d4a141dc5b7be7216980269c57b9ed83cfca1718fe22030000000000002710000000000000271000000000240c8400000000018bcfe5680000000000000000010101010101010101010101010101010101010101010101010101010101010101", + "configuration": "00010300410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84000000000000ea600000000000000000004104515a01505234a85ea5f577a55ec3ef380f1c1ff6831a5f9b2865a29d41029dcef9005ff9cda331eec4d4a141dc5b7be7216980269c57b9ed83cfca1718fe22030000000000002710000000000000271000000000240c840000", + "full_tree_head_same": "01", + "full_tree_head_updated": "0200000000000000010040d4e023467190fd73daa12120d1f5f2587b2acf027e57ea6bb7cf0254b8375bf7741ffb344cdf1dae906977a06ccd41a4e049c8bdd011d96821733d02db9df51d0000018bcfe56800000000000000000100408e81167b22294d32448ebf820d52927e6a56fbec30433c2553dd8e8365bd081f3398d174404f72484fdf8b5df1ce6b524d6a3ddb9f55a7614f9cd53c8d3197ed", + "signature": "d4e023467190fd73daa12120d1f5f2587b2acf027e57ea6bb7cf0254b8375bf7741ffb344cdf1dae906977a06ccd41a4e049c8bdd011d96821733d02db9df51d", + "tree_head": "00000000000000010040d4e023467190fd73daa12120d1f5f2587b2acf027e57ea6bb7cf0254b8375bf7741ffb344cdf1dae906977a06ccd41a4e049c8bdd011d96821733d02db9df51d", + "tree_head_tbs": "00010300410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84000000000000ea600000000000000000004104515a01505234a85ea5f577a55ec3ef380f1c1ff6831a5f9b2865a29d41029dcef9005ff9cda331eec4d4a141dc5b7be7216980269c57b9ed83cfca1718fe22030000000000002710000000000000271000000000240c84000000000000000000010101010101010101010101010101010101010101010101010101010101010101" + } + }, + { + "name": "third-party-auditing-size-8", + "input": { + "auditor_public_key": "04515a01505234a85ea5f577a55ec3ef380f1c1ff6831a5f9b2865a29d41029dcef9005ff9cda331eec4d4a141dc5b7be7216980269c57b9ed83cfca1718fe2203", + "auditor_start_pos": 0, + "auditor_timestamp": 1700000000000, + "max_ahead": 10000, + "max_auditor_lag": 60000, + "max_behind": 10000, + "mode": 3, + "reasonable_monitoring_window": 604800000, + "root": "0808080808080808080808080808080808080808080808080808080808080808", + "signature_public_key": "0424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54", + "tree_size": 8, + "vrf_public_key": "02d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84" + }, + "expect": { + "auditor_tree_head": "0000018bcfe5680000000000000000080040974f9bf570e682105adcc6de425b2a73c373cd0c74eddf2c739c50727eea5aaa0842afebdf316e85fb731b9584fe91fab2c6fde40bab5fb0e848f495d5d0b044", + "auditor_tree_head_tbs": "00010300410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84000000000000ea600000000000000000004104515a01505234a85ea5f577a55ec3ef380f1c1ff6831a5f9b2865a29d41029dcef9005ff9cda331eec4d4a141dc5b7be7216980269c57b9ed83cfca1718fe22030000000000002710000000000000271000000000240c8400000000018bcfe5680000000000000000080808080808080808080808080808080808080808080808080808080808080808", + "configuration": "00010300410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84000000000000ea600000000000000000004104515a01505234a85ea5f577a55ec3ef380f1c1ff6831a5f9b2865a29d41029dcef9005ff9cda331eec4d4a141dc5b7be7216980269c57b9ed83cfca1718fe22030000000000002710000000000000271000000000240c840000", + "full_tree_head_same": "01", + "full_tree_head_updated": "02000000000000000800407d784be539129a8f54ba317d68dc60b65143682ff78429115501f40406cef225a2d9ff823a6cc460209323f55decde416d6f0336f10fe855ba64cb5b39988c540000018bcfe5680000000000000000080040974f9bf570e682105adcc6de425b2a73c373cd0c74eddf2c739c50727eea5aaa0842afebdf316e85fb731b9584fe91fab2c6fde40bab5fb0e848f495d5d0b044", + "signature": "7d784be539129a8f54ba317d68dc60b65143682ff78429115501f40406cef225a2d9ff823a6cc460209323f55decde416d6f0336f10fe855ba64cb5b39988c54", + "tree_head": "000000000000000800407d784be539129a8f54ba317d68dc60b65143682ff78429115501f40406cef225a2d9ff823a6cc460209323f55decde416d6f0336f10fe855ba64cb5b39988c54", + "tree_head_tbs": "00010300410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84000000000000ea600000000000000000004104515a01505234a85ea5f577a55ec3ef380f1c1ff6831a5f9b2865a29d41029dcef9005ff9cda331eec4d4a141dc5b7be7216980269c57b9ed83cfca1718fe22030000000000002710000000000000271000000000240c84000000000000000000080808080808080808080808080808080808080808080808080808080808080808" + } + }, + { + "name": "third-party-auditing-size-50", + "input": { + "auditor_public_key": "04515a01505234a85ea5f577a55ec3ef380f1c1ff6831a5f9b2865a29d41029dcef9005ff9cda331eec4d4a141dc5b7be7216980269c57b9ed83cfca1718fe2203", + "auditor_start_pos": 0, + "auditor_timestamp": 1700000000000, + "max_ahead": 10000, + "max_auditor_lag": 60000, + "max_behind": 10000, + "mode": 3, + "reasonable_monitoring_window": 604800000, + "root": "3232323232323232323232323232323232323232323232323232323232323232", + "signature_public_key": "0424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54", + "tree_size": 50, + "vrf_public_key": "02d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84" + }, + "expect": { + "auditor_tree_head": "0000018bcfe5680000000000000000320040ee69f572fb5410ef5fb07d016fae1b63f58975b1804e5b7da81081dca97c0d879ca6c3640b186a93dbd39274026f82d662de69023578f3be0eab84d0b46c8aad", + "auditor_tree_head_tbs": "00010300410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84000000000000ea600000000000000000004104515a01505234a85ea5f577a55ec3ef380f1c1ff6831a5f9b2865a29d41029dcef9005ff9cda331eec4d4a141dc5b7be7216980269c57b9ed83cfca1718fe22030000000000002710000000000000271000000000240c8400000000018bcfe5680000000000000000323232323232323232323232323232323232323232323232323232323232323232", + "configuration": "00010300410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84000000000000ea600000000000000000004104515a01505234a85ea5f577a55ec3ef380f1c1ff6831a5f9b2865a29d41029dcef9005ff9cda331eec4d4a141dc5b7be7216980269c57b9ed83cfca1718fe22030000000000002710000000000000271000000000240c840000", + "full_tree_head_same": "01", + "full_tree_head_updated": "0200000000000000320040026fd3d5d6a9912934d2642323031be7b7a60e873df29f5c00fbf3b318a65515fb3f34f0210ccb22a47d3f3fe9ed6aed38881ab791a488381b495b8708930e5f0000018bcfe5680000000000000000320040ee69f572fb5410ef5fb07d016fae1b63f58975b1804e5b7da81081dca97c0d879ca6c3640b186a93dbd39274026f82d662de69023578f3be0eab84d0b46c8aad", + "signature": "026fd3d5d6a9912934d2642323031be7b7a60e873df29f5c00fbf3b318a65515fb3f34f0210ccb22a47d3f3fe9ed6aed38881ab791a488381b495b8708930e5f", + "tree_head": "00000000000000320040026fd3d5d6a9912934d2642323031be7b7a60e873df29f5c00fbf3b318a65515fb3f34f0210ccb22a47d3f3fe9ed6aed38881ab791a488381b495b8708930e5f", + "tree_head_tbs": "00010300410424d839c97ac374c8b4d501b3024c04e2866a5a8905448995522f285d37fbf1be70c6a32182e59b94f19030607ccd566e1f5fd4a2b82d10b42629aecfb9943b54002102d66ee10aac8c03cbff3004f11f0d4506a711687ea2b07482bd600acd9f4d3d84000000000000ea600000000000000000004104515a01505234a85ea5f577a55ec3ef380f1c1ff6831a5f9b2865a29d41029dcef9005ff9cda331eec4d4a141dc5b7be7216980269c57b9ed83cfca1718fe22030000000000002710000000000000271000000000240c84000000000000000000323232323232323232323232323232323232323232323232323232323232323232" + } + } + ] +} diff --git a/interop/vectors/update.json b/interop/vectors/update.json index e8de46c..cfb8f90 100644 --- a/interop/vectors/update.json +++ b/interop/vectors/update.json @@ -12,18 +12,18 @@ "name": "single-version-previous-frontier-skipped", "input": { "entry_timestamps": [ - 1785418676825, - 1785418676825, - 1785418676825, - 1785418676826, - 1785418676826, - 1785418676826, - 1785418676826 + 1785421503085, + 1785421503086, + 1785421503086, + 1785421503087, + 1785421503087, + 1785421503087, + 1785421503088 ], "label": "616c696365406578616d706c652e636f6d", "ladder": [ { - "commitment": "5e014c872e8933eb1b2ac0b452e8f03a2391d0b17545e3ca43e9a9f6489f623d", + "commitment": "0f61f54efe611f32f1a02ccadcae0ad1765687434ba3123cdfdfc95150d424a8", "version": 6, "vrf_output": "599424025a070d0e48913585265a30210ffe3416005c77c2354094f14c6358a1" }, @@ -154,34 +154,34 @@ }, "distinguished": false, "inclusion": [ - "b395f2fb05e9e126c5575d3662e0cc399092fe25d54a00a5a3a1c81986a1d73e", - "223e19f350920df66bee5171144cd5cdac8964dcec443271fdc6868957ede258", - "877ce081a1e7952534a7399ebd31f65df722f3afa892488b9ebc359d68d5644b" + "b8bc2e6ee0d686da4a5996c0976bdf9519916dc9e73475e4953e00abbe6dad12", + "f09f3995ce9f96bba58004e321bb1894f635d8d7b6be1e9613e40e30eaa1a97d", + "f71153fff0e227a89d8681e434e06c7528cc01318c8b90d5a0f245ecc7bc6ffc" ], "prefix_proofs": [ { "elements": [ - "3697a419b526e72868a28a9d0c9360e93a452f07d60ccef33432624eca397b04", - "632bce54e43aedbf3c3f21d18dd42e6f133522a71fca15274de6244c8d378486", + "24571aac6ce6097b3ac44c97cb9c3ce455c0e1dddb485edf5fe76ab917f153b7", + "e3eef9c2e8fcd49919cff47994bc0b3590f2530b280106628e6c42d5b9b8fda2", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", - "8cdcd785e709ac7cdb57dee763711648cb4adab57bf10ffd963fa0d3f29f09c9", + "df48e7fedb16bf83cd4e74ca54e6e9a9ab33dcb09a6c1c92e9b0604ddd071349", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", - "a98a74a8ff949a029867cea191304a1e7005f26e44ae8427c82f24db8de2993b", - "e939ca7e0ed476e96d6f26675a121eef66d69d236ba1dffef214661a1ce9668a", - "f8a4ae863bdfe810cb03f9517f20970a1df67ad8de2065e6f116776d13503d87", - "16c5cb25342af97d96496c4b4e8fb278889f244c9bd911f65919875d40d30838", - "20676e8387687e0048af289e09e01d53250710c45a5b023f2006af25765a6669" + "6dc180f6d913f8d1797de4edbb71b24665f5769ef0ef92d004f0634ab7c8f151", + "20f6ced22d235e6264a4bece1c8cfc941d8195be3eef95e22956403e3d25f2ff", + "f0a91937ff9aeaa1e0f7693d3d30a003a415695aecc8fef24148779c1409752c", + "337143ae04df03d622cbf9f3598bd89eb89ea51f38ae633d104ac056289a947c", + "a3ddac0de3af1c5a5f6a0106721a17022164663bf9741ec3fd2aa10ae720f16e" ], - "encoding": "020284c552e49bfdd74786d8b71e7729bcbaab61fdcab6e9277d907d327e7a8edf6618a198dd19ab17fbf94d704b63ef3c4be033339311c21215d743019e11bba28205010b000e3697a419b526e72868a28a9d0c9360e93a452f07d60ccef33432624eca397b04632bce54e43aedbf3c3f21d18dd42e6f133522a71fca15274de6244c8d3784860000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008cdcd785e709ac7cdb57dee763711648cb4adab57bf10ffd963fa0d3f29f09c9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a98a74a8ff949a029867cea191304a1e7005f26e44ae8427c82f24db8de2993be939ca7e0ed476e96d6f26675a121eef66d69d236ba1dffef214661a1ce9668af8a4ae863bdfe810cb03f9517f20970a1df67ad8de2065e6f116776d13503d8716c5cb25342af97d96496c4b4e8fb278889f244c9bd911f65919875d40d3083820676e8387687e0048af289e09e01d53250710c45a5b023f2006af25765a6669", + "encoding": "020284c552e49bfdd74786d8b71e7729bcbaab61fdcab6e9277d907d327e7a8edf66465efb1a0f8ad7fa9e9d9f256756ee035b45580a29b7d4a36fcaf13d1f6ea1cb05010b000e24571aac6ce6097b3ac44c97cb9c3ce455c0e1dddb485edf5fe76ab917f153b7e3eef9c2e8fcd49919cff47994bc0b3590f2530b280106628e6c42d5b9b8fda2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000df48e7fedb16bf83cd4e74ca54e6e9a9ab33dcb09a6c1c92e9b0604ddd0713490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006dc180f6d913f8d1797de4edbb71b24665f5769ef0ef92d004f0634ab7c8f15120f6ced22d235e6264a4bece1c8cfc941d8195be3eef95e22956403e3d25f2fff0a91937ff9aeaa1e0f7693d3d30a003a415695aecc8fef24148779c1409752c337143ae04df03d622cbf9f3598bd89eb89ea51f38ae633d104ac056289a947ca3ddac0de3af1c5a5f6a0106721a17022164663bf9741ec3fd2aa10ae720f16e", "results": [ { "depth": 5, "leaf": { - "commitment": "18a198dd19ab17fbf94d704b63ef3c4be033339311c21215d743019e11bba282", + "commitment": "465efb1a0f8ad7fa9e9d9f256756ee035b45580a29b7d4a36fcaf13d1f6ea1cb", "vrf_output": "84c552e49bfdd74786d8b71e7729bcbaab61fdcab6e9277d907d327e7a8edf66" }, "result_type": 2 @@ -194,14 +194,14 @@ } ], "prefix_roots": [ - "9b586d885d7a675b6449c2aca717c01bf5216092f4ae3b5be931818dba748008", - "2462fcf96014d2ee5d09a1a77d0d5445a1090a2cace7499ae8f77f892d0726e4" + "2d45d8280388b6eb8f6fb556f69e1fd7a1d2f66e2181b8fa249b1e2040d793f3", + "37391eaa9af7321cd73c6c2de269f32afe7a85b6a1f33f8c3fa24f116f43bd67" ], - "proof": "030000019fb33efa5a0000019fb33efa5a0000019fb33efa5a01020284c552e49bfdd74786d8b71e7729bcbaab61fdcab6e9277d907d327e7a8edf6618a198dd19ab17fbf94d704b63ef3c4be033339311c21215d743019e11bba28205010b000e3697a419b526e72868a28a9d0c9360e93a452f07d60ccef33432624eca397b04632bce54e43aedbf3c3f21d18dd42e6f133522a71fca15274de6244c8d3784860000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008cdcd785e709ac7cdb57dee763711648cb4adab57bf10ffd963fa0d3f29f09c9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a98a74a8ff949a029867cea191304a1e7005f26e44ae8427c82f24db8de2993be939ca7e0ed476e96d6f26675a121eef66d69d236ba1dffef214661a1ce9668af8a4ae863bdfe810cb03f9517f20970a1df67ad8de2065e6f116776d13503d8716c5cb25342af97d96496c4b4e8fb278889f244c9bd911f65919875d40d3083820676e8387687e0048af289e09e01d53250710c45a5b023f2006af25765a6669029b586d885d7a675b6449c2aca717c01bf5216092f4ae3b5be931818dba7480082462fcf96014d2ee5d09a1a77d0d5445a1090a2cace7499ae8f77f892d0726e40003b395f2fb05e9e126c5575d3662e0cc399092fe25d54a00a5a3a1c81986a1d73e223e19f350920df66bee5171144cd5cdac8964dcec443271fdc6868957ede258877ce081a1e7952534a7399ebd31f65df722f3afa892488b9ebc359d68d5644b", + "proof": "030000019fb36a1a6f0000019fb36a1a6f0000019fb36a1a7001020284c552e49bfdd74786d8b71e7729bcbaab61fdcab6e9277d907d327e7a8edf66465efb1a0f8ad7fa9e9d9f256756ee035b45580a29b7d4a36fcaf13d1f6ea1cb05010b000e24571aac6ce6097b3ac44c97cb9c3ce455c0e1dddb485edf5fe76ab917f153b7e3eef9c2e8fcd49919cff47994bc0b3590f2530b280106628e6c42d5b9b8fda2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000df48e7fedb16bf83cd4e74ca54e6e9a9ab33dcb09a6c1c92e9b0604ddd0713490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006dc180f6d913f8d1797de4edbb71b24665f5769ef0ef92d004f0634ab7c8f15120f6ced22d235e6264a4bece1c8cfc941d8195be3eef95e22956403e3d25f2fff0a91937ff9aeaa1e0f7693d3d30a003a415695aecc8fef24148779c1409752c337143ae04df03d622cbf9f3598bd89eb89ea51f38ae633d104ac056289a947ca3ddac0de3af1c5a5f6a0106721a17022164663bf9741ec3fd2aa10ae720f16e022d45d8280388b6eb8f6fb556f69e1fd7a1d2f66e2181b8fa249b1e2040d793f337391eaa9af7321cd73c6c2de269f32afe7a85b6a1f33f8c3fa24f116f43bd670003b8bc2e6ee0d686da4a5996c0976bdf9519916dc9e73475e4953e00abbe6dad12f09f3995ce9f96bba58004e321bb1894f635d8d7b6be1e9613e40e30eaa1a97df71153fff0e227a89d8681e434e06c7528cc01318c8b90d5a0f245ecc7bc6ffc", "timestamps": [ - 1785418676826, - 1785418676826, - 1785418676826 + 1785421503087, + 1785421503087, + 1785421503088 ] } }, @@ -209,18 +209,18 @@ "name": "single-version-previous-frontier-inspected", "input": { "entry_timestamps": [ - 1785418676828, - 1785418676829, - 1785418676829, - 1785418676829, - 1785418676829, - 1785418676830, - 1785418676830 + 1785421503092, + 1785421503093, + 1785421503093, + 1785421503094, + 1785421503094, + 1785421503094, + 1785421503095 ], "label": "626f62406578616d706c652e636f6d", "ladder": [ { - "commitment": "e8e62140d511a83f8b6b4cea1ddcfc35410dc39cadb6cbbb21b385ccad82e97c", + "commitment": "75e9437667aef7233c7f5cb6942a25c09ad74916ebef690517917ab7bf7d43a7", "version": 1, "vrf_output": "b32c245bcee1511d1b1f2c4ac863aa6d4a47d161925042a5bd3728b4ae09e0ab" }, @@ -352,23 +352,23 @@ }, "distinguished": false, "inclusion": [ - "20811006ff701915895f22bf4cc820e1c223099039114c697d951955d0bb2f20", - "703c2fcad07fd6cb20abe75558a9a18de18fccaf39056254c68c1edf2f32ffab", - "cb265d7d7fbd21e2d63e49dc4d204017907b1fae17a444c9504bb2f2b8186bc7" + "22ec6c77f944e93af96139a82ead3d84d7df23755d5f18f33a391bac53ab9ec9", + "01bab599350bc07c0cbe1148a316dae54fa6fe0bb6779bad775d51a80171a8e8", + "90ab56735a3cc7cf136b1bc2c816849423e4a9982ab1f9338541cfe40d40cc79" ], "prefix_proofs": [ { "elements": [ - "7d84cb930baa049ea1e8f3fba24d986e497ef7c63480675255c38a1720942235", - "ef327d4cb9a71edb8ec42081603d9df8be0b1d8671aaf250d953a52652062a4d", - "30234fcdfb30f4217917e5188183f9a0af4029dbe2fdc43117d68f8a4807aa95" + "83ee6a005afcedb1b30bc5bccc5f79ab977e26881742d2084d631d99f5f894af", + "0e370d9a7035963dd80376ed4754f252c971660359d0369c254dbad94889517c", + "d6cb098fda06939b2b35f8841e12916e46184703da81024bf98b7788bb9bea2f" ], - "encoding": "0102a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7fcc83a5d570e082998e84cc370ec2b289b6fd14ce7da4cf24af5ca27fe24b606c0300037d84cb930baa049ea1e8f3fba24d986e497ef7c63480675255c38a1720942235ef327d4cb9a71edb8ec42081603d9df8be0b1d8671aaf250d953a52652062a4d30234fcdfb30f4217917e5188183f9a0af4029dbe2fdc43117d68f8a4807aa95", + "encoding": "0102a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f0ab7b702ff7bd5a9216e194eb5966c498da4483298ab6b229daa4f6800dd013b03000383ee6a005afcedb1b30bc5bccc5f79ab977e26881742d2084d631d99f5f894af0e370d9a7035963dd80376ed4754f252c971660359d0369c254dbad94889517cd6cb098fda06939b2b35f8841e12916e46184703da81024bf98b7788bb9bea2f", "results": [ { "depth": 3, "leaf": { - "commitment": "cc83a5d570e082998e84cc370ec2b289b6fd14ce7da4cf24af5ca27fe24b606c", + "commitment": "0ab7b702ff7bd5a9216e194eb5966c498da4483298ab6b229daa4f6800dd013b", "vrf_output": "a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f" }, "result_type": 2 @@ -377,18 +377,18 @@ }, { "elements": [ - "95191b92f3a53048e353bddf60e48f582413b20510a13791448393457b4b88c4", - "5f7d89dbe816fa575ccc824f6533e434024a8cc8f62fc4975532fb374948d075", - "9b379fca9e815de3674d05edaeb5ad038cbb452f5ee0aafd42c8845dad3f10a4", + "9645af6695ae9d5a90ae53fbe46d186c786312ad6707f4efeb39ece1af02fe93", + "b2c4db0889b9dca680bc5e8fafe32e138389f21a145ee1d5c85c3e632f6a9222", + "8e6882d2f99ab23fe6fe20aba231462ae76a9c2fc7aacf31621c337ef48d2bbf", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", - "771cd3e65bed6625615937ce9acb2e79dd5a385362968a2aef5a30b481e5c7e8", - "97e15fe0f39328b00e0a2a1ac637a42829e9983420441d8ea463bdff6125ef68", - "e3a07c8cafa1e13d7f0d06f79de42ce3a75a07b35add8c28ca85929712126777", - "af765a136334794ec992c02e9af83df26150f226967259e965bcaf94d1c89b3d", - "30234fcdfb30f4217917e5188183f9a0af4029dbe2fdc43117d68f8a4807aa95" + "309890a2cf6e8ad61a662c9e7076aa2d8435cd9a27681f92801ca24ed6f2e8d3", + "fe5b76f4143a1fd2142796e75d28973115fe294ae1575caa149268f031e36d2c", + "dbe81199d27ae24bfbc492c7964d0a3b74099a5f59a249479cd2979be07baf82", + "8de5158af2888cdeb168d5f8dcf7537f659cbd2fa4d5fb8500b4c4660157549d", + "d6cb098fda06939b2b35f8841e12916e46184703da81024bf98b7788bb9bea2f" ], - "encoding": "03010503080305000a95191b92f3a53048e353bddf60e48f582413b20510a13791448393457b4b88c45f7d89dbe816fa575ccc824f6533e434024a8cc8f62fc4975532fb374948d0759b379fca9e815de3674d05edaeb5ad038cbb452f5ee0aafd42c8845dad3f10a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000771cd3e65bed6625615937ce9acb2e79dd5a385362968a2aef5a30b481e5c7e897e15fe0f39328b00e0a2a1ac637a42829e9983420441d8ea463bdff6125ef68e3a07c8cafa1e13d7f0d06f79de42ce3a75a07b35add8c28ca85929712126777af765a136334794ec992c02e9af83df26150f226967259e965bcaf94d1c89b3d30234fcdfb30f4217917e5188183f9a0af4029dbe2fdc43117d68f8a4807aa95", + "encoding": "03010503080305000a9645af6695ae9d5a90ae53fbe46d186c786312ad6707f4efeb39ece1af02fe93b2c4db0889b9dca680bc5e8fafe32e138389f21a145ee1d5c85c3e632f6a92228e6882d2f99ab23fe6fe20aba231462ae76a9c2fc7aacf31621c337ef48d2bbf00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000309890a2cf6e8ad61a662c9e7076aa2d8435cd9a27681f92801ca24ed6f2e8d3fe5b76f4143a1fd2142796e75d28973115fe294ae1575caa149268f031e36d2cdbe81199d27ae24bfbc492c7964d0a3b74099a5f59a249479cd2979be07baf828de5158af2888cdeb168d5f8dcf7537f659cbd2fa4d5fb8500b4c4660157549dd6cb098fda06939b2b35f8841e12916e46184703da81024bf98b7788bb9bea2f", "results": [ { "depth": 5, @@ -406,13 +406,13 @@ } ], "prefix_roots": [ - "937b98120d335b9696bd9f31229aa77c2e6da72fd4c577f4cc07b9d822b3a328" + "6d362f523f0c22287793c85412ad45ceb234129a50b133108f28c0f2af382f50" ], - "proof": "030000019fb33efa5d0000019fb33efa5e0000019fb33efa5e020102a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7fcc83a5d570e082998e84cc370ec2b289b6fd14ce7da4cf24af5ca27fe24b606c0300037d84cb930baa049ea1e8f3fba24d986e497ef7c63480675255c38a1720942235ef327d4cb9a71edb8ec42081603d9df8be0b1d8671aaf250d953a52652062a4d30234fcdfb30f4217917e5188183f9a0af4029dbe2fdc43117d68f8a4807aa9503010503080305000a95191b92f3a53048e353bddf60e48f582413b20510a13791448393457b4b88c45f7d89dbe816fa575ccc824f6533e434024a8cc8f62fc4975532fb374948d0759b379fca9e815de3674d05edaeb5ad038cbb452f5ee0aafd42c8845dad3f10a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000771cd3e65bed6625615937ce9acb2e79dd5a385362968a2aef5a30b481e5c7e897e15fe0f39328b00e0a2a1ac637a42829e9983420441d8ea463bdff6125ef68e3a07c8cafa1e13d7f0d06f79de42ce3a75a07b35add8c28ca85929712126777af765a136334794ec992c02e9af83df26150f226967259e965bcaf94d1c89b3d30234fcdfb30f4217917e5188183f9a0af4029dbe2fdc43117d68f8a4807aa9501937b98120d335b9696bd9f31229aa77c2e6da72fd4c577f4cc07b9d822b3a328000320811006ff701915895f22bf4cc820e1c223099039114c697d951955d0bb2f20703c2fcad07fd6cb20abe75558a9a18de18fccaf39056254c68c1edf2f32ffabcb265d7d7fbd21e2d63e49dc4d204017907b1fae17a444c9504bb2f2b8186bc7", + "proof": "030000019fb36a1a760000019fb36a1a760000019fb36a1a77020102a23e5c9a8983f63dd4358efa06aa4d2077629a50c452b7e3da7a1b26e6181f7f0ab7b702ff7bd5a9216e194eb5966c498da4483298ab6b229daa4f6800dd013b03000383ee6a005afcedb1b30bc5bccc5f79ab977e26881742d2084d631d99f5f894af0e370d9a7035963dd80376ed4754f252c971660359d0369c254dbad94889517cd6cb098fda06939b2b35f8841e12916e46184703da81024bf98b7788bb9bea2f03010503080305000a9645af6695ae9d5a90ae53fbe46d186c786312ad6707f4efeb39ece1af02fe93b2c4db0889b9dca680bc5e8fafe32e138389f21a145ee1d5c85c3e632f6a92228e6882d2f99ab23fe6fe20aba231462ae76a9c2fc7aacf31621c337ef48d2bbf00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000309890a2cf6e8ad61a662c9e7076aa2d8435cd9a27681f92801ca24ed6f2e8d3fe5b76f4143a1fd2142796e75d28973115fe294ae1575caa149268f031e36d2cdbe81199d27ae24bfbc492c7964d0a3b74099a5f59a249479cd2979be07baf828de5158af2888cdeb168d5f8dcf7537f659cbd2fa4d5fb8500b4c4660157549dd6cb098fda06939b2b35f8841e12916e46184703da81024bf98b7788bb9bea2f016d362f523f0c22287793c85412ad45ceb234129a50b133108f28c0f2af382f50000322ec6c77f944e93af96139a82ead3d84d7df23755d5f18f33a391bac53ab9ec901bab599350bc07c0cbe1148a316dae54fa6fe0bb6779bad775d51a80171a8e890ab56735a3cc7cf136b1bc2c816849423e4a9982ab1f9338541cfe40d40cc79", "timestamps": [ - 1785418676829, - 1785418676830, - 1785418676830 + 1785421503094, + 1785421503094, + 1785421503095 ] } }, @@ -420,28 +420,28 @@ "name": "multi-version-covered-by-the-ladder", "input": { "entry_timestamps": [ - 1785418676832, - 1785418676833, - 1785418676833, - 1785418676833, - 1785418676834, - 1785418676834, - 1785418676835 + 1785421503099, + 1785421503100, + 1785421503100, + 1785421503101, + 1785421503101, + 1785421503101, + 1785421503102 ], "label": "6361726f6c406578616d706c652e636f6d", "ladder": [ { - "commitment": "7df6892b96be57c06370de0224460e779405a67c8d6a98ad61badf0f1bc3c2e9", + "commitment": "e08b4dcba8ac1b8a8ceb9a615463c877bcc2015e566e89babbc2ff50476768c8", "version": 0, "vrf_output": "59b2b7f1b15e9b8a630ebcc077e7eef5cabd784c4b47498dfe095681d75c1f77" }, { - "commitment": "0ca5ee507d3a217906fb205d970973ba300d669f5fa406fdf8fa8e5134f3b6a4", + "commitment": "656902743914785b0d648b6134693ecb55b8a7498a643b72c069b66cdefc903b", "version": 1, "vrf_output": "6bd49bee46d071009be5abee995e7aaae04a9ecf76f17452a6aa50d721add5a4" }, { - "commitment": "e192e12cb5844890b88b313e674f169734aa1b4e6004b73cf1c713ce6f67ce9c", + "commitment": "7dd50f4843d4a649e19bf7cdf4a2c8c3bf6062d3ac3f93f27febf70ae214cca9", "version": 2, "vrf_output": "bf73c61cd407cd359603e4f48889c19c38f15ad5bb8c771f52a9954cd2883f72" }, @@ -568,22 +568,22 @@ }, "distinguished": false, "inclusion": [ - "106e627b7984abf60507e9f68e820e0a72c5f0a9e59d3c4dfb19ffd1a90cdba7", - "f0b8d1af22ed1ed5b8584a45c1ad8f9ea12b44b195ecd97330fba8fc2d5bbc18", - "08d72916aa7fa6380f501db3cafb2a7b460e2a60a6f70803a71d4bcd4211645a" + "ea994fda48ff8d55a76a7cb5c28c927caac6bfe4a15cdf520cb402c5a407d533", + "ea9caf533c104f9af9c4c48857fbf6fca013f22abebb78979964702f445a162b", + "9056b75f9d1f38654385c9ae669e35bdabc99b6cb9dc6867a01830d753e968df" ], "prefix_proofs": [ { "elements": [ - "c4517a97976c24be088f93af5d234d01f979a63ed92e0b0717c15607e9ba20de", - "595d1fb845b11098ed8673f57503a87fc224f5e667c75913d87a7a1f0b8f0276" + "5aa0e7306541fa980465839153b39fb148384ce8207f530ec1bbf163e0168be0", + "9add98040b0830841cadfd0d95e8b0b88a13023175cf393a0730241f96452ae9" ], - "encoding": "010249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45b386454a0d582b1ba54b9cad0dd7b813957402d525a0c804f4de0c8939e8bbc1020002c4517a97976c24be088f93af5d234d01f979a63ed92e0b0717c15607e9ba20de595d1fb845b11098ed8673f57503a87fc224f5e667c75913d87a7a1f0b8f0276", + "encoding": "010249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45674f08981c14d69f12f12f876d7291aeecb8337b240d173045683710152fad030200025aa0e7306541fa980465839153b39fb148384ce8207f530ec1bbf163e0168be09add98040b0830841cadfd0d95e8b0b88a13023175cf393a0730241f96452ae9", "results": [ { "depth": 2, "leaf": { - "commitment": "b386454a0d582b1ba54b9cad0dd7b813957402d525a0c804f4de0c8939e8bbc1", + "commitment": "674f08981c14d69f12f12f876d7291aeecb8337b240d173045683710152fad03", "vrf_output": "49ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45" }, "result_type": 2 @@ -592,21 +592,21 @@ }, { "elements": [ - "a598460918526c2015092392ab1f3837b8a03f04d4f632cd470189cfca0b38a9", - "c014864a65f2a1151218a3e3c4640d9de7aa337925a14a849954750c2fd3cf40", + "e921e36a5a52a745d2796151e69a7cff109c8c0f87b19992f4d74407bef0f4b7", + "d2c2c03400f705297c5e9a193216525c4308c6359bda35d90e887102bbf24124", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", - "fe2e0a1c08939b532188e314d1144fac66c7ab96bf1f42a9a3d1b313196fca12", + "bc51a0d5b9ed02e80a5dedde4a2202914e01b888c01adea07f5a1ba9973a23d5", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", - "3bc646c597e2c2ee6ecbf4658c512da889e24d092208885dbadf087a3b12f82b", - "9ea8d7b421a452766ea7d77d0b36ec736cec81f02839c5775b178f2103448f1f", - "52a676757874098460e75a96befcb10e3a3430f779df6fc74503588b418d67b6", - "141cefe4814d94b439918d0c1c534e09c18ad113b3cafc7f3cab414f785e6962" + "3af36b077a6a8372bce6f16b6e65ab50a9669f97802de8b6a847b90967734c2e", + "9a4ed6a5f2cace025a11a752dc8c4c9d3fbb848517ad214c4bbf9d4fb1c228ef", + "e64b3eb666fea12833c7646f9410757be98e157bd58e7755282c2e7fea80e7ed", + "6104cfadbd695a67d31a897156b24466bc433110a96e9e776ba3f99900c9a296" ], - "encoding": "04010b010303030105000da598460918526c2015092392ab1f3837b8a03f04d4f632cd470189cfca0b38a9c014864a65f2a1151218a3e3c4640d9de7aa337925a14a849954750c2fd3cf40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fe2e0a1c08939b532188e314d1144fac66c7ab96bf1f42a9a3d1b313196fca120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003bc646c597e2c2ee6ecbf4658c512da889e24d092208885dbadf087a3b12f82b9ea8d7b421a452766ea7d77d0b36ec736cec81f02839c5775b178f2103448f1f52a676757874098460e75a96befcb10e3a3430f779df6fc74503588b418d67b6141cefe4814d94b439918d0c1c534e09c18ad113b3cafc7f3cab414f785e6962", + "encoding": "04010b010303030105000de921e36a5a52a745d2796151e69a7cff109c8c0f87b19992f4d74407bef0f4b7d2c2c03400f705297c5e9a193216525c4308c6359bda35d90e887102bbf24124000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bc51a0d5b9ed02e80a5dedde4a2202914e01b888c01adea07f5a1ba9973a23d50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003af36b077a6a8372bce6f16b6e65ab50a9669f97802de8b6a847b90967734c2e9a4ed6a5f2cace025a11a752dc8c4c9d3fbb848517ad214c4bbf9d4fb1c228efe64b3eb666fea12833c7646f9410757be98e157bd58e7755282c2e7fea80e7ed6104cfadbd695a67d31a897156b24466bc433110a96e9e776ba3f99900c9a296", "results": [ { "depth": 11, @@ -628,13 +628,13 @@ } ], "prefix_roots": [ - "b04dbd6b6fef49f56b530eda3896b0fd04de35cf90581cba85322c2c44731d1f" + "feb8873564c445788ef6534e8dae48b632d3101df07f1b5ca91db9122c1383ff" ], - "proof": "030000019fb33efa610000019fb33efa620000019fb33efa6302010249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45b386454a0d582b1ba54b9cad0dd7b813957402d525a0c804f4de0c8939e8bbc1020002c4517a97976c24be088f93af5d234d01f979a63ed92e0b0717c15607e9ba20de595d1fb845b11098ed8673f57503a87fc224f5e667c75913d87a7a1f0b8f027604010b010303030105000da598460918526c2015092392ab1f3837b8a03f04d4f632cd470189cfca0b38a9c014864a65f2a1151218a3e3c4640d9de7aa337925a14a849954750c2fd3cf40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fe2e0a1c08939b532188e314d1144fac66c7ab96bf1f42a9a3d1b313196fca120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003bc646c597e2c2ee6ecbf4658c512da889e24d092208885dbadf087a3b12f82b9ea8d7b421a452766ea7d77d0b36ec736cec81f02839c5775b178f2103448f1f52a676757874098460e75a96befcb10e3a3430f779df6fc74503588b418d67b6141cefe4814d94b439918d0c1c534e09c18ad113b3cafc7f3cab414f785e696201b04dbd6b6fef49f56b530eda3896b0fd04de35cf90581cba85322c2c44731d1f0003106e627b7984abf60507e9f68e820e0a72c5f0a9e59d3c4dfb19ffd1a90cdba7f0b8d1af22ed1ed5b8584a45c1ad8f9ea12b44b195ecd97330fba8fc2d5bbc1808d72916aa7fa6380f501db3cafb2a7b460e2a60a6f70803a71d4bcd4211645a", + "proof": "030000019fb36a1a7d0000019fb36a1a7d0000019fb36a1a7e02010249ac592e66e6cdf540930a2de58d345878986b1e337ee0aeb9d5c3730be70e45674f08981c14d69f12f12f876d7291aeecb8337b240d173045683710152fad030200025aa0e7306541fa980465839153b39fb148384ce8207f530ec1bbf163e0168be09add98040b0830841cadfd0d95e8b0b88a13023175cf393a0730241f96452ae904010b010303030105000de921e36a5a52a745d2796151e69a7cff109c8c0f87b19992f4d74407bef0f4b7d2c2c03400f705297c5e9a193216525c4308c6359bda35d90e887102bbf24124000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bc51a0d5b9ed02e80a5dedde4a2202914e01b888c01adea07f5a1ba9973a23d50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003af36b077a6a8372bce6f16b6e65ab50a9669f97802de8b6a847b90967734c2e9a4ed6a5f2cace025a11a752dc8c4c9d3fbb848517ad214c4bbf9d4fb1c228efe64b3eb666fea12833c7646f9410757be98e157bd58e7755282c2e7fea80e7ed6104cfadbd695a67d31a897156b24466bc433110a96e9e776ba3f99900c9a29601feb8873564c445788ef6534e8dae48b632d3101df07f1b5ca91db9122c1383ff0003ea994fda48ff8d55a76a7cb5c28c927caac6bfe4a15cdf520cb402c5a407d533ea9caf533c104f9af9c4c48857fbf6fca013f22abebb78979964702f445a162b9056b75f9d1f38654385c9ae669e35bdabc99b6cb9dc6867a01830d753e968df", "timestamps": [ - 1785418676833, - 1785418676834, - 1785418676835 + 1785421503101, + 1785421503101, + 1785421503102 ] } }, @@ -642,28 +642,28 @@ "name": "multi-version-with-additional-proof", "input": { "entry_timestamps": [ - 1785418676839, - 1785418676840, - 1785418676840, - 1785418676840, - 1785418676840, - 1785418676840, - 1785418676841 + 1785421503106, + 1785421503107, + 1785421503107, + 1785421503107, + 1785421503108, + 1785421503108, + 1785421503108 ], "label": "6572696e406578616d706c652e636f6d", "ladder": [ { - "commitment": "a75fba347efe2293b0e46867f27b3dff7e731a269071273b833b23ca0e477d5c", + "commitment": "e1e4ffd7cad907d0b63c4c479b135955737c14b34fb750fff8982f839e0e5c19", "version": 1, "vrf_output": "223da2fa3c1d5037f5cab56241c3d34cbfad7c6efed0b347570ff70e1a621aeb" }, { - "commitment": "12d02cdb706145d5568daa8115351763ca9b58b3b0d1eee24031cfce728de7e7", + "commitment": "afbb1a52367ace864e5fa9b1b0367b68cb1434c79c70a86672c0a6ece401cded", "version": 2, "vrf_output": "84c552e49bfdd74786d8b71e7729bcbaab61fdcab6e9277d907d327e7a8edf66" }, { - "commitment": "a0fcb66ff9c64794249615be4a0b5c2d85426d2df7e2922dedc37e2be72f02f8", + "commitment": "52de5093e882bcca7c4458fc657756c322c51d970ae5c1daabd24f378c1bf7dc", "version": 3, "vrf_output": "9895b6beb9e522e552206b6cafa816eab1800711eb47b8774fd89ecc827f0e65" }, @@ -799,22 +799,22 @@ }, "distinguished": false, "inclusion": [ - "a29afb32dd4d5d67100ef992f3e3c8e911817e69df20a317c5423da2a9db022c", - "909a403df5703f9af86f34980f70b3cbc418b4ea83ccafc8a23f3ba1e0015854", - "4d748301e746e87403227fc6a73d2f93dee0b97b5d82031414cddb4176238f49" + "6f20892fa41579a401ead7b301a29879dc175d77be3ccb3df0dc044603e11d1a", + "62de86488ed52fe35ceb2eb21b3bbd3388d2c1b77e14b50e495439f2e1a9c8f6", + "5539e438de57165584fd8822f05eb9814f1ee1de02952e89870caed964bc437c" ], "prefix_proofs": [ { "elements": [ - "a4e395a4f3f0fa803a999f8d42ec36d10bd1209edf1846b6d8765bf49094bb9b", - "dfa63240906a342518d60293c951751aa12ca3e0e147aac3069b9426cddbc3f5" + "bc674f3eda0f0f1607333cae2df82d0faf9482a3d48d4ef527d72eb53634c86f", + "5645d1ed370ff0d238f06c20c7803273d49d494da689bebc743a4709fddceb0b" ], - "encoding": "01023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee204b52668627392b9835a3d466f1a7075fc38384b213038d29af41965125527de020002a4e395a4f3f0fa803a999f8d42ec36d10bd1209edf1846b6d8765bf49094bb9bdfa63240906a342518d60293c951751aa12ca3e0e147aac3069b9426cddbc3f5", + "encoding": "01023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee294ade5f8af74a9b8a97b8d6493e7077b1068724983c7082700e7e87c46aca8be020002bc674f3eda0f0f1607333cae2df82d0faf9482a3d48d4ef527d72eb53634c86f5645d1ed370ff0d238f06c20c7803273d49d494da689bebc743a4709fddceb0b", "results": [ { "depth": 2, "leaf": { - "commitment": "04b52668627392b9835a3d466f1a7075fc38384b213038d29af41965125527de", + "commitment": "94ade5f8af74a9b8a97b8d6493e7077b1068724983c7082700e7e87c46aca8be", "vrf_output": "3ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee2" }, "result_type": 2 @@ -824,16 +824,16 @@ { "elements": [ "0000000000000000000000000000000000000000000000000000000000000000", - "042c2f0763f5c2709ee30c1d2c81713c24473bf9b4fd7be427d8f5c1f9e4e48e", - "f54b93e8599ceba957634d0090cd29a72ce2c96f9c05a2207e887cb12c2bc098", - "50788307ad03f9b7d157b354de631f492f3c3ec7fec4f88afe98159a6841b2bf", - "bd473ec6ac059889c9a5f8e45da17bc43f312002382d2fd1b2a39d4794347c2b", - "f12d2f42775db566cb45f9addcbb47a102a6e46b2d92a4d64e490bf0c61cae1d", + "c6ecaa862f5b28ff313715b24a46427753e2b38f32b94ccca2c30446e0a60e14", + "2f09828664cedba8e8593eab6f760d5b16f226860679949a667ff12c9fde2c17", + "9c0bcc0cef284c9d05f0dbcef8b0538503acd093c46fd35db325995d52e253bc", + "3c7da02d444c7b3c032e73bf88eab8c4fe26756f0a7519722b0a3a6cb1951947", + "bc5e673146aa384ef762910326499cb24e9421d52ca1a3e6b1605bd7a655cc17", "0000000000000000000000000000000000000000000000000000000000000000", - "9ad10b4233cfe055203ec94535ed3e800cfeb0eb8a48dcfdb5dccd3b03a0790c", - "9d3eed8cb787c06a072e8bdd72800967cdaeb1ec667e700810a21c195bd08d44" + "787d27c6a37feaa7de59b7dcb7478b0bd43e1b377bcf02f9e5dbf7a6d94d8596", + "1cf604adf10fafc0ad71f2a82784428508be347f1258e4a6c923320222ffa1a7" ], - "encoding": "0501040104026bd49bee46d071009be5abee995e7aaae04a9ecf76f17452a6aa50d721add5a4bcb471e078f55601cd4866e188192caac23738007f61686ba217f482eb4f53540302bf73c61cd407cd359603e4f48889c19c38f15ad5bb8c771f52a9954cd2883f72cfa7721bd57f49a505aa773568b7293a6a6611dc7479032b8cb9e57abb499fdd05030500090000000000000000000000000000000000000000000000000000000000000000042c2f0763f5c2709ee30c1d2c81713c24473bf9b4fd7be427d8f5c1f9e4e48ef54b93e8599ceba957634d0090cd29a72ce2c96f9c05a2207e887cb12c2bc09850788307ad03f9b7d157b354de631f492f3c3ec7fec4f88afe98159a6841b2bfbd473ec6ac059889c9a5f8e45da17bc43f312002382d2fd1b2a39d4794347c2bf12d2f42775db566cb45f9addcbb47a102a6e46b2d92a4d64e490bf0c61cae1d00000000000000000000000000000000000000000000000000000000000000009ad10b4233cfe055203ec94535ed3e800cfeb0eb8a48dcfdb5dccd3b03a0790c9d3eed8cb787c06a072e8bdd72800967cdaeb1ec667e700810a21c195bd08d44", + "encoding": "0501040104026bd49bee46d071009be5abee995e7aaae04a9ecf76f17452a6aa50d721add5a47339b2e2d6d000eb70a95cd060b7036ab5c0888bb75632438b0fea86f5c876120302bf73c61cd407cd359603e4f48889c19c38f15ad5bb8c771f52a9954cd2883f72d732437bfd5fe3a22d870f16f6bb583b96cbf9a84b4512223d768ee4a31f7ca005030500090000000000000000000000000000000000000000000000000000000000000000c6ecaa862f5b28ff313715b24a46427753e2b38f32b94ccca2c30446e0a60e142f09828664cedba8e8593eab6f760d5b16f226860679949a667ff12c9fde2c179c0bcc0cef284c9d05f0dbcef8b0538503acd093c46fd35db325995d52e253bc3c7da02d444c7b3c032e73bf88eab8c4fe26756f0a7519722b0a3a6cb1951947bc5e673146aa384ef762910326499cb24e9421d52ca1a3e6b1605bd7a655cc170000000000000000000000000000000000000000000000000000000000000000787d27c6a37feaa7de59b7dcb7478b0bd43e1b377bcf02f9e5dbf7a6d94d85961cf604adf10fafc0ad71f2a82784428508be347f1258e4a6c923320222ffa1a7", "results": [ { "depth": 4, @@ -846,7 +846,7 @@ { "depth": 3, "leaf": { - "commitment": "bcb471e078f55601cd4866e188192caac23738007f61686ba217f482eb4f5354", + "commitment": "7339b2e2d6d000eb70a95cd060b7036ab5c0888bb75632438b0fea86f5c87612", "vrf_output": "6bd49bee46d071009be5abee995e7aaae04a9ecf76f17452a6aa50d721add5a4" }, "result_type": 2 @@ -854,7 +854,7 @@ { "depth": 5, "leaf": { - "commitment": "cfa7721bd57f49a505aa773568b7293a6a6611dc7479032b8cb9e57abb499fdd", + "commitment": "d732437bfd5fe3a22d870f16f6bb583b96cbf9a84b4512223d768ee4a31f7ca0", "vrf_output": "bf73c61cd407cd359603e4f48889c19c38f15ad5bb8c771f52a9954cd2883f72" }, "result_type": 2 @@ -867,13 +867,13 @@ }, { "elements": [ - "ca63cfaa8da8dffcb1d0195692a1429f01108ff9afc7cb382c0ec94843c044d6", - "33cf82bc72451ed98875c56451e911f864ec4123c3c8bd881c0f0b184ed217d7", - "75dc620d42d772b587f21da08732fafe2213571fc0af03ac4984af747e80d1b0", - "b3dae0a47ed1609a21718b056c17d48f828080f4352e95bbb809bfa6876d72c2", - "e27b64682af17ad3c7422d9136f74a18e7fbf0234d49d3d684e560be9e9d2a9d" + "c14cc1452cfa2aec748743d5668c4c4e9cd62a0274179154b62f7a07e3038e46", + "d6b5fdaec39382cf43f61d6afc0a5c9165d9e0a7da30c67e65c6ee2f1d1cd467", + "6331dda10ec731f775326c4a27aab841a5a67020ca4d190965e1444db091b5eb", + "fb35c9ad6769a61d7c400ce90b29dafae3760939bac398644381e87e3e48f648", + "e1a79bcd968c9c21695995545705331ec7836fc940b95ecb9512686a98484bbe" ], - "encoding": "0101050005ca63cfaa8da8dffcb1d0195692a1429f01108ff9afc7cb382c0ec94843c044d633cf82bc72451ed98875c56451e911f864ec4123c3c8bd881c0f0b184ed217d775dc620d42d772b587f21da08732fafe2213571fc0af03ac4984af747e80d1b0b3dae0a47ed1609a21718b056c17d48f828080f4352e95bbb809bfa6876d72c2e27b64682af17ad3c7422d9136f74a18e7fbf0234d49d3d684e560be9e9d2a9d", + "encoding": "0101050005c14cc1452cfa2aec748743d5668c4c4e9cd62a0274179154b62f7a07e3038e46d6b5fdaec39382cf43f61d6afc0a5c9165d9e0a7da30c67e65c6ee2f1d1cd4676331dda10ec731f775326c4a27aab841a5a67020ca4d190965e1444db091b5ebfb35c9ad6769a61d7c400ce90b29dafae3760939bac398644381e87e3e48f648e1a79bcd968c9c21695995545705331ec7836fc940b95ecb9512686a98484bbe", "results": [ { "depth": 5, @@ -883,13 +883,13 @@ } ], "prefix_roots": [ - "19dcdc6dd242a5ab0fbed01e2e73ae6d0371c51d9f2d0f21d0bfd0a375f090f2" + "79c7d26a87ec1fd45bde9000e7d188711cf949b7e52be81cb1de65b9737114de" ], - "proof": "030000019fb33efa680000019fb33efa680000019fb33efa690301023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee204b52668627392b9835a3d466f1a7075fc38384b213038d29af41965125527de020002a4e395a4f3f0fa803a999f8d42ec36d10bd1209edf1846b6d8765bf49094bb9bdfa63240906a342518d60293c951751aa12ca3e0e147aac3069b9426cddbc3f50501040104026bd49bee46d071009be5abee995e7aaae04a9ecf76f17452a6aa50d721add5a4bcb471e078f55601cd4866e188192caac23738007f61686ba217f482eb4f53540302bf73c61cd407cd359603e4f48889c19c38f15ad5bb8c771f52a9954cd2883f72cfa7721bd57f49a505aa773568b7293a6a6611dc7479032b8cb9e57abb499fdd05030500090000000000000000000000000000000000000000000000000000000000000000042c2f0763f5c2709ee30c1d2c81713c24473bf9b4fd7be427d8f5c1f9e4e48ef54b93e8599ceba957634d0090cd29a72ce2c96f9c05a2207e887cb12c2bc09850788307ad03f9b7d157b354de631f492f3c3ec7fec4f88afe98159a6841b2bfbd473ec6ac059889c9a5f8e45da17bc43f312002382d2fd1b2a39d4794347c2bf12d2f42775db566cb45f9addcbb47a102a6e46b2d92a4d64e490bf0c61cae1d00000000000000000000000000000000000000000000000000000000000000009ad10b4233cfe055203ec94535ed3e800cfeb0eb8a48dcfdb5dccd3b03a0790c9d3eed8cb787c06a072e8bdd72800967cdaeb1ec667e700810a21c195bd08d440101050005ca63cfaa8da8dffcb1d0195692a1429f01108ff9afc7cb382c0ec94843c044d633cf82bc72451ed98875c56451e911f864ec4123c3c8bd881c0f0b184ed217d775dc620d42d772b587f21da08732fafe2213571fc0af03ac4984af747e80d1b0b3dae0a47ed1609a21718b056c17d48f828080f4352e95bbb809bfa6876d72c2e27b64682af17ad3c7422d9136f74a18e7fbf0234d49d3d684e560be9e9d2a9d0119dcdc6dd242a5ab0fbed01e2e73ae6d0371c51d9f2d0f21d0bfd0a375f090f20003a29afb32dd4d5d67100ef992f3e3c8e911817e69df20a317c5423da2a9db022c909a403df5703f9af86f34980f70b3cbc418b4ea83ccafc8a23f3ba1e00158544d748301e746e87403227fc6a73d2f93dee0b97b5d82031414cddb4176238f49", + "proof": "030000019fb36a1a830000019fb36a1a840000019fb36a1a840301023ff1b3e0e4016d2e4616cd0ab1b242c07f7484319e7e5c7bc86a6cb9dd341ee294ade5f8af74a9b8a97b8d6493e7077b1068724983c7082700e7e87c46aca8be020002bc674f3eda0f0f1607333cae2df82d0faf9482a3d48d4ef527d72eb53634c86f5645d1ed370ff0d238f06c20c7803273d49d494da689bebc743a4709fddceb0b0501040104026bd49bee46d071009be5abee995e7aaae04a9ecf76f17452a6aa50d721add5a47339b2e2d6d000eb70a95cd060b7036ab5c0888bb75632438b0fea86f5c876120302bf73c61cd407cd359603e4f48889c19c38f15ad5bb8c771f52a9954cd2883f72d732437bfd5fe3a22d870f16f6bb583b96cbf9a84b4512223d768ee4a31f7ca005030500090000000000000000000000000000000000000000000000000000000000000000c6ecaa862f5b28ff313715b24a46427753e2b38f32b94ccca2c30446e0a60e142f09828664cedba8e8593eab6f760d5b16f226860679949a667ff12c9fde2c179c0bcc0cef284c9d05f0dbcef8b0538503acd093c46fd35db325995d52e253bc3c7da02d444c7b3c032e73bf88eab8c4fe26756f0a7519722b0a3a6cb1951947bc5e673146aa384ef762910326499cb24e9421d52ca1a3e6b1605bd7a655cc170000000000000000000000000000000000000000000000000000000000000000787d27c6a37feaa7de59b7dcb7478b0bd43e1b377bcf02f9e5dbf7a6d94d85961cf604adf10fafc0ad71f2a82784428508be347f1258e4a6c923320222ffa1a70101050005c14cc1452cfa2aec748743d5668c4c4e9cd62a0274179154b62f7a07e3038e46d6b5fdaec39382cf43f61d6afc0a5c9165d9e0a7da30c67e65c6ee2f1d1cd4676331dda10ec731f775326c4a27aab841a5a67020ca4d190965e1444db091b5ebfb35c9ad6769a61d7c400ce90b29dafae3760939bac398644381e87e3e48f648e1a79bcd968c9c21695995545705331ec7836fc940b95ecb9512686a98484bbe0179c7d26a87ec1fd45bde9000e7d188711cf949b7e52be81cb1de65b9737114de00036f20892fa41579a401ead7b301a29879dc175d77be3ccb3df0dc044603e11d1a62de86488ed52fe35ceb2eb21b3bbd3388d2c1b77e14b50e495439f2e1a9c8f65539e438de57165584fd8822f05eb9814f1ee1de02952e89870caed964bc437c", "timestamps": [ - 1785418676840, - 1785418676840, - 1785418676841 + 1785421503107, + 1785421503108, + 1785421503108 ] } }, @@ -897,18 +897,18 @@ "name": "first-version-of-a-new-label", "input": { "entry_timestamps": [ - 1785418676844, - 1785418676845, - 1785418676845, - 1785418676845, - 1785418676845, - 1785418676845, - 1785418676846 + 1785421503113, + 1785421503114, + 1785421503114, + 1785421503114, + 1785421503115, + 1785421503115, + 1785421503115 ], "label": "64617665406578616d706c652e636f6d", "ladder": [ { - "commitment": "cad914b332f45853fba14dd72f0450adeaf98516ff409f4c54a9ee9195f76dd2", + "commitment": "c86033a1c890c92a4821d104f7148ec0ba6ce4eb289a15ddab43053322bde6f8", "version": 0, "vrf_output": "8b4273dd3f9d2900d8c8c41cb904917c6a144fec131060c7529691f115a903f4" }, @@ -1035,23 +1035,23 @@ }, "distinguished": false, "inclusion": [ - "134b3be49f10532aaca0e41e948abcb9ac11a9349bc6a9c592ca7ea612ac8de6", - "f9163de5ce3a2af5bf932355c665eccc94a8275e9984af309e7c8fc218168c1a", - "202ed9d5eeac44881445664730e6c2836f3f763285c0eaa52078aa9284a3978c" + "ed623f27baaea5f527320ebb878eac4cc67f5d264e66c5d4db72dd7c12c6f7e5", + "b34730f66f91918f28ad0dbcfb8a01e1eee44a1a6104794b611a777f21277e41", + "fc95931de3c922a95fc25532941e84562e16a925dbdef6765fff8adb41df533b" ], "prefix_proofs": [ { "elements": [ - "11c2be6475eaadb4b38220dc85da45a64ec16c1ab86882fd70b1caa25b180618", - "75c0864e3c7c4681b9adee3f6eef89ba2c5b75d4ed7fd3c2662fc24230ac71aa", - "7b5b04d036377374c2fdb74a9d9f99e5962354da41c85da9df47cd1c518bb671" + "cc0951290dabb737d8fcf960282fef24cef804ad0455f0e2138af680beae7ad0", + "f49a10c0d641b173a7e514650ae313ba344f4013cd60858bf24bb8bb27d54094", + "d7878c1efb2d0606a340f2c1eff62ae1920327b7564e7ff4bcc16b5969c85edf" ], - "encoding": "01028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8d7cd5dc9d76bc8d4be2654cf6a0973a57df5feb7190f482050f2074b7daf476403000311c2be6475eaadb4b38220dc85da45a64ec16c1ab86882fd70b1caa25b18061875c0864e3c7c4681b9adee3f6eef89ba2c5b75d4ed7fd3c2662fc24230ac71aa7b5b04d036377374c2fdb74a9d9f99e5962354da41c85da9df47cd1c518bb671", + "encoding": "01028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8b948752845511f07442474156840c48a86ec0d8e8d76b1463458f592b9171785030003cc0951290dabb737d8fcf960282fef24cef804ad0455f0e2138af680beae7ad0f49a10c0d641b173a7e514650ae313ba344f4013cd60858bf24bb8bb27d54094d7878c1efb2d0606a340f2c1eff62ae1920327b7564e7ff4bcc16b5969c85edf", "results": [ { "depth": 3, "leaf": { - "commitment": "d7cd5dc9d76bc8d4be2654cf6a0973a57df5feb7190f482050f2074b7daf4764", + "commitment": "b948752845511f07442474156840c48a86ec0d8e8d76b1463458f592b9171785", "vrf_output": "8bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8" }, "result_type": 2 @@ -1060,17 +1060,17 @@ }, { "elements": [ - "c48436b60c06ae48b2f29bfe130b2d41e75973550edc7115ac71c71241661de1", - "43688eb81c0066ae14762c5784f3edc5c8c7e9109ceda8d53a72135d8e297c9b", + "2b43d1ede73659273c3ce20483f22afe5318fce978f4d2ea8a069cfc58327b0b", + "be613b4a0a1d5c3d7b469e1c1c4cc2a6d3030f5340ce271da3d7c9a51169ff65", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", - "fe638ecad72ed0daab99fcb8422c2beaf34783977a1443e498a5df8baa4ec63c", + "b7ceb0594e8eea96b0472dcbdc5a3f564ee109d8f9ca157b63cc9a0e0f9a8b6b", "0000000000000000000000000000000000000000000000000000000000000000", - "ccf5832a398fa2f8f8dfeb574cee6dbdbc217d58d70dd0d0f9b567d354763540", - "17883d9f39a21f38ef6426c853a92491618bfc8b47e7ca50e0a6823d0eb4e01a", - "2ee07fe7e750df9197145415fe98c74fd055afbdee5cae273b52322b040a7263" + "f47d77b550c0ac4fe63951bc4de648abaedeb5f02c3d9ce6361136b6807bfcda", + "359558469132d511249007fe52988aed380dfdc38550f1dd34ddcf4d47dc01c2", + "75de8dfb068d5dc44891afca9dacac8ca4cb943c31e2eb2f3e41c81cbd29ee50" ], - "encoding": "02010903030009c48436b60c06ae48b2f29bfe130b2d41e75973550edc7115ac71c71241661de143688eb81c0066ae14762c5784f3edc5c8c7e9109ceda8d53a72135d8e297c9b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fe638ecad72ed0daab99fcb8422c2beaf34783977a1443e498a5df8baa4ec63c0000000000000000000000000000000000000000000000000000000000000000ccf5832a398fa2f8f8dfeb574cee6dbdbc217d58d70dd0d0f9b567d35476354017883d9f39a21f38ef6426c853a92491618bfc8b47e7ca50e0a6823d0eb4e01a2ee07fe7e750df9197145415fe98c74fd055afbdee5cae273b52322b040a7263", + "encoding": "020109030300092b43d1ede73659273c3ce20483f22afe5318fce978f4d2ea8a069cfc58327b0bbe613b4a0a1d5c3d7b469e1c1c4cc2a6d3030f5340ce271da3d7c9a51169ff6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b7ceb0594e8eea96b0472dcbdc5a3f564ee109d8f9ca157b63cc9a0e0f9a8b6b0000000000000000000000000000000000000000000000000000000000000000f47d77b550c0ac4fe63951bc4de648abaedeb5f02c3d9ce6361136b6807bfcda359558469132d511249007fe52988aed380dfdc38550f1dd34ddcf4d47dc01c275de8dfb068d5dc44891afca9dacac8ca4cb943c31e2eb2f3e41c81cbd29ee50", "results": [ { "depth": 9, @@ -1084,13 +1084,13 @@ } ], "prefix_roots": [ - "b54fc03428e21b95b75e9dd20902c0f04314a4804d0699554e2ff92a5bf73a13" + "677d4e970145992d00080dc26995c0f5dd26614d5e0f634c76e291a2d3ff4d9f" ], - "proof": "030000019fb33efa6d0000019fb33efa6d0000019fb33efa6e0201028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8d7cd5dc9d76bc8d4be2654cf6a0973a57df5feb7190f482050f2074b7daf476403000311c2be6475eaadb4b38220dc85da45a64ec16c1ab86882fd70b1caa25b18061875c0864e3c7c4681b9adee3f6eef89ba2c5b75d4ed7fd3c2662fc24230ac71aa7b5b04d036377374c2fdb74a9d9f99e5962354da41c85da9df47cd1c518bb67102010903030009c48436b60c06ae48b2f29bfe130b2d41e75973550edc7115ac71c71241661de143688eb81c0066ae14762c5784f3edc5c8c7e9109ceda8d53a72135d8e297c9b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fe638ecad72ed0daab99fcb8422c2beaf34783977a1443e498a5df8baa4ec63c0000000000000000000000000000000000000000000000000000000000000000ccf5832a398fa2f8f8dfeb574cee6dbdbc217d58d70dd0d0f9b567d35476354017883d9f39a21f38ef6426c853a92491618bfc8b47e7ca50e0a6823d0eb4e01a2ee07fe7e750df9197145415fe98c74fd055afbdee5cae273b52322b040a726301b54fc03428e21b95b75e9dd20902c0f04314a4804d0699554e2ff92a5bf73a130003134b3be49f10532aaca0e41e948abcb9ac11a9349bc6a9c592ca7ea612ac8de6f9163de5ce3a2af5bf932355c665eccc94a8275e9984af309e7c8fc218168c1a202ed9d5eeac44881445664730e6c2836f3f763285c0eaa52078aa9284a3978c", + "proof": "030000019fb36a1a8a0000019fb36a1a8b0000019fb36a1a8b0201028bae45f7cb557efa69cdfc5607df19343b91071c69818c06a124adec721d3ba8b948752845511f07442474156840c48a86ec0d8e8d76b1463458f592b9171785030003cc0951290dabb737d8fcf960282fef24cef804ad0455f0e2138af680beae7ad0f49a10c0d641b173a7e514650ae313ba344f4013cd60858bf24bb8bb27d54094d7878c1efb2d0606a340f2c1eff62ae1920327b7564e7ff4bcc16b5969c85edf020109030300092b43d1ede73659273c3ce20483f22afe5318fce978f4d2ea8a069cfc58327b0bbe613b4a0a1d5c3d7b469e1c1c4cc2a6d3030f5340ce271da3d7c9a51169ff6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b7ceb0594e8eea96b0472dcbdc5a3f564ee109d8f9ca157b63cc9a0e0f9a8b6b0000000000000000000000000000000000000000000000000000000000000000f47d77b550c0ac4fe63951bc4de648abaedeb5f02c3d9ce6361136b6807bfcda359558469132d511249007fe52988aed380dfdc38550f1dd34ddcf4d47dc01c275de8dfb068d5dc44891afca9dacac8ca4cb943c31e2eb2f3e41c81cbd29ee5001677d4e970145992d00080dc26995c0f5dd26614d5e0f634c76e291a2d3ff4d9f0003ed623f27baaea5f527320ebb878eac4cc67f5d264e66c5d4db72dd7c12c6f7e5b34730f66f91918f28ad0dbcfb8a01e1eee44a1a6104794b611a777f21277e41fc95931de3c922a95fc25532941e84562e16a925dbdef6765fff8adb41df533b", "timestamps": [ - 1785418676845, - 1785418676845, - 1785418676846 + 1785421503114, + 1785421503115, + 1785421503115 ] } }, @@ -1098,13 +1098,13 @@ "name": "distinguished-entry-asks-for-nothing", "input": { "entry_timestamps": [ - 1785418676848, - 1785418676848, - 1785418676848, - 1785418676849, - 1785418676849, - 1785418676849, - 1785418676849 + 1785421503118, + 1785421503119, + 1785421503119, + 1785421503120, + 1785421503120, + 1785421503120, + 1785421503120 ], "label": "6361726f6c406578616d706c652e636f6d", "ladder": [], @@ -1222,21 +1222,21 @@ "expect": { "distinguished": true, "inclusion": [ - "0b24b57cd192bb561a0469bef46ceea35078b0a464fa22ef7a8d5b0f48da2acf", - "a36aecfa91e841c073600f5efceae35941c5e3de8bf732ac20eedb28cd7f1bd1", - "4e06f1a1d06005043a2cc1704e0f85d41d3a17df5017eda2492804043239bf00" + "aca3fa31eaebc98dfe528e49d2e5c34644272767f4b656a8f8bda17582212214", + "d9173714b6f266dbea33d9868e1bc91870c5b8a79b167ca8e3b60de3ed6ccf2b", + "26d89f5011eee48faca343abf6aa71932c4eb3862060ee5c1abb7d2fbba60689" ], "prefix_proofs": [], "prefix_roots": [ - "04c126a99decf8ab0470612437a006918327f108e8590ca687e37c31bb7f1478", - "ae3b68e904d63dfbeac479d7386529b1fb5975e35216bd4f6c81754a71c78952", - "debacfeab3171fd25996ff08f47e1456cae6591a6604bb77767f534c235c3b1d" + "c9e7585be2cfd2b4602f7c40f2b1627d267cf0a0f8ea16a9c084624b31ce0ad1", + "1e76722d680fb8ffa2eb568116401af545d3a73f0437baf484c9466108ab5a9e", + "f52c832789386c0cbfb6c3fbaf66f35708ee26b9d3e5d6d3577a1f33b6c57505" ], - "proof": "030000019fb33efa710000019fb33efa710000019fb33efa71000304c126a99decf8ab0470612437a006918327f108e8590ca687e37c31bb7f1478ae3b68e904d63dfbeac479d7386529b1fb5975e35216bd4f6c81754a71c78952debacfeab3171fd25996ff08f47e1456cae6591a6604bb77767f534c235c3b1d00030b24b57cd192bb561a0469bef46ceea35078b0a464fa22ef7a8d5b0f48da2acfa36aecfa91e841c073600f5efceae35941c5e3de8bf732ac20eedb28cd7f1bd14e06f1a1d06005043a2cc1704e0f85d41d3a17df5017eda2492804043239bf00", + "proof": "030000019fb36a1a900000019fb36a1a900000019fb36a1a900003c9e7585be2cfd2b4602f7c40f2b1627d267cf0a0f8ea16a9c084624b31ce0ad11e76722d680fb8ffa2eb568116401af545d3a73f0437baf484c9466108ab5a9ef52c832789386c0cbfb6c3fbaf66f35708ee26b9d3e5d6d3577a1f33b6c575050003aca3fa31eaebc98dfe528e49d2e5c34644272767f4b656a8f8bda17582212214d9173714b6f266dbea33d9868e1bc91870c5b8a79b167ca8e3b60de3ed6ccf2b26d89f5011eee48faca343abf6aa71932c4eb3862060ee5c1abb7d2fbba60689", "timestamps": [ - 1785418676849, - 1785418676849, - 1785418676849 + 1785421503120, + 1785421503120, + 1785421503120 ] } }, @@ -1244,18 +1244,18 @@ "name": "distinguished-entry-additional-proof", "input": { "entry_timestamps": [ - 1785418676851, - 1785418676851, - 1785418676851, - 1785418676851, - 1785418676852, - 1785418676852, - 1785418676852 + 1785421503122, + 1785421503123, + 1785421503123, + 1785421503124, + 1785421503124, + 1785421503124, + 1785421503124 ], "label": "6572696e406578616d706c652e636f6d", "ladder": [ { - "commitment": "53ad0bc65abebf205fa2ec2eb40c98e6a675710f64964841595f42ebab2182c4", + "commitment": "7011ba97727d9a4194679794660df2e217e0e3a94b6baaa515fb635f6823a0c2", "version": 2, "vrf_output": "84c552e49bfdd74786d8b71e7729bcbaab61fdcab6e9277d907d327e7a8edf66" } @@ -1375,20 +1375,20 @@ "expect": { "distinguished": true, "inclusion": [ - "d84c673ad267bdf353300ba23a669755ac547c8ec0f2ec962614177fb3ce0ed1", - "25c5a148daed1745ea121f7183f117315395cf8bb61755572a5c452f210a2285", - "a51d662b7f603c75153fb19b2a52bf436e6f084196484f769a80fb83fdb654f7" + "1730c4427a904d70b4f190b1b114fd8ae69b94ed6a08ca732f031c651aef68b8", + "4109df81c164c69c409e3a8ce0dd2016b7e0f5b963f5c14759b70b3c5a558ecc", + "d4cce129e8b1f1c066b7bc3344ef13567d42b0bcec362399036f4f755352e3f5" ], "prefix_proofs": [ { "elements": [ - "ac5c71730cdd330223661519203322c992345424b5a18de8c45508b3ad463a64", - "5dbab3f3d08923dedf06e2ab822c2fe7f6ab73407ac64f14e3c12fac262862b8", - "8d90693c0ce2e02ca13e3df21dc08fe21c350439e6f5f488475cafa46be7353a", - "76f486f8ffab33b06a8b74efe6b8ad3fb4b7fe06d29b964bb1275a5661854bdb", - "efedc1eec2d22711aa68e5b93acabf9a0e055b612fdc061888be84c9916bdab4" + "3e5a4fa0bb568a025274fecdb14c556ddcf41c156cfa18f5ac0fc29399359af6", + "385cf8e7bfd4394ca4d6ab109b7bd088e714921440adb7251a1a96efabc43ce3", + "bed40b58cdd25fa57ce85a6a1c58429be287b4f1dedab19450640e661fdd2326", + "e85ac26baf07ba43e2bf6084b69b1a4916ccbe9011eee4ad374e82ea0e33ada3", + "7020e94a02ffe041b22c0ad328057478d6cc27448c4069fe517ba25cae36f8dc" ], - "encoding": "0101050005ac5c71730cdd330223661519203322c992345424b5a18de8c45508b3ad463a645dbab3f3d08923dedf06e2ab822c2fe7f6ab73407ac64f14e3c12fac262862b88d90693c0ce2e02ca13e3df21dc08fe21c350439e6f5f488475cafa46be7353a76f486f8ffab33b06a8b74efe6b8ad3fb4b7fe06d29b964bb1275a5661854bdbefedc1eec2d22711aa68e5b93acabf9a0e055b612fdc061888be84c9916bdab4", + "encoding": "01010500053e5a4fa0bb568a025274fecdb14c556ddcf41c156cfa18f5ac0fc29399359af6385cf8e7bfd4394ca4d6ab109b7bd088e714921440adb7251a1a96efabc43ce3bed40b58cdd25fa57ce85a6a1c58429be287b4f1dedab19450640e661fdd2326e85ac26baf07ba43e2bf6084b69b1a4916ccbe9011eee4ad374e82ea0e33ada37020e94a02ffe041b22c0ad328057478d6cc27448c4069fe517ba25cae36f8dc", "results": [ { "depth": 5, @@ -1398,14 +1398,14 @@ } ], "prefix_roots": [ - "6a1d64500bbc4cea5e9a12f19b5a586585431d2c8684556495e0250d241eaa5d", - "eab1d321f433188b31dc610ff28834a8529e627b205c8551a9d04943f24b485e" + "45cc567747bf1b3c737cfcbf28d0d14746d749faa35d140717dc187faefc09ef", + "292afc180e90bf08644672c829397084214452a4afd663d5347168b5cc41d4a3" ], - "proof": "030000019fb33efa730000019fb33efa740000019fb33efa74010101050005ac5c71730cdd330223661519203322c992345424b5a18de8c45508b3ad463a645dbab3f3d08923dedf06e2ab822c2fe7f6ab73407ac64f14e3c12fac262862b88d90693c0ce2e02ca13e3df21dc08fe21c350439e6f5f488475cafa46be7353a76f486f8ffab33b06a8b74efe6b8ad3fb4b7fe06d29b964bb1275a5661854bdbefedc1eec2d22711aa68e5b93acabf9a0e055b612fdc061888be84c9916bdab4026a1d64500bbc4cea5e9a12f19b5a586585431d2c8684556495e0250d241eaa5deab1d321f433188b31dc610ff28834a8529e627b205c8551a9d04943f24b485e0003d84c673ad267bdf353300ba23a669755ac547c8ec0f2ec962614177fb3ce0ed125c5a148daed1745ea121f7183f117315395cf8bb61755572a5c452f210a2285a51d662b7f603c75153fb19b2a52bf436e6f084196484f769a80fb83fdb654f7", + "proof": "030000019fb36a1a940000019fb36a1a940000019fb36a1a940101010500053e5a4fa0bb568a025274fecdb14c556ddcf41c156cfa18f5ac0fc29399359af6385cf8e7bfd4394ca4d6ab109b7bd088e714921440adb7251a1a96efabc43ce3bed40b58cdd25fa57ce85a6a1c58429be287b4f1dedab19450640e661fdd2326e85ac26baf07ba43e2bf6084b69b1a4916ccbe9011eee4ad374e82ea0e33ada37020e94a02ffe041b22c0ad328057478d6cc27448c4069fe517ba25cae36f8dc0245cc567747bf1b3c737cfcbf28d0d14746d749faa35d140717dc187faefc09ef292afc180e90bf08644672c829397084214452a4afd663d5347168b5cc41d4a300031730c4427a904d70b4f190b1b114fd8ae69b94ed6a08ca732f031c651aef68b84109df81c164c69c409e3a8ce0dd2016b7e0f5b963f5c14759b70b3c5a558eccd4cce129e8b1f1c066b7bc3344ef13567d42b0bcec362399036f4f755352e3f5", "timestamps": [ - 1785418676851, - 1785418676852, - 1785418676852 + 1785421503124, + 1785421503124, + 1785421503124 ] } }, @@ -1413,18 +1413,18 @@ "name": "single-version-with-advertised-size", "input": { "entry_timestamps": [ - 1785418676854, - 1785418676855, - 1785418676855, - 1785418676856, - 1785418676856, - 1785418676856, - 1785418676857 + 1785421503127, + 1785421503127, + 1785421503128, + 1785421503128, + 1785421503128, + 1785421503128, + 1785421503129 ], "label": "616c696365406578616d706c652e636f6d", "ladder": [ { - "commitment": "1f792111a6e1eb38ae6d16954cf1f67afe4791182267b897ddbd834d36b8f963", + "commitment": "16735168adaf31346d97c53e9708785d8ee282074c3dfba89d85491ccacb4cbf", "version": 6, "vrf_output": "599424025a070d0e48913585265a30210ffe3416005c77c2354094f14c6358a1" }, @@ -1559,27 +1559,27 @@ "prefix_proofs": [ { "elements": [ - "d198eb7219537107d5bfea56ed09841f9ed8beb7e38caf711c40a898cd7f1d88", - "e0af2106e19dbab6d52dc349fa24cb9c915d88bb1c3e19dc44f3d9e4fd08b425", + "1def0b73f6a7447344e8b97e7ca705a6d1fa9676a1806706490e16b00cde24f8", + "0a46326b80aeadaa953ed8c74f7537697a0f6ed85e17df8376f745d2fe82d87c", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", - "3e8f80a7e1d2341ef704527aeceb6975f7bdc4125aff7324ab809211a04365ec", + "cd67bb83420c504e576fdb6ddeae051b7d6854ae4ed49821117b080564342834", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", - "175451c08ee64763e31fca4ea9b82d65e438dcb45ce5431bec820e2e0679f16f", - "bf2f5448a08f4a2a1eceda952ab00c3ba4effbbef6ed068da720d0572509db8f", - "cc4ecf316f6396b481e998b102e5f2e0631d063e547c583df3b743a16ee432dd", - "ec71442eeb2526bbae51c6a379805d89cb9406409b78f03b1a2856c21c0c3050", - "5963b7adc9e2a26269cbff13ffd290ae9bdf5ca91a9b9ad6c65562791547008d" + "0ce100640be4bded834783b37cddc5205f9ca62ede791a7950391efb7876f341", + "a769cb5ef8d9b2f38fa5f5e7b7a7e483dc156437e989468d13dfd019b50e4e4b", + "984deed0558df270302baa5886c47a1a3e6ac6c6ac207f61f1f27be9ad37bf97", + "2231d8d602907328bc9640440cbfe08ecdc76fe50fe9afbf0d94c5419c8b60e0", + "61de2a3aa99e014eb484a49981294b330d246a424800dceffbcf724b4acfa6ae" ], - "encoding": "020284c552e49bfdd74786d8b71e7729bcbaab61fdcab6e9277d907d327e7a8edf66c0feb2bae7d3dd4e3b3539e278c5a102592300e924d68fb41395b55f80dd686505010b000ed198eb7219537107d5bfea56ed09841f9ed8beb7e38caf711c40a898cd7f1d88e0af2106e19dbab6d52dc349fa24cb9c915d88bb1c3e19dc44f3d9e4fd08b4250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e8f80a7e1d2341ef704527aeceb6975f7bdc4125aff7324ab809211a04365ec000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000175451c08ee64763e31fca4ea9b82d65e438dcb45ce5431bec820e2e0679f16fbf2f5448a08f4a2a1eceda952ab00c3ba4effbbef6ed068da720d0572509db8fcc4ecf316f6396b481e998b102e5f2e0631d063e547c583df3b743a16ee432ddec71442eeb2526bbae51c6a379805d89cb9406409b78f03b1a2856c21c0c30505963b7adc9e2a26269cbff13ffd290ae9bdf5ca91a9b9ad6c65562791547008d", + "encoding": "020284c552e49bfdd74786d8b71e7729bcbaab61fdcab6e9277d907d327e7a8edf6663e061ef850b4b8f1f39618f93d746771544b54445342b13e7b98ce1acf1740105010b000e1def0b73f6a7447344e8b97e7ca705a6d1fa9676a1806706490e16b00cde24f80a46326b80aeadaa953ed8c74f7537697a0f6ed85e17df8376f745d2fe82d87c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd67bb83420c504e576fdb6ddeae051b7d6854ae4ed49821117b0805643428340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ce100640be4bded834783b37cddc5205f9ca62ede791a7950391efb7876f341a769cb5ef8d9b2f38fa5f5e7b7a7e483dc156437e989468d13dfd019b50e4e4b984deed0558df270302baa5886c47a1a3e6ac6c6ac207f61f1f27be9ad37bf972231d8d602907328bc9640440cbfe08ecdc76fe50fe9afbf0d94c5419c8b60e061de2a3aa99e014eb484a49981294b330d246a424800dceffbcf724b4acfa6ae", "results": [ { "depth": 5, "leaf": { - "commitment": "c0feb2bae7d3dd4e3b3539e278c5a102592300e924d68fb41395b55f80dd6865", + "commitment": "63e061ef850b4b8f1f39618f93d746771544b54445342b13e7b98ce1acf17401", "vrf_output": "84c552e49bfdd74786d8b71e7729bcbaab61fdcab6e9277d907d327e7a8edf66" }, "result_type": 2 @@ -1592,12 +1592,12 @@ } ], "prefix_roots": [ - "f5b7c3a7d6f1a93c997f8d61735302c50648a13d1639d7bfb9be31d2b9a23252" + "f58754a6457eaa33ddd7f26909308d955a447f2d7cc58f2a40b1e0fd250dae0d" ], - "proof": "020000019fb33efa780000019fb33efa7901020284c552e49bfdd74786d8b71e7729bcbaab61fdcab6e9277d907d327e7a8edf66c0feb2bae7d3dd4e3b3539e278c5a102592300e924d68fb41395b55f80dd686505010b000ed198eb7219537107d5bfea56ed09841f9ed8beb7e38caf711c40a898cd7f1d88e0af2106e19dbab6d52dc349fa24cb9c915d88bb1c3e19dc44f3d9e4fd08b4250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e8f80a7e1d2341ef704527aeceb6975f7bdc4125aff7324ab809211a04365ec000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000175451c08ee64763e31fca4ea9b82d65e438dcb45ce5431bec820e2e0679f16fbf2f5448a08f4a2a1eceda952ab00c3ba4effbbef6ed068da720d0572509db8fcc4ecf316f6396b481e998b102e5f2e0631d063e547c583df3b743a16ee432ddec71442eeb2526bbae51c6a379805d89cb9406409b78f03b1a2856c21c0c30505963b7adc9e2a26269cbff13ffd290ae9bdf5ca91a9b9ad6c65562791547008d01f5b7c3a7d6f1a93c997f8d61735302c50648a13d1639d7bfb9be31d2b9a232520000", + "proof": "020000019fb36a1a980000019fb36a1a9901020284c552e49bfdd74786d8b71e7729bcbaab61fdcab6e9277d907d327e7a8edf6663e061ef850b4b8f1f39618f93d746771544b54445342b13e7b98ce1acf1740105010b000e1def0b73f6a7447344e8b97e7ca705a6d1fa9676a1806706490e16b00cde24f80a46326b80aeadaa953ed8c74f7537697a0f6ed85e17df8376f745d2fe82d87c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd67bb83420c504e576fdb6ddeae051b7d6854ae4ed49821117b0805643428340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ce100640be4bded834783b37cddc5205f9ca62ede791a7950391efb7876f341a769cb5ef8d9b2f38fa5f5e7b7a7e483dc156437e989468d13dfd019b50e4e4b984deed0558df270302baa5886c47a1a3e6ac6c6ac207f61f1f27be9ad37bf972231d8d602907328bc9640440cbfe08ecdc76fe50fe9afbf0d94c5419c8b60e061de2a3aa99e014eb484a49981294b330d246a424800dceffbcf724b4acfa6ae01f58754a6457eaa33ddd7f26909308d955a447f2d7cc58f2a40b1e0fd250dae0d0000", "timestamps": [ - 1785418676856, - 1785418676857 + 1785421503128, + 1785421503129 ] } } diff --git a/interop/vectors/vrf-p256.json b/interop/vectors/vrf-p256.json new file mode 100644 index 0000000..02a0d6f --- /dev/null +++ b/interop/vectors/vrf-p256.json @@ -0,0 +1,165 @@ +{ + "primitive": "vrf", + "draft": "draft-ietf-keytrans-protocol-05 §11.7", + "generator": { + "impl": "katie", + "sha": "00da52541f6ae6a7f3905181e2ba9de8ec0d6cdc" + }, + "cipher_suite": 1, + "notes": "ECVRF-P256-SHA256-TAI (RFC 9381) over the presentation-language encoding of a VrfInput. Unlike the Ed25519 suite there is no truncation — beta_string is already VRF.Nh = 32 bytes — the integers are big-endian, an encoded point is 33 bytes SEC1 compressed, and VRF.Np is 81. `vrf_input` is that encoding, which is what alpha_string must be; `output` is the prefix tree search key for the label-version pair; `proof` is VRF.Np bytes. The RFC's own Appendix B vectors pin the ECVRF core and are run directly by the Rust side; these pin the KT wrapping around it. The negative case is a proof for one label-version pair checked against another, which must not verify.", + "cases": [ + { + "name": "empty-label-version-0", + "input": { + "label": "", + "private_key": "5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a", + "public_key": "03f68b1de0f5ce686192f4bd0fd34163863f2e89d385f8bcfb85979533a57ac9b0", + "version": 0 + }, + "expect": { + "output": "cd01d0f2166a3f1c73556fdd6d6e1c042dc6fb0e3dccd7a0a8a85ccbd94ffa4e", + "proof": "02362c043cf8d2149835f5d557939d8d399f375aae9c8182e89d2a47273e85248f196c9c0419e1e09748724131ca0610df20500285fc279659f71b0a5ab6cb19dddc20c2f42057e9dbd432fee386a5b0cf", + "vrf_input": "0000000000" + } + }, + { + "name": "simple", + "input": { + "label": "616c696365406578616d706c652e636f6d", + "private_key": "5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a", + "public_key": "03f68b1de0f5ce686192f4bd0fd34163863f2e89d385f8bcfb85979533a57ac9b0", + "version": 0 + }, + "expect": { + "output": "a5f48cc6ba2a41ca68814238453ee27270d98ffd7b18be7fa0ebffc2ab4d288e", + "proof": "02245033f5e9ba3fe7f1507c260e5b489c7f8f111b662de157fd8b944bb8768ae626ae4c9700a266cd039aa0d8ac04bbacddb5ec331a79bd06369ca72d1e8402e001f551aef98057c217c2f1500b5088f6", + "vrf_input": "11616c696365406578616d706c652e636f6d00000000" + } + }, + { + "name": "version-1", + "input": { + "label": "616c696365406578616d706c652e636f6d", + "private_key": "5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a", + "public_key": "03f68b1de0f5ce686192f4bd0fd34163863f2e89d385f8bcfb85979533a57ac9b0", + "version": 1 + }, + "expect": { + "output": "4c6729d86a5d94fc6e479d8e4de46ad1452d1db5270dc6acaea89d4d69420a9e", + "proof": "0341e953d1706e8fe8a3b88a86d7941a37d3825cd89b9c06a5bd5bd42ebb0b57b1cdc73fea4a921eb7c5b0cb07829ace998d28f52b530c25335196b0e45860167012b43f2e633b8fce40860cb1685dd641", + "vrf_input": "11616c696365406578616d706c652e636f6d00000001" + } + }, + { + "name": "version-2", + "input": { + "label": "616c696365406578616d706c652e636f6d", + "private_key": "5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a", + "public_key": "03f68b1de0f5ce686192f4bd0fd34163863f2e89d385f8bcfb85979533a57ac9b0", + "version": 2 + }, + "expect": { + "output": "5bb60034632d90508d1944aa71801386bbeaa85d46b2384d1390f34531c33cc7", + "proof": "02658f10c694f82745a65798f2840e090c25c765169b88e7f0fc9314ccd10085e0a8c1c81e5a937215616c85cddd286fbe2f0e9b33810795837e7b1ce7d56c298adac20dca132890cd8c456d8c07db1db2", + "vrf_input": "11616c696365406578616d706c652e636f6d00000002" + } + }, + { + "name": "version-max", + "input": { + "label": "616c696365406578616d706c652e636f6d", + "private_key": "5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a", + "public_key": "03f68b1de0f5ce686192f4bd0fd34163863f2e89d385f8bcfb85979533a57ac9b0", + "version": 4294967295 + }, + "expect": { + "output": "c376c57a0d0e291cbedf7c600dbafd8b1ff85e0602fefcd208984c6cb59522be", + "proof": "03ab636e495e054fed810fc2a78c840243025b0a196fd37a5239e2979bb96ee65ef71d5188d1db2b901dfe7e750ad5715a871183d58dbbb95b8533610920905bb307fff590f34eb1f1504037b4ff0ef9f5", + "vrf_input": "11616c696365406578616d706c652e636f6dffffffff" + } + }, + { + "name": "other-label-same-version", + "input": { + "label": "626f62406578616d706c652e636f6d", + "private_key": "5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a", + "public_key": "03f68b1de0f5ce686192f4bd0fd34163863f2e89d385f8bcfb85979533a57ac9b0", + "version": 0 + }, + "expect": { + "output": "f954bdf5823b56fe9e9c62775a8c8a4fda828325d0781074e847bd9d4c155a6f", + "proof": "0313b4077862347b19eb342dcbed439d934f34b5a32cd424af1879af49f6cfa21b2cf75277605f3bfd671f653034ed928b0846aee25d6ac24e0063e5e4b81be48db945d1d8cc498e70e8a0847be8bfcc61", + "vrf_input": "0f626f62406578616d706c652e636f6d00000000" + } + }, + { + "name": "label-a", + "input": { + "label": "61", + "private_key": "5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a", + "public_key": "03f68b1de0f5ce686192f4bd0fd34163863f2e89d385f8bcfb85979533a57ac9b0", + "version": 1644167168 + }, + "expect": { + "output": "52779f2544d3c003221c370e9878e8782b49386ff95f8ae4363c263e096264e5", + "proof": "02a11755eab8f6612200f131f61e34effcba6850b40efb662afc55ede98ffa891c32a8cdcb21099e7be4d2896c2353a6a40cc385915e336280e9c98071fb95ae980d5ba25e1f37acc03a8c75e0e4d16dc6", + "vrf_input": "016162000000" + } + }, + { + "name": "label-ab", + "input": { + "label": "6162", + "private_key": "5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a", + "public_key": "03f68b1de0f5ce686192f4bd0fd34163863f2e89d385f8bcfb85979533a57ac9b0", + "version": 0 + }, + "expect": { + "output": "50aa65e91d45d6445870918813dae73ed6e51c692e89ff7a6fb431b8b02571f5", + "proof": "0222c4460c14fe1bea8148d23b685a127dff1adbf442d12504796dcb7ca58034cb216041f3ddcbd4e7d88c42ffa1da661004d18e959c239e7e08ec1cd81be9b11eb0d97aacff037d6883f996824669b3e6", + "vrf_input": "02616200000000" + } + }, + { + "name": "label-max-len", + "input": { + "label": "616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161", + "private_key": "5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a", + "public_key": "03f68b1de0f5ce686192f4bd0fd34163863f2e89d385f8bcfb85979533a57ac9b0", + "version": 7 + }, + "expect": { + "output": "945a6b7ca1d74e7c6b3e40a1e58c991a12cc186b5addb92f9bd2eddbee60a756", + "proof": "029ad0af06d0af0184477dd4979f183806a9a772df2d9792ddeb76e412a794162a2934cab0c4cc66b862eb8e13cd76b6eab035f974643a3a0ceafe7bceae770b78a3d9846c044b4515822ef21ba4ea5281", + "vrf_input": "ff61616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616100000007" + } + }, + { + "name": "label-with-nulls", + "input": { + "label": "000100ff", + "private_key": "5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a", + "public_key": "03f68b1de0f5ce686192f4bd0fd34163863f2e89d385f8bcfb85979533a57ac9b0", + "version": 3 + }, + "expect": { + "output": "c5298bbb917dfc45085454316c8174945250b7ba7a755bc675706511fbb2e62e", + "proof": "0217e71bfabe8745a81832a72bfb711e7e0fef7c95354c8547e2402db899b59109dceaf399285d13da76d8c1b2e23b904f91b1febd1f33dacb1b3c94317935175e19552997eea65f4606326e90d4467879", + "vrf_input": "04000100ff00000003" + } + }, + { + "name": "proof-for-another-version-does-not-verify", + "input": { + "label": "616c696365406578616d706c652e636f6d", + "private_key": "5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a", + "proof": "02245033f5e9ba3fe7f1507c260e5b489c7f8f111b662de157fd8b944bb8768ae626ae4c9700a266cd039aa0d8ac04bbacddb5ec331a79bd06369ca72d1e8402e001f551aef98057c217c2f1500b5088f6", + "public_key": "03f68b1de0f5ce686192f4bd0fd34163863f2e89d385f8bcfb85979533a57ac9b0", + "version": 1 + }, + "expect": { + "error": true + } + } + ] +} diff --git a/interop/vectors/vrf.json b/interop/vectors/vrf.json index ca6d6d0..3eeec5c 100644 --- a/interop/vectors/vrf.json +++ b/interop/vectors/vrf.json @@ -6,7 +6,7 @@ "sha": "00da52541f6ae6a7f3905181e2ba9de8ec0d6cdc" }, "cipher_suite": 2, - "notes": "ECVRF-EDWARDS25519-SHA512-TAI (RFC 9381) over the presentation-language encoding of a VrfInput, with the output truncated to VRF.Nh = 32 bytes per §17.1. `vrf_input` is that encoding, which is what alpha_string must be; `output` is the prefix tree search key for the label-version pair; `proof` is VRF.Np = 80 bytes. The RFC's own Appendix B vectors pin the ECVRF core and are run directly by the Rust side; these pin the KT wrapping around it. The negative case is a proof for one label-version pair checked against another, which must not verify.", + "notes": "ECVRF-EDWARDS25519-SHA512-TAI (RFC 9381) over the presentation-language encoding of a VrfInput, with the output truncated to VRF.Nh = 32 bytes per §17.1. `vrf_input` is that encoding, which is what alpha_string must be; `output` is the prefix tree search key for the label-version pair; `proof` is VRF.Np bytes. The RFC's own Appendix B vectors pin the ECVRF core and are run directly by the Rust side; these pin the KT wrapping around it. The negative case is a proof for one label-version pair checked against another, which must not verify.", "cases": [ { "name": "empty-label-version-0",