Skip to content

Commit c6e7436

Browse files
fix: remove unneeded restriction on the seal seed (#934)
fix: remove unneeded restriction on the seal seed
2 parents 4409cb3 + da3b9d8 commit c6e7436

File tree

3 files changed

+14
-26
lines changed

3 files changed

+14
-26
lines changed

filecoin-proofs/src/api/seal.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ use storage_proofs::circuit::stacked::StackedCompound;
88
use storage_proofs::compound_proof::{self, CompoundProof};
99
use storage_proofs::crypto::pedersen::JJ_PARAMS;
1010
use storage_proofs::drgraph::{DefaultTreeHasher, Graph};
11-
use storage_proofs::fr32::bytes_into_fr;
1211
use storage_proofs::hasher::{Domain, Hasher};
1312
use storage_proofs::merkle::create_merkle_tree;
1413
use storage_proofs::porep::PoRep;
@@ -158,16 +157,14 @@ pub fn seal_commit<T: AsRef<Path>>(
158157
comm_d_safe,
159158
);
160159

161-
let seed_fr = bytes_into_fr::<Bls12>(&seed).map(Into::into)?;
162-
163160
let public_inputs = stacked::PublicInputs {
164161
replica_id,
165162
tau: Some(stacked::Tau {
166163
comm_d: comm_d_safe,
167164
comm_r: comm_r_safe,
168165
}),
169166
k: None,
170-
seed: seed_fr,
167+
seed,
171168
};
172169

173170
let private_inputs =
@@ -267,15 +264,13 @@ pub fn verify_seal(
267264
StackedDrg<'_, DefaultTreeHasher, DefaultPieceHasher>,
268265
> = StackedCompound::setup(&compound_setup_params)?;
269266

270-
let seed_fr = bytes_into_fr::<Bls12>(&seed).map(Into::into)?;
271-
272267
let public_inputs = stacked::PublicInputs::<
273268
<DefaultTreeHasher as Hasher>::Domain,
274269
<DefaultPieceHasher as Hasher>::Domain,
275270
> {
276271
replica_id,
277272
tau: Some(Tau { comm_r, comm_d }),
278-
seed: seed_fr,
273+
seed,
279274
k: None,
280275
};
281276

storage-proofs/src/stacked/challenges.rs

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,10 @@ impl LayerChallenges {
4646
&self,
4747
leaves: usize,
4848
replica_id: &D,
49-
commitment: &D,
49+
seed: &[u8; 32],
5050
k: u8,
5151
) -> Vec<usize> {
52-
self.derive_internal(
53-
self.challenges_count_all(),
54-
leaves,
55-
replica_id,
56-
commitment,
57-
k,
58-
)
52+
self.derive_internal(self.challenges_count_all(), leaves, replica_id, seed, k)
5953
}
6054

6155
/// Derive a set of challenges, for the given inputs.
@@ -64,19 +58,19 @@ impl LayerChallenges {
6458
layer: usize,
6559
leaves: usize,
6660
replica_id: &D,
67-
commitment: &D,
61+
seed: &[u8; 32],
6862
k: u8,
6963
) -> Vec<usize> {
7064
let challenges_count = self.challenges_count(layer);
71-
self.derive_internal(challenges_count, leaves, replica_id, commitment, k)
65+
self.derive_internal(challenges_count, leaves, replica_id, seed, k)
7266
}
7367

7468
pub fn derive_internal<D: Domain>(
7569
&self,
7670
challenges_count: usize,
7771
leaves: usize,
7872
replica_id: &D,
79-
commitment: &D,
73+
seed: &[u8; 32],
8074
k: u8,
8175
) -> Vec<usize> {
8276
assert!(leaves > 2, "Too few leaves: {}", leaves);
@@ -85,7 +79,7 @@ impl LayerChallenges {
8579
.map(|i| {
8680
let mut bytes = replica_id.into_bytes();
8781
let j = ((challenges_count * k as usize) + i) as u32;
88-
bytes.extend(commitment.into_bytes());
82+
bytes.extend_from_slice(seed);
8983

9084
// Unwraping here is safe, all hash domains are larger than 4 bytes (the size of a `u32`).
9185
bytes.write_u32::<LittleEndian>(j).unwrap();
@@ -126,7 +120,7 @@ mod test {
126120
let leaves = 1 << 30;
127121
let mut rng = thread_rng();
128122
let replica_id: PedersenDomain = rng.gen();
129-
let commitment: PedersenDomain = rng.gen();
123+
let seed: [u8; 32] = rng.gen();
130124
let partitions = 5;
131125
let total_challenges = partitions * n;
132126

@@ -135,8 +129,7 @@ mod test {
135129
for layer in 1..=layers {
136130
let mut histogram = HashMap::new();
137131
for k in 0..partitions {
138-
let challenges =
139-
challenges.derive(layer, leaves, &replica_id, &commitment, k as u8);
132+
let challenges = challenges.derive(layer, leaves, &replica_id, &seed, k as u8);
140133

141134
for challenge in challenges {
142135
let counter = histogram.entry(challenge).or_insert(0);
@@ -164,7 +157,7 @@ mod test {
164157
let leaves = 1 << 30;
165158
let mut rng = thread_rng();
166159
let replica_id: PedersenDomain = rng.gen();
167-
let commitment: PedersenDomain = rng.gen();
160+
let seed: [u8; 32] = rng.gen();
168161
let partitions = 5;
169162
let layers = 100;
170163
let total_challenges = n * partitions;
@@ -174,7 +167,7 @@ mod test {
174167
layer,
175168
leaves,
176169
&replica_id,
177-
&commitment,
170+
&seed,
178171
0,
179172
);
180173
let many_partition_challenges = (0..partitions)
@@ -183,7 +176,7 @@ mod test {
183176
layer,
184177
leaves,
185178
&replica_id,
186-
&commitment,
179+
&seed,
187180
k as u8,
188181
)
189182
})

storage-proofs/src/stacked/params.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ where
8787
#[derive(Debug, Clone)]
8888
pub struct PublicInputs<T: Domain, S: Domain> {
8989
pub replica_id: T,
90-
pub seed: T,
90+
pub seed: [u8; 32],
9191
pub tau: Option<Tau<T, S>>,
9292
pub k: Option<usize>,
9393
}

0 commit comments

Comments
 (0)