MCPcopy Create free account
hub / github.com/WizardOfMenlo/stir / Polynomial

Class Polynomial

scripts/protocol.py:68–147  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

66 print("\tCommitment size: ", convert_size(self.commitment_size()))
67
68class Polynomial(Message):
69 def __init__(self, params : LDTParameters, degree, rate_bits, stack=1, name=""):
70 Message.__init__(self,params, name)
71 self.degree = degree
72 self.rate = rate_bits
73 self.stack = stack
74 self.fold_param = 1
75
76 def fold(self, k):
77 if k != 1:
78 assert(self.fold_param == 1)
79 self.fold_param = k
80
81 def fold_amount(self):
82 return self.fold_param
83
84 def rate_bits(self):
85 return self.rate
86
87 def degree_real(self):
88 return self.degree
89
90 def degree_virtual(self):
91 return self.degree / self.fold_param
92
93 def length_real(self):
94 return self.degree_real() * 2**self.rate_bits() * self.stack
95
96 def length_virtual(self):
97 return self.degree_virtual() * 2**self.rate_bits()
98
99 def auth_path_size(self):
100 if self.queries() == 0:
101 return 0
102
103 total_path_size = self.params.rom.authentication_path_size(self.length_virtual(), self.queries())
104
105 leaf_size = min(self.field_size() * self.stack * self.fold_amount(), self.hash_size())
106
107 return total_path_size + self.queries() * leaf_size
108
109 def opening_size(self):
110 return self.queries() * self.field_size() * self.fold_amount() * self.stack
111
112 def commitment_size(self):
113 return self.hash_size()
114
115 def argument_size(self):
116 return self.commitment_size() + self.auth_path_size() + self.opening_size()
117
118 def proof_length(self):
119 return self.length_real()
120
121 def reps_full_sec(self):
122 return self.params.repetition_parameter(self.rate_bits())
123
124 def fixed_proof_of_work(self):
125 rho = self.rate_bits()

Callers 5

begin_auroraFunction · 0.90
fri_roundFunction · 0.90
run_FRIFunction · 0.90
stir_roundFunction · 0.90
run_STIRFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected