@@ -46,16 +46,10 @@ impl LayerChallenges {
46
46
& self ,
47
47
leaves : usize ,
48
48
replica_id : & D ,
49
- commitment : & D ,
49
+ seed : & [ u8 ; 32 ] ,
50
50
k : u8 ,
51
51
) -> 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)
59
53
}
60
54
61
55
/// Derive a set of challenges, for the given inputs.
@@ -64,19 +58,19 @@ impl LayerChallenges {
64
58
layer : usize ,
65
59
leaves : usize ,
66
60
replica_id : & D ,
67
- commitment : & D ,
61
+ seed : & [ u8 ; 32 ] ,
68
62
k : u8 ,
69
63
) -> Vec < usize > {
70
64
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)
72
66
}
73
67
74
68
pub fn derive_internal < D : Domain > (
75
69
& self ,
76
70
challenges_count : usize ,
77
71
leaves : usize ,
78
72
replica_id : & D ,
79
- commitment : & D ,
73
+ seed : & [ u8 ; 32 ] ,
80
74
k : u8 ,
81
75
) -> Vec < usize > {
82
76
assert ! ( leaves > 2 , "Too few leaves: {}" , leaves) ;
@@ -85,7 +79,7 @@ impl LayerChallenges {
85
79
. map ( |i| {
86
80
let mut bytes = replica_id. into_bytes ( ) ;
87
81
let j = ( ( challenges_count * k as usize ) + i) as u32 ;
88
- bytes. extend ( commitment . into_bytes ( ) ) ;
82
+ bytes. extend_from_slice ( seed ) ;
89
83
90
84
// Unwraping here is safe, all hash domains are larger than 4 bytes (the size of a `u32`).
91
85
bytes. write_u32 :: < LittleEndian > ( j) . unwrap ( ) ;
@@ -126,7 +120,7 @@ mod test {
126
120
let leaves = 1 << 30 ;
127
121
let mut rng = thread_rng ( ) ;
128
122
let replica_id: PedersenDomain = rng. gen ( ) ;
129
- let commitment : PedersenDomain = rng. gen ( ) ;
123
+ let seed : [ u8 ; 32 ] = rng. gen ( ) ;
130
124
let partitions = 5 ;
131
125
let total_challenges = partitions * n;
132
126
@@ -135,8 +129,7 @@ mod test {
135
129
for layer in 1 ..=layers {
136
130
let mut histogram = HashMap :: new ( ) ;
137
131
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 ) ;
140
133
141
134
for challenge in challenges {
142
135
let counter = histogram. entry ( challenge) . or_insert ( 0 ) ;
@@ -164,7 +157,7 @@ mod test {
164
157
let leaves = 1 << 30 ;
165
158
let mut rng = thread_rng ( ) ;
166
159
let replica_id: PedersenDomain = rng. gen ( ) ;
167
- let commitment : PedersenDomain = rng. gen ( ) ;
160
+ let seed : [ u8 ; 32 ] = rng. gen ( ) ;
168
161
let partitions = 5 ;
169
162
let layers = 100 ;
170
163
let total_challenges = n * partitions;
@@ -174,7 +167,7 @@ mod test {
174
167
layer,
175
168
leaves,
176
169
& replica_id,
177
- & commitment ,
170
+ & seed ,
178
171
0 ,
179
172
) ;
180
173
let many_partition_challenges = ( 0 ..partitions)
@@ -183,7 +176,7 @@ mod test {
183
176
layer,
184
177
leaves,
185
178
& replica_id,
186
- & commitment ,
179
+ & seed ,
187
180
k as u8 ,
188
181
)
189
182
} )
0 commit comments